llvm-project/lld
Rafael Espindola e05e2f8b34 Keep some relocations with undefined weak symbols.
This fixes pr34301.

As the bug points out, we want to keep some relocations with undefined
weak symbols. This means that we cannot always claim that these
symbols are not preemptible as we do now.

Unfortunately, we cannot also just always claim that they are
preemptible. Doing so would, for example, cause us to try to create a
plt entry when we don't even have a dynamic symbol table.

What almost works is to say that weak undefined symbols are
preemptible if and only if we have a dynamic symbol table. Almost
because we don't want to fail the build trying to create a copy
relocation to a weak undefined.

llvm-svn: 313372
2017-09-15 18:05:02 +00:00
..
COFF [COFF] Remove unused variable NFC 2017-09-15 01:07:08 +00:00
ELF Keep some relocations with undefined weak symbols. 2017-09-15 18:05:02 +00:00
MinGW Accept not only --foo but also -foo. 2017-09-14 18:33:21 +00:00
cmake/modules [lld][cmake] Fix BUILD_SHARED_LIBS installation 2017-01-24 10:41:02 +00:00
docs minor grammar fix 2017-08-04 20:06:03 +00:00
include/lld LLD: Introduce a GNU LD style driver for COFF 2017-09-11 17:02:59 +00:00
lib [MACH-O] Fix the ASM code generated for __stub_helpers section 2017-08-24 23:51:40 +00:00
test Keep some relocations with undefined weak symbols. 2017-09-15 18:05:02 +00:00
tools/lld LLD: Introduce a GNU LD style driver for COFF 2017-09-11 17:02:59 +00:00
unittests Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format
.gitignore
CMakeLists.txt LLD: Introduce a GNU LD style driver for COFF 2017-09-11 17:02:59 +00:00
CODE_OWNERS.TXT
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:40:59 +00:00
README.md Test commit 2017-06-24 21:16:41 +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.