cygwinにgcc-4.3.0(CとC++のみ)をインストールする

cygwinのsetup.exeでは少し古いgcc-3.4.4しかインストールできないようなので現在最新の4.3.0をインストールすることにした。
ここにやり方をメモしておく。
きちんとgccをインストールしたい方はgccのドキュメントを参照して下さい。

必要なpackageのリスト

cygwinのsetup.exeで以下のものをインストールしておく。

  • tarとgzipかbzip2(落したファイルを解凍する為。bzip2のほうが圧縮率が高い)
  • gcc
  • make
  • libgmp-devel
  • libgmp3
  • libmpfr-devel
  • libmpfr

download

gcc本家のページからgcc-core-4.3.0.tar.bz2とgcc-g++-4.3.0.tar.bz2をダウンロードし

$ tar xjvf gcc-core-4.3.0.tar.bz2
$ tar xjvf gcc-g++-4.3.0.tar.bz2

これでgcc-4.3.0ディレクトリ下に二つのファイルを解凍したものが置かれる。

configuration

gcc-4.3.0内で作業するのはよろしくないので別のディレクトリ内で作業する。
ここではobjdirを作ってそこで作業する。

$ mkdir objdir
$ cd objdir

次にconfigureする

$ ../gcc-4.3.0/configure --enable-languages=c,c++ --enable-threads=posix --enable-version-specific-runtime-libc

configureするときのオプションはcygwingcc -vで表示されるのと同じものを指定しておけばたぶん大丈夫だと思うが
今回はcとc++さえ使えればよいので必要なものだけ指定しておく。

各オプションの簡単な説明
      • enable-languages=c,c++

使うプログラミング言語を指定する

thread modelを指定する。本家ドキュメントによればruntime libraryと例外処理に影響するらしい。

      • enable-version-specific-runtime-libc

複数versionのgccをインストールする人向けにruntime libraryをインストールするgccディレクトリ化にインストールする。

buildする

make bootstrapでビルドできるらしいが,デフォルトだと'-g -O2'でコンパイルされる。
デバッグ情報は必要無いと思うのでBOOT_CFLAGS='-O2'を指定することにした。
bootstrap-leanだとビルド中に生成するファイルがいらなくなったらすぐに消されるので必要なディスク容量が減るらしい。
quad core CPUを持ってるけどビルド中にブラウザを使いたいのでオプション'-j 3'を指定することにした。
約1時間でbuildできた。

$ make BOOT_CFLAGS='-O2' -j 3 bootstrap

install

最後に

make install

で完了。