2018-12-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/23900
	* readelf.c (get_segment_type): Support PT_GNU_PROPERTY.
	(decode_x86_isa): Don't check GNU_PROPERTY_X86_UINT32_VALID.
	(decode_x86_feature_1): Likewise.
	(decode_x86_feature_2): Likewise.
	(print_gnu_property_note): Remove GNU_PROPERTY_X86_UINT32_VALID
	check.
	* testsuite/binutils-all/i386/empty.d: Updated.
	* testsuite/binutils-all/x86-64/empty-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/empty.d: Likewise.
	* testsuite/binutils-all/i386/pr21231b.s: Change
	GNU_PROPERTY_X86_ISA_1_USED bits to 0x7fffffff.
	* testsuite/binutils-all/x86-64/pr21231b.s: Likewise.

2018-12-13  Sam Tebbs  <sam.tebbs@arm.com>

	* dwarf.c (read_cie):  Add check for 'B'.

2018-12-11  Nick Clifton  <nickc@redhat.com>

	* NEWS: Note that recursion limit has increased to 2048.
	* doc/binutils.texi: Likewise.

2018-12-08  Alan Modra  <amodra@gmail.com>

	* strings.c (unget_part_char): New function.
	(print_strings): Use unget_part_char.  Formatting.
	* testsuite/binutils-all/strings.exp (test_multibyte): Don't
	use square brackets in fail message.  Expect "String1\nString2".

2018-12-07  Alan Modra  <amodra@gmail.com>

	* nm.c (display_rel_file): Use xrealloc to increase minisyms
	for synthetic symbols.

2018-12-07  Nick Clifton  <nickc@redhat.com>

	* addr2line.c (demangle_flags): New static variable.
        (long_options): Add --recurse-limit and --no-recurse-limit.
        (translate_address): Pass demangle_flags to bfd_demangle.
        (main): Handle --recurse-limit and --no-recurse-limit options.
        * cxxfilt.c: (long_options): Add --recurse-limit and
	--no-recurse-limit.
        (main): Handle new options.
        * nm.c (demangle_flags): New static variable.
        (long_options): Add --recurse-limit and --no-recurse-limit.
        (main): Handle new options.
        * objdump.c (demangle_flags): New static variable.
        (usage): Add --recurse-limit and --no-recurse-limit.
        (long_options): Likewise.
        (objdump_print_symname): Pass demangle_flags to bfd_demangle.
        (disassemble_section): Likewise.
        (dump_dymbols): Likewise.
        (main): Handle new options.
        * prdbg.c (demangle_flags): New static variable.
        (tg_variable): Pass demangle_flags to demangler.
        (tg_start_function): Likewise.
        * stabs.c (demangle_flags): New static variable.
        (stab_demangle_template): Pass demangle_flags to demangler.
        (stab_demangle_v3_argtypes): Likewise.
        (stab_demangle_v3_arg): Likewise.
	* doc/binutuls.texi: Document new command line options.
	* NEWS: Mention the new feature.
        * testsuite/config/default.exp (CXXFILT): Define if not already
        defined.
        (CXXFILTFLAGS): Likewise.
        * testsuite/binutils-all/cxxfilt.exp: New file.  Runs a few
        simple tests of the cxxfilt program.

2018-12-03  Nick Clifton  <nickc@redhat.com>

	PR 23941
	* testsuite/binutils-all/i386/compressed-1a.d: Update expected output.
	* testsuite/binutils-all/x86-64/compressed-1a.d: Likewise.

2018-12-01  Alan Modra  <amodra@gmail.com>

	PR 23946
	* readelf.c (slurp_ia64_unwind_table): Bounds check symbol index
	on reloc.
	(slurp_hppa_unwind_table): Likewise.

2018-12-01  Alan Modra  <amodra@gmail.com>

	PR 23945
	* readelf.c (slurp_ia64_unwind_table): Don't call elf_ia64_reloc_type
	needlessly.
	(slurp_hppa_unwind_table): Use same range checks and error messages
	as slurp_ia64_unwind_table.

2018-11-29  Nick Clifton  <nickc@redhat.com>

	PR 23931
	* objdump.c (dump_relocs_in_section): When checking for an
	unreasonable amount of relocs in a bfd, allow for the fact that
	the internal representation of a reloc may be bigger than the
	external representation.

2018-11-27  Mark Wielaard  <mark@klomp.org>

	PR binutils/23919
	* readelf.c (dump_sections_as_strings): Remove bogus addralign check.
	(dump_sections_as_bytes): Likewise.
	(load_specific_debug_sections): Likewise.
	* testsuite/binutils-all/dw2-3.rS: Adjust alignment.
	* testsuite/binutils-all/dw2-3.rt: Likewise.

2018-11-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/23898
	* testsuite/lib/binutils-common.exp (prune_warnings_extra):
	Prune gaps in build notes.

2018-11-13  Francois H. Theron <francois.theron@netronome.com>

	* testsuite/binutils-all/nfp/test1.d: Test for swapped operand crc[].


2018-11-09  Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* configure: Regenerate.

2018-11-09  Mathias   <m4tze@exitno.de>

	* strings.c (print_strings): Check for multibyte encodings.
	* binutils-all/strings-1.bin: New file.  Test binary for string decoding.
	* testsuite/binutils-all/strings.exp: New file.  Test the strings program.
	* testsuite/config/default.exp (STRINGS): Define if not provided
	by the environment.
	(STRINGSFLAGS): Likewise.

2018-11-07  Masatake Yamato  <yamato@redhat.com>

	* objdump.c (long_options): Have the --disassemble option take an
	optional argument.
	(usage): Add description for the `symbol' argument to the
	--disassemble option.
	(disasm_sym): New file private variable.
	(struct objdump_disasm_info): New field `symbol'.
	(disassemble_section): Introduce `do_print' local variable
	to control whether objdump displays the result of disassembling
	for a symbol or not.
	(main): Set `symbol' file private variable if the option argument
	for the --disassemble option is given.
	* doc/binutils.texi (objdump): Add description for the option
	argument.
	* NEWS: Mention the new feature.
	* testsuite/binutils-all/objdump.exp: Add tests of the -d and
	--disassemble=<symbol> options.
	* testsuite/binutils-all/bintest.s: Add more symbols and code.
	* testsuite/binutils-all/readelf.s: Update expected output.
	* testsuite/binutils-all/readelf.ss-64: Likewise.
	* testsuite/binutils-all/readelf.ss-mips: Likewise.
	* testsuite/binutils-all/readelf.ss-tmips: Likewise.

2018-11-07  Nick Clifton  <nickc@redhat.com>

	* po/pt.po: Updated Portuguese translation.

2018-11-06  Roman Bolshakov  <r.bolshakov@yadro.com>
	    Saagar Jha  <saagar@saagarjha.com>

	PR 23728
	* od-macho.c (printf_version): New.
	(dump_load_command): Use it to print version. Print sdk version. Print
	version info for watchOS and tvOS. Print LC_NOTE, LC_BUILD_VERSION.
	(dump_buld_version): New.
	(bfd_mach_o_platform_name): New
	(bfd_mach_o_tool_name): New

2018-11-07  Yoshinori Sato  <ysato@users.sourceforge.jp>

	* testsuite/lib/binutils-common.exp: Special section name
	use only rx-*-elf.

