2017-09-27  Nick Clifton  <nickc@redhat.com>

	PR 22219
	* dwarf.c (process_debug_info): Add a check for a negative
	cu_length field.

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

	PR 22216
	* readelf.c (process_symbol_table): Check that DT_HASH symbol
	chains are only visited once, and report an error if not.  Display
	invalid symbol index if chain is out of range.  Use the same logic
	when calculating histograms rather than the PR 17531 fix.  Delete
	bogus check that chained index is less than number of buckets.

2017-09-26  Nick Clifton  <nickc@redhat.com>

	PR 22154
	* dwarf.c (get_line_filename_and_dirname): Add extra checks for
	buffer overruns.

2017-09-26  Nick Clifton  <nickc@redhat.com>

	* README-how-to-make-a-release: New file.

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

	PR 21732
	* dwarf.c (READ_ULEB): Don't use DWARF_VMA_FMT in translated string.
	(READ_SLEB): Likewise.
	* readelf.c (bfd_vmatoa): New function.
	(get_data, get_dynamic_data): Use it for printing error messages.

2017-09-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/22203
	* nm.c (display_rel_file): Free memory returned from
	bfd_get_synthetic_symtab.

2017-09-22  Alexandre Oliva <aoliva@redhat.com>

	* dwarf.h (debug_info): Add loc_views and num_loc_views.
	* dwarf.c (vm1): New constant.
	(print_dwarf_view): New function.
	(read_and_display_attr_value): Support DW_AT_GNU_locviews.
	(process_debug_info): Keep num_loc_offsets and num_loc_views
	in sync.
	(display_view_pair_list): New function.
	(display_loc_list_dwo): Take vstart_ptr; update it.  Dump
	location view pairs before the range they apply to, when a
	viewlist augments the loc list.
	(display_loc_list): Likewise.  Check view numbers in range
	tests.
	(display_loclists_list): Likewise.  Handle view pair entries,
	and warn on trailing ones.
	(loc_views): New variable.
	(loc_offsets_compar): Compare loc_views if loc_offsets are the
	same.
	(display_debug_loc): Check and sort loc_views too.  Accept
	loc_view as expected_start.  Skip if lists and views are the
	same.  Dump locview list separately in order, and pass the
	locview list base to each list dump function.  Warn and skip
	overlap and hole checking if we find loclists and locviews to
	not be adjacent.
	* testsuite/binutils-all/locview-1.s: New.
	* testsuite/binutils-all/readelf.locview-1: New.
	* testsuite/binutils-all/locview-2.s: New.
	* testsuite/binutils-all/readelf.locview-2: New.
	* testsuite/binutils-all/readelf.exp: Run new tests.  Fix
	option spelling in pr18374 fail message.  XFAIL dw5 test on
	nds32*-elf.

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

	* testsuite/binutils-all/readelf.exp: Don't perror and exit on
	bintest.s assembly failure.  Report tests unresolved instead.
	Likewise for version note test, pr18374, decompress, and dw5
	tests.
	(readelf_test): Set testname to include both option and binary
	file name.  Use for pass/fail.

2017-09-21  Maciej W. Rozycki  <macro@imgtec.com>

	* readelf.c (get_machine_flags) <E_MIPS_MACH_5900>: New case.

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

	PR 21995
	* readelf.c (process_mips_specific): Add checks for a NULL data
	pointer.

2017-09-05  Alexander Fedotov <alexander.fedotov@nxp.com>
	    Edmar Wienskoski <edmar.wienskoski@nxp.com

	* readelf.c (get_elf_section_flags): Add VLE.
	(process_section_headers): Add VLE key to details.

2017-08-25  Alan Modra  <amodra@gmail.com>

	PR 21994
	* readelf.c (process_version_sections <SHT_GNU_verdef>): Check
	vd_aux and vda_next for sanity.  Delete "end".  Correct overflow
	checks.
	(process_version_sections <SHT_GNU_verneed>): Correct overflow
	check.  Don't report invalid vna_next on overflow.  Do report
	invalid vna_next on size less than aux info.

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

	PR 21990
	* readelf.c (process_version_sections <SHT_GNU_verneed>): Check
	for invalid vn_next field before adding to idx.  Use unsigned
	long for index vars.  Move index checks.
	<SHT_GNU_verdef>: Likewise for vd_next.

2017-08-17  Nick Clifton  <nickc@redhat.com>

	* testsuite/binutils-all/note-3-64.s: New test.  Checks assembly
	and decoding of version2 GNU build attribute notes.
	* testsuite/binutils-all/note-3-32.s: New test.  32-bit version of
	the above test.
	* testsuite/binutils-all/note-3-64.d: New test driver.
	* testsuite/binutils-all/note-3-32.d: New test driver.
	* testsuite/binutils-all/objcopy.exp: Run the new test.
	* readelf.c (is_64bit_abs_reloc): Add R_SPARC_64.

2017-08-14  Gustavo Romero  <gromero@linux.vnet.ibm.com>

	* readelf.c (get_note_type): Handle PPC note types available
	since Linux 4.8.

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

	* readelf.c (process_note): Qualify NT_GNU_BUILD_ATTRIBUTE notes
	by name data.

2017-08-08  Nick Clifton  <nickc@redhat.com>

	PR 21909
	* prdbg.c (pr_int_type): Increase size of local string buffer.
	(pr_float_type): Likewise.
	(pr_bool_type): Likewise.

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

	PR 21702
	* arsup.c (ar_addmod): Add plugin support for the MRI ADDMOD
	command.

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

	* testsuite/binutils-all/objdump.exp (cpus_expected): Add am33-2.

2017-08-02  Alan Modra  <amodra@gmail.com>

	* readelf.c (is_32bit_abs_reloc): Add R_IA64_SECREL32MSB and
	R_IA64_DIR32MSB.
	(is_64bit_abs_reloc): Add R_IA64_DIR64MSB.
	(is_64bit_pcrel_reloc): Add R_IA64_PCREL64MSB.

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

	* po/sv.po: Updated Swedish translation.

