(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の差分をとる等すれば
より原因究明に近づけるのではないかと思います。
-----------------
高木信尚