* 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. |
||
|---|---|---|
| .. | ||
| gotop32.dd | ||
| gotop32.rd | ||
| gotop32.s | ||
| gotop32.sd | ||
| gotop32.td | ||
| gotop64.dd | ||
| gotop64.rd | ||
| gotop64.s | ||
| gotop64.sd | ||
| gotop64.td | ||
| sparc.exp | ||
| tlsg32.s | ||
| tlsg32.sd | ||
| tlsg64.s | ||
| tlsg64.sd | ||
| tlslib.s | ||
| tlsnopic.s | ||
| tlspic.s | ||
| tlssunbin32.dd | ||
| tlssunbin32.rd | ||
| tlssunbin32.s | ||
| tlssunbin32.sd | ||
| tlssunbin32.td | ||
| tlssunbin64.dd | ||
| tlssunbin64.rd | ||
| tlssunbin64.s | ||
| tlssunbin64.sd | ||
| tlssunbin64.td | ||
| tlssunbinpic32.s | ||
| tlssunbinpic64.s | ||
| tlssunnopic32.dd | ||
| tlssunnopic32.rd | ||
| tlssunnopic32.s | ||
| tlssunnopic32.sd | ||
| tlssunnopic64.dd | ||
| tlssunnopic64.rd | ||
| tlssunnopic64.s | ||
| tlssunnopic64.sd | ||
| tlssunpic32.dd | ||
| tlssunpic32.rd | ||
| tlssunpic32.s | ||
| tlssunpic32.sd | ||
| tlssunpic32.td | ||
| tlssunpic64.dd | ||
| tlssunpic64.rd | ||
| tlssunpic64.s | ||
| tlssunpic64.sd | ||
| tlssunpic64.td | ||
| vxworks1-lib.dd | ||
| vxworks1-lib.nd | ||
| vxworks1-lib.rd | ||
| vxworks1-lib.s | ||
| vxworks1-lib.td | ||
| vxworks1-static.d | ||
| vxworks1.dd | ||
| vxworks1.ld | ||
| vxworks1.rd | ||
| vxworks1.s | ||
| vxworks2-static.sd | ||
| vxworks2.s | ||
| vxworks2.sd | ||