2010-11-26  Alan Modra  <amodra@gmail.com>

	* dwarf.c (decode_location_expression, display_debug_frames): Move
	code handling DW_EH_PE_pcrel into..
	(get_encoded_value): ..here.

2010-11-26  Alan Modra  <amodra@gmail.com>

	* po/ja.po: Update.

2010-11-25  Alan Modra  <amodra@gmail.com>

	* po/bg.po: Update.
	* po/es.po: Update.
	* po/fi.po: Update.
	* po/ja.po: Update.
	* po/ru.po: Update.
	* po/zh_CN.po: Update.

2010-11-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/12235
	* elfcomm.c: New.
	* elfcomm.h: Likewise.

	* Makefile.am (HFILES): Add elfcomm.h.
	(CFILES): Add elfcomm.c.
	(ELFLIBS): New.
	(readelf_SOURCES): Add $(ELFLIBS).
	(elfedit_SOURCES): Likewise.
	(objdump_SOURCES): Likewise.
	* Makefile.in: Regenerated.

	* dwarf.c: Include "elfcomm.h".
	(byte_get): Removed.
	(byte_get_little_endian): Likewise.
	(byte_get_big_endian): Likewise.
	(byte_get_signed): Likewise.
	(error): Likewise.
	(warn): Likewise.

	* dwarf.h (dwarf_vma): Defined with HOST_WIDEST_INT.
	(dwarf_size_type): Likewise.
	(byte_get): Removed.
	(byte_get_signed): Likewise.
	(byte_get_little_endian): Likewise.
	(byte_get_big_endian): Likewise.
	(error): Likewise.
	(warn): Likewise.

	* elfedit.c: Include "elfcomm.h".  Don't include "aout/ar.h".
	Call error () instead of non_fatal ().
	(streq): Removed.
	(strneq): Likewise.
	(const_strneq): Likewise.
	(non_fatal): Likewise.
	(BYTE_GET): Likewise.
	(BYTE_PUT): Likewise.
	(byte_get): Likewise.
	(byte_put): Likewise.
	(byte_get_little_endian): Likewise.
	(byte_get_big_endian): Likewise.
	(byte_put_little_endian): Likewise.
	(byte_put_big_endian): Likewise.
	(adjust_relative_path): Likewise.
	(archive_info): Likewise.
	(setup_archive): Likewise.
	(release_archive): Likewise.
	(setup_nested_archive): Likewise.
	(get_archive_member_name): Likewise.
	(get_archive_member_name_at): Likewise.
	(make_qualified_name): Likewise.

	* objdump.c: Include "elfcomm.h".

	* readelf.c: Include "elfcomm.h".  Don't include "aout/ar.h".
	(BYTE_GET): Removed.
	(BYTE_GET_SIGNED): Removed.
	(streq): Likewise.
	(strneq): Likewise.
	(const_strneq): Likewise.
	(byte_put): Likewise.
	(byte_put_little_endian): Likewise.
	(byte_put_big_endian): Likewise.
	(adjust_relative_path): Likewise.
	(archive_info): Likewise.
	(setup_archive): Likewise.
	(release_archive): Likewise.
	(setup_nested_archive): Likewise.
	(get_archive_member_name): Likewise.
	(get_archive_member_name_at): Likewise.
	(make_qualified_name): Likewise.

2010-11-18  Alan Modra  <amodra@gmail.com>

	PR binutils/11742
	* readelf.c (get_archive_member_name): Formatting.  Properly
	handle full size ar_name.

2010-11-17  Alan Modra  <amodra@gmail.com>

	* ar.c (print_contents): Don't internationalize strings without words.
	* dwarf.c (process_extended_line_op): Likewise.
	(process_debug_info): Likwise.
	(display_debug_lines_raw): Likewise.
	(display_debug_lines_decoded): Likewise.
	(display_debug_abbrev): Likewise.
	* readelf.c (process_file_header): Likewise.
	(GET_OP): Likewise.
	(decode_arm_unwind): Likewise.
	(process_mips_specific): Likewise.
	* resrc.c (run_cmd): Likewise.
	(rcparse_warning): Likewise.
	* objdump.c (dump_headers): Don't print "Pg".

2010-11-16  Jorma Karvonen  <karvonen.jorma@gmail.com>

	* windmc.c: ,%s' -> `%s' in a number of strings.

2010-11-16  Jie Zhang  <jie.zhang@analog.com>

	* readelf.c (get_machine_flags): Deal with Blackfin specific flags.

