00c5099111
* 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.
12 lines
262 B
TableGen
12 lines
262 B
TableGen
#source: gotop64.s
|
|
#as: --64 -K PIC
|
|
#ld: -shared -melf64_sparc
|
|
#objdump: -sj.data
|
|
#target: sparc*-*-*
|
|
|
|
.*: +file format elf64-sparc
|
|
|
|
Contents of section .data:
|
|
103000 12345678 deadbeef 00000000 00000000 .*
|
|
103010 00000000 00000000 00000000 00000000 .*
|
|
#pass
|