2018-11-06  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/binutils.texi: Document --enable-x86-feature and
	--disable-x86-feature options for elfedit.
	* elfedit.c: Include "config.h" and <sys/mman.h>.
	(enable_x86_features): New.
	(disable_x86_features): Likewise.
	(update_gnu_property): Likewise.
	(elf_x86_feature): Likewise.
	(process_file): Call update_gnu_property on ET_EXEC or ET_DYN
	file.
	(command_line_switch): Add OPTION_ENABLE_X86_FEATURE and
	OPTION_DISABLE_X86_FEATURE.
	(options): Add--enable-x86-feature and --disable-x86-feature.
	(usage): Likewise.
	(main): Handle OPTION_ENABLE_X86_FEATURE and
	OPTION_DISABLE_X86_FEATURE.

2018-11-03  H.J. Lu  <hongjiu.lu@intel.com>

	* elfedit.c (update_elf_header): Move EI_MAG? check to ...
	(get_file_header): Here.

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

	* configure.ac (AC_FUNC_MMAP): New.
	* config.in: Regenerated.
	* configure: Likewise.

2018-11-02  Alan Modra  <amodra@gmail.com>

	* readelf.c (process_section_headers): Don't warn on a zero
	sh_info or sh_link for any reloc section in an executable or
	shared library.  Do warn for .rel.dyn/.rela.dyn in ET_REL.

2018-11-01  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

	* testsuite/config/default.exp: Define LD, LDFLAGS and
	ld_elf_shared_opt.
	* testsuite/lib/binutils-common.exp (check_shared_lib_support): Moved
	from ld-lib.exp.
	(run_dump_test): Set ld to $LD.

2018-10-18  Nick Clifton  <nickc@redhat.com>

	* doc/binutils.texi (readelf): Document alternatives to the
	--unwind option if it is not supported for the target
	architecture.

2018-10-16  Alan Modra  <amodra@gmail.com>

	PR 23780
	* readelf.c (display_raw_attribute): Correct assertion.

2018-10-15  Alan Modra  <amodra@gmail.com>

	PR 23534
	* addr2line.c (main): Exit with fatal error if bfd_init
	returns an unexpected value.
	* ar.c (main): Likewise.
	* dlltool.c (identify_dll_for_implib): Likewise.
	* nm.c (main): Likewise.
	* objcopy.c (main): Likewise.
	* objdump.c (main): Likewise.
	* size.c (main): Likewise.
	* strings.c (main): Likewise.
	* windmc.c (main): Likewise.
	* windres.c (main): Likewise.

2018-10-11  Jordan Rupprecht  <rupprecht@google.com>
	    Nick Clifton  <nickc@redhat.com>

	* objcopy.c (copy_main): Issue a fata error if the
	--keep-global-symbol(s) and the --globalize-symbol(s) options are
	used together.
	* doc/binutils.texi: Document that the two options are
	incompatible.
	* testsuite/binutils-all/copy-5.d: New test.
	* testsuite/binutils-all/objcopy.exp: Run the new test.

2018-10-10  Helge Deller <deller@gmx.de>
	    Alan Modra  <amodra@gmail.com>

	* readelf.c (hppa_process_unwind): Don't use eh_addr_size to
	calculate number of entries.
	(slurp_hppa_unwind_table): Don't use eh_addr_size here either.

2018-10-10  Alan Modra  <amodra@gmail.com>

	* objdump.c (dump_dwarf): Set s12z eh_addr_size to 4.

2018-10-08  Andreas Schwab  <schwab@suse.de>

	* readelf.c (is_32bit_pcrel_reloc): Handle R_RISCV_32_PCREL.

2018-10-03  Nick Clifton  <nickc@redhat.com>

	* po/pt.po: Updated Portuguese translation.
	* po/fr.po: Updated French translation.

2018-09-22  Alan Modra  <amodra@gmail.com>

	* readelf.c (apply_relocations): Don't return FALSE for warnings.

2018-09-20  Nelson Chu <nelson.chu1990@gmail.com>

	* testsuite/binutils-all/objcopy.exp: Set the unsupported reloc number
	from 215 to 255 for NDS32.

2018-09-17  H.J. Lu  <hongjiu.lu@intel.com>

	* objcopy.c (strip_specific_buffer): New.
	(strip_unneeded_buffer): Likewise.
	(keep_specific_buffer): Likewise.
	(localize_specific_buffer): Likewise.
	(globalize_specific_buffer): Likewise.
	(keepglobal_specific_buffer): Likewise.
	(weaken_specific_buffer): Likewise.
	(add_specific_symbols): Add an argument to return pointer to
	allocated buffer.
	(copy_main): Update add_specific_symbols to update pointers to
	allocated buffer.  Free pointers to allocated buffer before
	return.

2018-09-17  Alan Modra  <amodra@gmail.com>

	* objcopy.c (handle_remove_section_option): Don't require a dot
	after .rela and .rel to handle a possible relocation section.
	* testsuite/binutils-all/remove-relocs-07.s,
	* testsuite/binutils-all/remove-relocs-07.d,
	* testsuite/binutils-all/remove-relocs-08.d: New tests.
	* testsuite/binutils-all/remove-relocs-01.d,
	* testsuite/binutils-all/remove-relocs-04.d,
	* testsuite/binutils-all/remove-relocs-05.d,
	* testsuite/binutils-all/remove-relocs-06.d: Exclude mips64-openbsd.

2018-09-17  Alan Modra  <amodra@gmail.com>

	* testsuite/lib/binutils-common.exp (is_som_format): New proc.
	(run_dump_test): Correct target test for alternate .comm syntax.
	(get_standard_section_names): Handle som format.
	* testsuite/lib/utils-lib.exp (default_binutils_assemble_flags):
	Correct target test for alternate .comm syntax.

2018-09-17  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/strip-13mips64.s: Add section flags
	for reloc section.
	* testsuite/binutils-all/strip-13rel.s: Likewise.
	* testsuite/binutils-all/strip-13rela.s: Likewise.
	* testsuite/binutils-all/strip-14mips64.s: Likewise.
	* testsuite/binutils-all/strip-14rel.s: Likewise.
	* testsuite/binutils-all/strip-14rela.s: Likewise.
	* testsuite/binutils-all/strip-15mips64.s: Likewise.
	* testsuite/binutils-all/strip-15rel.s: Likewise.
	* testsuite/binutils-all/strip-15rela.s: Likewise.

2018-09-17  Nick Clifton  <nickc@redhat.com>

	* testsuite/binutils-all/compress.exp: Rename second "objcopy
	zlib-gnu compress debug sections 3" test to "objcopy zlib-gabi
	compress debug sections 3" and use gabi object files instead
	of gnu object files.
	* testsuite/binutils-all/objcopy.exp: Add suffix to the names
	of the "ELF group" tests.
	* testsuite/binutils-all/readelf.exp (proc readelf_find_size):
	Add an iteration parameter and include it in the name of the
	test.  Update callers to include an iteration count.

