Recent mipsel-linux-gnu breakge
Richard Sandiford
rsandifo@redhat.com
Fri Jun 27 06:25:00 GMT 2003
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?
Richard
More information about the Binutils
mailing list