LEDA を Solaris 上で動かすためには、 比較的新しいコンパイラが必要です。 Solaris 2.6, 2.7 あたりは、 特別なことをせずとも egcs を install できるようです。 しかし Solaris 2.5 あたりでは修正が必要です。 というわけで、Solaris 2.5.1 での install メモです。
LEDA-3.8(Solaris) は gcc2.7.2.3 でも動きますが、 筆者は C++ のライブラリをコンパイルするのに失敗してしまったので、 egcs 1.1.2 について紹介します。
★Solaris2.5 と Solaris2.5.1 では、 ヘッダーファイルが大きく異なるようです。 両方使える場合には、どちらかで試して、 うまくいったほうのバイナリを使い回しするのが良いでしょう。
★緑色の部分は普通は必要ありません。前提
- egcs 1.1.2 を SUN Solaris2.5.1 に install
- ディスク容量節約のため shared library を採用 (こちらも参照)
- 現在ある gcc と共存するため install 先を /usr/local/egcs-1.1.2 に変更
作業手順
- egcs1.1.2 の入手と展開 - 国内にもミラーがあります。ミラー一覧から適当に探して下さい。
% ncftp ftp://ring.so-net.ne.jp/pub/lang/egcs/releases/egcs-1.1.2/egcs-1.1.2.tar.gz % tar xzvf egcs-1.1.2.tar.gz- パッチ当て - ここで見つけましたが、心配なのでローカルなコピー。
% wget http://www.kiss.taihaku.sendai.jp/~fuji/install/libstdc++-2.8.1.1.diff % cd egcs-1.1.2/libio % patch < ../../libstdc++-2.8.1.1.diff % cd ../..- オブジェクト出力用ディレクトリを作る
% mkdir objdir % cd objdir- Makefile を作る
% ../egcs-1.1.2/configure --prefix=/usr/local/egcs-1.1.2 --enable-shared- コンパイル -- 数時間かかります。
% make bootstrap- root になってしかるべき所にコピー
% make -n install (動作確認) % su # make install- /usr/local/bin に 名前を変えてシンボリックリンクを張る
# cd /usr/local/bin # ln -s ../egcs-1.1.2/bin/gcc ./egcs.gcc # ln -s ../egcs-1.1.2/bin/g++ ./egcs.g++ などなど