llvm-project/lld/ELF
Peter Smith 64f65b02d2 [ELF] Implement --[no-]apply-dynamic-relocs option.
When resolving dynamic RELA relocations the addend is taken from the
relocation and not the place being relocated. Accordingly lld does not
write the addend field to the place like it would for a REL relocation.
Unfortunately there is some system software, in particlar dynamic loaders
such as Bionic's linker64 that use the value of the place prior to
relocation to find the offset that they have been loaded at. Both gold
and bfd control this behavior with the --[no-]apply-dynamic-relocs option.
This change implements the option and defaults it to true for compatibility
with gold and bfd.

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

llvm-svn: 324221
2018-02-05 10:15:08 +00:00
..
Arch [ELF][MIPS] Rename function to be consistent with other names. NFC 2018-01-29 14:00:51 +00:00
AArch64ErrataFix.cpp [ELF] Make --fix-cortex-a53-843419 work on big endian hosts 2018-01-23 19:26:52 +00:00
AArch64ErrataFix.h [ELF] Fix buildbot warning error. 2017-12-15 10:47:44 +00:00
Bits.h Move bit operations to a new file, ELF/Bits.h. 2017-10-26 21:37:17 +00:00
CMakeLists.txt [ELF] Implement scanner for Cortex-A53 Erratum 843419 2017-12-05 15:59:05 +00:00
Config.h [ELF] Implement --[no-]apply-dynamic-relocs option. 2018-02-05 10:15:08 +00:00
Driver.cpp [ELF] Implement --[no-]apply-dynamic-relocs option. 2018-02-05 10:15:08 +00:00
Driver.h [ELF] Fall back to search dirs for linker scripts specified with -T 2017-11-20 15:43:20 +00:00
DriverUtils.cpp Remove redundant local variables. 2017-12-11 23:19:11 +00:00
EhFrame.cpp De-template EhReader. NFC. 2017-10-27 03:14:09 +00:00
EhFrame.h De-template EhReader. NFC. 2017-10-27 03:14:09 +00:00
Filesystem.cpp Don't use llvm/Config/config.h. 2017-11-17 21:40:38 +00:00
Filesystem.h Add a missing #include. 2017-11-17 08:17:21 +00:00
GdbIndex.cpp Remove some includes from InputFiles.h. 2017-12-09 16:56:18 +00:00
GdbIndex.h [ELF] - Teach LLD to use information from .debug_str for error reporting. 2017-11-17 11:57:47 +00:00
ICF.cpp [ELF] Add --print-icf-sections flag 2018-02-01 16:00:46 +00:00
ICF.h [ELF] - Apply clang-format. NFC. 2017-07-18 11:55:35 +00:00
InputFiles.cpp [ELF] - Report valid binary filename when reporting error. 2018-02-05 09:47:24 +00:00
InputFiles.h [ELF] - Report valid binary filename when reporting error. 2018-02-05 09:47:24 +00:00
InputSection.cpp [ELF][MIPS] Change format of output relocations to Elf_Rel 2018-02-02 09:50:07 +00:00
InputSection.h Move function to the file where it is used. 2018-01-30 16:24:04 +00:00
LTO.cpp Pass CPU string to LTO pipeline. 2018-01-30 18:18:59 +00:00
LTO.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
LinkerScript.cpp Sort orphan section if --symbol-ordering-file is given. 2018-01-30 16:20:08 +00:00
LinkerScript.h Run dos2unix in a few files. NFC. 2018-01-30 17:24:28 +00:00
MapFile.cpp Remove some includes from InputFiles.h. 2017-12-09 16:56:18 +00:00
MapFile.h Pass symbol attributes instead of ElfSym to Shared symbol ctor. 2017-10-28 20:15:56 +00:00
MarkLive.cpp Use dyn_cast instead of dyn_cast_or_null. 2017-12-20 20:46:08 +00:00
Options.td [ELF] Implement --[no-]apply-dynamic-relocs option. 2018-02-05 10:15:08 +00:00
OutputSections.cpp Sort each InputSectionDescription individually. 2018-02-01 19:30:15 +00:00
OutputSections.h Sort orphan section if --symbol-ordering-file is given. 2018-01-30 16:20:08 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
Relocations.cpp [ELF] Make overlapping output sections an error 2018-01-31 09:22:44 +00:00
Relocations.h Rename Body -> Sym. 2017-11-04 00:31:04 +00:00
ScriptLexer.cpp Simplify script lexer. 2017-12-26 10:13:10 +00:00
ScriptLexer.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
ScriptParser.cpp Relax the grammar of the version script. 2018-02-01 23:46:17 +00:00
ScriptParser.h [ELF] Support expressions with -defsym option 2017-11-04 02:03:58 +00:00
Strings.cpp Factor out common code to Common/Strings.cpp. 2017-11-28 02:15:26 +00:00
Strings.h Factor out common code to Common/Strings.cpp. 2017-11-28 02:15:26 +00:00
SymbolTable.cpp Add --no-gnu-unique and --no-undefined-version for completeness. 2018-02-02 21:44:06 +00:00
SymbolTable.h [ELF] - Remove dead declaration. NFC. 2018-01-30 11:03:27 +00:00
Symbols.cpp Add --no-gnu-unique and --no-undefined-version for completeness. 2018-02-02 21:44:06 +00:00
Symbols.h Inline foot gun into only valid use. 2018-01-16 19:28:28 +00:00
SyntheticSections.cpp [ELF] Implement --[no-]apply-dynamic-relocs option. 2018-02-05 10:15:08 +00:00
SyntheticSections.h Do not pass an argument that can be easily inferred from other argument. 2018-01-12 22:29:29 +00:00
Target.cpp Use dyn_cast instead of dyn_cast_or_null. 2017-12-20 20:46:08 +00:00
Target.h Use references instead of pointers. NFC. 2017-12-19 23:59:35 +00:00
Thunks.cpp Use references instead of pointers. NFC. 2017-12-19 23:59:35 +00:00
Thunks.h ELF: Merge DefinedRegular and Defined. 2017-11-06 04:35:31 +00:00
Writer.cpp Add -{no,}-check-sections flags to enable/disable section overlchecking 2018-02-02 22:24:06 +00:00
Writer.h Put the header in the first PT_LOAD even if that PT_LOAD has a LMAExpr. 2018-01-29 03:44:44 +00:00

README.md

See docs/NewLLD.rst