[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[pbsd-mg2] Re: cross compiler
鈴木(康)です。
<199907120951.SAA12040@shin1.sm.sony.co.jp>の記事において
takemura@sm.sony.co.jpさんは書きました。
|
| > | > ちなみに バイナリキット=NetBSD-1.3 のは、
| > | > gcc version 2.7.2.1
| > | > です。
| >
| > 鈴木さんのクロスコンパイラでコンパイルし終わってから
| > bcu_vrip.o pcic_vrgiu.o vr.o vrgiu_vrip.o vrkiu.o
| > com_vrip.o rtc_vrip.o vrgiu.o vrip.o
| > だけを素のGNUのbinutils-2.9.1.0.19.tar.gzとegcs-1.1.2.tar.gzから
| 中略
| > で作ったコンパイラとリンカでリコンパイルしてみたところ、
| pcic0 at vrgiu0でブートしました。(dmesgは下のです)
|
| この話を聞くと、compiler の問題というよりは、
| vrxxx.c のソースに問題があって、私の環境ではたまたま不具合が
| 表面化しないだけ、という可能性の方が高いようですね。
| (よくある変数の初期化わすれなど)
telnet が core dump する件があるので、コンパイラ自体の疑いも
拭え切れていません。
また、たけむらさんの修正で、以前からあったバグが表面化したという可能性
もあると思います。
| ホントに申し訳ないのですが、もし可能ならば、もう少し調べてみては
| いただけないでしょうか。> 鈴木さんか内山さん
CS12 ではまだ動いていないので、調べたいとは思いますが、
どうすれば良いのでしょうか?
上と同じように、gcc と egcs を混ぜて、絞りこんでみましょうか。
( そもそも同じようになるとは限りませんが。)
# MGII は、17 日に 修理に出そうと思っています。
あと、たけむらさんの環境は、NetBSD-1.3 ですよね。
FreeBSD エミュレータを使えば、バイナリ開発環境を使ってみることができる
と思います。
ちなみに、必要な ランタイムライブラリは、2.2.8 の libc.so.3.1 だけです。
必要なら、それも置いておきますが。
ところで、ちょっと気になっている点が一つあります。
ddb で表示されるときに、main (だけ?) シンボルが表示されますが、
これは、シンボルが中途半端に見えているのでしょうか?
machdep.c を見ると
if (((struct exec *)edata)->a_midmag == 0x07018b00 &&
edata からシンボルテーブルが始まっているように見えますが、
nm で見ると edata は ページ境界にありませんし、
直後から、.bss が始まっているように見えます。
もし、ページ単位でロードすると一部のシンボルが見えるかも知れません。
でも、見えない部分を扱うとき変なことが起きませんでしょうか?
また、ファイル上は、.mdebug が続いています。
というわけで、.mdebug の分サイズだけ、多めにロードするのが正解では
ないでしょうか?
nm の結果
80134ea0 A edata
objdump の結果
5 .sbss 00000000 80134ea0 80134ea0 00108ea0 2**0
ALLOC
6 .bss 0001e140 80134ea0 80134ea0 00108ea0 2**4
ALLOC
7 .mdebug 00062110 80152fe0 80152fe0 00108ea0 2**2
CONTENTS, READONLY, DEBUGGING
--
鈴木 康司 @NEC
suz@hpc.bs1.fc.nec.co.jp
TEL 0423-33-5381