2017-03-09  Alan Modra  <amodra@gmail.com>

	Apply from master
	2016-09-26  Alan Modra  <amodra@gmail.com>
	* readelf.c (display_power_gnu_attribute): Catch truncated section
	for all powerpc attributes.  Display long double ABI.  Don't
	capitalize words, except for names.  Show known bits of tag values
	when some unknown bits are present.  Whitespace fixes.

2016-08-03  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

2016-08-03  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

2016-07-01  Nick Clifton  <nickc@redhat.com>

	* Import this patch from the mainline:
	2016-07-01  Nick Clifton  <nickc@redhat.com>

	* testsuite/binutils-all/objcopy.exp
	(objcopy_test_without_global_symbol): Expect this test to fail on
	the AArch64 and ARM targets, since they preserve their mapping
	symbols.

2016-07-01  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

2016-07-01  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

2016-07-01  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Add marker for 2.27.

2016-07-30  Tristan Gingold  <gingold@adacore.com>

	* doc/binutils.texi (objdump): Fix mis-placement.

2016-06-28  Nick Clifton  <nickc@redhat.com>

	* testsuite/binutils-all/ar.exp: Relax previous restriction on
	Alpha targets.  Allow ELF based Alpha targets.

2016-06-28  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/ar.exp: Use `supports_gnu_unique' with
	the `unique_symbol' test.

2016-06-28  Alan Modra  <amodra@gmail.com>

	PR 20304
	* objdump.c (objdump_print_symname): Don't attempt to retrieve
	version info from synthetic symbols.

2016-06-24  Alan Modra  <amodra@gmail.com>

	* objcopy.c (find_section_rename): Forward declare.  Remove
	ibfd and sec_ptr param.  Add old_name param.  Allow for NULL
	returned_flags.  Move read of section name and flags to..
	(setup_section): ..here.  Update find_section_rename call.
	(filter_symbols): Rename section symbols for renamed sections.
	(copy_object): Call filter_symbols when renamed sections.
	* testsuite/lib/binutils-common.exp (is_bad_symtab): New.
	* testsuite/binutils-all/update-section.exp: Revert 96037eb0
	mips xfail.
	* testsuite/binutils-all/objcopy.exp (copy_executable): Use
	is_bad_symtab.
	(localize-hidden-1): xfail if is_bad_symtab.
	* testsuite/binutils-all/readelf.exp: Use is_bad_symtab to select
	between mips/tmips.

2016-06-24  Alan Modra  <amodra@gmail.com>

	* objdump.c (struct print_file_list): Add "max_printed".
	(try_print_file_open): Init new field.
	(show_line): Don't show 5 context lines when redisplaying source.

2016-06-22  Nick Clifton  <nickc@redhat.com>

	* testsuite/binutils-all/ar.exp: Skip tests for Alpha target.
	Skip bfdtest1 tests for tic30 target.
	* testsuite/binutils-all/arm/objdump.exp: Skip for aout arm
	target.
	* testsuite/binutils-all/compress.exp: Expect some tests to fail
	on the nds32.
	* testsuite/binutils-all/copy-3.d: Skip for go32 targets.
	* testsuite/binutils-all/copy-4.d: Skip for AIX and linuxecoff
	targets.
	* testsuite/binutils-all/nm.exp: Treat beos based targets as ELF
	targets.
	* testsuite/binutils-all/objcopy.exp: Only run reverse bytes tests
	if the bintest.o file was created.  Use the
	get_standard_section_names proc to get the name of the data
	section.
	* testsuite/binutils-all/objdump.exp: Update regexps to allow for
	RX section names.
	* testsuite/binutils-all/readelf.exp: Use
	get_standard_section_names proc to get the name of the data
	section.
	* testsuite/binutils-all/readelf.r: Allow for non standard text
	section names.
	* testsuite/binutils-all/readelf.s: Update regexps for tilepro.
	* testsuite/binutils-all/size.exp: Allow for non standard section
	names.
	* testsuite/binutils-all/update-section.exp: Expect comapre 1vs4
	to fail on mips targets.
	* testsuite/lib/utils-lib.exp (default_binutils_run): Use
	get_standard_section_names proc.
	(run_dump_test): Likewise.
	(proc get_standard_section_names): New proc.

2016-06-22  Nick Clifton  <nickc@redhat.com>

	* readelf.c (dynamic_section_mips_val): Increase size of timebuf.
	(process_mips_specific): Likewise.
	(process_gnu_liblist): Likewise.

