+2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ * bfd-in.h (elf32_arm_size_stubs): Add an output section parameter.
+ * bfd-in2.h: Regenerated.
+ * elf32-arm.c (struct elf32_arm_link_hash_table): Add an output section
+ parameter to add_stub_section callback.
+ (elf32_arm_create_or_find_stub_sec): Get output section from link_sec
+ and pass it down to add_stub_section.
+ (elf32_arm_add_stub): Set section to stub_sec if NULL before using it
+ for error message.
+ (elf32_arm_size_stubs): Add output section parameter to
+ add_stub_section function pointer parameter.
+
+2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ * elf32-arm.c (elf32_arm_create_stub): New function.
+ (elf32_arm_size_stubs): Use elf32_arm_create_stub for stub creation.
+
+2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ * elf32-arm.c (enum elf32_arm_stub_type): Delete
+ arm_stub_a8_veneer_lwm enumerator.
+ (arm_stub_a8_veneer_lwm): New unsigned constant to replace
+ aforementioned enumerator.
+ (struct elf32_arm_stub_hash_entry): Delete target_addend
+ field and add source_value.
+ (struct a8_erratum_fix): Delete addend field and add target_offset.
+ (stub_hash_newfunc): Initialize source_value field amd remove
+ initialization for target_addend.
+ (arm_build_one_stub): Stop special casing Thumb relocations: promote
+ the else to being always executed, moving the
+ arm_stub_a8_veneer_b_cond specific code in it. Remove
+ stub_entry->target_addend from points_to computation.
+ (cortex_a8_erratum_scan): Store in a8_erratum_fix structure the offset
+ to target symbol from start of section rather than the offset from the
+ stub address.
+ (elf32_arm_size_stubs): Set stub_entry's source_value and target_value
+ fields from struct a8_erratum_fix's offset and target_offset
+ respectively.
+ (make_branch_to_a8_stub): Rename target variable to loc. Compute
+ veneered_insn_loc and loc using stub_entry's source_value.
+
+2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ (elf32_arm_merge_eabi_attributes): Add merging logic for
+ Tag_DSP_extension.
+
+2016-05-10 Pip Cet <pipcet@gmail.com>
+
+ PR ld/20059
+ * elfxx-target.h (bfd_elfNN_bfd_copy_link_hash_symbol_type):
+ Define as _bfd_generic_copy_link_hash_symbol_type when using
+ generic hash table.
+
+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
+ in excluded sections
+
+2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19969
+ * elf64-x86-64.c (check_relocs_failed): New.
+ (elf_x86_64_need_pic): Moved before elf_x86_64_check_relocs.
+ Support relocation agaist local symbol. Set check_relocs_failed.
+ (elf_x86_64_check_relocs): Use elf_x86_64_need_pic. Check
+ R_X86_64_32 relocation overflow.
+ (elf_x86_64_relocate_section): Skip if check_relocs failed.
+ Update one elf_x86_64_need_pic and remove one elf_x86_64_need_pic.
+
+2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_check_relocs): Call
+ _bfd_elf_create_ifunc_sections only for STT_GNU_IFUNC symbol.
+ * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+