2018-09-15  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/add-symbol.d: Add "section_subst: no".
	* testsuite/binutils-all/elfedit.exp: Don't set tempfile or copyfile.
	* testsuite/binutils-all/symbols-1.d,
	* testsuite/binutils-all/symbols-2.d,
	* testsuite/binutils-all/symbols-3.d,
	* testsuite/binutils-all/symbols-4.d: Quote '*' and '!'.
	* testsuite/binutils-all/add-empty-section.d,
	* testsuite/binutils-all/add-section.d,
	* testsuite/binutils-all/elfedit.exp,
	* testsuite/binutils-all/note-1.d,
	* testsuite/binutils-all/pr23633.d: Add $subdir after $srcdir.
	* testsuite/config/default.exp (AS, ASFLAGS): Define.
	* testsuite/config/hppa.sed: Handle all common symbols.
	* testsuite/lib/binutils-common.exp (run_dump_test): New proc,
	merged from three other versions.
	(slurp_options, file_contents, set_file_contents): Likewise.
	(big_or_little_endian, get_standard_section_names): Likewise.
	* testsuite/lib/utils-lib.exp (run_dump_test): Delete.
	(slurp_options, proc file_contents): Delete.
	(get_standard_section_names): Delete.

2018-09-15  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/copy-2.d,
	* testsuite/binutils-all/copy-3.d,
	* testsuite/binutils-all/copy-4.d,
	* testsuite/binutils-all/elfedit-1.d,
	* testsuite/binutils-all/note-1.d,
	* testsuite/binutils-all/note-2-64.d,
	* testsuite/binutils-all/strip-11.d,
	* testsuite/binutils-all/strip-13.d,
	* testsuite/binutils-all/strip-14.d,
	* testsuite/binutils-all/testranges.d,
	* testsuite/binutils-all/x86-64/pr23494a-x32.d,
	* testsuite/binutils-all/x86-64/pr23494a.d,
	* testsuite/binutils-all/x86-64/pr23494b-x32.d,
	* testsuite/binutils-all/x86-64/pr23494b.d,
	* testsuite/binutils-all/x86-64/pr23494c-x32.d,
	* testsuite/binutils-all/x86-64/pr23494c.d,
	* testsuite/binutils-all/x86-64/pr23494d-x32.d,
	* testsuite/binutils-all/x86-64/pr23494d.d,
	* testsuite/binutils-all/x86-64/pr23494e-x32.d,
	* testsuite/binutils-all/x86-64/pr23494e.d,
	* testsuite/lib/utils-lib.exp (run_dump_test): Replace not-target
	and not-skip with notarget and noskip.

2018-09-15  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/group-7a.d,
	* testsuite/binutils-all/group-7b.d,
	* testsuite/binutils-all/group-7c.d,
	* testsuite/binutils-all/symbols-1.d,
	* testsuite/binutils-all/symbols-2.d,
	* testsuite/binutils-all/symbols-3.d,
	* testsuite/binutils-all/symbols-4.d: Remove DUMPPROG.

2018-09-14  Alan Modra  <amodra@gmail.com>

	PR binutils/23633
	* testsuite/binutils-all/pr23633.d: Don't fail when assembler
	generates sections other than .text.

2018-09-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/23633
	* testsuite/binutils-all/objcopy.exp: Run pr23633.
	* testsuite/binutils-all/pr23633.d: New file.
	* testsuite/binutils-all/pr23633.list: Likewise.
	* testsuite/binutils-all/pr23633.s: Likewise.

2018-09-13  Nick Clifton  <nickc@redhat.com>

	PR 23633
	* objcopy.c (add_specific_symbols): Do not free the buffer at the
	end of the function.

2018-09-10  Alan Modra  <amodra@gmail.com>

	PR binutils/23611
	* objcopy.c (handle_remove_section_option): Consider .rela and
	.rel sections for stripping directly as well as attached to the
	associated section they relocate.
	* doc/binutils.texi (remove-relocations): Specify that this
	option removes non-dynamic relocation sections.
	* testsuite/binutils-all/objcopy.exp
	(objcopy_remove_relocations_from_executable): New test.

2018-09-03  Nick Clifton  <nickc@redhat.com>

	* po/ja.po: Updated Japanese translation.

2018-08-31  H.J. Lu  <hongjiu.lu@intel.com>

	* testsuite/binutils-all/readelf.s-64: Adjusted for
	.note.gnu.property section.
	* testsuite/binutils-all/strip-3.d: Also strip
	.note.gnu.property section.

2018-08-31  H.J. Lu  <hongjiu.lu@intel.com>

	* testsuite/binutils-all/i386/compressed-1b.d: Pass
	-mx86-used-note=no to assembler.
	* testsuite/binutils-all/i386/compressed-1c.d: Likewise.
	* testsuite/binutils-all/x86-64/compressed-1b.d: Likewise.
	* testsuite/binutils-all/x86-64/compressed-1c.d: Likewise.
	* testsuite/binutils-all/i386/empty.d: Pass -mx86-used-note=yes
	to assembler and update expected output from "readelf -n".
	* testsuite/binutils-all/i386/ibt.d: Likewise.
	* testsuite/binutils-all/i386/pr21231a.d: Likewise.
	* testsuite/binutils-all/i386/pr21231b.d: Likewise.
	* testsuite/binutils-all/i386/shstk.d: Likewise.
	* testsuite/binutils-all/x86-64/empty-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/empty.d: Likewise.
	* testsuite/binutils-all/x86-64/ibt-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/ibt.d: Likewise.
	* testsuite/binutils-all/x86-64/pr21231a.d: Likewise.
	* testsuite/binutils-all/x86-64/pr21231b.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494a-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494a.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494b-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494b.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494c-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494c.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494d-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494d.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494e-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494e.d: Likewise.
	* testsuite/binutils-all/x86-64/shstk-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/shstk.d: Likewise.

2018-08-30  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (process_section_headers): Treat SHT_FINI_ARRAY and
	SHT_PREINIT_ARRAY as relocatable sections.

2018-08-30  Chenghua Xu  <paul.hua.gm@gmail.com>

	* MAINTAINERS: Add myself as a MIPS port maintainer.

2018-08-29  Chenghua Xu  <paul.hua.gm@gmail.com>

	* NEWS: Mention Loongson 2K1000 proccessor support.
	* readelf.c (get_machine_flags): Handle gs264e.

2018-08-29  Chenghua Xu  <paul.hua.gm@gmail.com>

	* NEWS: Mention Loongson 3A2000/3A3000 proccessor support.
	* readelf.c (get_machine_flags): Handle gs464e.

2018-08-29  Chenghua Xu  <paul.hua.gm@gmail.com>

	* NEWS: Mention Loongson 3A1000 proccessor support.
	* readelf.c (get_machine_flags): Rename loongson-3a to gs464.
	(print_mips_isa_ext): Delete AFL_EXT_LOONGSON_3A.

2018-08-29  Chenghua Xu  <paul.hua.gm@gmail.com>

	* readelf.c (print_mips_ases): Add Loongson EXT2 extension.

2018-08-29  Chenghua Xu  <paul.hua.gm@gmail.com>

	 * readelf.c (print_mips_ases): Add Loongson EXT extension.

2018-08-29  Chenghua Xu  <paul.hua.gm@gmail.com>

	* readelf.c (print_mips_ases): Add CAM extension.

