lld 链接器是 ld 和 gold 的直接替代品吗?
Is the lld linker a drop-in replacement for ld and gold?
linker from the LLVM project lld
目前正在开发中,每周都会添加新功能。它的开发者承诺 lld
比 ld
更快。与 gold
相比,它的竞争力如何?
lld 是 ld
的直接替代品吗?随着 gold there are some hoops to jump through.
LLD 开发者之一 Rui Ueyama 回顾了 LLD 在 2016 年取得的进展,参见 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 支持 x86、x86-64、x32、AArch64、AMDGPU、ARM、PPC64 和 MIPS32/64,
尽管完整性各不相同。"
- [T]这里已经有一些系统使用LLD作为系统
linker,例如 CloudABI 或 Fuchsia。 Chromium 和 Clang/LLVM 本身有
构建选项以使用 LLD 来构建它们。"
还有,作为奖励:
- “LLD 变得更快 [..] 今年年初,
LLD 花了大约 16 秒来产生 1.5 GB 的声音(调试版本)
可执行。现在,单核大约需要 14.5 秒,8.5 秒
在 20 个内核上。 ld.gold大约需要25秒和20秒,
分别。 [..]如果你遇到link时间过长的问题,我建议你试试LLD。"
更新 spring 2017 根据其中一位开发者的说法 "LLD/ELF is now ready for production use at least for x86-64 (and probably for AArch64 and MIPS).",参见 http://lists.llvm.org/pipermail/llvm-dev/2017-March/111083.html
它还包含有关如何使用 LLD 的简要说明。
程序本身声称有兼容性目标,并且似乎在简单测试中运行良好
此设计目标已声明 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.
例如在 Ubuntu 20.04 I install:
sudo apt install lld
lld --version
说:
LLD 10.0.0 (compatible with GNU linkers)
并且我能够使用 -fuse-ld=lld
:
编译一个 C hello world
gcc -fuse-ld=lld -ggdb3 -O0 -std=c11 -Wall -Wextra -pedantic -o hello.out hello.c
性能基准对比黄金
我将很快记录结果:Replacing ld with gold - any experience?
linker from the LLVM project lld
目前正在开发中,每周都会添加新功能。它的开发者承诺 lld
比 ld
更快。与 gold
相比,它的竞争力如何?
lld 是 ld
的直接替代品吗?随着 gold there are some hoops to jump through.
LLD 开发者之一 Rui Ueyama 回顾了 LLD 在 2016 年取得的进展,参见 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 支持 x86、x86-64、x32、AArch64、AMDGPU、ARM、PPC64 和 MIPS32/64, 尽管完整性各不相同。"
- [T]这里已经有一些系统使用LLD作为系统 linker,例如 CloudABI 或 Fuchsia。 Chromium 和 Clang/LLVM 本身有 构建选项以使用 LLD 来构建它们。"
还有,作为奖励:
- “LLD 变得更快 [..] 今年年初, LLD 花了大约 16 秒来产生 1.5 GB 的声音(调试版本) 可执行。现在,单核大约需要 14.5 秒,8.5 秒 在 20 个内核上。 ld.gold大约需要25秒和20秒, 分别。 [..]如果你遇到link时间过长的问题,我建议你试试LLD。"
更新 spring 2017 根据其中一位开发者的说法 "LLD/ELF is now ready for production use at least for x86-64 (and probably for AArch64 and MIPS).",参见 http://lists.llvm.org/pipermail/llvm-dev/2017-March/111083.html 它还包含有关如何使用 LLD 的简要说明。
程序本身声称有兼容性目标,并且似乎在简单测试中运行良好
此设计目标已声明 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.
例如在 Ubuntu 20.04 I install:
sudo apt install lld
lld --version
说:
LLD 10.0.0 (compatible with GNU linkers)
并且我能够使用 -fuse-ld=lld
:
gcc -fuse-ld=lld -ggdb3 -O0 -std=c11 -Wall -Wextra -pedantic -o hello.out hello.c
性能基准对比黄金
我将很快记录结果:Replacing ld with gold - any experience?