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:
