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:
