Is the lld linker a drop-in replacement for ld and gold?
The program itself claims compatibility goal, and seems to work fine on simple tests
This design goal is claimed on their website:
LLD is a drop-in replacement for the GNU linkers that accepts the same command line arguments and linker scripts as GNU.
E.g. on Ubuntu 20.04 I install:
sudo apt install lld
lld --version
says:
LLD 10.0.0 (compatible with GNU linkers)
and I'm able to compile a C hello world with -fuse-ld=lld
:
gcc -fuse-ld=lld -ggdb3 -O0 -std=c11 -Wall -Wextra -pedantic -o hello.out hello.c
Performance benchmark vs gold
I'll document results soon at: Replacing ld with gold - any experience?
One of the LLD developers, Rui Ueyama, looks back at the progress LLD did in 2016, see http://lists.llvm.org/pipermail/llvm-dev/2016-December/107981.html.
- "Now I'm pretty sure that that [LLD] is going to be a serious (and better, in my opinion) alternative to the existing GNU linkers [..]."
- "LLD is now able to link most x86-64 userland programs."
- "The FreeBSD project and we are trying to make LLD the system default linker of the operating system, and except a few tricky programs such as the kernel or a bootloader, the linker works mostly fine." Already achieved!
- "LLD supports x86, x86-64, x32, AArch64, AMDGPU, ARM, PPC64 and MIPS32/64, though completeness varies."
- "[T]here are already a few systems that are using LLD as system linkers, such as CloudABI or Fuchsia. Chromium and Clang/LLVM itself has build options to use LLD to build them."
And, as a bonus:
- "LLD got faster [..] At the beginning of this year, LLD took about 16 seconds to produce a 1.5 GB clang (debug build) executable. Now, it takes about 14.5 seconds on single core and 8.5 seconds on 20 cores. ld.gold takes about 25 seconds and 20 seconds, respectively. [..] If you have a problem of too long link time, I'd recommend to try LLD."
Update spring 2017 According to one of the developers "LLD/ELF is now ready for production use at least for x86-64 (and probably for AArch64 and MIPS).", see http://lists.llvm.org/pipermail/llvm-dev/2017-March/111083.html It also contains a brief description on how to make use of LLD.