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