2010-11-11  Mingming Sun  <mingm.sun@gmail.com>

	* readelf.c (get_machine_flags): Add loongson-3a.

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

	* po/ja.po: Updated Japanese translation.
	* po/fr.po: Updated French translation.

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

	* po/ja.po: Updated Japanese translation.

2010-11-08  Alan Modra  <amodra@gmail.com>

	* objcopy.c (copy_main): No need to rename sections when compressing
	or decompressing.

2010-11-05  Alan Modra  <amodra@gmail.com>

	* bin2c.c: Remove internationalization and version report.
	* Makefile.am: Update bin2c rule.
	* Makefile.in: Regenerate.

2010-11-05  Tristan Gingold  <gingold@adacore.com>

	* po/binutils.pot: Regenerate

2010-11-05  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Add marker for 2.21.

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

	* objdump.c (dump_bfd_header): Don't display
	BFD_FLAGS_FOR_BFD_USE_MASK bits in abfd->flags.

2010-11-02  Joseph Myers  <joseph@codesourcery.com>

	* readelf.c (display_tic6x_attribute): Handle more attributes.

2010-10-30  Kai Tietz  <kai.tietz@onevision.com>

	* dlltool.c (scan_drectve_symbols): Allow quoted strings for -export
	directives.

2010-10-29  Joseph Myers  <joseph@codesourcery.com>

	* readelf.c (display_tic6x_attribute): Use Tag_ABI_compatibility
	not hardcoded 32.  Display name of this attribute.

2010-10-29  H.J. Lu  <hongjiu.lu@intel.com>

	* addr2line.c (process_file): Set BFD_DECOMPRESS.

	* objcopy.c (do_debug_sections): New.
	(OPTION_COMPRESS_DEBUG_SECTIONS): New.
	(OPTION_DECOMPRESS_DEBUG_SECTIONS): Likewise.
	(copy_options): Add OPTION_COMPRESS_DEBUG_SECTIONS and
	OPTION_DECOMPRESS_DEBUG_SECTIONS.
	(copy_usage): Add --compress-debug-sections and
	--decompress-debug-sections.
	(copy_file): Set BFD_COMPRESS or BFD_DECOMPRESS.
	(copy_section): Replace bfd_get_section_contents with
	bfd_get_full_section_contents.
	(copy_main): Handle OPTION_COMPRESS_DEBUG_SECTIONS and
	OPTION_DECOMPRESS_DEBUG_SECTIONS.  Check do_debug_sections to
	rename DWARF debug sections.

	* objdump.c (load_specific_debug_section): Replace
	bfd_get_section_contents with bfd_get_full_section_contents.
	Remove bfd_uncompress_section_contents.
	(dump_section): Replace bfd_get_section_contents with
	bfd_get_full_section_contents.
	(display_file): Set BFD_DECOMPRESS if needed.

	* readelf.c (uncompress_section_contents): Set buffer to NULL
	to indiate decompression failure.
	(load_specific_debug_section): Always call
	uncompress_section_contents.

	* doc/binutils.texi: Document --compress-debug-sections and
	--decompress-debug-sections.

2010-10-29  Nick Clifton  <nickc@redhat.com>

	PR binutils/12058
	* ar.c (usage): Revert previous change.  Describe how 's' can be
	used as a command letter.
	* doc/binutils.texi (ar cmdline): Describe how 's' can be used as
	a command letter.

2010-10-29  Bernd Schmidt  <bernds@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>

	* readelf.c (display_tic6x_attribute): Handle Tag_ABI_DSBT.

2010-10-28  Nick Clifton  <nickc@redhat.com>

	PR binutils/12058
	* ar.c (usage): Remove spurious 's' from list of accepted command
	letters.

2010-10-28  Alan Modra  <amodra@gmail.com>

	* readelf.c (is_32bit_abs_reloc): Support i960 and microblaze.
	(is_32bit_pcrel_reloc): Support microblaze.

2010-10-26  Nick Clifton  <nickc@redhat.com>

	* po/ja.po: Updated Japanese transaltion.

2010-10-21  Joseph Myers  <joseph@codesourcery.com>

	* readelf.c (display_tic6x_attribute): Update for attribute
	renaming.

2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf.c (byte_get_signed): Make it extern.

	* dwarf.h (byte_get_signed): New.

	* readelf.c (BYTE_GET_SIGNED): New.
	(slurp_rela_relocs): Use BYTE_GET_SIGNED on r_addend.
	(dump_relocations): Properly dump r_addend.