2017-07-31  Marty Plummer  <ntzrmtthihu777@gmail.com>

	PR 21861
	* winduni.c (codepages): Use cp1252 for codepage 0.

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

	PR 21820
	* readelf.c (dump_section_as_strings): Do not fail if the section
	was empty.
	(dump_section_as_bytes): Likewise.

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

	PR 21813
	* rddbg.c (read_symbol_stabs_debugging_info): Check for an empty
	string whilst concatenating symbol names.

2017-07-21  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Updated French translation.

2017-07-21  Simon Marchi  <simon.marchi@ericsson.com>

	* dwarf.c (last_pointer_size, warned_about_missing_comp_units):
	Remove.
	(load_debug_info): Remove assignments to those two variables.

2017-07-21  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf.c (struct State_Machine_Registers): Add view field.
	(reset_state_machine): Reset view.
	(process_extended_line_op): Reset view when appropriate.
	(display_debug_lines_raw): Increment or reset view when appropriate.
	Print nonzero views.  Support print view resets, disabled by default.
	(display_debug_lines_decoded): Likewise.  Disambiguate op_code tests,
	enabling printing of end_sequence.
	* testsuite/binutils-all/dw2-1.W: Add nonzero views.
	* testsuite/binutils-all/dw2-3.W: Likewise.
	* testsuite/binutils-all/dw2-3gabi.W: Likewise.
	* testsuite/binutils-all/dw5.W: Add end sequence lines.
	* testsuite/binutils-all/i386/compressed-1a.d: Add nonzero views.
	* testsuite/binutils-all/libdw2-compressedgabi.out: Likewise.
	* testsuite/binutils-all/objdump.W: Likewise.
	* testsuite/binutils-all/objdump.WL: Add end sequence lines.
	* testsuite/binutils-all/x86-64/compressed-1a.d: Add nonzero views.

2017-07-19  Tristan Gingold  <gingold@adacore.com>

	* nm.c (show_stats): Remove variable.
	(long_options): Remove --stats option.
	(main): Remove handling of --stats.

2017-07-18  Nick Clifton  <nickc@redhat.com>

	PR 21775
	* coffgrok.c: Fix spelling typos.
	* readelf.c: Likewise.
	* stabs.c: Likewise.
	* testsuite/binutils-all/objcopy.exp: Likewise.

2017-07-18  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.

2017-07-18  Hans-Peter Nilsson  <hp@bitrange.com>

	* dwarf.c (display_debug_names): Initialize hash_prev.

2017-07-17  Nick Clifton  <nickc@redhat.com>

	PR 21433
	* ar.c (main): Skip check for no files on the command line when
	running in MRI mode.

2017-07-13  H.J. Lu  <hongjiu.lu@intel.com>

	* testsuite/binutils-all/objdump.exp: Always delete $testarchive
	first.

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

	* po/bg.po: Update from translationproject.org/latest/binutils/.
	* po/ca.po: Likewise.
	* po/da.po: Likewise.
	* po/es.po: Likewise.
	* po/fi.po: Likewise.
	* po/fr.po: Likewise.
	* po/hr.po: Likewise.
	* po/id.po: Likewise.
	* po/it.po: Likewise.
	* po/ja.po: Likewise.
	* po/ro.po: Likewise.
	* po/ru.po: Likewise.
	* po/sk.po: Likewise.
	* po/sr.po: Likewise.
	* po/sv.po: Likewise.
	* po/tr.po: Likewise.
	* po/uk.po: Likewise.
	* po/vi.po: Likewise.
	* po/zh_CN.po: Likewise.
	* po/zh_TW.po: Likewise.

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

	Fix compile time warnings using gcc 7.1.1.
	* dwarf.c (dwarf_vmatoa_1): Do not pass a NULL string pointer to
	sprintf.
	* srconv.c (walk_tree_type): Initialise the spare field of the
	IT_dty structure.

2017-07-11  Andreas Schwab  <schwab@suse.de>

	* readelf.c (process_note): Print newline after description data
	in narrow mode.
	(print_core_note): Print newline if nothing was printed in wide
	mode.

2017-07-09  Rafael Fontenelle <rafaelff@gnome.org>

	* dwarf.c (display_formatted_table): Fix error message typo.

2017-07-07  John Baldwin  <jhb@FreeBSD.org>

	* readelf.c (get_freebsd_elfcore_note_type): Handle
	NT_FREEBSD_PTLWPINFO.

2017-07-05  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf.c (display_debug_names): Replace index with xindex.

2017-07-04  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

2017-07-04  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Add marker for 2.29.

2017-07-03  Tristan Gingold  <gingold@adacore.com>

	* po/binutils.pot: Regenerate.

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

	* strings.c (filename_and_size_t): Delete.
	(strings_a_section): Don't check section size against file size.
	Use bdf_malloc_and_get_section.  Report an error on failures.
	Replace arg param with filename and got_a_section param.
	(got_a_section): Move to..
	(strings_object_file): ..an auto var here.  Iterate over sections
	rather than calling bfd_map_over_sections.  Adjust strings_a_section
	call.

2017-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c: Include assert.h.
	(MAX, MIN, get_IDX_name, display_debug_names): New.
	(debug_displays): Add .debug_names.
	* dwarf.h: (enum dwarf_section_display_enum): Add debug_names.
	* readelf.c (process_section_headers): Add ".debug_names".

2017-07-01  Alan Modra  <amodra@gmail.com>

	PR binutils/21665
	* objdump.c (strtab): Make var a bfd_byte*.
	(disassemble_section): Don't limit malloc size.  Instead, use
	bfd_malloc_and_get_section.
	(read_section_stabs): Use bfd_malloc_and_get_section.  Return
	bfd_byte*.
	(find_stabs_section): Remove now unnecessary cast.
	* objcopy.c (copy_object): Use bfd_malloc_and_get_section.  Free
	contents on error return.
	* nlmconv.c (copy_sections): Use bfd_malloc_and_get_section.

2017-06-30  Nick Clifton  <nickc@redhat.com>

	PR binutils/21665
	* objdump.c (disassemble_section): Move check for an overlarge
	section to just before the allocation of memory.  Do not check
	section size against file size, but instead use an arbitrary 2Gb
	limit.  Issue a warning message if the section is too big.

2017-06-30  Maciej W. Rozycki  <macro@imgtec.com>

	* NEWS: Mention microMIPS XPA support.

