llvm-project/lld/ELF
George Rimar 2c9b7bd326 Replace StringRef with std::string in LinkerDriver::addLibrary(StringRef Name) because std::string is destroyed after assigning what fills the buffer with garbage and StringRef is no more valid.
That fixes few failing tests under windows+msvs2015(debug).

llvm-svn: 259186
2016-01-29 10:52:52 +00:00
..
CMakeLists.txt Set the folder for libraries to 'lld libraries'. NFC. 2016-01-07 00:14:04 +00:00
Config.h Reapply r257753 with fix: 2016-01-15 13:34:52 +00:00
Driver.cpp Replace StringRef with std::string in LinkerDriver::addLibrary(StringRef Name) because std::string is destroyed after assigning what fills the buffer with garbage and StringRef is no more valid. 2016-01-29 10:52:52 +00:00
Driver.h ELF: Report multiple errors from the driver. 2016-01-29 01:54:52 +00:00
DriverUtils.cpp ELF: Report multiple errors from the driver. 2016-01-29 01:54:52 +00:00
Error.cpp ELF: Report multiple errors from the driver. 2016-01-29 01:54:52 +00:00
Error.h ELF: Report multiple errors from the driver. 2016-01-29 01:54:52 +00:00
InputFiles.cpp ELF: Rename error -> fatal and redefine error as a non-noreturn function. 2016-01-28 18:40:06 +00:00
InputFiles.h Merge identical strings. 2016-01-29 01:24:25 +00:00
InputSection.cpp ELF: Make Target's member function names shorter. 2016-01-29 02:33:45 +00:00
InputSection.h Simplify MipsReginfoInputSection. 2016-01-06 22:42:43 +00:00
LinkerScript.cpp ELF: Report multiple errors from the driver. 2016-01-29 01:54:52 +00:00
MarkLive.cpp Merge two consecutive if's. NFC. 2016-01-12 21:57:44 +00:00
Options.td Reapply r257753 with fix: 2016-01-15 13:34:52 +00:00
OutputSections.cpp Remove a parameter from Target::writePlt. 2016-01-29 04:15:02 +00:00
OutputSections.h Merge identical strings. 2016-01-29 01:24:25 +00:00
README.md [README] Update to reflect the new world order. 2015-12-24 10:03:46 +00:00
SymbolTable.cpp ELF: Rename error -> fatal and redefine error as a non-noreturn function. 2016-01-28 18:40:06 +00:00
SymbolTable.h Delete addIgnoredStrong. 2016-01-19 00:05:54 +00:00
Symbols.cpp [ELF] - Symbols from object files that override symbols in DSO are added to .dynsym table. 2016-01-25 08:44:38 +00:00
Symbols.h Rename DynamicSymbolTableIndex -> DynsymIndex. 2016-01-29 01:49:33 +00:00
Target.cpp Remove a parameter from Target::writePlt. 2016-01-29 04:15:02 +00:00
Target.h Remove a parameter from Target::writePlt. 2016-01-29 04:15:02 +00:00
Writer.cpp ELF: Make Target's member function names shorter. 2016-01-29 02:33:45 +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.