1b0d7066ff
This patch implements --hash-style command line switch. * By default, or with "sysv" or "both" parameters, the linker generates a standard ELF hash section. * With "gnu" or "both", it produces a GNU-style hash section. That section requires the symbols in the dynamic symbol table section, which are referenced in the GNU hash section, to be placed after not hashed ones and to be sorted to correspond the order of hash buckets in the GNU Hash section. The division function, as well as estimations for the section's parameters, are just the first rough attempt and the subjects for further adjustments. Differential Revision: http://reviews.llvm.org/D13815 llvm-svn: 251000 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
Config.h | ||
Driver.cpp | ||
Driver.h | ||
DriverUtils.cpp | ||
Error.cpp | ||
Error.h | ||
InputFiles.cpp | ||
InputFiles.h | ||
InputSection.cpp | ||
InputSection.h | ||
LinkerScript.cpp | ||
Options.td | ||
OutputSections.cpp | ||
OutputSections.h | ||
README.md | ||
SymbolTable.cpp | ||
SymbolTable.h | ||
Symbols.cpp | ||
Symbols.h | ||
Target.cpp | ||
Target.h | ||
Writer.cpp | ||
Writer.h |
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.