Hi,
In this file: kernel-debuginfo-2.6.29-0.258.rc8.git2.fc11.i586:usr:lib:debug:lib:modules:2.6.29-0.258.rc8.git2.fc11.i586:vmlinux
I'm seeing relocations that seem wrong: the addend and the value of the symbol the relocation is done against are the same.
Relocation section [71] '.rel.debug_aranges' for section [70] '.debug_aranges' at offset 0x4d1d0dc contains 4309 entries: Offset Type Value Name 0x00000006 386_32 0000000000 .debug_info 0x00000010 386_32 0xc0400000 .text.head
Section Headers: [Nr] Name Type Addr Off Size ES Flags Lk Inf Al [ 0] NULL 00000000 000000 000000 0 0 0 0 [ 1] .text.head PROGBITS c0400000 001000 0003b1 0 AX 0 0 16 [ 2] .rel.text.head REL 00000000 4b3313c 0001e0 8 87 1 4 [ 3] .text PROGBITS c0400400 001400 2f33ca 0 AX 0 0 128
Symbol table [87] '.symtab' contains 40473 entries: 29807 local symbols String table: [88] '.strtab' Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UNDEF 1: c0400000 0 SECTION LOCAL DEFAULT 1 2: c0400400 0 SECTION LOCAL DEFAULT 3 3: c06f37cc 0 SECTION LOCAL DEFAULT 5
And objdump just to be sure: Contents of section .debug_aranges: 0000 1c000000 02000000 00000400 00000000 ................ 0010 000040c0 b1030000 00000000 00000000 ..@............. 0020 1c000000 02007d00 00000400 00000000 ......}.........
Unless I'm wrong here, what I see is relocation with addend 0xc0400000, formed against .text.head, whose address also is 0xc0400000, resulting in relocated address 0x180800000, or 0x80800000 after 32-bit wrapping (which I made up right now, dwarflint forgets to do this). That doesn't fall into any section. Bug, or am I missing something?
PM