aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfxx-x86.h
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-11-03 11:14:56 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-11-03 11:15:10 -0700
commit79b0c981b8f0c912208ec305d48e775bcb6d2624 (patch)
treefe791c604664a174b872fa4afcc51b8fe7bcb49d /bfd/elfxx-x86.h
parent67fa57cfa536cefb5ae7cc4635db66d03fdbd8bb (diff)
downloadgdb-79b0c981b8f0c912208ec305d48e775bcb6d2624.zip
gdb-79b0c981b8f0c912208ec305d48e775bcb6d2624.tar.gz
gdb-79b0c981b8f0c912208ec305d48e775bcb6d2624.tar.bz2
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.
Diffstat (limited to 'bfd/elfxx-x86.h')
-rw-r--r--bfd/elfxx-x86.h5
1 files changed, 0 insertions, 5 deletions
diff --git a/bfd/elfxx-x86.h b/bfd/elfxx-x86.h
index 8d2a731..fb57d43 100644
--- a/bfd/elfxx-x86.h
+++ b/bfd/elfxx-x86.h
@@ -133,7 +133,6 @@
&& (EH) != NULL \
&& (EH)->elf.dynindx != -1 \
&& (!(EH)->elf.non_got_ref \
- || (EH)->func_pointer_refcount > 0 \
|| ((EH)->elf.root.type == bfd_link_hash_undefweak \
&& !(RESOLVED_TO_ZERO))) \
&& (((EH)->elf.def_dynamic && !(EH)->elf.def_regular) \
@@ -268,10 +267,6 @@ struct elf_x86_link_hash_entry
is only used by x86-64. */
unsigned int needs_copy : 1;
- /* Reference count of C/C++ function pointer relocations in read-write
- section which can be resolved at run-time. */
- bfd_signed_vma func_pointer_refcount;
-
/* Information about the GOT PLT entry. Filled when there are both
GOT and PLT relocations against the same function. */
union gotplt_union plt_got;