llvm-project/lld/ELF
George Rimar 3d737e45c0 Reapply r257588
Fix: Added missed input file.

Initial commit message:
[ELF/AArch64] - Implemented R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 and R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC relocations

* R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 is calculated as Page(G(GTPREL(S+A))) – Page(P), set an ADRP immediate field to bits [32:12] of X; check –2^32 ≤ X < 2^32;
* R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC is calculated as G(GTPREL(S+A)), set an LD offset field to bits [11:3] of X. No overflow check; check that X&7 = 0.

Differential revision: http://reviews.llvm.org/D16117

llvm-svn: 257596
2016-01-13 13:04:46 +00:00
..
CMakeLists.txt Set the folder for libraries to 'lld libraries'. NFC. 2016-01-07 00:14:04 +00:00
Config.h Add comments. 2016-01-05 17:55:05 +00:00
Driver.cpp [ELF][MIPS] Prevent substitution of _gp_disp symbol 2016-01-12 06:23:57 +00:00
Driver.h ELF: Make private functions private. 2016-01-07 17:54:21 +00:00
DriverUtils.cpp Remove unnecessary `lld::`. 2016-01-06 20:11:55 +00:00
Error.cpp [ELF2] Output of all unknown arguments instead of only one. 2015-09-24 18:55:33 +00:00
Error.h [ELF2] Output of all unknown arguments instead of only one. 2015-09-24 18:55:33 +00:00
InputFiles.cpp Simplify MipsReginfoInputSection. 2016-01-06 22:42:43 +00:00
InputFiles.h Rename GroupEntryType -> uint32_X. 2016-01-06 20:30:02 +00:00
InputSection.cpp ELF: Remove dead code. 2016-01-08 20:11:47 +00:00
InputSection.h Simplify MipsReginfoInputSection. 2016-01-06 22:42:43 +00:00
LinkerScript.cpp Remove unnecessary `lld::`. 2016-01-06 20:11:55 +00:00
MarkLive.cpp Merge two consecutive if's. NFC. 2016-01-12 21:57:44 +00:00
Options.td ELF: Implement --wrap. 2016-01-07 17:20:07 +00:00
OutputSections.cpp Fixed typo in comment. NFC. 2016-01-11 17:19:40 +00:00
OutputSections.h ELF: Improve performance of string table construction. 2016-01-07 02:35:32 +00:00
README.md [README] Update to reflect the new world order. 2015-12-24 10:03:46 +00:00
SymbolTable.cpp Rename IgnoredUndef -> Ignored since it is not an undefined symbol. 2016-01-12 19:24:55 +00:00
SymbolTable.h [ELF][MIPS] Prevent substitution of _gp_disp symbol 2016-01-12 06:23:57 +00:00
Symbols.cpp Rename IgnoredUndef -> Ignored since it is not an undefined symbol. 2016-01-12 19:24:55 +00:00
Symbols.h Rename IgnoredUndef -> Ignored since it is not an undefined symbol. 2016-01-12 19:24:55 +00:00
Target.cpp Reapply r257588 2016-01-13 13:04:46 +00:00
Target.h ELF: Remove dead code. 2016-01-08 20:11:47 +00:00
Writer.cpp Rename IgnoredUndef -> Ignored since it is not an undefined symbol. 2016-01-12 19:24:55 +00:00
Writer.h ELF2: Implement --gc-sections. 2015-10-22 18:49:53 +00:00

README.md

The New ELF Linker

This directory contains a port of the new PE/COFF linker for ELF.

Overall Design

See COFF/README.md for details on the design. Note that unlike COFF, we do not distinguish chunks from input sections; they are merged together.

Capabilities

This linker can link LLVM and Clang on Linux/x86-64 or FreeBSD/x86-64 "Hello world" can be linked on Linux/PPC64 and on Linux/AArch64 or FreeBSD/AArch64.

Performance

Achieving good performance is one of our goals. It's too early to reach a conclusion, but we are optimistic about that as it currently seems to be faster than GNU gold. It will be interesting to compare when we are close to feature parity.