I used the gcc-directive __attribute__ to assign an array to a new segment and an script with 'ld -r' to specify that this segment is to be located (but not loaded) at address 0x000D0000 (on the ISA-bus). Using objdump I verified that the headers and compiled code in both the individual module and the "link" were correct in referencing a segment at the address I spercified. When insmod loads this module it does not relocate this segment but simply assigns it to the next sequential address. To verify that the compilation and linker-script were correct I created a module of stubs to satisfy the external references to kernel-globals and linked it without the '-r' option. Examination of this module shows that references to the array were correct. The exact version of modutils is 2.1.85-9
Apologies for the delay. This sort of issue is probably best handled upstream.