llvm-project/lld/ELF
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
..
CMakeLists.txt [lld] [ELF] Add ScriptParserBase class 2016-04-06 20:59:11 +00:00
Config.h Simplify handling of mips gp* symbols. 2016-04-11 20:34:27 +00:00
Driver.cpp Devide _gp in the same spot as other mips symbols. NFC. 2016-04-12 02:24:43 +00:00
Driver.h ELF: Implement --start-lib and --end-lib 2016-04-07 19:24:51 +00:00
DriverUtils.cpp Variable names should start with uppercase letters. 2016-04-02 19:15:26 +00:00
Error.cpp Remove dead code. 2016-03-13 04:25:43 +00:00
Error.h Remove dead code. 2016-03-13 04:25:43 +00:00
ICF.cpp Update for llvm change. 2016-04-05 14:47:28 +00:00
ICF.h Rename elf2 to elf. 2016-02-28 00:25:54 +00:00
InputFiles.cpp ELF: Implement basic support for module asm in bitcode files. 2016-04-11 16:39:43 +00:00
InputFiles.h ELF: Implement --start-lib and --end-lib 2016-04-07 19:24:51 +00:00
InputSection.cpp Change how we apply relocations. 2016-04-13 01:40:19 +00:00
InputSection.h Change how we apply relocations. 2016-04-13 01:40:19 +00:00
LTO.cpp [LTO] Switch Module to std::unique_ptr<>. 2016-04-11 22:39:51 +00:00
LTO.h [LTO] Switch Module to std::unique_ptr<>. 2016-04-11 22:39:51 +00:00
LinkerScript.cpp [lld] [ELF] Add ScriptParserBase class 2016-04-06 20:59:11 +00:00
LinkerScript.h ELF: Remove OutSection class and use a map instead. 2016-02-28 05:09:11 +00:00
MarkLive.cpp Don't store an Elf_Sym for most symbols. 2016-04-04 14:04:16 +00:00
Options.td ELF: Ignore --detect-odr-violations flag. 2016-04-07 23:15:50 +00:00
OutputSections.cpp Change how we apply relocations. 2016-04-13 01:40:19 +00:00
OutputSections.h Change how we apply relocations. 2016-04-13 01:40:19 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
ScriptParser.cpp [lld] [ELF] Add ScriptParserBase class 2016-04-06 20:59:11 +00:00
ScriptParser.h [lld] Fix build failure from r265600 2016-04-06 21:33:18 +00:00
SymbolTable.cpp Cleanup the handling of MustBeInDynSym and IsUsedInRegularObj. 2016-04-08 18:39:03 +00:00
SymbolTable.h ELF: Implement --start-lib and --end-lib 2016-04-07 19:24:51 +00:00
Symbols.cpp Cleanup the handling of MustBeInDynSym and IsUsedInRegularObj. 2016-04-08 18:39:03 +00:00
Symbols.h Use DefinedSynthetic for _gp* symbols. 2016-04-12 13:26:51 +00:00
Target.cpp Change how we apply relocations. 2016-04-13 01:40:19 +00:00
Target.h Change how we apply relocations. 2016-04-13 01:40:19 +00:00
Writer.cpp ELF: Do not create relative relocations for undefined symbols. 2016-04-13 02:24:48 +00:00
Writer.h Rename elf2 to elf. 2016-02-28 00:25:54 +00:00

README.md

See docs/NewLLD.rst