のろのろとgcc 4.8.1を作ってみる(その4)
はぁーやっぱりOSとか言語のコンパイルは疲れますね。コンパイル長いし、makeバグが潜んでるしで…。ともあれ、なんとか無事にgcc 4.8.1(32bit版)が出来たので、次のverか64bit化の為に記録を残しておきます。
※ここに書いてあるのは、gcc 4.6.2(多分それ以前)からgcc 4.8.1を生成する方法です。gcc 4.7.xに上げている場合は、2013/6/30の記事を読んでください。
開発環境
- MinGW(32bit版)
2013/6/2時点の最新。mingw-get-inst-20120426.exe内蔵カタログファイルで指定されたMinGW/MSYSのバージョン環境(※2013/6/30訂正)。C、C++、MSYS Basic System、MinGW Developer Toolkitを選択してインストールしてある。- binutils
- 上記MinGW環境で必要要件は満たしているが、2013/6/23にbinutilsをv2.22からv2.23.2に入れ替えている。
- Ada(GNAT)
- Adaを作りたい/使いたい人だけ。MinGW Shell上から「which gnatmake」と実行し、コマンドが見つかれば、それでOK。見つからない人は、「mingw-get install gcc-ada-bin」と実行してください。
- スレッドモデル
- オリジナルのgccがwin32スレッドなので、そのままwin32スレッドで行きます。他の選択肢にはPOSIXスレッドがありますが、困ったときに考えます。
入手物
必要要件の詳細は、gccを展開したディレクトリの下のINSTALL/prerequisites.htmlを読んでください。
- gcc v4.8.1
- http://ftp.gnu.org/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.bz2
- GMP v5.1.2
- http://ftp.gnu.org/gnu/gmp/gmp-5.1.2.tar.xz
- MPFR v3.1.2
- http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.2.tar.xz
- MPC v1.0.1
- http://ftp.gnu.org/gnu/mpc/mpc-1.0.1.tar.gz
- ISL v0.11.1
- ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.11.1.tar.bz2
- CLooG v0.18.0
- ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.0.tar.gz
- zlib v1.2.8
- http://www.zlib.net/ から http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.xz?download
gcc v4.8.1にzlib v1.2.7が入っているので、本当は必要ないけれども、v1.2.8でバグ修正が入っているので念のため。 - libiconv v1.14
- http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz
必要要件に入っていないけれども必要
のろのろとgcc 4.8.1を作ってみる
4.7の構造と微妙に違うなぁと思いつつ、ぼちらぼちらとmakeをしてみる。しかし、1ターン3時間なのでbinutilsと違いのんびりだ。エラーが出ても暫く気がつかない。んー何だかな。
ちょっと違う話だが、セキュリティソフトにESET Smart Security5を使っているのだが、コンパイル中にconftestがトロイの木馬だと言われて隔離されてしまう。conftestは、そのシステムが要求する機能や関数を持っているかどうかを、調べるための中間ファイルなので、トロイの木馬ではないのだが、バイナリのどこかが一致してしまう様だ。なんて面倒な奴なんだ…このディレクトリの配下は信用できると定義したいぞ!