hanchenye-llvm-project/lld
Peter Collingbourne 1f71d748ae ELF: Do not create relative relocations for undefined symbols.
We need to ensure that the address of an undefined weak symbol evaluates to
zero. We were getting this right for non-PIC executables (where the symbol
can be evaluated directly) and for DSOs (where we emit a symbolic relocation
for these symbols, as they are preemptible). But we weren't getting it right
for PIEs. Probably the simplest way to ensure that these symbols evaluate
to zero is by not creating a relocation in .got for them.

Differential Revision: http://reviews.llvm.org/D19044

llvm-svn: 266161
2016-04-13 02:24:48 +00:00
..
COFF [COFF] Simplify the code leveraging implicit conversion. 2016-04-12 22:05:38 +00:00
ELF ELF: Do not create relative relocations for undefined symbols. 2016-04-13 02:24:48 +00:00
cmake/modules
docs Docs: keep copyright years up-to-date. 2016-03-30 22:25:04 +00:00
include/lld Remove unused variants of make_dynamic_error_code. NFC. 2016-03-31 01:21:50 +00:00
lib [lld][MachO] Clean up some unnecessarily verbose code. NFC. 2016-04-06 17:18:55 +00:00
test ELF: Do not create relative relocations for undefined symbols. 2016-04-13 02:24:48 +00:00
tools/lld Inline a trivial CMakeLists.txt. 2016-03-03 01:56:23 +00:00
unittests Fix test which failed Error migration on Windows bots. 2016-04-04 16:56:09 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt Inline a trivial CMakeLists.txt. 2016-03-03 01:56:23 +00:00
CODE_OWNERS.TXT Add initial CODE_OWNERS.TXT file 2015-07-25 00:44:37 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:40:59 +00:00
README.md

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.