[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pbsd-mg2] Re: cross compiler



鈴木(康)です。
<199907181348.WAA23792@mail.ca2.so-net.ne.jp>の記事において
takemura@ca2.so-net.ne.jpさんは書きました。

  | > カーネルは、これから commit しようと思います。
  | > 
  | > netbsd にパッチを当てる方は、とりあえず付けときます。
  | > commit するよりは、pbsdboot.exe で対応して欲しいです。
  | 
  | シンボル情報をロードするようにしなければいけないのですね。
  | 具体的に pbsdboot.exe の elf.c をどう修正したらよいかわか
  | りますか?
  | ちょっとよく分かっていないので、 kern_sym_patch を
  | 見てみます。

おねがいします。

補足すると

db_elf.c に合わせないといけないので、end からの領域に、
	Elf Header (Elf_Ehdr)
	Section Header(Elf_Shdr)
	Symbol table Section (Elf_edt_symtab)
	String table Section (Elf_edt_strtab)
を構築することが重要です。

苦肉の策で Elf Header の e_entry でサイズを受け渡していますが、
他のアーキティクチャは、bootinfo を使っています。


あとのロジックは、全部 pbsdboot をだますためのものです。

カーネルのところの補足ですが、

#ifndef DB_ELFSIZE
#error Must define DB_ELFSIZE!
#endif
#define ELFSIZE         DB_ELFSIZE
#include <sys/exec_elf.h>

ここは、e_entry を使うためだけにいれたところ。

ddb_init(1000, &end, (int*)esym);

シンボル数は db_elf.c で見ていないので、1000 は適当。


--
					鈴木 康司 @NEC
					suz@hpc.bs1.fc.nec.co.jp
					TEL 0423-33-5381