2010-10-08  Joseph Myers  <joseph@codesourcery.com>

	* nm.c (value_format_64bit): Define appropriately for __MSVCRT__.
	(set_print_radix): Update for __MSVCRT__ definition of
	value_format_64bit.

2010-10-08  Pierre Muller  <muller@ics.u-strasbg.fr>

	Fix build with -DDEBUG=7
	* nlmheader.y (DEBUG token): Rename to DEBUG_K.

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

	* bucomm.c (bfd_nonfatal, bfd_nonfatal_message): Don't clobber errno.

2010-10-05  Alan Modra  <amodra@gmail.com>

	* bucomm.c (bfd_nonfatal): Flush stdout before output to stderr.
	(bfd_nonfatal_message, report, list_matching_formats): Likewise.
	(list_supported_targets): Tidy.
	* objdump.c (free_only_list): Formatting.
	(slurp_dynamic_symtab): Non-zero exit status for "not a dynamic
	object".
	(update_source_path): Delete redundant check for NULL filename.
	(disassemble_bytes): Error if disassemble_fn returns a value
	that won't increment address.
	(disassemble_data): Don't capitalize error message.
	(read_section_stabs): Likewise.
	(main): Return non-zero exit status on bad options.

2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/12088
	* nm.c (plugin_target): New.
	(main): Set plugin_target to "plugin" for --plugin.
	(display_file): Pass plugin_target to bfd_openr if target
	isn't set.

2010-09-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2010-09-22  Mike Frysinger  <vapier@gentoo.org>

	* MAINTAINERS: Add self as ADI Blackfin maintainer.

2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>

	* emul_aix.c (ar_emul_aix_append): Add a target argument
	and ignore it if it is set.
	(ar_emul_aix5_append): Likewise.
	(ar_emul_aix_replace): Likewise.
	(ar_emul_aix5_replace): Likewise.

2010-09-15  H.J. Lu  <hongjiu.lu@intel.com>

	* ar.c (plugin_target): New.
	(main): Set plugin_target to "plugin" for --plugin.
	(open_inarch): Initialize target to plugin_target.
	(replace_members): Pass plugin_target to ar_emul_replace
	and ar_emul_append.

	* binemul.h (ar_emul_append): Add a target argument.
	(ar_emul_default_append): Likewise.
	(ar_emul_replace): Likewise.
	(ar_emul_default_replace): Likewise.
	(bin_emulation_xfer_struct): Add a target argument to
	ar_append and ar_replace.

	* binemul.c (ar_emul_append): Updated.  Pass target to bfd_openr.
	(do_ar_emul_default_append): Likewise.
	(ar_emul_default_append): Likewise.
	(ar_emul_replace): Likewise.
	(ar_emul_default_replace): Likewise.

2010-09-10  Ben Gardiner  <bengardiner@nanometrics.ca>

	* objcopy.c: Add --interleave-width option to allow interleaving
	of more than one byte at a time.
	(copy_width): New variable.
	(copy_options): Add --interleave-width.
	(copy_section): When interleaving copy in units of copy_width
	bytes.
	(copy_main): Parse the new option.
	* doc/binutils: Document the new option.
	* NEWS: Mention the new feature.

2010-09-09  Jakub Jelinek  <jakub@redhat.com>

	* dwarf.c (decode_location_expression): Fix data adjustment
	for DW_OP_GNU_implicit_pointer in v3+.

2010-09-09  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Add entry to NEWS for hppa/som.

2010-09-09  Jakub Jelinek  <jakub@redhat.com>

	* dwarf.h (debug_info): Add offset_info and dwarf_version fields.
	* dwarf.c (decode_location_expression): Add offset_size and
	dwarf_version arguments.  Prefix DIE offset with 0x for
	DW_OP_call{2,4,_ref}.  Fix up DW_OP_call_ref operand size,
	complain if in frame info section.  Handle
	DW_OP_GNU_implicit_pointer.
	(read_and_display_attr_value, display_debug_loc,
	display_debug_frames): Adjust decode_location_expression callers.
	(process_debug_info): Save offset_size and dwarf_version values
	into debug_information array.

2010-09-07  Nick Clifton  <nickc@redhat.com>

	* readelf.c (process_section_headers): Mention meaning of 'l'
	section flag for x86-64 targets.

2010-09-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* dwarf.c (regname): New declaration.
	(decode_location_expression): Print for registers also regname output.

2010-09-02  Richard Henderson  <rth@redhat.com>

	* dwarf.c (init_dwarf_regnames_i386, init_dwarf_regnames_x86_64): New.
	(init_dwarf_regnames): Use them.
	* dwarf.h: Declare them.
	* objdump.c (dump_dwarf): Use bfd_get_arch + bfd_get_mach to set up
	the regnames, rather than using elf_machine_code.

2010-09-02  Richard Henderson  <rth@redhat.com>

	* objdump.c (dump_dwarf): Use bfd_arch_bits_per_address.

2010-08-23  H.J. Lu  <hongjiu.lu@intel.com>

	* elfedit.c (input_elf_osabi): New.
	(output_elf_osbi): Likewise.
	(osabis): Likewise.
	(elf_osabi): Likewise.
	(update_elf_header): Support updating ELF OSABI.
	(make_qualified_name): Break long line.
	(command_line_switch): Add OPTION_INPUT_OSABI and
	OPTION_OUTPUT_OSABI.
	(options): Likewise.
	(usage): Add --input-osabi and --output-osabi.
	(main): Handle OPTION_INPUT_OSABI and OPTION_OUTPUT_OSABI.

	* doc/binutils.texi: Document --input-osabi and --output-osabi
	for elfedit.

2010-08-23  Maciej W. Rozycki  <macro@codesourcery.com>

	* readelf.c (display_mips_gnu_attribute): Replace GCC options
	with a textual description of a MIPS32r2 64-bit FPU.

2010-08-13  Dan Rosenberg  <dan.j.rosenberg@gmail.com>

	PR binutils/11889
	* readelf.c (get_32bit_elf_symbols): Check for a corrupt
	sh_entsize.
	(get_64bit_elf_symbols): Likewise.
	(process_symbol_table): Likewise.
	(process_section_groups): Check for corrupt headers.
	(process_version_sections): Check for corrupt indicies.
	(process_corefile_note_segment): Likewise.

2010-08-13  Nathan Sidwell  <nathan@codesourcery.com>

	* readelf.c (get_machine_flags): Detect CF ISA C and EMAC_B
	variants.

2010-08-13  Tom Tromey  <tromey@redhat.com>

	* dwarf.c (process_debug_info): Don't subtract section address
	when calculating location of cu abbrev within section.

2010-08-12  Michael Haubenwallner  <haubi@gentoo.org>

	PR binutils/11742
	* readelf.c (get_archive_member_name): Do not read beyond the end
	of the ar_name field.

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

	* dwarf.c (display_debug_lines): Mark file argument unused.
	Do not try to load .debug_info section.

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

	* readelf.c (apply_relocations): D30V is really REL.

2010-07-23  Naveen.H.S  <naveen.S@kpitcummins.com>
	    Ina Pandit  <ina.pandit@kpitcummins.com>

	* binutils/readelf.c: Add support for V850E2 and V850E2V3.

2010-07-22  Alan Modra  <amodra@gmail.com>

	* readelf.c: Add Moxie support.

2010-07-20  Alan Modra  <amodra@gmail.com>

	* readelf.c (process_program_headers): Don't ignore all zero size
	sections.

2010-07-19  Andreas Schwab  <schwab@redhat.com>

	* readelf.c (process_section_headers): Update key to flags.

2010-07-17  Dave Korn  <dave.korn.cygwin@gmail.com>

	* objcopy.c (copy_usage): Tweak previous typofix.

2010-07-17  H.J. Lu  <hongjiu.lu@intel.com>

	* objcopy.c (copy_usage): Fix a typo.

2010-07-15  Kai Tietz <kai.tietz@onevision.com>

	* dllwrap.c (main): Make sure is_leading_underscore
	gets initialized with correct default.

2010-07-05  Alan Modra  <amodra@gmail.com>

	* readelf.c (uncompress_section_contents): Avoid gcc-4.6 warning.

2010-07-03  Cary Coutant  <ccoutant@google.com>

	* objdump.c (load_specific_debug_section): Decompress section contents
	before applying relocations.
	* readelf.c (load_specific_debug_section): Update section size after
	decompression.

2010-06-29  Alan Modra  <amodra@gmail.com>

	PR binutils/3166
	* objcopy.c (is_strip_section): Revert 2006-09-05.
	(setup_section): Make SHT_GROUP section nobits.

