Kazu Hirata
kazu****@cs*****
2004年 2月 7日 (土) 00:12:00 JST
佐藤様、 > ありがとうございます。 > テストプログラムが正常に読める所までは確認できました。 > 基本的な動作は問題ないと思います。 > もう少しいろいろ試してみます。 こちらこそどうもありがとうございます。実行の試験ですが、2 点、気になり ます。 1) switch statement が jump table を使う時の試験が必要かもしれません。 新たに追加された R_H8_PCREL32 という reloc を使うからです。以下のよ うな program に適当な main() をつけて走らせて頂けると幸いです。 int g; void foo (int a) { switch (a) { case 0: g = 4; case 1: g = 3; case 2: g = 2; case 3: g = 1; case 4: g = 0; } } 2) 初期化された大域変数の確認。以下では、p の初期化が ".long g" として 行われます。つまり、position independent ではない g に対する絶対位 置がそのまま p の中に入ってしまいます。elf2flt がうまいこと直してく れていると良いのですが、自信がありません。 int g; int *p = &g; int main () { g = 1234; return *p == 1234; } > あと、libgccのビルドで引っかかったので、h8300.mdを適当に修正しました。 > パッチを添付しておきます。 恥ずかしい限りです。佐藤様の patch を取り込んだものを同じ場所において おきました。 Kazu Hirata