2011-12-28  Ian Lance Taylor  <iant@google.com>

	* dwarf.c (read_and_display_attr_value): Handle DW_LANG_Go.

2011-12-20  Roland McGrath  <mcgrathr@google.com>

	* configure.in (--enable-deterministic-archives): Grok new
	argument.  Set DEFAULT_AR_DETERMINISTIC to 1 or 0 accordingly.
	* configure: Regenerated.
	* config.in: Regenerated.
	* ar.c (deterministic): Initialize to -1.
	(decode_options, ranlib_main): Grok U option.
	(usage, ranlib_usage): Mention U; say for D and U which is the default.
	(default_deterministic): New function.
	(ranlib_main): Call it.
	(main): Likewise.  Make newer_only && deterministic error
	non-fatal if it was just DEFAULT_AR_DETERMINISTIC and not the D option.
	* doc/binutils.texi (ar cmdline, ranlib): Document U modifier and
	--enable-deterministic-archives behavior.

2011-12-16  Tristan Gingold  <gingold@adacore.com>

	* od-macho.c: Include mach-o/codesign.h
	(OPT_CODESIGN): Define.
	(options): Add an entry for codesign.
	(mach_o_help): Likewise.
	(dump_header): Fix indentation.
	(dump_thread): Do not test result of xmalloc.
	(bfd_mach_o_cs_magic, bfd_mach_o_cs_hash_type): New.
	(dump_code_signature_superblob): New function.
	(swap_code_codedirectory_v1_in): Likewise.
	(hexdump): Likewise.
	(dump_code_signature_codedirectory): Likewise.
	(dump_code_signature_blob, dump_code_signature): Likewise.
	(dump_load_command): Dump code signature.
	(mach_o_dump): Likewise.

2011-12-15  Andreas Tobler  <andreast@fgznet.ch>

	* readelf.c (get_symbol_type): Add ELFOSABI_FREEBSD to the
	supported abi's.

2011-12-13  Tristan Gingold  <gingold@adacore.com>

	* od-macho.c: New file.
	* objdump.h (objdump_private_desc_mach_o): Add.
	* configure.in: Add Mach-O od_vectors.
	* Makefile.am (CFILES): Add od-macho.c
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2011-12-06 David Daney <david.daney@cavium.com>

	* readelf.c (dynamic_section_mips_val): Factor out trailing '\n'
	from printed strings and move it to the end of the function.
	Use BFD_VMA_FMT for printf format specifier for dynamic tag value.
	Use print_vma() to print dynamic tag values.

2011-12-02  Nick Clifton  <nickc@redhat.com>

	* readelf.c (ia64_process_unwind): Turn into a void funtion.
	(hppa_process_unwind): Likewise.
	(arm_process_unwind): Likewise.
	(process_unwind): Likewise.
	(arm_get_section_word): Rename to get_unwind_section_word.
	Add sym_name parameter to return the offset into the string table
	of the symbol associated with the reloc applied to the word.
	(decode_tic6x_unwind_regmask): Add NULL argument to invocation of
	get_unwind_section_word.
	(dump_arm_unwind): Likewise.
	(decode_arm_unwind_bytecode): Prepend a comma when *not* the first
	register in a list.
	(decode_arm_unwind): If the returned function address is 0 and a
	valid symname offset is provided use that to compute the name
	associated with the entry.
	Add extra checks of the compact model index entry.

2011-11-29  Roland McGrath  <mcgrathr@google.com>

	* ar.c (ranlib_usage): Describe -D.
	(ranlib_main): Parse -D.
	(ranlib_touch): Set BFD_DETERMINISTIC_OUTPUT under -D.
	* doc/binutils.texi (ranlib): Describe -D, and also --help/-h/-H.

2011-11-28  Nick Clifton  <nickc@redhat.com>

	PR binutils/13421
	* readelf.c (arm_section_get_word): Add descriptive comments.
	Initliase the rel_type field of the arm_sec structure.
	(expand_prel31): Rename to arm_expand_prel31.
	(dump_arm_unwind): Use new name.
	Print the function name based on the function address entry.

2011-11-11  Andreas Schwab  <schwab@linux-m68k.org>

	* readelf.c (process_program_headers): Fix typo printing p_memsz
	field.

2011-11-01  DJ Delorie  <dj@redhat.com>

	* readelf.c: Include elf/rl78.h
	(guess_is_rela): Handle EM_RL78.
	(dump_relocations): Likewise.
	(get_machine_name): Likewise.
	(is_32bit_abs_reloc): Likewise.
	* NEWS: Mention addition of RL78 support.
	* MAINTAINERS: Add myself as RL78 port maintainer.

2011-10-28  Ian Lance Taylor  <iant@google.com>

	* dwarf.c (display_debug_frames): If do_debug_frames_interp,
	DW_CFA_restore goes to DW_CFA_undefined, not DW_CFA_unreferenced.

2011-10-28  Walter Lee  <walt@tilera.com>

	* NEWS: Mention addition of TILEPro and TILE-Gx support.
	* MAINTAINERS: Add myself as TILEPro and TILE-Gx port maintainer.

2011-10-27  Joern Rennecke  <joern.rennecke@embecosm.com>

	* MAINTAINERS: Add myself as EPIPHANY port maintainer.

2011-10-25  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.am (syslex.@OBJEXT@): Add -I$(srcdir).
	* Makefile.in: Regen.

2011-10-25  Joern Rennecke  <joern.rennecke@embecosm.com>

	* readelf.c: Include "elf/epiphany.h".
	(guess_is_rela, dump_relocation): Handle EM_ADAPTEVA_EPIPHANY.
	(get_machine_name, is_32bit_abs_reloc, is_32bit_pcrel_reloc): Likewise.
	(is_16bit_abs_reloc, is_none_reloc): Likewise.
	* po/binutils.pot: Regenerate.

2011-10-25  Kai Tietz  <ktietz@redhat.com>

	* winduni.h (unicode_from_ascii_len): New prototype.
	* winduni.c (unicode_from_ascii_len): New function.
	* windres.h (define_stringtable): Add additional length argument.
	* windres.c (define_stringtable): Add length argument for string.
	* rcparse.y (res_unicode_sizedstring): New rule.
	(res_unicode_sizedstring_concat): Likewise.
	(string_data): Adjust rule.

2011-10-24  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (read_and_display_attr_value) <DW_AT_import>: Add CU_OFFSET
	also for DW_FORM_ref_udata.

2011-10-24  Nick Clifton  <nickc@redhat.com>

	* po/ja.po: Updated Japanese translation.

2011-10-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/13278
	* ar.c (open_inarch): Set the target from the the first object
	on the list only if it isn't set.

2011-10-13  Nick Clifton  <nickc@redhat.com>

	Fixes to aid translation:
	* addr2line.c (translate_address): Add comments describing context
	of a couple of printf statements.
	* ar.c (write_archive): Allow translation of error message.
	* bucomm.c (endian_string): Allow translation of strings.
	(display_target_list): Allow translation.
	* coffdump.c (dump_coff_type): Allow translation of output.
	(dump_coff_where): Likewise.
	(dump_coff_symbol): Likewise.
	(dump_coff_scope): Likewise.
	(dump_coff_sfile): Likewise.
	(dump_coff_section): Likewise.
	(coff_dump): Likewise.
	* dlltool (def_version): Allow translation of output.
	(run): Likewise.
	* dllwrap.c (run): Allow translation of output.
	* dwarf.c (print_dwarf_vma): Allow translation of output.
	(process_extended_line_op): Remove spurious translation.
	Add translation for strings that can be translated.
	(decode_location_exression): Allow translation of output.
	(read_and_display_attr_value): Allow translation of output.
	* readelf.c (slurp_rela_relocs): Add translation for error
	messages when failing to get data.
	(slurp_rel_relocs): Likewise.
	(get_32bit_elf_symbols): Likewise.
	(get_64bit_elf_symbols): Likewise.
	(dump_ia64_vms_dynamic_relocs): Replace abbreviation with full
	word.
	(process_relocs): Remove spurious translation.
	(decode_tic6x_unwind_bytecode): Likewise.
	(process_version_section): Improve error messages.
	(process_mips_specific): Likewise.
	(print_gnu_note): Remove spurious translation.
	(print_stapsdt_note): Likewise.
	(get_ia64_vms_note_type): Likewise.
	* sysdump.c (getCHARS): Allow translation.
	(fillup): Allow translation of output.
	(getone): Likewise.
	(must): Likewise.
	(derived_type): Likewise.
	* doc/binutils.doc (addr2line): Extend description of command line
	options.
	* po/binutils.pot: Regenerate.