2010-06-29  Alan Modra  <amodra@gmail.com>

	* configure: Regenerate.
	* po/POTFILES.in: Regenerate.

2010-06-27  Alan Modra  <amodra@gmail.com>

	* resbin.c (res_to_bin_accelerator): Delete set but unused variables.

2010-06-17  Nick Clifton  <nickc@redhat.com>

	PR binutils/11711
	* windres.c (enum option_values): New enum.
	(long_options): Use separate option number for --include-dir
	option.
	(main): Separate backwards compatibility check from code to
	implement --include-dir.  Check to see if directory exists and do
	not complain if it does.

2010-06-15  Joseph Myers  <joseph@codesourcery.com>

	* readelf.c (display_tic6x_attribute, process_tic6x_specific):
	New.
	(process_arch_specific): Call process_tic6x_specific for
	EM_TI_C6000.

2010-06-11  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (dump_ia64_vms_dynamic_fixups): Cast to unsigned long
	for 0x%lx.

2010-06-11  Tristan Gingold  <gingold@adacore.com>
	    Doug Rupp <rupp@gnat.com>

	* readelf.c (is_ia64_vms): New function.
	(dump_relocations): Use it.
	(get_machine_flags): Display IA-64 OpenVMS flags.
	(process_program_headers): No error on OpenVMS if no .dynamic section.
	(struct ia64_vms_dynfixup, struct ia64_vms_dynimgrela): New
	declarations.
	(dump_ia64_vms_dynamic_fixups): New function.
	(dump_ia64_vms_dynamic_relocs): Ditto.
	(process_ia64_vms_dynamic_relocs): Ditto.
	(process_relocs): Handle IA-64 OpenVMS relocs.
	(VMS_EPOCH_OFFSET, VMS_GRANULARITY_FACTOR): New macros.
	(print_vms_time): New function.
	(dynamic_section_ia64_val): Handle DT_IA_64_VMS_LINKTIME and
	DT_IA_64_VMS_LNKFLAGS.
	(get_ia64_symbol_other): New function.
	(get_symbol_other): Handle EM_IA_64.

2010-06-11  Tristan Gingold  <gingold@adacore.com>

	* unwind-ia64.c (unw_print_abreg): Add const to special_reg.
	(UNW_DEC_ABI): Ditto for abiname.
	(unw_decode_table): Make it const.

2010-06-10  Tristan Gingold  <gingold@adacore.com>

	* readelf.c (slurp_ia64_unwind_table): IA64 rela relocations are
	not inplace.

2010-05-25  Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Andrew Stubbs  <ams@codesourcery.com>

	* readelf.c (get_machine_flags): Handle EF_SH_PIC and EF_SH_FDPIC.

2010-05-25  Jay Krell  <jay.krell@cornell.edu>

	PR ld/11621
	* Makefile.am: Replace all occurences of .o with .@OBJEXT@
	* Makefile.in: Regenerate.

2010-05-24  Tristan Gingold  <gingold@adacore.com>

	* readelf.c (usage): Add new trace sections for --debug-dump.
	(process_section_headers): Handle dump of trace sections.
	* objdump.c (usage): Add new trace sections for --dwarf.
	* dwarf.h (do_trace_info, do_trace_abbrevs): New variables.
	(do_trace_aranges): Ditto.
	(enum dwarf_section_display_enum): Add trace_info, trace_abbrev
	and trace_aranges literals.
	* dwarf.c (do_trace_info, do_trace_abbrevs): New variables.
	(do_trace_aranges): Ditto.
	(process_debug_info): Add abbrev_sec argument and replace
	abbrev with abbrev_sec.
	(load_debug_info): Adjust call of process_debug_info.
	(display_debug_info): Ditto.
	(display_trace_info): New function.
	(dwarf_select_sections_by_names): Add trace_info, trace_abbrevs
	and trace_aranges sections name.
	(dwarf_select_sections_all): Also select trace sections.
	(debug_displays): Reindent.  Add entries for the trace sections.
	* doc/binutils.texi (readelf): Document new --dwarf parameters.
	(objdump): Ditto.

2010-05-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/11600
	* readelf.c (get_elf_section_flags): Treat SHF_EXCLUDE as a
	generic flag.

2010-05-07  Tristan Gingold  <gingold@adacore.com>

	* Makefile.in: Regenerate with automake 1.11.1.
	* aclocal.m4: Ditto.
	* doc/Makefile.in: Ditto.

