elflink.c constify
[binutils-gdb.git] / bfd / ChangeLog
index 75bcf55316289b859a112bdcf9f525d643c3bc30..3acaa571c0c79f2fb007c81b444890bf2d4d149f 100644 (file)
@@ -1,3 +1,659 @@
+2020-12-16  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c (elf_flags_to_names): Constify.
+
+2020-12-16  Alan Modra  <amodra@gmail.com>
+
+       * libxcoff.h (struct xcoff_backend_data_rec): Constify
+       _xcoff_glink_code.
+       (XCOFF_RELOC_FUNCTION_ARGS, XCOFF_COMPLAIN_FUNCTION_ARGS): Delete.
+       (xcoff_reloc_function, xcoff_complain_function): New typedef.
+       (xcoff_calculate_relocation, xcoff_complain_overflow),
+       (xcoff_reloc_type_noop, xcoff_reloc_type_fail),
+       (xcoff_reloc_type_pos, xcoff_reloc_type_neg),
+       (xcoff_reloc_type_rel, xcoff_reloc_type_toc),
+       (xcoff_reloc_type_ba, xcoff_reloc_type_crel): Update declaration.
+       * coff-rs6000.c (xcoff_reloc_type_br): Declare using typedef.
+       (xcoff_complain_overflow_dont_func): Likewise.
+       (xcoff_complain_overflow_bitfield_func): Likewise.
+       (xcoff_complain_overflow_signed_func): Likewise.
+       (xcoff_complain_overflow_unsigned_func): Likewise.
+       (xcoff_calculate_relocation, xcoff_complain_overflow): Constify.
+       (xcoff_glink_code): Constify.
+       * coff64-rs6000.c (xcoff64_reloc_type_br): Declare using typedef.
+       (xcoff64_calculate_relocation, xcoff64_glink_code): Constify.
+
+2020-12-16  Alan Modra  <amodra@gmail.com>
+
+       * elf32-xtensa.c (narrowable, widenable): Constify.
+       * xtensa-modules.c: Constify many arrays.
+
+2020-12-16  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (synthetic_opd): Constify.
+
+2020-12-16  Alan Modra  <amodra@gmail.com>
+
+       * arc-plt.h (plt_versions): Constify.
+       * elf32-arc.c (arc_get_plt_version): Constify return pointer,
+       adjust uses throughout.
+
+2020-12-16  Alan Modra  <amodra@gmail.com>
+
+       * coffcode.h (pelength, peheader): Delete static variables.
+       (coff_apply_checksum): Instead, define them as auto vars, and pass..
+       (coff_read_word, coff_compute_checksum): ..to here.  Delete
+       unnecessary forward declarations.
+       * pei-x86_64.c (pdata_count): Delete static variable.
+       (struct pex64_paps): New.
+       (pex64_print_all_pdata_sections, pex64_bfd_print_pdata): Pass
+       a pex64_paps for counting.
+       * peicode.h (jtab): Constify.
+
+2020-12-15  Vivek Das Mohapatra  <vivek@collabora.com>
+
+       * elflink.c (bfd_elf_size_dynamic_sections): Call
+       _bfd_elf_add_dynamic_entry to add a DT_GNU_FLAGS_1 section.
+
+2020-12-14  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (struct elf_obj_tdata): Add being_created.
+       * elf.c (bfd_section_from_shdr): Delete static vars for loop
+       detection.  Use new tdata variable instead.
+       * elfcode.h (elf_object_p): Allocate being_created.
+
+2020-12-10  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfxx-riscv.c (riscv_ext_dont_care_version): New function.  Return
+       TRUE if we don't care the versions of the extensions.  These extensions
+       are added to the subset list for special purposes, with the explicit
+       versions or the RISCV_UNKNOWN_VERSION versions.
+       (riscv_parse_add_subset): If we do care the versions of the extension,
+       and the versions are unknown, then report errors for the non-implicit
+       extensions, and return directly for the implicit one.
+       (riscv_arch_str1): Do not output i extension after e, and the extensions
+       which versions are unknown.
+
+2020-12-07  Siddhesh Poyarekar  <siddhesh@sourceware.org>
+
+       PR 26945
+       * opncls.c (bfd_fdopenw): New function.
+       * bfd-in2.h: Regenerate.
+
+2020-12-07  Alan Modra  <amodra@gmail.com>
+
+       * elf32-csky.c (csky_relocate_contents): Correct negate test.
+       * cpu-ns32k.c (_bfd_do_ns32k_reloc_contents): Likewise.
+       * elf32-nds32.c (nds32_relocate_contents): Likewise.
+
+2020-12-05  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * elf32-vax.c (elf_vax_check_relocs) <R_VAX_GOT32>: Use
+       SYMBOL_REFERENCES_LOCAL rather than `h->forced_local' to check
+       whether the symbol referred is local or not.
+
+2020-12-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/27016
+       * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Convert load
+       to mov only for GOTPCRELX relocations.
+
+2020-12-04  Alan Modra  <amodra@gmail.com>
+
+       PR 26978
+       * elflink.c (_bfd_elf_add_default_symbol): Handle the case where
+       a new weak sym@@ver should be overridden by an existing sym@ver.
+       (elf_link_add_object_symbols): Don't _bfd_elf_add_default_symbol
+       for a new weak sym@ver when sym@@ver already exists.
+       * linker.c (link_action): Choose MIND for previous indirect,
+       current def, rather than MDEF.
+       (_bfd_generic_link_add_one_symbol <MIND>): Handle redefinition of
+       weak indirect symbol.
+
+2020-12-01  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfxx-riscv.c (riscv_parse_prefixed_ext): Use riscv_compare_subsets
+       to check the Z* extensions' order.
+
+2020-12-01  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfxx-riscv.c (riscv_parse_add_subset): Allow to add g with
+       RISCV_UNKNOWN_VERSION versions.
+       (riscv_parse_std_ext): Add g to the subset list, we only use it
+       to add the implicit extensions, but won't output it to arch string.
+       (riscv_parse_add_implicit_subsets): Add implicit zicsr and zifencei
+       for g extension.
+       (riscv_arch_str1): Do not output g to the arch string.
+       * elfxx-riscv.h (RISCV_UNKNOWN_VERSION): Moved to include/opcode/riscv.h.
+
+2020-12-01  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfnn-riscv.c (riscv_merge_std_ext): Updated since
+       riscv_lookup_subset is changed.
+       * elfxx-riscv.c (riscv_ext_order): New Array used to compare the
+       extensions' order quickly.
+       (riscv_init_ext_order): New function.  Init the riscv_ext_order
+       according to the riscv_supported_std_ext and parse_config[i].class
+       automatically.
+       (riscv_compare_subsets): New function.  Similar to the strcmp, but
+       compare the subsets with the specific order.
+       (riscv_lookup_subset): Return TRUE and set `current` to the subset
+       if it is found.  Otherwise, return FALSE and set `current` to the
+       place where we should insert the subset.
+       (riscv_add_implicit_subset): New function.  Search the list first,
+       and then find the right place to add the implicit_subset.
+       (riscv_parse_add_subset): Since We have to add all arch string
+       extensions first, and then start to add their implicit extensions.
+       We can add arch string extensions in order by the original
+       riscv_add_subset, and then add the implicit subsets by the
+       riscv_add_implicit_subset.  Besides, do not add the implicit
+       extensions if we failed to find their default versions.
+       (riscv_parse_std_ext): Updated.
+       (riscv_parse_add_implicit_subsets): New function.  Add all implicit
+       extensions according to the arch string extensions.
+       (riscv_parse_subset): Call riscv_init_ext_order and
+       riscv_parse_add_implicit_subsets, before and after parsing the
+       arch string.  Remove parts of the ISA conflict checking since
+       the implicit extensions are added.
+       * elfxx-riscv.h (riscv_lookup_subset): Updated.
+
+2020-12-01  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfxx-riscv.c (riscv_lookup_subset): Moved to front.
+       (riscv_add_subset): Likewise.
+       (riscv_release_subset_list): Likewise.
+       (riscv_parse_add_subset): New function.  Find and check the
+       versions before adding them by riscv_add_subset.
+       (riscv_parsing_subset_version): Remove use_default_version
+       and change the version type from unsigned to int.  Set the
+       versions to RISCV_UNKNOWN_VERSION if we can not find them
+       in the arch string.
+       (riscv_parse_std_ext): Updated.
+       (riscv_parse_prefixed_ext): Updated.  Since we use as_bad
+       rather than as_fatal to report more errors, return NULL
+       string if the parsed end_of_version is NULL, too.
+       (riscv_parse_subset): Use a new boolean, no_conflict, to
+       report more errors when we have more than one ISA conflicts.
+       * elfxx-riscv.h (RISCV_DONT_CARE_VERSION): Changed to
+       RISCV_UNKNOWN_VERSION.
+       (riscv_lookup_subset_version): Removed.
+       (riscv_parse_subset_t): Updated.
+
+2020-12-01  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfxx-riscv.c (riscv_parse_std_ext): Stop parsing standard
+       extensions when parsed h keyword.
+       (riscv_get_prefix_class): Support prefixed h class.
+       (riscv_std_h_ext_strtab): Likewise.
+       (riscv_ext_h_valid_p): Likewise.
+       (parse_config): Likewise.
+       (riscv_std_z_ext_strtab): Add zifencei.
+       * elfxx-riscv.h (riscv_isa_ext_class): Add RV_ISA_CLASS_H.
+
+2020-12-01  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfxx-riscv.c (riscv_parse_subset): ISA string cannot contain
+       any uppercase letter.
+
+2020-12-01  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfxx-riscv.c: Re-indent codes, unify and improve the error
+       messages and comments.
+       (riscv_parse_prefixed_ext): Stop parsing the prefixed class
+       extensions if the class is RV_ISA_CLASS_UNKNOWN, I get internal
+       errors before adding this check for march-fail-porder* testcases.
+       (riscv_parse_subset): Move the rv32 with q checking in front.
+       * elfxx-riscv.h: Likewise.
+
+2020-12-01  Alan Modra  <amodra@gmail.com>
+
+       PR 26979
+       * elf-bfd.h (elf_backend_merge_symbol_attribute): Update prototype.
+       * elf32-m68hc1x.h (elf32_m68hc11_merge_symbol_attribute): Likewise.
+       * elfxx-mips.h (_bfd_mips_elf_merge_symbol_attribute): Likewise.
+       * elfxx-x86.h (_bfd_x86_elf_merge_symbol_attribute): Likewise.
+       * elf32-m68hc1x.c (elf32_m68hc11_merge_symbol_attribute): Replace
+       isym parameter with st_other.  Adjust code.
+       * elf64-alpha.c (elf64_alpha_merge_symbol_attribute): Likewise.
+       * elf64-ppc.c (ppc64_elf_merge_symbol_attribute): Likewise.
+       * elfnn-aarch64.c (elfNN_aarch64_merge_symbol_attribute): Likewise.
+       * elfxx-mips.c (_bfd_mips_elf_merge_symbol_attribute): Likewise.
+       * elfxx-x86.c (_bfd_x86_elf_merge_symbol_attribute): Likewise.
+       * elflink.c (elf_merge_st_other): Likewise.
+       (_bfd_elf_merge_symbol, elf_link_add_object_symbols): Adjust to suit.
+       (_bfd_elf_copy_link_hash_symbol_type): Likewise.
+       (_bfd_elf_add_default_symbol): Merge st_other from undecorated
+       symbol and @VER symbol to @@VER symbol.
+
+2020-11-28  Alan Modra  <amodra@gmail.com>
+
+       PR 26907
+       * elf.c (elf_sort_sections): Don't sort zero size !load sections
+       after load sections.
+
+2020-11-27  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+
+       * elf.c (special_sections_g): Add .gnu.linkonce.n and .gnu.linkonce.p.
+       (special_sections_n): Add .noinit.
+       (special_sections_p): Add .persistent.
+
+2020-11-26  Nick Clifton  <nickc@redhat.com>
+
+       PR 26946
+       * dwarf2.c (read_section): Check for debug sections with excessive
+       sizes.
+
+2020-11-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/26936
+       * elflink.c (_bfd_elf_check_kept_section): Get the real kept
+       section.
+
+2020-11-23  Nick Clifton  <nickc@redhat.com>
+
+       PR 26931
+       * elf-bfd.h (struct elf_backend_data): Add bfd_boolean field to
+       slurp_secondary_relocs field.
+       (_bfd_elf_slurp_secondary_reloc_section): Update prototype.
+       * elf.c (_bfd_elf_slurp_secondary_reloc_section): Add new
+       parameter.  Compute number of symbols based upon the new
+       parameter.
+       * elfcode.h (elf_slurp_reloc_table): Pass dynamic as new
+       parameter.
+
+2020-11-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/26918
+       * elf64-s390.c (elf_s390_finish_dynamic_sections): Set .got
+       sh_entsize only if .got size > 0.
+
+2020-11-21  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfnn-riscv.c (_bfd_riscv_relax_section):  Add a new relax pass
+       to do the pcgp relaxation later, after the lui and call relaxations,
+       but before the delete and alignment relaxations.
+
+2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
+
+       * elflink.c (elf_finalize_dynstr): Call examine_strtab after
+       dynstr finalization.
+       (elf_link_swap_symbols_out): Don't call it here.  Call
+       ctf_new_symbol before swap_symbol_out.
+       (elf_link_output_extsym): Call ctf_new_dynsym before
+       swap_symbol_out.
+       (bfd_elf_final_link): Likewise.
+       * elf.c (swap_out_syms): Pass in bfd_link_info.  Call
+       ctf_new_symbol before swap_symbol_out.
+       (_bfd_elf_compute_section_file_positions): Adjust.
+
+2020-11-19  Nick Clifton  <nickc@redhat.com>
+
+       PR 26918
+       * elf64-s390.c (elf_s390_finish_dynamic_sections): Check for the
+       existance of an sgot output section before setting the
+       sh_entsize.
+
+2020-11-18  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+       H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf-bfd.h (enum elf_gnu_osabi): Add elf_gnu_osabi_retain.
+       (struct elf_obj_tdata): Increase has_gnu_osabi to 4 bits.
+       * elf.c (_bfd_elf_make_section_from_shdr): Set elf_gnu_osabi_retain
+       for SHF_GNU_RETAIN.
+       (_bfd_elf_final_write_processing): Report if SHF_GNU_RETAIN is
+       not supported by the OSABI.
+       Adjust error messages.
+       * elflink.c (elf_link_input_bfd): Copy enabled has_gnu_osabi bits from
+       input BFD to output BFD.
+       (bfd_elf_gc_sections): gc_mark the section if SHF_GNU_RETAIN is set.
+
+2020-11-16  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
+
+       * cpu-arm.c (processors): Add Cortex-A78C.
+
+2020-11-11  Tom Tromey  <tromey@adacore.com>
+
+       * archive.c (getuid, getgid): Move...
+       * sysdep.h (getuid, getgid): ...here.
+
+2020-11-09  Alan Modra  <amodra@gmail.com>
+
+       * vms-alpha.c (alpha_vms_write_exec): Write 16 bits to eihd.alias.
+
+2020-11-09  Alan Modra  <amodra@gmail.com>
+
+       * archive.c (bfd_ar_hdr_from_filesystem): Use bfd_set_input_error
+       when stat of archive member fails.
+       * coff-rs6000.c (xcoff_write_archive_contents_old),
+       (xcoff_write_archive_contents_big): Likewise, and handle in-memory
+       bfd.
+
+2020-11-03  Alan Modra  <amodra@gmail.com>
+
+       * elf.c (bfd_section_from_shdr): Free sections_being_created.
+       Use bfd_zmalloc.
+
+2020-11-02  Alan Modra  <amodra@gmail.com>
+
+       PR 15146
+       PR 26314
+       PR 26530
+       PR 26806
+       * elflink.c (elf_link_add_object_symbols): Don't set def/ref flags
+       for plugin syms.  Do allow plugin syms to mark as-needed libs.
+
+2020-10-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gas/26703
+       * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Generate
+       GNU_PROPERTY_X86_ISA_1_BASELINE for -z x86-64-baseline.
+
+2020-10-29  Nick Clifton  <nickc@redhat.com>
+
+       PR 26809
+       * elf.c (_bfd_elf_slurp_secondary_reloc_section): Use the correct
+       sized reloc reading function.
+       (_bfd_elf_write_secondary_reloc_section): Use the correct sized
+       reloc writing function.
+
+2020-10-28  Nick Clifton  <nickc@redhat.com>
+
+       PR 26774
+       * srec.c (srec_write_symbols): Do not emit symbols in sections
+       that have been removed from the output.
+
+2020-10-27  Nick Clifton  <nickc@redhat.com>
+
+       * elf64-hppa.c (elf_hppa_final_link_relocate): Check that the
+       symbol's section is being output before adding its offset to the
+       addend when processing R_PARISC_SECREL32.
+
+2020-10-25  Alan Modra  <amodra@gmail.com>
+
+       * vms-misc.c (_bfd_vms_save_counted_string): Count length byte
+       towards maxlen.
+
+2020-10-20  Dr. David Alan Gilbert  <dgilbert@redhat.com>
+
+       * po/es.po: Fix printf format.
+
+2020-10-16  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfnn-riscv.c (riscv_elf_link_hash_table): Add last_iplt_index.
+       (riscv_elf_size_dynamic_sections): Initialize the last_iplt_index.
+       (riscv_elf_relocate_section): Use riscv_elf_append_rela.
+       (riscv_elf_finish_dynamic_symbol): If the use_elf_append_rela is
+       false, then we should add the dynamic relocs from the last of
+       the .rela.iplt, and don't use the riscv_elf_append_rela to add.
+
+2020-10-16  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfnn-riscv.c: Include "objalloc.h" since we need objalloc_alloc.
+       (riscv_elf_link_hash_table): Add loc_hash_table and loc_hash_memory
+       for local STT_GNU_IFUNC symbols.
+       (riscv_elf_got_plt_val): Removed.
+       (riscv_elf_local_htab_hash, riscv_elf_local_htab_eq): New functions.
+       Use to compare local hash entries.
+       (riscv_elf_get_local_sym_hash): New function.  Find a hash entry for
+       local symbol, and create a new one if needed.
+       (riscv_elf_link_hash_table_free): New function.  Destroy an riscv
+       elf linker hash table.
+       (riscv_elf_link_hash_table_create): Create hash table for local ifunc.
+       (riscv_elf_check_relocs): Create a fake global symbol to track the
+       local ifunc symbol.  Add support to check and handle the relocations
+       reference to ifunc symbols.
+       (allocate_dynrelocs): Let allocate_ifunc_dynrelocs and
+       allocate_local_ifunc_dynrelocs to handle the ifunc symbols if they
+       are defined and referenced in a non-shared object.
+       (allocate_ifunc_dynrelocs): New function.  Allocate space in .plt,
+       .got and associated reloc sections for ifunc dynamic relocs.
+       (allocate_local_ifunc_dynrelocs): Likewise, but for local ifunc
+       dynamic relocs.
+       (riscv_elf_relocate_section): Add support to handle the relocation
+       referenced to ifunc symbols.
+       (riscv_elf_size_dynamic_sections): Updated.
+       (riscv_elf_adjust_dynamic_symbol): Updated.
+       (riscv_elf_finish_dynamic_symbol): Finish up the ifunc handling,
+       including fill the PLT and GOT entries for ifunc symbols.
+       (riscv_elf_finish_local_dynamic_symbol): New function.  Called by
+       riscv_elf_finish_dynamic_symbol to handle the local ifunc symbols.
+       (_bfd_riscv_relax_section): Don't do the relaxation for ifunc.
+       * elfxx-riscv.c: Add R_RISCV_IRELATIVE.
+       * configure.ac: Link elf-ifunc.lo to use the generic ifunc support.
+       * configure: Regenerated.
+
+2020-10-16  Alan Modra  <amodra@gmail.com>
+
+       * elf32-arc.c (replace_func): Correct return type.
+       (get_replace_function): Use a replace_func function pointer rather
+       than void*.  Update associated ARC_RELOC_HOWTO define.
+
+2020-10-16  Alan Modra  <amodra@gmail.com>
+
+       * elf32-cr16.c: Formatting.
+       (cr16_elf_final_link_relocate): Sign extend rather than clumsy
+       "add or subtract" of offset value.  Simplify range checks.  Move
+       common code out of "if" branches.  Don't refetch insn fields
+       needlessly.
+
+2020-10-16  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (ppc64_elf_relocate_section): Tighten sanity check
+       on R_PPC64_GOT_LO_DS and R_PPC64_GOT_HA instructions.
+
+2020-10-09  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (write_plt_relocs_for_local_syms): Don't do local
+       entry offset optimisation.
+
+2020-10-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gas/26703
+       * elf-linker-x86.h (elf_linker_x86_params): Add isa_level.
+       * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Merge
+       GNU_PROPERTY_X86_ISA_1_V[234].
+       (_bfd_x86_elf_link_setup_gnu_properties): Generate
+       GNU_PROPERTY_X86_ISA_1_V[234] for -z x86-64-v[234].
+
+2020-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/26711
+       * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Merge -z ibt
+       and -z shstk only with GNU_PROPERTY_X86_FEATURE_1_AND.
+
+2020-10-06  Brandon Bergren  <bdragon@FreeBSD.org>
+
+       * config.bfd: Add powerpc64le-*-freebsd*.
+       * configure.ac: Add powerpc_elf64_fbsd_le_vec.
+       * elf64-ppc.c (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME): Define for
+       freebsd.
+       * targets.c (powerpc_elf64_fbsd_le_vec): Declare.
+       (_bfd_target_vector): Add it.
+       * configure: Regenerate.
+
+2020-10-05  Kamil Rytarowski  <n54@gmx.com>
+
+       * config.bfd (aarch64-*-netbsd*, aarch64_be-*-netbsd*): Add target.
+
+2020-10-05  Nick Clifton  <nickc@redhat.com>
+
+       PR 26253
+       * elf.c (_bfd_elf_setup_sections): Do not complain about an
+       sh_link value of zero when the SLF_LINK_ORDER flag is set.
+       (assign_section_numbers): Likewise.
+
+2020-10-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR 26681
+       * elflink.c (bfd_elf_gc_sections): Do not arbitrarily keep note
+       sections which are linked to another section.
+
+2020-09-30  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
+
+       * cpu-arm.c: Add cortex-a78 and cortex-a78ae.
+
+2020-09-28  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
+
+       * cpu-arm.c: (processors) Add Cortex-X1.
+
+2020-09-28  Alan Modra  <amodra@gmail.com>
+
+       PR 26656
+       * elf64-ppc.c (ppc_build_one_stub, ppc_size_one_stub): Check for
+       NULL stub_entry->h before calling is_tls_get_addr.
+
+2020-09-26  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (GLINK_PLTRESOLVE_SIZE): Depend on has_plt_localentry0.
+       (LD_R0_0R11, ADD_R11_R0_R11): Define.
+       (ppc64_elf_tls_setup): Disable params->plt_localentry0 when power10
+       code detected.
+       (ppc64_elf_size_stubs): Update __glink_PLTresolve eh_frame.
+       (ppc64_elf_build_stubs): Move r2 save to start of __glink_PLTresolve,
+       and only emit for has_plt_localentry0.  Don't use r2 in the stub.
+
+2020-09-24  Alan Modra  <amodra@gmail.com>
+
+       PR 26656
+       * elf64-ppc.c (plt_stub_size): Add "odd" param.  Use it with
+       size_power10_offset rather than calculating from start of stub.
+       Add size for notoc tls_get_addr_opt stub.
+       (plt_stub_pad): Add "odd" param, pass to plt_stub_size.
+       (build_tls_get_addr_head, build_tls_get_addr_tail): New functions.
+       (build_tls_get_addr_stub): Delete.
+       (ppc_build_one_stub): Use a temp for htab->params->stub_bfd.
+       Emit notoc tls_get_addr_opt stub.  Move eh_frame code to
+       suit.  Adjust code to use bfd_tls_get_addr_head/tail in place
+       of build_tls_get_addr_stub.
+       (ppc_size_one_stub): Size notoc tls_get_addr_opt stub.
+       Adjust plt_stub_size and plt_stub_pad calls.  Correct "odd"
+       when padding stub.  Size eh_frame for notoc stub too.
+       Correct lr_restore value.
+       (ppc64_elf_relocate_section): Don't skip over first insn of
+       notoc tls_get_addr_opt stub.
+
+2020-09-24  Alan Modra  <amodra@gmail.com>
+
+       PR 26655
+       * elf64-ppc.c (ppc64_elf_func_desc_adjust): Rename to..
+       (ppc64_elf_edit): Call params->edit.
+       (ppc64_elf_tls_setup): Don't call _bfd_elf_tls_setup.  Return a
+       bfd_boolean.
+       * elf64-ppc.h (struct ppc64_elf_params): Add "edit".
+       (ppc64_elf_tls_setup): Update declaration.
+
+2020-09-21  Alan Modra  <amodra@gmail.com>
+
+       PR 26569
+       * elfxx-riscv.c (howto_table): Correct size and bitsize of
+       R_RISCV_RVC_BRANCH, R_RISCV_RVC_JUMP, and R_RISCV_RVC_LUI.
+       Correct size for R_RISCV_TLS_DTPMOD32, R_RISCV_TLS_DTPREL32,
+       R_RISCV_CALL, and R_RISCV_CALL_PLT.  Make R_RISCV_TPREL_ADD and
+       R_RISCV_ALIGN like R_RISCV_NONE.  Correct dst_mask many relocs.
+
+2020-09-17  Mikael Pettersson  <mikpelinux@gmail.com>
+
+       PR ld/18808
+       * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Skip IFUNC
+       relocations in debug sections, change abort to _bfd_error_handler.
+
+2020-09-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/26583
+       * config.bfd (targ64_selvecs, targ_selvecs): Add x86_64_pe_vec
+       to x86_64_pei_vec.
+       * reloc.c: Include "coff/internal.h".
+       (bfd_perform_relocation): Adjust relocation for PE/x86-64 inputs.
+
+2020-09-16  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (elf_symbol_from): Remove unused ABFD parameter.
+       * elf.c (ignore_section_sym, _bfd_elf_copy_private_symbol_data),
+       (swap_out_syms): Adjust elf_symbol_from invocation.
+
+2020-09-16  Alan Modra  <amodra@gmail.com>
+
+       PR 26623
+       * elf-bfd.h (elf_symbol_from): Exclude synthetic symbols.
+
+2020-09-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * coff-x86_64.c (howto_table): Display PE relocation names.
+
+2020-09-15  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR ld/26589
+       * elf32-cris.c (cris_elf_check_relocs): Add missing NULL check
+       on argument before calling UNDEFWEAK_NO_DYNAMIC_RELOC.
+
+2020-09-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/26391
+       * elflink.c (elf_final_link_info): Add local_hash_table.
+       (local_hash_entry): New.
+       (local_hash_newfunc): Likewise.
+       (elf_link_output_symstrtab): Append ".COUNT" to duplicated local
+       symbols.
+       (bfd_elf_final_link): Initialize and free local_hash_table for
+       "-z unique-symbol".
+
+2020-09-10  Siddhesh Poyarekar  <siddesh.poyarekar@arm.com>
+
+       * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Revert
+       changes in 7e05773767820b441b23a16628b55c98cb1aef46.  Set
+       error for undefined symbol in BFD_RELOC_AARCH64_BRANCH19 and
+       BFD_RELOC_AARCH64_TSTBR14 relocations.
+
+2020-09-09  Nick Clifton  <nickc@redhat.com>
+
+       * cofflink.c (coff_link_check_archive_element): Move the check for
+       coff type input to the start of the function.
+
+2020-09-09  Alan Modra  <amodra@gmail.com>
+
+       * libbfd-in.h (_bfd_write_unsigned_leb128): Declare.
+       * libbfd.h: Regenerate.
+
+2020-09-08  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+           Kuan-Lin Chen  <kuanlinchentw@gmail.com>
+
+       * bfd-in2.h (bfd_reloc_code_real): Add
+       BFD_RELOC_MSP430_{SET,SUB}_ULEB128.
+       * elf32-msp430.c (msp430_elf_ignore_reloc): New.
+       (elf_msp430_howto_table): Add R_MSP430{,X}_GNU_{SET,SUB}_ULEB128.
+       (msp430_reloc_map): Add R_MSP430_GNU_{SET,SUB}_ULEB128.
+       (msp430x_reloc_map): Add R_MSP430X_GNU_{SET,SUB}_ULEB128.
+       (write_uleb128): New.
+       (msp430_final_link_relocate): Handle R_MSP430{,X}_GNU_{SET,SUB}_ULEB128.
+       * libbfd.c (_bfd_write_unsigned_leb128): New.
+       * libbfd.h (_bfd_write_unsigned_leb128): New prototype.
+       Add BFD_RELOC_MSP430_{SET,SUB}_ULEB128.
+       * reloc.c: Document BFD_RELOC_MSP430_{SET,SUB}_ULEB128.
+
+2020-09-08  Alex Coplan  <alex.coplan@arm.com>
+
+       * archures.c (bfd_mach_aarch64_8R): New.
+       * bfd-in2.h: Regenerate.
+       * cpu-aarch64.c (bfd_aarch64_arch_v8_r): New.
+       (bfd_aarch64_arch_ilp32): Update tail pointer.
+
+2020-09-08  Alan Modra  <amodra@gmail.com>
+
+       PR 13250
+       PR 26580
+       * elflink.c (_bfd_elf_merge_symbol): Make "override" a bfd**.
+       Return oldbfd in override when old common should override new
+       common.
+       (_bfd_elf_add_default_symbol): Adjust to suit.
+       (elf_link_add_object_symbols): Likewise.  Pass "override" to
+       _bfd_generic_link_add_one_symbol.  Save and restore common u.c.p
+       field for --as-needed shared libraries.  Revert pr13250 changes.
+
+2020-09-08  Nick Clifton  <nickc@redhat.com>
+
+       * plugin.c (bfd_plugin_canonicalize_symtab): Handle the case of an
+       unrecognized symbol type in a weak definition.
+
 2020-09-04  Alan Modra  <amodra@gmail.com>
 
        PR 26574