RISC-V port of LLVM Linker
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
COFF Set IsUsedInRegularObj in a consistent manor between COFF, ELF and wa… Aug 2, 2018
Common [LTO] Errors in LLVM backend should manifest as lld errors Jul 2, 2018
ELF Allow empty bss sections Aug 3, 2018
MinGW [MinGW] Implement the GNU ld options -S/--strip-debug Jun 29, 2018
cmake/modules [CMake] Properly conditionalize installation of lld libraries Mar 9, 2018
docs Update docs version and clear release notes after 8.0.0 version bump Aug 1, 2018
include/lld [Darwin] Use errorHandler from liblldCommon Jun 12, 2018
lib Omit path to lld binary from lld's error, warning, and log output. Jul 20, 2018
test [RISCV] Support TLS Aug 3, 2018
tools/lld Add wasm-ld to help text Improve error text Jul 17, 2018
unittests [Darwin] Use errorHandler from liblldCommon Jun 12, 2018
utils Add a script to run various benchmarks and send the result to lnt. Nov 14, 2017
wasm Set IsUsedInRegularObj in a consistent manor between COFF, ELF and wa… Aug 2, 2018
.arcconfig [lld] Set up .arcconfig to point to new Diffusion LLD repository Dec 6, 2017
.clang-format Remove redundant "Standard: Cpp11" tag. The LLVM style has used the Jul 4, 2014
.gitignore Update .gitignore to ignore hidden MacOSX Finder droppings Jul 16, 2014
CMakeLists.txt [WebAssembly] Initial wasm linker implementation Nov 17, 2017
CODE_OWNERS.TXT [WebAssembly] Initial wasm linker implementation Nov 17, 2017
LICENSE.TXT Update copyright year to 2018. Jun 18, 2018
README.md Replace README.md with build instructions Aug 3, 2018

README.md

riscv-lld

This repository contains the RISC-V port of lld (the LLVM linker).

Status

  • Can link static ELF executables
  • Can link dynamic ELF executables (PIE) and shared libraries
  • Thread-local storage (TLS) support
  • Can link RISC-V's Linux kernel
  • Pass most of GCC testsuite modulo error message differences
  • Unit tests

Patches are submitted for review on LLVM phabricator.

This repository will be regularly rebased onto lld master.

How to build

$ git clone https://github.com/llvm-mirror/llvm && cd llvm
$ git checkout 1435ef31d8556e5ab90a6ba8c4947da858625d79
$ git clone https://github.com/riscv/riscv-lld tools/lld
$ mkdir build && cd build
$ cmake -DCMAKE_BUILD_TYPE=Release \
        -DLLVM_ENABLE_PROJECTS=lld \
        -DTARGETS_TO_BUILD= \
        -DEXPERIMENTAL_TARGETS_TO_BUILD=RISCV \
        ..
$ make lld

Usage

You may invoke ld.lld directly or replace ld in the toolchain path with ld.lld:

$ cp bin/ld.lld ${path_to_toolchain}/bin/ld.lld
$ ln -sf ${path_to_toolchain}/bin/{ld.lld,ld}

Issues

Please report issues related to the RISC-V port on GitHub's issue tracker.