Apple/CommandLineToolsで最低限の開発環境を導入することはできるのだが、コンパイラは clang である。gccではない。
っで、ここでは昔ながらの GCC を作ってみる。

GCC-5.3.0

材料

mac:~ Supervisor$ cd src/
mac:src Supervisor$ curl -O http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.3/gcc-4.9.3.tar.bz2
mac:src Supervisor$ bzip2 -cd gcc-4.9.3.tar.bz2 | tar xf -

ダウンロードしたgccを展開する。ただそのフォルダでコンパイルはせず、別のフォルダ内でコンパイルします。

mac:src Supervisor$ mkdir gcc-build && cd gcc-build
 
mac:gcc-build Supervisor$ ../gcc-4.9.3/configure --enable-languages=c,c++,fortran \
--enable-bootstrap \
--enable-shared    \
--enable-threads=posix \
--enable-checking=release \
--prefix=/usr/local/gcc493 \
--with-build-config=bootstrap-debug

っがconfigureで

configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.

と言われる....あー往年のRPGなのね...っで基本Linuxのgccインストールと同じです。

1.GNU Multiple Precision Library (GMP)

mac:~ Supervisor$ cd src/
mac:src Supervisor$ curl -O ftp://ftp.gmplib.org/pub/gmp-6.1.0/gmp-6.1.0.tar.bz2
mac:src Supervisor$ bzip2 -cd gmp-6.1.0.tar.bz2 | tar xf - && cd gmp-6.1.0
mac:gmp-6.1.0 Supervisor$ ./configure --enable-cxx --prefix=/usr/local
(略)
configure: summary of build options:
 
  Version:           GNU MP 6.1.0
  Host type:         ivybridge-apple-darwin15.3.0
  ABI:               64
  Install prefix:    /usr/local
  Compiler:          gcc
  Static libraries:  yes
  Shared libraries:  yes
 
mac:gmp-6.1.0 Supervisor$ make && make check && sudo make install

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

mac:src Supervisor$ curl -O http://www.mpfr.org/mpfr-current/mpfr-3.1.3.tar.bz2
mac:src Supervisor$ bzip2 -cd mpfr-3.1.3.tar.bz2 | tar xf - && cd mpfr-3.1.3
mac:mpfr-3.1.3 Supervisor$ ./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib \
                                       --prefix=/usr/local
mac:mpfr-3.1.3 Supervisor$ make && make check && sudo make install

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

mac:src Supervisor$ curl -O ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
mac:src Supervisor$ gzip -cd mpc-1.0.3.tar.gz | tar xf - && cd mpc-1.0.3
mac:mpc-1.0.3 Supervisor$ ./configure --with-gmp-lib=/usr/local/lib  --with-mpfr-lib=/usr/local/lib \
                        --prefix=/usr/local
mac:mpc-1.0.3 Supervisor$ make && make check && sudo make install

4.CLooG

mac:src Supervisor$ curl -O ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz
mac:src Supervisor$ gzip -cd cloog-0.18.1.tar.gz | tar xf - && cd cloog-0.18.1
mac:cloog-0.18.1 Supervisor$ ./configure --with-gmp-prefix=/usr/local --prefix=/usr/local
mac:cloog-0.18.1 Supervisor$ make && make check && sudo make install

5.ISL Library

最新の isl-0.16.1 ではなく isl-0.14 を使います

mac:src Supervisor$ curl -O ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.14.tar.bz2
mac:src Supervisor$ bzip2 -cd isl-0.14.tar.bz2 | tar xf - && cd isl-0.14
mac:isl-0.14 Supervisor$ ./configure --with-gmp-prefix=/usr/local --prefix=/usr/local 
mac:isl-0.14 Supervisor$ make && make check && sudo make install

GCC

っで巡り戻って、GCCコンパイルの再開

mac:gcc-build Supervisor$ export PATH=/usr/bin:/bin:/usr/local/bin
mac:gcc-build Supervisor$ ../gcc-4.9.3/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=/usr/local --with-gmp-include=/usr/local/include  \
--with-mpfr=/usr/local --with-mpfr-include=/usr/local/include  \
--with-mpc=/usr/local --with-mpc-include=/usr/local/include  \
--with-isl=/usr/local --with-isl-include=/usr/local/include  \
--with-cloog=/usr/local --with-cloog-include=/usr/local/include  \
--prefix=/usr/local/gcc493 \
--with-pkgversion="gcc-4.9.3 20160303 by chaperone" --without-bugurl --disable-multilib \
--with-build-config=bootstrap-debug
 
