2020-02-24  Nick Clifton  <nickc@redhat.com>

	PR 25499
	* doc/binutils.texi (objdump): Fix typo in description of
	objdump's -g option.

2020-02-20  Nelson Chu  <nelson.chu@sifive.com>

	* dwarf.c (regname_internal_riscv): Updated since the DECLARE_CSR
	is changed.

2020-02-19  Jordan Rupprecht  <rupprecht@google.com>

	* objdump.c (show_line): call bfd_demangle when using do_demangle.

2020-02-19  Andrew Burgess  <andrew.burgess@embecosm.com>

	* configure: Regenerate.

2020-02-10  Fangrui Song   <maskray@google.com>

	* objcopy.c (parse_flags): Handle "exclude".
	* doc/binutils.texi: Document the support.

2020-02-10  Aaron Merey  <amerey@redhat.com>

	* binutils/testsuite/binutils-all/debuginfod.exp:
	Replace set ::env with setenv.
	Start server before setting environment variable.
	Specify tmpdir as the location of the server's
	database.
	Check additional server metrics at start-up.

2020-02-07  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: Add note about updating the
	GAS/NEWS URL in the next release.

2020-02-07  Sergey Belyashov  <sergey.belyashov@gmail.com>

	PR 25469
	* readelf.c (get_machine_flags): Add support for Z80N machine
	number.

2020-02-07  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (display_debug_lines_decoded): Force a NUL termination
	of the truncated file name.

2020-02-06  Andrew Burgess  <andrew.burgess@embecosm.com>

	* objdump.c (print_jump_visualisation): New function.
	(disassemble_bytes): Call new function.

2020-02-06  Alan Modra  <amodra@gmail.com>

	* testsuite/lib/binutils-common.exp (match_target): Accept '!' before
	TCL procedure.
	(supports_gnu_osabi): New procedure.
	(is_generic): New, from ld-lib.exp.
	(supports_gnu_unique): Use the above.

2020-02-04  Alan Modra  <amodra@gmail.com>

	* Makefile.am (CFILES): Add od-elf32_avr.c.
	* Makefile.in: Regenerate.
	* po/POTFILES.in: Regenerate.

2020-02-03  Andreas Schwab  <schwab@linux-m68k.org>

	* readelf.c (dump_relocations, dump_relocations)
	(decode_arm_unwind_bytecode, process_dynamic_section)
	(get_symbol_visibility, get_alpha_symbol_other): Add newline to
	error message.

2020-02-03  Sergei Trofimovich  <siarheit@google.com>

	* coffdump.c (program_name): Drop redundant definition.
	* srconv.c (program_name): Likewise
	* sysdump.c (program_name): Likewise

2020-02-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/25380
	* objdump.c (sym_ok): Return FALSE if 2 sections are in the
	same file with different section pointers.

2020-02-01  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: Update with more details on the
	release making process.

2020-01-31  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.

2020-01-28  Nick Clifton  <nickc@redhat.com>

	* readelf.c (get_build_id): Simplify warning message about corrupt
	notes encountered whilst scanning for the build-id.

2020-01-27  Roland McGrath  <mcgrathr@google.com>

	* objcopy.c (compare_gnu_build_notes): Fix comparison results
	for overlapping ranges so that (A == B) == (B == A) holds.

2020-01-27  Alan Modra  <amodra@gmail.com>

	* testsuite/lib/binutils-common.exp (big_or_little_endian): Replace
	case statement with switch statement.

2020-01-24  Nick Clifton  <nickc@redhat.com>

	* readelf.c (get_build_id): Fix warning messages about corrupt
	notes.

2020-01-23  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Updated French translation.

2020-01-22  Yuri Chornoivan  <yurchor@mageia.org>

	PR 25417
	* readelf.c (get_alpha_symbol_other): Fix error message typo.

2020-01-20  Nick Clifton  <nickc@redhat.com>

	* po/pt.po: Updated Portuguese translation.
	* po/uk.po: Updated Ukranian translation.

2020-01-18  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: Update notes on how to cut a
	branch for a release.

2020-01-18  Nick Clifton  <nickc@redhat.com>

	* configure: Regenerate.
	* po/binutils.pot: Regenerate.

