2007-12-24  Nick Clifton  <nickc@redhat.com>

	* po/ru.po: Updated Russian translation.

2007-12-22  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/binutils.texi: Document the new intel-mnemonic and
	intel-mnemonic options for i386 disassembler.

2007-12-07  Bob Wilson  <bob.wilson@acm.org>

	* readelf.c (is_32bit_pcrel_reloc): Add Xtensa.

2007-12-04  Alan Modra  <amodra@bigpond.net.au>

	* readelf.c (is_32bit_abs_reloc, is_32bit_pcrel_reloc): Add SPU.

2007-11-29  Mark Shinwell  <shinwell@codesourcery.com>

	* readelf.c (get_machine_flags): Handle Loongson-2E and -2F
	flags.

2007-11-26  Alan Modra  <amodra@bigpond.net.au>

	* cxxfilt.c (demangle_it): Don't call printf without format string.

2007-11-21  Hans-Peter Nilsson  <hp@axis.com>

	* dwarf.c (display_debug_loc): Cast section_end - start to long
	for output format.

2007-11-20  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (display_debug_loc): Issue a warning if there are bytes
	at the end of the .debug_loc section which are not referenced by
	any attribute in the .debug_info section.

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

	* readelf.c (is_32bit_abs_reloc): Add support for NIOS relocs.
	(is_64bit_abs_reloc): Add support for HPPA relocs.
	(is_16bit_abs_reloc): Add support for NIOS relocs.

2007-11-17  Thiemo Seufer  <ths@mips.com>

	* readelf.c (display_mips_gnu_attribute): Recognize -mips32r2 -mfp64
	objects.

2007-11-16  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (process_extended_line_op): Add cases for HP extensions
	to the line ops.  Mention if an unknown op code is in the user
	defined range.
	(decode_location_expression): Add cases for HP extensions, the
	DW_OP_GNU_uninit extension and the DW_OP_call_frame_cfa and
	DW_OP_bit_piece DWARF3 operators.
	(read_and_display_attr): Correct list of attributes which can
	reference a location list.
	(read_and_display_attr_value): Add cases for DWARF3 values and HP
	extensions.
	Correct list of attributes which can reference a location list.
	(get_AT_name): Add cases for DWARF3 values and HP and PGI
	extensions.

2007-11-07  Karl Berry  <karl@gnu.org>

	* doc/binutils.texi: Update to FDL 1.2.
	(Top): consistent punctuation in menu entries.
	(Index): Rename from Binutils Index.
	* doc/fdl.texi: Update from http://www.gnu.org/licenses/fdl.texi.

2007-10-31  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (is_relocatable): Remove definition.
	(display_debug_frames): Remove check in is_relocatable.
	* dwarf.h (is_relocatable): Remove declaration.
	* objdump.c (is_relocatable): New static definition.
	* readelf.c (dump_relocations): Make the function void.
	(is_32bit_abs_reloc): Add support for x86, Arc, Arm, D10V, Dlx,
	OR32 and Score.
	(is_32bit_pcrel_reloc): Add support for x86 and Arm.
	(is_16bit_abs_reloc): Add support for D10V.
	(debug_apply_rela_addends): Rename to debug_apply_relocations.
	Add code to support rel relocations.
	(load_debug_section): Fix call to debug_apply_relocations.
	(get_file_header): Remove setting of is_relocatable.

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

	* readelf.c (debug_apply_rela_addends): Clarify FIXME.

2007-10-29  Nick Clifton  <nickc@redhat.com>

	* readelf.c (is_32bit_abs_reloc): Add knowledge of reloc used by
	IA64.
	(is_64bit_abs_reloc): Likewise.

2007-10-28  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (process_debug_info): Check for corrupt lengths.
	* readelf.c (get_reloc_type): New function.  Returns the reloc
	number extracted from the info field of a reloc.
	(get_reloc_symindex): New function.  Returns the symbol index
	extracted from the info field of a reloc.
	(dump_relocations): Use the new functions.
	(slurp_ia64_unwind_table): Use the new functions.
	(slurp_hppa_unwind_table): Use the new functions.
	(dump_section_as_bytes): Use the new functions.
	(get_reloc_size): Delete function.
	(is_32bit_abs_reloc): New function.  Determines if a given reloc
	type is a 32-bit absolute relocation.
	(is_32bit_pcrel_reloc): New function.  Like is_32bit_abs_reloc but
	for pc-relative relocations.
	(is_64bit_abs_reloc): New function.  Like is_32bit_abs_reloc but
	for 64-bit absolute relocations.
	(is_16bit_abs_reloc): New function.  Like is_32bit_abs_reloc but
	for 32-bit absolute relocations.
	(debug_apply_rela_addends): Use the new functions.  Skip and warn
	about any unrecognised relocations.

2007-10-26  Karl Berry  <karl@freefriends.org>

	* doc/binutils.texi: Move top stuff to the top.
	Use @direntry/@dircategory, format entries to play nicely with
	others.
	Avoid duplicate copying strings.
	Don't misspell "Texinfo".

2007-10-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* readelf.c (display_power_gnu_attribute): Add support for
	Tag_GNU_Power_ABI_Vector.

