gccアップグレード手順

■ソースダウンロード
http://gcc.gnu.org/mirrors.html より、gcc-4.3.3.tar.gzをダウンロード。
■インストール

$ tar zxvf gcc-4.3.3.tar.gz
$ mkdir gcc-4.3.3-obj  ←重要!gccはgcc-4.3.3の中でmakeすると失敗する。
$ cd gcc-4.3.3-obj
$ ../gcc-4.3.3/configure
$ make
# make install

■コンパイルエラーが出る場合の対処
CentOS5.x環境では、上記の手順で大丈夫なはずだが、他のディストリビューションだと、
configure時に、GMPとMPFRがありませんというエラーが表示される場合がある。
その場合は以下の手順で対処。
■gmpインストール
http://gmplib.org/#DOWNLOAD より、gmp-4.3.0.tar.gzをダウンロード。

$ tar zxvf gmp-4.3.0.tar.gz
$ cd gmp-4.3.0
$ ./configure --prefix=/usr/local/gmp
$ make
$ make check
# make install

■mpfrインストール
http://www.mpfr.org/mpfr-current/#download より、mpfr-2.4.1.tar.gzをダウンロード。

$ tar zxvf mpfr-2.4.1.tar.gz
$ cd mpfr-2.4.1
$ ./configure --prefix=/usr/local/mpfr
$ make
$ make check
# make install

■システムにライブラリを認識させる

# vi /etc/ld.so.conf
/usr/local/gmp/lib
/usr/local/mpfr/lib

を追加。

# ldconfig

で反映。
■gccのビルド
prefixの値は適時変更すること。
インストールしたgccを優先したい場合は/usr/localに。
既存のgccを優先したい場合は、/usr/local/gccにインストールすると良い。

$ tar zxvf gcc-4.3.3.tar.gz
$ mkdir gcc-4.3.3-obj  ←重要!gccはgcc-4.3.3の中でmakeすると失敗する。
$ cd gcc-4.3.3-obj
$ ../gcc-4.3.3/configure --prefix=/usr/local/gcc --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr
$ make
# make install

■システムにgccのライブラリを認識させる
作成したバイナリの起動時にGLIBCXX_3.4.9 not foundとかいわれる場合があるので、
システムにgccライブラリを認識させる必要がある。
/usr/localにインストールした場合

# vi /etc/ld.so.conf
/usr/local/lib ←を一番最後に追加

/usr/local/gccにインストールした場合。

# vi /etc/ld.so.conf
/usr/local/gcc/lib
# ldconfig

で反映。
本当はrpathとかで対処したほうが良いのかも?
■シンボリックリンク作成
/usr/localにインストールした場合。

$ cd /usr/local/bin
# ln -s gcc cc
# ln -s /usr/local/bin/cc cc_4.3.3
# ln -s /usr/local/bin/gcc gcc_4.3.3
# ln -s /usr/local/bin/g++ g++_4.3.3
# ln -s /usr/local/bin/cpp cpp_4.3.3

/usr/local/gccにインストールした場合

$ cd /usr/local/gcc/bin
# ln -s gcc cc
$ cd /usr/local/bin
# ln -s /usr/local/gcc/bin/cc cc_4.3.3
# ln -s /usr/local/gcc/bin/gcc gcc_4.3.3
# ln -s /usr/local/gcc/bin/g++ g++_4.3.3
# ln -s /usr/local/gcc/bin/cpp cpp_4.3.3

/usr/local/gcc-4.3.3にインストールした場合(こうすると複数バージョンの混在が容易)

$ cd /usr/local/gcc-4.3.3/bin
# ln -s gcc cc
$ cd /usr/local/bin
# ln -s /usr/local/gcc-4.3.3/bin/cc cc_4.3.3
# ln -s /usr/local/gcc-4.3.3/bin/gcc gcc_4.3.3
# ln -s /usr/local/gcc-4.3.3/bin/g++ g++_4.3.3
# ln -s /usr/local/gcc-4.3.3/bin/cpp cpp_4.3.3
$ cd /usr/local
$ ln -s gcc-4.3.3 gcc

■確認

$ gcc_4.3.3 -v

gcc version 4.3.3(GCC)
と表示されれば成功。
■参考サイト
http://www.nabble.com/-Bug-bootstrap-35577—New:-configure:-error:-cannot-compute-suffix-of-object-files-td16038190.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です