2010-05-06  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf.c (init_dwarf_regnames): Handle EM_L1OM.
	* readelf.c (get_elf_section_flags): Likewise.
	(process_section_headers): Likewise.

2010-05-05  Nick Clifton  <nickc@redhat.com>

	* po/es.po: Updated Spanish translation.

2010-04-27  Kai Tietz  <kai.tietz@onevision.com>

	* dlltool.c (main): Query for bfd's underscoring default for
	default target case.

2010-04-27  Nick Clifton  <nickc@redhat.com>

	* po/ru.po: Updated Russian translation.

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

	* readelf.c (process_program_headers): Replace use of
	ELF_IS_SECTION_IN_SEGMENT_MEMORY with ELF_SECTION_IN_SEGMENT.

2010-04-22  Nick Clifton  <nickc@redhat.com>

	* po/binutils.pot: Updated by the Translation project.
	* po/fi.po: Updated Finnish translation.
	* po/vi.po: Updated Vietnamese translation.
	* po/bg.po: New Bulgarian translation.
	* configure.in (ALL_LINGUAS): Add bg.
	* configure: Regenerate.

2010-04-20  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Updated french translation.

2010-04-20  Nick Clifton  <nickc@redhat.com>

	* readelf.c: Add _() macros to constant strings that are
	translatable.

	* readelf.c (display_mips_gnu_attribute): Replace GCC options
	with a textual description of single and double precision float.

2010-04-15  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* readelf.c (arm_attr_tag_FP_arch): Rename from arm_attr_tag_VFP_arch.
	(arm_attr_tag_ABI_align8_needed): Remove.
	(arm_attr_tag_ABI_align8_preserved): Remove.
	(arm_attr_tag_ABI_HardFP_use): Update text strings.
	(arm_attr_public_tags): Add strings for ABI v2.08 attribute tags.
	(display_arm_attribute): Add decoding of ABI v2.08 attributes.

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

	PR binutils/11419
	* dwarf.c (process_debug_info): Initialise the signature array.

2010-04-09  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (process_debug_info): Remove unused variable
	cu_abbrev_offset_ptr.
	(display_debug_lines_decoded): Remove unused variable prev_line.
	* elfedit.c (process_archive): Remove unused variable
	file_name_size.
	* ieee.c (ieee_start_compilation_unit): Remove unused variable
	nindx.
	(ieee_set_type): Remove unused variables info, targetindx and
	baseindx.
	* objdump.c (disassmble_byte): Remove unused variable done_dot.
	* rddbg.c (read_section_stabs_debugging_info): Remove unused
	variable other.
	* readelf.c (dump_section_as_strings): Remove unused variable
	addr.
	(process_archive): Remove unused variable file_name_size.
	* stabs.c (parse_stab_string): Mark desc parameter as unused.
	Remove unused variable lineno.
	(parse_stab_struct_type): Remove unused variable orig.
	(stab_demangle_type): Remove unused variables constp, volatilep
	and hold.

2010-04-07  Alan Modra  <amodra@gmail.com>

	* configure: Regenerate.

2010-04-06  Nick Clifton  <nickc@redhat.com>

	* po/vi.po: Updated Vietnamese translation.

2010-04-05  Jakub Jelinek  <jakub@redhat.com>

	* dwarf.c (struct Frame_Chunk): Add ptr_size and segment_size
	fields.
	(display_debug_frames): Handle CIE version 4.

	* dwarf.c (struct State_Machine_Registers): Add op_index field,
	change end_sequence type to unsigned char.
	(reset_state_machine): Clear op_index.
	(process_extended_line_op): For DW_LNE_set_address clear op_index.
	(display_debug_lines_raw): Initialize li_max_ops_per_insn.
	Track op_index state machine register and print it if
	li_max_ops_per_insn is != 1.
	(display_debug_lines_decoded): Likewise.

2010-04-01  Jakub Jelinek  <jakub@redhat.com>

	* dwarf.c (read_and_display_attr_value): Don't reject
	dwarf_version == 4.  Handle DW_FORM_sec_offset, DW_FORM_flag_present
	and DW_FORM_exprloc.
	(process_debug_info): Handle cu_version == 4.
	(display_debug_lines_raw, display_debug_lines_decoded): Handle
	li_version == 4.

2010-03-30  Andreas Schwab  <schwab@linux-m68k.org>

	* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define.
	* Makefile.in: Regenerate.

