nds32: Rename __BIT() to N32_BIT().
[binutils-gdb.git] / bfd / ChangeLog
index 7e98b61c030d721ac7ed5716a3e283c2d834c001..6eebc4501deef4aff57c890526d79fc77d9f9f2f 100644 (file)
@@ -1,3 +1,153 @@
+2017-09-09  Kamil Rytarowski  <n54@gmx.com>
+
+       * elf32-nds32.c: Rename __BIT() to N32_BIT().
+
+2017-09-09  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppp.c (plt_stub_pad): Handle positive and negative
+       plt_stub_align.
+
+2017-09-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_relocate_section): Update usage of
+       UNDEFINED_WEAK_RESOLVED_TO_ZERO.
+       (elf_i386_finish_dynamic_symbol): Likewise.
+       * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+       (elf_x86_64_finish_dynamic_symbol): Likewise.
+       * elfxx-x86.c (elf_x86_allocate_dynrelocs): Likewise.
+       (_bfd_x86_elf_fixup_symbol): Likewise.
+
+2017-09-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't
+       check has_non_got_reloc.
+
+2017-09-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/22115
+       * elf32-i386.c (elf_i386_convert_load_reloc): Check linker_def.
+       Don't use UNDEFINED_WEAK_RESOLVED_TO_ZERO.
+       * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Check
+       linker_def.  Don't use UNDEFINED_WEAK_RESOLVED_TO_ZERO.
+       * elfxx-x86.c (_bfd_x86_elf_link_check_relocs): Set local_ref
+       and linker_def on __ehdr_start if it is referenced and not
+       defined.
+       (_bfd_x86_elf_link_symbol_references_local): Also set local_ref
+       and return TRUE when building executable, if a symbol has
+       non-GOT/non-PLT relocations in text section or there is no
+       dynamic linker.
+       * elfxx-x86.h (elf_x86_link_hash_entry): Add linker_def.
+
+2017-09-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-x86.h: Update comments.
+
+2017-09-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_link_setup_gnu_properties): Replace
+       elf_x86_plt_layout_table with elf_x86_init_table.
+       * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties):
+       Likewise.
+       * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties):
+       Likewise.
+       * elfxx-x86.h (elf_x86_plt_layout_table): Renamed to ...
+       (elf_x86_init_table): This.
+       (_bfd_x86_elf_link_setup_gnu_properties): Replace
+       elf_x86_plt_layout_table with elf_x86_init_table.
+
+2017-09-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.ac (bfd_backends): Don't add elf64-x86-64.lo nor
+       elf64.lo together with elfxx-x86.lo for 64-bit BFD.
+       * configure: Regenerated.
+       * elf32-i386.c (elf_i386_link_setup_gnu_properties): Set r_info
+       and r_sym fields of plt_layout.
+       * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties):
+       Likewise.
+       * elfxx-x86.c (elf_x86_64_is_reloc_section): Remove BFD64 check.
+       (_bfd_x86_elf_link_hash_table_create): Likewise.  Don't set
+       r_info nor r_sym fields.
+       (_bfd_x86_elf_link_setup_gnu_properties): Set r_info and r_sym
+       fields of htab.
+       * elfxx-x86.h (elf_x86_plt_layout_table): Add r_info and r_sym.
+
+2017-09-07  Palmer Dabbelt  <palmer@dabbelt.com>
+
+       * (_bfd_riscv_relax_align): Call bfd_set_error and
+       print an error message when unable to relax a .align directive.
+
+2017-09-07  Palmer Dabbelt  <palmer@dabbelt.com>
+
+       * elfnn-riscv.c (riscv_zero_pcrel_hi_reloc): New function.
+       (riscv_record_pcrel_hi_reloc): Add absolute argument.
+       (riscv_elf_relocate_section): Call riscv_zero_pcrel_hi_reloc for
+       R_RISCV_PCREL_HI20 relocs, and pass the result to
+       riscv_record_pcrel_hi_reloc.
+
+2017-09-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_convert_load_reloc): Add an argument,
+       r_type_p.  Remove the converted argument.  Replace
+       SYMBOL_REFERENCES_LOCAL with SYMBOL_REFERENCES_LOCAL_P.  Return
+       the new relocation type via r_type_p.
+       (elf_i386_relocate_section): Likewise.
+       (elf_i386_finish_dynamic_symbol): Likewise.
+       (need_convert_load): Removed.
+       (check_relocs_failed): Updated.
+       (elf_i386_check_relocs): Call elf_i386_convert_load_reloc,
+       instead of setting need_convert_load.
+       (_bfd_i386_elf_convert_load): Removed.
+       * elf64-x86-64.c (need_convert_load): Removed.
+       (check_relocs_failed): Updated.
+       (elf_x86_64_convert_load_reloc): Add an argument, r_type_p.
+       Replace SYMBOL_REFERENCES_LOCAL with SYMBOL_REFERENCES_LOCAL_P.
+       Return the new relocation type via r_type_p.
+       (elf_x86_64_check_relocs): Call elf_x86_64_convert_load_reloc,
+       instead of setting need_convert_load.
+       (elf_x86_64_check_relocs): Don't check PIC if relocation has
+       been converted.
+       (_bfd_x86_64_elf_convert_load): Removed.
+       (elf_x86_64_relocate_section): Replace SYMBOL_REFERENCES_LOCAL
+       with SYMBOL_REFERENCES_LOCAL_P.
+       (elf_x86_64_finish_dynamic_symbol): Likewise.
+       * elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Don't
+       set convert_load.
+       (_bfd_x86_elf_size_dynamic_sections): Don't call convert_load.
+       (_bfd_x86_elf_link_symbol_references_local): New function.
+       * elfxx-x86.h (SYMBOL_REFERENCES_LOCAL_P): New.
+       (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Replace elf.forced_local with
+       SYMBOL_REFERENCES_LOCAL_P.
+       (elf_x86_link_hash_entry): Add local_ref.
+       (elf_x86_link_hash_table): Remove convert_load.
+       (_bfd_i386_elf_convert_load): Removed.
+       (_bfd_x86_64_elf_convert_load): Likewise.
+       (_bfd_x86_elf_link_symbol_references_local): New.
+
+2017-09-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c (R_X86_64_converted_reloc_bit): New.
+       (elf_x86_64_info_to_howto): Get the real relocation type by
+       masking out R_X86_64_converted_reloc_bit.
+       (elf_x86_64_check_tls_transition): Get the real relocation type
+       by masking out R_X86_64_converted_reloc_bit.
+       (elf_x86_64_convert_load_reloc): Set R_X86_64_converted_reloc_bit
+       instead of setting converted_reloc.
+       (elf_x86_64_relocate_section): Check R_X86_64_converted_reloc_bit
+       instead of converted_reloc. Get the real relocation type by
+       masking out R_X86_64_converted_reloc_bit.
+       (elf_x86_64_link_setup_gnu_properties): Verify that the value of
+       R_X86_64_converted_reloc_bit is valid.
+       * elfxx-x86.h (converted_reloc): Removed.
+
+2017-09-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_relocate_section): Don't change r_type
+       when calling elf_i386_tls_transition.  Don't use ELF32_R_TYPE
+       to get the relocation type again.
+       * elf64-x86-64.c (elf_x86_64_relocate_section): Don't change
+       r_type when calling elf_x86_64_tls_transition.  Don't use
+       ELF32_R_TYPE to get the relocation type again.
+
 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Properly set