2011-10-13  Nick Clifton  <nickc@redhat.com>

	PR binutils/13219
	* readelf.c (GET_ELF_SYMBOLS): Add sym_count parameter.
	(get_32bit_elf_symbols): Add num_syms_return argument.
	Return the number of symbols loaded into the symbol table.
	(get_64bit_elf_symbols): Likewise.
	(process_section_headers): Use GET_ELF_SYMBOLS to initialise
	symbol count.
	(proces_relocs): Likewise.
	(ia64_process_unwind): Likewise.
	(hppa_process_unwind): Likewise.
	(arm_process_unwind): Likewise.
	(process_dynamic_section): Likewise.
	(process_version_sections): Likewise.
	(process_symbol_table): Likewise.
	(process_section_groups): Likewise.
	Add check before indexing into the symbol table.
	(apply_relocations): Likewise.

2011-10-11  Chris  <player1@onet.eu>

	PR binutils/13051
	Fix a syntax error bug when compiling rc files with the VERSIONINFO resource
	containing more than one language block inside a single StringFileInfo block.

	* windint.h (rc_ver_stringtable): New structure definition.
	(rc_ver_info): Use it.
	* rcparse.y (verstringtable): New variable.
	(verstringtables): New type.
	(verstringtables:): New rule declaration.
	(verblocks:): Use it.
	* resrc.c (append_ver_stringtable): New function.
	(append_ver_stringfileinfo): Update to use stringtables.
	* windres.h (append_ver_stringfileinfo): Update declaration.
	(append_ver_stringtable): New declaration.
	* resrc.c (write_rc_versioninfo): Update to support multiple blocks.
	* resbin.c (bin_to_res_version): Likewise.
	(res_to_bin_versioninfo): Likewise.

2011-10-10  Nick Clifton  <nickc@redhat.com>

	* po/bg.po: Updated Bulgarian translation.
	* po/es.po: Updated Spansih translation.
	* po/fi.po: Updated Finnish translation.
	* po/fr.po: Updated French translation.

2011-10-05  DJ Delorie  <dj@redhat.com>
	    Nick Clifton  <nickc@redhat.com>

	* readelf.c (get_machine_dlags): Add support for RX's PID mode.

2011-10-04  Paul Woegerer  <paul_woegerer@mentor.com>
	    Carlos O'Donell  <carlos@codesourcery.com>

	* dwarf.c (display_debug_lines_decoded): Index directory_table with
	directory_index from file_table entry.

2011-09-30  Cary Coutant  <ccoutant@google.com>

	* binutils/dwarf.h (dwarf_section_display_enum): Add missing enum
	constant.

2011-09-28  Tristan Gingold  <gingold@adacore.com>

	* od-xcoff.c (dump_xcoff32_aout_header): Fix typo.

2011-09-27  Tristan Gingold  <gingold@adacore.com>

	* od-xcoff.c (dump_xcoff32_aout_header): Remove some gettext macros.
	(dump_xcoff32_sections_header): Likewise.
	(dump_xcoff32_symbols, dump_xcoff32_relocs): Likewise.
	(dump_xcoff32_lineno, dump_xcoff32_loader): Likewise.
	(dump_xcoff32_except): Likewise.
	(dump_xcoff32_typchk, dump_xcoff32_tbtags): Likewise.

2011-09-27  Tristan Gingold  <gingold@adacore.com>

	* readelf.c (print_ia64_vms_note): Fix xgettext warnings.

2011-09-22  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Add marker for 2.22.

2011-09-21  David S. Miller  <davem@davemloft.net>

	* MAINTAINER: Take over from Jakub Jalinek as SPARC maintainer.

	* readelf.c (display_sparc_hwcaps): New.
	(display_sparc_gnu_attribute): New.
	(process_sparc_specific): New.
	(process_arch_specific): When EM_SPARC, EM_SPARC32PLUS,
	or EM_SPARCV9 invoke process_sparc_specific.

2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/13196
	* dwarf.c (display_debug_aranges): Check zero address size.

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

	PR binutils/13180
	* objcopy.c (is_strip_section_1): New.
	(is_strip_section): Use it.  Remove the group section if all
	members are removed.

2011-09-08  Nick Clifton  <nickc@redhat.com>

	* po/ja.po: Updated Japanese translation.

2011-08-26  Nick Clifton  <nickc@redhat.com>

	* po/es.po: Updated Spanish translation.

2011-08-08  Marcus Comstedt  <marcus@mc.pp.se>

	PR binutils/12964
	* Makefile.am (embedspu): Use awk rather than sed.
	* Makefile.in: Regenerate.

2011-07-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (read_and_display_attr_value): Recognize DW_FORM_data4 and
	DW_FORM_data8 as location list pointers only for DWARF < 4.

2011-07-26  Jakub Jelinek  <jakub@redhat.com>

	* NEWS: Mention .debug_macro support.
	* dwarf.c (read_and_display_attr_value): Don't print a tab
	if attribute is 0.
	(get_AT_name): Handle DW_AT_GNU_macros.
	(get_line_filename_and_dirname, display_debug_macro): New
	functions.
	(debug_displays): Add an entry for .debug_macro and .zdebug_macro.
	* readelf.c (process_section_headers): With do_debug_macinfo
	handle also .debug_macro sections.
	* dwarf.h (dwarf_section_display_enum): Add macro.

2011-07-24  Chao-ying Fu  <fu@mips.com>
            Maciej W. Rozycki  <macro@codesourcery.com>

	* readelf.c (get_machine_flags): Handle microMIPS ASE.
	(get_mips_symbol_other): Likewise.

2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf.c (init_dwarf_regnames): Handle EM_K1OM.

	* elfedit.c (elf_machine): Support EM_K1OM.
	(elf_class): Likewise.

	* readelf.c (guess_is_rela): Handle EM_K1OM.
	(dump_relocations): Likewise.
	(get_machine_name): Likewise.
	(get_section_type_name): Likewise.
	(get_elf_section_flags): Likewise.
	(process_section_headers): Likewise.
	(get_symbol_index_type): Likewise.
	(is_32bit_abs_reloc): Likewise.
	(is_32bit_pcrel_reloc): Likewise.
	(is_64bit_abs_reloc): Likewise.
	(is_64bit_pcrel_reloc): Likewise.
	(is_none_reloc): Likewise.

	* doc/binutils.texi: Mention K1OM for elfedit.

2011-07-11  Cary Coutant  <ccoutant@google.com>

	PR 12983
	* binutils/nm.c (display_file): Decompress debug sections when
	printing line numbers.

2011-07-03  Samuel Thibault  <samuel.thibault@gnu.org>
	    Thomas Schwinge  <thomas@schwinge.name>

	PR binutils/12913
	* elfedit.c (osabis): Use ELFOSABI_GNU name instead of ELFOSABI_LINUX
	alias and ELFOSABI_HURD.  Add GNU alias.
	* readelf.c (get_osabi_name, get_symbol_binding, get_symbol_type):
	Likewise.
	* doc/binutils.texi <elfedit>: Update accordingly.

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

	PR binutils/12325
	* doc/binutils.texi (ar cmdline): Document --target, --version and
	--help command line options.

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

	PR binutils/12558
	* ar.c (main): When asked to move members in an archive that is
	being created, ignore the move request.

2011-06-29  Nick Clifton  <nickc@redhat.com>

	* readelf.c (get_section_type_name): When displaying an unknown
	section type display the hex value first on the assumption that
	the full message will probably be truncated into a 15 character
	field.

2011-06-22  Jakub Jelinek  <jakub@redhat.com>

	* dwarf.c (decode_location_expression): For DW_OP_GNU_convert and
	DW_OP_GNU_reinterpret, if uvalue is 0, don't add cu_offset.
	Handle DW_OP_GNU_parameter_ref.

2011-06-16  Tom Tromey  <tromey@redhat.com>

	* dwarf-mode.el (dwarf-do-insert-substructure): Call
	expand-file-name.
	(dwarf-do-refresh): Likewise.

2011-06-15  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* readelf.c (get_note_type): Handle NT_ARM_VFP.

2011-06-13  Walter Lee  <walt@tilera.com>

	* readelf.c: Include tilepro.h and tilegx.h.
	(guess_is_rela): Handle EM_TILEGX and EM_TILEPRO.
	(dump_relocations): Likewise.
	(get_machine_name): Likewise.
	(is_32bit_abs_reloc): Likewise.
	(is_32bit_pcerel_reloc): Likewise.
	(is_64bit_abs_reloc): Likewise.
	(is_64bit_pcrel_reloc): Likewise.

2011-06-09  Tristan Gingold  <gingold@adacore.com>

	* od-xcoff.c (xcoff32_read_symbols): Allow missing string table
	length.

