Attachment is a testsuit. It costed me a week to make this testsuit.
If I added -mno-explicit-relocs -mno-split-addresses to makefile, this bug
disappeared. Is there any performance difference with and without these
flags ?
Thanks!
----- Original Message -----
From: "Ralf Baechle" <ralf@linux-mips.org>
To: <wyb@topsec.com.cn>
Cc: <macro@linux-mips.org>; <sskowron@ET.PUT.Poznan.PL>;
<rsandifo@redhat.com>; <linux-mips@linux-mips.org>
Sent: Tuesday, July 25, 2006 11:44 AM
Subject: Re: unmatched R_MIPS_HI16/LO16 on gcc 3.4.3
> On Tue, Jul 25, 2006 at 10:49:56AM +0800, wyb@topsec.com.cn wrote:
>
> > 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
>
> Do you have a testcase, a kernel .config file to trigger this?
>
> Ralf
>
bug.tgz
Description: Binary data
.config
Description: Binary data
|