【发布时间】:2015-09-07 14:11:07
【问题描述】:
我一直在尝试启用 FreeBSD 上的黄金链接器以使用链接时间优化。我从 /usr/ports 下的 binutils 中获得了金子。在使用 make -k install clean 构建 binutils 后,我在 /usr/bin 下得到了 ld,在目录 /usr/local/bin 中得到了 ld、ld.gold 和 ld.bfd。
现在,当我尝试在 http://llvm.org/docs/GoldPlugin.html (标题“链接时间优化示例”下的 a.c 和 b.c )对简单示例程序使用链接时间优化时,我输入了如下四个命令:
clang -flto a.c -c -o a.o
ar q a.a a.o
clang b.c -c -o b.o
clang -flto a.a b.o -o main
我收到以下错误:
usr/bin/ld: unrecogonized option '-plugin'
usr/bin/ld: use the --help option for usage information
clang: error: linker command failed with exit code 1 (use -v to see invocation)
链接器是否存在未调用 ld.gold 的问题。我应该用 ld.gold 替换 ld 吗?链接器是否在正确的目录中查找 .so 插件?
LLVMgold.so 和 libLTO.so 共享对象位于目录 /usr/local/llvm-devel/lib/ 中。 我找不到安装 clang 的目录。我不确定在哪里创建 bfd-plugins 目录并将符号链接添加到 LLVMgold.so 和 libLTO.so。
我使用的是 freebsd 10.1 版本。如何启用黄金链接器以进行链接时间优化? 还有我怎样才能让它成为默认链接器?
【问题讨论】:
-
-fuse-ld=gold可能会给你带来好运。 -
它可能适用于
gcc。据我所知,它不适用于clang。
标签: clang llvm freebsd gold-linker