Remove an obsolete/duplicate part of a document.
llvm-svn: 296304
This commit is contained in:
parent
4076fa1e21
commit
33d9d5d5b4
|
@ -1,42 +1,6 @@
|
||||||
The ELF and COFF Linkers
|
The ELF and COFF Linkers
|
||||||
========================
|
========================
|
||||||
|
|
||||||
We started rewriting the ELF (Unix) and COFF (Windows) linkers in May 2015.
|
|
||||||
Since then, we have been making a steady progress towards providing
|
|
||||||
drop-in replacements for the system linkers.
|
|
||||||
|
|
||||||
Currently, the Windows support is mostly complete and is about 2x faster
|
|
||||||
than the linker that comes as a part of Micrsoft Visual Studio toolchain.
|
|
||||||
|
|
||||||
The ELF support is in progress and is able to link large programs
|
|
||||||
such as Clang or LLD itself. Unless your program depends on linker scripts,
|
|
||||||
you can expect it to be linkable with LLD.
|
|
||||||
It is currently about 1.2x to 2x faster than GNU gold linker.
|
|
||||||
We aim to make it a drop-in replacement for the GNU linker.
|
|
||||||
|
|
||||||
We expect that FreeBSD is going to be the first large system
|
|
||||||
to adopt LLD as the system linker.
|
|
||||||
We are working on it in collaboration with the FreeBSD project.
|
|
||||||
|
|
||||||
The linkers are notably small; as of October 2016,
|
|
||||||
the COFF linker is about 7k lines and the ELF linker is about 18k lines,
|
|
||||||
while gold is 165K lines.
|
|
||||||
|
|
||||||
The linkers are designed to be as fast and simple as possible.
|
|
||||||
Because it is simple, it is easy to extend to support new features.
|
|
||||||
It already supports several advanced features such section garbage
|
|
||||||
collection and identical code folding.
|
|
||||||
|
|
||||||
The COFF linker supports i386, x86-64 and ARM. The ELF linker supports
|
|
||||||
i386, x86-64, x32, MIPS32, MIPS64, PowerPC, AMDGPU, ARM and Aarch64,
|
|
||||||
although the quality varies depending on platform. By default, LLD
|
|
||||||
provides support for all targets because the amount of code we have for
|
|
||||||
each target is so small. We do not even provide a way to disable
|
|
||||||
targets at compile time.
|
|
||||||
|
|
||||||
There are a few key design choices that we made to achieve these goals.
|
|
||||||
We will describe them in this document.
|
|
||||||
|
|
||||||
The ELF Linker as a Library
|
The ELF Linker as a Library
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue