bfd/
authorDavid S. Miller <davem@redhat.com>
Thu, 11 Feb 2010 19:57:40 +0000 (19:57 +0000)
committerDavid S. Miller <davem@redhat.com>
Thu, 11 Feb 2010 19:57:40 +0000 (19:57 +0000)
commit00c5099111744132fa72c773faf4df4a6dad1fb9
treebfb6f183da74d795cce5f259eb00d559e40ea3fa
parent6fa78d941bfeeaabea9a746a6588831b63daf0ec
bfd/

* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): For R_SPARC_GOTDATA_OP_HIX22
and R_SPARC_GOTDATA_OP_LOX10, only bump the GOT refcount for global
symbols.
(_bfd_sparc_elf_gc_sweep_hook): Likewise only decrement the GOT count for
these relocs on global symbols.
(gdopoff): New.
(_bfd_sparc_elf_relocate_section): Perform GOTDATA optimizations on
local symbol references which are not STT_GNU_IFUNC.  Handle
relocation of them like R_SPARC_HIX22 and R_SPARC_LOX10 respectively,
and deal with negative vs. non-negative values properly.

ld/testsuite

* ld-sparc/gotop32.s: Add local symbol case.
* ld-sparc/gotop64.s: Likewise.
* ld-sparc/gotop32.rd: Adjust expected results.
* ld-sparc/gotop32.td: Likewise.
* ld-sparc/gotop64.dd: Likewise.
* ld-sparc/gotop64.rd: Likewise.
* ld-sparc/gotop64.td: Likewise.
bfd/ChangeLog
bfd/elfxx-sparc.c
ld/testsuite/ChangeLog
ld/testsuite/ld-sparc/gotop32.dd
ld/testsuite/ld-sparc/gotop32.rd
ld/testsuite/ld-sparc/gotop32.s
ld/testsuite/ld-sparc/gotop32.td
ld/testsuite/ld-sparc/gotop64.dd
ld/testsuite/ld-sparc/gotop64.rd
ld/testsuite/ld-sparc/gotop64.s
ld/testsuite/ld-sparc/gotop64.td