2007-10-25  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>

	* readelf.c (get_note_type): Handle NT_PPC_VMX.

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

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* po/POTFILES.in: Regenerate.

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

	* strings.c (print_strings): Don't use %L, use %ll in printf
	format strings.

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

	* readelf.c (process_program_headers): Use dynamic segment unless
	dynamic section is found.

2007-10-16  Bob Wilson  <bob.wilson@acm.org>

	* doc/binutils.texi (objcopy, strip): Replace hyphens with em-dashes.
	(objdump, strip, c++filt): Correct punctuation for "e.g." and "i.e."
	and change to spell out "for example" in two places.

2007-10-16  Nick Clifton  <nickc@redhat.com>

	* configure.in: Build windows tools for --enable-targets=all.
	* configure: Regenerate.

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

	* objdump.c (print_line): Check fwrite return value.
	* srconv.c (checksum, wr_tr, wr_cs): Likewise.
	* sysdump.c (fillup): Return zero on getc or fread EOF.  Return count
	read.

2007-10-10  Jim Blandy  <jimb@codesourcery.com>

	* dwarf.c (process_debug_info): Line up section offsets of
	attribute values with those of dies.
	(read_and_display_attr): Reduce spacing here.

	* dwarf.c (display_debug_lines): Print the offset of each line
	number program header.

2007-10-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/4476
	* readelf.c (print_dynamic_symbol): New.
	(process_symbol_table): Handle DT_GNU_HASH for dynamic symbols.

2007-10-08  Carlos O'Donell  <carlos@codesourcery.com>

	* resrc.c (read_rc_file): Rename e to edit, and c to dir.
	Pass dir to windres_add_include_dir.  Add comments.
	(close_input_stream): Check pclose error, and call fatal if
	the preprocessor failed.
	* windres.c (windres_add_include_dir): Assert that p is non-NULL,
	and not an empty string.

2007-10-04  Nick Clifton  <nickc@redhat.com>

	PR binutils/5098
	* dlltool.c: Fix spelling typos.

2007-10-03  Masaki Muranaka  <monaka@monami-software.com>

	* readelf.c (dump_section_as_strings): Use %6tx instead of %6zx.

2007-09-25  Thien-Thi Nguyen  <ttn@gnuvola.org>

	* MAINTAINERS: Fix typo.

2007-09-17  Shen Feng  <shen@cn.fujitsu.com>

	* readelf.c (do_archive_index): New.
	(options): Add -c and --archive-index option.
	(usage): Add -c option.
	(parse_args): Add c option parsing.
	(process_archive): Dump archive index.
	* NEWS: Mention the new feature.
	* doc/binutils.texi: Document the new feature.

2007-09-17  Nick Clifton  <nickc@redhat.com>

	* po/es.po: Updated Spanish translation.

2007-09-17  Nick Clifton  <nickc@redhat.com>

	* doc/binutils.texi (objdump): Describe the output of the --syms
	option in more detail.

2007-09-17  Alon Bar-Lev  <alon.barlev@gmail.com>

	PR binutils/4987
        * resrc.c: (read_rc_file): Move 'filename' default initialization
	to start of function.

2007-08-31  Michael Meissner  <michael.meissner@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* NEWS: Add note about SSE5 being added on i386.

2007-09-13  Alan Modra  <amodra@bigpond.net.au>
	    Zhou Drangon <drangon.mail@gmail.com>

	* nm.c (value_format_64bit, set_print_radix, print_value): Handle
	BFD_HOST_64BIT_LONG_LONG.
	* readelf.c (print_dec_vma): Don't define if BFD_HOST_64BIT_LONG_LONG.
	(print_vma): Handle BFD_HOST_64BIT_LONG_LONG.
	(dump_relocations): Likewise.  Expand _bfd_int64_low in a
	number of places.

2007-09-11  Kai Tietz  <kai.tietz@onevision.com>

	* rcparse.y: (string_data): Removed ill token removal.

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

	PR 5011
	* readelf.c (process_version_sections): Don't read past end of
	various section buffers.

2007-08-31  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (INCLUDES): Remove -D_GNU_SOURCE.
	* Makefile.in: Regenerated.

	* sysdep.h: Include "config.h" first.

2007-08-31  Nick Clifton  <nickc@redhat.com>

	* po/sk.po: New Slovakian translation.
	* configure.in (LINGUAS): Add sk.
	* configure: Regenerate.

2007-08-30  Nick Clifton  <nickc@redhat.com>

	* readelf.c (dump_type): New type used to classify the kinds of
	dump requested by the user.
	(dump_sects, cmdline_dump_sects): Use the new type.
	(options): Add --string-dump option.
	(request_dump): Rename to request_dump_bynumber.  Use dump_type.
	(request_dump_byname): Use dump_type.
	(parse_args): Parse --string-dump option.
	(process_section_headers): Fix calls to request_dump.
	(initialise_dumps_byname): Likewise.
	(dump_section): Rename to dump_section_as_bytes.
	(dump_section_as_strings): New function.  Display the contents of
	a section as printable strings.
	(process_section_contents): String dump the section if requested.
	(process_object): Use dump_type.
	(main): Likewise.
	* Makefile.am: Add dependency for readelf.c on safe-ctype.h.
	* Makefile.in: Regenerate.
	* NEWS: Mention the new feature.
	* doc/binutils.texi: Document the new feature.

2007-08-30  Nathan Sidwell  <nathan@codesourcery.com>

	* bucomm.c (bfd_nonfatal_message): New.
	* bucomm.h (bfd_nonfatal_message): Declare.
	* objcopy.c (RETURN_NONFATAL): Take BFD not NAME, use
	bfd_nonfatal_message.
	(copy_unknown_object): Adjust bfd_nonfatal and RETURN_NONFATAL
	calls, or replace with bfd_nonfatal_message calls as appropriate.
	(copy_object, copy_archive, copy_file, setup_section,
	copy_section, write_debugging_info): Likewise.

2007-08-28  Nick Clifton  <nickc@redhat.com>

	* NEWS: Mention Coverity's contribution.

2007-08-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* readelf.c (process_note): Recognize SPU core file notes.

2007-08-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.in: Install embedspu on powerpc*-*-eabi* also.
	* configure: Regenerated.

2007-08-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* po/uk.po: Updated Ukrainian translation.

2007-08-22  Ben Elliston  <bje@au.ibm.com>

	* doc/binutils.texi (objdump): Document -Mppcps.

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

	* po/Make-in: Add --msgid-bugs-address to xgettext invocation.

2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c: Revert last change.

2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (get_segment_type): Change PT_GNU_STACK to
	PT_GNU_ATTR.

2007-08-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Add a marker for the 2.18 features.

2007-08-12  Matthias Klose  <doko@ubuntu.com>

	* doc/Makefile.am (AM_MAKEINFOFLAGS, TEXI2DVI): Include
	$(top_srcdir)/../../bfd/doc.
	* doc/Makefile.in: Regenerate.

2007-08-10  M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* MAINTAINERS: Add myself as CR16 support maintainer and
	update myself as CRX support maintainer.

2007-08-10  Nick Clifton  <nickc@redhat.com>

	* po/fi.po: Updated Finnish translation.
	* po/vi.po: Updated Vietnamese translation.

2007-08-10  Kai Tietz  <kai.tietz@onevision.com>

	* doc/binutils.texi: (windmc): Correct incorrect desciption.

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

	PR 4888
	* objcopy.c (setup_section): Do modify section flags for ELF
	STRIP_NONDEBUG (reverting part of 2007-05-30 change).  Prevent
	header rewrite by twiddling input section flags instead.
	Simplify code setting SHT_NOBITS.

2007-07-28  Christopher Faylor  <me+binutils@cgf.cx>

	* MAINTAINERS: Update my email address.

2007-07-26  Adam Nemet  <anemet@caviumnetworks.com>

	* readelf.c (process_archive): Also skip Irix6-style archive symbol
	tables.

2007-07-24  Nick Clifton  <nickc@redhat.com>

	* readelf.c (NUM_ELEM): Remove redundant macro; replace references
	to it with references to ARRAY_SIZE.
	Add support for CR16.
	Fix formatting.

2007-07-19  Nick Clifton  <nickc@redhat.com>

	PR binutils/4802
	* srconv.c (strip_suffix): Add const qualifier to argument.

2007-07-16  Nick Clifton  <nickc@redhat.com>

	* po/uk.po: New Ukrainian translation.
	* configure.in (ALL_LINGUAS): Add 'uk'.
	* configure: Regenerate.

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

	* objdump.c (dump_dwarf): Correct setting of is_relocatable.

2007-07-09  Roland McGrath  <roland@redhat.com>

	* readelf.c (get_gnu_elf_note_type): New function.
	(process_note): Use it for "GNU" name.

2007-07-08  Andreas Schwab  <schwab@suse.de>

	* Makefile.am (HFILES): Add dwarf.h, sysdep.h and unwind-ia64.h.
	(CFILES): Add unwind-ia64.c.
	Regenerate dependencies.
	* Makefile.in: Regenerate.

2007-07-05  Nick Clifton  <nickc@redhat.com>

	* addr2line.c: Update copyright notice to refer to GPLv3.
	* ar.c, arlex.l, arparse.y, arsup.c, arsup.h, bin2c.c, binemul.c,
	binemul.h, bucomm.c, bucomm.h, budbg.h, coffdump.c, coffgrok.c,
	coffgrok.h, cxxfilt.c, debug.c, debug.h, deflex.l, defparse.y,
	dlltool.c, dlltool.h, dllwrap.c, dwarf.c, dwarf.h, embedspu.sh,
	emul_aix.c, emul_vanilla.c, filemode.c, ieee.c, mclex.c,
	mcparse.y, nlmconv.c, nlmconv.h, nlmheader.y, nm.c, objcopy.c,
	objdump.c, prdbg.c, rclex.c, rcparse.y, rdcoff.c, rddbg.c,
	readelf.c, rename.c, resbin.c, rescoff.c, resrc.c, resres.c,
	size.c, srconv.c, stabs.c, strings.c, sysdep.h, sysdump.c,
	sysinfo.y, syslex.l, unwind-ia64.c, unwind-ia64.h, version.c,
	windint.h, windmc.c, windmc.h, windres.c, windres.h, winduni.c,
	winduni.h, wrstabs.c: Likewise.
	* is-ranlib.c, is-strip.c, maybe-ranlib.c, maybe-strip.c,
	not-ranlib.c, not-strip.c, ranlib.sh, sanity.sh: Add a copyright
	notice.
	* NEWS: Mention that the sources are now released under GPLv3.
	Add a marker for the changes that went into v2.17.
	* version.c (print_version): Specify that the program is released
	under version 3 of the GPL.

