.. _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
