6 lld is a new set of modular code for creating linker tools.
10 * Compatible with existing linker options
11 * Reads standard Object Files (e.g. ELF, Mach-O, PE/COFF)
12 * Writes standard Executable Files (e.g. ELF, Mach-O, PE)
15 * Remove clang's reliance on "the system linker"
16 * Uses the LLVM `"UIUC" BSD-Style license`__.
21 * Support cross linking
22 * Easy to add new CPU support
23 * Can be built as static tool or library
25 * Design and Implementation:
27 * Extensive unit tests
28 * Internal linker model can be dumped/read to textual format
29 * Internal linker model can be dumped/read to a new native format
30 * Native format designed to be fast to read and write
31 * Additional linking features can be plugged in as "passes"
32 * OS specific and CPU specific code factored out
37 The fact that clang relies on whatever linker tool you happen to have installed
38 means that clang has been very conservative adopting features which require a
41 In the same way that the MC layer of LLVM has removed clang's reliance on the
42 system assembler tool, the lld project will remove clang's reliance on the
49 lld can self host on x86-64 FreeBSD and Linux and x86 Windows.
51 All SingleSource tests in test-suite pass on x86-64 Linux.
53 All SingleSource and MultiSource tests in the LLVM test-suite
54 pass on MIPS 32-bit little-endian Linux.
59 lld is available in the LLVM SVN repository::
61 svn co http://llvm.org/svn/llvm-project/lld/trunk lld
63 lld is also available via the read-only git mirror::
65 git clone http://llvm.org/git/lld.git
67 Put it in llvm's tools/ directory, rerun cmake, then build target lld.
88 __ http://llvm.org/docs/DeveloperPolicy.html#license