2008-12-23  Jon Beniston <jon@beniston.com>

	* MAINTAINERS: Added Jon Beniston as maintainer for LM32 port.
	* readelf.c: Add support for LM32 machine number.

2008-12-23  Kai Tietz  <kai.tietz@onevision.com>

	* rcparse.y (rcdata_data): Allow empty comma elements.

2008-12-23  Nick Clifton  <nickc@redhat.com>

	* objdump.c (dump_reloc_set): Remove STT_IFUNC support.
	* readelf.c (dump_relocations): Likewise.
	(get_symbol_type): Likewise.
	* doc/binutils.texi: Likewise.

2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2008-12-09  Tom Tromey  <tromey@redhat.com>

	* srconv.c (wr_hd): Add parens to placate gcc 4.4.

2008-12-09  Andrew Stubbs  <ams@codesourcery.com>

	* readelf.c (arm_attr_tag_CPU_arch): Add "v6-M" and "v6S-M".
	(arm_attr_tag_WMMX_arch): Add "WMMXv2".
	(arm_attr_tag_NEON_arch): Rename to ...
	(arm_attr_tag_Advanced_SIMD_arch): ... official name.
	(arm_attr_tag_ABI_PCS_config): Rename to ...
	(arm_attr_tag_PCS_config): ... official name.
	(arm_attr_tag_ABI_PCS_RO_DATA): Rename to ...
	(arm_attr_tag_ABI_PCS_RO_data): ... official name.
	(arm_attr_tag_ABI_FP_denormal): Add "Sign only".
	(arm_attr_tag_CPU_unaligned_access): New array.
	(arm_attr_tag_T2EE_use): New array.
	(arm_attr_tag_Virtualization_use): New array.
	(arm_attr_tag_MPextension_use): New array.
	(arm_attr_publ): NEON_arch -> Advanced_SIMD_arch.
	ABI_PCS_config -> PCS_config.
	ABI_PCS_RO_DATA -> ABI_PCS_RO_data.
	Add CPU_unaligned_access, nodefaults, also_compatible_with,
	T2EE_use, conformance, Virtualization_use and MPextension_use.
	(display_arm_attribute): Handle Tag_nodefaults and
	Tag_also_compatible_with.

2008-12-04  Ben Elliston  <bje@au.ibm.com>

	* doc/binutils.texi (objdump): Update booke documentation.
	* NEWS: Document user-visible changes to command line options.

2008-12-04  Nick Clifton  <nickc@redhat.com>

	* objdump.c (dump_reloc_set): Append "()" to symbol names which
	have the BSF_INDIRECT_FUNCTION type.
	* readelf.c (print_symbol): Fix handling of negative widths.
	(dump_relocations): Append "()" to symbol names which have the
	STT_IFUNC type. Display negative offsets as a positive number with
	a "-" prefix.
	(get_symbol_type): Return "IFUNC" for STT_IFUNC symbols.
	* doc/binutils.texi: Document 'i' symbol type.

