none rootなcloudlinuxにgcc4.8.3導入
試行錯誤に約4日。コンパイルに半日以上。
とりあえずインストール完了したのでメモ。
GNUで新しいパッケージを既に$HOME/local/以下で利用していたため、
- aclocalは、$HOME/local/binを利用している事を確認。
- PKG_CONFIG_PATHとld.so.confで、いずれも$HOME/local/配下にあるものを、/usr/lib62, /lib64より先に読み込んでいるか確認。
で。
mkdir $HOME/local/gcc
cd $HOME/local/work
wget -O - ftp://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.bz2 | bzip2 -dc | tar xf -
cd gmp-5.1.3
M4=$HOME/local/bin/m4 ./configure --prefix=$HOME/local/gcc --enable-cxx
make -j2
make -j2 check
make install
cd $HOME/local/work
wget -O - http://www.mpfr.org/mpfr-3.1.2/mpfr-3.1.2.tar.bz2 | bzip2 -dc | tar xf -
cd ../mpfr-3.1.2
./configure --prefix=/$HOME/local/gcc --with-gmp=$HOME/local/gcc
make -j2
make -j2 check
make install
cd $HOME/local/work
wget -O - http://www.multiprecision.org/mpc/download/mpc-1.0.2.tar.gz | gzip -dc | tar xf -
cd ../mpc-1.0.2
/configure --prefix=$HOME/local/gcc --with-gmp=$HOME/local/gcc --with-mpfr=$HOME/local/gcc
make -j2
make -j2 check
make install
cd $HOME/local/work
wget -O - http://ftp.gnu.org/gnu/gcc/gcc-4.8.3/gcc-4.8.3.tar.bz2 | bzip2 -dc | tar xf -
mkdir gcc-build
cd gcc-build
../gcc-4.8.3/configure --enable-languages=c,c++,fortran --prefix=$HOME/local/gcc --with-gmp=$HOME/local/gcc --with-mpfr=$HOME/local/gcc --with-mpc=$HOME/local/gcc --with-stage1-ldflags="-
Wl,-rpath,$HOME/local/gcc/lib" --with-boot-ldflags="-Wl,-rpath,$HOME/local/gcc/lib" --with-multilib-list=m64 --program-suffix=46
make -j2
ここで、
msgfmt -o de.mo ../../../../gcc-4.8.3/libstdc++-v3/po/de.po
が、セグメント違反なエラーでコンパイル停止。
$HOME/local/bin/msgfmtでは無く、/usr/bin/msgfmtを使うように変更し、再び、make -j2
make install
ld.so.confの先頭に、$HOME/local/gcc/lib64を追加し、ldconfig実行
$HOME/.bash_profileのPATHの先頭に、$HOME/local/gcc/binを追加し、source $HOME/.bash_profileを実行
さらに、シンボリックリンクを張る。
ln -b -s $HOME/local/gcc/bin/gcc46 $HOME/local/bin/gcc
ln -b -s $HOME/local/gcc/bin/gcc-ar46 $HOME/local/bin/gcc-ar
ln -b -s $HOME/local/gcc/bin/gcc-nm46 $HOME/local/bin/gcc-nm
ln -b -s $HOME/local/gcc/bin/gcc-ranlib46 $HOME/local/bin/gcc-ranlib
ln -b -s $HOME/local/gcc/bin/gcov46 $HOME/local/bin/gcov
ln -b -s $HOME/local/gcc/bin/gfortran46 $HOME/local/bin/gfortran
ln -b -s $HOME/local/gcc/bin/c++46 $HOME/local/bin/c++
ln -b -s $HOME/local/gcc/bin/cpp46 $HOME/local/bin/cpp
ln -b -s $HOME/local/gcc/bin/g++46 $HOME/local/bin/g++