llvm-project/lld
Shoaib Meenai 50d7b36f5e [ELF] Decompress debug info sections early
When reporting a symbol conflict, LLD parses the debug info to report
source location information. Sections have not been decompressed at this
point, so if an object file contains zlib compressed debug info, LLD
ends up passing this compressed debug info to the DWARF parser, which
causes debug info parsing failures and can trigger assertions in the
parser (as the test case demonstrates).

Decompress debug sections when constructing the LLDDwarfObj to avoid
this issue. This doesn't handle GNU-style compressed debug info sections
(.zdebug_*), which at present are simply ignored by LLDDwarfObj; those
can be done in a follow-up.

Differential Revision: https://reviews.llvm.org/D38491

llvm-svn: 314866
2017-10-04 00:19:41 +00:00
..
COFF Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
Common lldCommon depends on intrinsics_gen, due to llvm/CodeGen/CommandFlags.h 2017-10-03 04:18:46 +00:00
ELF [ELF] Decompress debug info sections early 2017-10-04 00:19:41 +00:00
MinGW Fix another build breakage. 2017-10-02 22:05:46 +00:00
cmake/modules [lld][cmake] Fix BUILD_SHARED_LIBS installation 2017-01-24 10:41:02 +00:00
docs Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
include/lld Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
lib Build fix: don't try to link in lldConfig 2017-10-02 23:09:37 +00:00
test [ELF] Decompress debug info sections early 2017-10-04 00:19:41 +00:00
tools/lld Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
unittests Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format
.gitignore
CMakeLists.txt Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
CODE_OWNERS.TXT
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:40:59 +00:00
README.md Add a note on where to get a lld benchmark. 2017-10-03 23:44:24 +00:00

README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.

Benchmarking

In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.

It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz

The current sha256 is 4818e8d38961503a04a73597b0da1242c39efc9df2ceb6dfca4ed36845239863.