6

我想使用 gold 作为我的系统链接器而不是 ld,因为 ld 不支持 -fPIC 和 -shared。我按照这个特定的 url 这样做, gold-plugin 根据文档,我运行gcc -v filename.c以找出 gcc 将运行的链接命令。 然后它告诉我检查运行 collect2 的行并将其替换为 -plugin /path/to/LLVMgold.so。 但是 gcc 和 collect2 是二进制文件。我研究了一下..并了解 gcc 调用 collect2 ,然后 collect2 通过搜索 ld-linux.so.2 调用系统链接器 ld。我在我的 Fedora 上安装了 gcc4.4.4 的 rpm 包...如何更改我的配置。

如何让 gcc 调用 ld-new/gold 而不是 collect2?

4

2 回答 2

11

我回答有点晚了,但我意识到 Fedora 推出了与 binutils 一起分发的黄金。命令是ld.gold。您可以使用以下命令将其选择为默认链接器alternatives

# alternatives --config ld

There is 2 program that provides 'ld'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/bin/ld.bfd
   2           /usr/bin/ld.gold

Enter to keep the current selection[+], or type selection number: 2
于 2014-08-03T20:22:21.667 回答
0

当我阅读像 ld 或 ar 这样的标准工具时,不能重命名或具有像 ld_1.6 或其他任何扩展名。也许您可以将 ld_new 的名称更改为 ld 并将其地址放在 .login.user 文件中的 PATH 之前,或者在命令行中临时添加。然后,当任何程序调用 ld 时,您可以确定您的 ld 将首先被调用,这是我在不更改 bin/ld 的情况下使用 ld-gold 的方式。

于 2013-03-14T14:53:18.940 回答