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