び(2008/02/28 21:59:33 PST): 自宅の新しいマシン(HP ML110 G5/Xeon 3065/2GB)にFreeBSD/amd64 7.0R をインストールしたので、早速Gauche-0.8.13を入れてみた。野良ビルドを試みるもうまくいかず、結局/usr/ports/lang/gauche/filesの下にあるパッチを適用したらビルドできた。テストも全て通る。
ハマりどころは以下の通り。FreeBSDは久しぶりだし、環境もちょっと変なことをしているので、みんなが同じところでハマるとは思わない。
% cd Gauche-0.8.13 % for f in /usr/ports/lang/gauche/files/patch-*; do patch -p0 <$f; done
% env - PATH=$PATH sh ./configure '--enable-threads=pthreads' '--enable-multibyte=utf-8' \ '--with-slib=/usr/local/share/slib' '--enable-ipv6' '--with-local=/usr/local:/usr/pkg' \ '--with-iconv=/usr/pkg' 'CFLAGS=-O6 -march=nocona' x86_64--freebsd7
% make -j4でビルドしてたら、途中「srfi-1が見つからない」というようなメッセージとともにビルドがコケた。
% makeなら問題なくビルドできる。
Boehm GC 6.1 のconfigure.inには、FreeBSDでpthreadの使用を選ぶと
"FreeBSD does not yet fully support threads with Boehm GC."
という警告を出すコードがある。また README.changeには "integrated partially functional FreeBSD threads code" の記述がある。しかし、 どこまで動いてどこが動いていないのかの記述は見付けられなかった。
FreeBSD/i386で --enable-threads=pthreadsをつけてコンパイルしてみると、 threadのテストのところでスタックすることがある。 まだ原因は追求していない。
ただ、Gauche-glをMesaとコンパイルしようとすると、 Mesaがpthreads利用でコンパイルされているため、 Gauche-glおよびGauche本体もpthreadsを利用するようにしなければならない。
おそらく、--enable-threads=pthreadsでコンパイルしても スクリプト中で新たなスレッドを使わない限り問題は出ないと思うので、 そのようにしてもらうのが良いだろう。 (Gauche-gl本体も実はまだMT safeではないのだ)。
FreeBSD/Alphaだとgoshがcore dumpしてビルドできない。
これに関しては、FreeBSDのGaucheのportsのmaintainerから HPが公開しているテストマシンの情報を教えてもらったので 近々試してみる。http://www.testdrive.compaq.com/
kouさんのご厚意によりCOZMIXNGに 自家製ports置き場を用意してもらうことができました。
$ svn co http://www.cozmixng.org/repos/borts/
でまとめてチェックアウトできるはずです。 (devel/subversionがインストールされている必要があります)
ここの更新状況はコミットメールと RSS(まだ生成されて いません)で確認できます.コミットメールが流れるMLは QuickML? なので,以下のようなメールを出せば参加できます.
To: borts-commit@ml.cozmixng.org Cc: null@cozmixng.org Subject: 何か 本文に何か
ここに置かれているportsは、 ソフトウェアの成熟やユーザーからの要望によって徐々に 本体にマージされます。