public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: "Maciej W. Rozycki" <macro@linux-mips.org>
To: Richard Sandiford <rdsandiford@googlemail.com>
Cc: binutils@sourceware.org
Subject: Re: [PATCH] MIPS/GAS: Fix NewABI reloc handling with the LD/SD macro
Date: Mon, 01 Nov 2010 10:35:00 -0000	[thread overview]
Message-ID: <alpine.LFD.2.00.1011010957010.25426@eddie.linux-mips.org> (raw)
In-Reply-To: <g4y69dzb35.fsf@richards-desktop.stglab.manchester.uk.ibm.com>

On Mon, 1 Nov 2010, Richard Sandiford wrote:

> >> This may be a known bug, and is certainly nothing to do with your patches,
> >> but I notice:
> >> 
> >> 	ld	$4,0x7ffc($5)
> >> 
> >> fails to work correctly (or trigger a diagnostic) in o32 mode.
> >> 0x8000 works fine of course.
> >
> >  You didn't like my patch addressing this issue back here:
> >
> > http://sourceware.org/ml/binutils/2005-02/msg00610.html
> >
> > (originally here: http://sourceware.org/ml/binutils/2004-06/msg00530.html)
> >
> > but I've kept maintaining it locally over the years (and got it up to 
> > 2.20; obviously with the recent changes it'll require an update, but I 
> > planned to do that anyway while upgrading the RPM packages I maintain).  
> > If you'd like me to get it refreshed and resubmitted, then I am all for 
> > it.
> 
> No, I stand by what I said there.  IMO the reloc case isn't interesting
> for the reasons discussed in that thread.  The o(b) case _is_
> interesting because it is inconsistent with the corresponding
> o(b) behaviour for unaligned loads and stores.

 I am confused.  The very purpose of that patch 
(binutils-*-mips-dword-reloc.patch, for the avoidance of doubt) is to 
avoid an overflow from 0x7ffc wrapping to -0x8000.

 If you're concerned about my proposal pessimising code for a corner case 
where one of two LO16 relocs sharing a common HI16 reloc has a carry at 
the link stage into the HI16 reloc while the other one does not, then 
perhaps it would be enough if LD just failed the link complaining about 
this problem instead?  Then we would only have to take care of the 
immediate addend of 0x7ffc.  The drawback is if the LD error is hit, the 
user would have to sort out the problem himself and frankly "rearranging 
code so that the symbol <foo> has its final address different to <addr>" 
sounds rather like a dodgy solution to me.

 It looks I've had that binutils-*-mips-reloc-got-offset.patch change 
outstanding for a couple of years too. ;)

  Maciej

  reply	other threads:[~2010-11-01 10:35 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-24 14:32 Maciej W. Rozycki
2010-10-25 21:30 ` Richard Sandiford
2010-10-31 22:46   ` Maciej W. Rozycki
2010-11-01  8:32     ` Richard Sandiford
2010-11-01  9:56       ` Maciej W. Rozycki
2010-11-01  8:45     ` Richard Sandiford
2010-11-01 10:35       ` Maciej W. Rozycki [this message]
2010-11-01 11:24         ` Richard Sandiford

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LFD.2.00.1011010957010.25426@eddie.linux-mips.org \
    --to=macro@linux-mips.org \
    --cc=binutils@sourceware.org \
    --cc=rdsandiford@googlemail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).