我想使用gold作为我的系统链接器而不是ld,因为ld不支持-fPIC和-shared。 我按照这个特殊的网址这样做, gold-plugin 根据文档, 我运行 gcc -v filename.c 来找出gcc将运行的链接命令。 然后它告诉我检查运行collect2的行并用-plugin /path/to/LLVMgold.so替换它。但是gcc和collect2是二进制文件。 我研究了一下......并且理解gcc调用collect2,然后通过搜索ld-linux.so.2来调用collect2调用系统链接器ld。 我在我的Fedora上安装了gcc4.4.4的rpm包......我怎样才能改变我的配置。
如何让gcc调用ld-new / gold而不是collect2?
答案 0 :(得分:10)
我回答有点迟,但我意识到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
答案 1 :(得分:0)
当我读到像ld或ar这样的标准工具时,无法重命名或具有ld_1.6等扩展名。也许你可以将ld_new的名称更改为ld,并将其地址放在PATH之前的.login.user文件中,或者在命令行中暂时添加。然后,当任何程序调用ld时,你可以确定你的ld将首先被调用,这就是我使用ld-gold而不更改bin / ld的方式。