Folks:
I've finally come out of the LKM dark ages and am trying to adapt
to
the new MODULAR kernel mod framework on my evbarm target (thanks to
Andrew for forcing the issue by killing off the old LKM support;
the
new framework is definitely nicer, but sometimes one needs a nudge
to move from the crud you know even if you hate it ;)), but I'm
having
an issue loading even the trivial example module due to unexpected
reloc types.
What I get is the following:
kobj_reloc: unexpected relocation type 1
An objdump on example.kmod shows:
# objdump --reloc example.kmod
example.kmod: file format elf32-littlearm
RELOCATION RECORDS FOR [.text]:
OFFSET TYPE VALUE
00000014 R_ARM_PC24 .text
00000018 R_ARM_PC24 .text
00000020 R_ARM_PC24 printf
0000002c R_ARM_PC24 prop_dictionary_get
00000034 R_ARM_PC24 .text
00000038 R_ARM_PC24 prop_object_type
00000044 R_ARM_PC24 .text
0000004c R_ARM_PC24 printf
00000068 R_ARM_PC24 printf
[...]
So the question is should I simply add the R_ARM_PC24 handling to
the
ARM kobj_reloc() method [I've done that already but haven't
tested it
yet]? I note that ARM's ld_elf.so has a 'XXX shouldn't be here'
for
the PC24 reloc type but handles it anyway...