(toppers-users 685) RE: コンフィグレーションチェッカーの不具合

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2002年 12月 20日 (金) 23:25:09 JST


福島県ハイテクプラザ 尾形さん

豊橋技術科学大学の若林と申します。

Naohide Ogata [mailto:nogata @ fukushima-iri.go.jp] さんは書きました:
 >  JSP-1.3を使って、SH3用のアプリケーション開発をはじめアところですが
 > 開発環境を Redhat 7.3 から Redhat 8.0 に変えたところ、コンフィグレー
 > ションチェッカー(sh-hitachi-elf-chk)がセグメンテーション違反で異常
 > 終了してしまうようになってしまいました。
 >  Redhat 7.3附属のコンパイラがgcc-2.96で、Redhat 8.0の方がgcc-3.2に
 > 上がっているのが原因と思われるのですが、bfd 関連のライブラリで変更が
 > あったとかの情報をどなたかご存知ないでしょうか。

思い当たる節は、ホストが用いているBFDライブラリのバージョンと、ターゲッ
ト用に作成したBFDライブラリのバージョンが一致していないという点です。以
前、2.9辺りか2.11辺りでこの問題が生じたことがあります。バージョンが新し
くなった際、構造体の途中に変数を追加されてしまい、一個ずれた場所を読んで
しまうという問題です。これは、実際に用いているBFDライブラリと、コンパイ
ル時に使用するBFDライブラリのヘッダのバージョンが食い違っているために
起った問題でした。

この問題かもしれないと思った理由ですが、sym->sectionが0ではなく、ちょっ
と中途半端な値が入っているためです。

考えられる可能性としては、ターゲット用のbfd.hのコピーを忘れたか、使われ
ているgccのincludeサーチパスのうち優先度の高いどこかにバージョンの食い
違ったbfd.hがあるかです (そもそもチェッカーがおかしい可能性もなきにしも
ですが...)。サクッと直されたいのであれば、"ld -v"を実行するとBFDのバー
ジョンが表示されるので、そのバージョンと同じbinutilsをターゲット用に
configureしてインストールすることです。

それか、元々このフィールドに値を入れるには、何かしら他の関数を呼び出す必
要があるのかもしれないですね。

一応、チェッカー自体はチェックしかしていないので、これが障害となってjsp
が生成されないのであれば、Makefileのchkの部分を削除してしまってもかまい
ません。

--------
豊橋技術科学大学 情報工学系 組込みリアルタイムシステム研究室
  わかばやし たかゆき (mailto:takayuki @ ertl.ics.tut.ac.jp)