[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