Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

ARM kernel module supported reloc types



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... 

    Given that, I thought I'd get a second opinion in case the problem is
    now the module is built, instead of the missing reloc support in the
    kernel.

Thanks,
--rafal

-- 
  Time is an illusion; lunchtime, doubly so.     |/\/\|           Rafal Boni
                   -- Ford Prefect               |\/\/|      
rafal%pobox.com@localhost


Home | Main Index | Thread Index | Old Index