Recent mipsel-linux-gnu breakge

Daniel Jacobowitz drow@mvista.com
Thu Jan 29 15:29:00 GMT 2004


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.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer



More information about the Binutils mailing list