2001年9月9日日曜日

egcs-20000828 for arm-epoc-pe を作りなおす。

Ng for epoc32 のテストバージョンを作ろうとしたら、make の途中で、怪しげなエラーを吐いて compile が止まった。
ヘッダがおかしいのかと思ってしばらく調べるも、結論は「epoc 用の egcs こわれてる〜」に至った。
NetBSD/m68k 1.5.1 にデフォルトで入っている egcs-1.1.2 は非常に怪しい
Mozilla コンパイルしようとした時も、-O なしだと、RTTI 内部エラーが出て、-O2 を付けるとコンパイルが出来たりした。
epoc 用の egcs 作った時も、コンパイル時に (NetBSD のネイティブコンパイラに)-O2 を付けると、ライブラリ構築時に内部エラーで止まってしまって、あわてて -O オプションで egcs 作りなおしたもんなぁ。
package から gcc-2.95.2 をいれて、setenv CC /usr/pkg/gcc-2.95.2/bin/gccののちに configure 、compile。どうやら今回は変な小細工せずにすみそうだ。

怪しげなエラーの理由、判明

epoc 用の egcs は無罪でした。
Ng の使っている CPP のマクロ(T および _L) が、epoc 用のヘッダの内容とかち合っているせいでした。
と言うわけで、epoc のヘッダをインクルードする前に

#undef _L
#undef T

をいれて解決。

0 件のコメント:

コメントを投稿