Recent mipsel-linux-gnu breakge

Thiemo Seufer ica2_ts@csv.ica.uni-stuttgart.de
Thu Jan 29 16:02:00 GMT 2004


Daniel Jacobowitz wrote:
> On Fri, Jun 27, 2003 at 07:22:22AM +0100, Richard Sandiford wrote:
> > Thiemo,
> > 
> > This patch:
> > 
> >    http://sources.redhat.com/ml/binutils/2003-06/msg00374.html
> > 
> > reduced the .got alignment from 16 to 4, but unfortunately the 16-byte
> > assumption is hard-coded into the ld scripts:
> > 
> > OTHER_GOT_SYMBOLS='
> >   _gp = ALIGN(16) + 0x7ff0;
> > '
> > 
> > The stubs generated by elfxx-mips.c assume that _gp = .got + 0x7ff0:
> > 
> > #define STUB_LW(abfd)						\
> >   ((ABI_64_P (abfd)  						\
> >     ? 0xdf998010		/* ld t9,0x8010(gp) */		\
> >     : 0x8f998010))              /* lw t9,0x8010(gp) */
> > 
> > but that no longer holds: _gp can be anywhere between .got + 0x7ff0
> > and .got + 0x7ffc.  This has broken mipsel-linux-gnu.
> > 
> > One possible fix is to change ALIGN (16) to ALIGN (4) in the ld scripts.
> > But I'm worried that people will have created custom scripts based off
> > the default ones.  This definitely seems to be a user-visible change.
> > And it might seems like a gratuitous one in some eyes ;)
> > 
> > Would it be OK to go back to 16-byte .got alignment?
> 
> Was anything ever decided about this?  I don't see a fix in my
> archives, but mipsel-linux doesn't appear to be broken either.

>From bfd/ChangeLog-0203:

2003-06-27  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

        * elfxx-mips.c: Revert .got alignment to 2**4.


Thiemo



More information about the Binutils mailing list