Sorry for disturbing you.
I met similar problem as Stanislaw Skowronek, but for gcc 3.4.3. I created a
kernel module, when insmod, kernel reported "dangerous relocation". I traced
the bug, found unmatched R_MIPS_HI16/LO16 in module's elf file, and kernel
refused to relocate:
...
00015a5c 00039a05 R_MIPS_HI16 0000000c tos_net_debug
00015a68 00000204 R_MIPS_26 00000000 .text
00015a64 00046005 R_MIPS_HI16 0006b598 arp_proxy_list
00015a6c 00046006 R_MIPS_LO16 0006b598 arp_proxy_list
...
My problem arised when expression on tos_net_debug could be optimized out,
it seemed like gcc optimized out the LO16, but left HI16.
The original discussion on similar problem is at
http://www.linux-mips.org/archives/linux-mips/2005-05/msg00097.html
thanks very much
|