linux-mips
[Top] [All Lists]

Re: unmatched R_MIPS_HI16/LO16 on gcc 3.4.3

To: "Ralf Baechle" <ralf@linux-mips.org>
Subject: Re: unmatched R_MIPS_HI16/LO16 on gcc 3.4.3
From: <wyb@topsec.com.cn>
Date: Mon, 31 Jul 2006 09:58:28 +0800
Cc: <macro@linux-mips.org>, <sskowron@ET.PUT.Poznan.PL>, <rsandifo@redhat.com>, <linux-mips@linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <004001c6af95$14585900$0100000a@codingman> <20060725034424.GB22138@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
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
>

Attachment: bug.tgz
Description: Binary data

Attachment: .config
Description: Binary data

<Prev in Thread] Current Thread [Next in Thread>