2011-06-08  Nick Clifton  <nickc@redhat.com>

	PR binutils/12855
	* readelf.c (process_version_sections): Handle binaries containing
	corrupt version information.
	(process_symbol_table): Stop processing a symbol's version
	information if it could not be read in.

	(get_data): Add comment describing the function.
	(process_section_headers): Set dynamic_strings_length to 0 if the
	dynamic strings could not be read in.
	(process_dynamic_section): Likewise.
	(process_section_groups): Stop processing the group information if
	the data could not be read in.
	(hppa_processs_unwind): Assert that there is only one string table
	in the file.
	(arm_process_unwind): Likewise.
	(ia64_process_unwind): Likewise.
	Set the size of the unwind auxillary information to 0 if the data
	could not be read.
	(load_specific_debug_section): Handle a failure to read in the
	section.
	(process_mips_specific): Stop display of the PLT GOT section if it
	could not be read in.

2011-06-08  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms (DEFS): Define OBJDUMP_PRIVATE_VECTORS.

2011-06-07  Cary Coutant  <ccoutant@google.com>

	* dwarf.c: Fix conversion to TU number.

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

	* resres.c: Fix spelling typo.
	* windint.h: Likewise.
	* windmc.c: Likewise.
	* windres.c: Likewise.
	* po/POTFILES.in: Regenerate.
	* po/binutils.pot: Regenerate.

2011-06-01  Daniel Jacobowitz  <drow@false.org>

	* MAINTAINERS: Update my email address.

2011-05-31  Matthias Klose  <doko@ubuntu.com>

	* configure.in (BUILD_INSTALL_MISC): Only add embedspu once.
	* configure: Regenerate.

2011-05-30  Alan Modra  <amodra@gmail.com>

	PR binutils/12820
	* Makefile.am (bin_PROGRAMS): Move BUILD_INSTALL_MISC to..
	(bin_SCRIPTS): ..here.
	(EXTRA_SCRIPTS): Define.
	(EXTRA_DIST): Add embedspu.sh.
	(DISTCLEANFILES): Add embedspu.
	(embedspu): Depend on Makefile.  Replace sed "s" command with "c".
	* Makefile.in: Regenerate.

2011-05-25  Jakub Jelinek  <jakub@redhat.com>

	* dwarf.c (loc_offsets): New variable.
	(loc_offsets_compar): New routine.
	(display_debug_loc): Handle loc_offsets not being in ascending order
	and also a single .debug_loc entry being used multiple times.

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

	PR binutils/12753
	* nm.c (filter_symbols): Treat unique symbols as global symbols.
	* doc/binutils.texi (nm): Mention that some lowercase letters
	actually indicate global symbols.

2011-05-15  Tristan Gingold  <gingold@adacore.com>

	* od-xcoff.c: New file.
	* objdump.h: New file.
	* objdump.c: Include objdump.h
	(dump_private_options, objdump_private_vectors): New variables.
	(usage): Mention -P/--private.  Display handled options.
	(long_options): Add -P/--private.
	(dump_target_specific): New function.
	(dump_bfd): Handle dump_private_options.
	(main): Handle -P.
	* doc/binutils.texi (objdump): Document -P/--private.
	* configure.in (OBJDUMP_PRIVATE_VECTORS, OBJDUMP_PRIVATE_OFILES):
	New variables, compute them.
	(od_vectors): Add vectors for private dumpers. Make them uniq.
	(OBJDUMP_DEFS): Add OBJDUMP_PRIVATE_VECTORS.
	* Makefile.am (HFILES): Add objdump.h
	(CFILES): Add od-xcoff.c
	(OBJDUMP_PRIVATE_OFILES): New variable.
	(objdump_DEPENDENCIES): Append OBJDUMP_PRIVATE_OFILES.
	(objdump_LDADD): Ditto.
	(EXTRA_objdump_SOURCES): Define.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2011-05-10  Tristan Gingold  <gingold@adacore.com>

	* dwarf.c (process_extended_line_op): Dump unknown records.

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

	PR binutils/12632
	* objcopy.c (copy_archive): Check bfd_openw result in unknown object
	case.  Rewrite without goto.

2011-05-03  Jakub Jelinek  <jakub@redhat.com>

	* dwarf.c (decode_location_expression): Handle DW_OP_GNU_const_type,
	DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert
	and DW_OP_GNU_reinterpret.

	* MAINTAINERS: Add myself as DWARF2 maintainer.

2011-05-02  Alan Modra  <amodra@gmail.com>

	PR binutils/12720
	Revert the following change
	Michael Snyder  <msnyder@vmware.com>
	* ar.c (move_members): Plug memory leak.
	(delete_members): Plug memory leak.

