gcc5.3.0をコンパイル、リンク、インストール

Squid3.5がどうも不安定。なんだかときどきエラーを返して、バックエンドへちゃんとリクエストを取り次がないことがある。
yumredhatリポジトリから取ってくると、Squid3.1.23になってる。3.1ってもう三年前のブツだけどなぁ。それが安定してるってことなんだろうか。

まぁ戻すのはいつでもできるので、前へすすむことを考えよう。幸いにもSquidにはVersion4がでていて、いま最新は4.0.7。これをコンパイルリンクしようとすると、これもエラーがでる。どうもgccの環境がよくないみたい。

そこでgccの最新版をインストールする。yumではgcc4.8くらいしか入らないので久しぶりにソースからコンパイル、リンクしてみよう。

ソース

ソースはここから入手できます。
https://gcc.gnu.org/mirrors.html
お近くのミラーから。最新は5.3.0ですね。大丈夫かな。

その他必要物件

gmp,mpfr,mpcが必要です。これもgnuftpサイトから入手可能。
最新をダウンロードしておきましょう。

gccを展開

適当なディレクトリへダウンロードしたgcc-5.3.0.tar.gzを展開します。

$ mkdir gcc
$ cd gcc
$ tar -zxvf /tmp/gcc-5.3.0.tar.gz

次にビルドディレクトリを作成。

$ cd gcc-5.3.0
$ mkdir objdir

gmp,mpfr,mpcを展開

どこでもいいので展開する。ここではさっき作ったgccディレクトリに展開。

$ cd ..
$ pwd
/home/hoge/gcc
$ tar -zxvf /tmp/mpc-1.0.3.tar.gz
$ tar -Jxvf /tmp/mpfr-3.1.4.tar.xz
$ tar -Jxvf /tmp/gmp-6.1.0.tar.xz

展開したgmp,mpfr,mpcをgccディレクトリへリンクする

gcc-5.3.0ディレクトリ(ビルドディレクトリの一つ上)へリンクします。

$ cd gcc-5.3.0
$ pwd
/home/hoge/gcc/gcc-5.3.0
$ ln -s ../gmp-6.1.0 ./gmp
$ ln -s ../mpfr-3.1.4 ./mpfr
$ ln -s ../mpc-1.3.0 ./mpc

ビルドディレクトリでconfigure

configureオプションは適当に。既存のgccと併用したいのでprefixは付けずにデフォルトの/usr/localでやりました。それとjavaとかfortlanとか有効にするとよくわからないエラーがでるのでそのオプションも外す。
32bitの開発環境併用していない場合はdiable-multilibもつける。

$ cd objdir
../configure --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++ --disable-dssi --enable-libgcj-multifile --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux --disable-multilib
$ make -j8

インストール

# make install