]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - bfd/ChangeLog
Fix seg fault objdumping a corrupt binary with an invalid sh_link field.
[thirdparty/binutils-gdb.git] / bfd / ChangeLog
index 57bb506162f07409f5670009208ccdf9ce8c6f0d..29dad0121d336301a53544ea1f13f251a68dcde5 100644 (file)
@@ -1,3 +1,248 @@
+2016-05-09  Nick Clifton  <nickc@redhat.com>
+
+       PR binutils/20063
+       * elf.c (bfd_elf_get_elf_syms): Check for out of range sh_link
+       field before accessing sections array.
+
+2016-05-09  Christophe Monat  <christophe.monat@st.com>
+
+       PR ld/20030
+       * elf32-arm.c (is_thumb2_vldm): Account for T1 (DP) encoding.
+       (stm32l4xx_need_create_replacing_stub): Rename ambiguous nb_regs
+       to nb_words.
+       (create_instruction_vldmia): Add is_dp to disambiguate SP/DP
+       encoding.
+       (create_instruction_vldmdb): Likewise.
+       (stm32l4xx_create_replacing_stub_vldm): is_dp detects DP encoding,
+       uses it to re-encode.
+
+2016-05-09  Nick Clifton  <nickc@redhat.com>
+
+       PR 19938
+       * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Revert accidental
+       commit.
+
+2016-05-09  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (ppc64_elf_init_stub_bfd): Remove redundant NULL check.
+
+2016-05-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/17550
+       * elf-bfd.h (elf_link_hash_entry): Update comments for indx,
+       documenting that indx == -3 if symbol is defined in a discarded
+       section.
+       * elflink.c (elf_link_add_object_symbols): Set indx to -3 if
+       symbol is defined in a discarded section.
+       (elf_link_output_extsym): Strip a global symbol defined in a
+       discarded section.
+
+2016-05-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_backend_add_symbol_hook): Defined for Intel
+       MCU.
+
+2016-05-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_convert_load): Extract the GOT load
+       conversion to ...
+       (elf_i386_convert_load_reloc): This.  New function.
+       * elf64-x86-64.c (elf_x86_64_convert_load): Extract the GOT load
+       conversion to ...
+       (elf_x86_64_convert_load_reloc): This.  New function.
+
+2016-05-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_check_tls_transition): Remove abfd.
+       Don't check if contents == NULL.
+       (elf_i386_tls_transition): Add from_relocate_section.  Check
+       from_relocate_section instead of contents != NULL.  Update
+       elf_i386_check_tls_transition call.
+       (elf_i386_check_relocs): Cache the section contents if
+       keep_memory is FALSE.  Pass FALSE as from_relocate_section to
+       elf_i386_tls_transition.
+       (elf_i386_relocate_section): Pass TRUE as from_relocate_section
+       to elf_i386_tls_transition.
+       (elf_backend_caches_rawsize): New.
+       * elf64-x86-64.c (elf_x86_64_check_tls_transition): Don't check
+       if contents == NULL.
+       (elf_x86_64_tls_transition): Add from_relocate_section.  Check
+       from_relocate_section instead of contents != NULL.
+       (elf_x86_64_check_relocs): Cache the section contents if
+       keep_memory is FALSE.  Pass FALSE as from_relocate_section to
+       elf_x86_64_tls_transition.
+       (elf_x86_64_relocate_section): Pass TRUE as from_relocate_section
+       to elf_x86_64_tls_transition.
+       (elf_backend_caches_rawsize): New.
+
+2016-05-03  Maciej W. Rozycki  <macro@imgtec.com>
+
+       PR 10549
+       * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Handle
+       STB_GNU_UNIQUE.
+
+2016-05-03  Jiong Wang  <jiong.wang@arm.com>
+
+       * bfd-in.h (bfd_elf64_aarch64_set_options): Update prototype.
+       * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise.
+       * elfnn-aarch64.c (bfd_elfNN_aarch64_set_options): Initialize
+       no_apply_dynamic_relocs.
+       (elfNN_aarch64_final_link_relocate): Apply absolute relocations even though
+       dynamic relocations generated.
+
+2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_size_dynamic_sections): Move interp
+       setting to ...
+       (elf_i386_create_dynamic_sections): Here.
+       * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Move
+       interp setting to ...
+       (elf_x86_64_create_dynamic_sections): Here.
+
+2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take GOT_RELOC
+       and replace (EH)->has_got_reloc with GOT_RELOC.
+       (elf_i386_fixup_symbol): Pass has_got_reloc to
+       UNDEFINED_WEAK_RESOLVED_TO_ZERO.
+       (elf_i386_allocate_dynrelocs): Likewise.
+       (elf_i386_relocate_section): Likewise.
+       (elf_i386_finish_dynamic_symbol): Likewise.
+       (elf_i386_convert_load): Pass TRUE to
+       UNDEFINED_WEAK_RESOLVED_TO_ZERO.
+       * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take
+       GOT_RELOC and replace (EH)->has_got_reloc with GOT_RELOC.
+       (elf_x86_64_fixup_symbol): Pass has_got_reloc to
+       UNDEFINED_WEAK_RESOLVED_TO_ZERO.
+       (elf_x86_64_allocate_dynrelocs): Likewise.
+       (elf_x86_64_relocate_section): Likewise.
+       (elf_x86_64_finish_dynamic_symbol): Likewise.
+       (elf_x86_64_convert_load): Pass TRUE to
+       UNDEFINED_WEAK_RESOLVED_TO_ZERO.
+
+2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (check_relocs_failed): New.
+       (elf_i386_check_relocs): Set check_relocs_failed on error.
+       (elf_i386_relocate_section): Skip if check_relocs failed.
+
+2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c (elf_x86_64_check_relocs): Set
+       check_relocs_failed on error.
+
+2016-04-29  Nick Clifton  <nickc@redhat.com>
+
+       PR 19938
+       * elf-bfd.h (struct elf_backend_data): Rename
+       elf_backend_set_special_section_info_and_link to
+       elf_backend_copy_special_section_fields.
+       * elfxx-target.h: Likewise.
+       * elf.c (section_match): Ignore the SHF_INFO_LINK flag when
+       comparing section flags.
+       (copy_special_section_fields): New function.
+       (_bfd_elf_copy_private_bfd_data): Copy the EI_ABIVERSION field.
+       Perform two scans over special sections.  The first one looks for
+       a direct mapping between the output section and an input section.
+       The second scan looks for a possible match based upon section
+       characteristics.
+       * elf32-arm.c (elf32_arm_copy_special_section_fields): New
+       function.  Handle setting the sh_link field of SHT_ARM_EXIDX
+       sections.
+       * elf32-i386.c (elf32_i386_set_special_info_link): Rename to
+       elf32_i386_copy_solaris_special_section_fields.
+       * elf32-sparc.c (elf32_sparc_set_special_section_info_link):
+       Rename to elf32_sparc_copy_solaris_special_section_fields.
+       * elf64-x86-64.c (elf64_x86_64_set_special_info_link): Rename to
+       elf64_x86_64_copy_solaris_special_section_fields.
+
+2016-04-28  Nick Clifton  <nickc@redhat.com>
+
+       * po/zh_CN.po: Updated Chinese (simplified) translation.
+
+2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20006
+       * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections
+       when estimating distances between output sections.
+
+2016-04-27  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c (_bfd_elf_is_start_stop): New function.
+       (_bfd_elf_gc_mark_rsec): Use it.
+       * elf-bfd.h (_bfd_elf_is_start_stop): Declare.
+
+2016-04-26  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
+
+       * elf32-rx.c (rx_set_section_contents): Avoid arithmetic on void *.
+       * mmo.c (mmo_get_section_contents): Likewise.
+       (mmo_set_section_contents): Likewise.
+
+2016-04-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf-bfd.h (elf_link_hash_table): Update comments for
+       dynsymcount.
+       * elflink.c (_bfd_elf_link_renumber_dynsyms): Always count for
+       the unused NULL entry at the head of dynamic symbol table.
+       (bfd_elf_size_dynsym_hash_dynstr): Remove dynsymcount != 0
+       checks.
+
+2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elflink.c (_bfd_elf_link_create_dynstrtab): Exclude linker
+       created file from dynobj.
+
+2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elflink.c (_bfd_elf_link_create_dynstrtab): Set dynobj to a
+       normal input file if possible.
+
+2016-04-21  Nick Clifton  <nickc@redhat.com>
+
+       * aout-adobe.c: Use _bfd_generic_link_check_relocs.
+       * aout-target.h: Likewise.
+       * aout-tic30.c: Likewise.
+       * binary.c: Likewise.
+       * bout.c: Likewise.
+       * coff-alpha.c: Likewise.
+       * coff-rs6000.c: Likewise.
+       * coff64-rs6000.c: Likewise.
+       * coffcode.h: Likewise.
+       * i386msdos.c: Likewise.
+       * i386os9k.c: Likewise.
+       * ieee.c: Likewise.
+       * ihex.c: Likewise.
+       * libbfd-in.h: Likewise.
+       * libecoff.h: Likewise.
+       * mach-o-target.c: Likewise.
+       * mmo.c: Likewise.
+       * nlm-target.h: Likewise.
+       * oasys.c: Likewise.
+       * pef.c: Likewise.
+       * plugin.c: Likewise.
+       * ppcboot.c: Likewise.
+       * som.c: Likewise.
+       * srec.c: Likewise.
+       * tekhex.c: Likewise.
+       * versados.c: Likewise.
+       * vms-alpha.c: Likewise.
+       * xsym.c: Likewise.
+       * elfxx-target.h: Use _bfd_elf_link_check_relocs.
+       * linker.c (bfd_link_check_relocs): New function.
+       (_bfd_generic_link_check_relocs): New function.
+       * targets.c (BFD_JUMP_TABLE_LINK): Add initialization of
+       _bfd_link_check_relocs field.
+       (struct bfd_target)L Add _bfd_link_check_relocs field.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_gc_sweep_hook): Removed.
+       (elf_backend_gc_sweep_hook): Likewise.
+       * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise.
+       (elf_backend_gc_sweep_hook): Likewise.
+
 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elflink.c (_bfd_elf_link_check_relocs): Don't check relocations