2011-04-28  Tom Tromey  <tromey@redhat.com>

	* NEWS: Add note about --dwarf-depth, --dwarf-start, and
	dwarf-mode.el.
	* objdump.c (suppress_bfd_header): New global.
	(usage): Update.
	(OPTION_DWARF_DEPTH, OPTION_DWARF_START): New constants.
	(options): Add dwarf-depth and dwarf-start entries.
	(dump_bfd): Use suppress_bfd_header.
	(main): Handle OPTION_DWARF_START, OPTION_DWARF_DEPTH.
	* doc/binutils.texi (objcopy): Document --dwarf-depth and
	--dwarf-start.
	(readelf): Likewise.
	* dwarf-mode.el: New file.
	* dwarf.c (dwarf_cutoff_level, dwarf_start_die): New globals.
	(read_and_display_attr_value): Also check debug_info_p.
	(process_debug_info): Handle dwarf_start_die and
	dwarf_cutoff_level.
	* dwarf.h (dwarf_cutoff_level, dwarf_start_die): Declare.
	* readelf.c (usage): Update.
	(OPTION_DWARF_DEPTH): New macro.
	(OPTION_DWARF_START): Likewise.
	(options): Add dwarf-depth and dwarf-start entries.
	(parse_args): Handle OPTION_DWARF_START and OPTION_DWARF_DEPTH.

2011-04-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (display_gdb_index): Support version 5, warn on version 4.

2011-04-27  Tristan Gingold  <gingold@adacore.com>

	* dwarf.c (process_extended_line_op): Handle
	DW_LNE_HP_source_file_correlation.

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

	* po/da.po: Updated Danish translation.

2011-04-21  Tom Tromey  <tromey@redhat.com>

	* readelf.c (print_stapsdt_note): New function.
	(process_note): Use it.

2011-04-21  Tom Tromey  <tromey@redhat.com>

	* readelf.c (get_stapsdt_note_type): New function.
	(process_note): Recognize "stapsdt" notes.

2011-04-21  Tom Tromey  <tromey@redhat.com>

	* readelf.c (process_corefile_note_segment): Change header field
	widths.
	(process_note): Change field widths.

2011-04-21  Tom Tromey  <tromey@redhat.com>

	* readelf.c (print_gnu_note): New function.
	(process_note): Use it.

2011-04-21  Jie Zhang  <jzhang918@gmail.com>

	* MAINTAINERS: Update my email address.

2011-04-11  Kai Tietz  <ktietz@redhat.com>

	* windres.c (usage): Add new --preprocessor-arg option.
	(option_values): Add new OPTION_PREPROCESSOR_ARG enumerator.
	(option long_options): Add preprocessor-arg option.
	(main): Handle it.
	* doc/binutils.texi: Add documentation for --preprocessor-arg
	option.
	* NEWS: Add line about new --preprocessor-arg option for windres.

2011-04-08  John Marino  <binutils@marino.st>

	* arlex.l: Prevent redefinition of YY_NO_UNPUT.
	* syslex.l: Likewise.

2011-04-07  Paul Brook  <paul@codesourcery.com>

	* readelf.c (arm_section_get_word): Handle C6000 relocations.
	(decode_tic6x_unwind_regmask, decode_arm_unwind_bytecode,
	decode_tic6x_unwind_bytecode, expand_prel31): New functions.
	(decode_arm_unwind): Split out common code from ARM specific bits.
	(dump_arm_unwind): Use expand_prel31.
	(arm_process_unwind): Handle SHT_C6000_UNWIND sections.
	(process_unwind): Add SHT_C6000_UNWIND.

2011-04-06  Joseph Myers  <joseph@codesourcery.com>

	* configure.in (thumb-*-pe*): Remove.
	* configure: Regenerate.

2011-04-05  Sterling Augustine  <augustine.sterling@gmail.com>

	* MAINTAINERS: Update my email address.

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

	PR binutils/12632
	* objcopy.c (copy_unknown_object): Make the archive element
	readable.

2011-04-03  David S. Miller  <davem@davemloft.net>

	* objdump.c (dump_reloc_set): Output R_SPARC_OLO10 relocations
	accurately, rather than how they are represented internally.

2011-03-31  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms (readelf.exe): New target.

2011-03-31  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms (DEBUG_OBJS): Add elfcomm.obj.

2011-03-31  Bernd Schmidt  <bernds@codesourcery.com>

	* readelf.c (get_symbol_index_type): Handle SCOM for TIC6X.
	(dump_relocations): Likewise.

