GCC 4.5.1をビルドしたのでそのときのメモ。
環境は X86_64 Ubuntu 10.10, gcc-4.4.5です。
ビルドに当たり必要となるソフトウェア。詳しいいことはここにあります。
- GMP(5.0.1)
- MPFR(3.0.0)
- MPC(0.8.2)
- PPL(0.11)
- cloog-ppl(0.15.10)
それぞれのインストール手順を示します。(最悪これらは GCCビルド時に
disableとしてしまえばいらないと思います。)
ソースコードの取得は
- GCC,GMP,MPFR:国内ミラー
- PPL:本家
- cloog-ppl:ftp://gcc.gnu.org/pub/gcc/infrastructure/
からそれぞれ行いました。
GMPのインストール
PPLのインストール時に GMPの C++を enableにしろと言われてしまった
ので、--enable-cxxをつけて configureしています。
% ./configure --enable-cxx % make % make check % sudo paco -D make install
MPFRのインストール
GMPを事前にインストールしている必要があります。
% ./configure --with-gmp=/usr/local % make % make check % sudo paco -D make install
gmpをインストールした場所に LD PATHが通っているか確認して
ください。ldconfigとするだけいいと思うのですが、それでもダメ
なら LD_LIBRARY_PATH環境変数にインストールディレクトリを指定
してください。
MPCのインストール
事前に GMPと MPFRをインストールしておく必要があります。
% ./configure --with-gmp=/usr/local --with-mpfr=/usr/local % make % make check % sudo paco -D make install
PPLのインストール
GMPを事前にインストールしておく必要があります。
% ./configure --with-gmp-prefix=/usr/local % make % make check(異常に時間がかかる) % sudo paco -D make install
私のマシン(Core2duo T7500)では 2時間以上かけても make checkが
終わらなかったので途中でやめました。
cloog-pplのインストール
パッチが必要になりますので、パッチを適用します。
% wget http://abechin.sakura.ne.jp/sblo_files/k-tai-douga/gcc/cloog-ppl-0.15.10-makefile.diff % cd (cloog-pplディレクトリ) % patch -p1 < パッチ
ビルド
% ./configure --with-gmp=/usr/local --with-ppl=/usr/local % make % make check % sudo paco -D make install
これでやっと準備できたので GCCをビルドします。
gccのビルド
GCCのビルドはソースツリーのトップで行ってはいけません。GCCソースツリーの外でも中でもいいのですが、ビルド用のディレクトリを作成して行なってください。
% ../configure --enable-languages=c --with-gmp=/usr/local \ --with-mpfr=/usr/local --with-mpc=/usr/local \ --with-ppl=/usr/local --with-cloog=/usr/local \ --prefix=/home/syohei/local/gcc-4.5.1 --disable-nls \ --disable-multilib % make % sudo paco -D make install
make checkは C++のテストがいきなり実行されてしまい、動きませんでした。
これでインストールしたディレクトリに PATHを通せば、作成した GCCが
使えます。
testgenテストスイート
testgenテストスイートというコンパイラのテストスイートを使ってチェックします。
perl、expect、dejagnuが必要になります。詳しくは付属のREADMEを参照。
% cd testgen20070902 (tgen.confのデータ長の情報を編集. longを 8byteにする) % ./bin/tgen.pl template/**/*.tt % cd testsuite % ./RUNTEST
=== gcc Summary === # of expected passes 63844 # of unexpected failures 12 WARNING: gcc_version failed: Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/home/syohei/local/gcc-4.5.1/libexec/gcc/x86_64-unknown-linux-gnu /4.5.1/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../configure --enable-languages=c --with-gmp=/usr/local --with-mpfr= /usr/local --with-mpc-include=/usr/local/include --with-mpc-lib=/usr/local/lib --with -ppl=/usr/local --with-cloog=/usr/local --prefix=/home/syohei/local/gcc-4.5.1 --disab le-nls --disable-multilib Thread model: posix gcc version 4.5.1 (GCC) runtest completed at Sat Jan 22 17:09:15 2011
Ubuntuに元から入っていた結果と同じになりました。64ビット対応できていない
テストスイートなので、ラップアラウンドするようなものだけ失敗したんだと
思います。