2007-07-05  Kai Tietz  <kai.tietz@onevision.com>

	* resrc.c: (read_rc_file): Add include path of user passed rc
	input file.
	* windres.c: (windres_add_include_dir): New.
	(main): Use of windres_add_include_dir.
	* windres.h: (windres_add_include_dir): Add prototype.

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

	* doc/binutils.texi (size): Document --common.
	* size.c: Make a number of vars static.  Delete unnecessary
	function declarations.
	(show_common, common_size): New vars.
	(usage): Describe --common.
	(OPTION_FORMAT, OPTION_RADIX, OPTION_TARGET): Define and use.
	(long_options): Add common.
	(calculate_common_size): New function.
	(print_berkeley_format): Add common_size to bsssize.
	(sysv_one_line): New function split out from..
	(sysv_internal_printer): ..here.
	(print_sysv_format): Handle display of *COM*.
	(print_sizes): Call calculate_common_size.

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

	* emul_aix.c (ar_emul_aix_internal): Rename "next" to "archive_next".

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

	PR 4716
	* objcopy.c (filter_symbols): Correct relocatable file test.

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

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* po/POTFILES.in: Regenerate.
	* po/binutils.pot: Regenerate.

2007-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* aclocal.m4: Regenerated.
	* doc/Makefile.in: Likewise.
	* Makefile.in: Likewise.

2007-06-29  Joseph Myers  <joseph@codesourcery.com>

	* readelf.c (display_power_gnu_attribute, process_power_specific):
	New.
	(process_arch_specific): Call process_power_specific.

2007-06-29  Joseph Myers  <joseph@codesourcery.com>

	* readelf.c (display_mips_gnu_attribute): New.
	(process_mips_specific): Call process_attributes.

2007-06-29  Joseph Myers  <joseph@codesourcery.com>

	* readelf.c (display_gnu_attribute): New.
	(process_arm_specific): Rearrange as process_attributes.
	(process_arm_specific): Replace by wrapper of process_attributes.

2007-06-28  Roland McGrath  <roland@frob.com>

	* objcopy.c (setup_section): Don't reset ELF section type to
	SHT_NOBITS when it is SHT_NOTE.
	* doc/binutils.texi (objcopy, strip): Mention under --only-keep-debug.

2007-06-27  Alan Modra  <amodra@bigpond.net.au>

	* ar.c: Rename uses of bfd.next to bfd.archive_next throughout.
	* arsup.c: Likewise.
	* binemul.c: Likewise.
	* objcopy.c: Likewise.
	* dlltool.c: Likewise.

2007-06-26  Shantonu Sen  <ssen@apple.com>

	PR binutils/4693
	* Makefile.am (windres_DEPENDENCIES, windmc_DEPENDENCIES): Move
	dependency on $(LIBICONV) to ...
	(windres_LDADD, windmc_LDADD) ... here.
	* Makefile.in: Regenerate.

2007-06-21  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh (relas): Correct sh_info parsing.

2007-06-19  Danny Smith  <dannysmith@users.sourceforge.net>

	* objdump.c: Include sys/stat.h.

2007-06-19  Kai Tietz  <kai.tietz@onevision.com>

	* Makefile.am: Add windmc tool.
	* Makefile.in: Regenerate.
	* configure.in: Add windmc tool.
	* configure: Regenerate.
	* mclex.c: New.
	* mcparse.y: New.
	* windmc.c: New.
	* windmc.h: New.
	* doc/Makefile.am: Add windmc tool.
	* doc/Makefile.in: Regenerate.
	* doc/binutils.texi: Add windmc documentation.
	* NEWS: Mention new tool.

2007-06-18  Andi Kleen  <ak@suse.de>

	* objdump.c: Include sys/mman.h
	(print_file_list): Remove f, add map, mapsize, linemap, maxline,
	last_line, first fields.
	(slurp_file): Add.
	(index_file): Add.
	(print_file_open): Call slurp_file and index_file. Initialize new
	fields.
	(skip_to_line): Rename to print_line and write only single line.
	(dump_line): Add.
	(show_line): Change to new algorithm.

2007-06-18  Thomas Weidenmueller  <w3seek@reactos.org>

	* resres.c (probe_binary): Fix test for badly formatted headers.

2007-06-18  Kai Tietz  <Kai.Tietz@onevision.com>

	* rclex.c: (cpp_line): Add code_page pragma support.
	* windres.c: (usage, long_options, main): Add new option
	--codepage or -c.
	* winduni.c: (wind_default_codepage, wind_current_codepage): New.
	(unicode_from_ascii, ascii_from_unicode): Use
	wind_current_codepage as codepage parameter.
	(unicode_print): Print 4 characters for hexadecimal values in
	unicode strings.
	* winduni.h:  (wind_default_codepage, wind_current_codepage):
	Export.
	* doc/binutils.texi: Document new option.
	* NEWS: Mention new features of windres.

2007-06-18  Brian D. Watt  <bwatt@us.ibm.com>

	* embedspu.sh: Parse _SPUEAR_ symbol values as hex.

