PR22150, ld keeps a version reference for gc'd symbols
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 1957ca9e5f0123914ce4e9f17bda1bb5e1e9ee8c..eb62bc3b273f98fa82c2ff3194c1ac5b54895471 100644 (file)
@@ -1,3 +1,209 @@
+2017-09-19  Alan Modra  <amodra@gmail.com>
+
+       PR 22150
+       * elflink.c (bfd_elf_size_dynamic_sections): Garbage collect
+       symbols before calculating verrefs.  Don't renumber dynsyms
+       after gc.  Exclude .gnu.version when zero or one dynsym.
+       Localize some vars and reindent.
+
+2017-09-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/22148
+       * elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Check error
+       return from bfd_canonicalize_dynamic_reloc.
+
+2017-09-15  Alan Modra  <amodra@gmail.com>
+
+       PR 22116
+       * archive.c (bfd_ar_hdr_from_filesystem): Detect when status.st_size
+       overflows bfd_size_type.
+
+2017-09-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/22135
+       * elf32-i386.c (elf_i386_convert_load_reloc): Add an argument
+       to indicate if conversion is performed.
+       (elf_i386_check_relocs): Cache section contents and relocations
+       if conversion is performed.
+       * elf64-x86-64.c (elf_x86_64_check_relocs): Cache section
+       contents and relocations if conversion is performed.
+
+2017-09-14  Nick Clifton  <nickc@redhat.com>
+
+       PR binutils/22113
+       * peXXigen.c (pe_print_idata): Extend check for HintName vector
+       entries.
+
+2017-09-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-x86.h: Fix a typo in comments.
+
+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
+       converted_reloc.
+
+2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Remove the sec
+       argument.  Don't check relocation overflow.  Avoid relocation
+       overflow if --no-relax is used.  Set converted_reloc on symbol
+       if a GOTPCREL relocation is converted.
+       (elf_x86_64_relocate_section): Issue a fatal error and suggest
+       --no-relax if GOTPCREL relocation conversion leads to relocation
+       overflow.
+       * elfxx-x86.h (elf_x86_link_hash_entry): Add converted_reloc.
+
 2017-09-05  Alexander Fedotov <alexander.fedotov@nxp.com>
            Edmar Wienskoski <edmar.wienskoski@nxp.com
 
This page took 0.060088 seconds and 4 git commands to generate.