2010-03-25  Joseph Myers  <joseph@codesourcery.com>

	* MAINTAINERS: Add self as TI C6X maintainer.
	* NEWS: Add news entry for TI C6X support.
	* readelf.c: Include elf/tic6x.h.
	(guess_is_rela): Handle EM_TI_C6000.
	(dump_relocations): Likewise.
	(get_tic6x_dynamic_type): New.
	(get_dynamic_type): Call it.
	(get_machine_flags): Handle EF_C6000_REL.
	(get_osabi_name): Handle machine-specific values only for relevant
	machines.  Handle C6X values.
	(get_tic6x_segment_type): New.
	(get_segment_type): Call it.
	(get_tic6x_section_type_name): New.
	(get_section_type_name): Call it.
	(is_32bit_abs_reloc, is_16bit_abs_reloc, is_none_reloc): Handle
	EM_TI_C6000.

2010-03-25  Thomas Schwinge  <thomas@codesourcery.com>

	* doc/binutils.texi (readelf) <unwind information>: Mention support for
	ARM unwind tables.

2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (decode_arm_unwind): Increase buf size to 9 byte.

2010-03-17  Alan Modra  <amodra@gmail.com>

	* readelf.c (dump_arm_unwind): Warning fix.

2010-03-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* MAINTAINERS: Update my email address.  List Tristan Gingold
	as the release branch maintainer.

2010-03-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* readelf.c (get_ver_flags): Handle VER_FLG_INFO.

2010-03-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Document .ARM.exidx / .ARM.extab support.

	* dwarf.c (read_leb128): Make non-static.
	* dwarf.h (read_leb128): Declare.
	* readelf.c (REMOVE_ARCH_BITS): Define.
	(find_section_by_address): New.
	(read_uleb128): Move higher.  Use read_leb128 from dwarf.c.
	(find_symbol_for_address): Handle the Thumb bit for ARM, by
	using REMOVE_ARCH_BITS.
	(struct arm_section, struct arm_unw_aux_info, arm_print_vma_and_name)
	(arm_free_section, arm_section_get_word, decode_arm_unwind)
	(dump_arm_unwind, arm_process_unwind): New.
	(process_unwind): Handle ARM.

2010-02-26  Jie Zhang  <jie@codesourcery.com>

	* MAINTAINERS: Update my email address.

2010-02-23  Peter Breitenlohner  <peb@mppmu.mpg.de>

	PR binutils/11298
	* doc/binutils.texi (windmc): Fix synopsis and description of
	ASCII options.

2010-02-19  Alan Modra  <amodra@gmail.com>

	* readelf.c (get_group_flags): Return empty string when flags zero.
	Add space in other returned values.
	(process_section_groups): Adjust format string.

2010-02-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* readelf.c (arm_attr_tag_Advanced_SIMD_arch): Add description of
	newly permitted attribute values.
	(arm_attr_tag_Virtualization_use): Likewise.
	(arm_attr_tag_DIV_use): Add description of new attribute.
	(arm_attr_tag_MPextension_use_legacy): Likewise.

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

	* po/vi.po: Updated Vietnamese translation.

2010-02-09  Michael Holzheu  <holzheu@de.ibm.com>

	* readelf.c (get_note_type): Handle NT_S390_TIMER, NT_S390_TODCMP,
	NT_S390_TODPREG, NT_S390_CTRS and NT_S390_PREFIX.

2010-02-08  Jim Blandy  <jimb@red-bean.com>

	* dwarf.c (display_debug_frames): Skip the 'S' character in CFI
	'z' augmentation strings.

2010-02-08  Christophe Lyon  <christophe.lyon@st.com>

	* objdump.c (disassemble_bytes): Clear aux->reloc before printing
	a new address, so as not to reuse a previous, non-related reloc.

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

	* readelf.c (get_note_type): Handle NT_X86_XSTATE.

2010-02-01  Nathan Sidwell  <nathan@codesourcery.com>

	* objcopy.c (copy_object): Set SEC_LINKER_CREATED when adding
	sections.

2010-01-28  Nick Clifton  <nickc@redhat.com>

	PR 11225
	* objdump.c (only): Replace with linked list.
	(only_size, only_used): Replace with only_list.
	(process_section_p): Set seen field on matches sections.
	(add_only): New function.
	(free_only_list): New function.
	(disassemble_section): Check only_list.
	(main): Use add_only and free_only_list.

2010-01-26  Tristan Gingold  <gingold@adacore.com>

	* Makefile.am (bin2c): Add libintl dependance and library.
	* Makefile.in: Regenerate.

