+2020-03-02 Alan Modra <amodra@gmail.com>
+
+ * aix386-core.c (aix386_core_file_p): Return bfd_cleanup.
+ * aix5ppc-core.c (xcoff64_core_p): Likewise.
+ * cisco-core.c (cisco_core_file_validate): Likewise.
+ * hppabsd-core.c (hppabsd_core_core_file_p): Likewise.
+ * hpux-core.c (hpux_core_core_file_p): Likewise.
+ * irix-core.c (irix_core_core_file_p): Likewise.
+ * lynx-core.c (lynx_core_file_p): Likewise.
+ * netbsd-core.c (netbsd_core_file_p): Likewise.
+ * osf-core.c (osf_core_core_file_p): Likewise.
+ * ptrace-core.c (ptrace_unix_core_file_p): Likewise.
+ * sco5-core.c (sco5_core_file_p): Likewise.
+
+2020-03-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * trad-core.c (trad_unix_core_file_p): Return bfd_cleanup.
+
+2020-03-02 Alan Modra <amodra@gmail.com>
+
+ * targets.c (bfd_cleanup): New typedef.
+ (struct bfd <_bfd_check_format>): Return a bfd_cleanup.
+ * libbfd-in.h (_bfd_no_cleanup): Define.
+ * format.c (bfd_reinit): Add cleanup parameter, call it.
+ (bfd_check_format_matches): Set cleanup from _bfd_check_format
+ call and pass to bfd_reinit. Delete temp, use abfd->xvec instead.
+ * aout-target.h (callback, object_p): Return bfd_cleanup.
+ * aout-tic30.c (tic30_aout_callback, tic30_aout_object_p): Likewise.
+ * archive.c (bfd_generic_archive_p): Likewise.
+ * binary.c (binary_object_p): Likewise.
+ * coff-alpha.c (alpha_ecoff_object_p): Likewise.
+ * coff-ia64.c (ia64coff_object_p): Likewise.
+ * coff-rs6000.c (_bfd_xcoff_archive_p, rs6000coff_core_p): Likewise.
+ * coff-sh.c (coff_small_object_p): Likewise.
+ * coff-stgo32.c (go32_check_format): Likewise.
+ * coff64-rs6000.c (xcoff64_archive_p, rs6000coff_core_p),
+ (xcoff64_core_p): Likewise.
+ * coffgen.c (coff_real_object_p, coff_object_p): Likewise.
+ * elf-bfd.h (bfd_elf32_object_p, bfd_elf32_core_file_p),
+ (bfd_elf64_object_p, bfd_elf64_core_file_p): Likewise.
+ * elfcode.h (elf_object_p): Likewise.
+ * elfcore.h (elf_core_file_p): Likewise.
+ * i386msdos.c (msdos_object_p): Likewise.
+ * ihex.c (ihex_object_p): Likewise.
+ * libaout.h (some_aout_object_p): Likewise.
+ * libbfd-in.h (bfd_generic_archive_p, _bfd_dummy_target),
+ (_bfd_vms_lib_alpha_archive_p, _bfd_vms_lib_ia64_archive_p): Likewise.
+ * libbfd.c (_bfd_dummy_target): Likewise.
+ * libcoff-in.h (coff_object_p): Likewise.
+ * mach-o-aarch64.c (bfd_mach_o_arm64_object_p),
+ (bfd_mach_o_arm64_core_p): Likewise.
+ * mach-o-arm.c (bfd_mach_o_arm_object_p),
+ (bfd_mach_o_arm_core_p): Likewise.
+ * mach-o-i386.c (bfd_mach_o_i386_object_p),
+ (bfd_mach_o_i386_core_p): Likewise.
+ * mach-o-x86-64.c (bfd_mach_o_x86_64_object_p),
+ (bfd_mach_o_x86_64_core_p): Likewise.
+ * mach-o.c (bfd_mach_o_header_p, bfd_mach_o_gen_object_p),
+ (bfd_mach_o_gen_core_p, bfd_mach_o_fat_archive_p): Likewise.
+ * mach-o.h (bfd_mach_o_object_p, bfd_mach_o_core_p),
+ (bfd_mach_o_fat_archive_p, bfd_mach_o_header_p): Likewise.
+ * mmo.c (mmo_object_p): Likewise.
+ * pef.c (bfd_pef_object_p, bfd_pef_xlib_object_p): Likewise.
+ * peicode.h (coff_real_object_p, pe_ILF_object_p),
+ (pe_bfd_object_p): Likewise.
+ * plugin.c (ld_plugin_object_p, bfd_plugin_object_p): Likewise.
+ * ppcboot.c (ppcboot_object_p): Likewise.
+ * rs6000-core.c (rs6000coff_core_p): Likewise.
+ * som.c (som_object_setup, som_object_p): Likewise.
+ * srec.c (srec_object_p, symbolsrec_object_p): Likewise.
+ * tekhex.c (tekhex_object_p): Likewise.
+ * vms-alpha.c (alpha_vms_object_p): Likewise.
+ * vms-lib.c (_bfd_vms_lib_archive_p, _bfd_vms_lib_alpha_archive_p),
+ (_bfd_vms_lib_ia64_archive_p, _bfd_vms_lib_txt_archive_p): Likewise.
+ * wasm-module.c (wasm_object_p): Likewise.
+ * xsym.c (bfd_sym_object_p): Likewise.
+ * xsym.h (bfd_sym_object_p): Likewise.
+ * aoutx.h (some_aout_object_p): Likewise, and callback parameter
+ return type.
+ * pdp11.c (some_aout_object_p): Likewise.
+ * plugin.c (register_ld_plugin_object_p): Update object_p
+ parameter type.
+ * plugin.h (register_ld_plugin_object_p): Likewise.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+ * libcoff.h: Regenerate.
+
+2020-03-02 Alan Modra <amodra@gmail.com>
+
+ * coff-alpha.c (alpha_ecoff_le_vec): Add SEC_SMALL_DATA to
+ applicable section flags.
+ * coff-mips.c (mips_ecoff_le_vec, mips_ecoff_be_vec): Likewise.
+ (mips_ecoff_bele_vec): Likewise.
+ * coffcode.h (sec_to_styp_flags): Set SEC_SMALL_DATA for .sdata
+ and .sbss sections.
+ * ecoff.c (_bfd_ecoff_new_section_hook): Likewise.
+ (_bfd_ecoff_styp_to_sec_flags): Likewise.
+
+2020-03-02 Alan Modra <amodra@gmail.com>
+
+ * elf32-m32r.c (m32r_elf_section_flags): New function.
+ (elf_backend_section_flags): Define.
+ * elf32-nds32.c (nds32_elf_section_flags): New function.
+ (elf_backend_section_flags): Define.
+ * elf32-ppc.c (ppc_elf_section_from_shdr): Set SEC_SMALL_DATA for
+ .sbss and .sdata sections.
+ * elf32-v850.c (v850_elf_section_from_shdr): Set SEC_SMALL_DATA
+ for SHF_V850_GPREL sections.
+ * elf64-alpha.c (elf64_alpha_section_from_shdr): Delete outdated
+ FIXME.
+ * elf64-hppa.c (elf64_hppa_section_from_shdr): Set SEC_SMALL_DATA
+ for SHF_PARISC_SHORT sections.
+ * elf64-ppc.c (ppc64_elf_section_flags): New function.
+ (elf_backend_section_flags): Define.
+ * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Set SEC_SMALL_DATA
+ for SHF_MIPS_GPREL sections. Delete FIXME.
+
+2020-03-02 Alan Modra <amodra@gmail.com>
+
+ * elf-bfd.h (elf_backend_section_flags): Remove flagword* param.
+ * elf.c (_bfd_elf_make_section_from_shdr): Set section flags before
+ calling elf_backend_section_flags with adjusted params. Use
+ newsect->flags past that point.
+ (_bfd_elf_new_section_hook): Always set sh_type and sh_flags for
+ special sections.
+ (_bfd_elf_init_private_section_data): Allow normal sh_type sections
+ to have their type overridden, and all sh_flags but processor and
+ os specific.
+ * elf32-arm.c (elf32_arm_section_flags): Adjust for changed params.
+ * elf32-mep.c (mep_elf_section_flags): Likewise.
+ * elf32-nios2.c (nios2_elf32_section_flags): Likewise.
+ * elf64-alpha.c (elf64_alpha_section_flags): Likewise.
+ * elf64-ia64-vms.c (elf64_ia64_section_flags): Likewise.
+ * elfnn-ia64.c (elfNN_ia64_section_flags): Likewise.
+ * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Exclude the linker
+ stub BFD and non-aarch64 input files when scanning for stubs.
+
+2020-03-02 Alan Modra <amodra@gmail.com>
+
+ * coff-alpha.c (alpha_ecoff_get_elt_at_filepos): Provide an upper
+ limit to decompressed element size.
+
+2020-03-02 Alan Modra <amodra@gmail.com>
+
+ * vms-lib.c (vms_traverse_index): Add recur_count param and
+ update calls. Fail on excessive recursion.
+
+2020-03-02 Alan Modra <amodra@gmail.com>
+
+ * vms-alpha.c (vms_get_remaining_object_record): Use
+ bfd_realloc_or_free rather than bfd_realloc.
+ (add_symbol_entry, vector_grow1, alpha_vms_slurp_relocs): Likewise.
+ (dst_define_location, parse_module): Likewise, and check realloc
+ return status before using memory. Return status from function
+ adjusting all callers.
+
+2020-02-28 Alan Modra <amodra@gmail.com>
+
+ * vms-lib.c (_bfd_vms_lib_archive_p): Free memory on error paths.
+
+2020-02-28 Alan Modra <amodra@gmail.com>
+
+ * vms-alpha.c (alpha_vms_object_p): Use _bfd_malloc_and_read.
+ Remove duplicate undersize check.
+
+2020-02-27 Alan Modra <amodra@gmail.com>
+
+ PR 24511
+ * mmo.c (mmo_scan): Set SEC_DATA for .data.
+
+2020-02-27 Alan Modra <amodra@gmail.com>
+
+ PR 24511
+ * syms.c (stt): Trim off all but 'e', 'i' and 'p' entries.
+ (coff_section_type): Adjust comment.
+ (decode_section_type): Likewise. Call coff_section_type before
+ decode_section_type.
+ (bfd_decode_symclass): Use 'c' for common sections other than
+ the standard one.
+
+2020-02-27 Alan Modra <amodra@gmail.com>
+
+ * coff-rs6000.c (_bfd_xcoff_read_ar_hdr): Put all data in one
+ malloc'd block.
+
+2020-02-27 Alan Modra <amodra@gmail.com>
+
+ * bfd.c (bfd_stat_arch_elt): Use vector of containing archive,
+ if file is an archive element.
+ * bfd-in2.h: Regenerate.
+
+2020-02-26 Alan Modra <amodra@gmail.com>
+
+ * archive.c (do_slurp_bsd_armap): Increase minimum parsed_size, and
+ bfd_set_error on failing test. Don't bother changing bfd_error on
+ file read error. Check symdef_count is multiple of BSD_SYMDEF_SIZE.
+ Check sym name is within string buffer. Use size_t for some vars.
+ (do_slurp_coff_armap): Use size_t for some variables, fix size of
+ int_buf. Don't change bfd_error on file read error. Use
+ _bfd_mul_overflow when calculating carsym buffer size. Reorder
+ calculations to catch overflows before they occur. malloc and
+ free raw armap rather than using bfd_alloc. Read raw armap before
+ allocating carsym+strings buffer.
+ (_bfd_slurp_extended_name_table): Localize variables. Check
+ name size against file size.
+
+2020-02-26 Alan Modra <amodra@gmail.com>
+
+ * vms-lib.c (vms_lib_read_index): Release correct buffer.
+
+2020-02-26 Alan Modra <amodra@gmail.com>
+
+ * elf32-rx.c (rx_elf_relocate_section): Use bfd_malloc rather than
+ malloc. Check for NULL return from bfd_malloc.
+ (rx_table_find, rx_table_map): Likewise.
+ (rx_set_section_contents): Check bfd_alloc return.
+ (rx_dump_symtab): Don't alloc internal_syms or external_syms.
+
+2020-02-26 Alan Modra <amodra@gmail.com>
+
+ * aoutx.h: Indent labels correctly. Format error strings.
+ * archive.c: Likewise.
+ * archive64.c: Likewise.
+ * coff-arm.c: Likewise.
+ * coff-rs6000.c: Likewise.
+ * coff-stgo32.c: Likewise.
+ * cpu-arm.c: Likewise.
+ * dwarf2.c: Likewise.
+ * elf-ifunc.c: Likewise.
+ * elf-properties.c: Likewise.
+ * elf-s390-common.c: Likewise.
+ * elf-strtab.c: Likewise.
+ * elf.c: Likewise.
+ * elf32-arm.c: Likewise.
+ * elf32-bfin.c: Likewise.
+ * elf32-cr16.c: Likewise.
+ * elf32-csky.c: Likewise.
+ * elf32-i386.c: Likewise.
+ * elf32-m68k.c: Likewise.
+ * elf32-msp430.c: Likewise.
+ * elf32-nds32.c: Likewise.
+ * elf32-nios2.c: Likewise.
+ * elf32-pru.c: Likewise.
+ * elf32-xtensa.c: Likewise.
+ * elf64-ia64-vms.c: Likewise.
+ * elf64-x86-64.c: Likewise.
+ * elfcode.h: Likewise.
+ * elfcore.h: Likewise.
+ * elflink.c: Likewise.
+ * elfnn-aarch64.c: Likewise.
+ * elfnn-ia64.c: Likewise.
+ * elfnn-riscv.c: Likewise.
+ * elfxx-mips.c: Likewise.
+ * elfxx-sparc.c: Likewise.
+ * elfxx-x86.c: Likewise.
+ * i386lynx.c: Likewise.
+ * merge.c: Likewise.
+ * pdp11.c: Likewise.
+ * plugin.c: Likewise.
+ * reloc.c: Likewise.
+
+2020-02-26 Alan Modra <amodra@gmail.com>
+
+ PR 25593
+ * elf-bfd.h (struct elf_link_hash_table): Rename "loaded" to
+ "dyn_loaded".
+ (bfd_elf_add_dt_needed_tag): Declare.
+ * elf-strtab.c (_bfd_elf_strtab_restore): Handle NULL buf.
+ * elflink.c (bfd_elf_add_dt_needed_tag): Make global and rename
+ from elf_add_dt_needed_tag. Remove soname and doit param.
+ (elf_link_add_object_symbols): Don't use elf_add_dt_needed_tag
+ to see whether as-needed lib is already loaded, use dyn_loaded
+ list instead. When saving and restoring around as-needed lib
+ handle possibility that dynstr has not been initialised. Don't
+ add DT_NEEDED tags here. Limit dyn_loaded list to dynamic libs.
+ Mark libs loaded via DT_NEEDED entries of other libs with
+ DYN_NO_NEEDED if they should not be mentioned in DT_NEEDED of
+ the output.
+ (elf_link_check_versioned_symbol): Remove now unneccesary
+ DYNAMIC check when traversing dyn_loaded list.
+
+2020-02-26 Alan Modra <amodra@gmail.com>
+
+ * bfdio.c (bfd_get_file_size): Ignore bogus archive element sizes.
+
+2020-02-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/25584
+ * plugin.c (need_lto_wrapper_p): New.
+ (bfd_plugin_set_program_name): Add an int argument to set
+ need_lto_wrapper_p.
+ (get_lto_wrapper): Return FALSE if need_lto_wrapper_p isn't
+ set.
+ * plugin.h (bfd_plugin_set_program_name): Add an int argument.
+
+2020-02-24 Alan Modra <amodra@gmail.com>
+
+ * vms-lib.c (_bfd_vms_lib_archive_p): Correct overflow checks.
+
+2020-02-24 Alan Modra <amodra@gmail.com>
+
+ * vms-lib.c (struct carsym_mem): Add limit.
+ (vms_add_index): Heed limit.
+ (vms_traverse_index): Catch buffer overflows. Remove outdated fixme.
+ (vms_lib_read_index): Set up limit. Catch 32-bit overflow.
+ Always return actual number read.
+ (_bfd_vms_lib_archive_p): Catch buffer overflows. Replace
+ assertion with error exit.
+
+2020-02-22 Alan Modra <amodra@gmail.com>
+
+ PR 25585
+ * elf.c (assign_file_positions_for_load_sections): Continue linking
+ on "PHDR segment not covered by LOAD segment" errors.
+
+2020-02-21 Alan Modra <amodra@gmail.com>
+
+ * mach-o.c (bfd_mach_o_canonicalize_relocs): Fix ineffective
+ overflow check.
+ (bfd_mach_o_canonicalize_reloc): Likewise.
+ (bfd_mach_o_canonicalize_dynamic_reloc): Likewise. Sanity check
+ counts and offsets against file size.
+ (bfd_mach_o_build_dysymtab): Fix ineffective overflow check.
+ (bfd_mach_o_mangle_sections): Remove unnecessary overflow check.
+ (bfd_mach_o_read_symtab_symbols): Sanity check count and offset
+ against file size. Delete symbol table error message.
+ (bfd_mach_o_read_dysymtab): Sanity check counts and offsets
+ against file size.
+ (bfd_mach_o_read_symtab): Likewise.
+ (bfd_mach_o_read_command): Pass file size.
+ (bfd_mach_o_scan): Sanity check command count against file size.
+
+2020-02-21 Alan Modra <amodra@gmail.com>
+
+ PR 25569
+ * aoutx.h (adjust_o_magic, adjust_z_magic, adjust_n_magic): Use
+ "text", "data" and "bss" section pointer vars. Don't update
+ section size, just exec header sizes.
+ (adjust_sizes_and_vmas): Don't update text section size. Set
+ initial exec header a_text. Print exec headers sizes.
+ * pdp11.c (adjust_o_magic, adjust_z_magic, adjust_n_magic),
+ (adjust_sizes_and_vmas): Similarly. Formatting.
+ (final_link): Correct final file extension.
+
+2020-02-20 Nick Clifton <nickc@redhat.com>
+
+ * elf-bfd.h (struct elf_backend_data): Add symbol_section_index
+ callback.
+ * elfxx-target.h (elf_backend_symbol_section_index): Provide
+ default definition.
+ (elfNN_bed): Initialise the symbol_section_index field.
+ * elf.c (swap_out_syms): Call symbol_section_index, if defined, on
+ OS and PROC specific section indicies. Warn if converting other
+ reserved incidies to SHN_ABS.
+
+2020-02-19 Sergey Belyashov <sergey.belyashov@gmail.com>
+
+ PR 25537
+ * cpu-z80.c: Add machine type compatibility checking.
+
+2020-02-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/25355
+ * plugin.c (plugin_list_entry): Remove handle.
+ (try_load_plugin): Call dlclose before return.
+
+2020-02-19 Alan Modra <amodra@gmail.com>
+
+ * libbfd-in.h (_bfd_constant_p): Define.
+ (_bfd_alloc_and_read, _bfd_malloc_and_read): Check read size against
+ file size before allocating memory.
+ * coffgen.c (_bfd_coff_get_external_symbols): Remove file size check.
+ * elf.c (bfd_elf_get_str_section): Likewise.
+ (_bfd_elf_slurp_version_tables): Likewise.
+ * libbfd.h: Regenerate.
+
+2020-02-19 Alan Modra <amodra@gmail.com>
+
+ * libbfd-in.h (_bfd_alloc_and_read, _bfd_malloc_and_read): New.
+ * aoutx.h (aout_get_external_symbols): Replace calls to
+ bfd_[m]alloc and bfd_bread with call to _bfd_[m]alloc_and_read.
+ (slurp_reloc_table): Likewise.
+ * archive.c (do_slurp_bsd_armap): Likewise.
+ (do_slurp_coff_armap): Likewise.
+ * archive64.c (_bfd_archive_64_bit_slurp_armap): Likewise.
+ * coff-rs6000.c (_bfd_xcoff_slurp_armap): Likewise.
+ * coff64-rs6000.c (xcoff64_slurp_armap): Likewise.
+ * coffcode.h (coff_set_arch_mach_hook, buy_and_read): Likewise.
+ * coffgen.c (coff_real_object_p, coff_object_p, build_debug_section),
+ (_bfd_coff_get_external_symbols): Likewise.
+ * ecoff.c (ecoff_slurp_symbolic_header),
+ (_bfd_ecoff_slurp_symbolic_info, ecoff_slurp_reloc_table),
+ (_bfd_ecoff_slurp_armap, ecoff_link_add_object_symbols, READ),
+ (ecoff_indirect_link_order): Likewise.
+ * elf.c (bfd_elf_get_str_section, setup_group, elf_read_notes),
+ (_bfd_elf_slurp_version_tables): Likewise.
+ * elf32-m32c.c (m32c_elf_relax_section): Likewise.
+ * elf32-rl78.c (rl78_elf_relax_section): Likewise.
+ * elf32-rx.c (elf32_rx_relax_section): Likewise.
+ * elf64-alpha.c (READ): Likewise.
+ * elf64-mips.c (mips_elf64_slurp_one_reloc_table): Likewise.
+ * elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Likewise.
+ * elfcode.h (elf_slurp_symbol_table),
+ (elf_slurp_reloc_table_from_section): Likewise.
+ * elflink.c (elf_link_add_object_symbols),
+ (elf_link_check_versioned_symbol): Likewise.
+ * elfxx-mips.c (READ): Likewise.
+ * i386lynx.c (slurp_reloc_table): Likewise.
+ * lynx-core.c (lynx_core_file_p): Likewise.
+ * mach-o.c (bfd_mach_o_canonicalize_relocs),
+ (bfd_mach_o_read_symtab_strtab, bfd_mach_o_alloc_and_read),
+ (bfd_mach_o_read_prebound_dylib, bfd_mach_o_read_dyld_content
+ * pdp11.c (aout_get_external_symbols, slurp_reloc_table
+ * pef.c (bfd_pef_print_loader_section, bfd_pef_scan_start_address),
+ (bfd_pef_parse_symbols): Likewise.
+ * peicode.h (pe_ILF_object_p, pe_bfd_object_p
+ * som.c (setup_sections, som_slurp_string_table),
+ (som_slurp_reloc_table, som_bfd_count_ar_symbols),
+ (som_bfd_fill_in_ar_symbols): Likewise.
+ * vms-alpha.c (module_find_nearest_line, evax_bfd_print_dst),
+ (evax_bfd_print_image): Likewise.
+ * vms-lib.c (_bfd_vms_lib_archive_p): Likewise.
+ * wasm-module.c (wasm_scan): Likewise.
+ * xcofflink.c (xcoff_link_add_symbols): Likewise.
+ * xsym.c (bfd_sym_read_name_table),
+ (bfd_sym_print_type_information_table_entry): Likewise.
+ * libbfd.h: Regenerate.
+
+2020-02-19 Alan Modra <amodra@gmail.com>
+
+ * aoutx.h (slurp_reloc_table): Allocate reloc_cache after
+ reading external relocs.
+ * ecoff.c (ecoff_slurp_reloc_table): Likewise.
+ * archive.c (_bfd_write_archive_contents): Don't twiddle bfd_error
+ after bfd_bread.
+ * archive64.c (_bfd_archive_64_bit_slurp_armap): Remove unnecessary
+ bfd_release.
+ * elf32-m32c.c (m32c_offset_for_reloc): Make shndx_buf a bfd_byte*.
+ (m32c_elf_relax_section): Likewise.
+ * elf32-rl78.c (rl78_offset_for_reloc): Likewise.
+ (rl78_elf_relax_section): Likewise.
+ * elf32-rx.c (rx_offset_for_reloc): Likewise.
+ (elf32_rx_relax_section): Likewise.
+ * mach-o.c (bfd_mach_o_alloc_and_read): Move earlier with better
+ parameter types and use..
+ (bfd_mach_o_read_dylinker, bfd_mach_o_read_dylib),
+ (bfd_mach_o_read_fvmlib, bfd_mach_o_read_str): ..in these functions.
+ * peicode.h (pe_bfd_object_p): Don't zero the part of opthdr
+ being read from file, just the extra.
+ * som.c (som_slurp_symbol_table): Allocate internal symbol buffer
+ after reading external syms. Free on failure.
+
+2020-02-19 Alan Modra <amodra@gmail.com>
+
+ * coffcode.h (buy_and_read, coff_slurp_line_table),
+ (coff_slurp_symbol_table, coff_slurp_reloc_table): Replace
+ bfd_[z][m]alloc2 calls with _bfd_mul_overflow followed by the
+ corresponding bfd_alloc call. Adjust variables to suit.
+ * coffgen.c (_bfd_coff_get_external_symbols): Likewise.
+ * ecoff.c (_bfd_ecoff_slurp_symbolic_info),
+ (_bfd_ecoff_slurp_symbol_table, READ): Likewise.
+ * elf.c (bfd_elf_get_elf_syms, setup_group, bfd_section_from_shdr),
+ (swap_out_syms, _bfd_elf_slurp_version_tables): Likewise.
+ * elf32-m32c.c (m32c_elf_relax_section): Likewise.
+ * elf32-rl78.c (rl78_elf_relax_section): Likewise.
+ * elf32-rx.c (elf32_rx_relax_section): Likewise.
+ * elf64-alpha.c (READ): Likewise.
+ * elfcode.h (elf_object_p, elf_write_relocs, elf_write_shdrs_and_ehdr),
+ (elf_slurp_symbol_table, elf_slurp_reloc_table),
+ (bfd_from_remote_memory): Likewise.
+ * elfcore.h (core_find_build_id): Likewise.
+ * elfxx-mips.c (READ): Likewise.
+ * mach-o.c (bfd_mach_o_mangle_sections),
+ (bfd_mach_o_read_symtab_symbols, bfd_mach_o_read_thread),
+ (bfd_mach_o_read_dysymtab, bfd_mach_o_flatten_sections),
+ (bfd_mach_o_scan, bfd_mach_o_fat_archive_p): Likewise.
+ * som.c (setup_sections, som_prep_for_fixups)
+ (som_build_and_write_symbol_table, som_slurp_symbol_table),
+ (som_slurp_reloc_table, som_bfd_count_ar_symbols),
+ (som_bfd_fill_in_ar_symbols, som_slurp_armap),
+ (som_bfd_ar_write_symbol_stuff): Likewise.
+ * vms-alpha.c (vector_grow1): Likewise.
+ * vms-lib.c (vms_add_index): Likewise.
+ * wasm-module.c (wasm_scan_name_function_section): Likewise.
+ * libbfd.c (bfd_malloc2, bfd_realloc2, bfd_zmalloc2): Delete.
+ * opncls.c (bfd_alloc2, bfd_zalloc2): Delete.
+ * libbfd-in.h (bfd_malloc2, bfd_realloc2, bfd_zmalloc2),
+ (bfd_alloc2, bfd_zalloc2): Delete.
+ (_bfd_mul_overflow): Define.
+ * libbfd.h: Regenerate.
+
+2020-02-19 Alan Modra <amodra@gmail.com>
+
+ * elf.c (bfd_section_from_shdr): Use bfd_zalloc rather than
+ bfd_zalloc2.
+ (assign_section_numbers): Likewise.
+ (elf_map_symbols): Likewise, and bfd_alloc rather than bfd_alloc2.
+ (_bfd_elf_map_sections_to_segments): Use bfd_malloc rather than
+ bfd_malloc2, size_t amt, and unsigned tls_count.
+ (rewrite_elf_program_header): Use bfd_malloc and size_t amt.
+ * elflink.c (elf_create_symbuf): Use bfd_malloc.
+ (elf_output_implib): Use bfd_alloc.
+
+2020-02-19 Alan Modra <amodra@gmail.com>
+
+ * bfd.c (struct bfd): Move format and direction to other
+ bitfields. Add "size".
+ * bfdio.c (bfd_get_size): Cache size when not writing file.
+ * opncls.c (bfd_get_debug_link_info_1): Allow for bfd_get_size
+ returning zero, ie. unknown.
+ (bfd_get_alt_debug_link_info): Likewise.
+ * bfd-in2.h: Regenerate.
+
+2020-02-19 Alan Modra <amodra@gmail.com>
+
+ * coffgen.c (_bfd_coff_get_external_symbols): Don't call
+ bfd_get_file_size twice.
+ (_bfd_coff_read_string_table): Allow for bfd_get_file_size
+ zero, ie. unknown, return.
+ * elf-attrs.c (_bfd_elf_parse_attributes): Likewise.
+ * elfcode.h (elf_swap_shdr_in): Likewise.
+ (elf_object_p): Don't call bfd_get_file_size twice and correct
+ file size check.
+
+2020-02-19 Alan Modra <amodra@gmail.com>
+
+ * mach-o.c (bfd_mach_o_flatten_sections): Return a bfd_boolean,
+ FALSE if memory alloc fails. Adjust calls.
+ * som.c (som_prep_for_fixups): Likewise.
+ * vms-alpha.c (alpha_vms_add_fixup_lp, alpha_vms_add_fixup_ca),
+ (alpha_vms_add_fixup_qr, alpha_vms_add_fixup_lr),
+ (alpha_vms_add_lw_reloc, alpha_vms_add_qw_reloc): Likewise.
+ * som.c (som_build_and_write_symbol_table): Return via error_return
+ on seek failure.
+ * vms-alpha.c (VEC_APPEND): Adjust for vector_grow1 changes.
+ (VEC_APPEND_EL): Delete.
+ (vector_grow1): Return pointer to element. Catch overflow.
+ Return NULL on memory allocation failure.
+ (alpha_vms_add_fixup_lp): Replace VEC_APPEND_EL with VEC_APPEND.
+ (alpha_vms_add_fixup_ca): Likewise.
+ (alpha_vms_link_add_object_symbols): Check VEC_APPEND result
+ before using.
+ * elf.c (bfd_section_from_shdr): Check bfd_zalloc2 result.
+
+2020-02-19 Alan Modra <amodra@gmail.com>
+
+ * aix386-core.c (aix386_core_file_p): Use size_t for "amt".
+ * aout-target.h (object_p): Likewise.
+ * aout-tic30.c (tic30_aout_object_p): Likewise.
+ * aoutx.h (some_aout_object_p, mkobject, make_empty_symbol),
+ (emit_stringtab, write_syms, link_hash_table_create),
+ (aout_link_write_other_symbol): Likewise.
+ * archive.c (_bfd_generic_mkarchive, bfd_generic_archive_p),
+ (bfd_ar_hdr_from_filesystem, _bfd_write_archive_contents),
+ (_bfd_compute_and_write_armap): Likewise.
+ * archures.c (bfd_arch_list): Likewise.
+ * bfd.c (bfd_record_phdr): Likewise.
+ * binary.c (binary_canonicalize_symtab): Likewise.
+ * cisco-core.c (cisco_core_file_validate): Likewise.
+ * coff-arm.c (coff_arm_link_hash_table_create, find_thumb_glue),
+ (find_arm_glue, record_arm_to_thumb_glue),
+ (record_thumb_to_arm_glue): Likewise.
+ * coff-ppc.c (ppc_coff_link_hash_table_create, record_toc),
+ (ppc_allocate_toc_section): Likewise.
+ * coff-rs6000.c (_bfd_xcoff_mkobject, _bfd_xcoff_archive_p): Likewise.
+ * coff-sh.c (sh_relax_section): Likewise.
+ * coff64-rs6000.c (xcoff64_archive_p): Likewise.
+ * coffcode.h (handle_COMDAT, coff_new_section_hook),
+ (coff_set_alignment_hook, coff_mkobject),
+ (coff_compute_section_file_positions): Likewise.
+ * coffgen.c (coff_make_empty_symbol, coff_bfd_make_debug_symbol),
+ (coff_find_nearest_line_with_names),
+ ( bfd_coff_set_symbol_class): Likewise.
+ * cofflink.c (_bfd_coff_link_hash_table_create),
+ (_bfd_coff_link_input_bfd): Likewise.
+ * dwarf1.c (alloc_dwarf1_unit, alloc_dwarf1_func): Likewise.
+ * dwarf2.c (read_abbrevs, read_attribute_value, add_line_info),
+ (build_line_info_table, sort_line_sequences),
+ (line_info_add_include_dir, line_info_add_file_name),
+ (decode_line_info, scan_unit_for_symbols, parse_comp_unit),
+ (place_sections, _bfd_dwarf2_slurp_debug_info): Likewise.
+ * ecoff.c (_bfd_ecoff_mkobject, _bfd_ecoff_make_empty_symbol),
+ (_bfd_ecoff_find_nearest_line),
+ (_bfd_ecoff_bfd_link_hash_table_create): Likewise.
+ * ecofflink.c (bfd_ecoff_debug_init): Likewise.
+ * elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): Likewise.
+ * elf-m10300.c (mn10300_elf_relax_section),
+ (elf32_mn10300_link_hash_table_create): Likewise.
+ * elf-strtab.c (_bfd_elf_strtab_init): Likewise.
+ * elf.c (make_mapping, copy_elf_program_header): Likewise.
+ * elf32-arm.c (elf32_arm_link_hash_table_create),
+ (elf32_arm_setup_section_lists, elf32_arm_check_relocs),
+ (elf32_arm_new_section_hook): Likewise.
+ * elf32-avr.c (elf_avr_new_section_hook),
+ (elf32_avr_link_hash_table_create, get_local_syms),
+ (elf32_avr_setup_section_lists): Likewise.
+ * elf32-bfin.c (bfinfdpic_elf_link_hash_table_create),
+ (bfin_link_hash_table_create): Likewise.
+ * elf32-cr16.c (elf32_cr16_link_hash_table_create): Likewise.
+ * elf32-cris.c (elf_cris_link_hash_table_create): Likewise.
+ * elf32-csky.c (csky_elf_link_hash_table_create),
+ (csky_elf_check_relocs, elf32_csky_setup_section_lists): Likewise.
+ * elf32-frv.c (frvfdpic_elf_link_hash_table_create): Likewise.
+ * elf32-hppa.c (elf32_hppa_link_hash_table_create),
+ (elf32_hppa_setup_section_lists, get_local_syms): Likewise.
+ * elf32-i386.c (elf_i386_check_relocs): Likewise.
+ * elf32-lm32.c (lm32_elf_link_hash_table_create): Likewise.
+ * elf32-m32r.c (m32r_elf_link_hash_table_create),
+ (m32r_elf_check_relocs): Likewise.
+ * elf32-m68hc1x.c (m68hc11_elf_hash_table_create),
+ (elf32_m68hc11_setup_section_lists),
+ (elf32_m68hc11_size_stubs): Likewise.
+ * elf32-m68k.c (elf_m68k_link_hash_table_create): Likewise.
+ * elf32-metag.c (elf_metag_link_hash_table_create),
+ (elf_metag_setup_section_lists): Likewise.
+ * elf32-microblaze.c (microblaze_elf_link_hash_table_create),
+ (microblaze_elf_check_relocs): Likewise.
+ * elf32-nds32.c (nds32_elf_link_hash_table_create),
+ (nds32_elf_check_relocs): Likewise.
+ * elf32-nios2.c (nios2_elf32_setup_section_lists),
+ (get_local_syms, nios2_elf32_check_relocs),
+ (nios2_elf32_link_hash_table_create): Likewise.
+ * elf32-or1k.c (or1k_elf_link_hash_table_create),
+ (or1k_elf_check_relocs): Likewise.
+ * elf32-ppc.c (ppc_elf_modify_segment_map, update_plt_info): Likewise.
+ * elf32-pru.c (pru_elf32_link_hash_table_create): Likewise.
+ * elf32-s390.c (elf_s390_link_hash_table_create),
+ (elf_s390_check_relocs): Likewise.
+ * elf32-score.c (score_elf_create_got_section),
+ (s3_elf32_score_new_section_hook),
+ (elf32_score_link_hash_table_create): Likewise.
+ * elf32-score7.c (score_elf_create_got_section),
+ (s7_elf32_score_new_section_hook): Likewise.
+ * elf32-sh.c (sh_elf_link_hash_table_create),
+ (sh_elf_check_relocs): Likewise.
+ * elf32-tic6x.c (elf32_tic6x_link_hash_table_create),
+ (elf32_tic6x_new_section_hook, elf32_tic6x_check_relocs): Likewise.
+ * elf32-tilepro.c (tilepro_elf_link_hash_table_create),
+ (tilepro_elf_check_relocs): Likewise.
+ * elf32-v850.c (remember_hi16s_reloc): Likewise.
+ * elf32-vax.c (elf_vax_link_hash_table_create): Likewise.
+ * elf32-xtensa.c (elf_xtensa_link_hash_table_create),
+ (elf_xtensa_new_section_hook): Likewise.
+ * elf64-alpha.c (elf64_alpha_bfd_link_hash_table_create),
+ (get_got_entry, elf64_alpha_check_relocs): Likewise.
+ * elf64-hppa.c (elf64_hppa_hash_table_create): Likewise.
+ * elf64-ia64-vms.c (elf64_ia64_object_p): Likewise.
+ * elf64-mmix.c (mmix_elf_new_section_hook): Likewise.
+ * elf64-ppc.c (ppc64_elf_new_section_hook),
+ (ppc64_elf_link_hash_table_create, update_local_sym_info),
+ (update_plt_info, ppc64_elf_check_relocs): Likewise.
+ * elf64-s390.c (elf_s390_link_hash_table_create),
+ (elf_s390_check_relocs): Likewise.
+ * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+ * elflink.c (bfd_elf_link_record_local_dynamic_symbol),
+ (_bfd_elf_link_find_version_dependencies, elf_link_add_object_symbols),
+ (elf_link_add_archive_symbols, compute_bucket_count),
+ (bfd_elf_size_dynsym_hash_dynstr, _bfd_elf_link_hash_table_create),
+ (bfd_elf_get_bfd_needed_list, elf_link_swap_symbols_out),
+ (bfd_elf_final_link): Likewise.
+ * elfnn-aarch64.c (elfNN_aarch64_link_hash_table_create),
+ (elfNN_aarch64_setup_section_lists, elfNN_aarch64_check_relocs),
+ (elfNN_aarch64_new_section_hook): Likewise.
+ * elfnn-ia64.c (elfNN_ia64_object_p): Likewise.
+ * elfnn-riscv.c (riscv_elf_link_hash_table_create),
+ (riscv_elf_check_relocs): Likewise.
+ * elfxx-mips.c (_bfd_mips_elf_new_section_hook),
+ (_bfd_mips_elf_add_symbol_hook, _bfd_mips_elf_check_relocs),
+ (_bfd_mips_elf_modify_segment_map, _bfd_mips_elf_set_section_contents),
+ (_bfd_mips_elf_link_hash_table_create): Likewise.
+ * elfxx-sparc.c (_bfd_sparc_elf_link_hash_table_create),
+ (_bfd_sparc_elf_check_relocs),
+ (_bfd_sparc_elf_new_section_hook): Likewise.
+ * elfxx-tilegx.c (tilegx_elf_link_hash_table_create),
+ (tilegx_elf_check_relocs): Likewise.
+ * elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Likewise.
+ * format.c (bfd_check_format_matches): Likewise.
+ * hash.c (_bfd_stringtab_init): Likewise.
+ * ihex.c (ihex_scan): Likewise.
+ * irix-core.c (irix_core_core_file_p): Likewise.
+ * linker.c (bfd_wrapped_link_hash_lookup),
+ (_bfd_generic_link_hash_table_create),
+ (_bfd_generic_reloc_link_order): Likewise.
+ * lynx-core.c (lynx_core_file_p): Likewise.
+ * netbsd-core.c (netbsd_core_file_p): Likewise.
+ * osf-core.c (osf_core_core_file_p): Likewise.
+ * pdp11.c (some_aout_object_p, mkobject, make_empty_symbol),
+ (link_hash_table_create, aout_link_write_other_symbol): Likewise.
+ * peXXigen.c (_bfd_XX_bfd_copy_private_section_data): Likewise.
+ * peicode.h (pe_mkobject): Likewise.
+ * ppcboot.c (ppcboot_mkobject, ppcboot_canonicalize_symtab): Likewise.
+ * ptrace-core.c (ptrace_unix_core_file_p): Likewise.
+ * sco5-core.c (read_uarea): Likewise.
+ * som.c (hppa_som_gen_reloc_type, som_object_p, som_prep_headers),
+ (som_write_fixups, som_write_space_strings, som_write_symbol_strings),
+ (som_finish_writing, som_canonicalize_symtab, som_new_section_hook),
+ (som_bfd_copy_private_section_data, bfd_som_set_section_attributes),
+ (bfd_som_attach_aux_hdr, som_write_armap): Likewise.
+ * srec.c (srec_scan): Likewise.
+ * syms.c (_bfd_generic_make_empty_symbol): Likewise.
+ * targets.c (bfd_target_list): Likewise.
+ * tekhex.c (first_phase, tekhex_sizeof_headers): Likewise.
+ * trad-core.c (trad_unix_core_file_p): Likewise.
+ * vms-alpha.c (vms_initialize, alpha_vms_bfd_link_hash_table_create),
+ (vms_new_section_hook): Likewise.
+ * wasm-module.c (wasm_make_empty_symbol): Likewise.
+ * xcofflink.c (xcoff_get_section_contents),
+ (_bfd_xcoff_bfd_link_hash_table_create, xcoff_set_import_path),
+ (xcoff_find_function, bfd_xcoff_link_record_set, xcoff_build_ldsym),
+ (bfd_xcoff_size_dynamic_sections, xcoff_link_input_bfd): Likewise.
+
+2020-02-19 Alan Modra <amodra@gmail.com>
+
+ * elfxx-riscv.c (riscv_multi_letter_ext_valid_p): Don't use C99.
+
+2020-02-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * plugin.c (try_load_plugin): Make plugin_list_iter an argument
+ and use it if it isn't NULL. Remove has_plugin_p argument. Add
+ a build_list_p argument. Don't search plugin_list. Short circuit
+ when building the plugin list.
+ (has_plugin): Renamed to has_plugin_list.
+ (bfd_plugin_set_plugin): Don't set has_plugin.
+ (bfd_plugin_specified_p): Check plugin_list instead.
+ (build_plugin_list): New function.
+ (load_plugin): Call build_plugin_list and use plugin_list.
+
+2020-02-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/25355
+ * plugin.c (try_claim): Always clean up for LTO wrapper.
+ (try_load_plugin): Treat each object as independent. Create a
+ copy for plugin name.
+
+2020-02-11 Nick Clifton <nickc@redhat.com>
+
+ * elf32-msp430.c (msp430_final_link_relocate): Always use longs
+ for addresses in print statements.
+ (msp430_elf_relax_delete_bytes): Likewise.
+ (msp430_elf_relax_add_words): Likewise.
+ (msp430_elf_relax_section): Likewise.
+
+2020-02-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * plugin.c (add_symbols): Clear plugin_data memory.
+
+2020-02-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/25355
+ * configure.ac (HAVE_EXECUTABLE_SUFFIX): New AC_DEFINE.
+ (EXECUTABLE_SUFFIX): Likewise.
+ * config.in: Regenerated.
+ * configure: Likewise.
+ * plugin.c (bfd_plugin_close_and_cleanup): Removed.
+ (plugin_list_entry): Add all_symbols_read, cleanup_handler,
+ gcc, lto_wrapper, resolution_file, resolution_option, gcc_env,
+ real_bfd, real_nsyms, real_syms, lto_nsyms and lto_syms.
+ (get_lto_wrapper): New.
+ (setup_lto_wrapper_env): Likewise.
+ (current_plugin): Likewise.
+ (register_all_symbols_read): Likewise.
+ (register_cleanup): Likewise.
+ (get_symbols): Likewise.
+ (add_input_file): Likewise.
+ (bfd_plugin_close_and_cleanup): Likewise.
+ (claim_file): Removed.
+ (register_claim_file): Set current_plugin->claim_file.
+ (add_symbols): Make a copy of LTO symbols. Set lto_nsyms and
+ lto_syms in current_plugin.
+ (try_claim): Use current_plugin->claim_file. Call LTO plugin
+ all_symbols_read handler. Copy real symbols to plugin_data.
+ Call LTO plugin cleanup handler. Clean up for LTO wrapper.
+ (try_load_plugin): Don't reuse the previous plugin for LTO
+ wrapper. Set up GCC LTO wrapper if possible. Don't set
+ plugin_list_iter->claim_file.
+ (bfd_plugin_canonicalize_symtab): Use real LTO symbols if
+ possible.
+ * plugin.h (plugin_data_struct): Add real_bfd, real_nsyms and
+ real_syms.
+
+2020-02-10 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * elf32-msp430.c (msp430_elf_relax_section): Before relaxing a branch,
+ check if previous instruction matches a conditional jump inserted
+ earlier. Invert conditional jump and delete branch in this case.
+
+2020-02-10 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * elf32-msp430.c (msp430_elf_relax_add_two_words): Rename to
+ msp430_elf_relax_add_words. Support insertion of either one or two
+ words.
+ (msp430_elf_relax_section): Catch opcode of 0x3c00 when relocation
+ needs to be grown. Handle insertion of branch instruction to replace
+ jump.
+
+2020-02-10 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * elf32-msp430.c (msp430_final_link_relocate): Add printf statements for
+ debugging relocations.
+ (msp430_elf_relax_delete_bytes): Likewise.
+ (msp430_elf_relax_add_two_words): Likewise.
+ (msp430_elf_relax_section): Likewise.
+
+2020-02-10 Alan Modra <amodra@gmail.com>
+
+ * archures.c: Wrap overlong z80 comments.
+ * bfd-in2.h: Regenerate.
+
+2020-02-07 Sergey Belyashov <sergey.belyashov@gmail.com>
+
+ PR 25469
+ * archures.c: Add GBZ80 and Z80N machine values.
+ * reloc.c: Add BFD_RELOC_Z80_16_BE.
+ * coff-z80.c: Add support for new reloc.
+ * coffcode.h: Add support for new machine values.
+ * cpu-z80.c: Add support for new machine names.
+ * elf32-z80.c: Add support for new reloc.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+
+2020-02-07 Nick Clifton <nickc@redhat.com>
+
+ PR 23932
+ * elf.c (rewrite_elf_program_header): Do not complain if no
+ sections are mapped to a segment.
+
+2020-02-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/25490
+ * elflink.c (_bfd_elf_gc_mark_extra_sections): Issue an error
+ for garbage collection on __patchable_function_entries section
+ without linked-to section.
+
+2020-02-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gas/25381
+ * bfd-in2.h: Regenerated.
+ * elflink.c (_bfd_elf_gc_mark_extra_sections): Call mark_hook
+ on section if gc_mark of any of its linked-to sections is set
+ and don't set gc_mark again.
+ * section.c (asection): Add linked_to_symbol_name to map_head
+ union.
+
+2020-02-06 Maciej W. Rozycki <macro@wdc.com>
+
+ * elf32-v850.c (v850_elf_relax_section): Fix the index used for
+ reporting an unrecognized instruction with R_V850_LONGJUMP.
+
+2020-02-05 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc_stub_plt_branch): Match comment with reality.
+
+2020-02-04 Alan Modra <amodra@gmail.com>
+
+ * elf32-ppc.c (ppc_elf_relocate_section): After applying
+ R_PPC_VLE_ADDR20, goto copy_reloc.
+
+2020-02-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * bfd-in2.h: Regenerated.
+ * section.c (SEC_ASSEMBLER_SECTION_ID): Fix a typo in comments.
+
+2020-02-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gas/25380
+ * bfd-in2.h: Regenerated.
+ * ecoff.c (bfd_debug_section): Add section_id.
+ * section.c (bfd_section): Add section_id.
+ (SEC_ASSEMBLER_SECTION_ID): New.
+ (BFD_FAKE_SECTION): Add section_id.
+
+2020-02-01 Nick Clifton <nickc@redhat.com>
+
+ * config.bfd: Move the c30-aout and tic30-aout targets onto the
+ obsolete list.
+
+2020-01-31 Sandra Loosemore <sandra@codesourcery.com>
+
+ * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): DW_EH_PE_datarel
+ encodings are relative to the GOT on nios2, too.
+
+2020-01-31 Alan Modra <amodra@gmail.com>
+
+ * Makefile.am (elf32-target.h, elf64-target.h): Don't use a temp
+ file. Use $< and $@ in rules.
+ (elf32-aarch64.c, elf64-aarch64.c): Likewise.
+ (elf32-ia64.c, elf64-ia64.c): Likewise.
+ (elf32-riscv.c, elf64-riscv.c): Likewise.
+ (peigen.c, pepigen.c, pex64igen.c): Likewise.
+ (elf32-aarch64.c, elf64-aarch64.c): Don't emit $srcdir on #line.
+ (elf32-riscv.c, elf64-riscv.c): Likewise, and use $(SED).
+ (elf32-ia64.c, elf64-ia64.c): Do emit #line.
+ (peigen.c, pepigen.c, pex64igen.c): Likewise.
+ * Makefile.in: Regenerate.
+
+2020-01-31 Alan Modra <amodra@gmail.com>
+
+ PR 4110
+ * elf.c (setup_group): Don't clear entire section contents,
+ just the padding after group flags. Release alloc'd memory
+ after a seek or read failure.
+
+2020-01-16 Jon Turney <jon.turney@dronecode.org.uk>
+
+ * peXXigen.c (pe_is_repro): New function.
+ (_bfd_XX_print_private_bfd_data_common): Note timestamp is
+ actually a build hash if PE_IMAGE_DEBUG_TYPE_REPRO is present.
+
+2020-01-16 Jon Turney <jon.turney@dronecode.org.uk>
+
+ * peXXigen.c (debug_type_names): Add names for new debug data type
+ values.
+
+2020-01-16 Jon Turney <jon.turney@dronecode.org.uk>
+
+ * peXXigen.c (pe_print_debugdata): Fix the iteration variable for
+ inner loop. Fix a memory leak.
+
+2020-01-30 Alan Modra <amodra@gmail.com>
+
+ * coffgen.c (coff_real_object_p): Don't clear obj_coff_keep_syms
+ or obj_coff_keep_strings here.
+ (coff_get_normalized_symtab): Free external syms directly.
+ * xcofflink.c (xcoff_link_input_bfd): Restore obj_coff_keep_syms
+ on error exit path.
+
+2020-01-27 Jim Wilson <jimw@sifive.com>
+
+ * cpu-riscv.c (riscv_scan): New.
+ (N): Change bfd_default_scan to riscv_scan.
+
+2020-01-27 Andreas Schwab <schwab@suse.de>
+
+ * Makefile.am (ALL_MACHINES): Remove cpu-plugin.lo.
+ (ALL_MACHINES_CFILES): Remove cpu-plugin.c.
+ * Makefile.in: Regenerate.
+ * cpu-plugin.c: Remove.
+ * archures.c (enum bfd_architecture): Remove bfd_arch_plugin.
+ (bfd_plugin_arch): Remove declaration.
+ * bfd-in2.h: Regenerate.
+ * po/SRC-POTFILES.in: Regenerate.
+
+2020-01-27 H.J. Lu <hongjiu.lu@intel.com>
+ Alan Modra <amodra@gmail.com>
+
+ PR ld/25458
+ * elflink.c (_bfd_elf_gc_mark_rsec): Mark all weak aliases.
+
+2020-01-24 Jim Wilson <jimw@sifive.com>
+
+ * elfxx-riscv.c (riscv_get_prefix_class): Format s case like others.
+ (riscv_parse_prefixed_ext): Fix s extension comment and reword to
+ avoid over long line.
+
+2020-01-24 Nick Clifton <nickc@redhat.com>
+
+ PR 25447
+ * coffgen.c (_bfd_coff_close_and_cleanup): Do not clear the keep
+ syms and keep strings flags as these may have been set in order to
+ prevent a bogus call to free.
+
+2020-01-23 Nick Clifton <nickc@redhat.com>
+
+ * po/fr.po: Updated French translation.
+
+2020-01-23 Alan Modra <amodra@gmail.com>
+
+ PR 25444
+ * elf.c (assign_file_positions_for_load_sections): Avoid divide
+ by zero when p_align is zero.
+
+2020-01-22 Maxim Blinov <maxim.blinov@embecosm.com>
+
+ * bfd/elfnn-riscv.c (riscv_skip_prefix): New.
+ (riscv_prefix_cmp): Likewise.
+ (riscv_non_std_ext_p): Deleted.
+ (riscv_std_sv_ext_p): Likewise.
+ (riscv_non_std_sv_ext_p): Likewise.
+ (riscv_merge_non_std_and_sv_ext): Rename to...
+ (riscv_merge_multi_letter_ext): and modified to use riscv_prefix_cmp.
+ (riscv_merge_arch_attr_info): Replace 3 calls to
+ riscv_merge_non_std_and_sv_ext with single call to
+ riscv_merge_multi_letter_ext.
+ * bfd/elfxx-riscv.c (riscv_parse_std_ext): Break if we
+ encounter a 'z' prefix.
+ (riscv_get_prefix_class): New function, return prefix class based
+ on first few characters of input string.
+ (riscv_parse_config): New structure to factor out minor differences
+ in extension class parsing behaviour.
+ (riscv_parse_sv_or_non_std_ext): Rename to...
+ (riscv_parse_prefixed_ext): and parameterise with
+ riscv_parse_config.
+ (riscv_std_z_ext_strtab, riscv_std_s_ext_strtab): New.
+ (riscv_multi_letter_ext_valid_p): New.
+ (riscv_ext_x_valid_p, riscv_ext_z_valid_p, riscv_ext_s_valid_p): New.
+ (riscv_parse_subset): Delegate all non-single-letter parsing work
+ to riscv_parse_prefixed_ext.
+ * bfd/elfxx-riscv.h (riscv_isa_ext_class): New type.
+ (riscv_get_prefix_class): Declare.
+
+2020-01-22 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (struct ppc_link_hash_table): Add tga_group.
+ (ppc64_elf_archive_symbol_lookup): Extract __tls_get_addr_opt for
+ __tls_get_addr_desc.
+ (ppc64_elf_size_stubs): Add section for linker generated
+ __tls_get_addr_desc wrapper function. Loop at least once if
+ generating this function.
+ (emit_tga_desc, emit_tga_desc_eh_frame): New functions.
+ (ppc64_elf_build_stubs): Generate __tls_get_addr_desc.
+
+2020-01-22 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.h (struct ppc64_elf_params): Add no_tls_get_addr_regsave.
+ * elf64-ppc.c (struct ppc_link_hash_table): Add tga_desc and
+ tga_desc_fd.
+ (is_tls_get_addr): Match tga_desc and tga_desc_df too.
+ (STDU_R1_0R1, ADDI_R1_R1): Define.
+ (tls_get_addr_prologue, tls_get_addr_epilogue): New functions.
+ (ppc64_elf_tls_setup): Set up tga_desc and tga_desc_fd. Indirect
+ tga_desc_fd to opt_fd, and tga_desc to opt. Set
+ no_tls_get_addr_regsave.
+ (branch_reloc_hash_match): Add hash3 and hash4.
+ (ppc64_elf_tls_optimize): Handle tga_desc_fd and tga_desc too.
+ (ppc64_elf_size_dynamic_sections): Likewise.
+ (ppc64_elf_relocate_section): Likewise.
+ (plt_stub_size, build_plt_stub): Likewise. Size regsave
+ __tls_get_addr stub.
+ (build_tls_get_addr_stub): Build regsave __tls_get_addr stub and
+ eh_frame.
+ (ppc_size_one_stub): Handle tga_desc_fd and tga_desc too. Size
+ eh_frame for regsave __tls_get_addr.
+
+2020-01-22 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_size_stubs): Correct condition under
+ which __tls_get_addr calls will be eliminated.
+
+2020-01-20 Nick Clifton <nickc@redhat.com>
+
+ * po/pt.po: Updates Portuguese translation.
+ * po/ru.po: Updated Russian translation.
+ * po/uk.po: Updated Ukranian translation.
+
2020-01-20 H.J. Lu <hongjiu.lu@intel.com>
PR ld/25416