2007-06-14  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (ACLOCAL_AMFLAGS): Add -I ../config -I ../bfd.

	* acinclude.m4: Removed.

	* Makefile.in: Regenerated.
	* aclocal.m4: Likewise.
	* configure: Likewise.

2007-06-11  Nathan Sidwell  <nathan@codesourcery.com>

	* dwarf.c (decode_location_expression): Add DW_OP_form_tls_address.

2007-06-06  Kai Tietz  <Kai.Tietz@onevision.com>

	PR binutils/4356 binutils/591
	* resrc.c (filename_need_quotes): New function.
	(look_for_default): If filename_need_quotes is true then quote the
	filename in the command line being created.
	(read_rc_file): Likewise.

2007-06-06  Ben Elliston  <bje@au.ibm.com>

	* doc/binutils.texi (objdump): Fix capitalisation of "PowerPC".

2007-06-05  Kai Tietz  <Kai.Tietz@onevision.com>

	* Makefile.am: Add LIBICONV to windres.
	* acinclude.m4: Added missing "lib-*.m4" and "lt*.m4" files.
	* configure.in: Add AC_CHECK_HEADER for iconv.h and use AM_ICONV.
	* config.in: Add ICONV defines.
	* aclocal.m4: Regenerate.
	* confugure: Regenerate.
	* winduni.c: (local_iconv_map codepages, wind_language_t,
	languages, unicode_is_valid_codepage, wind_find_language_by_id,
	wind_find_language_by_codepage, wind_find_codepage_info,
	unicode_from_codepage, codepage_from_unicode, iconv_onechar,
	wind_iconv_cp, wind_MultiByteToWideChar wind_WideCharToMultiByte):
	New.
	(ascii_from_unicode): Use codepage_from_unicode.
	(ascii_from_unicode): Use unicode_from_codepage.
	Use for cygwin windows API for unicode transformation.
	* winduni.h: (CP_ACP, CP_UTF7, CP_UTF8, CP_OEM, CP_UTF16): New
	macros.
	(wind_language_t, local_iconv_map): New types.
	(wind_find_language_by_id, wind_find_language_by_codepage,
	unicode_is_valid_codepage, wind_find_codepage_info,
	unicode_from_codepage, codepage_from_unicode): New
	prototypes.

2007-06-05  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh: Handle R_SPU_PPU* relocs with no symbol.

2007-05-30  Alan Modra  <amodra@bigpond.net.au>

	* objcopy.c (copy_object): Revert 2007-05-11 change.  Don't
	avoid calling bfd_copy_private_bfd_data for ELF STRIP_NONDEBUG.
	(setup_section): Don't modify flags, and don't avoid calling
	bfd_copy_private_section_data for ELF STRIP_NONDEBUG.
	* readelf.c (process_program_headers): Ignore .dynamic of type
	SHT_NOBITS.

2007-05-29  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh: Emit SPU ELF image to .data.rel.ro.speelf if
	pic or pie and image needs relocs.

2007-05-24  Steve Ellcey  <sje@cup.hp.com>

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

2007-05-24  Kai Tietz  <Kai.Tietz@onevision.com>

	* rcparse.y: Join strings for elements having no side-effects in
	"rc"-grammar.

2007-05-23  Kai Tietz  <Kai.Tietz@onevision.com>

	* rclex.c: New file replacing rclex.l.
	* rclex.l: Removed.
	* windint.h: New file holding common structure and type
	definitions.
	* Makefile.am: Added new header windint.h and exchanged rclex.l by
	rclex.c.
	* Makefile.in: Regenerate.
	* rcparse.y: Renamed some structures.
	Use in internal representation always bfd_vma instead of long or
	int.
	Removed from %union unused stringtable.
	Added to %union suni structure for unicode strings.
	Added new tokens for ANICURSOR, ANIICON, DLGINCLUDE,
	DLGINIT, FONTDIR, HTML, MANIFEST, PLUGPLAY, VXD,
	TOOLBAR, BUTTON, QUOTEDUNISTRING, and SIZEDUNISTRING.
	Added support for these new rc file tokens.
	* resbin.c: Rewrote using bfd and binary structures, and support
	new resource types.
	* rescoff.c: Likewise.
	* resres.c: Likewise.
	* resrc.c: Likewise. Dumps as RC are now recompilable.
	* windres.c: As above. Using bfd for res and provide target
	specific endianess support.
	* windres.h: Use windint.h as include. Additionally removed K&R
	syntax.
	* winduni.c: New printing and unichar support routines.
	* winduni.h: Prototypes for new unichar helpers.
	* windint.h: New file.

2007-05-22  Paul Brook  <paul@codesourcery.com>

	* objdump.c (find_symbol_for_address): Merge section and target
	specific filtering code.

2007-05-22  Nick Clifton  <nickc@redhat.com>

	* doc/binutils.texi: Use @copying around the copyright notice.

2007-05-21  Richard Sandiford  <richard@codesourcery.com>

	* objdump.c (disassemble_bytes): Ignore disassembler_needs_relocs
	for executables and shared libraries.

2007-05-18  Nathan Sidwell  <nathan@codesourcery.com>

	* objcopy.c (strip_main): Detect identical input and output file
	names.
	(copy_main): Refactor tempname detection and use.

2007-05-17  Nick Clifton  <nickc@redhat.com>

	* objdump.c (load_debug_section): Select bias for DWARF debug
	addresses based on the flavour of the bfd.