2011-03-31  Tristan Gingold  <gingold@adacore.com>

	* readelf.c (get_ia64_vms_note_type): New function.
	(print_ia64_vms_note): Ditto.
	(process_note): Recognize VMS/ia64 specific notes.
	Display them.
	(process_corefile_note_segment): Decode VMS notes.

2011-03-30  Catherine Moore  <clm@codesourcery.com>

	* addr2line.c (translate_addresses): Sign extend the pc
	if sign_extend_vma is enabled.

2011-03-30  Michael Snyder  <msnyder@msnyder-server.eng.vmware.com>

	* readelf.c (process_gnu_liblist): Stop memory leak.

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

	* coffdump.c: Include bfd_stdint.h

2011-03-28  Pierre Muller  <muller@ics.u-strasbg.fr>

	* coffdump.c (coff_dump): Correct spelling error.
	(show_usage): Replace SYSROFF by COFF.

2011-03-25  Pierre Muller  <muller@ics.u-strasbg.fr>

	* coffdump.c (dump_coff_scope): Use double typecast for pointer P
	to allow compilation for all targets.

2011-03-25  Pierre Muller  <muller@ics.u-strasbg.fr>

	* dwarf.c (process_debug_info): Use offset_size to determine
	the bit-size of the computation unit's offset.
	(decode_location_expression): Use dwarf_vmatoa function to display
	DW_OP_addr OP.
	(process_debug_info): Use dwarf_vma type for local variables
	length and type_offset.

2011-03-25  Michael Snyder  <msnyder@vmware.com>

	* strings.c (print_strings): Plug memory leak.
	* ar.c (move_members): Plug memory leak.
	(delete_members): Plug memory leak.
	(write_archive): Plug memory leak.
	* ieee.c (ieee_add_bb11): Plug memory leak.
	(ieee_function_type): Likewise.
	(ieee_class_baseclass): Likewise.
	* prdbg.c (pr_function_type): Close memory leaks.
	(pr_method_type): Likewise.
	(tg_class_static_member): Likewise.
	(tg_class_method_variant): Likewise.
	(tg_class_static_method_variant): Likewise.
	* stabs.c (parse_stab_enum_type): Fix memory leaks.
	(parse_stab_struct_type): Likewise.
	(parse_stab_struct_fields): Likewise.
	(parse_stab_one_struct_field): Likewise.
	(parse_stab_members): Likewise.
	(stab_demangle_qualified): Likewise.
	* objdump.c (dump_reloc_set): Free malloced memory.
	* bucomm.c (make_tempname): Stop memory leak.

2011-03-25  Pierre Muller  <muller@ics.u-strasbg.fr>

	Replace bfd_vma type and analog types by dwarf_vma and analogs.
	Use dwarf specific print functions to display these type values.
	* dwarf.h (dwarf_signed_vma): New type;
	(DWARF2_External_LineInfo): Replace bfd_vma by dwarf_vma.
	(DWARF2_External_PubNames): Likewise.
	(DWARF2_External_CompUnit): Likewise.
	(DWARF2_External_ARange): Likewise.
	(read_leb128): Change return type to dwarf_vma.
	* dwarf.c (print_dwarf_vma): Use __MINGW32__ conditional and
	check byte_size values.
	(dwarf_vmatoa): Change parameter type to dwarf_vma.
	(dwarf_svmatoa): New static function.
	(read_leb128): Change return type to dwarf_vma.
	(read_sleb128): New static function.
	(struct State_Machine_Registers): Change address field type to
	dwarf_vma.
	(process_extended_line_op): Adapt to type changes.
	(fetch_indirect_string): Likewise.
	(idisplay_block): Likewise.
	(decode_location_expression): Likewise.
	(read_and_display_attr_value): Likewise.
	(process_debug_info): Likewise.
	(display_debug_lines_raw): Likewise.
	(display_debug_lines_decoded): Likewise.
	(SLEB macro): Use new read_sleb128 function.

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

	PR 12590
	* ar.c (ranlib_main): Init arg_index properly.
	(usage): Describe --target.

2011-03-16  Jakub Jelinek  <jakub@redhat.com>

	* dwarf.c (dw_TAG_name): Handle DW_TAG_GNU_call_site_parameter.
	(read_and_display_attr_value): Handle DW_AT_GNU_call_site_data_value,
	DW_AT_GNU_call_site_target and DW_AT_GNU_call_site_target_clobbered.
	(get_AT_name): Handle DW_AT_GNU_call_site_value,
	DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
	DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
	DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites and
	DW_AT_GNU_all_source_call_sites.
	(decode_location_expression) <case DW_OP_GNU_entry_value>: Adjust
	handling.

