view CbC/PS3.md @ 0:e12992dca4a0

init from Growi
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Wed, 16 Dec 2020 14:05:01 +0900
parents
children
line wrap: on
line source

# CbC環境設定(PS3)
PS3上にCbCの環境を構築したので作業ログを書いとく。

今回インストールしたCbCに使われているgccのバージョンは4.5となる。
  one/hg/CbC/CbC_devel/ のリビジョン67:b362627d71baである。


ちなみに今回環境を構築したのはdolphinsになる。dolphinsの
 `/opt/cbc/bin`
にpathを通してくれればcbc-gccが使えるようになる。

```
 [root@dolphins]  # ls /opt/cbc/bin
 cbc-cpp-4.5  cbc-gccbug-4.5  powerpc64-unknown-linux-gnu-cbc-gcc-4.5
 cbc-gcc-4.5  cbc-gcov-4.5    powerpc64-unknown-linux-gnu-gcc-4.5.0
```

## gmp,mpfr,mpcのインストール

gmp,mpfr,mpcをインストールする。ソースは公式ページからとってくること。
/usr/localを汚すのも忍びないのでホームディレクトリ直下にoptディレクトリをつくってそこにいれる。
また今回、$HOME/opt 以下にsrcディレクトリをつくってそこにソース関連はおいて作業を行った。

```
 # cd $HOME
 # mkdir opt
 # mkdir opt/src
```

インストールする順番はgmp -> mpfr -> mpc の順でいれる。ここで注意なのが、32bitでいれないといけないこと。本当厄介。

```
 # cd gmp-5.0.1
 # ./configure --prefix=$HOME/opt ABI='32'
 # make >& make.log &
 # tail -f make.log
 #make install

 # cd mpfr-3.0.0
 # ./configure --prefix=$HOME/opt ABI='32' --with-gmp=$HOME/opt 
 # make >& make.log &
 # tail -f make.log
 #make install

 # cd mpc-0.8.2 
 # ./configure --prefix=$HOME/opt ABI='32' --with-gmp=$HOME/opt  --with-mpfr=$HOME/opt
 # make >& make.log &
 # tail -f make.log
 #make install
```

## CbCのインストール
後はCbCをインストールするだけ、/opt 以下に cbc というディレクトリをつくってそこに入れることにした。CbCは hg clone してとってくる。option色々付けるので気をつけてね。

```
 # mkdir /opt/cbc
 # cd $HOME
 # cd opt/src
 # hg clone ssh://one@firefly.cr.ie.u-ryukyu.ac.jp//home/one/hg/CbC/CbC_devel
 # mkdir build-cbc
 # cd build-cbc
 # ../CbC_devel/configure --disable-bootstrap --enable-languages=c --enable-checking=tree,rtl,assert,types -program-prefix=cbc- --prefix=/opt/cbc CFLAGS="-g3 -O0" --with-gmp=$HOME/opt --with-mpfr=$HOME/opt --with-mpc=$HOME/opt --program-suffix=-4.5 CC='gcc -m32'
```

次に、できたMakefileの最適化をきってデバッグオプションをつける。
Makefile覗いたら最適化オプションついてるのは以下の4つ
 - CFLAGS_FOR_TARGET='-O2 -g3 -O0'
 - CXXFLAGS='-g -O2'
 - CXXFLAGS_FOR_BUILD='-g -O2'
 - CXXFLAGS_FOR_TARGET='-g -O2'

O2 は O0 に、g は g3 に変更
 - CFLAGS_FOR_TARGET='-O0 -g3 -O0'
 - CXXFLAGS='-g3 -O0'
 - CXXFLAGS_FOR_BUILD='-g3 -O0'
 - CXXFLAGS_FOR_TARGET='-g3 -O0'

(実はそれぞれのフラグの意味は知らない)

後はmakeするだけ、だけどその前に、LD_LIBRARY_PATHには$HOME/optのlibを指定しておく。これをしてないと/usr/loca/libをみにいくから。
make する前にexportして設定すること。

```
 # export LD_LIBRARY_PATH=$HOME/opt/lib
 # make >& make.log &
 # tail -f make.log
```

makeが終われば後はinstallするだけである。
 `# make install`

/opt/cbc/bin にpathを通すことも忘れないように。

## エラー
```
 /opt/cbc/libexec/gcc/powerpc64-unknown-linux-gnu/4.5.0/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
```

といったエラーがでる。mpc を /root/opt/ 以下に作成したからそこのライブラリをみるようにしないといけない。
 export LD_LIBRARY_PATY=/root/opt/lib
すればいいけどこれじゃrootしか使えないよね。
うん、ちょっとミスった