2016-09-19  Alan Modra  <amodra@gmail.com>

	* nm.c (print_symbol): Remove is_synthetic param.  Test sym->flags
	instead.
	(print_size_symbols, print_symbols): Adjust to suit, deleting
	now unused synth_count param and fromsynth var.
	(display_rel_file): Adjust, localizing synth_count.

2016-09-14  Ed Maste  <emaste@freebsd.org>

	* readelf.c (process_mips_specific): Fix typo in error message.

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

	* readelf.c (request_dump_bynumber): Only call memcpy if
	dump_sects is not NULL.

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

	* readelf.c (load_specific_debug_section): Check the external
	compression header size.

2016-08-19  Nick Clifton  <nickc@redhat.com>

	* testsuite/binutils-all/readelf.s: Adjust expected ordering of
	sections.
	* testsuite/binutils-all/readelf.s-64: Likewise.

2016-08-12  Nick Clifton  <nickc@redhat.com>

	* readelf.c (process_symbol_table): Generate a warning if a local
	symbol is found at and offste greater than or equal to the sh_info
	field of it's section header.

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

	PR binutils/20440
	* dwarf.c (display_debug_lines_decoded): Add checks for running
	off the end of the section when populating the directory table and
	file table.
	(frame_display_row): Set max_regs equal to ncols.
	* readelf.c (load_specific_debug_section): If the section is
	compressed, but it is not big enough to hold a compression
	header then warn and return 0.

	PR binutils/20439
	* dwarf.c (display_debug_lines_decoded): Check directory and file
	indicies before using them to access directory and file tables.

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

	PR binutils/17512
	* resbin.c (bin_to_res_version): Cast variables to correct type
	for printing in error message.

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

	PR binutils/17512
	* rescoff.c (read_coff_res_dir): Fix detection of buffer overrun.
	* resbin.c (bin_to_res_version): Allow for the padded length of a
	version block to be longer than the recorded length.  Skip padding
	bytes.

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

	* configure: Regenerated.

2016-07-20  Claudiu Zissulescu  <claziss@synopsys.com>

	* doc/binutils.texi (objdump): Add ARC disassembler options.
	* testsuite/binutils-all/arc/dsp.s: New file.
	* testsuite/binutils-all/arc/objdump.exp: Likewise.
	* NEWS: Mention the new feature.

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

	* doc/binutils.texi (objcopy): Note that the localize symbol
	options do not affect unique symbols.

2016-07-16  Alan Modra  <amodra@gmail.com>

	* ar.c: Include plugin-api.h.
	* nm.c: Likewise.

2016-07-16  Alan Modra  <amodra@gmail.com>

	* bucomm.c: Don't include libbfd.h.
	(endian_string, display_target_list): Delete forward declaration.
	(display_info_table, display_target_tables): Likewise.
	(LONGEST_ARCH): Delete.
	(struct display_target): New.
	(do_display_target): New function.
	(display_target_list, display_info): Rewrite functions.
	(display_info_table): Delete.
	(do_info_size, do_info_header, do_info_row): New functions.

2016-07-16  Alan Modra  <amodra@gmail.com>

	* elfcomm.h (HOST_WIDEST_INT): Move to..
	* sysdep.h: ..here.
	* od-macho.c: Don't include libbfd.h.  Do include dwarf.h
	(dump_dyld_info_rebase): Use read_leb128 rather than
	read_unsigned_leb128.
	(dump_dyld_info_bind, dump_dyld_info_export_1): Likewise.
	(dump_segment_split_info): Likewise.
	(dump_dyld_info): Rename vars to avoid shadowing dwarf.h enums.
	(dump_load_command): Likewise.

2016-07-16  Alan Modra  <amodra@gmail.com>

	* ar.c: Don't include libbfd.h.
	* objcopy.c: Likewise.
	* bucomm.c (bfd_get_archive_filename): Use xmalloc rather than
	bfd_malloc.

2016-07-15  Alan Modra  <amodra@gmail.com>

	* testsuite/binutils-all/remove-relocs-01.s: Use .dc.a, not .word.

2016-07-14  Andrew Burgess  <andrew.burgess@embecosm.com>

	* doc/binutils.texi (objcopy): Document 'remove-relocations'.
	(strip): Likewise.
	* objcopy.c (SECTION_CONTEXT_REMOVE_RELOCS): Define.
	(enum command_line_switch): Add 'OPTION_REMOVE_RELOCS'.
	(struct option strip_options): Add 'remove-relocations'.
	(struct option copy_options): Likewise.
	(copy_usage): Likewise.
	(strip_usage): Likewise.
	(handle_remove_relocations_option): New function.
	(discard_relocations): New function.
	(handle_remove_section_option): New function.
	(copy_relocations_in_section): Use discard_relocations.
	(strip_main): Use handle_remove_section_option for
	'remove-section', and handle 'remove-relocations' option.
	(copy_main): Likewise.
	* testsuite/binutils-all/objcopy.exp: Run new tests.
	* testsuite/binutils-all/remove-relocs-01.d: New file.
	* testsuite/binutils-all/remove-relocs-01.s: New file.
	* testsuite/binutils-all/remove-relocs-02.d: New file.
	* testsuite/binutils-all/remove-relocs-03.d: New file.
	* testsuite/binutils-all/remove-relocs-04.d: New file.
	* testsuite/binutils-all/remove-relocs-05.d: New file.
	* testsuite/binutils-all/remove-relocs-06.d: New file.
	* NEWS: Mention new option.

2016-07-14  Andrew Burgess  <andrew.burgess@embecosm.com>

	* objcopy.c (find_section_list): Handle section patterns starting
	with '!' being a non-matching pattern.
	* doc/binutils.texi (objcopy): Give example of using '!' with
	--remove-section and --only-section.
	(strip): Give example of using '!' with --remove-section.
	* testsuite/binutils-all/data-sections.s: New file.
	* testsuite/binutils-all/only-section-01.d: New file.
	* testsuite/binutils-all/remove-section-01.d: New file.
	* testsuite/binutils-all/objcopy.exp: Run new tests.
	* NEWS: Mention new feature.

2016-07-09  Alan Modra  <amodra@gmail.com>

	PR binutils/20337
	* objdump.c (compare_symbols): For ELF, sort same value/type
	symbols according to size.

2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

	* objdump.c (dump_section_header): Rename SEC_ELF_NOREAD
	to SEC_ELF_NOREAD.
	* readelf.c (get_elf_section_flags): Rename ARM_NOREAD to
	ARM_PURECODE and SHF_ARM_NOREAD to SHF_ARM_PURECODE.
	(process_section_headers): Rename noread to purecode.

	* section.c (SEC_ELF_NOREAD): Rename to ...
	(SEC_ELF_PURECODE): ... this.

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

	* prdbg.c (pr_enum_type): Use a buffer big enough to hold an
	extremely large decimal value.
	(pr_range_type): Likewise.
	(pr_array_type): Likewise.
	(pr_struct_field): Likewise.
	(pr_class_baseclass): Likewise.
	(pr_class_method_variant): Likewise.
	(pr_tag_type): Likewise.
	(pr_int_constant): Likewise.
	(pr_typed_constant): Likewise.
	(pr_variable): Likewise.
	(pr_function_parameter): Likewise.
	(pr_start_block): Likewise.
	(pr_lineno): Likewise.
	(pr_end_block): Likewise.
	(tg_enum_type): Likewise.
	(tg_int_constant): Likewise.
	(tg_typed_constant): Likewise.
	(tg_start_block): Likewise.

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>

	* 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:
