This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
RE: [PATCH] MIPS support for --hash-style=gnu
- From: "Neil Schellenberger (neschell)" <neschell at cisco dot com>
- To: Rafael EspÃndola <rafael dot espindola at gmail dot com>
- Cc: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Thu, 5 Nov 2015 23:32:58 +0000
- Subject: RE: [PATCH] MIPS support for --hash-style=gnu
- Authentication-results: sourceware.org; auth=none
- References: <b49cd7d6b04d41749d56d557879ad4a6 at XCH-RCD-006 dot cisco dot com> <CAG3jRe+Bifxd2YJCHRgKr5OR=Ryb05hHrRVrJneAzCwZ2ePLww at mail dot gmail dot com> <00281f3787744b1d800f6889eb7ed183 at XCH-RCD-006 dot cisco dot com> <CAG3jReKRa2VdT0OFvW-jSrzjWXa=6nSMVrbkczW=bHrjFJ7YAw at mail dot gmail dot com>
[I apologize in advance for my ignorance of most of the details of MIPS relocations....]
/If/ I understand correctly, there are three relocations involved for MIPS64:
R_MIPS_GOT_DISP, R_MIPS_GOT_PAGE, and R_MIPS_GOT_OFST. My concern
is that if I shuffle things around in the GOT, wouldn't there be a danger that
(given a big enough move from its original spot in the GOT) a compiler generated
code sequence originally of one instruction and R_MIPS_GOT_DISP might now need
multiple instructions using R_MIPS_GOT_PAGE and R_MIPS_GOT_OFST?
> -----Original Message-----
> From: Rafael EspÃndola [mailto:rafael.espindola@gmail.com]
> Sent: Thursday, November 05, 2015 1:46 PM
> To: Neil Schellenberger (neschell) <neschell@cisco.com>
> Cc: binutils@sourceware.org
> Subject: Re: [PATCH] MIPS support for --hash-style=gnu
>
> Now in plain text:
>
> I am not sure I follow. In each .o file the text sections have
> relocations to the got entries, not indexes, no?
>
> Cheers, Rafael
>
> On 5 November 2015 at 13:27, Neil Schellenberger (neschell)
> <neschell@cisco.com> wrote:
> > I did make a couple of abortive attempts to think of ways to do that,
> > but in the end I failed. The chief difficulty seems to me (perhaps
> > entirely incorrectly) that any change in the order of the GOT entries
> > would require a related change to all references to them from the
> > .text and/or relocations. (I was really trying to avoid fiddling with
> > that since I was already in over my head trying to grok BFD,
> > multi-got, mxgot, etc.... ) Is there some provably correct way to go
> > about back-patching the new GOT entry numbers into the .text?
> > (For obvious reasons, I /really/ want to avoid also needing any
> > changes in all possible upstream code generators e.g. gcc, gas,
> > clang etc.)
> >
> > I would be more than happy to hear that I am completely mistaken,
> > though! I knew next to nothing about any of this before I started
> > and wouldn't pretend to claim to know much more about it now....
> >
> > Regards,
> > Neil
> >
> >> -----Original Message-----
> >> From: Rafael EspÃndola [mailto:rafael.espindola@gmail.com]
> >> Sent: Thursday, November 05, 2015 12:14 PM
> >> To: Neil Schellenberger (neschell) <neschell@cisco.com>
> >> Cc: binutils@sourceware.org
> >> Subject: Re: [PATCH] MIPS support for --hash-style=gnu
> >>
> >> Wouldn't it be possible to sort the got entries so that the symbols
> >> end up in the same order as the gnu hash table?
> >>
> >> Cheers,
> >> Rafael
> >>