2016-06-21  Graham Markall  <graham.markall@embecosm.com>

	* readelf.c (decode_ARC_machine_flags): Remove E_ARC_MACH_NPS400
	case.

2016-06-15  Nick Clifton  <nickc@redhat.com>

	* readelf.c (is_24bit_abs_reloc): Add support for R_FT32_20
	reloc.

2016-06-14  John Baldwin  <jhb@FreeBSD.org>

	* objcopy.c (do_elf_stt_common): Use correct type.

2016-06-14  Alan Modra  <amodra@gmail.com>

	* ar.c: Expand uses of bfd_my_archive.
	* size.c: Likewise.

2016-06-14  Alan Modra  <amodra@gmail.com>

	PR ld/20241
	* bucomm.c (bfd_get_archive_filename): Return file name within thin
	archive.

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

	PR 20089
	* objcopy.c (group_signature): Fail if the input symbol table has
	not been loaded, or if the sh_info field of the group header is 0.

	* dwarf.c (display_debug_frames): Do not display any
	interpretation if the block consists solely of DW__CFA_NOPs.

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

	* objcopy.c: Formatting, whitespace throughout.
	(copy_main): Init newsym->othersym.
	(parse_symflags): Make len a size_t.  Adjust uses.

2016-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/14625
	* NEWS: Mention --enable-64-bit-archive.

2016-05-18  Nick Clifton  <nickc@redhat.com>

	PR 20096
	* objcopy.c (copy_relocations_in_section): Also check for the
	symbol pointed to by sym_ptr_ptr being NULL.

2016-05-18  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mixed-mips16-micromips.d: New test.
	* testsuite/binutils-all/mips/mixed-mips16-micromips.s: New test
	source.
	* testsuite/binutils-all/mips/mips.exp: Run the new test.

2016-05-18  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.

2016-05-18  Maciej W. Rozycki  <macro@imgtec.com>

	* readelf.c (dynamic_section_mips_val) <DT_MIPS_RLD_VERSION>
	<DT_MIPS_LOCAL_GOTNO, DT_MIPS_CONFLICTNO, DT_MIPS_LIBLISTNO>
	<DT_MIPS_SYMTABNO, DT_MIPS_UNREFEXTNO, DT_MIPS_HIPAGENO>
	<DT_MIPS_DELTA_CLASS_NO, DT_MIPS_DELTA_INSTANCE_NO>
	<DT_MIPS_DELTA_RELOC_NO, DT_MIPS_DELTA_SYM_NO>
	<DT_MIPS_DELTA_CLASSSYM_NO, DT_MIPS_COMPACT_SIZE>: Use the
	`d_val' rather than `d_ptr' member of the dynamic entry.

2016-05-17  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/lib/binutils-common.exp (supports_gnu_unique): New
	procedure.
	* testsuite/binutils-all/objcopy.exp: Use `supports_gnu_unique'
	with the `strip-10' test.

2016-05-16  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/objcopy.exp: Don't skip the `strip-10'
	test for the V850.

2016-05-11  Andrew Bennett  <andrew.bennett@imgtec.com>

	* readelf.c (print_mips_ases): Add DSPR3.

2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* readelf.c (display_arm_attribute): Add output for Tag_DSP_extension.
	(arm_attr_public_tags): Define DSP_extension attribute.

2016-05-10  Andrew Burgess  <andrew.burgess@embecosm.com>

	* doc/binutils.texi (nm): Update description of --size-sort.

2016-05-09  Nick Clifton  <nickc@redhat.com>

	PR binutils/20063
	* readelf.c (get_32bit_section_headers): Warn if an out of range
	sh_link or sh_info field is encountered.
	(get_64bit_section_headers): Likewise.

2016-05-04  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* testsuite/lib/binutils-common.exp (is_elf_format): Add avr-*-*.

2016-05-03  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.

2016-04-29  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>

	* readelf.c (is_32bit_pcrel_reloc): Return true if reloc is 32-bit
	PC relocation for AVR target.
	(is_none_reloc): Return true if reloc is any of AVR diff
	relocations.

2016-04-29  Nick Clifton  <nickc@redhat.com>

	PR 19938
	* readelf.c (get_solaris_segment_type): New function.
	(get_segment_type): Call it.

2016-04-28  Nick Clifton  <nickc@redhat.com>

	* po/zh_CN.po: Updated Chinese (simplified) translation.

