lld contains two linkers whose architectures are different from each other. One is a linker that implements native features directly. They are in COFF or ELF directories. Other directories contains the other implementation that is designed to be a set of modular code for creating linker tools. This document covers mainly the latter. For the former, please read README.md in COFF directory.
The fact that clang relies on whatever linker tool you happen to have installed means that clang has been very conservative adopting features which require a recent linker.
In the same way that the MC layer of LLVM has removed clang’s reliance on the system assembler tool, the lld project will remove clang’s reliance on the system linker tool.
lld can self host on x86-64 FreeBSD and Linux and x86 Windows.
All SingleSource tests in test-suite pass on x86-64 Linux.
All SingleSource and MultiSource tests in the LLVM test-suite pass on MIPS 32-bit little-endian Linux.
lld is available in the LLVM SVN repository:
svn co http://llvm.org/svn/llvm-project/lld/trunk lld
lld is also available via the read-only git mirror:
git clone http://llvm.org/git/lld.git
Put it in llvm’s tools/ directory, rerun cmake, then build target lld.