2010-01-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* readelf.c (get_machine_flags): Handle EF_S390_HIGH_GPRS.

2010-01-19  Ian Lance Taylor  <iant@google.com>

	* objcopy.c (copy_main): Rewrite OPTION_ADD_SECTION code to work
	with non-ordinary files like /dev/null.

2010-01-19  Daisuke Hatayama  <d.hatayama@jp.fujitsu.com>
	    Alan Modra <amodra@gmail.com>

	* readelf.c (process_file_header): Handle e_phnum extension.

2010-01-14  Tristan Gingold  <gingold@adacore.com>

	* dwarf.c (get_AT_name): Handle DW_AT_use_GNAT_descriptive_type
	and DW_AT_GNAT_descriptive_type.

2010-01-13  Tristan Gingold  <gingold@adacore.com>

	* ar.c (main): Use lbasename.
	(normalize): Ditto.
	* objdump.c (update_source_path): Ditto.

2010-01-12  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms (CFLAGS): Turns warnings into informational messages.

2010-01-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/11146
	* NEWS: Mention --dyn-syms for readelf.

	* readelf.c (do_dyn_syms): New.
	(OPTION_DYN_SYMS): Likewise.
	(options): Add "dyn-syms".
	(usage): Add --dyn-syms.
	(parse_args): Handle OPTION_DYN_SYMS.
	(process_symbol_table): Handle do_dyn_syms.
	(process_object): Likewise.
	(process_archive): Likewise.

	* doc/binutils.texi: Document --dyn-syms for readelf.  Mention
	symbol hash tables for -D.

2010-01-11  Nick Clifton  <nickc@redhat.com>

	* NEWS: Mention addition of elfedit.

	* po/fi.po: Updated Finnish translation.

2010-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.

2010-01-08  H.J. Lu  <hongjiu.lu@intel.com>

	* version.c (print_version): Change to "Copyright 2010".

2010-01-08  H.J. Lu  <hongjiu.lu@intel.com>

	* elfedit.c (input_elf_type): New.
	(output_elf_type): Likewise.
	(elf_type): Likewise.
	(update_elf_header): Support updating ELF file type.
	(command_line_switch): Add OPTION_INPUT_TYPE and
	OPTION_OUTPUT_TYPE.
	(options): Likewise.
	(usage): Add --input-type and --output-type.
	(main): Handle OPTION_INPUT_TYPE and OPTION_OUTPUT_TYPE.  Check
	one of --output-mach and --output-type must be specified.

	* doc/binutils.texi: Document --input-type and --output-type
	for elfedit.

2010-01-08  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/binutils.texi: Fix a typo.

2010-01-08  H.J. Lu  <hongjiu.lu@intel.com>

	* elfedit.c (update_elf_header): Don't change input_elf_class
	nor input_elf_machine if they are -1.

2010-01-08  Tristan Gingold  <gingold@adacore.com>

	* ar.c: Remove bfd_special_undocumented_glue prototype.

2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	* elfedit.c (update_elf_header): Reformat.

2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (usage): Fix indent for --symbols.

2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/binutils.texi: Replace -histogram with --histogram.

2010-01-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/11131
	* Makefile.am (ELFEDIT_PROG): New.
	(bin_PROGRAMS): Add $(ELFEDIT_PROG).
	(CFILES): Add elfedit.c.
	(elfedit_DEPENDENCIES): New.
	(elfedit_SOURCES): Likewise.
	(elfedit_LDADD): Likewise.
	* Makefile.in: Regenerated.

	* elfedit.c: New.

	* doc/binutils.texi: Document elfedit.

	* doc/Makefile.am (man_MANS): Add elfedit.1.
	(elfedit.1): New.
	* doc/Makefile.in: Regenerated.

2010-01-06  Tristan Gingold  <gingold@adacore.com>

	* nm.c (usage): Remove extra blanks.

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

	* objcopy.c: Update copyright.
	* readelf.c: Likewise.

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

	PR binutils/11130
	* objcopy.c (copy_object): Remove "Warning: " from error
	message.

2010-01-04  Nick Clifton  <nickc@redhat.com>

	PR 11128
	* readelf.c (dump_section_as_strings): Use two separate
	invocations of printf() in order to work around bugs in
	the Solaris 8 implementation.

2010-01-04  Nick Clifton  <nickc@redhat.com>

	* po/ru.po: Updated Russian translation.

For older changes see ChangeLog-2009

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