2007-05-11  Alan Modra  <amodra@bigpond.net.au>

	PR 4479
	* objcopy.c (copy_object): Don't copy ELF program headers for
	--only-keep-debug.

2007-05-11  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh (find_prog): Prefer prog in same dir as embedspu
	over one found on the users path.
	(main): Generate .reloc for each R_SPU_PPU* reloc.

2007-04-28  Alan Modra  <amodra@bigpond.net.au>

	* prdbg.c (tg_variable): Adjust for changed demangler.
	(tg_start_function): Likewise.

2007-04-27  Alan Modra  <amodra@bigpond.net.au>

	* bucumm.h: Split off host dependencies to..
	* sysdep.h: ..here.
	Many files: Include sysdep.h.  Remove duplicate headers and reorder.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

2007-04-24  Nick Clifton  <nickc@redhat.com>

	* srconv.c (walk_tree_type_1): Initialise dpt.dunno.

2007-04-24  Nathan Froyd  <froydnj@codesourcery.com>
	    Phil Edwards  <phil@codesourcery.com>

	* objcopy.c (filter_symbols): Explicitly stripping a symbol
	used in relocations is an error.
	Retype 'keep' to bfd_boolean.

2007-04-24  Alan Modra  <amodra@bigpond.net.au>

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

2007-04-20  Nathan Froyd  <froydnj@codesourcery.com>
	    Phil Edwards  <phil@codesourcery.com>
	    Thomas de Lellis <tdel@windriver.com>

	* objcopy.c (reverse_bytes):  New variable.
	(command_line_switch, copy_main):  Add OPTION_REVERSE_ENDIAN.
	(copy_options, copy_usage):  Add "reverse-bytes" entry.
	(copy_section):  Reverse bytes within output sections.
	* doc/binutils.texi:  Document new objcopy option.

2007-04-20  Nick Clifton  <nickc@redhat.com>

	* rclex.l: Allow underscores at the start of identifiers.

2007-04-19  Alan Modra  <amodra@bigpond.net.au>

	* budemang.c: Delete.
	* budemang.h: Delete.
	* addr2line.c (translate_addresses): Call bfd_demangle rather than
	demangle.
	* nm.c (print_symname): Likewise.
	* objdump.c (objdump_print_symname, dump_symbols): Likewise.
	(dump_bfd): Likewise.
	* prdbg.c (struct pr_handle <demangler>): Add int param.
	(tg_variable, tg_start_function): Adjust demangler calls.
	* Makefile.am: Remove mention of budemang.[ch].  Run "make dep-am".
	* Makefile.in: Regenerate.
	* po/POTFILES.in: Regenerate.

2007-04-14  Steve Ellcey  <sje@cup.hp.com>

	* Makefile.am: Add ACLOCAL_AMFLAGS.
	* configure.in: Change macro call order.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2007-04-13  Nathan Sidwell  <nathan@codesourcery.com>

	* Makefile.am (TOOL_PROGS): Add objcopy.
	* Makefile.in: Rebuilt.

2007-04-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/4348
	* objcopy.c (copy_object): Don't stop when there are no
	sections to be copied.

2007-04-10  Vladimir Prus  <vladimir@codesourcery.com>

	* NEWS: Mention disjoint histograms support in
	gprof.

2007-04-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf.c (process_debug_info): Do not require DW_AT_frame_base for
	DW_TAG_inlined_subroutine.

2007-04-06  Matt Thomas  <matt@netbsd.org>

	* MAINTAINERS: Add myself as VAX and NetBSD support maintainer.

2007-04-05  Alan Modra  <amodra@bigpond.net.au>

	PR binutils/4292
	* nm.c (print_value): Cast bfd_vma to unsigned long to suit
	value_format_32bit.

2007-04-02  Nick Clifton  <nickc@redhat.com>

	PR binutils/4292
	* nm.c (value_format): Replace with value_format_32bit and
	value_format_64bit.
	(set_radix): Update setting of value_format.
	(set_print_width): New function.  Compute the address size of a
	given bfd and set the print_width global appropriately.
	(display_archive): Use set_print_width.
	(display_file): Likewise,
	(print_object_filename_sysv): Update use of print_width.
	(print_archive_member_sysv): Likewise.
	(print_symbol_filename_posix): Likewise.
	(print_sumbol_info_bfd, print_symbol_info_sysv): Likewise.

2007-03-28  Richard Sandiford  <richard@codesourcery.com>
	    Phil Edwards  <phil@codesourcery.com>

	* doc/binutils.texi: Put the contents after the title page rather
	than at the end of the document.

2007-03-28  Nick Clifton  <nickc@redhat.com>

	* readelf.c (slurp_rela_relocs): Add newline to end of error
	messages.
	(slurp_rel_relocs, request_dump, request_dump_byname,
	process_program_headers, process_dynamic_section,
	process_symbol_table, process_mips_specific, main): Likewise.

2007-03-28  Alan Modra  <amodra@bigpond.net.au>

	* MAINTAINERS: Update mailing list addresses.  Add myself
	as PPC maintainer.

2007-03-27  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh: Correct toe_addr quoting.

2007-03-27  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh: Combine "_EAR_" and "_EAR_*" patterns.  Tighten
	.toe section and .toe address checks.  Use .reloc for _EAR*
	symbols defined in non-BSS sections.  Build table for _SPUEAR_
	symbols.

