前の記事 gcc141202

GCC-4.9.2 released [2014-10-30]とある。正直ディストリビュータが提供するGCCしか使わないのだが、
最新のGCCでコンパイルすれば多少早くなるかな?って期待もある。
まあー素直にIntel様謹製コンパイラーを使うべきなのでしょうが、懐が寂しいと....
っで、GCCの最新版を久々に作ってみることにした。

「Prerequisites for GCC」
https://gcc.gnu.org/install/prerequisites.html
によれば

  • GNU Multiple Precision Library (GMP) version 4.3.2 (or later)
  • MPFR Library version 2.4.2 (or later)
  • MPC Library version 0.8.1 (or later)
  • ISL Library version 0.12.2

は必須なライブラリらしい。まずはこれを調理。一応事前に

[root@s ~]# yum -y groupinstall "Development tools"
[root@s ~]# yum -y install dejagnu guile-devel zlib-devel
[root@s ~]# export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/opt/local/bin && export LANG=C && unset LD_LIBRARY_PATH

と開発環境は整えておく。

1.GNU Multiple Precision Library (GMP)

本家 http://gmplib.org/

[root@s ~]# wget ftp://ftp.gmplib.org/pub/gmp-6.0.0/gmp-6.0.0a.tar.xz
[root@s ~]# xz -cd gmp-6.0.0a.tar.xz | tar xf - && cd gmp-6.0.0
[root@s gmp-6.0.0]# CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/opt/local --libdir=/opt/local/lib64
[root@s gmp-6.0.0]# make; make check; make install
[root@s gmp-6.0.0]# echo "/opt/local/lib64" > /etc/ld.so.conf.d/opt.lib64.conf
[root@s gmp-6.0.0]# ldconfig -v
(略)
/opt/local/lib64:
        libgmpxx.so.4 -> libgmpxx.so.4.4.0
        libgmp.so.10 -> libgmp.so.10.2.0
(略)
[root@s gmp-6.0.0]# cd ..
[root@s ~]#

2. MPFR Library(MPFR: the Multiple Precision Floating-Point Reliable Library)

本家 http://www.mpfr.org/

[root@s ~]# wget http://www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.xz
[root@s ~]# xz -cd mpfr-3.1.2.tar.xz | tar xf - && cd mpfr-3.1.2
[root@s mpfr-3.1.2]# ./configure --with-gmp-include=/opt/local/include --with-gmp-lib=/opt/local/lib64 \
  --prefix=/opt/local --libdir=/opt/local/lib64
[root@s mpfr-3.1.2]# make; make check; make install; ldconfig
[root@s mpfr-3.1.2]# cd ..
[root@s ~]#

*ldconfigはMPC Libraryの構築の際、このMPFRが必要なので

3. MPC Library( multiple-precision complex number computations)

本家 http://www.multiprecision.org/

[root@s ~]# wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz
[root@s ~]# gzip  -cd mpc-1.0.2.tar.gz | tar xf - && cd mpc-1.0.2
[root@s mpc-1.0.2]# CPPFLAGS=-I/opt/local/include ./configure --with-gmp-lib=/opt/local/lib64 \
   --with-mpfr-lib=/opt/local/lib64 --prefix=/opt/local --libdir=/opt/local/lib64
[root@s mpc-1.0.2]# make ; make check ; make install ; ldconfig
[root@s mpc-1.0.2]# cd ..
[root@s ~]#

4.ISL Library

[root@s ~]# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.12.2.tar.bz2
[root@s ~]# bzip2 -cd isl-0.12.2.tar.bz2 | tar xf - && cd isl-0.12.2
[root@s isl-0.12.2]# ./configure --with-gmp-prefix==/opt/local  \
   --prefix=/opt/local --libdir=/opt/local/lib64 --with-gmp=system --with-piplib=no
[root@s isl-0.12.2]# make ; make check ; make install ; ldconfig
[root@s isl-0.12.2]# cd ..
[root@s ~]#

*ldconfigの際、libisl.so.10.2.2-gdb.py は でELF fileでないとエラーが表示される。そのままでもいいかな。正直後先考えに削除してますが、、、

5.CLooG

本来、ISLまでかと思っていた。っがGCC-4.9.2のコンパイルの際、ClooGのオプションが見える...なのでこれも入れてみた。

本家 http://www.cloog.org/

[root@s ~]# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz
[root@s ~]# gzip -cd cloog-0.18.1.tar.gz | tar xf - && cd cloog-0.18.1
[root@s cloog-0.18.1]# CPPFLAGS="-I/opt/local/include" ./configure --with-gmp-prefix==/opt/local  \
--prefix=/opt/local --libdir=/opt/local/lib64 --with-isl=system --with-gmp=system
[root@s cloog-0.18.1]# make ; make check ; make install ; ldconfig
[root@s cloog-0.18.1]# cd ..
[root@s ~]#

6.autogen

gccのmake checkに必要になります。

[root@s ~]# wget http://ftp.gnu.org/gnu/autogen/rel5.18.4/autogen-5.18.4.tar.xz
[root@s ~]# xz -cd autogen-5.18.4.tar.xz | tar xf - && cd autogen-5.18.4
[root@s autogen-5.18.4]# 
[root@s autogen-5.18.4]# ./configure --prefix=/opt/local --libdir=/opt/local/lib64
[root@s autogen-5.18.4]# make ; make check ; make install
[root@s autogen-5.18.4]# cd ..
[root@s ~]#
 
***GCC-4.9.2
必要なライブラリが揃ったので、ここで本体をコンパイル。
#code(nonumber){{
[root@s ~]# export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/opt/local/bin && export LANG=C
[root@s ~]# export LD_LIBRARY_PATH=/opt/local/lib64
[root@s ~]# wget http://ftp.riken.jp/GNU/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2
[root@s ~]# bzip2 -cd gcc-4.9.2.tar.bz2 | tar xf -
[root@s ~]# mkdir build-gcc492 && cd build-gcc492/
[root@s build-gcc492]#
[root@s build-gcc492]# ../gcc-4.9.2/configure \
--enable-languages=c,c++,fortran \
--enable-bootstrap \
--enable-shared \
--enable-threads=posix \
--enable-checking=release \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-gnu-unique-object \
--with-gmp=/opt/local --with-gmp-include=/opt/local/include --with-gmp-lib=/opt/local/lib64 \
--with-mpfr=/opt/local --with-mpfr-include=/opt/local/include --with-mpfr-lib=/opt/local/lib64 \
--with-mpc=/opt/local --with-mpc-include=/opt/local/include --with-mpc-lib=/opt/local/lib64 \
--with-isl=/opt/local --with-isl-include=/opt/local/include --with-isl-lib=/opt/local/lib64 \
--with-cloog=/opt/local --with-cloog-include=/opt/local/include --with-cloog-lib=/opt/local/lib64 \
--prefix=/opt/local/gcc492 \
--libdir=/opt/local/gcc492/lib64 \
--with-local-prefix=/opt/local/gcc492 \
--with-pkgversion="gcc-4.9.2 20141202 by chaperone" --without-bugurl --disable-multilib
 
[root@s build-gcc492]# make |tee make-log                 *紅茶とケーキで気長に待ちましょう
[root@s build-gcc492]# make check |tee -a make-log        *追加の紅茶3杯頂けます。
[root@s build-gcc492]# make install

使用するには

作ったコンパイラーを使うには

export PATH=/opt/local/gcc492/bin:$PATH
export LD_LIBRARY_PATH=/opt/local/lib64:/opt/local/gcc492/lib:/opt/local/gcc492/lib64

とする。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2014-12-03 (水) 01:17:22 (961d)