2018-08-27  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (decode_x86_isa): Print <None> if bitmask only
	contains the GNU_PROPERTY_X86_UINT32_VALID bit.
	(decode_x86_feature_1): Likewise.
	(decode_x86_feature_2): Likewise.
	(print_gnu_property_note): Don't mask out the
	GNU_PROPERTY_X86_UINT32_VALID bit.
	* testsuite/binutils-all/i386/pr21231b.d: Updated.
	* testsuite/binutils-all/x86-64/pr21231b.d: Likewise.

2018-08-27  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (decode_x86_compat_isa): Break multi-statement line.
	(decode_x86_isa): Likewise.
	(decode_x86_feature_2): Likewise.

2018-08-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/23499
	* readelf.c (get_symbol_version_string): Return _("<corrupt>")
	for corrupt symbol version info.

2018-08-24  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (decode_x86_compat_isa): New function.
	(decode_x86_feature_2): Likewise.
	(decode_x86_isa): Updated for new X86_ISA_1_XXX bits.
	(decode_x86_feature): Renamed to ...
	(decode_x86_feature_1): This.  Remove the type argument.
	(print_gnu_property_note): Handle X86_COMPAT_ISA_1_USED,
	X86_COMPAT_ISA_1_NEEDED, X86_UINT32_AND_LO, X86_UINT32_AND_HI,
	X86_UINT32_OR_LO, X86_UINT32_OR_HI, X86_UINT32_OR_AND_LO and
	X86_UINT32_OR_AND_HI instead of X86_ISA_1_USED, X86_ISA_1_NEEDED
	and X86_FEATURE_1_AND.
	* testsuite/binutils-all/i386/pr21231b.s: Updated to the current
	GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED
	values.
	* testsuite/binutils-all/x86-64/pr21231b.s: Likewise.
	* testsuite/binutils-all/x86-64/pr23494a.s: Likewise.
	* testsuite/binutils-all/x86-64/pr23494b.s: Likewise.
	* testsuite/binutils-all/x86-64/pr23494c.s: Likewise.
	* testsuite/binutils-all/i386/pr21231b.d: Updated.
	* testsuite/binutils-all/x86-64/pr21231b.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494a-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494a.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494c-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494c.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494d-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494d.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494e-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494e.d: Likewise.

2018-08-24  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (print_gnu_property_note): Check the
	GNU_PROPERTY_X86_UINT32_VALID bit for invalid GNU property note.

2018-08-23  Alan Modra  <amodra@gmail.com>

	* readelf.c (get_ppc64_symbol_other): Return NULL if st_other
	field contains unrecognised or reserved values.  Handle
	localentry:1 value.

2018-08-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/23536
	* Makefile.am (development.exp): New target.
	(EXTRA_DEJAGNU_SITE_CONFIG): New.
	(DISTCLEANFILES): Add development.exp.
	* Makefile.in: Regenerated.
	* testsuite/binutils-all/objcopy.exp (strip_test): Call
	prune_warnings to prune BFD output.
	(strip_test_with_saving_a_symbol): Likewise.
	(objcopy_test_without_global_symbol): Likewise.
	* testsuite/lib/binutils-common.exp (prune_warnings_extra):
	New proc.
	(prune_warnings): Likewise.

2018-08-23  H.J. Lu  <hongjiu.lu@intel.com>

	* README-how-to-make-a-release: Document setting "experimental"
	to false.

2018-08-22  Alan Modra  <amodra@gmail.com>

	* readelf.c (process_file_header): Assign updated values from
	section_header[0] fields to e_phnum, e_shnum and e_shstrndx
	during printing of header.  Correct e_shstrndx range check.
	Remove unnecessary casts and use %u rather than %ld for
	unsigned int header fields.  Don't print a random %lx when
	reporting an unknown EI_VERSION.

2018-08-21  Nick Clifton  <nickc@redhat.com>

	* MAINTAINERS: Note that Arnold Metselaar has retired as the z80
	maintainer.

2018-08-21  L. Simon  <l.simon@samsung.com>

	PR 23531
	* readelf.c (hppa_process_unwind): Only dump the unwind table if
	the data was successfully read in.

2018-08-18  Alan Modra  <amodra@gmail.com>

	* testsuite/lib/binutils-common.exp (is_elf64): Use directory of
	input file for readelf.out.
	(is_rela): New proc.
	* testsuite/binutils-all/objcopy.exp (elf64): Set new variable
	from first result of is_elf64 test.
	(reloc_format): Set using is_rela.
	(strip-13): Pass RELOC and ELF64 to assembler.
	(strip-14, strip-15): Use elf64 rather than calling is_elf64 again.
	* testsuite/binutils-all/strip-13.d: Run for more targets.
	* testsuite/binutils-all/strip-13mips64.s: Use RELOC and set
	addend to zero.
	* testsuite/binutils-all/strip-13rel.s: Use RELOC and ELF64.
	Don't add _NONE reloc.
	* testsuite/binutils-all/strip-13rela.s: Likewise.

2018-08-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/23494
	* testsuite/binutils-all/x86-64/pr23494c.s: New file.
	* testsuite/binutils-all/x86-64/pr23494e-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494e.d: Likewise.

2018-08-10  H.J. Lu  <hongjiu.lu@intel.com>

	* testsuite/binutils-all/x86-64/pr23494a-x32.d: Skip nacl
	targets.
	* testsuite/binutils-all/x86-64/pr23494a.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494b-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494b.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494c-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494c.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494d-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494d.d: Likewise.

2018-08-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/23494
	* testsuite/binutils-all/x86-64/pr23494a-x32.d: New file.
	* testsuite/binutils-all/x86-64/pr23494a.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494a.s: Likewise.
	* testsuite/binutils-all/x86-64/pr23494b-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494b.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494b.s: Likewise.
	* testsuite/binutils-all/x86-64/pr23494c-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494c.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494d-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/pr23494d.d: Likewise.

2018-08-08  Kevin Buettner  <kevinb@redhat.com>

	* dwarf.c (decode_location_expresion): Add case for
	DW_OP_GNU_variable_value.

2018-08-06  Claudiu Zissulescu  <claziss@synopsys.com>

	* readelf.c (display_arc_attribute): Print Tag_ARC_ATR_version.

2018-08-03  Nick Clifton  <nickc@redhat.com>

	* objcopy.c (merge_gnu_build_notes): Delete empty notes.  Merge
	identical function notes.

2018-08-01  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: Add note about regenerating the
	info files prior to the release.

2018-07-30  Andrew Jenner  <andrew@codesourcery.com>

	* MAINTAINERS (C-SKY): Add Yunhai Shang as co-maintainer.

2018-07-30  Andrew Jenner  <andrew@codesourcery.com>

	* MAINTAINERS (C-SKY): Add Lifang Xia as maintainer.

2018-07-30  Andrew Jenner  <andrew@codesourcery.com>

	* readelf.c: Include elf/csky.h.
	(guess_is_rela): Handle EM_CSKY.
	(dump_relocations): Likewise.
	(get_machine_name): Likewise.
	(is_32bit_abs_reloc): Likewise.

