mirror of
https://github.com/intel/llvm.git
synced 2026-02-01 17:07:36 +08:00
The Native file format was designed to be the fastest on-memory or on-disk file format for object files. The problem is that no one is working on that. No LLVM tools can produce object files in the Native, thus the feature of supporting the format is useless in the linker. This patch removes the Native file support. We can add it back if we really want it in future. llvm-svn: 234641
87 lines
2.0 KiB
ReStructuredText
87 lines
2.0 KiB
ReStructuredText
.. _index:
|
|
|
|
lld - The LLVM Linker
|
|
=====================
|
|
|
|
lld is a new set of modular code for creating linker tools.
|
|
|
|
* End-User Features:
|
|
|
|
* Compatible with existing linker options
|
|
* Reads standard Object Files (e.g. ELF, Mach-O, PE/COFF)
|
|
* Writes standard Executable Files (e.g. ELF, Mach-O, PE)
|
|
* Fast link times
|
|
* Minimal memory use
|
|
* Remove clang's reliance on "the system linker"
|
|
* Uses the LLVM `"UIUC" BSD-Style license`__.
|
|
|
|
* Applications:
|
|
|
|
* Modular design
|
|
* Support cross linking
|
|
* Easy to add new CPU support
|
|
* Can be built as static tool or library
|
|
|
|
* Design and Implementation:
|
|
|
|
* Extensive unit tests
|
|
* Internal linker model can be dumped/read to textual format
|
|
* Additional linking features can be plugged in as "passes"
|
|
* OS specific and CPU specific code factored out
|
|
|
|
Why a new linker?
|
|
-----------------
|
|
|
|
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.
|
|
|
|
|
|
Current Status
|
|
--------------
|
|
|
|
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.
|
|
|
|
Source
|
|
------
|
|
|
|
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.
|
|
|
|
Contents
|
|
--------
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
|
|
design
|
|
getting_started
|
|
development
|
|
windows_support
|
|
open_projects
|
|
sphinx_intro
|
|
|
|
Indices and tables
|
|
------------------
|
|
|
|
* :ref:`genindex`
|
|
* :ref:`search`
|
|
|
|
__ http://llvm.org/docs/DeveloperPolicy.html#license
|