2014年07月25日

gfortran 4.7

 訳あって(=nbo6GAMESS と一緒に使いたかったので)、gfortran 4.7 を Mac にインストールすることになった。ネット検索すると MacPorts や Homebrew を使う方法が出てくるのだが、gcc/g++/gfortran だけ欲しいんだけど、と探していると、見つかりました。「gcc 4.7.2 をインストールする」。Linux 用の手順だけど、どのマシンでも OS でも同じです、と断言されているので、やってみたら、うまくいきました。

使ったファイル:gcc-4.7.1.tar.gz (site), mpc-0.9.tar.gz (site), mpfr-3.1.2.tar.gz (site), gmp-5.0.5.tar.bz2 (site)。

手順:

$ tar xjf gmp-5.0.5.tar.bz2 $ cd gmp-5.0.5 $ mkdir build; cd build $ ../configure --prefix=/usr/local/gcc-4.7 --disable-shared \ --enable-static CFLAGS=-fPIC CXXFLAGS=-fPIC $ make -j 2 $ sudo make install $ tar xzf mpfr-3.1.2.tar.gz $ cd mpfr-3.1.2 $ mkdir build; cd build $ ../configure --prefix=/usr/local/gcc-4.7 --disable-shared \ --enable-static CFLAGS=-fPIC CXXFLAGS=-fPIC \ --with-gmp=/usr/local/gcc-4.7 $ make -j 2 $ sudo make isntall $ tar xzf mpc-0.9.tar.gz $ cd mpc-0.9 $ mkdir build; cd build $ ../configure --prefix=/usr/local/gcc-4.7 --disable-shared \ --enable-static CFLAGS=-fPIC CXXFLAGS=-fPIC \ --with-gmp=/usr/local/gcc-4.7 --with-mpfr=/usr/local/gcc-4.7 $ make -j 4 $ sudo make install $ tar xzf gcc-4.7.1.tar.gz $ cd gcc-4.7.1 $ mkdir build; cd build $ ../configure --prefix=/usr/local/gcc-4.7 --with-gmp=\ /usr/local/gcc-4.7 --with-mpfr=/usr/local/gcc-4.7 \ --with-mpc=/usr/local/gcc-4.7 --enable-languages=c,c++,fortran \ --with-pic $ env LD_RUN_PATH=/usr/local/gcc-4.7/lib $ make -j 2 2>&1 | tee make.log $ sudo make install

 ちょっと厄介なのは、libgcclibgfortran に依存しないバイナリを作る方法。Linux などではリンク時に -static とつければいいらしいのだが、Mac OS X では次のエラーが出る。

$ gfortran -static test.f ld: library not found for -lcrt0.o

対処法は、gfortran のバージョンによって微妙に違う。このバージョンでは、次のようなリンクオプションが必要。libquadmath.a をフルパスで明示することに注意。

$ gfgortran -static-libgfortran -static-libgcc -nodefaultlibs \ -lgfortran -lgcc -lSystem /usr/local/gcc-4.7/lib/libquadmath.a test.f

Posted at 2014年07月25日 00:30:31
email.png