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