On Fri, 16 May 2003, Jan-Benedict Glaw wrote:
> $ mips-linux-objdump -p indy-kernel
>
> indy-kernel: file format elf32-tradbigmips
>
> Program Header:
> 0x70000000 off 0x001c6000 vaddr 0x881c8000 paddr 0x881c8000 align 2**2
> filesz 0x00000018 memsz 0x00000018 flags r--
> LOAD off 0x00001000 vaddr 0x88002000 paddr 0x88002000 align 2**12
> filesz 0x001a3b78 memsz 0x001a3b78 flags r-x
> LOAD off 0x001a5000 vaddr 0x881a6000 paddr 0x881a6000 align 2**12
> filesz 0x0001ec40 memsz 0x0001ec40 flags rw-
> LOAD off 0x001c4000 vaddr 0x881c6000 paddr 0x881c6000 align 2**12
> filesz 0x00018080 memsz 0x00054640 flags rwx
> private flags = 10001001: [abi=O32] [mips2] [not 32bitmode]
Hmm, it looks reasonable and the end is indeed at 0x1dc07f (= 0x1c4000 +
0x18080 - 1).
> Elf file type is EXEC (Executable file)
> Entry point 0x881c8058
> There are 4 program headers, starting at offset 52
>
> Program Headers:
> Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
> REGINFO 0x1c6000 0x881c8000 0x881c8000 0x00018 0x00018 R 0x4
> LOAD 0x001000 0x88002000 0x88002000 0x1a3b78 0x1a3b78 R E 0x1000
> LOAD 0x1a5000 0x881a6000 0x881a6000 0x1ec40 0x1ec40 RW 0x1000
> LOAD 0x1c4000 0x881c6000 0x881c6000 0x18080 0x54640 RWE 0x1000
And this looks fine, too.
But there is a notable difference to 2.4 kernels, at least these I
inspected. There are three loadable segments as opposed to two for 2.4
and the boot loader may be unhappy about it, e.g. it may have a bug that
gets hit. You might want to reduce the number of segments (by changing
section flags -- look for ".section" gas directives).
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
|