我一直在尝试启用 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(标题为“链接时间优化示例”下的 ac 和 bc)时,我输入了如下四个命令:
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 版本。如何启用黄金链接器以进行链接时间优化?还有我怎样才能使它成为默认链接器?