2016-12-31  Dimitar Dimitrov  <dimitar@dinux.eu>

	* readelf.c (guess_is_rela): Add EM_TI_PRU.
	(dump_relocations): Invoke elf_pru_reloc_type.
	(get_machine_name): Handle EM_TI_PRU.
	(is_32bit_abs_reloc): Handle R_PRU_BFD_RELOC_32.
	(is_16bit_abs_reloc): Handle R_PRU_BFD_RELOC_16.
	(is_none_reloc): Handle PRU_NONE and PRU_DIFF variants.

2016-12-23  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips16-extend-insn.d: Update for
	ASMACRO support.

2016-12-23  Maciej W. Rozycki  <macro@imgtec.com>

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

2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Add marker for 2.28.

2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* po/binutils.pot: Regenerate.

2016-12-20  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips16-undecoded.s: Use `.module'
	rather than `.set' to set the ISA level.

2016-12-20  Maciej W. Rozycki  <macro@imgtec.com>

	* testsuite/binutils-all/mips/mips16-extend-noinsn.d: Adjust
	test for separate EXTEND prefix disassembly.

2016-12-20  Andrew Waterman  <andrew@sifive.com>

	* readelf.c (get_machine_flags): Use
	EF_RISCV_FLOAT_ABI_{SOFT,SINGLE,DOBULE,QUAD) instead of
	EF_RISCV_{SOFT,HARD}_FLOAT.

2016-12-14  Maciej W. Rozycki  <macro@imgtec.com>

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

2016-12-13  Jiong Wang  <jiong.wang@arm.com>

	* readelf.c (is_32bit_abs_reloc): Recognize R_AARCH64_P32_ABS32.

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

	* MAINTAINERS (Past Maintainers): New section.  Move Mark
	Mitchell's name here.

2016-12-09  Maciej W. Rozycki  <macro@imgtec.com>

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

2016-12-08  Maciej W. Rozycki  <macro@imgtec.com>

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

2016-12-08  Étienne Buira  <etienne.buira@gmail.com>

	* readelf.c (process_program_headers): Always use hex prefix when
	displaying the segment alignment.

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

	PR binutils/20930
	* objcopy.c (mark_symbols_used_in_relocations): Check for a null
	symbol pointer pointer before attempting to mark the symbol as
	kept.

2016-12-05  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* MAINTAINERS: Add myself as maintainer for the SPARC targets.

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

	PR ld/20923
	* objcopy.c (mark_symbols_used_in_relocations): Check for a null
	symbol pointer before attempting to mark the symbol as kept.

2016-12-01  Luis Machado  <lgustavo@codesourcery.com>

	* nm.c (sort_symbols_by_size): Don't read symbol size if symbol
	is synthetic.

2016-11-30  Nick Clifton  <nickc@redhat.com>

	PR ld/20815
	* readelf.c (process_program_headers): Do not warn about out of
	order PT_LOAD segments.

2016-11-29  Claudiu Zissulescu  <claziss@synopsys.com>

	* testsuite/binutils-all/arc/objdump.exp (Warning test): Update
	test.

2016-11-27  Ambrogino Modigliani  <ambrogino.modigliani@gmail.com>

	* dwarf.c: Fix spelling in comments.
	* dwarf.h: Fix spelling in comments.
	* objcopy.c: Fix spelling in comments.
	* od-macho.c: Fix spelling in comments.
	* rclex.c: Fix spelling in comments.
	* readelf.c: Fix spelling in comments.
	* stabs.c: Fix spelling in comments.

2016-11-23  Nick Clifton  <nickc@redhat.com>

	PR ld/20815
	* readelf.c (process_program_headers): Check PT_LOAD and PT_PHDR
	segments for validity.

2016-11-22  Ambrogino Modigliani  <ambrogino.modigliani@gmail.com>

        * configure: Regenerate.

2016-11-22  Alan Modra  <amodra@gmail.com>

	PR 20744
	* NEWS: Mention PowerPC VLE relocation error.

2016-11-16  Mark Wielaard  <mark@klomp.org>

	* cxxfilt.c (main): Recognize rust_demangling.

2016-11-14  Rudy  <jacky.chouchou@yandex.ru>

	PR binutils/20814
	* dlltool.c (struct export): Remove hint field.
	(make_one_lib_file): Store the ordinal value for IDATA6 not the
	hint.
	(gen_lib_file): Delete reference to hint field.
	(mangle_defs): Delete computation of hint field.

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

	PR binutils/20751
	* nm.c (with_symbol_versions): New local variable.
	(long_options): Add --with-symbol-versions.
	(usage): Mention --with-symbol-versions.
	(print_symbol): If with_symbol_versions is set then display the
	version information associated with the symbol.
	* NEWS: Mention the new feature.
	* doc/binutils.texi (nm): Document the new option.
	(objdump): Describe how symbol version information is displayed
	for dynamic symbol dumps.
	(readelf): Describe how symbol version information is displayed.
	* testsuite/binutils-all/nm.exp: Add a test of the new feature.

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

	PR binutils/20794
	* readelf.c (process_section_headers): Fix off-by-one error when
	checking for invalid sh_link and sh_info fields.

2016-11-04  Andrew Burgess  <andrew.burgess@embecosm.com>

	* objcopy.c (copy_section): Add extra calls to free for error
	paths.