2011-03-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (get_TAG_name): Handle DW_TAG_GNU_call_site.
	(decode_location_expression): Handle DW_OP_GNU_entry_value.
	(read_and_display_attr_value): Handle DW_AT_GNU_call_site_value.
	(get_AT_name): Likewise.

2011-03-14  Michael Snyder  <msnyder@vmware.com>

	* objcopy.c (set_pe_subsystem): Free subsystem.

	* wrstabs.c (stab_start_struct_type): Close memory leak.

	* readelf.c (process_version_sections): Free symbols.

	* nm.c (display_rel_file): Free symsizes.

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

	* readelf.c (get_machine_name): Update EM_V850 entry.

2011-03-03  Mike Frysinger  <vapier@gentoo.org>

	* objdump.c (usage): Fix single typo.
	* po/bg.po, po/binutils.pot, po/da.po, po/es.po, po/fi.po,
	po/fr.po, po/id.po, po/ja.po, po/ru.po, po/vi.po: Likewise.

2011-03-01  Akos Pasztory  <akos.pasztory@gmail.com>

	PR binutils/12523
	* readelf.c (process_object): Clear dynamic_info_DT_GNU_HASH.

2011-02-28  Kai Tietz  <kai.tietz@onevision.com>

	* debug.c (debug_start_source): Use filename_(n)cmp.
	* ieee.c (ieee_finish_compilation_unit): Likewise.
	(ieee_lineno): Likewise.
	* nlmconv.c (main): Likewise.
	* objcopy.c (strip_main): Likewise.
	(copy_main): Likewise.
	* objdump.c (show_line): Likewise.
	(dump_reloc_set): Likewise.
	* srconv.c (main): Likewise.
	* wrstabs.c (stab_lineno): Likewise.

2011-02-24  Zachary T Welch  <zwelch@codesourcery.com>

	* readelf.c (decode_arm_unwind): Implement decoding of remaining
	ARM unwind instructions (i.e. VFP/NEON and Intel Wireless MMX).

2011-02-23  Kai Tietz  <kai.tietz@onevision.com>

	* dwarf.c (read_leb128): Use bfd_vma instead of
	long type.
	(dwarf_vmatoa): New helper routine.
	(process_extended_line_op): Use for adr bfd_vma
	type and print those typed values via BFD_VMA_FMT
	or via dwarf_vmatoa for localized prints.
	(fetch_indirect_string): Adjust offset's type.
	(decode_location_expression): Adjust argument types
	and uvalue type.
	(read_and_display_attr_value): Likewise.
	(read_and_display_attr): Likewise.
	(decode_location_expression): Adjust printf format.
	(process_debug_info): Likewise.
	(display_debug_lines_raw): Likewise.
	(display_debug_lines_decoded): Likewise.
	(display_debug_pubnames): Likewise.
	(display_debug_loc): Likewise.
	(display_debug_aranges): Likewise.
	* dwarf.h (DWARF2_External_LineInfo,
	DWARF2_Internal_LineInfo, DWARF2_External_PubNames,
	DWARF2_Internal_PubNames, DWARF2_External_CompUnit,
	DWARF2_Internal_CompUnit, DWARF2_External_ARange,
	DWARF2_Internal_ARange): Added..
	(read_leb128): Adjust return type.

2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

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

	PR binutils/12467
	* readelf.c (process_program_headers): Issue a warning if there
	are no program headers but the file header has a non-zero program
	header offset.
	(process_section_headers): Issue a warning if there are no section
	headers but the file header has a non-zero section header offset.
	(process_section_groups): Reword the no section message so that it
	can be distinguished from the one issued by process_section_headers.

2011-01-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Doug Evans  <dje@google.com>

	* dwarf.c (display_gdb_index): Support version 4, warn on version 3.

2011-01-19  Maciej W. Rozycki  <macro@codesourcery.com>

	* readelf.c (process_object): Free dynamic_section after use.

2011-01-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/12408
	* readelf.c (process_archive): Free and reset dump_sects
	after processing each archive member.

2011-01-11  Andreas Schwab  <schwab@redhat.com>

	* readelf.c (print_symbol): Handle symbol characters as unsigned.
	Whitespace fixes.

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

	* po/da.po: Updated Danish translation.

2011-01-06  Vladimir Siminov  <sv@sw.ru>

	* bucomm.c (get_file_size): Check for negative sizes and issue a
	warning message if encountered.

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

	* version.c (print_version): Update copyright to 2011.

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