2020-01-18  Nick Clifton  <nickc@redhat.com>

	Binutils 2.34 branch created.

2020-01-17  Thomas Troeger  <tstroege@gmx.de>

	* objdump.c (jump_info_visualize_address): Discard jumps that are
	no longer needed.
	(disassemble_bytes): Only compute the maximum level if jumps were
	detected.

2020-01-13  Nick Clifton  <nickc@redhat.com>

	* objdump.c (disassemble_bytes): Remove C99-ism.
	* testsuite/binutils-all/debuginfod.exp: New tests.

2020-01-13  Thomas Troeger  <tstroege@gmx.de>

	* objdump.c (visualize_jumps, color_output, extended_color_output)
	(detected_jumps): New variables.
	(usage): Add the new jump visualization options.
	(option_values): Add new option value.
	(long_options): Add the new option.
	(jump_info_new, jump_info_free): New functions.
	(jump_info_min_address, jump_info_max_address): Likewise.
	(jump_info_end_address, jump_info_is_start_address): Likewise.
	(jump_info_is_end_address, jump_info_size): Likewise.
	(jump_info_unlink, jump_info_insert): Likewise.
	(jump_info_add_front, jump_info_move_linked): Likewise.
	(jump_info_intersect, jump_info_merge): Likewise.
	(jump_info_sort, jump_info_visualize_address): Likewise.
	(disassemble_jumps): New function - used to locate jumps.
	(disassemble_bytes): Add ascii art generation.
	(disassemble_section): Add scan to locate jumps.
	(main): Parse the new visualization option.
	* doc/binutils.texi: Document the new feature.
	* NEWS: Mention the new feature.

2020-01-13  Alan Modra  <amodra@gmail.com>

	PR 25360
	PR 25361
	* dwarf.c (display_debug_frames): Move fde_fc earlier.  Free
	fde_fc col_type and col_offset.
	* readelf.c (apply_relocations): Move symsec check earlier.
	(free_debug_section): Free reloc_info.
	(process_notes_at): Free pnotes on error path.
	(process_object): Free dump_sects here..
	(process_archive): ..not here.

2020-01-13  Alan Modra  <amodra@gmail.com>

	PR 25362
	* nm.c (display_rel_file): Free dyn_syms.

2020-01-09  Nick Clifton  <nickc@redhat.com>

	PR 25220
	* objcopy.c (empty_name): New variable.
	(need_sym_before): Prevent an attempt to free a static variable.
	(filter_symbols): Avoid strcmp test by checking for pointer
	equality.

2020-01-09  Nick Clifton  <nickc@redhat.com>

	* po/zh_TW.po: Updated Traditional Chinese translation.

2020-01-09  Aaron Merey  <amerey@redhat.com>

        * Makefile.am (readelf_LDADD, objdump_LDADD): Add libdebuginfod.
        * Makefile.in: Regenerate.
        * NEWS: Update.
        * config.in: Regenerate.
        * configure: Regenerate.
        * configure.ac: Call AC_DEBUGINFOD.
        * doc/Makefile.in: Regenerate.
        * doc/binutils.texi: Add section on using binutils
        with debuginfod.
        * dwarf.c (debuginfod_fetch_separate_debug_info): New function.
        Query debuginfod servers for the target debug file.
        (load_separate_debug_info): Call
        debuginfod_fetch_separate_debug_info if configured with
        debuginfod.
        (load_separate_debug_files): Add file argument to
        load_separate_debug_info calls.
        * dwarf.h (get_build_id): Add declaration.
        * objdump.c (get_build_id): New function. Get build-id of file.
        * readelf.c (get_build_id): Likewise.
        * testsuite/binutils-all/debuginfod.exp: New tests.
        * testsuite/binutils-all/linkdebug.s: Add .note.gnu.build-id
        section.

2020-01-02  Sergey Belyashov  <sergey.belyashov@gmail.com>

	* readelf.c: Add support for new Z*) relocations and machine
	types.

2020-01-01  Alan Modra  <amodra@gmail.com>

	Update year range in copyright notice of all files.

For older changes see ChangeLog-2019

Copyright (C) 2020 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