2016-11-04  Tom Tromey  <tom@tromey.com>

	* dwarf-mode.el (dwarf-browse): Set default-directory.  Bump
	version number.

2016-11-04  Palmer Dabbelt <palmer@dabbelt.com>

	* MAINTAINERS: Add myself and Andrew Waterman as maintainers for
	the RISC-V target.

2016-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
	    Andrew Waterman <andrew@sifive.com>

	Add support for RISC-V architecture.
	* readelf.c (guess_is_rela): Add EM_RISCV.
	(get_machine_name): Likewise.
	(dump_relocations): Add support for riscv relocations.
	(get_machine_flags): Add support for riscv flags.
	(is_32bit_abs_reloc): Add R_RISCV_32.
	(is_64bit_abs_reloc): Add R_RISCV_64.
	(is_none_reloc): Add R_RISCV_NONE.
	* testsuite/binutils-all/objdump.exp (cpus_expected): Add riscv.
	Expect the debug_ranges test to fail.

2016-10-17  Nick Clifton  <nickc@redhat.com>

	* readelf.c (apply_relocations): Fail if the symbol table section
	linked to by the reloc section does not have either the SHT_SYMTAB
	or SHT_DYNSYM type.
	(print_gnu_note): Decode the contents of NT_GNU_HWCAP notes.
	Print the contents of unknown note types.
	(process_note): Add the file and section to the parameter list.
	Use print_symbol to display the note name.
	Display the contents of unknown note types.
	(process_corefile_note_segment): Rename to process_notes_at.
	Add section parameter.  Apply relocations to the notes when
	loading from a section.  Display section name when processing
	notes in a section.
	* testsuite/binutils-all/readelf.n: Update expected output.

2016-10-17  Nick Clifton  <nickc@redhat.com>

	* readelf.c (get_dynamic_type): Add DT_SYMTAB_SHNDX.
	(get_machine_type): Add EM_CLOUDSHIELD, EM_COREA_1ST,
	EM_COREA_2ND, EM_OPEN8, EM_VIDEOCORE5, EM_56800EX, EM_BA1, EM_BA2,
	EM_XCORE, EM_MCHP_PIC, EM_KM32, EM_KMX32, EM_KMX16, EM_KMX8,
	EM_KVARC, EM_CDP, EM_COGE, EM_COOL, EM_NORC, EM_CSR_KALIMBA,
	EM_Z80, EM_AMDGPU, EM_RISCV.
	(get_osabi_name): Add ELFOSABI_CLOUDABI and ELFOSABI_OPENVS.
	(get_group_flags): Update to handle flags in the
	GRP_MASKOS and GRP_MASKPROC ranges.

2016-10-14  Luis Machado  <lgustavo@codesourcery.com>

	* testsuite/lib/utils-lib.exp (run_dump_test): Call remote_download
	to copy file to remote host.

2016-10-11  Nick Clifton  <nickc@redhat.com>

	* objdump.c (is_significant_symbol_name): New function.
	(remove_useless_symbols): Do not remove significanr symbols.
	(find_symbol_for_address): If an exact match for the specified
	address has not been found, try scanning the dynamic relocs to see
	if one of these matches the address.  If so, use the symbol
	associated with the reloc.
	(objdump_print_addr_with_symbol): Do not print offsets to symbols
	with no value.
	(disassemble_section): Only use dynamic relocs if the user
	requested this.
	(disassemble_data): Always load dynamic relocs if they are
	available.

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

	* dlltool.c: Spell fall through comments consistently.
	* objcopy.c: Likewise.
	* readelf.c: Likewise.
	* dwarf.c: Add missing fall through comments.
	* elfcomm.c: Likewise.
	* sysinfo.y: Likewise.
	* readelf.c: Likewise.  Also remove extraneous comments.

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

	* cxxfilt.c (usage): Add ATTRIBUTE_NORETURN.
	* elfedit.c (usage): Likewise.
	* nm.c (usage): Likewise.
	* objcopy.c (copy_usage, strip_usage): Likewise.
	* srconv.c (show_usage): Likewise.
	* strings.c (usage): Likewise.
	* sysdump.c (show_usage): Likewise.
	* srconv.c: Remove unneeded forward function declarations.
	* strings.c: Likewise.
	* sysdump.c: Likewise.

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

	* coffdump.c (dump_coff_where): Add missing break.
	* stabs.c (stab_xcoff_builtin_type): Likewise.

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

	* readelf.c (process_arch_specific): Call process_power_specific
	for EM_PPC64.

2016-09-26  Vlad Zakharov  <vzakhar@synopsys.com>

	* Makefile.am: Replace AM_CLFAGS with AM_CFLAGS_FOR_BUILD
	when building with CC_FOR_BUILD compiler.
	* Makefile.in: Regenerate.
	* configure: Likewise.
	* doc/Makefile.in: Likewise.

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-09-26  Alan Modra  <amodra@gmail.com>

	* nm.c (get_elf_symbol_type): Don't use sprintf with translated
	strings, use asprintf instead.
	(get_coff_symbol_type): Likewise.

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>

	* readelf.c (process_section_headers): Sanity check section headers.
	(process_symbol_table): Don't warn on solaris binaries with local
	symbols past symtab sh_info.
	* 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:
