2008-09-25  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  Alan Modra  <amodra@bigpond.net.au>

	* po/sv.po: Update.

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

	* po/binutils.pot: Regenerate.

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

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
