silly ld question

ron minnich rminnich at lanl.gov
Mon Jul 21 15:42:01 CEST 2003


anybody know why ld would give you something like this:

bash-2.05b$ readelf -l linuxbios

Elf file type is EXEC (Executable file)
Entry point 0xffff0004
There are 3 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x001000 0xffff0000 0xffff0000 0x117d0 0x117d0 RWE 0x1000
  LOAD           0x012fd8 0xffffffd8 0xffffffd8 0x00028 0x00028 RWE 0x1000
  LOAD           0x013ff0 0xfffffff0 0xfffffff0 0x00000 0x00000 RW  0x1000

 Section to Segment mapping:
  Segment Sections...
   00     .rom .payload .reset .id 
   01     .reset .id 
   02     
bash-2.05b$ emacs ldoptions 


note that section 00 and section 01 have got the .reset and .id sections. 
This is misdirecting objcopy to do the wrong thing. 

What could cause ld to put duplicate section names in two different 
segments? 

What's odder: the ldcscripts that produce this file, and the right file:

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x001000 0xffff0000 0xffff0000 0x10000 0x10000 RWE 0x1000
  LOAD           0x011ff0 0xfffffff0 0xfffffff0 0x00000 0x00000 RW  0x1000

 Section to Segment mapping:
  Segment Sections...
   00     .rom .payload .reset .id 
   01     

are IDENTICAL. So I guess it's something in how things are compiled? I am 
stumped at present.

ron




More information about the coreboot mailing list