(toppers-users 1859) Re: Sh3(SH7729R)での開発環境(初心者)

高木信尚 takagi-n @ biggie.jp
2005年 1月 29日 (土) 00:52:04 JST


和田様、皆様

チェッカーでエラーが出る件ですが、下記の原因については判明しています。

> ☆エラーが出た状況
> [H8用クロス]
> gcc-3.4.2
> binutils-2.15
> newlib-1.12.0

> ☆エラーが出なくなった開発環境のバージョンの組み合わせ
> binutils-2.14
> gcc-3.2.3
> newlib-1.12.0

gcc-3.4.xでは、-O2以上の最適化オプションを用いると、使用されていない
内部結合オブジェクトが削除されてしまいます。
それに対して、gcc-3.3.x以前のバージョンでは、-O3を用いても削除される
ことはありません。
この違いにより、kernel_cfg.cの最後に出力される_checker_magic_number
が削除されたり、されなかったりすることで、エラーが発生したり、しなかった
りするようです。
gcc-3.4.xで、最も手っ取り早く問題を解決する方法は、最適化オプションを
-O1以下にするか、kernel_cfg.cを手作業で修正し、

static const UW _checker_magic_number = 0x01234567;
		↓
const UW _checker_magic_number = 0x01234567;

のように変更することです。
チェッカーの_checker_magic_number出力部分を書き換えても現象は改善
すると思いますが、現時点では確認できておりません。

他の方の指摘されておられる現象は、これとは異なる可能性があります。
Cygwinのネイティブコンパイラのバージョンによって、コンフィギュレータか
チェッカーの動作が異なる可能性も考えられます。
エラーになるjsp.symsとエラーにならないjsp.symsの差分をとる等すれば
より原因究明に近づけるのではないかと思います。

-----------------
高木信尚