* 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 |