Fóruns: Open Discussion (Thread #443)

ユーザランド (2002-05-13 00:13 by ochiai #617)

uClibcまではOKっぽいんですが、ユーザランド(ex. src/init)で

coff2flt -o init.flt init

をやると

Warning: no reloc information

となってしまいinit.fltが出ません。
何が悪いんでしょう?

RE: ユーザランド (2002-05-13 01:31 by ysato #621)

その警告は、COFFのバイナリに再配置情報が付いていないときにでます。
ldのオプションに'--embedded-relocs'を指定してください。
ターゲットがH8/300Hになっていない場合は、このオプションが無視されるの
で、'-m h8300h'も指定してください。

出来上がったCOFFのバイナリに、
5 .emreloc 000062ac 00100000 00100000 0000abd0 2**1
CONTENTS, ALLOC, LOAD, DATA
というセクションが含まれていれば、うまくいっています。
Responder a #617

RE: ユーザランド (2002-05-13 13:16 by ochiai #630)

-m h8300hがなかったからですね。
.emrelocセクションはできました。
でも相変わらず
Warning: no reloc information
です。私のほうでもちょっと調べてみます。
Responder a #621

RE: ユーザランド (2002-05-13 22:33 by ysato #634)

.emrelocのサイズはいくつになってますか?
0になっている場合は、警告がでるはずです。

ただし、コードの書き方によっては再配置情報が不要になって、ldが何も出力
しない場合もあります。
もしくは、ldのバグで生成されていないのかもしれませんが。

Responder a #630

RE: ユーザランド (2002-05-13 23:44 by ochiai #637)

私のところはこうなってます。

% h8300-hitachi-hms-objdump -h init

init: file format coff-h8300

Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000a096 00000000 00000000 00000120 2**1
CONTENTS, ALLOC, LOAD, CODE
1 .data 000008be 0000a096 0000a096 0000a1b6 2**1
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00002a20 0000a960 0000a960 00000000 2**1
ALLOC
3 .stack 00000000 0000d380 0000d380 00000000 2**1
ALLOC, LOAD
4 .vectors 00000000 00000000 00000000 00000000 2**1
ALLOC, LOAD, READONLY
5 .emreloc 000061f8 00100000 00100000 0000aa74 2**1
CONTENTS, ALLOC, LOAD, DATA

Responder a #634

RE: ユーザランド (2002-05-14 00:23 by ysato #639)

良さそうですね。
で一つ気になった事があるので、確認してもらえませんか。
MakefileのCFLAGSに'-DARCH=H8300'が付いていますか?
無い場合、m68k用になるので、うまく動かなくなると思います。
Responder a #637

RE: ユーザランド (2002-05-14 01:07 by ochiai #642)

-DARCH=H8300はつけてあります。つけてもつけなくても変わんないです。
今のcoff2flt.patchを当てると
coff2flt.c:201
不定値relocsに対して参照してるようです。
最新のパッチってありますか?
Responder a #639

RE: ユーザランド (2002-05-14 02:41 by ysato #646)

今、リリースしているものが最新です。
パッチ済みのソースを固めたものをあげたので、それで試してみてください。
Responder a #642

RE: ユーザランド (2002-05-14 19:42 by ochiai #650)

解りました!
Makefileのインクルードパスが違っていて動作しませんでした。
できたinit.fltをinitとすりかえてちゃんと動作しました。
--
感覚的にuCsimmと全く同じですね。当時uCsimmを3万くらいで購入した記憶があるので、それと同等なものが1万ならすごく安いなぁと思います。
Responder a #646

RE: ユーザランド (2002-05-14 23:12 by ysato #653)

うまくいったようですね。
shも作ってうまくいけば、間違いなく大丈夫でしょう。

>感覚的にuCsimmと全く同じですね。当時uCsimm
>を3万くらいで購入した記憶がある
>ので、それと同等なものが1万ならすごく安い
>なぁと思います。

uCsimmの技術をいろいろ借りてきたので、そうなっちゃいました。
そのおかげで、アプリケーションのレベルでは、全く差がありません。
メモリがもう少し多ければ、全く同じ使い方も出来ると思います。
Responder a #650