+
+ * doc/Makefile.am (AM_MAKEINFOFLAGS): Define.
+ * doc/Makefile.in: Regenerate.
+
+
+ * coff-rs6000.c (xcoff_dwsect_names): Add new DWARF
+ sections.
+ * coffgen.c (coff_pointerize_aux): Handle C_DWARF.
+ (coff_print_symbol): Likewise.
+ * libxcoff.h (XCOFF_DWSECT_NBR_NAMES): Update.
+
+
+ * elf64-x86-64.c (x86_64_elf_howto_table): Set src_mask fields
+ to zero.
+
+
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+
+
+ PR 27746
+ * elf32-or1k.c (PLT_ENTRY_SIZE_LARGE, PLT_MAX_INSN_COUNT,
+ OR1K_ADD, OR1K_ORI): New macros to help with plt creation.
+ (elf_or1k_link_hash_table): New field plt_count.
+ (elf_or1k_link_hash_entry): New field plt_index.
+ (elf_or1k_plt_entry_size): New function.
+ (or1k_write_plt_entry): Update to support variable size PLTs.
+ (or1k_elf_finish_dynamic_sections): Use new or1k_write_plt_entry
+ API.
+ (or1k_elf_finish_dynamic_symbol): Update to write large PLTs
+ when needed.
+ (allocate_dynrelocs): Use elf_or1k_plt_entry_size to account for
+ PLT size.
+
+
+ PR 21464
+ * elf32-or1k.c (or1k_elf_relocate_section): Relax R_OR1K_GOT16
+ overflow check if we have R_OR1K_GOT_AHI16 followed by
+ R_OR1K_GOT16.
+
+
+ PR 21464
+ * bfd-in2.h: Add BFD_RELOC_OR1K_GOT_AHI16 relocation.
+ * elf32-or1k.c (or1k_elf_howto_table, or1k_reloc_map): Likewise.
+ (or1k_final_link_relocate, or1k_elf_relocate_section,
+ or1k_elf_check_relocs): Likewise.
+ * libbfd.h (bfd_reloc_code_real_names): Likewise.
+ * reloc.c: Likewise.
+
+
+ PR 27624
+ * elf32-or1k.c (or1k_elf_adjust_dynamic_symbol): Change
+ condition used to cleanup plt entries to cleanup forced local
+ entries.
+
+
+ PR ld/27825
+ * elflink.c (elf_link_output_symstrtab): Always append ".COUNT"
+ to local symbols.
+
+
+ * vms-lib.c (vms_traverse_index): Account for vms_kbn size when
+ sanity checking keylen.
+
+
+ * libbfd.c (bfd_malloc): Provide some documenation. Treat a size
+ of 0 as 1.
+ (bfd_realloc): Likewise.
+ (bfd_zmalloc): Likewise.
+ (bfd_realloc_or_free): Provide some documentation. Treat a size
+ of 0 as a request to free.
+ * libbfd-in.h (bfd_realloc): Remove prototype.
+ (bfd_realloc_or_free): Remove prototype.
+ (bfd_zmalloc): Remove prototype.
+ * libbfd.h: Regenerate.
+
+
+ * elf32-i386.c (elf_howto_table): Switch all 32-bit relocs to
+ complain_overflow_dont.
+ * elf64-x86-64.c (x86_64_elf_howto_table): Switch all 64-bit
+ relocs to complain_overflow_dont.
+
+
+ * elf32-ppc.c (allocate_dynrelocs): Keep dyn_relocs for undefweak
+ symbols when -z dynamic-undefined-weak or when there are no
+ dynamic relocs in read-only sections and -z nodynamic-undefined-weak
+ is not given.
+ * elf64-ppc.c (allocate_dynrelocs): Likewise.
+
+
+ * elf32-ppc.c (allocate_dynrelocs): Call ensure_undef_dynamic for
+ weak undefined symols that only appear on PLT relocs.
+ * elf64-ppc.c (allocate_dynrelocs): Likewise.
+
+
+ PR 27755
+ * elf32-ppc.c (ppc_elf_inline_plt): Do increment rel in loop.
+
+
+ * elf32-csky.c (is_mapping_symbol_name): New function.
+ (csky_elf_is_target_special_symbol): Likewise.
+ (csky_elf_maybe_function_sym): Likewise.
+ (bfd_elf32_bfd_is_target_special_symbol): Define.
+ (elf_backend_maybe_function_sym): Define.
+
+
+ PR 27801
+ * mach-o.c (bfd_mach_o_core_fetch_environment): Use bfd_get_32 to
+ read 32-bit value.
+
+
+ PR 27799
+ * elf32-xtensa.c (elf_xtensa_grok_prstatus): Check for core notes
+ that are too small.
+
+
+ PR 27797
+ * libbfd.c (bfd_realloc_or_free): Do not free a pointer than has
+ been realloc'ed to size 0.
+
+
+ PR 27795
+ * coff-rs6000.c (_bfd_xcoff_read_ar_hdr): Check for invalid name
+ lengths.
+
+
+ PR 27793
+ * som.c (som_slurp_symbol_table): Assign symbols without any scope
+ to the undefined section.
+ (som_decode_symclass): Check for a missing symbol section.
+ * syms.c (bfd_decode_symclass): Likewise.
+
+
+ PR 27792
+ * som.c (som_slurp_string_table): Place a terminating NUL byte at
+ the end of the table.
+ (som_slurp_symbol_table): Check for an over-large offset into the
+ string string table.
+
+
+ * elf.c (_bfd_elf_maybe_function_sym): Do not accept annobin
+ symbols as potential function symbols.
+ * elfnn-aarch64.c (elfNN_aarch64_maybe_function_sym): Likewise.
+ * elf64-ppc.c (ppc64_elf_maybe_function_sym): Likewise.
+ * elf32-arm.c (elf32_arm_maybe_function_sym): Likewise.
+
+
+ * elf-bfd.h: Include stdlib.h.
+
+
+ * elf32-i386.c (elf_howto_table): Switch R_386_PC16 to
+ complain_overflow_signed.
+ * elf64-x86-64.c (x86_64_elf_howto_table): Switch R_X86_64_PC16
+ to complain_overflow_signed.
+
+
+ * elf.c (special_sections_p): Add .persistent.bss.
+
+
+ * elf32-i386.c (elf_howto_table): R_386_TLS_DESC_CALL has zero
+ size field.
+ * elf64-x86-64.c (x86_64_elf_howto_table): R_X86_64_TLSDESC_CALL
+ has zero size field.
+
+
+ * hash.c (struct bfd_strtab_hash): Remove xcoff field.
+ Add length_field_size field.
+ (_bfd_stringtab_init): Change prototype.
+ Adapt to new length_field_size.
+ (_bfd_xcoff_stringtab_init): Likewise.
+ (_bfd_stringtab_add): Likewise.
+ (_bfd_stringtab_emit): Likewise.
+ * libbfd-in.h (_bfd_xcoff_stringtab_init):
+ Change prototype.
+ * libbfd.h: Regenerate.
+ * xcofflink.c (_bfd_xcoff_bfd_link_hash_table_create):
+ Call _bfd_xcoff_stringtab_init with isxcoff64 value.
+
+
+ * coff-rs6000.c (_bfd_xcoff_swap_aux_in): Add errors for
+ unsupported storage class or auxialiry entries.
+ Improve and adapt to new aux structures.
+ Add C_DWARF support.
+ (_bfd_xcoff_swap_aux_out): Likewise.
+ * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Likewise.
+ (_bfd_xcoff64_swap_aux_out): Likewise.
+
+
+ PR 27760
+ * peXXigen.c (_bfd_XX_print_private_bfd_data_common): Add display
+ of IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP,
+ IMAGE_FILE_NET_RUN_FROM_SWAP and IMAGE_FILE_UP_SYSTEM_ONLY flags.
+ Decode the contents of the DllCharacteristics field.
+
+
+ PR 27759
+ * srec.c (srec_read_section): Replace assertions with error
+ returns.
+
+
+ PR binutils/21700
+ * reloc.c (BFD_RELOC_PPC_NEG): New relocation.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+ * coff-rs6000.c (_bfd_xcoff_reloc_type_lookup): Add
+ BFD_RELOC_PPC_NEG handler.
+ (xcoff_reloc_type_neg): Correctly substract addend.
+ * coff64-rs6000.c (xcoff64_howto_table): Add R_NEG_32
+ howto.
+ (xcoff64_rtype2howto): Add handler for R_NEG_32.
+ (xcoff64_reloc_type_lookup): Add BFD_RELOC_PPC_NEG handler.
+ * xcofflink.c (xcoff_need_ldrel_p): Check output section
+ for R_POS-like relocations. New argument added.
+ (xcoff_mark): Adapt to new xcoff_need_ldrel_p argument.
+ (xcoff_link_input_bfd): Likewise.
+
+
+ PR 27567
+ * coffcode.h (styp_to_sec_flags): Use an unsigned long styp_flags.
+ (coff_write_object_contents): Pass bfd to COFF_ENCODE_ALIGNMENT,
+ ignore alignment checks when return is false. Formatting.
+
+
+ PR27584
+ * elfnn-riscv.c (riscv_elf_is_target_special_symbol): Added to
+ omit local and empty symbols since they usually generated to
+ mark the auipc instructions.
+
+
+ * elf32-csky.c (csky_elf_howto_table)
+ <R_CKCORE_PCREL_IMM16BY2>: Set special_function to
+ bfd_elf_generic_reloc.
+ <R_CKCORE_PCREL_IMM16BY4>: Likewise.
+ <R_CKCORE_PCREL_IMM10BY4>: Likewise.
+ <R_CKCORE_PCREL_IMM18BY2>: Likewise.
+ <R_CKCORE_PCREL_FLRW_IMM8BY4>: Likewise.
+
+
+ PR binutils/27708
+ * elf.c (assign_file_positions_for_non_load_sections): Set
+ p_memsz to p_filesz for the loadable PT_NOTE segment.
+
+
+ * elf.c (elfcore_grok_netbsd_note): Remove unneeded #ifdef
+ checks for NT_NETBSDCORE_AUXV and NT_NETBSDCORE_LWPSTATUS.
+
+
+ PR 27631
+ * elf32-metag.c (elf_metag_relocate_section): Don't use &hh->elf
+ when hh might be NULL, test for NULL first.
+
+
+ PR 27630
+ * elf32-arm.c (elf32_arm_size_stubs): Don't use &hash->root when
+ hash might be NULL, cast instead.
+
+
+ * xcofflink.c (xcoff_link_check_ar_symbols): Update esym earlier.
+
+
+ * elfnn-riscv.c (riscv_version_mismatch): Do not report the warning
+ when the version of input or output is RISCV_UNKNOWN_VERSION, since
+ the extension is added implicitly.
+ * elfxx-riscv.c: Updated the obsolete comments.
+ (RISCV_UNKNOWN_VERSION): Moved to elfxx-riscv.h.
+ * elfxx-riscv.h (RISCV_UNKNOWN_VERSION): Added.
+
+
+ * elf-bfd.h (ENABLE_CHECKING): Define.
+ (elf_link_hash_lookup): Abort if wrong type of hash table.
+ * configure.ac (--enable-checking): Add support.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+
+
+ * elf-bfd.h (is_elf_hash_table): Convert macro to inline function.
+ (elf_link_hash_lookup, elf_link_hash_traverse): Likewise.
+ (elf_hash_table, elf_hash_table_id): Likewise.
+ * elf32-arm.c (elf32_arm_setup_section_lists): Delete redundant
+ is_elf_hash_table check.
+ * elf32-csky.c (elf32_csky_setup_section_lists): Likewise.
+ * elf32-hppa.c (clobber_millicode_symbols): Correct param types.
+ * elf64-alpha.c (elf64_alpha_output_extsym): Likewise.
+ * elfnn-ia64.c (elfNN_ia64_global_dyn_info_free: Likewise.
+ (elfNN_ia64_global_dyn_sym_thunk: Likewise.
+ * elf64-ia64-vms.c (elf64_ia64_global_dyn_info_free): Likewise.
+ (elf64_ia64_global_dyn_sym_thunk): Likewise.
+ (elf64_vms_link_add_object_symbols): Pass base type of hash table
+ to is_elf_hash_table.
+ * elflink.c (_bfd_elf_dynamic_symbol_p): Likewise.
+ (_bfd_elf_symbol_refs_local_p, _bfd_elf_add_dynamic_entry): Likewise.
+ (_bfd_elf_strip_zero_sized_dynamic_sections): Likewise.
+ (_bfd_elf_link_check_relocs, elf_link_add_object_symbols): Likewise.
+ (bfd_elf_final_link): Likewise.
+ * elfnn-aarch64.c (elfNN_aarch64_setup_section_lists): Likewise.
+ * elf64-ppc.c (ppc64_elf_set_toc): Likewise. Use bfd_link_hash_lookup.
+
+
+ * elf-bfd.h (struct elf_backend_data): Return bfd_link_hash_entry*
+ from elf_backend_archive_symbol_lookup.
+ (_bfd_elf_archive_symbol_lookup): Return bfd_link_hash_entry*.
+ * elf64-ppc.c (ppc64_elf_archive_symbol_lookup): Likewise. Check
+ we have a ppc_hash_table before accessing ppc_link_hash_entry
+ fields.
+ * elflink.c (_bfd_elf_archive_symbol_lookup): Return
+ bfd_link_hash_entry*.
+ (elf_link_add_archive_symbols): Adjust to suit.
+
+
+ * elfxx-riscv.c (riscv_parse_std_ext): Fixed the wrong versions of
+ i-ext when expanding g-ext.
+
+
+ * elfxx-riscv.c (riscv_ext_dont_care_version): Removed.
+ (riscv_parse_add_subset): Always add the implicit extensions, even if
+ their versions are RISCV_UNKNOWN_VERSION.
+ (riscv_parse_std_ext): Delay to add i-ext as the implicit extension
+ in the riscv_parse_add_implicit_subsets. Besides, add g-ext as the
+ implicit extension after it has been expanded.
+ (riscv_parse_add_implicit_subsets): Updated.
+
+
+ * elfxx-riscv.c (riscv_std_z_ext_strtab): Moved forward.
+ (riscv_std_s_ext_strtab): Likewise.
+ (riscv_std_h_ext_strtab): Likewise.
+ (riscv_std_zxm_ext_strtab): Added for the zxm prefix.
+ (enum riscv_prefix_ext_class): Moved forward and renamed from
+ riscv_isa_ext_class. Reorder them according to the parsing order,
+ since the enum values are used to check the orders in the
+ riscv_compare_subsets.
+ (struct riscv_parse_prefix_config): Moved forward and renamed from
+ riscv_parse_config_t. Also removed the ext_valid_p field, the
+ related functions are replaced by riscv_valid_prefixed_ext.
+ (parse_config): Moved forward and updated. The more letters of the
+ prefix string, the more forward it must be defined. Otherwise, we
+ will get the wrong mapping when using strncmp in riscv_get_prefix_class.
+ (riscv_get_prefix_class): Moved forward. Support to parse the
+ multi-letter prefix, like zxm.
+ (riscv_known_prefixed_ext): New function, check if the prefixed
+ extension is supported according to the right riscv_std_*_ext_strtab.
+ (riscv_valid_prefixed_ext): New function, used to replace the
+ riscv_ext_*_valid_p functions.
+ (riscv_init_ext_order): Do not set the values for prefix keywords
+ since they may have multiple letters for now.
+ (riscv_compare_subsets): Set the order values of prefix keywords
+ to negative numbers according to the riscv_prefix_ext_class.
+ (riscv_parse_std_ext): Call riscv_get_prefix_class to see if we
+ have parsed the prefixed extensions.
+ (riscv_parse_prefixed_ext): Updated and removed the parameter config.
+ Report error when the prefix is unknown.
+ (riscv_parse_subset): Do not parse the prefixed extensions according
+ to the orders in the parse_config. Remove the confused message and
+ let riscv_parse_prefixed_ext to report the details.
+ * elfxx-riscv.h (enum riscv_isa_ext_class): Moved to elfxx-riscv.c.
+ (riscv_get_prefix_class): Removed to static.
+
+
+ * configure.ac (ACX_BUGURL): Use https://.
+ * configure.com (COPY_TEXT): Likewise.
+ * configure: Regenerate.
+
+
+ * configure.ac: Don't check for long long or long double type.
+ Don't check for alloca.h, limits.h, stddef.h, stdlib.h, string.h,
+ strings.h, time.h, wchar.h, wctype.h or sys/time.h. Don't check
+ for strtoull, free, malloc, realloc, getenv, strstr, snprintf,
+ vsnprintf, strlen or setitimer. Sort AC_CHECK_DECLS.
+ (AC_ISC_POSIX): Don't invoke.
+ (AC_HEADER_TIME, AC_HEADER_DIRENT, ACX_HEADER_STRING): Likewise.
+ * sysdep.h: Remove many HAVE_*_H checks and fallback declarations.
+ Do test HAVE_SYS_TYPES_H. Don't include sys/time.h. Reorder
+ header order as per automake AC_INCLUDES_DEFAULT.
+ * bfd-in.h: Include inttypes.h unconditionally.
+ * bfd.c (_bfd_doprnt, _bfd_doprnt_scan): Assume long long and
+ long double are available.
+ (bfd_scan_vma): Assume long long and strtoull are available.
+ * elflink.c: Include limits.h unconditionally.
+ * elfnn-riscv.c: Likewise.
+ * wasm-module.c: Likewise.
+ * hpux-core.c: Include dirent.h unconditionally.
+ * trad-core.c: Likewise.
+ * hosts/x86-64linux.h: Include stdlib.h unconditionally.
+ * peXXigen.c: Remove HAVE_WCHAR_H and HAVE_WCTYPE_H checks.
+ * elf32-m68hc1x.c: Don't include alloca-conf.h.
+ * elf64-hppa.c: Likewise.
+ * som.c: Likewise.
+ * wasm-module.c: Likewise.
+ * xsym.c: Likewise.
+ * bfd-in2.h: Regenerate.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+
PR ld/26659