2017-06-30  Maciej W. Rozycki  <macro@imgtec.com>

	* NEWS: Mention microMIPS Release 5 ISA support.

2017-06-30  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips-xpa-virt-1.d: New test.
	* testsuite/binutils-all/mips/mips-xpa-virt-2.d: New test.
	* testsuite/binutils-all/mips/mips-xpa-virt-3.d: New test.
	* testsuite/binutils-all/mips/mips-xpa-virt-4.d: New test.
	* testsuite/binutils-all/mips/mips-xpa-virt.s: New test source.
	* testsuite/binutils-all/mips/mips.exp: Run the new tests.

2017-06-29  Anton Kolesov  <Anton.Kolesov@synopsys.com>

	* testsuite/binutils-all/arc/double_store.s: New file.
	* testsuite/binutils-all/arc/objdump.exp: Tests for disassembler
	options.
	(do_objfile): New function.
	(check_assembly): Likewise.

2017-06-29  Andreas Arnez  <arnez@linux.vnet.ibm.com>

	* readelf.c (get_note_type): Add NT_S390_GS_CB and NT_S390_GS_BC.

2017-06-28  H.J. Lu  <hongjiu.lu@intel.com>

	* objdump.c (dump_relocs_in_section): Cast to ufile_ptr when
	comparing against bfd_get_file_size return.

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

	* objcopy.c (merge_gnu_build_notes): Add support for version 2 notes.
	* readelf.c (print_gnu_build_attribute_name): Likewise.

2017-06-28  Maciej W. Rozycki  <macro@imgtec.com>
	    Matthew Fortune  <matthew.fortune@imgtec.com>

	* readelf.c (get_machine_flags) <E_MIPS_MACH_IAMR2>: New case.
	(print_mips_isa_ext) <AFL_EXT_INTERAPTIV_MR2>: Likewise.
	* NEWS: Mention Imagination interAptiv MR2 processor support.

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

	PR binutils/21665
	* objdump.c (disassemble_section): Skip any section that is bigger
	than the entire file.

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

	PR binutils/21659
	* bucomm.c (get_file_size): Explicitly warn if the file is a
	directory.

2017-06-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* readelf.c (arm_attr_tag_CPU_arch): Fill value for ARMv8-R.

2017-06-23  Nick Clifton  <nickc@redhat.com>

	PR binutils/21659
	* strings.c (strings_file): Warn about attempts to run strings on
	a directory.

2017-06-22  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (decode_x86_feature): Decode
	GNU_PROPERTY_X86_FEATURE_1_SHSTK.
	* testsuite/binutils-all/i386/shstk.d: New file.
	* testsuite/binutils-all/i386/shstk.s: Likewise.
	* testsuite/binutils-all/x86-64/shstk-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/shstk.d: Likewise.
	* testsuite/binutils-all/x86-64/shstk.s: Likewise.

2017-06-22  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (decode_x86_feature): New.
	(print_gnu_property_note): Call decode_x86_feature on
	GNU_PROPERTY_X86_FEATURE_1_AND.
	* testsuite/binutils-all/i386/empty.d: New file.
	* testsuite/binutils-all/i386/empty.s: Likewise.
	* testsuite/binutils-all/i386/ibt.d: Likewise.
	* testsuite/binutils-all/i386/ibt.s: Likewise.
	* testsuite/binutils-all/x86-64/empty-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/empty.d: Likewise.
	* testsuite/binutils-all/x86-64/empty.s: Likewise.
	* testsuite/binutils-all/x86-64/ibt-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/ibt.d: Likewise.
	* testsuite/binutils-all/x86-64/ibt.s: Likewise.

2017-06-21  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf.c (READ_ULEB): Use DWARF_VMA_FMT to report error.
	(READ_SLEB): Likewise.

2017-06-21  Nick Clifton  <nickc@redhat.com>

	PR binutils/21648
	* dwarf.c (LEB): Rename to SKIP_ULEB and READ_ULEB.  Add check for
	reading a value that is too big for the containing variable.
	(SLEB): Rename to SKIP_SLEB and READ_SLEB.  Add similar check.
	Replace uses of LEB and SLEB with appropriate new macro.
	(display_debug_frames): Use an unsigned int for the 'reg'
	variable.  Use a signed long for the 'l' variable.

2017-06-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* readelf.c (get_s390_segment_type): Add support for the new
	segment type PT_S390_PGSTE.
	(get_segment_type): Call get_s390_segment_type.

2017-06-19  Nick Clifton  <nickc@redhat.com>

	PR binutils/21619
	* objdump.c (disassemble_bytes): Check that there is sufficient
	data available before attempting to display it.

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

	* sysinfo.y: Free memory allocated by token NAME.

2017-05-30  Anton Kolesov  <anton.kolesov@synopsys.com>

	* doc/binutils.texi: Document new cpu=... disassembler options for ARC.

2017-05-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/21519
	* objdump.c (dump_relocs_in_section): Replace get_file_size
	with bfd_get_file_size to get archive element size.
	* testsuite/binutils-all/objdump.exp (test_objdump_f): New
	proc.
	(test_objdump_h): Likewise.
	(test_objdump_t): Likewise.
	(test_objdump_r): Likewise.
	(test_objdump_s): Likewise.
	Add objdump tests on archive.

2017-05-24  Yao Qi  <yao.qi@linaro.org>

	* objdump.c (disassemble_data): Caller update.

2017-05-19  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* objcopy.c (merge_gnu_build_notes): Remove workaround that
	prevented deleting relocations in duplicated notes in mips64 and
	sparc.

2017-05-19  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips-note-2.d: New test.
	* testsuite/binutils-all/mips/mips-note-2r.d: New test.
	* testsuite/binutils-all/mips/mips-note-2-n32.d: New test.
	* testsuite/binutils-all/mips/mips-note-2-n64.d: New test.
	* testsuite/binutils-all/mips/mips-note-2r-n32.d: New test.
	* testsuite/binutils-all/mips/mips-note-2r-n64.d: New test.
	* testsuite/binutils-all/mips/mips.exp: Define `has_newabi'.
	Run the new tests.

2017-05-19  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/lib/utils-lib.exp (run_dump_test): Handle the `dump'
	option.

