diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-08-06 08:40:56 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-08-06 08:41:07 -0700 |
commit | 1d4af308ae58f459a2bfc50de70832284f1d3d2a (patch) | |
tree | 07caed1fe797634d457232326daf85edbbd2ea4b /bfd/ChangeLog | |
parent | a4819f54c0006554179631189131080be859eefb (diff) | |
download | gdb-1d4af308ae58f459a2bfc50de70832284f1d3d2a.zip gdb-1d4af308ae58f459a2bfc50de70832284f1d3d2a.tar.gz gdb-1d4af308ae58f459a2bfc50de70832284f1d3d2a.tar.bz2 |
x86: Lookup __tls_get_addr or ___tls_get_addr once
Instead of checking if a symbol is __tls_get_addr or ___tls_get_addr,
we check if there is a reference to __tls_get_addr or ___tls_get_addr
before starting relocation check.
* elf32-i386.c (elf_i386_link_hash_entry): Change tls_get_addr
to 1 bit.
(elf_i386_link_hash_newfunc): Initialize tls_get_addr to 0.
(elf_i386_check_tls_transition): Check tls_get_addr directly.
(elf_i386_convert_load_reloc): Update tls_get_addr check.
(elf_i386_link_check_relocs): New function.
(bfd_elf32_bfd_link_check_relocs): New.
* elf64-x86-64.c (elf_x86_64_link_hash_entry): Change tls_get_addr
to 1 bit.
(elf_x86_64_link_hash_newfunc): Initialize tls_get_addr to 0.
(elf_x86_64_check_tls_transition): Check tls_get_addr directly.
(elf_x86_64_convert_load_reloc): Update tls_get_addr check.
(elf_x86_64_link_check_relocs): New function.
(bfd_elf64_bfd_link_check_relocs): New.
(bfd_elf32_bfd_link_check_relocs): Likewise.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r-- | bfd/ChangeLog | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7c58a86..49ef45f 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,23 @@ 2017-08-06 H.J. Lu <hongjiu.lu@intel.com> + * elf32-i386.c (elf_i386_link_hash_entry): Change tls_get_addr + to 1 bit. + (elf_i386_link_hash_newfunc): Initialize tls_get_addr to 0. + (elf_i386_check_tls_transition): Check tls_get_addr directly. + (elf_i386_convert_load_reloc): Update tls_get_addr check. + (elf_i386_link_check_relocs): New function. + (bfd_elf32_bfd_link_check_relocs): New. + * elf64-x86-64.c (elf_x86_64_link_hash_entry): Change tls_get_addr + to 1 bit. + (elf_x86_64_link_hash_newfunc): Initialize tls_get_addr to 0. + (elf_x86_64_check_tls_transition): Check tls_get_addr directly. + (elf_x86_64_convert_load_reloc): Update tls_get_addr check. + (elf_x86_64_link_check_relocs): New function. + (bfd_elf64_bfd_link_check_relocs): New. + (bfd_elf32_bfd_link_check_relocs): Likewise. + +2017-08-06 H.J. Lu <hongjiu.lu@intel.com> + PR ld/21903: * elflink.c (elf_link_add_object_symbols): Treat common symbol as undefined for --no-define-common. |