2007-03-23  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	PR gas/3811
	* readelf.c (debug_apply_rela_addends): Do nothing for SH.

2007-03-22  Joseph Myers  <joseph@codesourcery.com>

	* doc/binutils.texi: Include VERSION_PACKAGE when reporting
	version.

2007-03-16  Kai Tietz  <Kai.Tietz@onevision.com>

	* dlltool.c (make_one_lib_file): Use pc-relative relocation
	instead of an absolute relocation for x86_64-pc-mingw32 target.

2007-03-15  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (REPORT_BUGS_TO): Removed.
	(INCLUDES): Remove -DREPORT_BUGS_TO.
	* Makefile.in: Regenerated.

	* bucomm.c: Don't include bfdver.h.
	* objdump.c: Likewise.
	* version.c: Likewise.

	* bucomm.h: Include bfdver.h.

	* configure.in (--with-bugurl): Removed.
	* configure: Regenerated.

	* doc/Makefile.am (binutils_TEXINFOS): Removed.
	(AM_MAKEINFOFLAGS): Add -I ../../bfd/doc.
	(TEXI2DVI): Likewise.
	(config.texi): Removed.
	(MOSTLYCLEANFILES): Remove config.texi.
	* doc/Makefile.in: Regenerated.

	* doc/binutils.texi: Include bfdver.texi instead of
	config.texi.

2007-03-13  Nick Clifton  <nickc@redhat.com>

	* readelf.c (dump_section): Also test for SHT_REL sections when
	producing the warning about unapplied relocs.

2007-03-07  Joseph Myers  <joseph@codesourcery.com>

	* configure.in (REPORT_BUGS_TEXI): Define to Texinfo version of
	bug-reporting URL.
	* doc/Makefile.am (config.texi): Define BUGURL.
	* doc/binutils.texi: Use BUGURL.  Remove text about large files
	and uuencoding.
	* Makefile.in, configure, doc/Makefile.in: Regenerate.

2007-03-01  Phil Edwards  <phil@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* NEWS: Mention addition of --extract-symbol.
	* doc/binutils.texi: Document it.
	* objcopy.c (extract_symbol): New variable.
	(OPTION_EXTRACT_SYMBOLS): New command_line_switch.
	(copy_options): Add an entry for --extract-symbol.
	(copy_usage): Mention --extract-symbol.
	(copy_object): Set the start address to zero for --extract-symbol.
	Do not copy private BFD data in that case.
	(setup_section): Set the size, LMA and VMA to zero for
	--extract-symbol.  Do not copy private BFD data in that case.
	(copy_section): Do not copy section contents if --extract-symbol
	is passed.
	(copy_main): Set extract_symbol to TRUE if --extract-symbol
	is passed.

2007-03-01  Paul Brook  <paul@codesourcery.com>

	* MAINTAINERS: Update my entry.

2007-03-01  Joseph Myers  <joseph@codesourcery.com>

	* version.c: Update copyright date.

2007-03-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.am (install-exec-local): Depend on $(noinst_PROGRAMS).
	Adjust $(EXEEXT) handling for $(RENAMED_PROGS).
	* Makefile.in, doc/Makefile.in: Regenerate.

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

	* embedspu.sh: Set type and size of global program handle symbol.

2007-02-28  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (PROGS): Delete.
	(RENAMED_PROGS): Define.  Extracted from..
	(noinst_PROGRAMS): ..here.  Add BUILD_MISC.
	(install-exec-local): Adjust.
	* Makefile.in: Regenerate.