2017-05-19  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* NEWS: Mention the SPARC M8 support.

2017-05-19  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips.exp: Bail out right away if
	non-ELF.

2017-05-18  Alan Modra  <amodra@gmail.com>

	* strings.c: Don't compare boolean values against TRUE or FALSE.

2017-05-15  Jeff Law  <law@redhat.com>

	* readelf.c (display_arc_attribute): Avoid implicit fallthru.

2017-05-15  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips16-undecoded.d: Add `-mips3'
	to `as' flags.
	* testsuite/binutils-all/mips/mips16e2-undecoded.d: New test.
	* testsuite/binutils-all/mips/mips16e2-extend-insn.d: New test.
	* testsuite/binutils-all/mips/mips16-undecoded.s: Remove
	`.module mips3'.
	* testsuite/binutils-all/mips/mips.exp: Run the new tests.

2017-05-15  Maciej W. Rozycki  <macro@imgtec.com>

	* readelf.c (print_mips_ases): Handle MIPS16e2 ASE.
	* NEWS: Mention MIPS16e2 ASE support.

2017-05-12  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips16-extend-insn.d: Adjust BREAK
	and SDBBP disassembly.

2017-05-10  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips.exp: Define `tempfile' and
	`copyfile' variables.

2017-05-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* readelf.c (decode_ARC_machine_flags): Recognize OSABI v4.
	(get_arc_section_type_name): New function.
	(get_section_type_name): Use the above function.
	(display_arc_attribute): New function.
	(process_arc_specific): Likewise.
	(process_arch_specific): Handle ARC specific information.

2017-05-09  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* MAINTAINERS (SH): Remove myself as SH maintainer.

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

	* objcopy.c (merge_gnu_build_notes): Cast relcount to unsigned
	long when comparing with sec->reloc_count.

2017-05-02  Nick Clifton  <nickc@redhat.com>

	* objcopy.c (merge_gnu_build_notes): Disable merge if there are
	more internal relocs than external relocs.

2017-05-02  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips16-undecoded.d: Adjust the
	disassembly of PC-relative LA and LW synthetic instructions.

2017-05-02  Nick Clifton  <nickc@redhat.com>

	PR 21440
	* objdump.c (dump_relocs_in_section): Check for an excessive
	number of relocs before attempting to dump them.

2017-05-01  Alan Modra  <amodra@gmail.com>

	* objcopy.c (merge_gnu_build_notes): Correct code deleting
	relocs.

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

	PR binutils/21439
	* readelf.c (print_gnu_build_attribute_name): Allow for an empty
	name field.

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

	PR binutils/21437
	* readelf.c (process_version_sections): Check for underflow when
	computing the start address of the auxillary version data.

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

	PR binutils/21438
	* dwarf.c (process_extended_line_op): Do not assume that the
	string extracted from the section is NUL terminated.
	(fetch_indirect_string): If the string retrieved from the section
	is not NUL terminated, return an error message.
	(fetch_indirect_line_string): Likewise.
	(fetch_indexed_string): Likewise.

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

	PR binutils/21433
	* bucomm.c (get_file_size): Return -1 if file_name is NULL.
	* ar.c (main): Fail with usage() invocation if no file names are
	provided.

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

	* readelf.c (process_section_headers): Warn about overlarge
	sections.
	(print_gnu_build_attribute_name): Print the number of unrecognised
	note types.  Fix formatting in the presence of errors.
	(testsuite/binutils-all/note-2-32.s): Fix encoding of numeric notes.
	(testsuite/binutils-all/note-2-64.s): Likewise.

2017-04-26  Maciej W. Rozycki  <macro@imgtec.com>

	* readelf.c (process_mips_specific): Add static GOT support.

2017-04-25  Maciej W. Rozycki  <macro@imgtec.com>

	* readelf.c (process_mips_specific): Remove error reporting from
	GOT[1] processing.

2017-04-25  Maciej W. Rozycki  <macro@imgtec.com>

	* readelf.c (process_mips_specific): Remove null GOT data check.

2017-04-25  Maciej W. Rozycki  <macro@imgtec.com>

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

2017-04-23  Alan Modra  <amodra@gmail.com>

	PR 21418
	* ar.c (main): Check -a, -b, -i and -N args are given.

2017-04-23  Alan Modra  <amodra@gmail.com>

	PR 21417
	* ar.c (main): Check that an archive file is given after options.

2017-04-23  Alan Modra  <amodra@gmail.com>

	PR 21415
	* objdump.c (disassemble_section): Check bfd_get_section_contents
	status.

2017-04-23  Alan Modra  <amodra@gmail.com>

	PR 21408
	* dwarf.c (display_debug_lines_decoded): Don't segfault on NULL
	file_table.

2017-04-21  Nick Clifton  <nickc@redhat.com>

	PR binutils/21378
	* readelf.c (print_gnu_build_attribute_name): Check for an
	overlarge name field.

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

	PR binutils/21379
	* readelf.c (process_dynamic_section): Detect over large section
	offsets in the DT_SYMTAB entry.

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

	PR binutils/21345
	* readelf.c (process_mips_specific): Catch an unfeasible memory
	allocation before it happens and print a suitable error message.

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

	* objcopy.c: Add --no-merge-notes option to disable note merging.
	Add --[no-]merge-notes option to strip, and enable it by default.
	(num_bytes): New function.
	(merge_gnu_build_notes): Add code to merge stack size notes.
	* binutils.texi: Update strip and objcopy documentation.
	* readelf.c (print_gnu_build_attribute_name): Use defined
	constants for note types.

2017-04-10  John Delsignor  <john.delsignore@roguewave.com>

	PR binutils/21319
	* dwarf.c (display_gdb_index): Correct test for a corrupt address
	table size.

2017-04-05  Jiong Wang  <jiong.wang@arm.com>

	* objcopy.c (struct redefine_node): Delete the field "next".
	(redefine_sym_list): Deleted.
	(redefine_specific_htab): New hash table.
	(redefine_specific_reverse_htab): Likewise.
	(eq_string_redefnode): New function.
	(htab_hash_redefnode): Likewise.
	(create_symbol2redef_htab): Likewise.
	(add_specific_symbol_node): Likewise.
	(create_symbol_htabs): Create redefine_specific_htab and
	redefine_specific_reverse_htab.
	(lookup_sym_redefinition): Use hash table instead of list.
	(redefine_list_append): Likewise, and rename to add_redefine_and_check.
	(copy_main): Use redefine_specific_htab instead of redefine_sym_list.
	Update comments.

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

	* NEWS: Mention support for ELF SHF_GNU_MBIND and
	PT_GNU_MBIND_XXX.
	* readelf.c (get_segment_type): Handle PT_GNU_MBIND_XXX.
	(get_elf_section_flags): Handle SHF_GNU_MBIND.
	(process_section_headers): Likewise.
	* testsuite/binutils-all/mbind1.s: New file.
	* testsuite/binutils-all/objcopy.exp: Run readelf test on
	mbind1.s.

2017-04-03  Nick Clifton  <nickc@redhat.com>

	PR binutils/21345
	* readelf.c (get_program_headers): Check for there being too many
	program headers before attempting to allocate space for them.

2017-04-03  Nick Clifton  <nickc@redhat.com>

	PR binutils/21344
	* readelf.c (process_mips_specific): Check for an out of range GOT
	entry before reading the module pointer.

2017-04-03  Nick Clifton  <nickc@redhat.com>

	PR binutils/21343
	* readelf.c (get_unwind_section_word): Fix snafu checking for
	invalid word offsets in ARM unwind information.

2017-03-31  Pip Cet  <pipcet@gmail.com>

	* NEWS: Use "WebAssembly" consistently.
	* testsuite/binutils-all/wasm32/wasm32.exp: Fix copyright notice.

2017-03-30  Pip Cet  <pipcet@gmail.com>

	* readelf.c: Add support for wasm32 ELF format WebAssembly files.
	(guess_is_rela): Likewise.
	(dump_relocations): Likewise.
	(is_32bit_abs_reloc): Likewise.
	(is_none_reloc_): Likewise.
	* NEWS: Mention the new support.
	* testsuite/lib/binutils-common.exp (is_elf_format): Mark wasm32
	as ELF target.
	(supports_gnu_unique): Mark wasm32 as supporting STB_GNU_UNIQUE.
	* testsuite/binutils-all/nm.exp: Mark wasm32 as requiring .size annotations.
	* testsuite/binutils-all/wasm32: New directory.
	* testsuite/binutils-all/wasm32/create-wasm.d: New file.
	* testsuite/binutils-all/wasm32/create-wasm.s: Likewise.
	* testsuite/binutils-all/wasm32/custom-section.d: Likewise.
	* testsuite/binutils-all/wasm32/custom-section.s: Likewise.
	* testsuite/binutils-all/wasm32/invalid-wasm-1.d: Likewise.
	* testsuite/binutils-all/wasm32/invalid-wasm-1.s: Likewise.
	* testsuite/binutils-all/wasm32/long-sections.d: Likewise.
	* testsuite/binutils-all/wasm32/long-sections.s: Likewise.
	* testsuite/binutils-all/wasm32/parse-wasm.d: Likewise.
	* testsuite/binutils-all/wasm32/parse-wasm.s: Likewise.
	* testsuite/binutils-all/wasm32/parse-wasm-2.d: Likewise.
	* testsuite/binutils-all/wasm32/parse-wasm-2.s: Likewise.
	* testsuite/binutils-all/wasm32/prepared-section.d: Likewise.
	* testsuite/binutils-all/wasm32/prepared-section.s: Likewise.
	* testsuite/binutils-all/wasm32/wasm32.exp: New file, run tests.

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

	* doc/binutils.texi (objdump): Document PowerPC -M options.

2017-03-21  Andi Kleen  <ak@linux.intel.com>

	* objdump.c (unwind_inlines): Add.
	(option_values): Add OPTION_INLINES.
	(show_line): Unwind inlines if requested.
	(main): Parse OPTION_INLINES.
	(usage): Document --inlines.
	* doc/binutils.texi: Document --inlines.
	* NEWS: Likewise.

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

	* readelf.c (print_gnu_build_attribute_name): Allow stack
	protection notes to contain numeric values.  Use a colon rather
	than a space to separate a string name from its values.  Decode
	the numeric value of a stack protection note.
	* objcopy.c (merge_gnu_build_notes): Allow version notes to
	contain extra text after the protocol version number.

2017-03-20  Mark Wielaard  <mark@klomp.org>

	* readelf.c (process_program_headers): Move dynamic_addr check
	after .dynamic section cross check.

2017-03-17  Nick Clifton  <nickc@redhat.com>

	* readelf.c (print_gnu_build_attribute_name): Fix off by one error
	printing the value for a build note with an ascii name.

2017-03-16  Nick Clifton  <nickc@redhat.com>

	* readelf.c (print_gnu_build_attribute_name): Add support for
	GNU_BUILD_ATTRIBUTE_SHORT_ENUM.

2017-03-14  Nick Clifton  <nickc@redhat.com>

	* readelf.c (print_gnu_build_attribute_description): Move symbol
	printing code to...
	(print_symbol_for_build_attribute): New function.  ...here.
	Add to find the best symbol to associate with an OPEN note.
	Add code to cache the symbol table and string table, so that they
	are not loaded every time a note is displayed.
	* testsuite/binutils-all/note-2-32.s: Add a function symbol.
	* testsuite/binutils-all/note-2-64.s: Likewise.
	* testsuite/binutils-all/note-2-32.d: Update expected note output.
	* testsuite/binutils-all/note-2-64.d: Likewise.

2017-03-13  Alan Modra  <amodra@gmail.com>
	    Taeung Song <treeze.taeung@gmail.com>

	* objdump.c (update_source_path): Add abfd param.  Add struct
	stat var.  Pass to try_print_file_open.  Warn if source is more
	recent than object.
	(try_print_file_open, slurp_file): Add struct stat param to
	return fstat.
	(show_line): Call update_source_path with bfd.

2017-03-10  Chia-Hao Lo  <fcamel@gmail.com>

	PR binutils/21235
	* objdump.c (main): Set do_wide with --wide.

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

	* readelf.c (get_machine_name): Rearrange switch table in order of
	increasing machine number.  Add missing entries.

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

	PR binutils/21231
	* readelf.c (decode_x86_isa): Change argument to unsigned int.
	(print_gnu_property_note): Retrieve property type and datasz as
	4-byte integer.  Consolidate property datasz check.  Check
	GNU_PROPERTY_LOPROC and GNU_PROPERTY_LOUSER.
	* testsuite/binutils-all/i386/pr21231a.d: New file.
	* testsuite/binutils-all/i386/pr21231a.s: Likewise.
	* testsuite/binutils-all/i386/pr21231b.d: Likewise.
	* testsuite/binutils-all/i386/pr21231b.s: Likewise.
	* testsuite/binutils-all/x86-64/pr21231a.d: Likewise.
	* testsuite/binutils-all/x86-64/pr21231a.s: Likewise.
	* testsuite/binutils-all/x86-64/pr21231b.d: Likewise.
	* testsuite/binutils-all/x86-64/pr21231b.s: Likewise.

2017-03-06  Nick Clifton  <nickc@redhat.com>

	* readelf.c (print_gnu_build_attribute_name): Read byte values
	from the name string as unsigned bytes.
	(process_notes_at): Use memcpy to copy an unterminated name
	string.

2017-03-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>

	* configure.ac (AC_CHECK_DECLS): Add asprintf.
	* config.in: Regenerate.
	* configure: Regenerate.

2017-03-02  Nick Clifton  <nickc@redhat.com>

	* readelf.c (print_gnu_build_attribute_description): Use global
	symbols for OPEN attributes if at all possible.
	* objcopy.c (is_merged_note_section): Support build note sections
	without the SHF_GNU_BUILD_NOTE section flag set.

2017-03-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (debug_displays_assert): New static assertion.

2017-03-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.h (enum dwarf_section_display_enum): Add loclists and rnglists.

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

	* readelf.c (get_note_type): Add support for GNU_BUILD_NOTEs.
	(get_gnu_elf_note_type): Add support for GNU_PROPERTY_NOTEs.
	(decode_x86_isa): New function.
	(print_gnu_property_note): New function.
	(print_gnu_note): Handle GNU_PROPERTY_NOTEs.
	(print_gnu_build_attribute_description): New function.
	(print_gnu_build_attribute_name): New function.
	(process_note): Add support for GNU_BUILD_NOTEs.
	* objcopy.c (--merge-notes): New command line option.
	(copy_options): Add merge-notes.
	(copy_usage): Likewise.
	(is_merge_note_section): New function.
	(merge_gnu_build_notes): New function.
	(copy_object): Merge note sections if asked to do so.
	(skip_section): Add skip_copy parameter.  Add support for skipping
	merged note sections.
	(copy_relocations_in_section): Update call to skip_section.
	(copy_section): Likewise.
	(copy_main): Add support for merge-notes option.
	* doc/binutils.texi: Document the new option to objcopy.
	* NEWS: Mention the new feature.
	* testsuite/binutils-all/note-2-32.d: New test.  Checks note
	merging on 32-bit targets.
	* testsuite/binutils-all/note-2-32.s: New test source file.
	* testsuite/binutils-all/note-2-64.d: New test.  Like note-2-32.d
	but for 64-bit targets.
	* testsuite/binutils-all/note-2-64.s: New test source file.
	* testsuite/binutils-all/objcopy.exp: Run the new test.

2017-02-28  Peter Bergner  <bergner@vnet.ibm.com>

	* objdump.c (main): Use remove_whitespace_and_extra_commas.

2017-02-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compilation with GCC 4.4.7.
	* dwarf.c (display_loclists_list, display_debug_rnglists_list):
	Initialize begin and end.

2017-02-25  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/dw5.S: Replace .string with .asciz.
	Support hpux .comm variant.
	* testsuite/binutils-all/readelf.exp: Define HPUX when assembling
	dw5 test for hppa64-hpux.

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

	* readelf.c (show_name, do_dynamic, do_syms, do_dyn_syms,
	(do_reloc, do_sections, do_section_groups, do_section_details,
	(do_segments, do_unwind, do_using_dynamic, do_header, do_dump,
	(do_version, do_histogram, do_debugging, do_arch, do_notes,
	(do_archive_index, is_32bit_elf, decompress_dumps): Use
	bfd_boolean type.
	(parse_args): Treat the do_* variables as booleans.
	(print_vma): Return an unsigned int.
	(print_symbol): Change width parameter to signed int.
	(is_ia64_vms): Change return type to bfd_boolean.
	(guess_is_rela): Likewise.
	(slurp_rela_relocs): Likewise.
	(slurp_rel_relocs): Likewise.
	(dump_relocations): Likewise.
	(process_file_header): Likewise.
	(get_program_headers): Likewise.
	(process_program_headers): Likewise.
	(process_section_headers): Likewise.
	(process_section_groups): Likewise.
	(dump_ia64_vms_dynamic_fixups): Likewise.
	(dump_ia64_vms_dynamic_relocs): Likewise.
	(process_ia64_vms_dynamic_relocs): Likewise.
	(process_relocs): Likewise.
	(dump_ia64_unwind): Likewise.
	(ia64_process_unwind): Likewise.
	(dump_hppa_unwind): Likewise.
	(slurp_hppa_unwind_table): Likewise.
	(hppa_process_unwind): Likewise.
	(decode_arm_unwind_bytecode): Likewise.
	(decode_tic6x_unwind_bytecode): Likewise.
	(decode_arm_unwind): Likewise.
	(dump_arm_unwind): Likewise.
	(arm_process_unwind): Likewise.
	(process_unwind): Likewise.
	(get_32bit_dynamic_section): Likewise.
	(get_64bit_dynamic_section): Likewise.
	(process_dynamic_section): Likewise.
	(process_version_sections): Likewise.
	(process_symbol_table): Likewise.
	(process_syminfo): Likewise.
	(apply_relocations): Likewise.
	(disassemble_section): Likewise.
	(dump_section_as_strings): Likewise.
	(dump_section_as_bytes): Likewise.
	(load_specific_debug_section): Likewise.
	(load_debug_section): Likewise.
	(display_debug_section): Likewise.
	(process_section_contents): Likewise.
	(process_attributes): Likewise.
	(process_nds32_specific): Likewise.
	(process_gnu_liblist): Likewise.
	(print_core_note): Likewise.
	(print_gnu_note): Likewise.
	(print_v850_note): Likewise.
	(process_netbsd_elf_note): Likewise.
	(print_stapsdt_note): Likewise.
	(print_ia64_vms_note): Likewise.
	(process_note): Likewise.
	(process_notes_at): Likewise.
	(process_corefile_note_segments): Likewise.
	(process_v850_notes): Likewise.
	(process_note_sections): Likewise.
	(process_notes): Likewise.
	(process_arch_specific): Likewise.
	(get_file_header): Likewise.
	(process_object): Likewise.
	(process_archive): Likewise.
	(process_file): Likewise.
	(section_subset): Make static.
	(get_mips_reg_size): Return a signed integer.
	(process_object): Reverse the logic of the return value.
	(process_archive): Likewise.
	(process_file): Likewise.
	(process_program_headers): Fix snafu - if the program headers are
	not available then this is not a cause to fail.
	(process_corefile_note_segments): Likewise.

2017-02-24  Maciej W. Rozycki  <macro@imgtec.com>

	* readelf.c (get_ver_flags): Tidy the formatting of the string
	returned

2017-02-24  Maciej W. Rozycki  <macro@imgtec.com>

	* readelf.c (process_version_sections) <SHT_GNU_verdef>: Make
	`isum' unsigned.
	<SHT_GNU_verneed>: Likewise.

