Hello,
> U unregister_chrdev
> 00000000 T freemware_start
this is fine ...
> 000004d8 B freemware_end
> 0000053b t __soft_int_n
... but this is completely broken :-/
> 1 .fixup 00000018 00000000 00000000 000029f6 2**0
> CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
> 3 __ex_table 00000010 00000000 00000000 0000323c 2**2
> CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
[snip]
And those sections are the reason why it breaks. These are
apparently generated by inlined code included from the 2.3.x headers
into the module code ...
The fix is to update the host-linux.ld file to handle these
sections properly. Could you try out replacing the SECTIONS
command in host-linux.ld with this:
SECTIONS
{
.text : { freemware_start = .;
*(.text)
*(.fixup) } =0x9090
.text.lock : { *(.text.lock) }
.rodata : { *(.rodata) }
__ex_table : { *(__ex_table) }
__ksymtab : { *(__ksymtab) }
.data : { *(.data) }
.bss : { *(.bss)
*(COMMON)
freemware_end = .; }
.stab : { *(.stab) }
.stabstr : { *(.stabstr) }
.comment : { *(.comment) }
}
Bye,
Ulrich
--
Ulrich Weigand,
IMMD 1, Universitaet Erlangen-Nuernberg,
Martensstr. 3, D-91058 Erlangen, Phone: +49 9131 85-7688