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

Reply via email to