.gpdword support, elf64-mips fixes
Alexandre Oliva
aoliva@redhat.com
Fri Oct 11 22:44:00 GMT 2002
This patch implements .gpdword (thanks for the starting point, Eric!),
arranges for .cpadd to be usable in n32 and n64, and fixes a few
problems with gp-relative relocations that I ran into while playing
with it. I have a patch for GCC that exercises these features, and I
couldn't figure out how to do multi-stage relocatable links of large
files, that would be necessary to test all of the problems this patch
fixes. I hope this is still acceptable.
One of the problems was with GPREL32, that could no longer be
truncated to 32 bits when its value was actually being composed with a
_64 relocation (that's how the MIPS ELF64 ABI says 64-bit GPREL
relocations are supposed to be represented; eek! :-)
The other problems were in GPREL16 relocations, whose addends were
truncated to 16 bits even though they could be (and were!) wider than
that with RELA relocations. Also, I had problems with symbols that
were forced local with linker scripts: we'd add gp0 to them even
though the original gp value hadn't been subtracted from their addends
in earlier relocatable links.
No regressions on mips-elf. Ok to install?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gpdword-bfd.patch
Type: text/x-patch
Size: 4249 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20021011/f79b4628/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gpdword-gas.patch
Type: text/x-patch
Size: 3313 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20021011/f79b4628/attachment-0001.bin>
-------------- next part --------------
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist Professional serial bug killer
More information about the Binutils
mailing list