Re: [PATCH] 2.5.52: compilation fixes for alpha

Jochen Friedrich (jochen@scram.de)
Fri, 20 Dec 2002 23:54:43 +0100 (CET)


Hi Hannes,

On Fri, 20 Dec 2002, Hannes Reinecke wrote:

> Shit. I forgot that one (I knew there was something missing).
> Try the attached patch instead; it's identical to the previous one, I
> just appended the patch for arch/alpha/mm/extable.c
>
> Let me know whether it works.

That one compiled OK, now.

> Note: Module loading is still likely to be buggered, since it
> appearantly relies on newer modutils (I'm a bit out of touch with
> current events). But at least it compiles and runs, even with modules
> enabled. I see what I can dig out re. modules.

I currently have module-init-tools 0.9.4 installed, but module loading
complains about an invalid relocation type 6. Using objdump on a module
shows that the module is not linked as a dynamic object file (objdump -R
complains), but still contains static relocation entries (objdump -r is
not empty). On the other hand the arch/alpha/kernel/module.c code looks
almost the same as the 2.5.50 code + rth patch which required dynamic
objects for modules. So either there still is a problem with the Makefiles
or module.c fails to handle all required relocation types for the Alpha
platform.

I have a working 2.5.50 with module-init-tools 0.9.1 + rth patches with
modules working and here objdump -R shows dynamic relocation entries for
the modules and objdump -r is empty.

modprobe tmsisa

module tmsisa: Unknown relocation: 6

objdump -R /lib/modules/2.5.52bk4/kernel/drivers/net/tokenring/tmsisa.ko

/lib/modules/2.5.52bk4/kernel/drivers/net/tokenring/tmsisa.ko: file
format elf64-alpha

objdump: /lib/modules/2.5.52bk4/kernel/drivers/net/tokenring/tmsisa.ko:
not a dynamic object
objdump: /lib/modules/2.5.52bk4/kernel/drivers/net/tokenring/tmsisa.ko:
Invalid operation

objdump -r /lib/modules/2.5.52bk4/kernel/drivers/net/tokenring/tmsisa.ko

/lib/modules/2.5.52bk4/kernel/drivers/net/tokenring/tmsisa.ko: file
format elf64-alpha

RELOCATION RECORDS FOR [.text]:
OFFSET TYPE VALUE
0000000000000000 GPDISP .text+0x0000000000000004
000000000000000c ELF_LITERAL alpha_mv
...
000000000000089c LITUSE .init.text+0x0000000000000003
000000000000089c HINT printk
00000000000008a0 GPDISP .init.text+0x0000000000000004
...

GPDISP seems the one the kernel complains about...

#define R_ALPHA_GPDISP 6 /* Add displacement to GP */

objdump -R /lib/modules/2.5.50/kernel/tmsisa.klm

/lib/modules/2.5.50/kernel/tmsisa.klm: file format elf64-alpha

DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
0000000000012330 RELATIVE *ABS*+0x0000000000000fe0
0000000000012338 RELATIVE *ABS*+0x0000000000000ec0
...
0000000000012290 GLOB_DAT __this_module
00000000000122d0 GLOB_DAT tms380tr_interrupt
00000000000122e8 GLOB_DAT ioport_resource
00000000000122f0 GLOB_DAT alpha_mv
0000000000012288 JMP_SLOT free_irq
0000000000012298 JMP_SLOT unregister_trdev
...

Thanks,
--jochen

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/