x86: Remove func_pointer_refcount
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 3 Nov 2017 18:14:56 +0000 (11:14 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 3 Nov 2017 18:15:10 +0000 (11:15 -0700)
commit79b0c981b8f0c912208ec305d48e775bcb6d2624
treefe791c604664a174b872fa4afcc51b8fe7bcb49d
parent67fa57cfa536cefb5ae7cc4635db66d03fdbd8bb
x86: Remove func_pointer_refcount

Since check_reloc is running after gc_sections, there is no need for
reference count.  If a function pointer relocation can be resolved at
run-time, there is no need for PLT and it doesn't count as non-GOT/PLT
relocation.  func_pointer_refcount can be removed.

* elf32-i386.c (elf_i386_check_relocs): Set plt.refcount to 1.
Don't use func_pointer_refcount.  Don't set plt.refcount nor
non_got_ref for function pointer reference.
* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
* elfxx-x86.c (elf_x86_allocate_dynrelocs): Don't use
func_pointer_refcount.
(_bfd_x86_elf_copy_indirect_symbol): Don't copy
func_pointer_refcount.
(_bfd_x86_elf_hide_symbol): Don't use func_pointer_refcount.
* elfxx-x86.h (GENERATE_DYNAMIC_RELOCATION_P): Likewise.
(elf_x86_link_hash_entry): Remove func_pointer_refcount.
bfd/ChangeLog
bfd/elf32-i386.c
bfd/elf64-x86-64.c
bfd/elfxx-x86.c
bfd/elfxx-x86.h