2018-07-25  Nick Clifton  <nickc@redhat.com>

	* rdcoff.c (parse_coff_struct_type): Free fields array upon early
	exit.
	(parse_coff_enum_type): Free names and vals arrays upon early
	exit.
	* rddbg.c (read_section_stabs_debugging_info): Free shandle and
	strings and stabs arrays upon early exit.
	* readelf.c (get_32bit_section_headers): Free shdrs structure upon
	early exit.
	(get_64bit_section_headers): Likewise.
	(get_32bit_elf_symbols): Generate an error if multiple symbol
	table index sections are associated with the same symbol section.
	(get_64bit_elf_symbols): Likewise.
	(process_dynamic_section): Generate an error if there are multiple
	dynamic symbol table sections, multiple dynamic string tables or
	multiple dynamic symbol information sections.

2018-07-24  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.

2018-07-24  Alan Modra  <amodra@gmail.com>

	PR 23431
	* dwarf.c (display_formatted_table): Replace "what" parameter
	with "is_dir".  Expand messages.  Fix capitalisation.
	* testsuite/binutils-all/dw5.W: Update expected output.

2018-07-24  Alan Modra  <amodra@gmail.com>

	PR 23430
	* elfcomm.h (struct archive_info): Rename uses_64bit_indicies
	to uses_64bit_indices.
	* elfcomm.c (setup_archive): Update uses of above.
	* readelf.c (process_archive): Likewise.
	(get_section_type_name): Rename indicies to indices.
	(get_32bit_elf_symbols, get_64bit_elf_symbols): Likewise.
	(process_section_groups): Likewise.

2018-07-20  Maciej W. Rozycki  <macro@mips.com>

	* MAINTAINERS: Update my e-mail address, downgrade to MIPS I-IV
	ISA maintenance.

2018-07-20  Nick Clifton  <nickc@redhat.com>

	* objcopy.c (add_specific_symbols): Free buffer on exit.
	(add_redefine_syms_file): Close file handle on exit.
	(copy_object): Close file handle on early exit.
	Free buffer on early exit.
	Free gaps buffers once they are no longer needed.
	* dwarf.c (display_debug_frames): Free allocated memory on exit.
	(load_separate_debug_info): Free allocate memory on early exit.

2018-07-20  Chenghua Xu  <paul.hua.gm@gmail.com>
	    Maciej W. Rozycki  <macro@mips.com>

	* readelf.c (print_mips_ases): Add MMI extension.

2018-07-19  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS (RL78, RX): Remove myself as maintainer.

2018-07-19  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (read_cie): Free allocated memory before returning with
	a failure result.

2018-07-16  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>

	* readelf.c (get_note_type): Fix typo in NT_PPC_TM_CVSX note
	description.

2018-07-16  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: Add note to check for new top
	level files and add them to the src-release.sh script.

2018-07-14  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: Updated with corrections based on
	the 2.31 release experience.

2018-07-12  Francois H. Theron  <francois.theron@netronome.com>

	* readelf.c (process_section_headers): Don't print section type
	twice for --section-details.

2018-07-10  Alan Modra  <amodra@gmail.com>

	* testsuite/lib/binutils-common.exp (supports_gnu_unique): Return
	zero for xgate.

2018-07-06  Nick Clifton  <nickc@redhat.com>

	* readelf.c (same_section): New function.
	(print_gnu_build_attribute_description): Do not complain about
	gaps that cross a section boundary.

2018-07-05  Nick Clifton  <nickc@redhat.com>

	* po/bg.po: Updated Bulgarian translation.

2018-07-02  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* NEWS: Use command-line consistently when used in a compount word.
	* doc/binutils.texi: Likewise and fix trailing whitespace on same
	line.

2018-06-26  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.
	* po/uk.po: Updated Ukranian translation.

2018-06-26  Nick Clifton  <nickc@redhat.com>

	* doc/binutils.texi: Fix spelling mistakes.
	* README--how-to-make-a-release: Likewise.

2018-06-25  Tom Tromey  <tom@tromey.com>

	* dwarf-mode.el (dwarf-mode-syntax-table): New variable.
	Bump version number.

2018-06-24  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: Update with experiences from
	making 2.31 branch.
	* po/binutils.pot: Regenerate.
	* configure: Regenerate.

2018-06-24  Nick Clifton  <nickc@redhat.com>

	2.31 branch created.
	* NEWS: Add marker for 2.31.

2018-06-21  Alan Modra  <amodra@gmail.com>

	* doc/Makefile.am (AUTOMAKE_OPTIONS): Add "foreign".
	* doc/Makefile.in: Regenerate.

2018-06-19  Simon Marchi  <simon.marchi@ericsson.com>

	* configure.ac: Remove AC_PREREQ.
	* doc/Makefile.am (AUTOMAKE_OPTIONS): Remove cygnus, add
	info-in-builddir no-texinfo.tex.
	* Makefile.in: Re-generate.
	* aclocal.m4: Re-generate.
	* config.in: Re-generate.
	* configure: Re-generate.
	* doc/Makefile.in: Re-generate.

2018-06-19  Andreas Schwab  <schwab@suse.de>

	* readelf.c (is_16bit_abs_reloc): Handle R_RISCV_SET16.
	(is_8bit_abs_reloc): New function.
	(is_6bit_abs_reloc): New function.
	(is_6bit_inplace_sub_reloc): New function.
	(apply_relocations): Use them.  Handle 6-bit relocations.

2018-06-14  Faraz Shahbazker  <Faraz.Shahbazker@mips.com>

	* readelf.c (print_mips_ases): Add GINV extension.

2018-06-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/23267
	* readelf.c (get_symbol_version_string): Check if the first
	symbol version is base version.

2018-06-13  Scott Egerton  <scott.egerton@imgtec.com>
	    Faraz Shahbazker  <Faraz.Shahbazker@mips.com>

	* readelf.c (print_mips_ases): Add CRC.

2018-06-13  Nick Clifton  <nickc@redhat.com>

	* doc/binutils.texi (objdump): Add missing closing square
	parenthesis to listing of objcopy's command line options.

2018-06-11  Nick Clifton  <nickc@redhat.com>

	* po/es.po: Updated Spanish translation.

2018-06-01  H.J. Lu  <hongjiu.lu@intel.com>

	* configure: Regenerated.

2018-05-31  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/compress.exp (test_gnu_debuglink): Don't
	set CC_FOR_TARGET.  Run test non-native.
	* testsuite/binutils-all/objdump.exp (test_build_id_debuglink):
	Likewise.
	(test_follow_debuglink): Run test non-native.

2018-05-30  Ant Bikeneev  <ant.bikineev@gmail.com>

	PR 23107
	* ar.c (display_offsets): New variable.
	(usage): Add description of 'O' operator.
	(decode_option): Handle 'O' operator.
	(print_descr): Pass display_offsets to print_arelt_descr.
	* arsup.c: Update call to printy_arelt_descr.
	* objdump.c: Likewise.
	* bucomm.c (print_arelt_descr): If offsets parameter is true then
	display offset of archive element within the archive.
	* bucomm.h: Update prototype for print_arelt_descr.
	* doc/binutils.texi: Update description of ar command.
	* NEWS: Mention the new feature.
	* testsuite/binutils-all/ar.exp: Add text of new feature.

2018-05-28  Alan Modra  <amodra@gmail.com>

	PR 23235
	* testsuite/binutils-all/compress.exp (test_gnu_debuglink): Return
	unsupported rather than fail on compile errors.
	* testsuite/binutils-all/objdump.exp (test_build_id_debuglink):
	Likewise.  Save and restore CFLAGS_FOR_TARGET.

