PowerPC64 __tls_get_addr sequence optimization
[binutils-gdb.git] / bfd / ChangeLog
index bb389205217df6c3b51cf6378cee39f7e05b6147..ec74d9d2012b47dafe6516c3e28fd7e2cde2355a 100644 (file)
@@ -1,3 +1,100 @@
+2017-08-30  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (ppc64_elf_relocate_section): When optimizing
+       __tls_get_addr call sequences to LE, don't move the addi down
+       to the nop.  Replace the bl with addi and leave the nop alone.
+
+2017-08-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_pie_finish_undefweak_symbol):
+       Re-indent.
+       * elf64-x86-64.c (elf_x86_64_finish_local_dynamic_symbol):
+       Likewise.
+       (elf_x86_64_pie_finish_undefweak_symbol): Likewise.
+
+2017-08-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_get_synthetic_symtab): Simplify bad
+       return.
+       * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
+
+2017-08-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_get_synthetic_symtab): Check valid PLT
+       sections before checking dynamic relocations and free invalid
+       PLT section contents.
+       * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
+
+2017-08-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf-bfd.h (_bfd_elf_ifunc_get_synthetic_symtab): Removed.
+       * elf-ifunc.c (_bfd_elf_ifunc_get_synthetic_symtab): Likewise.
+
+2017-08-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR binutils/22018
+       * elf32-i386.c (elf_i386_get_synthetic_symtab): Check for valid
+       PLT section size.
+       * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
+
+2017-08-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_link_hash_newfunc): Initialize
+       def_protected.
+       * elf64-x86-64.c (elf_x86_64_link_hash_newfunc): Likewise.
+
+2017-08-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/21997
+       * elf-bfd.h (elf_obj_tdata): Use ENUM_BITFIELD on object_id,
+       dyn_lib_class and has_gnu_symbols.  Change bad_symtab to bitfield.
+       Add a has_no_copy_on_protected bitfield.
+       (elf_has_no_copy_on_protected): New.
+       * elf-properties.c (_bfd_elf_parse_gnu_properties): Set
+       elf_has_no_copy_on_protected for GNU_PROPERTY_NO_COPY_ON_PROTECTED.
+       (elf_merge_gnu_property_list): Likewise.
+       (_bfd_elf_link_setup_gnu_properties): Set extern_protected_data
+       to FALSE for elf_has_no_copy_on_protected.
+       * elf32-i386.c (SYMBOL_NO_COPYRELOC): New.
+       (elf_i386_link_hash_entry): Add def_protected.
+       (elf_i386_adjust_dynamic_symbol): Also check SYMBOL_NO_COPYRELOC
+       when checking info->nocopyreloc.
+       (elf_i386_link_setup_gnu_properties): Don't set
+       extern_protected_data here.
+       (elf_i386_merge_symbol_attribute): New function.
+       (elf_backend_merge_symbol_attribute): New.
+       * elf64-x86-64.c (SYMBOL_NO_COPYRELOC): New.
+       (elf_x86_64_link_hash_entry): Add def_protected.
+       (elf_x86_64_need_pic): Report protected symbol for def_protected.
+       (elf_x86_64_adjust_dynamic_symbol): Also check SYMBOL_NO_COPYRELOC
+       when checking info->nocopyreloc.
+       (elf_x86_64_relocate_section): Also check for R_X86_64_PC32
+       relocation run-time overflow and unresolvable R_X86_64_32S
+       relocation against protected data symbol defined in shared object
+       with GNU_PROPERTY_NO_COPY_ON_PROTECTED.
+       (elf_x86_64_link_setup_gnu_properties): Don't set
+       extern_protected_data here.
+       (elf_x86_64_merge_symbol_attribute): New function.
+       (elf_backend_merge_symbol_attribute): New.
+
+2017-08-26  Alan Modra  <amodra@gmail.com>
+
+       * elf32-ppc.c (must_be_dyn_reloc): Use bfd_link_dll.  Comment.
+       (ppc_elf_check_relocs): Only set DF_STATIC_TLS in shared libs.
+       (ppc_elf_relocate_section): Comment fix.
+       * elf64-ppc.c (must_be_dyn_reloc): Use bfd_link_dll.  Comment.
+       (ppc64_elf_check_relocs): Only set DF_STATIC_TLS in shared libs.
+       Support dynamic relocs for TPREL16 when non-pic too.
+       (dec_dynrel_count): Adjust TPREL16 handling as per check_relocs.
+       (ppc64_elf_relocate_section): Support dynamic relocs for TPREL16
+       when non-pic too.
+
+2017-08-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_link_hash_entry): Remove redundant
+       "symbol" in comments.
+       * elf64-x86-64.c (elf_x86_64_link_hash_entry): Likewise.
+
 2017-08-24  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/22001