20

LLVM 项目 的链接器lld目前每周都在开发新功能。它的开发者承诺lldld. 与它相比如何竞争gold

lld 是替代品ld吗?有了黄金,有一些箍要跳过去

4

2 回答 2

12

其中一位 LLD 开发人员 Rui Ueyama 回顾了 LLD 在 2016 年取得的进展,请参阅http://lists.llvm.org/pipermail/llvm-dev/2016-December/107981.html

  • “现在我很确定 [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 秒,20 核大约需要 8.5 秒。ld .gold 分别需要大约 25 秒和 20 秒。[..] 如果您遇到链接时间过长的问题,我建议您尝试 LLD。”

2017 年春季更新根据一位开发人员的说法,“LLD/ELF 现在至少可用于 x86-64(可能用于 AArch64 和 MIPS)。”,请参阅http://lists.llvm.org/pipermail/llvm -dev/2017-March/111083.html 它还包含有关如何使用 LLD 的简要说明。

于 2016-12-19T11:53:21.867 回答
2

该程序本身声称具有兼容性目标,并且似乎在简单测试中运行良好

这个设计目标在他们的网站上声称:

LLD 是 GNU 链接器的直接替代品,它接受与 GNU 相同的命令行参数和链接器脚本。

例如在 Ubuntu 20.04我安装

sudo apt install lld
lld --version

说:

LLD 10.0.0 (compatible with GNU linkers)

我可以编译一个 C hello world -fuse-ld=lld

gcc -fuse-ld=lld -ggdb3 -O0 -std=c11 -Wall -Wextra -pedantic -o hello.out hello.c

性能基准与黄金

我将很快记录结果:用黄金替换 ld - 有什么经验吗?

于 2020-09-24T12:08:54.537 回答