]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lld/docs/AtomLLD.rst
Merge clang 7.0.1 and several follow-up changes
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lld / docs / AtomLLD.rst
1 ATOM-based lld
2 ==============
3
4 Note: this document discuss Mach-O port of LLD. For ELF and COFF,
5 see :doc:`index`.
6
7 ATOM-based lld is a new set of modular code for creating linker tools.
8 Currently it supports Mach-O.
9
10 * End-User Features:
11
12   * Compatible with existing linker options
13   * Reads standard Object Files
14   * Writes standard Executable Files
15   * Remove clang's reliance on "the system linker"
16   * Uses the LLVM `"UIUC" BSD-Style license`__.
17
18 * Applications:
19
20   * Modular design
21   * Support cross linking
22   * Easy to add new CPU support
23   * Can be built as static tool or library
24
25 * Design and Implementation:
26
27   * Extensive unit tests
28   * Internal linker model can be dumped/read to textual format
29   * Additional linking features can be plugged in as "passes"
30   * OS specific and CPU specific code factored out
31
32 Why a new linker?
33 -----------------
34
35 The fact that clang relies on whatever linker tool you happen to have installed
36 means that clang has been very conservative adopting features which require a
37 recent linker.
38
39 In the same way that the MC layer of LLVM has removed clang's reliance on the
40 system assembler tool, the lld project will remove clang's reliance on the
41 system linker tool.
42
43
44 Contents
45 --------
46
47 .. toctree::
48    :maxdepth: 2
49
50    design
51    getting_started
52    development
53    open_projects
54    sphinx_intro
55
56 Indices and tables
57 ------------------
58
59 * :ref:`genindex`
60 * :ref:`search`
61
62 __ http://llvm.org/docs/DeveloperPolicy.html#license