linux-mips
[Top] [All Lists]

unmatched R_MIPS_HI16/LO16 on gcc 3.4.3

To: <macro@linux-mips.org>, <ralf@linux-mips.org>, <sskowron@ET.PUT.Poznan.PL>, <rsandifo@redhat.com>
Subject: unmatched R_MIPS_HI16/LO16 on gcc 3.4.3
From: <wyb@topsec.com.cn>
Date: Tue, 25 Jul 2006 10:49:56 +0800
Cc: <linux-mips@linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
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



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