2007-02-28  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (PROGS): Add BUILD_INSTALL_MISC.
	(bin_PROGRAMS): Replace BUILD_MISC with BUILD_INSTALL_MISC.
	(EXTRA_PROGRAMS): Remove bin2c.
	(bin2c$(EXEEXT_FOR_BUILD)): New rule.
	(bin2c_SOURCES): Delete.
	(DISTCLEANFILES): Remove sysinfo.
	(MOSTLYCLEANFILES): Add sysinfo$(EXEEXT_FOR_BUILD) and
	bin2c$(EXEEXT_FOR_BUILD).
	* configure.in (BUILD_MISC): Add $(EXEEXT_FOR_BUILD) to bin2c.
	Move embedspu to..
	(BUILD_INSTALL_MISC): ..here.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2007-02-27  Alan Modra  <amodra@bigpond.net.au>

	* bin2c.c: New file.
	* Makefile.am (EXTRA_PROGRAMS): Add bin2c.
	(CFILES): Add bin2c.c.
	(bin2c_SOURCES): Define.
	(bin2c.o): Dependencies from "make dep-am".
	* configure.in (BUILD_MISC): Add bin2c.
	* version.c: Update year.
	* po/POTFILES.in: Regenerate.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2007-02-17  Mark Mitchell  <mark@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Vladimir Prus  <vladimir@codesourcery.com
	    Joseph Myers  <joseph@codesourcery.com>

	* configure.in (--with-bugurl): New option.
	* configure: Regenerate.
	* Makefile.am (REPORT_BUGS_TO): Define.
	(INCLUDES): Define REPORT_BUGS_TO.
	Regenerate dependencies.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* bucomm.h: Remove include of bin-bugs.h.
	* addr2line.c (usage): Don't print empty REPORT_BUGS_TO.
	* ar.c (usage): Pass s to list_supported_targets.  Don't print
	empty REPORT_BUGS_TO.
	* coffdump.c (show_usage): Don't print empty REPORT_BUGS_TO.
	* cxxfilt.c (usage): Print bug url when giving help.
	* dlltool.c (usage): Likewise.
	* dllwrap.c (usage): Likewise.
	* nlmconv.c (show_usage): Don't print empty REPORT_BUGS_TO.
	* nm.c (usage): Likewise.
	* objcopy.c (copy_usage, strip_usage): Likewise.
	* objdump.c (usage): Likewise.
	* readelf.c ((usage): Likewise. Add STREAM argument.  Adjust
	callers.
	* size.c (usage): Don't print empty REPORT_BUGS_TO.
	* srconv.c (show_usage): Likewise.
	* strings.c (usage): Likewise.
	* sysdymp.c (show_usage): Likewise.
	* windres.c (usage): Likewise.

2007-02-13  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh: Add -W to readelf invocation.

2007-02-06  Dave Brolley  <brolley@redhat.com>

	* MAINTAINERS: Add myself as the maintainer of the MeP port.

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

	PR gas/3800
	* readelf.c: Include elf/h8.h twice.  The first time in order to
	get the reloc numbers, the second time in order to get the reloc
	decoder function.
	(dump_section): Tell the user if the section being displayed has
	unprocessed relocs associated with it.
	(get_reloc_size): New function - returns the size of a reloc.
	(debug_apply_rela_addends): Use get_reloc_size().
	* dwarf.c (read_and_display_attr_value): Extend number of
	languages known for the DW_AT_language attribute.
	(process_debug_info): Display the attribute offset before decoding
	the attribute, in case there are problems.

2007-02-05  Dave Brolley  <brolley@redhat.com>

	* readelf.c (dump_relocations): Don't check for
	(rtype == NULL && type == R_RELC).

2007-02-05  Dave Brolley  <brolley@redhat.com>

	* Makefile.am (readelf.o): Depends on $(INCDIR)/elf/mep.h.
	* Makefile.in: Regenerated.
	* Contribute the following changes:
	2003-10-29  Dave Brolley  <brolley@redhat.com>

	* configure.in: Define SKIP_ZEROES and SKIP_ZEROES_AT_END for mep.
	* configure: Regenerated.

	2001-04-03  Ben Elliston  <bje@redhat.com>

	* readelf.c: Include "elf/mep.h".
	(guess_is_rela): Handle EM_CYGNUS_MEP.
	(get_machine_name): Ditto.
	(dump_relocations): Ditto.

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

	* MAINTAINERS: Add a space between H.J. and Lu.

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

	* doc/binutils.texi (objdump): Document the new addr64 option
	for i386 disassembler.

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

	PR binutils/3945
	* configure.in (DLLTOOL_DEFAULT): New. Defined for the first PE
	target.
	(DLLTOOL_DEFS): Add $DLLTOOL_DEFAULT.
	* configure: Regenerated.

	* dlltool.c (mname): Defined with DLLTOOL_DEFAULT_XXX.

2007-02-02  Nick Clifton  <nickc@redhat.com>

	* doc/binutils.texi (objdump): Document support for disassembling
	the 440 PowerPC architecture.

2007-01-31  Nathan Sidwell  <nathan@codesourcery.com>

	* dwarf.c (process_debug_info): Protect against bogus length and
	abbrev offsets.

2007-01-25  Kazu Hirata  <kazu@codesourcery.com>

	* ar.c (print_contents, extract_file): Cast the return value
	of fwrite to size_t.

2007-01-12  Alan Modra  <amodra@bigpond.net.au>

	* ar.c (open_inarch): Check fwrite return.  Use size_t.
	(extract_file): Likewise.  Remove test for "negative" file size.
	* readelf.c (process_program_headers): Check fscanf return.

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

	* bucomm.c (template_in_dir): Fix typo.

2007-01-11  Alan Modra  <amodra@bigpond.net.au>

	* embedspu.sh: New file.
	* Makefile.am (embedspu): Add rule.
	* configure.in (BUILD_MISC): Add embedspu for powerpc-linux.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2007-01-11  Alan Modra  <amodra@bigpond.net.au>

	* bucomm.h (make_tempdir): Declare independently of HAVE_MKDTEMP.
	* bucomm.c (template_in_dir): New function, split out from..
	(make_tempname): ..here.  Open the file with O_EXCL if !HAVE_MKSTEMP.
	(make_tempdir): Use template_in_dir.  Handle directory creation
	when !HAVE_MKDTEMP.
	* objcopy.c (MKDIR): Don't define.
	(copy_archive): Use make_tempdir when !HAVE_MKDTEMP too.  Fix
	error message.

2007-01-08  Kazu Hirata  <kazu@codesourcery.com>

	* readelf.c (get_machine_flags): Treat Fido as an architecture
	by itself.

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

	* configure.in: Renamed target x86_64-*-mingw64 to
	x86_64-*-mingw*.
	* configure: Regenerated.

2007-01-05  Alan Modra  <amodra@bigpond.net.au>

	* readelf.c (dump_section): Don't print 32-bit values, which
	were done incorrectly for little-endian.  Instead print bytes.

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