第一回試験
- まずgo_0015のnaskのgcc版をwin32で作って、正常に生成できてOSASKがmakeできるかどうかテストしてもらえないでしょうか(MinGWを使う)。最初にmake cleanするといいでしょう。
- ぐはぁ!! nask はコンパイルはできますが、OSASKをメイクすると、飛んでしまいます!
- それがうまくいったら、以下に進みます。go_0015のdrv_stdc/boot.cが対象(on Red Hat)。
- 104行目を次のように書き換えてみる(書き足す)。
list1 = nask(src0, src1, list0, list0 + MAX_LSTSIZ); exit(0);
- この場合何も出力されません。問題は例外が起きて終了か、例外が起きずに終了か、そのどちらになるかです。要報告。
- もし上記で例外が起きなければ104行目を元に戻して、今度は111行目を書き換え(書き足し)。
tmp1 = LL(list0, list1, tmp0, tmp0 + MAX_TMPSIZ); exit(0);
- この場合も何も出力されません。問題は例外が起きて終了か、例外が起きずに終了か、そのどちらになるかです。要報告。
- もし上記で例外が起きなければ111行目を元に戻して、今度は118行目を書き換え(書き足し)。
dest1 = output(tmp0, tmp1, dest0, dest0 + MAX_BINSIZ, list0, list0 + MAX_LSTSIZ - 2); exit(0);
- この場合も何も出力されません。問題は例外が起きて終了か、例外が起きずに終了か、そのどちらになるかです。要報告。
- ここでエラーが起きました。 by hideyosi
- これらがどういう結果になるかを聞いて、それからまた考えます。お暇なときにでも実験してください。
- 結果がどうであれ、テストが終わったらソースを元どおりにしておいてください。
小柳レポートを当ててみる・・・
- えーと・・・小柳さん、ご指南感謝です。・・・ですが、私の頭ではちょっと・・(^^;)
- こういうことでいいんでしょうか?
2490行目 UCHAR *srcp, *file_p, *string0 = NULL, *dest = dest0;
・
・
・
void put4b(unsigned int i, UCHAR *p)
{
3812行目 if (p == NULL) return;
p[0] = i & 0xff;
・
・
・
- 一応これで、OSASKのコンパイルは通ったのですが・・・・(まだテストしていません)
- テストしました。Linuxで作ったOSASKは、正常に起動できるようです。(ってことは、この修正であっているのかな??)
第二回試験
- 修正個所は、go_0015のnask.cの2823~2824行目です。
}
put4b(dest - string0, string0);
put4b(dest - string0, string0);
}
- これだけで直ると思いますが、いかがでしょうか?>hideyosiさん
- この修正をすれば、もちろん小柳さんパッチはいりません。