【问题标题】:Is it possible to compile & link Clang/LLVM using the gold linker?是否可以使用黄金链接器编译和链接 Clang/LLVM?
【发布时间】:2017-03-25 00:09:59
【问题描述】:

我正在为 LLVM/Clang 编写自定义通行证,重新编译往往需要一段时间并使用大量内存。我听说黄金链接器 (1) 花费的时间更少,并且 (2) 使用的内存比标准 ld 链接器少。

有没有办法将标志传递到 LLVM/Clang 构建过程并更改为黄金链接器?根据this answer,我一直在尝试使用覆盖文件,但似乎没有取得很大成功。

我还要注意,我正在使用 Clang 3.9 编译最新的 Clang/LLVM 构建 (4.0);如有必要,我不介意切换回 GCC,但宁愿避免它。

【问题讨论】:

  • 只要安装gold包就可以代替ld使用了。
  • 您可能需要考虑 lld 而不是 ld,它声称也更快。不确定它与黄金相比的表现如何。

标签: cmake clang llvm llvm-clang gold-linker


【解决方案1】:

4.0 后(在提交 rL292047 之后),您应该将 LLVM_USE_LINKER 设置为 gold,如下所示:

cmake ... -DLLVM_USE_LINKER=gold ...

参考http://llvm.org/docs/CMake.html#llvm-specific-variables


虽然您仍然可以使用 gold,但现在(2021 年 10 月)您可能应该使用 lld,如果它存在于您的主机工具链中。如果您的主机工具链是来自 llvm.org 的 clang+llvm 发行版,它可能会。如果您的主机工具链来自 linux 发行版的包管理器,它可能会可用,但会作为单独的独立包安装。

cmake ... -DLLVM_ENABLE_LLD=ON ...

【讨论】:

  • 不幸的是,我(现在)坚持使用早期版本的 Clang,但这完美地回答了这个问题。接受!
猜你喜欢
  • 2014-11-12
  • 2012-05-04
  • 2017-12-12
  • 2015-08-17
  • 1970-01-01
  • 2017-08-31
  • 2015-09-07
  • 1970-01-01
  • 2016-11-27
相关资源
最近更新 更多