Eric W. Biederman wrote:

> Ollie Lho <[EMAIL PROTECTED]> writes:
> 
>>With ELF like this:
>>
>>ollie mkelfImage 68:objdump -h elfImage
>>
> 
> First the really useful dump is:
> objdump -p elfImage
> 
> Which actually shows the segments of the image being loaded.
> And there should be a much better correspondence, between
> what is loaded, and the segments.
> 
> 
>>elfImage:     file format elf32-i386
>>
>>Sections:
>>Idx Name          Size      VMA       LMA       File off  Algn
>>  0 .text         00001163  00010000  00010000  00001000  2**4
>>                  CONTENTS, ALLOC, LOAD, READONLY, CODE
>>  1 .rodata       000002f1  00011163  00011163  00002163  2**5
>>                  CONTENTS, ALLOC, LOAD, READONLY, DATA
>>  2 .data         00000018  00011460  00011460  00002460  2**2
>>                  CONTENTS, ALLOC, LOAD, DATA
>>  3 .bss          000042a8  00011478  00011478  00002478  2**5
>>                  ALLOC
>>  4 .nokill       00000028  00091000  00091000  00003000  2**0
>>                  CONTENTS, ALLOC, LOAD, CODE
>>  5 .kernel       00154660  00100000  00100000  00004000  2**0
>>                  CONTENTS, ALLOC, LOAD, DATA
>>
>>I got:
>>Welcome to elfboot, the open sourced starter.
>>January 2002, Eric Biederman.
>>Version 1.0
>>
>>     43:fill_inbuf() - ram buffer:0x00012c28
>>     53:fill_inbuf() - nvram:0x00010000  block_count:0
>>Found ELF candiate at offset 0
>>Loading Section: addr: 0x000000000776ecb8 memsz: 0x0000000000005720 filesz:
>>0x0000000000001478
>>Clearing Section: addr: 0x0000000007770130 memsz: 0x00000000000042a8
>>Loading Section: addr: 0x0000000000091000 memsz: 0x0000000000000028 filesz:
>>0x0000000000000028
>>Loading Section: addr: 0x0000000000100000 memsz: 0x0000000000154660 filesz:
>>0x0000000000154660
>>     53:fill_inbuf() - nvram:0x00020000  block_count:1
>>
> [snip]
> 
>>     53:fill_inbuf() - nvram:0x00160000  block_count:21
>>Loading Section: addr: 0x0000000000000000 memsz: 0x0000000040000000 filesz:
>>0x0000000000000018
>>     53:fill_inbuf() - nvram:0x00170000  block_count:22
>>     53:fill_inbuf() - nvram:0x00180000  block_count:23
>>     53:fill_inbuf() - nvram:0x00190000  block_count:24
>>     53:fill_inbuf() - nvram:0x001a0000  block_count:25
>>     53:fill_inbuf() - nvram:0x001b0000  block_count:26
>>     53:fill_inbuf() - nvram:0x001c0000  block_count:27
>>     53:fill_inbuf() - nvram:0x001d0000  block_count:28
>>
>>An it runs forever in loading the last section. My question is
>>where do .text .rodata and .data go ?? It seems only load .bss
>>.nokill and .kernel. And WTH is
>>
> 
> Does it actually terminate or is there an infinite loop in there?
> 
> 
>>Loading Section: addr: 0x000000000776ecb8 memsz: 0x0000000000005720 filesz:
>>0x0000000000001478
>>
> 
> I think I may need to improve my debugging messages a little bit.
> What is happening here is of of the ELF segments (possibly being split)
> would normally overwrite linuxBIOS.  So it is temporarily loaded at
> the top of memory.  At the very end of the process it will be copied back.
> 
> 
> 
>>There is no section with 0x1478 nor 0x5720 in size.
>>
> A couple of the sections probably run together into one ELF segment.  Hmm.
> There is something else I can fix in my debug messages...
> 
> 
> So in summary.
> objdump -p elfImage
> shows the elf segments that are being loaded.  
> There is not a 1-1 correspondence between the ELF sections and the 
> ELF segments.
> 


OOPS,

ollie mkelfImage 70:objdump -p elfImage

elfImage:     file format elf32-i386

Program Header:
     LOAD off    0x00001000 vaddr 0x00010000 paddr 0x00010000 align 2**12
          filesz 0x00001478 memsz 0x00005720 flags rwx
     LOAD off    0x00003000 vaddr 0x00091000 paddr 0x00091000 align 2**12
          filesz 0x00000028 memsz 0x00000028 flags rwx
     LOAD off    0x00004000 vaddr 0x00100000 paddr 0x00100000 align 2**12
          filesz 0x00154660 memsz 0x00154660 flags rw-

Still no section as

Loading Section: addr: 0x0000000000000000 memsz: 0x0000000040000000 
filesz: 0x0000000000000018

Ollie

Reply via email to