2007/04/06
x86_64 システム Gentoo で gcc をビルドする
gcc 改造しまくるためにまずはビルドだと思って早速ビルドしたらエラーでたのでその対処メモです。
ちなみに詳細は環境は以下のようになっています。
% uname -a Linux gentoo 2.6.20-gentoo #1 SMP Tue Feb 6 22:47:22 JST 2007 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4600+ AuthenticAMD GNU/Linux
最初にエラーが出るビルド方法を紹介しておきます。
% cd gcc-4.1.2 % ./configure % make
エラーを調べてみると、 -m32 でコンパイルされたオブジェクトファイルをリンクするときに ld が /usr/lib64 のほうを読みにいっていてオブジェクトファイルと共有オブジェクトファイルとのアーキテクチャが合わないのが原因らしいです。
そこでまずは google 先生に解決策を尋ねてみるのですが納得のいく回答が得られず、かといって gcc の ebuild とか eclass なんて読む気が起こるわけもなく、とりあえず力技で行こうということで sed で -m32 を取りのぞいてみたりしたのですが、他の所で新しいエラーが出てきて切りがない状態になりました。しょうがなく観念して toolchain.eclass を読んでいると、何やら multilib というとっても怪しい feature に出くわしたので、適当に
% cd gcc-4.1.2 % ./configure --disable-multilib --enable-languages=c,c++ % make
とやってみると見事にビルドできました。 multilib なシステムで --enable-multilib じゃなく --diable-multilib でビルドできるってのがとても不思議ですが取りあえずちゃんと動いているようなので、これで良しということにします( gcc は深く追求すると時間がいくらあっても足りない)。
#ちなみに ebuild コマンド使うってのは個人的に反則です
以上。
以下適当にリンク貼りまくる。
-http://people.redhat.com/dnovillo/Papers/#cgo2007 --2007 International Symposium on Code Generation and Optimization (CGO) っていうスライド --図が多用されていて大変わかりやすい --他のスライドはまだ読んでない -http://gcc.gnu.org/wiki/Speedup_areas --コンパイルの遅さでは他の追随を許さない gcc 。そんな gcc 嫌いだ!っていうテーマ。 --まあ普通に考えて frontend -> generic -> gimple -> rtl -> asm だけでも十分遅くなりそう -http://gcc.gnu.org/wiki/HomePage --GCC summit proceedings
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/matsuyama/build-gcc-on-gentoo-64/tbping
Re:x86_64 システム Gentoo で gcc をビルドする