hanchenye-llvm-project/lld/ELF
Igor Kudrin 15cd9ffd1e [ELF2] Add GOT section for MIPS target.
This patch implements R_MIPS_GOT16 relocation for global symbols in order to
generate some entries in GOT. Only reserved and global entries are supported
for now. For the detailed description about GOT in MIPS, see "Global Offset
Table" in Chapter 5 in the followin document:
ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf

In addition, the platform specific symbol "_gp" is added, see "Global Data
Symbols" in Chapter 6 in the aforementioned document.

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

llvm-svn: 252275
2015-11-06 07:43:03 +00:00
..
CMakeLists.txt ELF2: Implement --gc-sections. 2015-10-22 18:49:53 +00:00
Config.h Reapply r251144: fixed test. 2015-10-24 08:52:46 +00:00
Driver.cpp [ELF2] Add GOT section for MIPS target. 2015-11-06 07:43:03 +00:00
Driver.h Simplify the InputFile type hierarchy. 2015-10-12 01:55:32 +00:00
DriverUtils.cpp Update lld to match llvm r250901. OptTable constructor now takes an ArrayRef. NFC 2015-10-21 16:31:56 +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 These are the matching changes needed to the lld project for the changes to llvm 2015-11-05 19:25:47 +00:00
InputFiles.h Two small fixes to copy relocation processing. 2015-11-03 14:13:40 +00:00
InputSection.cpp [ELF2] merge-string.s test fixed for win32 configuration. 2015-10-29 19:30:28 +00:00
InputSection.h [ELF2] merge-string.s test fixed for win32 configuration. 2015-10-29 19:30:28 +00:00
LinkerScript.cpp [ELF2] - Linker script EXTERN command implemented. 2015-10-19 17:35:12 +00:00
MarkLive.cpp ELF2: Move some code from MarkLive.cpp to InputSection.cpp. 2015-10-27 21:51:13 +00:00
Options.td [Driver] Ignore -G option in both new and old ELF linker 2015-10-28 14:50:58 +00:00
OutputSections.cpp [ELF2] Add GOT section for MIPS target. 2015-11-06 07:43:03 +00:00
OutputSections.h [ELF2] Add GOT section for MIPS target. 2015-11-06 07:43:03 +00:00
README.md ELF2: Add a note about performance. 2015-10-13 21:28:02 +00:00
SymbolTable.cpp [ELF2] Add GOT section for MIPS target. 2015-11-06 07:43:03 +00:00
SymbolTable.h [ELF2] Add GOT section for MIPS target. 2015-11-06 07:43:03 +00:00
Symbols.cpp ELF2: Avoid bitwise-OR hack. NFC. 2015-10-21 19:41:03 +00:00
Symbols.h [ELF2] Add GOT section for MIPS target. 2015-11-06 07:43:03 +00:00
Target.cpp [ELF2] Add GOT section for MIPS target. 2015-11-06 07:43:03 +00:00
Target.h [ELF2] Add GOT section for MIPS target. 2015-11-06 07:43:03 +00:00
Writer.cpp [ELF2] Add GOT section for MIPS target. 2015-11-06 07:43:03 +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 with -LLVM_ENABLE_THREADS=OFF. "Hello world" can be linked on Linux/PPC64.

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.