2016-04-28  Nick Clifton  <nickc@redhat.com>

	PR target/19722
	* testsuite/binutils-all/aarch64/illegal.s: New test.
	* testsuite/binutils-all/aarch64/illegal.d: New test driver.

2016-04-20  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

	* resres.c: Likewise.

2016-04-15  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in: Regenerated with automake 1.11.6.
	* aclocal.m4: Likewise.
	* doc/Makefile.in: Likewise.

2016-04-14  Nick Clifton  <nickc@redhat.com>

	PR target/19938
	* testsuite/binutils-all/i386/compressed-1b.d: Allow for the
	string sections possibly having the SHF_STRINGS flag bit set.
	* testsuite/binutils-all/i386/compressed-1c.d: Likewise.
	* testsuite/binutils-all/readelf.s: Likewise.
	* testsuite/binutils-all/readelf.s-64: Likewise.
	* testsuite/binutils-all/x86-64/compressed-1b.d: Likewise.
	* testsuite/binutils-all/x86-64/compressed-1c.d: Likewise.

2016-04-13  Nick Clifton  <nickc@redhat.com>

	PR target/19938
	* readelf.c (get_solaris_section_type): New function: Returns the
	name of Solaris specific section types.
	(get_solaris_dynamic_type): New function: Return the name of
	Solaris specific dynamic types.
	(get_dynamic_type): Use get_solaris_dynamic_type.
	(get_section_type_name): Use get_solaris_section_type.
	(get_solaris_symbol_visibility): New function: Returns Solaris
	specific symbol visibilities.
	(print_dynamic_symbol): Use get_solaris_symbol_visibility.
	(process_symbol_table): Likewise.

2016-04-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* dwarf.h (init_dwarf_regnames_s390): Declare.
	* dwarf.c (dwarf_regnames_s390): New.
	(init_dwarf_regnames_s390): New.
	(init_dwarf_regnames): Call it.
	* objdump.c (dump_dwarf): Likewise.

2016-04-11  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips16-undecoded.d: New test.
	* testsuite/binutils-all/mips/mips16-undecoded.s: New test
	source.
	* testsuite/binutils-all/mips/mips.exp: Run the new test.

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

	PR 19872
	* dwarf.c (display_debug_aranges): Skip warning about unrecognised
	version number if the version is zero.

2016-03-29  Alan Modra  <amodra@gmail.com>

	* readelf.c (get_data): Use BFD_VMA_FMT to print bfd_size_type vars.
	(get_dynamic_data): Likewise.

2016-03-22  Nick Clifton  <nickc@redhat.com>

	PR 19851
	* dwarf.c (SAFE_BYTE_GET): Replace local dynamic array allocation
	with run time size check.

	* configure: Regenerate.

2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>

	* readelf.c (decode_ARC_machine_flags): Handle nps400.

2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>

	* readelf.c (get_machine_flags): Move arc processing into...
	(decode_ARC_machine_flags): ... new function.  Remove use of
	EF_ARC_CPU_GENERIC, change default case from "generic arc" to
	"unknown arc".  Merged ABI printing between two machine types.

2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>

	* testsuite/binutils-all/objdump.exp (cpus_expected): Add ARC700
	to the architecture list.

2016-03-21  Nick Clifton  <nickc@redhat.com>

	* dlltool.c: Replace use of alloca with call to xmalloc.
	* dllwrap.c: Likewise.
	* nlmconv.c: Likewise.
	* objdump.c: Likewise.
	* resrc.c: Likewise.
	* winduni.c: Likewise.
	* configure: Regenerate.

2016-03-07  Nick Clifton  <nickc@redhat.com>

	PR binutils/19775
	* testsuite/binutils-all/ar.exp (proc empty_archive): New proc.
	Run the new proc.
	* testsuite/binutils-all/empty: New, empty, file.