mac:gcc-build Supervisor$ make -j4
mac:gcc-build Supervisor$ sudo make install
 
mac:gcc-build Supervisor$ /usr/local/gcc493/bin/gcc -v
組み込み spec を使用しています。
COLLECT_GCC=/usr/local/gcc493/bin/gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc493/libexec/gcc/x86_64-apple-darwin15.3.0/4.9.3/lto-wrapper
ターゲット: x86_64-apple-darwin15.3.0
configure 設定: ../gcc-4.9.3/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=/usr/local 
--with-gmp-include=/usr/local/include --with-mpfr=/usr/local --with-mpfr-include=/usr/local/include 
--with-mpc=/usr/local --with-mpc-include=/usr/local/include --with-isl=/usr/local 
--with-isl-include=/usr/local/include --with-cloog=/usr/local --with-cloog-include=/usr/local/include 
--prefix=/usr/local/gcc493 --with-pkgversion='gcc-4.9.3 20160303 by chaperone' --without-bugurl 
--disable-multilib --with-build-config=bootstrap-debug
スレッドモデル: posix
gcc バージョン 4.9.3 (gcc-4.9.3 20160303 by chaperone)
 
 
mac:gcc-build Supervisor$ /usr/bin/gcc -v
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.3.0
Thread model: posix
 
mac:gcc-build Supervisor$

openmpi-1.10.2

mac:~ Supervisor$ cd src
mac:src Supervisor$ curl -O https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.2.tar.bz2
mac:src Supervisor$ bzip2 -cd openmpi-1.10.2.tar.bz2 | tar xf - && cd openmpi-1.10.2
 
mac:openmpi-1.10.2 Supervisor$ export PATH=/usr/local/gcc493/bin:/usr/bin:/bin:/usr/local/bin
 
mac:openmpi-1.10.2 Supervisor$ ./configure --prefix=/usr/local/openmpi-1.10.2-gcc493
 
mac:openmpi-1.10.2 Supervisor$ make && make check && sudo make install

openmpi-1.10.2 の openmpi-1.10.2/examples にテスト向けファイルがある。

mac:openmpi-1.10.2 Supervisor$ cd examples
mac:examples Supervisor$
 
mac:examples Supervisor$ export PATH=/usr/local/openmpi-1.10.2-gcc493/bin:/usr/local/gcc493/bin:/usr/bin:/bin
 
mac:examples Supervisor$ make
mpicc -g    hello_c.c   -o hello_c
mpicc -g    ring_c.c   -o ring_c
mpicc -g    connectivity_c.c   -o connectivity_c
mpic++ -g    hello_cxx.cc   -o hello_cxx
mpic++ -g    ring_cxx.cc   -o ring_cxx
mpifort -g hello_mpifh.f -o hello_mpifh
mpifort -g ring_mpifh.f -o ring_mpifh
mpifort -g hello_usempi.f90 -o hello_usempi
mpifort -g ring_usempi.f90 -o ring_usempi
mpifort -g hello_usempif08.f90 -o hello_usempif08
mpifort -g ring_usempif08.f90 -o ring_usempif08
mac:examples Supervisor$

コンパイルはこれで終了。実行してみます。

mac:examples Supervisor$ mpirun -np 2 ./connectivity_c
Connectivity test on 2 processes PASSED.
 
mac:examples Supervisor$
最新の60件
2026-06-08 2026-06-06 2026-06-05 2026-06-04 2026-06-03 2026-05-31 2026-05-28 2026-05-26 2026-05-23 2026-05-22 2026-05-21 2026-05-20 2026-05-19 2026-05-18 2026-05-12 2026-05-11 2026-05-08 2026-05-06 2026-05-05 2026-05-03 2026-04-30 2026-04-29 2026-04-28 2026-04-27 2026-04-25 2026-04-24 2026-04-22 2026-04-21 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-26 (土) 10:32:04