2018-05-18  Kito Cheng  <kito.cheng@gmail.com>

	* readelf.c (get_machine_flags): Handle EF_RISCV_RVE.

2018-05-18  John Darrington  <john@darrington.wattle.id.au>

	* readelf.c: Add support for s12z architecture.
	* testsuite/lib/binutils-common.exp (is_elf_format): Excluse s12z
	targets.

2018-05-15  Tamar Christina  <tamar.christina@arm.com>

	PR binutils/21446
	* doc/binutils.texi (-M): Document AArch64 options.

2018-05-15  Tamar Christina  <tamar.christina@arm.com>

	PR binutils/21446
	* doc/binutils.texi (-M): Document AArch64 options.
	* NEWS: Document notes and warnings.

2018-05-15  Alan Modra  <amodra@gmail.com>

	* testsuite/lib/binutils-common.exp (is_elf_format): Add chorus,
	cloudabi, fuchsia, kaos and nto.  Merge netbsdelf* into *elf*,
	and *uclinux* into *linux*.
	* testsuite/binutils-all/objcopy.exp: Accept armeb for rel
	strip-13 test, exclude arm-vxworks and arm-windiss.

2018-05-10  John Darrington  <john@darrington.wattle.id.au>

	* readelf.c (get_machine_name): EM_S12Z - handle new case.

2018-05-09  Alan Modra  <amodra@gmail.com>

	* od-macho.c (dump_unwind_encoding_x86): Fix typo in last patch.

2018-05-09  Sebastian Rasmussen  <sebras@gmail.com>

	* od-macho.c (dump_unwind_encoding_x86): Adjust for macro renaming.

2018-05-08  Alan Modra  <amodra@gmail.com>

	PR 23141
	* objcopy.c (is_strip_section): Strip groups without a valid
	signature symbol.

2018-05-07  Alan Modra  <amodra@gmail.com>

	PR 23142
	* objcopy.c (group_signature): Don't accept groups that use a
	symbol table other than the one we've read.

2018-04-30  Francois H. Theron <francois.theron@netronome.com>

	* readelf.c: Very basic support for EM_NFP and its section types.
	* testsuite/binutils-all/nfp: New directory.
	* testsuite/binutils-all/nfp/objdump.exp: New file.  Run new
	tests.
	* testsuite/binutils-all/nfp/test2_ctx8.d: New file.
	* testsuite/binutils-all/nfp/test2_no-pc_ctx4.d: New file.
	* testsuite/binutils-all/nfp/test1.d: New file.
	* testsuite/binutils-all/nfp/nfp6000.nffw: New file.
	* testsuite/binutils-all/nfp/test2_nfp6000.nffw: New file.
	* NEWS: Mention the new support.

2018-04-27  Maciej W. Rozycki  <macro@mips.com>

	* testsuite/lib/binutils-common.exp (match_target): New procedure.
	* testsuite/lib/utils-lib.exp (run_dump_test): Use it in place
	of `istarget' for matching with `target', `not-target', `skip'
	and `not-skip' options.

2018-04-26  Nick Clifton  <nickc@redhat.com>

	* readelf.c (is_32bit_abs_reloc): Support R_PARISC_DIR32 as a
	32-bit absolute reloc for the HPPA target.
	* testsuite/binutils-all/note-5.d: New test.
	* testsuite/binutils-all/note-5.s: Source file for new test.
	* testsuite/binutils-all/objcopy.exp: Run new test.

2018-04-25  Christophe Lyon  <christophe.lyon@st.com>

	* testsuite/binutils-all/elfedit-2.d: Accept arm*-*-uclinuxfdpiceabi.
	* testsuite/binutils-all/elfedit-3.d: Likewise.
	* testsuite/binutils-all/objcopy.exp: Likewise.
	* testsuite/binutils-all/strip-3.d: Likewise.
	* testsuite/lib/binutils-common.exp: Likewise.

2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
	Mickaël Guêné  <mickael.guene@st.com>

	* readelf.c (decode_ARM_machine_flags): Support EF_ARM_PIC.
	(get_osabi_name): Support ELFOSABI_ARM_FDPIC.

2018-04-25  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/arm/objdump.exp: Remove arm-aout and
	arm-coff support.
	* testsuite/binutils-all/objcopy.exp: Likewise.
	* testsuite/lib/binutils-common.exp: Likewise.

2018-04-18  Nick Clifton  <nickc@redhat.com>

	PR 23062
	* dwarf.c (read_and_display_attr_value): Replace assertions with
	test and warning message.

2018-04-18  Alan Modra  <amodra@gmail.com>

	* testsuite/lib/binutils-common.exp: Remove support for assorted
	aout targets.

2018-04-17  Nick Clifton  <nickc@redhat.com>

	PR 23063
	* readelf.c (print_symbol): If the width is zero, return straight
	away.

	PR 23064
	* dwarf.c (process_cu_tu_index): Test for a potential buffer
	overrun before copying signature pointer.

2018-04-17  Alan Modra  <amodra@gmail.com>

	* readelf.c: Revert 2018-04-16 and 2018-04-11 changes.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* readelf.c (get_machine_name): Correct typo.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* configure.ac: Remove arm-epoc-pe support.
	* dlltool.c: Likewise.
	* configure: Regenerate.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* testsuite/lib/binutils-common.exp: Remove sparc-aout and
	sparc-coff support.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/copy-2.d: Remove m68k-aout and m68k-coff
	support.
	* testsuite/binutils-all/copy-3.d: Likewise.
	* testsuite/binutils-all/objcopy.exp: Likewise.
	* testsuite/lib/binutils-common.exp: Likewise.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/objcopy.exp: Remove sh5 and sh64 support.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/objcopy.exp: Remove w65 support.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/objdump.exp: Remove we32k support.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* MAINTAINERS (Mark Kettenis): Move to past maintainers.
	* testsuite/binutils-all/objdump.exp: Remove m88k support.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* readelf.c: Remove i370 support.
	* testsuite/binutils-all/objdump.exp: Likewise.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/objcopy.exp: Remove h8500 support.
	* testsuite/lib/binutils-common.exp: Likewise.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/objcopy.exp: Remove h8300-coff support.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* Makefile.am: Remove IEEE 695 support.
	* budbg.h: Likewise.
	* doc/binutils.texi: Likewise.
	* makefile.vms: Likewise.
	* objcopy.c: Likewise.
	* objdump.c: Likewise.
	* rddbg.c: Likewise.
	* ieee.c: Delete.
	* Makefile.in: Regenerate.
	* po/POTFILES.in: Regenerate.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/copy-2.d: Remove newsos3 support.
	* testsuite/binutils-all/nm.exp: Likewise.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* .gitignore: Remove netware support.
	* Makefile.am: Likewise.
	* configure.ac: Likewise.
	* doc/Makefile.am: Likewise.
	* doc/binutils.texi: Likewise.
	* testsuite/binutils-all/nm.exp: Likewise.
	* nlmconv.c: Delete.
	* nlmconv.h: Delete.
	* nlmheader.y: Delete.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.
	* po/POTFILES.in: Regenerate.