2016-03-04  Matthew Wahab  <matthew.wahab@arm.com>

	* readelf.c (arm_attry_tag_FP_arch): Add "NEON for ARMv8.1".

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

	PR ld/19645
	* NEWS: Mention --elf-stt-common= for objcopy.
	* doc/binutils.texi: Document --elf-stt-common= for objcopy.
	* objcopy.c (do_elf_stt_common): New.
	(command_line_switch): Add OPTION_ELF_STT_COMMON.
	(copy_options): Add --elf-stt-common=.
	(copy_usage): Add --elf-stt-common=.
	(copy_object): Also check do_elf_stt_common for ELF targets.
	(copy_file): Handle do_elf_stt_common.
	(copy_main): Handle OPTION_ELF_STT_COMMON.
	* readelf.c (apply_relocations): Support STT_COMMON.
	* testsuite/binutils-all/common-1.s: New file.
	* testsuite/binutils-all/common-1a.d: Likewise.
	* testsuite/binutils-all/common-1b.d: Likewise.
	* testsuite/binutils-all/common-1c.d: Likewise.
	* testsuite/binutils-all/common-1d.d: Likewise.
	* testsuite/binutils-all/common-1e.d: Likewise.
	* testsuite/binutils-all/common-1f.d: Likewise.
	* testsuite/binutils-all/common-2.s: Likewise.
	* testsuite/binutils-all/common-2a.d: Likewise.
	* testsuite/binutils-all/common-2b.d: Likewise.
	* testsuite/binutils-all/common-2c.d: Likewise.
	* testsuite/binutils-all/common-2d.d: Likewise.
	* testsuite/binutils-all/common-2e.d: Likewise.
	* testsuite/binutils-all/common-2f.d: Likewise.
	* testsuite/binutils-all/objcopy.exp
	(objcopy_test_elf_common_symbols): New proc.
	Run objcopy_test_elf_common_symbols for ELF targets

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

	PR binutils/19647
	* readelf.c (get_section_type_name): Add a missing break.

2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>

	* readelf.c (is_32bit_pcrel_reloc): Add R_ARC_32_PCREL.

2016-02-15  Nick Clifton  <nickc@redhat.com>

	* readelf.c (get_section_type_name): Add hex prefix to offsets
	printed for LOPROC and LOOS values.  Ensure that a result is
	always returned for the V850 target, even when an unrecognised
	processor specific value is encountered.
	(process_section_headers): Display key values in the order in
	which they appear to the user.  Add the "C (compressed)" value to
	the list.

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

	* doc/binutils.texi: Fix a typo.

2016-02-05  Cupertino Miranda  <Cupertino.Miranda@synopsys.com>

	* testsuite/binutils-all/objdump.exp: Update expected default
	architecture value for ARC binaries.

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

	PR binutils/19547
	* testsuite/binutils-all/objcopy.exp
	(objcopy_test_without_global_symbol): New proc.
	Run objcopy_test_without_global_symbol.
	* testsuite/binutils-all/pr19547.c: New file.

2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/19523
	* Makefile.am (check-DEJAGNU): Pass CC and CC_FOR_BUILD to
	runtest.
	* Makefile.in: Regenerated.
	* testsuite/binutils-all/compress.exp (test_gnu_debuglink): New
	proc.
	Run test_gnu_debuglink for native ELF build.

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

	PR 19495
	* testsuite/binutils-all/dlltool.exp: Fix tests for targets which
	do not support inserting leading underscores.

2016-01-20  Mickael Guene  <mickael.guene@st.com>

	* readelf.c (get_elf_section_flags): Display y letter for section
	with SHF_ARM_NOREAD section flag in readelf section output.
	(process_section_headers): Add y letter in readelf section output
	key mapping for ARM architecture.
	* objdump.c (dump_section_header): Display NOREAD attributes as
	well.
	* doc/binutils.texi (objdump): Note that it is correct for
	sections to have both the READONLY and NOREAD attributes.

2016-01-19  John Baldwin  <jhb@FreeBSD.org>

	* readelf.c (get_freebsd_elfcore_note_type): Remove unused variable.

2016-01-19  John Baldwin  <jhb@FreeBSD.org>

	* readelf.c (get_freebsd_elfcore_note_type): New
	(process_note): Add support for FreeBSD core notes.

2016-01-18  Miranda Cupertino  <Cupertino.Miranda@synopsys.com>
	    Zissulescu Claudiu  <Claudiu.Zissulescu@synopsys.com>

	* readelf.c (get_machine_flags): Add support for newer ARC ELF
	header flags.

2016-01-18  Alan Modra  <amodra@gmail.com>

	* configure: Regenerate.

2016-01-17  Alan Modra  <amodra@gmail.com>

	* configure: Regenerate.

2016-01-17  Alan Modra  <amodra@gmail.com>

	* testsuite/lib/binutils-common.exp (is_elf_format): Return true
	for m68hc11/12 and xgate triples.

2016-01-17  Alan Modra  <amodra@gmail.com>

	* readelf.c (is_32bit_abs_reloc): Add R_M68HC11_32.

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

	Update year range in copyright notice of all files.

For older changes see ChangeLog-2015 and testsuite/ChangeLog-1215

Copyright (C) 2016 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:
