Linker lld链接器是ld和gold的替代品吗?
Linker lld链接器是ld和gold的替代品吗?,linker,lld,Linker,Lld,lld目前正在开发中,每周都会添加新功能。它的开发者承诺lld比ld更快。与金牌相比,它的竞争力如何 lld是否可以替代ld?与.一位LLD开发者Rui Ueyama回顾了LLD在2016年取得的进展,请参阅 “现在我非常确信,[LLD]将成为现有GNU链接器[…]的一个重要(而且在我看来更好)替代品。” “LLD现在可以链接大多数x86-64用户区程序。” “FreeBSD项目,我们正试图使LLD成为操作系统的系统默认链接器,除了一些棘手的程序,如内核或引导加载程序外,链接器基本上工作正常。
lld
目前正在开发中,每周都会添加新功能。它的开发者承诺lld
比ld
更快。与金牌相比,它的竞争力如何
lld是否可以替代
ld
?与.一位LLD开发者Rui Ueyama回顾了LLD在2016年取得的进展,请参阅
- “现在我非常确信,[LLD]将成为现有GNU链接器[…]的一个重要(而且在我看来更好)替代品。”
- “LLD现在可以链接大多数x86-64用户区程序。”
- “FreeBSD项目,我们正试图使LLD成为操作系统的系统默认链接器,除了一些棘手的程序,如内核或引导加载程序外,链接器基本上工作正常。”
- “LLD支持x86、x86-64、x32、AArch64、AMDGPU、ARM、PPC64和MIPS32/64, 尽管完整性各不相同。”
- “[T]这里已经有一些系统使用LLD作为系统 链接器,如CloudABI或Fuchsia.Chromium和Clang/LLVM本身 生成选项以使用LLD生成它们。”
- “LLD在今年年初变得更快[…], LLD用了大约16秒来生成1.5 GB的clang(调试构建) 现在,单核大约需要14.5秒,8.5秒 在20个磁芯上ld.gold大约需要25秒和20秒, 如果您有链接时间过长的问题,我建议您尝试LLD。“
它还包含关于如何使用LLD的简要说明。该程序本身声称具有兼容性目标,并且似乎在简单测试中运行良好 例如,在Ubuntu 20.04上: 说: 我能够用
-fuse ld=lld
编译一个C hello world:
gcc -fuse-ld=lld -ggdb3 -O0 -std=c11 -Wall -Wextra -pedantic -o hello.out hello.c
性能基准vs黄金
我将很快在以下网站上记录结果:他们声称使用新的ELF lld链接Clang的速度是gold的两倍,但二进制文件更大。尽管缺少一些功能,但这看起来很有希望。使用lld和FreeBSD的WIP补丁,可以链接一个工作的基本系统内核和用户区。来源:gcc v9.3.0+现在支持通过-fuse ld=lld使用lld。外部参照:
LLD 10.0.0 (compatible with GNU linkers)
gcc -fuse-ld=lld -ggdb3 -O0 -std=c11 -Wall -Wextra -pedantic -o hello.out hello.c