2018-04-16  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/objdump.exp: Remove tahoe support.

2018-04-14  Alan Modra  <amodra@gmail.com>

	* readelf.c (get_machine_name): Revert 2018-04-11 change.

2018-04-12  Nick Clifton  <nickc@redhat.com>

	PR 23050
	* readelf.c (process_dynamic_section): Correct dynamic string
	table size calculation.

2018-04-11  Alan Modra  <amodra@gmail.com>

	* ieee.c: Remove i960 support.
	* od-macho.c: Remove i860 support.
	* readelf.c: Remove i860 and i960 support.
	* testsuite/binutils-all/objcopy.exp: Likewise.
	* testsuite/binutils-all/objdump.exp: Likewise.
	* testsuite/lib/binutils-common.exp: Likewise.

2018-04-11  Maciej W. Rozycki  <macro@mips.com>

	* testsuite/lib/binutils-common.exp (is_elf_format): Also return
	1 for `*-*-lynxos*' and `*-*-symbianelf*' targets.

2018-04-10  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/objcopy.exp (strip-14, strip-15): Choose
	reloc=11 for pru and reloc=50 for nds32.
	* testsuite/binutils-all/strip-15.d: Accept 0xb reloc number.

2018-04-09  Maciej W. Rozycki  <macro@mips.com>

	* testsuite/binutils-all/strip-15.d: New test.
	* testsuite/binutils-all/strip-15rel.s: New test source.
	* testsuite/binutils-all/strip-15rela.s: New test source.
	* testsuite/binutils-all/strip-15mips64.s: New test source.
	* testsuite/binutils-all/objcopy.exp: Run the new test.

2018-04-09  Maciej W. Rozycki  <macro@mips.com>

	* testsuite/binutils-all/strip-14.d: New test.
	* testsuite/binutils-all/strip-14rel.s: New test source.
	* testsuite/binutils-all/strip-14rela.s: New test source.
	* testsuite/binutils-all/strip-14mips64.s: New test source.
	* testsuite/binutils-all/objcopy.exp: Run the new test.

2018-04-06  Tom Tromey  <tom@tromey.com>

	* dwarf.c (read_and_display_attr_value): Add missing DW_LANG
	constants from DWARF 5.

2018-04-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/22318
	* configure: Regenerated.

2018-04-05  Maciej W. Rozycki  <macro@mips.com>

	* testsuite/binutils-all/strip-13mips64.s: Use `.dc.l' rather
	than `.dc.w' in second relocation.

2018-04-05  Maciej W. Rozycki  <macro@mips.com>

	* testsuite/binutils-all/strip-13.d: Also expect `unsupported
	relocation type 0x8f' error message.

2018-04-05  Maciej W. Rozycki  <macro@mips.com>

	* testsuite/binutils-all/strip-13.s: Rename to...
	* testsuite/binutils-all/strip-13rela.s: ... this.
	* testsuite/binutils-all/strip-13rel.s: New test source.
	* testsuite/binutils-all/strip-13mips64.s: New test source.
	* testsuite/binutils-all/strip-13.d: Remove `arm-*', `d10v-*',
	`dlx-*' and `xgate-*' from `not-target' list.  Add `m6811-*' and
	`m68hc11-*' to `not-target' list.
	* testsuite/binutils-all/objcopy.exp: Switch between sources for
	`strip-13'.

2018-04-05  Maciej W. Rozycki  <macro@mips.com>

	* testsuite/binutils-all/strip-13.s: Use 143 (0x8f) rather than
	241 (0xf1) for the relocation number and RELA addend.
	* testsuite/binutils-all/strip-13.d: Remove `hppa*-*' from the
	`not-target' list.

2018-04-04  John David Anglin  <danglin@gcc.gnu.org>

	* MAINTAINERS: Update my e-mail address.

2018-04-04  Nick Clifton  <nickc@redhat.com>

	* MAINTAINERS: Move Jason Eckhardt to past maintainers section.

2018-03-23  Nick Clifton  <nickc@redhat.com>

	* readelf.c (get_symbol_for_build_attribute): Skip ARM mapping
	symbols.
	(print_gnu_build_attribute_description): If no file start symbol
	could be found, look for one two bytes into the file.
	* testsuite/binutils-all/note-4-64.s: Set the address of the file
	start symbol to two bytes into the file.
	* testsuite/binutils-all/note-4-32.s: Likewise.

2018-03-21  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (process_dynamic_section): Also dump DF_1_KMOD,
	DF_1_WEAKFILTER and DF_1_NOCOMMON.

2018-03-20  Nick Clifton  <nickc@redhat.com>

	* po/es.po: Updated Spanish translation.
	* po/ru.po: Updated Russian translation.

2018-03-13  Nick Clifton  <nickc@redhat.com>

	PR 22957
	* stabs.c (pop_binincl): Fail if the file index is off the end of
	the stack.

2018-03-13  Nick Clifton  <nickc@redhat.com>

	PR 22955
	* stabs.c (parse_number): Add p_end parameter and use it to check
	the validity of the pp parameter.  Add checks to prevent walking
	off the end of the string buffer.
	(parse_stab_string): Likewise.
	(parse_stab_type): Likewise.
	(parse_stab_type_number): Likewise.
	(parse_stab_range_type): Likewise.
	(parse_stab_sun_builtin_type): Likewise.
	(parse_stab_sun_floating_type): Likewise.
	(parse_stab_enum_type): Likewise.
	(parse_stab_struct_type): Likewise.
	(parse_stab_baseclasses): Likewise.
	(parse_stab_struct_fields): Likewise.
	(parse_stab_cpp_abbrev): Likewise.
	(parse_stab_one_struct_field): Likewise.
	(parse_stab_members): Likewise.
	(parse_stab_tilde_field): Likewise.
	(parse_stab_array_type): Likewise.

	* parse_stab: Compute the end of the string and then pass it on to
	individual parser functions.

2018-03-07  Paul Pluzhnikov  <ppluzhnikov@google.com>

	PR binutils/22923
	* binutils/readelf.c (get_ver_flags): Expand buffer to avoid
	overflow.

2018-03-07  Alan Modra  <amodra@gmail.com>

	* configure.ac: Add objdump_private_desc_xcoff for rs6000.
	* configure: Regenerate.

2018-03-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/22911
	* objdump.c (is_significant_symbol_name): Return TRUE for all
	.plt* sections.
	(find_symbol_for_address): Replace linear search with binary
	search on dynamic relocations.

2018-03-01  Nick Clifton  <nickc@redhat.com>

	PR 22905
	* dwarf.c (display_debug_ranges): Check that the offset loaded
	from the range_entry structure is valid.

2018-03-01  Alan Modra  <amodra@gmail.com>

	* configure.ac (ALL_LINGUAS): Add sr.  Sort.
	* configure: Regenerate.

2018-02-27  Nick Clifton  <nickc@redhat.com>

	* po/pt.po: New Portuguese translation.
	* configure.ac (ALL_LINGUAS): Add pt.
	* configure: Regenerate.

2018-02-27  Nick Clifton  <nickc@redhat.com>

	PR 22875
	* objcopy.c (copy_object): Check the error status after marking
	symbols used in relocations.
	* testsuite/binutils-all/strip-13.s: New test source file.
	* testsuite/binutils-all/strip-13.s: New test driver file.
	* testsuite/binutils-all/objcopy.exp: Run the new test.

2018-02-26  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/mips/mips-reginfo-n32.d,
	* testsuite/binutils-all/mips/mips-reginfo.d: Update.

2018-02-23  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/mips/mips-reginfo-n32.d,
	* testsuite/binutils-all/mips/mips-reginfo.d: Update.

2018-02-20  Ronald Hoogenboom  <hoogenboom30@zonnet.nl>

	* doc/binutils.texi (objcopy): Add missing closing square
	parenthesis to listing of objcopy's command line options.

2018-02-19  Matthias Klose  <doko@debian.org>

	* strings.c (long_options): Include-all-whitespace does not take
	an extra agument.

2018-02-13  Alan Modra  <amodra@gmail.com>

	PR 22836
	* testsuite/binutils-all/group-7.s,
	* testsuite/binutils-all/group-7a.d,
	* testsuite/binutils-all/group-7b.d,
	* testsuite/binutils-all/group-7c.d: New tests.
	* testsuite/binutils-all/objcopy.exp: Run them.

2018-02-08  Nick Clifton  <nickc@redhat.com>

	PR 22802
	* dwarf.c (load_separate_debug_file): Return early if the user is
	not interested in debug links.

2018-02-06  Nick Clifton  <nickc@redhat.com>

	PR 22793
	* readelf.c (find_section): Replace assertion with test and return
	of NULL.
	(find_section_by_address): Add test of section header table
	existance.
	(find_section_by_type): Likewise.
	(find_section_in_set): Likewise.

2018-02-05  Maciej W. Rozycki  <macro@mips.com>

	* testsuite/binutils-all/mips/mips-reginfo.d: New test.
	* testsuite/binutils-all/mips/mips-reginfo-n32.d: New test.
	* testsuite/binutils-all/mips/mips-reginfo.s: New test source.
	* testsuite/binutils-all/mips/mips.exp: Run the new tests.

2018-02-05  Maciej W. Rozycki  <macro@mips.com>

	* testsuite/config/default.exp (binutils_run): Document
	`binutils_run_status'.
	* testsuite/lib/utils-lib.exp (default_binutils_run): Likewise,
	and set it.
	(run_dump_test): Add `error', `error_output', `warning' and
	`warning_output' options.  Update documentation accordingly.

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

	* dwarf.c (dwarf_regnames_riscv): New register name table.
	(init_dwarf_regnames_riscv): New function.
	(init_dwarf_regnames): Add call to initialise RiscV register
	names.
	* dwarf.h (init_dwarf_regnames_riscv): Declare.
	* objdump.c (dump_dwarf): Add call to initialise RiscV register
	names.

2018-02-01  Alan Modra  <amodra@gmail.com>

	PR 22769
	* objdump.c (load_specific_debug_section): Check for overflow
	when adding one to section size for a string section terminator.

2018-01-30  Nick Clifton  <nickc@redhat.com>

	PR 22734
	* doc/binutils.texi (nm): Update description to point out that
	zero-initialized values can also be shown as type B, b, S or s
	since they can be stored in the BSS section.

2018-01-30  Alan Modra  <amodra@gmail.com>

	* objcopy.c (merge_gnu_build_notes): Use (bfd_vma) -1 as
	"artificially large" end address.

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

	* README-how-to-make-a-release: Add note about checking gpg key
	and the results of gnupload.

2018-01-27  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: Add details on how to actually
	make the release.

2018-01-26  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: Add more details on updating
	version numbers.

2018-01-22  Maciej W. Rozycki  <macro@mips.com>

	* doc/binutils.texi (objcopy): Fix a typo in `--rename-section'
	option description.

