This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Forcing gas not to resolve jump offsets
- From: "Nick Kelsey" <nickk at ubicom dot com>
- To: "Alan Modra" <amodra at bigpond dot net dot au>
- Cc: <binutils at sources dot redhat dot com>
- Date: Tue, 17 Dec 2002 15:29:43 -0800
- Subject: Re: Forcing gas not to resolve jump offsets
- References: <0cfd01c2a577$66e91dc0$f601a8c0@nkelseyxp> <redirect-4840249@silicondust.com>
- Reply-to: "Nick Kelsey" <nickk at ubicom dot com>
Hi Alan,
Thanks!
I implemented the tc_fix_adjustable function and told it not to adjust
call/jump targets that are non-local.... problem solved.
The ip2k port has a TC_FORCE_RELOCATION function but it never gets called...
is this anything to worry about?
Thanks again.
Nick
----- Original Message -----
From: "Alan Modra" <amodra@bigpond.net.au>
To: <jafa@silicondust.com>
Sent: Monday, December 16, 2002 7:58 PM
Subject: Re: Forcing gas not to resolve jump offsets
*This message was transferred with a trial version of CommuniGate(tm) Pro*
On Mon, Dec 16, 2002 at 06:52:56PM -0800, Nick Kelsey wrote:
> I am wondering how I can tell gas not to resolve jump/call target symbols
> that jump/call to a different section, even if they are in the same file?
You need to do adjust TC_FORCE_RELOCATION for ip2k. In your case this
means changing tc-ip2k.c:ip2k_force_relocation. The function should
return 1 for jump target fixups, which you likely can discriminate
from other fixups by looking at the relocation type. You may also
need to define tc_fix_adjustable to prevent gas converting a fixup
against your jump target symbols to a fixup against a section symbol.
--
Alan Modra
IBM OzLabs - Linux Technology Centre