あらまし
開発時に、/usr/bin/ld
を、ld.bfd
(GNU ld、昔からある)とld.gold
(GNU gold、近年新しく追加された)を切り替える必要があった。
apt-get install binutils
した直後は/usr/bin/ld -> ld.bfd
とシンボリックリンクされている。
ld.gold
を使いたいなら、これをld.gold
にシンボリックリンクしなおせば良い。
が、 なんかスマートじゃない ので、もうちょっと良い方法を探してみる。
環境
- Ubuntu 12.04 LTS 32bit, 64bit
本題
答えはWebKitのページから見つかった。
http://trac.webkit.org/wiki/WebKitGTK/SpeedUpBuild
以下のようにすれば、ld.bfd
とld.gold
を切り替えられるようになる。
$ sudo update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.gold" 20
$ sudo update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.bfd" 10
$ sudo update-alternatives --config ld # どれにするか聞いてくる
$ sudo update-alternatives --set ld /usr/bin/ld.bfd # 明示的に設定
注意
Be aware that colorgcc might cause linking issues when using ld.gold.
と書いてあるので、colorgcc
をお使いの方はご注意ください。
結び
不幸にもld
がGNU goldを期待するプロジェクトと、
ld
がGNU ldを期待するプロジェクトの双方を期待されているときは上記を使うと少し幸せになるかも。
参考
-
http://trac.webkit.org/wiki/WebKitGTK/SpeedUpBuild
- 下の方に
ccache
,distcc
,icecc
など、ビルド効率アップにつながるツールが書いてある。お勧め。
- 下の方に
-
http://www.gnu.org/software/binutils/
- GNU ld, GNU gold も
binutils
に含まれるソフトウェアの1つらしい
- GNU ld, GNU gold も