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:
