Gauche:Solaris/x86
パッケージ
OpenSolarisを使っている場合、IPSパッケージが/contribに登録されています。
pfexec pkg set-publisher -O http://pkg.opensolaris.org/contrib contrib pfexec pkg refresh pfexec pkg install gauche
で、インストールできます。
ソースからビルド
Gauche 0.8.14 on OpenSolaris 2008.11 (2009/02/12 12:27:20 PST)
IPSからインストールしたSUNWgcc(GCC 3.4.3)とSUNWgmake(GNU Make 3.81)で、何事もなくビルド完了。
Total: 9403 tests, 9403 passed, 0 failed, 0 aborted.
On Solaris Express Community Edition Build 97 (2008/09/09 14:56:21 PDT)
環境
- VMware Server 1.0.7
- GCC 3.4.3 (csl-sol210-3_4-20050802, /usr/sfw/bin/gcc)
- GNU assembler 2.15 (/usr/sfw/bin/gas)
- Solaris Link Editors: 5.11-1.1616 (/usr/ccs/bin/ld)
- GNU Make 3.81 (/usr/bin/gmake)
全てSXCE b97に付属するものです。GNU ldを使うとBoehm GCが正常に動作しないので、Sunのリンカを使ってください。
Gauche 0.8.13
configureの結果、CCが「gcc -std=gnu99」になりますが、GCCかどうかの判定が「gcc」との単純比較のため、正しいオプションが選択されません。これはリビジョン6287で修正され、開発中の最新版では解決しています。
拡張ライブラリのコンパイルの際、セグメント例外が発生します。これは、付属のBoehm GC 6.8が原因です。gcに移動してmake checkすると、テストに失敗します。GDBでcoreを使って調べたところ、スタックが壊れているようでした。新しいSolarisにBoehm GCが対応していなかったのが原因だと思われます。
Gauche SVN HEAD
GCCの判定法が新しくなったのと、Boehm GCが7.1になって、リビジョン6379の現時点では正常にビルドできるようになっています。ただし、SVN HEADをビルドするためにはGauche自身が必要になるので、Gaucheがない環境ではビルドできません。
これを解決するために、別の環境でGaucheを使ってSVN HEADのコードを処理し、Solarisでもビルドできる状態にしたものをもらってくる、という手順を踏みます。
0.8.13がインストールできるならどんな環境でもいいのですが、Ubuntu辺りは仮想マシン向けのイメージが公開されていて、わざわざOSをインストールしなくていいので楽です。適当に0.8.13をインストールしたら、
% svn co https://gauche.svn.sourceforge.net/svnroot/gauche/Gauche/trunk Gauche % cd Gauche % ./DIST gen % ./configure % make # make install
といった感じでSVN HEADをインストールします。続けて、
% ./DIST tgz
で、ひとつ上のディレクトリにソースコードのアーカイブが作成されます。これをSolarisの環境に持って行き、ビルドします。特に引っかかる所もなく、素直にビルドできるはずです。
ちなみに、make checkの結果は、
Total: 3675 tests, 3675 passed, 0 failed, 2 aborted.
でした。