2017-02-24  Maciej W. Rozycki  <macro@imgtec.com>

	* readelf.c (process_version_sections) <SHT_GNU_verdef>: Limit
	the number of entries processed by the section size.  Don't
	break out of the loop if `ent.vd_next' is 0.

2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* testsuite/binutils-all/dw5.S: New file.
	* testsuite/binutils-all/dw5.W: New file.
	* testsuite/binutils-all/readelf.exp (readelf -wiaoRlL): New test.

2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (read_and_display_attr_value): Support DW_FORM_data16.

2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (display_debug_macro): Support DWARF-5.  Rename
	DW_MACRO_GNU_*.

2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (decode_location_expression): Support DW_OP_implicit_pointer,
	DW_OP_const_type, DW_OP_regval_type, DW_OP_deref_type, DW_OP_convert
	and DW_OP_reinterpret.
	(read_and_display_attr_value): Support DW_AT_call_value,
	DW_AT_call_data_value, DW_AT_call_target and
	DW_AT_call_target_clobbered.

2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (fetch_indirect_line_string): New function.
	(abbrev_attr): New field implicit_const.
	(add_abbrev_attr): New parameter implicit_const.
	(process_abbrev_section): Support DW_FORM_implicit_const.
	(decode_location_expression): Support DW_OP_entry_value.
	(read_and_display_attr_value): Add parameter implicit_const.  Support
	DW_FORM_line_strp and DW_FORM_implicit_const.
	(read_and_display_attr): Add parameter implicit_const.
	(process_debug_info): Support line_str and DWARF-5.
	(read_debug_line_header): Support DWARF-5.
	(display_formatted_table): New function.
	(display_debug_lines_raw): New parameter file.  Support DWARF-5.
	(display_debug_lines_decoded): New parameter fileptr.  Support DWARF-5.
	(display_debug_lines): Pass file parameter.
	(display_debug_macro): Update read_and_display_attr_value caller.
	(display_debug_abbrev): Support DW_FORM_implicit_const.
	(display_loclists_list): New function.
	(display_loc_list): Support .debug_loclists.
	(display_debug_ranges_list): New function from display_debug_ranges.
	(display_debug_rnglists_list): New function.
	(display_debug_ranges): Support .debug_rnglists.
	(debug_displays): Add .debug_line_str, .debug_loclists and
	.debug_rnglists.
	* dwarf.h: Include dwarf2.h
	(DWARF2_Internal_LineInfo): Add li_offset_size.
	(DWARF2_Internal_CompUnit): Add cu_unit_type.
	(enum dwarf_section_display_enum): Add line_str.
	* readelf.c (process_section_headers): Add rnglists and loclists.

2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (display_block): Add parameter delimiter.
	(decode_location_expression): Update display_block callers.
	(read_and_display_attr_value): Add parameter delimiter.
	(read_and_display_attr, display_debug_macro): Update
	read_and_display_attr_value caller.

2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (display_loc_list): Use dwarf_vma for offset, base_address
	and off.
	(display_loc_list_dwo): Use dwarf_vma for offset.
	(display_debug_loc): Use dwarf_vma for offset, base_address.
	(struct range_entry, range_entry_compar): Use dwarf_vma for
	ranges_offset.
	(display_debug_ranges): Use dwarf_vma for ranges_offset, offset and
	base_address.

2017-02-23  Nick Clifton  <nickc@redhat.com>

	* readelf.c (display_tag_value): Use an explicit signed type for
	the tag parameter.
	(display_gnu_attributes): Use an unsigned integer type for
	attribute tags.
	(display_power_gnu_attribute): Likewise.
	(display_s390_gnu_attribute): Likewise.
	(display_sparc_hwcaps): Likewise.
	(display_sparc_hwcaps2): Likewise.
	(display_sparc_gnu_attribute): Likewise.
	(display_mips_gnu_attribute): Likewise.
	(display_tic6x_attribute): Likewise.
	(display_raw_attribute): Likewise.
	(process_attributes): Likewise.
	(process_arm_specific): Delete redundant function.
	(process_power_specific): Likewise.
	(process_s390_specific): Likewise.
	(process_sparc_specific): Likewise.
	(process_tic6x_specific): Likewise.
	(process_msp430x_specific): Likewise.
	(display_public_gnu_attributes): New function.  Displays known
	information about an unknown gnu attribute.
	(display_generic_attribute): New function.  Calls
	display_tag_value for non-nul tags.
	(process_arch_specific): Call process_attributes even for
	architectures not known to specifically support gnu attributes.

2017-02-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (decode_location_expression): Display also OP.

2017-02-22  Maciej W. Rozycki  <macro@imgtec.com>

	* readelf.c (process_version_sections) <SHT_GNU_verdef>: Print a
	new line between the heading and the first version definition
	entry.

2017-02-20  Nick Clifton  <nickc@redhat.com>

	PR binutils/21156
	* dwarf.c (cu_tu_indexes_read): Move into...
	(load_cu_tu_indexes): ... here.  Change the variable into
	tri-state.  Change the function into boolean, returning
	false if the indicies could not be loaded.
	(find_cu_tu_set): Return NULL if the indicies could not be
	loaded.

2017-02-17  Nick Clifton  <nickc@redhat.com>

	PR binutils/21156
	* readelf.c (find_section_in_set): Test for invalid section
	indicies.

2017-02-17  Nick Clifton  <nickc@redhat.com>

	* readelf.c (get_section_type_name): Add decoding of GNU section
	types.

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

	* MAINTAINERS: (MIPS, MN10300): Move Eric Christopher to Past
	Maintainers section.

2017-02-14  Nick Clifton  <nickc@redhat.com>

	PR binutils/21159
	* readelf.c (dump_section_as_strings): Reset the start address if
	no decompression is perfromed.
	(dump_section_as_bytes): Likewise.

2017-02-14  Nick Clifton  <nickc@redhat.com>

	PR binutils/21158
	* rddbg.c (read_symbol_stabs_debugging_info): Check for a null or
	empty symbol name.

2017-02-14  Nick Clifton  <nickc@redhat.com>

	PR binutils/21157
	* stabs.c (parse_stab_enum_type): Check for corrupt NAME:VALUE
	pairs.
	(parse_number): Exit early if passed an empty string.

2017-02-14  Nick Clifton  <nickc@redhat.com>

	PR binutils/21155
	* readelf.c (IN_RANGE): New macro.  Tests for an address + offset
	being within a given range.
	(target_specific_reloc_handling): Use macro to test for underflow
	as well as overflow of reloc offset.

2017-02-13  Nick Clifton  <nickc@redhat.com>

	PR binutils/21150
	* nm.c (file_symbol): Add test of string length before testing
	string characters.

2017-02-13  Nick Clifton  <nickc@redhat.com>

	PR binutils/21135
	* readelf.c (dump_section_as_bytes): Handle the case where
	uncompress_section_contents returns false.
	(dump_section_as_bytes, load_specific_debug_section): Likewise.

2017-02-13  Nick Clifton  <nickc@redhat.com>

	PR binutils/21149
	* readelf.c (get_compression_header): Add size parameter.  Check
	size against sizeof compression header before attempting to
	extract the header.
	(process_section_headers): Pass size to get_compression_header.
	(dump_section_as_strings): Likewise.
	(dump_section_as_bytes): Likewise.
	(load_specific_debug_section): Likewise.

2017-02-13  Nick Clifton  <nickc@redhat.com>

	PR binutils/21148
	* readelf.c (process_version_sections): Include size of auxillary
	version information when checking for buffer overflow.

2017-02-13  Nick Clifton  <nickc@redhat.com>

	PR binutils/21147
	* readelf.c (process_section_contents): Fix off by one error
	reporting un-dumped sections.

2017-02-13  Nick Clifton  <nickc@redhat.com>

	PR binutils/21139
	* readelf.c (target_specific_reloc_handling): Add num_syms
	parameter.  Check for symbol table overflow before accessing
	symbol value.  If reloc pointer is NULL, discard all saved state.
	(apply_relocations): Pass num_syms to target_specific_reloc_handling.
	Call target_specific_reloc_handling with a NULL reloc pointer
	after processing all of the relocs.

2017-02-13  Nick Clifton  <nickc@redhat.com>

	PR binutils/21137
	* readelf.c (target_specific_reloc_handling): Add end parameter.
	Check for buffer overflow before writing relocated values.
	(apply_relocations): Pass end to target_specific_reloc_handling.

2017-01-27  Dilyan Palauzov  <dilyan.palauzov@aegee.org>
	    Nick Clifton  <nickc@redhat.com>

	PR 20343
	* doc/binutils.texi (ar): Extend documentation of the --plugin
	option.  Include a description of where the plugins should be
	located.
	(nm): Likewise.

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

	* MAINTAINERS: Add Bernd to Past Maintainers section.
	(SCORE): Remove Mei Ligang as maintainer.  Add to Past Maintainers
	section.

2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>

	* MAINTAINERS (BFIN): Remove myself as Blackfin maintainer.

2017-01-20  Andrew Burgess  <andrew.burgess@embecosm.com>

	* objdump.c (dump_section_header): Extract max section name length
	from data parameter, use this when formatting output.
	(find_longest_section_name): New function.
	(dump_headers): Calculate longest section name when in wide mode,
	reformat to unify printing of header line.

2017-01-18  Bernhard Rosenkranzer  <bero@lindev.ch>

	PR 21059
	* arlex.l: Support processing with flex 2.6.3.
	* deflex.l: Likewise.

2017-01-17  Dmitry Timoshkov  <dmitry@baikal.ru>

	* resbin.c: Optional dialog control data immediately follows
	the control description without alignment.
	* testsuite/binutils-all/windres/controldata.rc: New test.
	source.
	* testsuite/binutils-all/windres/controldata.rsd: New test.

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

	PR binutils/20876
	* NEWS: Mention the new feature.
	* testsuite/binutils-all/objdump.exp (test_build_id_debuglink):
	New proc to test the location of separate debug info files using
	the build-id method.

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

	PR 21034
	* stabs.c (parse_stab_members): Fix thinko checking for g++
	version 1 stabs information.

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

	* objdump.c (display_file): Add new parameter 'last_file'.  If
	last_file is true, do not call bfd_close at the end of the
	function.
	(main): Set the value of the last_file parameter when calling
	display_file.

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

	* readelf.c (process_section_headers): Correct .rel.dyn/.rela.dyn
	comment.

2017-01-06  Nick Clifton  <nickc@redhat.com>

	* MAINTAINERS: Move Paul Brook to the Past Maintainers section.

2017-01-04  Dilan Palauzov  <dilyan.palauzov@aegee.org>

	PR 20958
	* syslex.l (option): Add noyywrap
	(yywrap): Delete.

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

	Update year range in copyright notice of all files.

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