我正在为 LLVM/Clang 编写自定义通行证,并且重新编译往往需要一段时间并使用大量内存。我听说黄金链接器 (1) 比标准 ld 链接器花费更少的时间和 (2) 使用更少的内存。
有没有办法将标志传递到 LLVM/Clang 构建过程并更改为黄金链接器?根据这个答案,我一直在尝试使用覆盖文件,但我似乎并没有取得很大的成功。
我还要注意,我正在使用 Clang 3.9 编译最新的 Clang/LLVM 构建(4.0);如有必要,我不介意切换回 GCC,但宁愿避免它。
我正在为 LLVM/Clang 编写自定义通行证,并且重新编译往往需要一段时间并使用大量内存。我听说黄金链接器 (1) 比标准 ld 链接器花费更少的时间和 (2) 使用更少的内存。
有没有办法将标志传递到 LLVM/Clang 构建过程并更改为黄金链接器?根据这个答案,我一直在尝试使用覆盖文件,但我似乎并没有取得很大的成功。
我还要注意,我正在使用 Clang 3.9 编译最新的 Clang/LLVM 构建(4.0);如有必要,我不介意切换回 GCC,但宁愿避免它。
Post-4.0(在提交rL292047之后),您应该设置LLVM_USE_LINKER
为gold
:
cmake ... -DLLVM_USE_LINKER=gold ...
参考http://llvm.org/docs/CMake.html#llvm-specific-variables
虽然您仍然可以使用,但这些天(2021 年 10 月)如果它存在于您的主机工具链中,您gold
可能应该使用它。lld
如果您的主机工具链是来自 llvm.org 的 clang+llvm 发行版,它可能会。如果您的主机工具链来自 linux 发行版的包管理器,它可能会可用,但作为单独的独立包安装。
cmake ... -DLLVM_ENABLE_LLD=ON ...