2018-01-22  Maciej W. Rozycki  <macro@mips.com>

	* MAINTAINERS: Update my company e-mail address.

2018-01-22  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.

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

	* po/bg.po: Updated Bulgarian translation.

2018-01-16  Joel Brobecker  <brobecker@adacore.com>

	* README-how-to-make-a-release: Add reminder to update the
	branch name in gdbadmin's crontab on sourceware.

2018-01-16  Joel Brobecker  <brobecker@adacore.com>

	* README-how-to-make-a-release: Remove trailing spaces.

2018-01-16  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Updated French translation.

2018-01-15  Nick Clifton  <nickc@redhat.com>

	* po/uk.po: Updated Ukranian translation.

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

	* README-how-to-make-a-release: Update notes.
	* po/binutils.pot: Regenerated.

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

	* configure: Regenerate.

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

	2.30 branch created.
	* NEWS: Add marker for 2.30.

2018-01-12  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: Add notes on how to make the
	branch and prelease snapshot.
	* BRANCHES: Add binutils-2_29-branch.

2018-01-10  Nick Clifton  <nickc@redhat.com>

	* MAINTAINERS: Note that it is now the configure.ac file and not
	the configure.in file that needs to be kept in sync with gcc.
	Add a note about sending patches for libiberty to gcc.

2018-01-03  Nick Clifton  <nickc@redhat.com>

	* objcopy.c (merge_gnu_build_notes): Add cast to maximum address
	constants.

2018-01-03  Nick Clifton  <nickc@redhat.com>

	* objcopy.c (objcopy_internal_note): New structure.
	(gap_exists): New function.
	(is_open_note): New function.
	(is_func_note): New function.
	(is_64bit): New function.
	(merge_gnu_build_notes): Handle v3 notes.  Do not merge
	if there are relocations against the notes.
	* readelf.c (get_note_type): Use short names for build attribute
	notes.
	(print_symbol_for_build_attribute): Rename to
	get_symbol_for_build_attribute.  Returns the found symbol rather
	than printing it.
	(print_gnu_build_attribute_description): Maintain address ranges
	for function notes as well as global notes.  Handle v3 notes.
	(print_gnu_build_attribute_name): Use more space for printing the
	name in wide mode.
	* testsuite/binutils-all/note-2-32.s: Use .dc.l instead of .word.
	Eliminate symbol references in order to remove the need for
	relocations.
	* testsuite/binutils-all/note-2-64.s: Likewise.
	* testsuite/binutils-all/note-3-32.s: Add a size to the note_1
	symbol.
	* testsuite/binutils-all/note-3-64.s: Likewise.
	* testsuite/binutils-all/mips/mips-note-2r-n32.d: Update expected
	output.
	* testsuite/binutils-all/mips/mips-note-2r-n64.d: Likewise.
	* testsuite/binutils-all/mips/mips-note-2r.d: Likewise.
	* testsuite/binutils-all/note-2-32.d: Likewise.
	* testsuite/binutils-all/note-2-64.d: Likewise.
	* testsuite/binutils-all/note-3-32.d: Likewise.
	* testsuite/binutils-all/note-3-64.d: Likewise.
	* testsuite/binutils-all/note-4-64.s: New test.  Checks v3 notes.
	* testsuite/binutils-all/note-4-32.s: New test.
	* testsuite/binutils-all/note-4-64.d: New test result file.
	* testsuite/binutils-all/note-4-32.d: New test result file.

2018-01-03  Alan Modra  <amodra@gmail.com>

	Update year range in copyright notice of all files.

For older changes see ChangeLog-2017

Copyright (C) 2018 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:
