On Thu, Jun 19, 2008 at 04:00:04PM +0800, Zhang Rui wrote:
2008/6/19 Kevin O'Connor kevin@koconnor.net:
$ objdump -x out/bios.bin.elf
out/bios.bin.elf: file format elf32-i386 out/bios.bin.elf architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x000f66a0
Program Header: LOAD off 0x00001000 vaddr 0x000f0000 paddr 0x000f0000 align 2**12 filesz 0x00010000 memsz 0x00010000 flags rw-
Sections: Idx Name Size VMA LMA File off Algn 0 .data 00010000 000f0000 000f0000 00001000 2**0 CONTENTS, ALLOC, LOAD, DATA SYMBOL TABLE: 000f0000 l d .data 00000000 .data 00010000 g *ABS* 00000000 _binary_out_bios_bin_size 00100000 g *ABS* 00000000 __bss_start 00100000 g .data 00000000 _binary_out_bios_bin_end 00100000 g *ABS* 00000000 _edata 00100000 g *ABS* 00000000 _end 000f0000 g .data 00000000 _binary_out_bios_bin_start
legacybios/out> objdump -x bios.bin.elf bios.bin.elf: file format elf32-i386 bios.bin.elf architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x000f66e0
Program Header: LOAD off 0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12 filesz 0x00010074 memsz 0x00010074 flags rw-
Sections: Idx Name Size VMA LMA File off Algn 0 .data 00010000 08048074 08048074 00000074 2**0 CONTENTS, ALLOC, LOAD, DATA SYMBOL TABLE: 08048074 l d .data 00000000 .data 00000000 l d *ABS* 00000000 .shstrtab 00000000 l d *ABS* 00000000 .symtab 00000000 l d *ABS* 00000000 .strtab 00010000 g *ABS* 00000000 _binary_out_bios_bin_size 08058074 g *ABS* 00000000 __bss_start 08058074 g .data 00000000 _binary_out_bios_bin_end 08058074 g *ABS* 00000000 _edata 08058074 g *ABS* 00000000 _end 08048074 g .data 00000000 _binary_out_bios_bin_start
Looks like a difference between our versions of 'ld'. The build effectively does:
ld -melf_i386 -e 0xf66e0 -Ttext 0xf0000 -b binary bios.bin -o bios.bin.elf
I'm not sure why it builds a different elf on your machine. Can you try modifying tools/buildrom.py so that it uses "-Tdata" instead of "-Ttext"?
Myles, maybe this was the same problem you were seeing?
-Kevin