This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Recent mipsel-linux-gnu breakge
- From: Richard Sandiford <rsandifo at redhat dot com>
- To: binutils at sources dot redhat dot com
- Cc: seufer at csv dot ica dot uni-stuttgart dot de
- Date: 27 Jun 2003 07:22:22 +0100
- Subject: Recent mipsel-linux-gnu breakge
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