]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - bfd/ChangeLog
Place .shstrtab section after .symtab and .strtab, thus restoring monotonically incre...
[thirdparty/binutils-gdb.git] / bfd / ChangeLog
index cb44986043d0df5effcf295610f6f212cb17ee7c..ea810cdb6688f6273bd43a5ccfafa33a932e44b3 100644 (file)
@@ -1,3 +1,770 @@
+2016-08-19  Nick Clifton  <nickc@redhat.com>
+
+       * elf.c (assign_section_numbers): Assign number for the .shstrtab
+       section after the symbol table and string table sections.
+
+2016-08-19  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (struct ppc_link_hash_entry): Add weakref.
+       (ppc64_elf_copy_indirect_symbol): Set weakref.  Don't merge
+       dyn_relocs for weakdefs.
+       (alias_readonly_dynrelocs): New function.
+       (ppc64_elf_adjust_dynamic_symbol): Use alias_readonly_dynrelocs.
+       (ppc64_elf_relocate_section): Simplify condition under which
+       dyn_relocs are emitted.
+
+2016-08-19  Alan Modra  <amodra@gmail.com>
+
+       PR 20472
+       * elf64-ppc.c (ppc64_elf_before_check_relocs): Tweak abiversion test.
+       (readonly_dynrelocs): Comment fix.
+       (global_entry_stub): New function.
+       (ppc64_elf_adjust_dynamic_symbol): Tweak abiversion test.  Match
+       ELFv2 code deciding on dynamic relocs vs. global entry stubs to
+       that in size_global_entry_stubs, handling ifunc too.  Delete dead
+       weak sym code.
+       (allocate_dynrelocs): Ensure dyn_relocs field is cleared when no
+       dyn_relocs are needed.  Correct handling of ifunc dyn_relocs.
+       Tidy ELIMINATE_COPY_RELOCS code, only setting dynindx for
+       undefweak syms.  Expand and correct comments.
+       (size_global_entry_stubs): Ensure symbol is defined.
+       (ppc64_elf_relocate_section): Match condition under which
+       dyn_relocs are emitted to that in allocate_dynrelocs.
+
+2016-08-12  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (struct elf_link_hash_table): Add local_dynsymcount.
+       * elflink.c (_bfd_elf_link_renumber_dynsyms): Set local_dynsymcount.
+       (bfd_elf_final_link): Set .dynsym sh_info from local_dynsymcount.
+
+2016-08-11  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Don't exit with
+       non_got_ref true in any case where we could have generated dynbss
+       copies but decide not to do so.
+
+2016-08-10  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_add_la25_stub): Clear the ISA bit of
+       the stub address retrieved if associated with a microMIPS
+       function.
+
+2016-08-10  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_create_stub_symbol): For a microMIPS
+       stub also add STO_MICROMIPS annotation.
+
+2016-08-10  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Set the ISA bit
+       in microMIPS LA25 stub references.
+
+2016-08-09  Jiaming Wei  <jmwei@hxgpt.com>
+
+       * elf64-alpha.c (elf64_alpha_copy_indirect_symbol): Fix thinko
+       adjusting the use_count of merged .got entries.
+
+2016-08-08  Nick Clifton  <nickc@redhat.com>
+
+       * doc/chew.c (delete_string): Only free the string buffer if it is
+       there.  Mark the buffer as NULL after freeing.
+       (drop): Free the dropped string.
+       (free_words): New function: Frees the memory allocated to the
+       dictionary.
+       (add_instrinsic): Duplicate the name string, so that it can be
+       freed later on.
+       (compile): Free unused words.
+       (main): Free the dictionary and top level string buffers at the
+       end.
+
+2016-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add one parameter.
+       * bfd-in2.h: Regenerate.
+       * elf32-arm.c (struct elf32_arm_link_hash_table): Declare new
+       cmse_implib field.
+       (bfd_elf32_arm_set_target_relocs): Add new parameter to initialize
+       cmse_implib field in struct elf32_arm_link_hash_table.
+       (elf32_arm_filter_cmse_symbols): New function.
+       (elf32_arm_filter_implib_symbols): Likewise.
+       (elf_backend_filter_implib_symbols): Define to
+       elf32_arm_filter_implib_symbols.
+
+2016-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * elf32-arm.c (CMSE_PREFIX): Define macro.
+       (elf32_arm_stub_cmse_branch_thumb_only): Define stub sequence.
+       (cmse_branch_thumb_only): Declare stub.
+       (struct elf32_arm_link_hash_table): Define cmse_stub_sec field.
+       (elf32_arm_get_plt_info): Add globals parameter.  Use it to return
+       FALSE if there is no PLT.
+       (arm_type_of_stub): Adapt to new elf32_arm_get_plt_info signature.
+       (elf32_arm_final_link_relocate): Likewise.
+       (elf32_arm_gc_sweep_hook): Likewise.
+       (elf32_arm_gc_mark_extra_sections): Mark sections holding ARMv8-M
+       secure entry functions.
+       (arm_stub_is_thumb): Add case for arm_stub_cmse_branch_thumb_only.
+       (arm_dedicated_stub_output_section_required): Change to a switch case
+       and add a case for arm_stub_cmse_branch_thumb_only.
+       (arm_dedicated_stub_output_section_required_alignment): Likewise.
+       (arm_stub_dedicated_output_section_name): Likewise.
+       (arm_stub_dedicated_input_section_ptr): Likewise and remove
+       ATTRIBUTE_UNUSED for htab parameter.
+       (arm_stub_required_alignment): Likewise.
+       (arm_stub_sym_claimed): Likewise.
+       (arm_dedicated_stub_section_padding): Likewise.
+       (cmse_scan): New function.
+       (elf32_arm_size_stubs): Call cmse_scan for ARM M profile targets.
+       Set stub_changed to TRUE if such veneers were created.
+       (elf32_arm_swap_symbol_in): Add detection code for CMSE special
+       symbols.
+
+2016-08-02  Alan Modra  <amodra@gmail.com>
+
+       PR ld/20428
+       * elf64-ppc.c (ppc_get_stub_entry): Don't segfault on NULL group.
+
+2016-08-02  Nick Clifton  <nickc@redhat.com>
+
+       PR ld/17739
+       * elf32-sh.c (sh_elf_gc_sweep_hook): Delete.
+       (elf_backend_sweep_hook): Delete.
+
+2016-08-01  Andrew Jenner  <andrew@codesourcery.com>
+       Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       * elf32-ppc.c (is_branch_reloc): Recognise VLE branch relocations.
+       (ppc_elf_howto_raw): Fix dst_mask of R_PPC_VLE_REL15.
+       (ppc_elf_vle_split16): Clear field before inserting.
+
+2016-08-01  Nick Clifton  <nickc@redhat.com>
+
+       * po/sv.po: Updated Swedish translation.
+
+2016-07-27  Ozkan Sezer  <sezeroz@gmail.com>
+           Nick Clifton  <nickc@redhat.com>
+
+       PR ld/20401
+       * coffgen.c (fini_reloc_cookie_rels): Check for the extistence
+       of the coff_section_data before using it.
+
+2016-07-26  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Handle branches
+       in PLT compression selection.
+       (_bfd_mips_elf_check_relocs): Likewise.
+
+2016-07-22  Cupertino Miranda  <cmiranda@synopsys.com>
+
+       * arc-got.h (relocate_fix_got_relocs_for_got_info): Handle the
+       case where there's no elf_link_hash_entry while processing
+       GOT_NORMAL got entries.
+
+2016-07-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * version.m4 (BFD_VERSION): Set to 2.27.51.
+       * configure: Regenerated.
+
+2016-07-21  Nick Clifton  <nickc@redhat.com>
+
+       * elf.c (_bfd_elf_filter_global_symbols): Skip local symbols.
+       (swap_out_syms): Return an error when not finding ELF output
+       section rather than asserting.
+
+2016-07-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * elflink.c (elf_output_implib): Call bfd_set_error on no symbols.
+
+2016-07-20  John Baldwin  <jhb@FreeBSD.org>
+
+       * elf.c (elfcore_grok_freebsd_psinfo): Check for minimum note size
+       and handle pr_pid if present.
+
+2016-07-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20376
+       * elf.c (assign_file_positions_for_load_sections): Also check
+       p_paddr for program header space.
+
+2016-07-20  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_PLTREL32>): Put
+       ppc64_elf_unhandled_reloc for special_function.
+       * elf32-ppc.c (ppc_elf_howto_raw): Similarly for lots of relocs.
+
+2016-07-19  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_perform_relocation): Convert cross-mode
+       BAL to JALX.
+       (_bfd_mips_elf_relocate_section) <bfd_reloc_outofrange>: Add a
+       corresponding error message.
+
+2016-07-19  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (b_reloc_p): Add R_MICROMIPS_PC16_S1,
+       R_MICROMIPS_PC10_S1 and R_MICROMIPS_PC7_S1.
+       (branch_reloc_p): New function.
+       (mips_elf_calculate_relocation): Handle ISA mode determination
+       for relocations against section symbols, against absolute
+       symbols and absolute relocations.  Also set `*cross_mode_jump_p'
+       for branches.
+       <R_MIPS16_26, R_MIPS_26, R_MICROMIPS_26_S1>: Suppress alignment
+       checks for weak undefined symbols.  Also check target alignment
+       within the same ISA mode.
+       <R_MIPS_PC16, R_MIPS_GNU_REL16_S2>: Handle cross-mode branches
+       in the alignment check.
+       <R_MICROMIPS_PC7_S1>: Add an alignment check.
+       <R_MICROMIPS_PC10_S1>: Likewise.
+       <R_MICROMIPS_PC16_S1>: Likewise.
+       (mips_elf_perform_relocation): Report a failure for unsupported
+       same-mode JALX instructions and cross-mode branches.
+       (_bfd_mips_elf_relocate_section) <bfd_reloc_outofrange>: Add
+       error messages for jumps to misaligned addresses.
+
+2016-07-16  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c: Include plugin-api.h.
+       * plugin.c (bfd_plugin_open_input): New function, extracted from..
+       (try_claim): ..here.
+       * plugin.h: Don't include bfd.h.
+       (bfd_plugin_open_input): Declare.
+
+2016-07-16  Alan Modra  <amodra@gmail.com>
+
+       * targets.c (bfd_seach_for_target): Rename to..
+       (bfd_iterate_over_targets): ..this.  Rewrite doc.
+       * bfd-in2.h: Regenerate.
+
+2016-07-16  Alan Modra  <amodra@gmail.com>
+
+       * archures.c (bfd_default_set_arch_mach): Make available in bfd.h.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+2016-07-16  Alan Modra  <amodra@gmail.com>
+
+       * libbfd-in.h (BFD_ALIGN): Move to..
+       * bfd-in.h: ..here.
+       * elf32-ppc.h (struct ppc_elf_params): Add pagesize.
+       * elf32-ppc.c (default_params): Adjust init.
+       (ppc_elf_link_params): Set pagesize_p2.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * elf-bfd.h (elf_backend_filter_implib_symbols): Declare backend hook.
+       (_bfd_elf_filter_global_symbols): Declare.
+       * elf.c (_bfd_elf_filter_global_symbols): New function.
+       * elflink.c (elf_filter_global_symbols): Likewise.
+       (elf_output_implib): Likewise.
+       (bfd_elf_final_link): Call above function, failing if it does.
+       * elfxx-target.h (elf_backend_filter_implib_symbols): Define macro and
+       default it to NULL.
+       (elf_backend_copy_indirect_symbol): Fix spacing.
+       (elf_backend_hide_symbol): Likewise.
+       (elfNN_bed): Initialize elf_backend_filter_implib_symbols backend hook.
+
+2016-07-15  Andrew Burgess  <andrew.burgess@embecosm.com>
+           Nick Clifton  <nickc@redhat.com>
+
+       * elf32-arc.c (PR_DEBUG): Delete.
+       Fix printing of debug information.  Fix formatting of debug
+       statements.
+       (debug_arc_reloc): Handle symbols that are not from an input file.
+       (arc_do_relocation): Remove excessive exclamation points.
+
+       * arc-got.h: Fix formatting.  Fix printing of debug information.
+       (new_got_entry_to_list): Use xmalloc.
+       * config.bfd: use the big-endian arc vector as the default vector
+       for big-endian arc targets.
+
+2016-07-15  Alan Modra  <amodra@gmail.com>
+
+       * cofflink.c (mark_relocs): Exclude relocs with -1 r_symndx
+       from marking sym_indices.
+
+2016-07-14  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * reloc.c (bfd_perform_relocation): Try the `howto' handler
+       first with relocations against absolute symbols.
+       (bfd_install_relocation): Likewise.
+
+2016-07-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align
+       .got/.got.plt sections to 8 bytes.
+
+2016-07-12  Nick Clifton  <nickc@redhat.com>
+
+       * binary.c (binary_set_section_contents): Second grammar fix.
+
+2016-07-12  Douglas B Rupp  <rupp@adacore.com>
+
+       * binary.c (binary_set_section_contents): Fix grammar in warning
+       message.
+
+2016-07-11  Cupertino Miranda  <cmiranda@synopsys.com>
+
+       * elf32-arc.c: made PR_DEBUG always defined.
+
+2016-07-11  Cupertino Miranda  <cmiranda@synopsys.com>
+
+       * arc-got.h: Moved got related structures from elf32-arc.c to
+       this file. More precisely, tls_type_e, tls_got_entries, got_entry.
+       * (arc_get_local_got_ents, got_entry_for_type, new_got_entry_to_list,
+       tls_type_for_reloc, symbol_has_entry_of_type,
+       get_got_entry_list_for_symbol, arc_got_entry_type_for_reloc,
+       ADD_SYMBOL_REF_SEC_AND_RELOC, rc_fill_got_info_for_reloc,
+       relocate_fix_got_relocs_for_got_info,
+       create_got_dynrelocs_for_single_entry,
+       create_got_dynrelocs_for_got_info): Added to file.
+       * elf32-arc.c: Removed GOT & TLS related structs and functions to
+       arc-got.h.
+
+2016-07-08  James Bowman  <james.bowman@ftdichip.com>
+
+       * elf32-ft32.c (ft32_reloc_map): Use R_FT32_32 for BFD_RELOC_32.
+
+2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>
+
+       * elf32-arm.c (THUMB32_MOVT): New veneer macro.
+       (THUMB32_MOVW): Likewise.
+       (elf32_arm_stub_long_branch_thumb2_only_pure): New.
+       (DEF_STUBS): Define long_branch_thumb2_only_pure.
+       (arm_stub_is_thumb): Add new veneer stub.
+       (arm_type_of_stub): Use new veneer.
+       (arm_stub_required_alignment): Add new veneer.
+
+2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>
+
+       * bfd-in2.h (SEC_ELF_NOREAD): Rename to ...
+       (SEC_ELF_PURECODE): ... this.
+       * elf32-arm.c (elf32_arm_post_process_headers): Rename SEC_ELF_NOREAD
+       to SEC_ELF_NOREAD.
+       (elf32_arm_fake_sections): Likewise.
+       (elf_32_arm_section_flags): Likewise.
+       (elf_32_arm_lookup_section_flags): Likewise.
+       * section.c (SEC_ELF_NOREAD): Rename to ...
+       (SEC_ELF_PURECODE): ... this.
+
+2016-07-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * elf32-arm.c (using_thumb2_bl): New function.
+       (arm_type_of_stub): Declare thumb2 variable together and change type
+       to bfd_boolean.  Use using_thumb2_bl () to determine whether
+       THM_MAX_FWD_BRANCH_OFFSET or THM2_MAX_FWD_BRANCH_OFFSET should be
+       checked for BL range.
+       (elf32_arm_final_link_relocate): Use using_thumb2_bl () to determine
+       the bit size of BL offset.
+
+2016-06-29  Nick Clifton  <nickc@redhat.com>
+
+       * elfnn-aarch64.c (is_aarch64_mapping_symbol): New function.
+       Returns TRUE for AArch64 mapping symbols.
+       (elfNN_aarch64_backend_symbol_processing): New function.  Marks
+       mapping symbols as precious in object files so that they will not
+       be stripped.
+       (elf_backend_symbol_processing): Define.
+
+       * elf32-arm.c (is_arm_mapping_symbol): New function.  Returns TRUE
+       for ARM mapping symbols.
+       (elf32_arm_backend_symbol_processing): Make use of the new function.
+
+2016-06-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20306
+       * elflink.c (elf_link_check_versioned_symbol): Return false
+       for unreferenced undefined symbol.
+
+2016-06-28  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-bfin.c (bfin_adjust_dynamic_symbol): Fail if a COPY reloc
+       is needed.
+
+       * elf32-arm.c (elf32_arm_backend_symbol_processing): New
+       function.  Marks mapping symbols in object files as precious, so
+       that strip will not remove them.
+       (elf_backend_symbol_processing): Define.
+
+2016-06-28  James Clarke  <jrtc27@jrtc27.com>
+
+       * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Don't convert
+       R_SPARC_32 to R_SPARC_RELATIVE if class is ELFCLASS64.
+
+2016-06-28  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elf32-mips.c (elf_mips16_howto_table_rel): Add
+       R_MIPS16_PC16_S1.
+       (mips16_reloc_map): Likewise.
+       * elf64-mips.c (mips16_elf64_howto_table_rel): Likewise.
+       (mips16_elf64_howto_table_rela): Likewise.
+       (mips16_reloc_map): Likewise.
+       * elfn32-mips.c (elf_mips16_howto_table_rel): Likewise.
+       (elf_mips16_howto_table_rela): Likewise.
+       (mips16_reloc_map): Likewise.
+       * elfxx-mips.c (mips16_branch_reloc_p): New function.
+       (mips16_reloc_p): Handle R_MIPS16_PC16_S1.
+       (b_reloc_p): Likewise.
+       (mips_elf_calculate_relocation): Likewise.
+       (_bfd_mips_elf_check_relocs): Likewise.
+       * reloc.c (BFD_RELOC_MIPS16_16_PCREL_S1): New relocation.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2016-06-27  Alan Modra  <amodra@gmail.com>
+
+       PR ld/19264
+       * elf64-ppc.c (STUB_SHRINK_ITER): Define.
+       (ppc64_elf_size_stubs): Exit stub sizing loop past STUB_SHRINK_ITER
+       if shrinking stubs.
+       (ppc64_elf_size_stubs): Adjust to suit.
+
+2016-06-27  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
+
+       * elf32-dlx.h: New file.
+       * elf32-dlx.c: Adjust.
+
+2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
+
+       * elf32-xtensa.c (xtensa_make_property_section): Remove prototype.
+
+2016-06-24  John Baldwin  <jhb@FreeBSD.org>
+
+       * elf.c (elfcore_grok_freebsd_note): Handle NT_FREEBSD_PROCSTAT_AUXV
+       notes.
+
+2016-06-24  John Baldwin  <jhb@FreeBSD.org>
+
+       * elf.c (elfcore_grok_note): Remove handling of NT_X86_XSTATE for
+       FreeBSD.  Remove case for NT_FREEBSD_THRMISC.
+       (elfcore_grok_freebsd_psinfo): New function.
+       (elfcore_grok_freebsd_prstatus): New function.
+       (elfcore_grok_freebsd_note): New function.
+       (elf_parse_notes): Use "elfcore_grok_freebsd_note" for "FreeBSD"
+       notes.
+
+2016-06-24  Joel Brobecker  <brobecker@adacore.com>
+
+       * elflink.c: Check the value of BFD_SUPPORTS_PLUGINS rather
+       than its existance.
+
+2016-06-24  Alan Modra  <amodra@gmail.com>
+
+       * config.bfd: Delete mips vxworks patterns matched earlier.
+       Combine mips*-*-none with mips*-*-elf*.
+
+2016-06-21  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_perform_relocation): Call
+       `info->callbacks->einfo' rather than `*_bfd_error_handler' and
+       use the `%X%H' format for the cross-mode jump conversion error
+       message.  Remove the full stop from the end of the message.
+       Continue processing rather than returning failure.
+
+2016-06-21  Graham Markall  <graham.markall@embecosm.com>
+
+       * archures.c: Remove bfd_mach_arc_nps400.
+       * bfd-in2.h: Likewise.
+       * cpu-arc.c (arch_info_struct): Likewise.
+       * elf32-arc.c (arc_elf_object_p, arc_elf_final_write_processing):
+       Likewise.
+
+2016-06-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/18250
+       PR ld/20267
+       * elflink.c: Include plugin.h if BFD_SUPPORTS_PLUGINS is
+       defined.
+       (elf_link_is_defined_archive_symbol): Call
+       bfd_link_plugin_object_p on unknown plugin object and use the
+       IR symbol table if the input is an IR object.
+       * plugin.c (bfd_link_plugin_object_p): New function.
+       * plugin.h (bfd_link_plugin_object_p): New prototype.
+
+2016-06-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20276
+       * elflink.c (elf_link_add_object_symbols): Don't check alignment
+       on symbol from plugin dummy input.
+
+2016-06-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * bfd.c (bfd_plugin_format): Rename bfd_plugin_uknown to
+       bfd_plugin_unknown.
+       * bfd-in2.h: Regenerated.
+       * plugin.c (bfd_plugin_object_p): Replace bfd_plugin_uknown
+       with bfd_plugin_unknown.
+
+2016-06-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20253
+       * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add an
+       bfd_boolean argument.
+       * elf-ifunc.c (_bfd_elf_create_ifunc_sections): Replace
+       "shared object" with "PIC object" in comments.
+       (_bfd_elf_allocate_ifunc_dyn_relocs): Updated.  Replace
+       "shared object" with "PIC object" in comments.  Avoid PLT if
+       requested.  Generate dynamic relocations for non-GOT references.
+       Make room for the special first entry in PLT and allocate PLT
+       entry only for PLT and PC-relative references.  Store dynamic
+       GOT relocations in .rel[a].iplt section for static executables.
+       If PLT isn't used, always use GOT for symbol value.  Don't
+       allocate GOT entry if it isn't used.
+       * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference
+       count only in the code section.  Allocate dynamic pointer
+       relocation against STT_GNU_IFUNC symbol in the non-code section.
+       (elf_i386_adjust_dynamic_symbol): Increment PLT reference count
+       only for PC-relative references.
+       (elf_i386_allocate_dynrelocs): Pass TRUE to
+       _bfd_elf_allocate_ifunc_dyn_relocs.
+       (elf_i386_relocate_section): Allow R_386_GOT32/R_386_GOT32X
+       relocations against STT_GNU_IFUNC symbols without PLT.  Generate
+       dynamic pointer relocation against STT_GNU_IFUNC symbol in
+       the non-code section and store it in the proper REL section.
+       Don't allow non-pointer relocation against STT_GNU_IFUNC symbol
+       without PLT.
+       (elf_i386_finish_dynamic_symbol): Generate dynamic
+       R_386_IRELATIVE and R_386_GLOB_DAT GOT relocations against
+       STT_GNU_IFUNC symbols without PLT.
+       (elf_i386_finish_dynamic_sections): Don't handle local
+       STT_GNU_IFUNC symbols here.
+       (elf_i386_output_arch_local_syms): Handle local STT_GNU_IFUNC
+       symbols here.
+       (elf_backend_output_arch_local_syms): New.
+       * elf32-x86-64.c (elf_i386_check_relocs): Increment PLT reference
+       count only in the code section.  Allocate dynamic pointer
+       relocation against STT_GNU_IFUNC symbol in the non-code section.
+       (elf_x86_64_adjust_dynamic_symbol): Increment PLT reference
+       count only for PC-relative references.
+       (elf_x86_64_allocate_dynrelocs): Pass TRUE to
+       _bfd_elf_allocate_ifunc_dyn_relocs.
+       (elf_x86_64_relocate_section): Allow R_X86_64_GOTPCREL,
+       R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX and
+       R_X86_64_GOTPCREL64 relocations against STT_GNU_IFUNC symbols
+       without PLT.  Generate dynamic pointer relocation against
+       STT_GNU_IFUNC symbol in the non-code section and store it in
+       the proper RELA section.  Don't allow non-pointer relocation
+       against STT_GNU_IFUNC symbol without PLT.
+       (elf_x86_64_finish_dynamic_symbol): Generate dynamic
+       R_X86_64_IRELATIVE and R_X86_64_GLOB_DAT GOT relocations against
+       STT_GNU_IFUNC symbols without PLT.
+       (elf_x86_64_finish_dynamic_sections): Don't handle local
+       STT_GNU_IFUNC symbols here.
+       (elf_x86_64_output_arch_local_syms): Handle local STT_GNU_IFUNC
+       symbols here.
+       (elf_backend_output_arch_local_syms): New.
+       * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs):
+       Pass FALSE to _bfd_elf_allocate_ifunc_dyn_relocs.
+
+2016-06-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+           Tony Wang  <tony.wang@arm.com>
+
+       * elf32-arm.c (elf32_arm_stub_long_branch_thumb2_only): Define stub
+       sequence.
+       (stub_long_branch_thumb2_only): Define stub.
+       (arm_stub_is_thumb): Add case for arm_stub_long_branch_thumb2_only.
+       (arm_stub_long_branch_thumb2_only): Likewise.
+       (arm_type_of_stub): Use arm_stub_long_branch_thumb2_only for Thumb-2
+       capable targets.
+
+2016-06-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+       * archures.c (bfd_mach_sparc_v8plusc): Define.
+       (bfd_mach_sparc_v9c): Likewise.
+       (bfd_mach_sparc_v8plusd): Likewise.
+       (bfd_mach_sparc_v9d): Likewise.
+       (bfd_mach_sparc_v8pluse): Likewise.
+       (bfd_mach_sparc_v9e): Likewise.
+       (bfd_mach_sparc_v8plusv): Likewise
+       (bfd_mach_sparc_v9v): Likewise.
+       (bfd_mach_sparc_v8plusm): Likewise.
+       (bfd_mach_sparc_v9m): Likewise.
+       (bfd_mach_sparc_v9_p): Adapt to v8plusm and v9m.
+       (bfd_mach_sparc_64bit_p): Likewise.
+       * bfd-in2.h: Regenerate.
+       * cpu-sparc.c (arch_info_struct): Add entries for
+       bfd_mach_sparc_v8plus{c,d,e,v,m} and bfd_mach_sparc_v9{c,d,e,v,m}.
+       * aoutx.h (machine_type): Handle bfd_mach_sparc_v8plus{c,d,e,v,m}
+       and bfd_mach_sparc_v9{c,d,e,v,m}.
+       * elf32-sparc.c (elf32_sparc_final_write_processing): Likewise.
+       * elfxx-sparc.c (_bfd_sparc_elf_object_p): Likewise.
+
+2016-06-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_check_relocs): Don't check undefined
+       symbols for relocations against IFUNC symbols.
+       * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+
+2016-06-16  Marcin Koƛcielnicki  <koriakin@0x04.net>
+
+       * elf32-s390.c (elf_s390_finish_dynamic_sections): Include
+       .rela.iplt in DT_PLTRELSZ.
+       * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise,
+       for DT_PLTRELSZ and DT_RELASZ as well.
+
+2016-06-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_check_relocs): Skip relocations in
+       non-loaded, non-alloced sections.
+       * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+
+2016-06-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_check_relocs): Check SEC_ALLOC before
+       allocating dynamic relocation.
+       * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+
+2016-06-14  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+
+       PR ld/20254
+       * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust reloc
+       offsets until reloc_toaddr.
+
+2016-06-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_reloc_type_class): Check R_386_IRELATIVE.
+       Don't check symbol type for STN_UNDEF symbol index.
+       * elf64-x86-64.c (elf_x86_64_reloc_type_class): Check
+       R_X86_64_IRELATIVE.  Don't check symbol type for STN_UNDEF symbol
+       index.
+
+2016-06-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * elf32-arm.c (using_thumb_only): Force review of arch check logic for
+       new architecture.
+       (using_thumb2): Try Tag_THUMB_ISA_use first and check
+       for exact arch value then.  Force review of arch check logic for new
+       architecture.
+       (arch_has_arm_nop): Update and fix arch check logic.  Force review of
+       that logic for new architecture.
+       (arch_has_thumb2_nop): Remove.
+       (elf32_arm_tls_relax): Use using_thumb2 instead of above function.
+       (elf32_arm_final_link_relocate): Likewise but using thumb2.
+
+2016-06-14  Alan Modra  <amodra@gmail.com>
+
+       * bfd-in.h (bfd_my_archive): Delete.
+       * bfd-in2.h: Regenerate.
+
+2016-06-14  Alan Modra  <amodra@gmail.com>
+
+       PR ld/20241
+       * archive.c (open_nested_file): Set my_archive.
+       * bfd.c (_bfd_default_error_handler <%B>): Exclude archive file name
+       for thin archives.
+       * bfdio.c (bfd_tell): Don't adjust origin for thin archives.
+       (bfd_seek): Likewise.
+       * bfdwin.c (bfd_get_file_window): Likewise.
+       * cache.c (cache_bmmap): Likewise.
+       (bfd_cache_lookup_worker): Don't look in my_archive for thin archives.
+       * mach-o.c (bfd_mach_o_follow_dsym): Don't open my_archive for
+       thin archives.
+       * plugin.c (try_claim): Likewise.
+       * xcofflink.c (xcoff_link_add_dynamic_symbols): Use import path of
+       file within thin archive, not the archive.
+
+2016-06-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20244
+       * elf32-i386.c (elf_i386_relocate_section): Add the .got.plt
+       section address for R_386_GOT32/R_386_GOT32X relocations against
+       IFUNC symbols if there is no base register and return error for
+       PIC.
+
+2016-06-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_relocate_section): Simplify IFUNC
+       GOT32 adjustment for static executables.
+
+2016-06-13  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elf32-mips.c (elf_mips_gnu_pcrel32): Update comment.
+
+2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
+
+       * elf32-arc.c (elf_arc_relocate_section): Fixed condition.
+
+2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
+
+       * elf32-arc.c (elf_arc_finish_dynamic_sections): Changed.
+
+2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
+
+       * elf32-arc.c (arc_local_data, arc_local_data): Removed.
+       (SECTSTART): Changed.
+       (elf_arc_relocate_section): Fixed mistake in PIE related
+       condition.
+       (elf_arc_size_dynamic_sections): Changed DT_RELENT to DT_RELAENT.
+
+2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
+
+       * elf32-arc.c (elf32_arc_reloc_type_class): Defined function to
+       enable support for "-z combreloc" and DT_RELACOUNT.
+       (elf_backend_reloc_type_class): Likewise
+
+2016-06-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20244
+       * elf32-i386.c (elf_i386_relocate_section): When relocating
+       R_386_GOT32, return error without a base register for PIC and
+       subtract the .got.plt section address only with a base register.
+
+2016-06-10  Alan Modra  <amodra@gmail.com>
+
+       * elf-strtab.c (struct strtab_save): Use size_t for "size".
+       (struct elf_strtab_hash): Likewise for "size" and "alloced".
+       (_bfd_elf_strtab_init): Formatting.
+       (_bfd_elf_strtab_add): Return size_t rather than bfd_size_type.
+       (_bfd_elf_strtab_addref): Take size_t idx param.
+       (_bfd_elf_strtab_delref, _bfd_elf_strtab_refcount): Likewise.
+       (_bfd_elf_strtab_offset): Likewise.
+       (_bfd_elf_strtab_clear_all_refs): Use size_t idx.
+       (_bfd_elf_strtab_save): Use size_t "idx" and "size" vars.
+       (_bfd_elf_strtab_restore, _bfd_elf_strtab_emit): Similarly.
+       (_bfd_elf_strtab_finalize): Similarly.
+       * elf-bfd.h (_bfd_elf_strtab_add): Update prototypes.
+       (_bfd_elf_strtab_addref, _bfd_elf_strtab_delref): Likewise.
+       (_bfd_elf_strtab_refcount, _bfd_elf_strtab_offset): Likewise.
+       * elf.c (bfd_elf_get_elf_syms): Calculate symbol buffer size
+       using bfd_size_type.
+       (bfd_section_from_shdr): Delete amt.
+       (_bfd_elf_init_reloc_shdr): Likewise.
+       (_bfd_elf_link_assign_sym_version): Likewise.
+       (assign_section_numbers): Use size_t reloc_count.
+       * elflink.c (struct elf_symbuf_head): Use size_t "count".
+       (bfd_elf_link_record_dynamic_symbol): Use size_t for some vars.
+       (elf_link_is_defined_archive_symbol): Likewise.
+       (elf_add_dt_needed_tag): Likewise.
+       (elf_finalize_dynstr): Likewise.
+       (elf_link_add_object_symbols): Likewise.
+       (bfd_elf_size_dynamic_sections): Likewise.
+       (elf_create_symbuf): Similarly.
+       (bfd_elf_match_symbols_in_sections): Likewise.
+       (elf_link_swap_symbols_out): Likewise.
+       (elf_link_check_versioned_symbol): Likewise.
+       (bfd_elf_gc_record_vtinherit): Likewise.
+       (bfd_elf_gc_common_finalize_got_offsets): Likewise.
+
+2016-06-08  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+
+       PR ld/20221
+       * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust syms
+       and relocs only if shrinking occurred.
+
+2016-06-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-i386.c (elf_i386_link_hash_entry): Add tls_get_addr.
+       (elf_i386_link_hash_newfunc): Initialize tls_get_addr to 2.
+       (elf_i386_check_tls_transition): Check indirect call and direct
+       call with the addr32 prefix for general and local dynamic models.
+       Set the tls_get_addr feild.
+       (elf_i386_convert_load_reloc): Always use addr32 prefix for
+       indirect ___tls_get_addr call via GOT.
+       (elf_i386_relocate_section): Handle GD->LE, GD->IE and LD->LE
+       transitions with indirect call and direct call with the addr32
+       prefix.
+
 2016-06-07  Marcin Koƛcielnicki  <koriakin@0x04.net>
 
        * elf32-s390.c (elf_s390_finish_dynamic_symbol): Fix comment.