MacOSX(10.2.8)でgcc 3.4.5のコンパイル

Boost::SpiritでCMSを作ろうという企画ですが、サーバで動かなければ企画倒れですので、とりあえずサーバ機のPowerMac G3(@350MHz そろそろ引退?)でコンパイルしてみました。

結果コンパイルできません。自前のプログラム以前の問題で、boostのinstallでかなりこけています。エラーの内容は

`tree_list' not supported by dump_expr

Webを巡回してみるとgccのバージョンをあげれば大丈夫なようなのでgcc3系列の最新版3.4.5をコンパイル & インストールしてみることにしました。本来ならFink等のパッケージ管理ツールを使ってインストールというのが正道なのでしょうが、僕は野良ビルド好きなのでソースからコンパイルします。コンパイル環境はMacOSX(10.2)に付属のgcc(Developer Toolsに付属 version 1151 based on gcc version 3.1)です。
あと注意書きですが、ここで作るgccはApple拡張は施されていませんので、MacOSX付属gccの置き換えにはなりません。FinkにあるDarwinの文章が参考になるかと思います。

詳細は続きをどうぞ。

いくつかコンパイル中につまずきましたので加えた修正をここに書いておきます。『gccについて』を参考にしました。

(1)builtin-attrs.defの修正
最新のものは良くなっているのでしょうが、MacOSX版の古いgccはマクロ展開に失敗することが多いようです。gcc/c-common.cでインクルードされているbuiltin-attrs.defには、多重マクロ展開をする必要の定義があるのですが、そこでこけました。仕方がないので手動で展開をしました。

(2)storage size of `rlim' isn't known のようなエラー
<sys/resource.h>がインクルードされれば解消するようです。-DHAVE_RESOURCE_Hや-DHAVE_SYS_RESOURCE_Hを加えて単体コンパイルすれば通ります。またはconfig.hにdefineした方が楽かもしれません。

(3)stmt.cで poisoned calloc エラー
エラーが起きている箇所でreally_call_callocをxcallocに置き換えてコンパイルを通しました。

(4)cpp-precompがBus errorしてとまる
プリプロセッサがらみのエラーのようです。-no-cpp-precompオプションでgccのプリプロセッサを使うように指定してあげればコンパイルは通ります。

December 28, 2005 21:10 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク

コメント

コメントする