tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: install/38943: i386 floppy installation now prompts for each floppy twice
I'm looking at this problem and I think I've managed to analyze it.
The problem is backward lseek(), which is introduced into
recent src/sys/lib/libsa/loadfile_elf32.c.
loadfile_elf32() now reads the kernel note section
after loading section headers, but the note section
is located before section headers:
---
% readelf -e /netbsd
:
Start of program headers: 52 (bytes into file)
Start of section headers: 7525156 (bytes into file)
:
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .text PROGBITS c0100000 001000 4b42fc 00 AX 0 0 64
[ 2] .rodata PROGBITS c05b4300 4b5300 21a72b 00 A 0 0 32
:
[12] .bss NOBITS c0801880 701844 071c94 00 WA 0 0 64
[13] .note.netbsd.iden NOTE c0873514 701844 000018 00 0 0 4
:
[24] .shstrtab STRTAB 00000000 72d1d1 000153 00 0 0 1
[25] .symtab SYMTAB 00000000 72d75c 057e10 10 26 9848
4
---
Such backward lseek() causes ustarfs to read a whole
kernel from the beginning again.
Is there any workaround (against ldscript etc.) for this?
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index