2008-11-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* strings.c (main): New variable `s'.  Have string_min parsing
	call fatal for invalid input strings.

2008-11-25  Nick Clifton  <nickc@redhat.com>

	PR7044
	* dlltool.c (run): Use formatting string to avoid compile time
	warning.
	(gen_exp_file): Check return value from fread.
	* windmc.c (main): Check return value from fread.

2008-11-21 Sterling Augustine <sterling@tensilica.com>

	* MAINTAINERS: Take over from Bob Wilson as Xtensa maintainer.

2008-11-19  Nick Clifton  <nickc@redhat.com>

	* doc/fdl.texi: Update to v1.3
	* doc/binutils.texinfo: Change license to v1.3.

2008-11-18  Catherine Moore  <clm@codesourcery.com>

	* readelf.c (arm_attr_tag_ABI_FP_16bit_format): New.
	(arm_attr_tag_VFP_HP_extension): New.
	(arm_attr_public_tag arm_attr_public_tags): Support
	new attributes. 

2008-11-17  Nick Clifton  <nickc@redhat.com>

	* version.c (print_version): Update copyright year.

2008-11-16  Danny Smith  <dannysmith@usesr.sourceforge.net>

	* dlltool.c (identify_search_section): Cast argument, not return
	value, of xstrdup to 'char*'.

2008-11-15  Charles Wilson  <cygwin@cwilson.fastmail.fm>

	Added --identify option to dlltool.
	* binutils/dlltool.c: Add new global variables
	identify_imp_name and identify_dll_name.
	(identify_dll_for_implib, identify_search_archive,
	identify_search_member, identify_process_section_p,
	identify_search_section): New functions.
	(usage): Added --identify.
	(long_options): Added --identify.
	(main): Handle --identify option.
	* binutils/doc/binutils.texi: Document --identify.

2008-11-14  Tristan Gingold  <gingold@adacore.com>

	Remove outdated mach-o specific tests.
	* objdump.c (load_debug_section): Remove mach-o specific test.
	(mach_o_uncompressed_dwarf_sections): Removed.
	(mach_o_compressed_dwarf_sections): Removed.
	(generic_uncompressed_dwarf_sections): Removed.
	(generic_compressed_dwarf_sections): Removed.
	(check_mach_o_dwarf): Removed.
	(dump_dwarf): Remove call to check_mach_o_dwarf.

2008-11-14  Tristan Gingold  <gingold@adacore.com>

	* configure.com: Get version from configure.in of bfd.
	* makefile.vms-in (DEBUG_OBJS): Add dwarf.obj.
	(CFLAGS): Update flags.

2008-11-13  Hans-Peter Nilsson  <hp@axis.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* nm.c (filter_symbols): Only call memcpy when from != to.

2008-11-10  Tristan Gingold  <gingold@adacore.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* objdump.c (disassemble_bytes): Don't skip leading zeros when
	end of section calculation overflows.

2008-11-07  Prafulla Thakare  <prafulla.thakare@kpitcummins.com>

	* MAINTAINERS: Take over from Anil Paranjpe as H8300 maintainer.

2008-10-31  Alan Modra  <amodra@bigpond.net.au>

	* po/id.po: New file.
	* configure.in (ALL_LINGUAS): Add id.
	* configure: Regenerate.

2008-10-21  Alan Modra  <amodra@bigpond.net.au>

	* windmc.c (res_alloc): Remove unnecessary cast.
	* windres.c (res_alloc, reswr_alloc): Likewise.

2008-10-20  Nick Clifton  <nickc@redhat.com>

	* readelf.c: Tidy up code formatting.

2008-10-10  Nathan Froyd  <froydnj@codesourcery.com>

	* readelf.c (display_power_gnu_attribute): Decode
	Tag_GNU_Power_ABI_Struct_Return.

2008-10-10  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh: Pass -Wa,-noexecstack to $CC.

2008-10-09  Kai Tietz  <kai.tietz@onevision.com>

	* dlltool.c (PAGE_SIZE): Make sure it has bfd_vma type.
	(PAGE_MASK): Likewise.
	(sfunc): Change to address size of bfd_vma for base-file.
	(flush_page): Likewise.
	(gen_exp_file): Likewise.

2008-10-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* readelf.c (process_section_headers): Do not cut the section names and
	types if running with --wide.

2008-10-06  Tom Tromey  <tromey@redhat.com>

	* dwarf.c (display_debug_frames): Change text for uniformity.
	(process_debug_info): Likewise.
	(display_debug_aranges): Likewise.  Indent address output.
	(display_debug_pubnames): Print offset in hex.

2008-10-02  Andrew Paprocki  <andrew@ishiboo.com>

	PR 6934
	* stabs.c (parse_stab_string): Parse and ignore =Y<name> strings
	generated by the SUNPro C++ compiler.

2008-09-30  Andrew Paprocki  <andrew@ishiboo.com>

	PR 6922
	* stabs.c (parse_stab_sun_builtin_type): Parse, but ignore SUN's
	'b' and 'v' extensions.

2008-09-29  Peter O'Gorman  <pogma@thewrittenword.com>
	    Steve Ellcey  <sje@cup.hp.com>

	* configure: Regenerate for new libtool.
	* aclocal.m4: Ditto.
	* Makefile.in: Ditto.
	* doc/Makefile.in: Ditto.

2008-09-28  Alan Modra  <amodra@bigpond.net.au>

	* objcopy.c (setup_section): Set elf_group_id.

2008-09-24  Richard Henderson  <rth@redhat.com>

	* dwarf.c (size_of_encoded_value, get_encoded_value): Move up.
	(decode_location_expression): Add section parameter.  Handle
	DW_OP_GNU_encoded_addr.
	(read_and_display_attr_value): Update decode_location_expression call.
	(display_debug_loc, display_debug_frames): Likewise.

2008-09-25  Alan Modra  <amodra@bigpond.net.au>

	PR 6913
	* dwarf.c (print_dwarf_vma): Don't call printf without format string.

2008-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Suppress warnings on NONE relocations to discarded sections.
	* readelf.c (is_none_reloc): New function.
	(debug_apply_relocations): Ignore is_none_reloc() relocations.

2008-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix loading large elf64 binaries on 32bit hosts.
	* configure.in: Call AC_SYS_LARGEFILE.
	* config.in: Regenerate.
	* configure: Regenerate.

2008-09-11  Alan Modra  <amodra@bigpond.net.au>

	* po/sv.po: Update.

2008-09-08  Tristan Gingold  <gingold@adacore.com>

	* BRANCHES: Add 2.18 and 2.19 release branches.

2008-09-08  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Add a marker for the 2.19 features.

2008-09-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* readelf.c (load_specific_debug_section): New function, from
	load_debug_section.
	(load_debug_section): Use load_specific_debug_section.
	(display_debug_section): Use load_specific_debug_section.  Check for
	multiple sections with the same name.

2008-08-28  Tristan Gingold  <gingold@adacore.com>

	* objdump.c (dump_stabs): Add sections for Darwin.

2008-08-25  Alan Modra  <amodra@bigpond.net.au>

	* sysdep.h: Include "binary-io.h".
	(O_BINARY): Don't define here.
	* bin2c.c (O_BINARY, O_TEXT, SET_BINARY): Don't define here.
	* strings.c: Likewise.
	(main): Remove #ifdef SET_BINARY.
	* Makefile.am: Run "make dep-am"
	* Makefile.in: Regenerate.

2008-08-24  Alan Modra  <amodra@bigpond.net.au>

	* configure.in: Update a number of obsolete autoconf macros.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.

2008-08-21  Richard Henderson  <rth@redhat.com>

	* readelf.c (is_32bit_pcrel_reloc): Fix hppa entry.
	(is_64bit_pcrel_reloc): New.
	(debug_apply_relocations): Use it.  Handle hppa pcrel bias.

2008-08-15  Alan Modra  <amodra@bigpond.net.au>

	PR 6526
	* configure.in: Invoke AC_USE_SYSTEM_EXTENSIONS.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.

2008-08-09  Alan Modra  <amodra@bigpond.net.au>

	PR 6615
	* rename.c (smart_rename): Punctuate error messages.

2008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Catherine Moore  <clm@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>

	* readelf.c (get_mips_symbol_other): Handle STO_MIPS_PLT and
	STO_MIPS_PIC.
	(slurp_rela_relocs, slurp_rel_relocs): Handle MIPS ELF64 here.
	(dump_relocations, debug_apply_relocations): Don't handle it here.
	(get_mips_dynamic_type): Handle DT_MIPS_PLTGOT and DT_MIPS_RWPLT.
	(print_mips_pltgot_entry): New function.
	(process_mips_specific): Dump the PLT GOT.

2008-08-08  Alan Modra  <amodra@bigpond.net.au>

	* readelf.c (is_64bit_abs_reloc): Return true for R_MIPS_64.

2008-08-06  Alan Modra  <amodra@bigpond.net.au>

	PR 6774
	* objcopy.c (copy_object): Don't setup_bfd_headers when extract_symbol.
	(setup_section): Don't zero vma and lma when extract_symbol.
	(copy_section): Discard relocations when extract_symbol.
	* doc/binutils.texi: Update --extract-symbol description.

2008-08-04  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (POTFILES.in): Set LC_ALL=C.
	* Makefile.in: Regenerate.

2008-08-04  Markus Weiss  <weissms@aros.org>

	* readelf.c (get_osabi_name <ELFOSABI_AROS>): Change name.

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

	* dwarf.c (dwarf_regnames_i386): Remove AVX registers.
	(dwarf_regnames_x86_64): Likewise.

2008-07-30  Alan Modra  <amodra@bigpond.net.au>

	* dlltool.c, dwarf.c, objdump.c, readelf.c, resrc.c, resres.c,
	windmc.c: Silence gcc warnings.

2008-07-28  Alan Modra  <amodra@bigpond.net.au>

	* readelf.c (print_vma): Typo fix.

2008-07-28  Alan Modra  <amodra@bigpond.net.au>

	PR 6769
	* readelf.c (print_dec_vma, print_hex_vma): Delete.
	(print_vma): Use BFD_VMA_FMT.
	* size.c (size_number, rprint_number): Likewise.

2008-07-26  Michael Eager <eager@eagercon.com>

	* readelf.c (display_power_gnu_attribute): Display
	single-precision hard float.

2008-07-21  Luis Machado  <luisgpm@br.ibm.com>

	* readelf.c (get_note_type): Handle VSX notes.

2008-07-15  H.J. Lu  <hongjiu.lu@intel.com>

	* objdump.c (load_debug_section): Initialize section_is_compressed 
	for gcc 3.4/ia64.
	* readelf.c (load_debug_section): Likewise.

2008-07-12  Jie Zhang  <jie.zhang@analog.com>

	Revert
	2008-07-12  Jie Zhang  <jie.zhang@analog.com>
	* readelf.c (get_machine_flags): Deal with Blackfin specific
	flags.

2008-07-12  Jie Zhang  <jie.zhang@analog.com>

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

2008-07-09  Craig Silverstein  <csilvers@google.com>

	* config.in: Add HAVE_ZLIB_H
	* configure.in: Add test for libz and zlib.h
	* configure: Regenerate.
	* dwarf.c (debug_displays): Add .zdebug_* strings.
	* dwarf.h (struct dwarf_section): Add fields uncompressed_namd
	and compressed_name.
	* objdump.c (load_debug_section): Call
	bfd_uncompress_section_contents when loading a compressed
	section.
	(dump_dwarf_section): Recognize compressed section name.
	(mach_o_dwarf_sections): Rename as
	mach_o_uncompressed_dwarf_sections.
	(mach_o_compressed_dwarf_sections): New variable.
	(generic_dwarf_section): Rename as
	generic_uncompressed_dwarf_sections.
	(generic_compressed_dwarf_sections): New variable.
	(check_mach_o_dwarf): Save and restore
	mach_o_compressed_dwarf_sections.
	* readelf.c: Add #include for config.h and zlib.h
	(process_section_headers): Recognize compressed section name.
	(uncompress_section_contents): New function.
	(load_debug_section): Call uncompress_section_contents when
	loading a compressed section.
	(display_debug_section): Recognize compressed section name.

2008-07-07  Alan Modra  <amodra@bigpond.net.au>

	* objdump.c (find_symbol_for_address): Prefer symbols in current
	section.

2008-07-07  Alan Modra  <amodra@bigpond.net.au>

	* ieee.c (write_ieee_debugging_info): Use bfd_make_section_with_flags.
	* nlmconv.c (main, powerpc_build_stubs): Likewise.
	* rescoff.c (write_coff_file): Likewise.
	* resres.c (write_res_file): Likewise.
	* windmc.c (windmc_write_bin): Likewise.

2008-06-18  M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* readelf.c (guess_is_rela): Add EM_CR16_OLD.
	(dump_relocations): Likewise.
	(get_machine_name): Likewise.
	(is_32bit_abs_reloc): Likewise.

2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2008-06-12  DJ Delorie  <dj@redhat.com>

	* readelf.c (guess_is_rela): Add EM_M32C_OLD.
	(dump_relocations): Likewise.
	(process_section_headers): Likewise.
	(is_32bit_abs_reloc): Likewise.
	(is_16bit_abs_reloc): Likewise.

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

	PR binutils/6483
	* objdump.c (dump_bfd): If the -g option found no STABS or IEEE
	debug information to display, try dumping DWARF information
	instead.
	* rddbg.c (read_debugging_info): Add a parameter to suppress the
	display of a warning message when no debug information is found.
	* budbg.h (read_debugging_info): Update prototype.
	* objcopy.c (copy_object): Continue to allow read_debugging_info
	to produce warning messages.
	* doc/binutils.texi (--debugging): Document new behaviour of the
	-g/--debugging option.

2008-06-10  Ben Elliston  <bje@gnu.org>

	* MAINTAINERS: Remove myself as m68k maintainer.

2008-05-14  Alan Modra  <amodra@bigpond.net.au>

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

2008-05-12  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh: Test for presence of ._ea by looking at section
	table rather than looking at relocs.  Correct toe_addr substitution.

2008-05-08  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh: Take note of R_SPU_PPU32/64 relocs without a symbol,
	and if present, put image in ".data.speelf".  Put program handle
	in ".data.spehandle".

2008-05-01  Nick Clifton  <nickc@redhat.com>

	* readelf.c (print_symbol): Add code to display non-printing
	characters.

2008-04-30  John Heidemann  <johnh@isi.edu>

	* doc/binutils.texi (strings): Add "unicode" to the documentation
	of strings in order to make explicit that it supports this
	feature.

2008-04-30  Alan Modra  <amodra@bigpond.net.au>

	* readelf.c (process_program_headers): Correct section in segment
	display.

2008-04-28  M Thomas  <mthomas@rhrk.uni-kl.de>
	    Nick Clifton  <nickc@redhat.com>

	PR binutils/6449
	* objdump.c (slurp_file): Open the file in binary mode.
	* ar.c: Remove conditional definition of O_BINARY.
	* bin2.c: Likewise.
	* rename.c: Likewise.
	* strings.c: Likewise.
	* sysdep.h: Add conditional definition of O_BINARY.

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2008-04-16  Jean-Yves Lefort  <jylefort@brutele.be>

	PR binutils/6034
	* objcopy.c (stuct symlist): Rename to
	is_specified_symbol_predicate_data.
	(strip_specific_list): Rename to strip_specific_htab.
	(strip_unneeded_list): Rename to strip_unneeded_htab.
	(keep_specific_list):  Rename to keep_specific_htab.
	(localize_specific_list): Rename to localize_specific_htab.
	(globalize_specific_list): Rename to globalize_specific_htab.
	(keepglobal_specific_list): Rename to keepglobal_specific_htab.
	(weaken_specific_list): Rename to weaken_specific_htab.
	(eq_string): New function.
	(create_symbol_htab): New function.
	(create_symbol_htabs): New function.
	(add_specific_symbol): Change to use hash tables.
	(is_specified_symbol_predicate): New function.
	(is_specified_symbol): Use hash table lookup.
	(is_strip_section): Update to use new functions and hash tables.
	(filter_symbols): Likewise.
	(copy_object): Likewise.
	(copy_section): Likewise.
	(strip_main): Likewise.
	(copy_main): Likewise.
	(main): Likewise.

2008-04-14  David S. Miller  <davem@davemloft.net>

	* readelf.c (get_gnu_elf_note_type): Recognize NT_GNU_GOLD_VERSION.

2008-04-11  Torleif Sandnes  <torleif.sandnes@gmail.com>

	* dwarf.c (display_debug_lines): Rename to
	display_debug_lines_raw.
	(display_debug_lines_decoded): New function.  Displays the
	interpreted contents of a .debug_line section.
	(display_debug_lines): New function: Selects either a raw dump or
	a decoded dump (or both) as requested by the user.
	* dwarf.h (do_debug_lines_decoded): New extern.
	* readelf.c: Add support for -wL or --debug-dump=decodedline
	option to display the decoded contents of a .debug_line section.
	* doc/binutils.texi: Document the new option.
	* NEWS: Mention the new feature.

2008-04-08  Alan Modra  <amodra@bigpond.net.au>

	* dwarf.c: Remove trailing whitespace throughout file.

2008-04-04  Nick Clifton  <nickc@redhat.com>

	* po/sk.po: Updated Slovak translation.

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

	* dwarf.c (dwarf_regnames_i386): Add AVX registers.
	(dwarf_regnames_x86_64): Likewise.

2008-03-27  Cary Coutant <ccoutant@google.com>

	Add support for thin archives.
	* ar.c (make_thin_archive): New global flag.
	(map_over_members): Deal with full pathnames in thin archives.
	(usage, main): Add 'T' option for building thin archives.
	(replace_members): Pass thin archive flag to ar_emul_append.
	* arsup.c (ar_open): Initialize new flag.
	* binemul.c (ar_emul_append): Add new parameter for
	flattening nested archives.
	(do_ar_emul_default_append): New function.
	(ar_emul_default_append): Factored out recursive code.
	* binutils/binemul.h (ar_emul_default_append): Add new parameter.
	(struct bin_emulation_xfer_struct): New parameter for ar_append.
	* dlltool.c (gen_lib_file): Initialize thin archive flag.
	* emul_aix.c (ar_emul_aix_internal): Add new flatten
	parameter, currently unimplemented.
	All callers changed.
	* objcopy.c (copy_archive): Preserve thin archive flag.
	* doc/binutils.texi: Update ar documentation.
	* NEWS: Mention the new feature.

2008-03-20  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (process_mips_specific): Declare addr_size as int.

2008-03-20  Richard Sandiford  <rsandifo@nildram.co.uk>

	* readelf.c (print_mips_got_entry): New function.
	(process_mips_specific): Print GOT information.

2008-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* aclocal.m4: Regenerate.
	* configure: Likewise.
	* Makefile.in: Likewise.
	* doc/Makefile.in: Likewise.

2008-03-16  Brian Dessent  <brian@dessent.net>

	* rcparse.y (resid): Allow control text to span multiple lines.

2008-03-13  Alan Modra  <amodra@bigpond.net.au>

	* readelf.c: Use %u throughout when printing sh_link or sh_info,
	%lu when printing sh_addralign.
	(process_version_sections): Use identical formats when printing
	all offset and sh_link fields.

2008-03-13  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* configure: Regenerate.

2008-03-12  Alan Modra  <amodra@bigpond.net.au>

	PR 5900
	* readelf.c (SECTION_HEADER_INDEX, SECTION_HEADER_NUM): Delete.
	Remove use throughout file.
	(SECTION_HEADER): Likewise.
	(dump_relocations): Don't adjust st_shndx for reserved range.
	(process_file_header): Mask SHN_XINDEX to values seen in external
	elf structs.  Simplify valid section index tests.
	(get_32bit_elf_symbols, get_64bit_elf_symbols): Mask SHN_XINDEX.
	Map reserved st_shndx to internal form.
	(process_section_groups): Test that group symbol st_shndx is in
	range, not just non-zero.  Delete reserved range check.
	(get_symbol_index_type): Mask "type" to 16 bits when printing PRC,
	OS or RSV.

2008-03-09  Paul Brook  <paul@codesourcery.com>

	* readelf.c (arm_attr_tag_VFP_arch): Add "VFPv3-D16".

2008-03-03  James E. Wilson  <wilson@tuliptree.org>

	* MAINTAINERS: Update my email address.

2008-03-03  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (decode_location_expression): Handle
	DW_OP_PGI_omp_thread_num.

2008-03-01  Alan Modra  <amodra@bigpond.net.au>

	* objdump.c (objdump_print_addr): Initialise "sym".

2008-02-27  Justin Pryzby  <justinpryzby@users.sourceforge.net>
	    Nick Clifton  <nickc@redhat.com>

	* ar.c (usage): Mention -t command line switch.
	* doc/binutils.texi (ranlib): Document -t command line switch.

2008-02-26  Nick Clifton  <nickc@redhat.com>

	* objdump.c (objdump_print_addr): If displaying file offsets, show
	the offset even if there are no symbols available.
	(dump_section): Display nothing if none of the section is going to
	be dumped.  Display the file offset, if requested, of the location
	from where the dump starts.
	* doc/binutils.texi (objdump): Mention that dumping via the -s
	switch is also affected by the -F option.

2008-02-26  Nick Clifton  <nickc@redhat.com>

	Re-apply this patch which was accidentally deleted:
	2006-05-16  Carlos O'Donell  <carlos@codesourcery.com>

	* doc/binutils.texi: Use "Binutils Index" for index name.

2008-02-22  Nick Clifton  <nickc@redhat.com>

	* objdump.c (display_file_offsets): New variable.
	(long_options): Add -F/--file-offsets.
	(objdump_print_addr_with_sym): If displaying file offsets, print
	the offset of the given address.
	(disassemble_bytes): If displaying file offsets, tell the user how
	many zeroes are skipped and the file offset of the point where
	dumping resumes.
	(disassemble_section): Only display the name of the section if
	data is going to be dumped from it.
	(main): Handle new option.  Produce error messages if the start or
	stop addresses do not make sense.
	* doc/binutils.texi: Document the new feature.
	* NEWS: Mention the new feature.

2008-02-15  Chu Li  <chul@cn.fujitsu.com>
	    Nick Clifton  <nickc@redhat.com>

	PR binutils/5713
	* strings.c (integer_arg): Delete function.
	(string_min): Initialise to 4.
	(main): Use strtoul to parse integer arguments.
	Move check for an invalid string length to after all the arguments
	have been parsed.
	(usage): Use indentation to indicate that -<n> is a another form
	of the --bytes= command line option.

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

	* dlltool.c (mcore_elf_cache_filename): Add a const qualifier to
	the argument.
	(scan_obj_filename): Do not drop the const qualifier when calling
	mcore_elf_cache_filename.
	(struct fname_cache): Add const qualifier to filename field.

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

	PR binutils/5713
	* strings.c (main): Set string_min to 4 if it is <= 0.

2008-02-07  Alan Modra  <amodra@bigpond.net.au>

	* objdump.c (main): Don't pass unadorned NULL to concat.

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

	PR 5715
	* configure: Regenerated.

2008-02-03  Adam Nemet  <anemet@caviumnetworks.com>

	* readelf.c (get_machine_flags): Handle Octeon.

2008-01-30  Tristan Gingold  <gingold@adacore.com>

	* readelf.c (dump_relocations): Decode OpenVMS-specific sections.
	(get_ia64_dynamic_type): Decode OpenVMS-specific tags.
	(get_dynamic_type): Handle IA64-specific tags.
	(get_ia64_section_type_name): Handle OpenVMS-specific sections.
	(get_section_type_name): Handle OS-specific sections (and
	particularly IA64 OpenVMS one).
	(get_elf_section_flags): Makes flags static.  Add entries for IA64 and
	decode them.

2008-01-29  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (print_dwarf_vma): New function.  Display the value of a
	dwarf_vma type at a specified precision.  Use mingw field type
	specifier if necessary.
	(display_debug_loc): Use dwarf_vma type for begin and end values.
	Use print_dwarf_vma to display their values.  Use byte_get_signed
	in order to correctly detect the -1 escape value.
	(display_debug_aranges): Likewise.
	(display_debug_ranges): Likewise.

2008-01-29  Alan Modra  <amodra@bigpond.net.au>

	* dwarf.c (display_debug_loc): Correct test for base address
	entry when 64-bit host dumping 32-bit object.

2008-01-29  Alan Modra  <amodra@bigpond.net.au>

	* MAINTAINERS: Remove myself as ix86 maintainer.  Add for SPU.

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

	PR binutils/5529
	* rclex.c (yylex): Also allow the hypen character.

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

	* dwarf.c: Include "elf/common.h".
	(eh_addr_size): Changed to int.
	(dwarf_regnames_i386): New.
	(dwarf_regnames_x86_64): Likewise.
	(dwarf_regnames): Likewise.
	(dwarf_regnames_count): Likewise.
	(init_dwarf_regnames): Likewise.
	(regname): Likewise.
	(frame_display_row): Properly support different address size.
	Call regname to get register name.
	(display_debug_frames): Call regname to get register name.
	Display DW_CFA_def_cfa_register as DW_CFA_def_cfa_register
	instead of DW_CFA_def_cfa_reg.

	* dwarf.h (init_dwarf_regnames): New.

	* objdump.c: Include "elf-bfd.h".
	(dump_dwarf): Call init_dwarf_regnames on ELF input.

	* readelf.c (guess_is_rela): Change argument to int.
	(parse_args): Remove the undocumented upper case options for
	-wX.
	(process_file_header): Call init_dwarf_regnames.

2008-01-25  DJ Delorie  <dj@redhat.com>

	* readelf.c (process_section_headers): Add m16c handler.
	(is_16bit_abs_reloc): Recognize R_M32C_16.

2008-01-25  Kai Tietz  <kai.tietz@onevision.com>

	* prdbg.c: Correct formatter style use.
	* readelf.c: Likewise.
	* strings.c: Likewise.

2008-01-25  Nick Clifton  <nickc@redhat.com>

	* po/ru.po: Updated Russian translation.

2008-01-17  H.J. Lu  <hjl.tools@gmail.com>

	* MAINTAINERS: Update my email address.

2008-01-14  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (process_debug_info): Include the CU offset and corrupt
	version value when reporting unrecognised DWARF version numbers.
	(load_debug_info): Remember a failed attempt to load and parse the
	.debug_info section and do not repeat such attempts.
	(display_debug_lines): Check the return value from load_debug_info
	and return whilst displaying a warning message if the load failed.
	(display_debug_loc): Likewise.
	(display_debug_ranges): Likewise.
	(DEBUG_INFO_UNAVAILABLE): Value stored in num_debug_info_entries
	when the .debug_info section could not be loaded/parsed.
	(process_debug_info): Display the length of the compilation unit
	in hex, so that it corresponds with the offsets that will follow.
	Tell the user if the length was 32-bit or 64-bit.
	If a DIE abbreviation could not be found, tell the user the offset
	of the DIE.
	(free_debug_memory): Do not attempt to free any entries in the
	debug_information array if num_debug_info_entries is set to
	DEBUG_INFO_UNAVAILABLE.

2008-01-10  Andreas Schwab  <schwab@suse.de>

	* readelf.c (is_64bit_abs_reloc): Handle R_S390_64.

2008-01-09  Jakub Zawadzki  <darkjames@darkjames.ath.cx>

	PR binutils/55326
	* bucomm.c (list_supported_architectures): Free architecture list
	after use.
	* windres.c (set_endianess): Likewise.
	* windmc.c (set_endianess): Likewise.

2008-01-08  Kai Tietz  <kai.tietz@onevision.com>

	PR binutils/5529
	* binutils/rclex.c: (yylex): Add ':', '_', '\\', and '/' to post
	characters for name tokens.

2008-01-04  Greg McGary  <greg@mcgary.org>

	* prdbg.c (print_vma): Print as long long, if host supports it.

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

	* dwarf.c (read_and_display_attr_value): Prefix values that are
	displayed in hexadecimal with 0x.
	For the DW_AT_import attribute display the abbreviation number and
	tag of the imported DIE.
	(process_debug_info): Warn about lengths that reserved by the
	DWARF3 specification.
	Provide more information when corrupted DIEs are detected.
	Warn if DIE corruption makes the sibling level negative.

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