2010-04-14  Release Manager

	* GCC 4.5.0 released.

2010-04-02  Sebastian Pop  <sebastian.pop@amd.com>

	* configure.ac: Add brackets around AC_TRY_COMPILE alternative.
	* configure: Regenerated.

2010-04-02  Sebastian Pop  <sebastian.pop@amd.com>

	* configure.ac: Print "buggy but acceptable" when CLooG
	revision is less than 9.
	* configure: Regenerated.

2010-04-01  Diego Novillo  <dnovillo@google.com>

	* MAINTAINERS (Plugin): Add myself and Le-Chun Wu.

2010-04-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/43615
	PR bootstrap/43328

	Revert:

	2010-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Do not pass --enable-multilib nor
	--disable-multilib in baseargs.  Accept explicitly passed
	--enable_multilib.
	* configure: Regenerate.

2010-03-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* MAINTAINERS (CPU Port Maintainers): Add myself for spu port.

2010-03-31  Janis Johnson  <janis187@us.ibm.com>

	* MAINTAINERS: Remove myself.

2010-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/43328
	* configure.ac: Do not pass --enable-multilib nor
	--disable-multilib in baseargs.  Accept explicitly passed
	--enable_multilib.
	* configure: Regenerate.

2010-03-28  Andrew Pinski  <pinskia@gmail.com>

	* MAINTAINERS (spu port): Remove me.

2010-03-23  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (tic6x-*-*): New case.
	* configure: Regenerate.

2010-03-23  Joseph Myers  <joseph@codesourcery.com>

	* config.sub: Update to version 2010-03-22.
	* config.guess: Update to version 2009-12-30.

2010-03-19  Jack Howarth <howarth@bromo.med.uc.edu>

	PR ada/42554
	* configure.ac: Only pass -c to ranlib for darwin9 and earlier.
	* configure: Regenerate.

2010-03-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* MAINTAINERS: Update my email address.

2010-03-17  Sebastian Pop  <sebastian.pop@amd.com>

	* MAINTAINERS (dwarak.rajagopal@amd.com): Removed.
	(ghassan.shobaki@amd.com): Removed.

2010-03-17  Alan Modra  <amodra@gmail.com>

	* MAINTAINERS: Update my email address.

2010-03-16  Diego Novillo  <dnovillo@google.com>

	* MAINTAINERS: Remove Dan Hipschman, William Maddox and Chris
	Matthews.

2010-03-16  Joseph Myers  <joseph@codesourcery.com>

	* MAINTAINERS (Write After Approval): Remove Jim Blandy, Daniel
	Gutson, Jeffrey D. Oldham and Mark Shinwell.

2010-03-16  Joseph Myers  <joseph@codesourcery.com>

	* MAINTAINERS: Update my email address.

2010-03-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* MAINTAINERS: Update my email address.

2010-03-15  Bernd Schmidt  <bernds@codesourcery.com>

	* MAINTAINERS: Update my email address.

2010-03-09  Jie Zhang  <jie@codesourcery.com>

	* MAINTAINERS: Update my email address.

2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libstdc++/32499
	* configure.ac (RANLIB): Default to true.
	(STRIP): Likewise.
	(RANLIB_FOR_TARGET): Remove superfluous : argument.
	* configure: Regenerate.

2010-02-17 Rafael Ávila de Espíndola <espindola@google.com>

	* MAINTAINERS (Plugin, LTO, LTO plugin): Remove myself.
	(Write After Approval): Update my email address.

2010-02-17  Nick Clifton  <nickc@redhat.com>

	PR 11238
	* Makefile.tpl (local-distclean): Also remove config.cache files in
	sub-directories as there may not be Makefiles present in the
	sub-directories.
	* Makefile.tpl: Use "-exec rm {}" rather than "-delete" to delete
	the config.cache files found by the find command.

	* Makefile.in: Regenerate.
	* configure.ac: Revert previous delta.
	* configure: Regenerate.

2010-02-15  Nick Clifton  <nickc@redhat.com>

	PR 11238
	* configure.ac: Delete config.cache files in sub-directories when
	deleting Makefiles.
	* configure: Regenerate.

2010-02-12  Ben Elliston  <bje@gnu.org>

	* MAINTAINERS: Update my email address.

2010-02-08  Andrew Pinski  <pinskia@gmail.com>

	* MAINTAINERS (spu port): Update my email address.

2010-02-08  Jie Zhang  <jie.zhang@analog.com>

	* MAINTAINERS: Add myself as a maintainer for the bfin port.

2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.ac: Add "recommended" version checks for GMP/MPC.
	Update recommended GMP/MPFR/MPC versions.
	* configure: Regenerate.

2010-01-31  Joern Rennecke  <joern.rennecke@embecosm.com>

	* MAINTAINERS: Move my Embecosm email address into the
	write-after-approval section.

2010-01-26  Ian Lance Taylor  <iant@google.com>

	* MAINTAINERS: Add myself as Go frontend maintainer.

2010-01-25  Joern Rennecke  <amylaar@spamcop.net>

	PR libstdc++/36101, PR libstdc++/42813
	* configure.ac (bootstrap_target_libs): Make inclusion of
	target-libgomp conditional on libgomb being in target_configdirs.
	* configure: Regenerate.

2010-01-23  Joern Rennecke  <amylaar@spamcop.net>

	PR libstdc++/36101, PR libstdc++/42813
	* configure.ac (bootstrap_target_libs): Include target-libgomp.
	* configure: Regenerate.

2010-01-22  Joern Rennecke  <amylaar@spamcop.net>

	PR libstdc++/36101, PR libstdc++/42813
	* configure.ac (target_configdirs): Substitute.
	* Makefile.def: Bootstrap target module libgomp.
	Add dependency of all-target-libstdc++-v3 on configure-target-libgomp.
	* Makefile.tpl (TARGET_CONFIGDIRS): New makefile variable.
	(BASE_TARGET_EXPORTS): Export TARGET_CONFIGDIRS.
	* configure, Makefile.in: Regenerate.

2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>

	* MAINTAINERS: Adjust my details.

2010-01-20  Eric B. Weddington  <eric.weddington@atmel.com>

	* MAINTAINERS (CPU Port Maintainers): Add myself for avr port.

2010-01-18  Thierry Lafage  <thierry.lafage@inria.fr>

	* MAINTAINERS: reindented my entry with tabs instead of spaces.

2010-01-15  Thierry Lafage  <thierry.lafage@inria.fr>

	* MAINTAINERS (Write After Approval): Add myself.

2010-01-15  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* MAINTAINERS (Write After Approval): Add myself.

2010-01-11  Richard Guenther  <rguenther@suse.de>

	PR lto/41569
	* Makefile.def (all-lto-plugin): Depend on all-gcc.
	* Makefile.in: Regenerated.

2010-01-11  Andreas Tobler  <andreast@fgznet.ch>

	* configure.ac: Enable libjava build on x86_64-*freebsd*.
	* configure: Regenerate.

2010-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
            Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR bootstrap/42424
	* configure.ac: Include libtool m4 files.
        (_LT_CHECK_OBJDIR): Call it.
	(extra_mpc_mpfr_configure_flags, extra_mpc_gmp_configure_flags,
	gmplibs, ppllibs, clooglibs): Use $lt_cv_objdir.

	* configure: Regenerate.

2010-01-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/41818
	* Makefile.tpl (BASE_TARGET_EXPORTS): Only add TARGET_LIB_PATH
	to $(RPATH_ENVVAR) if bootstrapping.  Fix typo in comment.
	* Makefile.in: Regenerate.

2010-01-02  Richard Guenther  <rguenther@suse.de>

	PR lto/41529
	* configure.ac: Include config/elf.m4.  Disable LTO if not
	builting for an elf target.
	* configure: Regenerate.

2009-12-27  Christopher Faylor  <me+cygwin@cgf.cx>

	* MAINTAINERS: Change my email address.

2009-12-18  Ben Elliston  <bje@au.ibm.com>

	* config.sub, config.guess: Update from upstream sources.

2009-12-07  Shujing Zhao  <pearly.zhao@oracle.com>

	* MAINTAINERS (Write After Approval): Add myself.

2009-12-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/30447
	PR middle-end/30789
	PR other/40302

	* configure.ac: Require MPC.
	* configure: Regenerate.

2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR target/38384
	PR bootstrap/40972
	* libtool.m4: Sync from git Libtool.
	* ltoptions.m4: Likewise.
	* ltversion.m4: Likewise.
	* lt~obsolete.m4: Likewise.
	* ltmain.sh: Likewise.

2009-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.ac: Update minimum MPC version to 0.8.
	* configure: Regenerate.

2009-11-21  Sebastian Pop  <sebpop@gmail.com>

	* configure.ac: Check for version 0.15.5 or later revision of CLooG.
	* configure: Regenerated.

2009-11-21  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Change default of poststage1_ldflags to be empty if
	poststage1_libs is set.  When poststage1_libs is empty, and
	ENABLE_BUILD_WITH_CXX is set, add -static-libgcc.
	* configure: Rebuild.

2009-11-21  Adam Nemet  <adambnmet@gmail.com>

	* MAINTAINERS (Write After Approval): Update my email address.

2009-11-20  Ben Elliston  <bje@au.ibm.com>

	* config.guess: Update from upstream sources.

2009-11-16  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.def: Restore host and target settings for gmp.
	* Makefile.in: Rebuild.

2009-11-16  Alexandre Oliva  <aoliva@redhat.com>

	* configure.ac: Add libelf to host_libs.  Enable in-tree configury
	of ppl and cloog.  Fix in-tree configury of libelf, skip tests.
	Fix portability of test of C++ as bootstrap language.  Add
	ppl/src/ppl-config.o to the bootstrap compare exclusion list.
	* configure: Rebuild.
	* Makefile.def: Drop host and target settings from gmp, mpfr, ppl,
	and cloog.  Fix in-tree ppl configuration.  Introduce libelf
	in-tree building.
	* Makefile.tpl (POSTSTAGE1_CXX_EXPORT): New.
	(POSTSTAGE1_HOST_EXPORTS): Use it.
	(STAGE[+id+]_CXXFLAGS): New.
	(BASE_FLAGS_TO_PASS): Pass it down.
	(configure-stage[+id+]-[+prefix+][+module+]): Use it.  Add
	extra_exports.
	(all-stage[+id+]-[+prefix+][+module+]): Likewise.
	(configure-[+prefix+][+module+], all-[+prefix+][+module+]): Add
	extra_exports.
	* Makefile.in: Rebuild.

2009-11-17  Ben Elliston  <bje@au.ibm.com>

	* config.sub, config.guess: Update from upstream sources.

2009-11-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2009-11-09  Jon Beniston <jon@beniston.com>

	* MAINTAINERS (Write After Approval): Add myself.

2009-11-06  Ozkan Sezer  <sezeroz@gmail.com>

	* configure.ac (FLAGS_FOR_TARGET):  Add -L and -isystem
	paths for *-w64-mingw* and x86_64-*mingw*.
	* configure: Regenerated.

2009-11-05  Joern Rennecke <amylaar@spamcop.net>

	* MAINTAINERS (Write After Approval): Add entry for my INRIA work.

2009-11-02  Benjamin Kosnik  <bkoz@redhat.com>

	* MAINTAINERS: Add Jonathan Wakely under Various Maintainers, move
	Phil Edwards to Write-After Approval.

2009-10-30  Kai Tietz  <kai.tietz@onevision.com>

	* configure.ac: Disable target-winsup & co for
	x86_64-*-mingw* and *-w64-mingw* targets.
	* configure: Regenerated.

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

	* MAINTAINERS: Add myself as a maintainer for the RX port.

2009-10-26  Johannes Singler <singler@kit.edu>

        * MAINTAINERS (Write After Approval): Update my e-mail address.

2009-10-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (CLooG test): Use = with test.
	* configure: Regenerate.

2009-10-22  Richard Guenther  <rguenther@suse.de>

	* configure.ac: Do not set LIBS for ppl/cloog checks.  Disable
	cloog if the ppl version check failed.  Move flags saving
	before setting in libelf check.
	* configure: Regenerate.

2009-10-21  Richard Guenther  <rguenther@suse.de>

	* configure.ac: Adjust the ppl and cloog configure to work as
	documented.  Disable cloog if ppl was disabled.  Omit the version
	checks if they were disabled.
	* configure: Re-generate.

2009-10-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Add 'lto' to enable_languages, not
	new_enable_languages, and only if not already present.
	* configure: Regenerate.

2009-10-10  Gerald Pfeifer  <gerald@pfeifer.com>

	* README: Refer to the various COPYING* files instead of just
	COPYING.
	Refer to http://gcc.gnu.org/bugs/ for bug reporting instructions.

2009-10-07 Rafael Avila de Espindola  <espindola@google.com>

	* MAINTAINERS: Change my email address. Change plugi-in to plugin.
	
2009-10-07  Richard Guenther  <rguenther@suse.de>

	* MAINTAINERS (LTO): List Diego Novillo, Rafael Avila de Espindola,
	and Richard Guenther as reviewers.
	(LTO plugin): List Rafael Avila de Espindola and Cary Coutant
	as reviewers.

2009-10-07  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config.sub: Update from upstream sources.

2009-10-06  Ian Lance Taylor  <iant@google.com>

	* Makefile.def: check-gold depends upon all-gas.
	* Makefile.in: Rebuild.

2009-10-05  Phil Muldoon  <pmuldoon@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2009-10-03  2009-02-05  Rafael Avila de Espindola  <espindola@google.com>

	* Makefile.def: all-lto-plugin depends on all-libiberty.
	set bootstrap=true for lto-plugin.
	Add lto-plugin.
	* Makefile.in: Regenerate.
	* configure.ac (host_libs): Add lto-plugin.
	* configure: Regenerate.

2009-10-03  Diego Novillo  <dnovillo@google.com>

	* Makefile.tpl (HOST_EXPORTS): Add LIBELFLIBS and LIBELFINC.
	(HOST_LIBELFLIBS): Define.
	(HOST_LIBELFINC): Define.
	* Makefile.in: Regenerate.
	* configure.ac: Add --enable-lto.
	Add --with-libelf, --with-libelf-include and --with-libelf-lib.
	If --enable-lto is used, add 'lto' to new_enable_languages.
	If --enable-lto is used and gold is enabled, add
	lto-plugin to configdirs.
	* configure: Regenerate.

2009-10-03  Simon Baldwin  <simonb@google.com>

	* configure.ac: If --with-system-zlib, suppress local zlib and
	pass --with-system-zlib to subdir configure scripts.
	* configure: Regenerate.

2009-10-01  Loren J. Rittle <ljrittle@acm.org>
	    Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Use $$s rather than
	$(srcdir).
	* Makefile.in: Rebuilt.

2009-09-26  Gary Funck <gary@intrepid.com>

	* MAINTAINERS (Write After Approval): Add myself.

2009-09-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.ac: Update minimum MPC version to 0.7.
	* configure: Regenerate.

2009-09-25  Nick Clifton  <nickc@redhat.com>

	* configure.ac: Pass any --cache-file=/dev/null option on to
	subconfigures.
	* configure: Regenerate.

2009-09-23  Nick Clifton  <nickc@redhat.com>

	* config.sub, config.guess: Update from upstream sources.

2009-09-22  Loren J. Rittle <ljrittle@acm.org>

	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Remove stray $$r/.
	* Makefile.in: Rebuilt.

2009-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/32272
	* configure.ac: Error out if $srcdir isn't '.' but contains
	host-${host_noncanonical}.
	* configure: Regenerate.

2009-09-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* MAINTAINERS (OS Port Maintainers): Add myself as Solaris
	maintainer.

2009-09-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: If bootstrapping a combined tree with
	--enable-gold, require c++ in stage1_languages.
	* configure: Regenerate.

	* configure.ac: Also add target_libs of stage1_languages to
	bootstrap_target_libs.
	* configure: Regenerate.

	* configure.ac: Diagnose --enable-build-with-cxx bootstrap
	with --enable-languages not containing c++.
	* configure: Regenerate.

2009-09-15  Jie Zhang  <jie.zhang@analog.com>

	* configure.ac: Disable java and boehm-gc for bfin-*-*.
	* configure: Regenerate.

2009-09-12  Joern Rennecke <joern.rennecke@embecosm.com>

	* MAINTAINERS (Write After Approval): Update my e-mail address,
	and move from from here...
	(Waiting for paperwork): To here.

2009-09-09  Joseph Myers  <joseph@codesourcery.com>

	* MAINTAINERS (Reviewers): Add self as driver reviewer.

2009-09-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Do not use $extrasub for replacing @if/@endif
	parts in Makefile; instead, use additional arguments to
	AC_CONFIG_COMMANDS to do the replacement manually, with several
	sed invocations, to avoid HP-UX sed command limits.
	* configure: Regenerate.

2009-09-08  Alexandre Oliva  <aoliva@redhat.com>

	* libtool.m4 (output_verbose_link_cmd): Require leading blank, and
	blank before -L.

2009-09-04  Alexandre Oliva  <aoliva@redhat.com>

	* configure.ac (with-build-config): Document.  Handle without.
	Handle missing argument.
	* configure: Rebuilt.

2009-09-03  Alexandre Oliva  <aoliva@redhat.com>

	* configure.ac (--with-build-config): New.  Set BUILD_CONFIG.
	Default to bootstrap-debug only if compare-debug works.
	* configure: Rebuilt.
	* Makefile.tpl: Make BUILD_CONFIG configure-configurable.
	* Makefile.in: Rebuilt.

2009-09-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* MAINTAINERS (OS Port Maintainers): Update my email address.

2009-09-01  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.tpl (BUILD_CONFIG): Default to bootstrap-debug.
	* Makefile.in: Rebuilt.

2009-09-01  Chris Demetriou  <cgd@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2009-08-31  Dodji Seketeli  <dodji@redhat.com>

	PR debug/30161
	* include/dwarf2.h (enum dwarf_tag): Added
	DW_TAG_GNU_template_template_param
	(enum dwarf_attribute): Added DW_AT_GNU_template_name.

2009-08-30  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (AWK): Fix typo.
	* Makefile.in: Regenerate.

2009-08-30  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Detect awk and sed.
	* Makefile.def (flags_to_pass): Add AWK and SED.
	* Makefile.tpl (AWK, SED): New.
	(BASE_FLAGS_TO_PASS): Add AWK and SED.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2009-08-26  Dave Korn  <dave.korn.cygwin@gmail.com>

	* ltmain.sh (removedotparts): Don't use comma as 's' separator.
	(collapseslashes): Likewise.

2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac (AC_PREREQ): Bump to 2.64.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Remove --with-datarootdir, --with-docdir,
	--with-pdfdir, --with-htmldir switches.
	* configure: Regenerate.

	* configure: Regenerate.

	* compile: Sync from Automake 1.11.
	* depcomp: Likewise.
	* install-sh: Likewise.
	* missing: Likewise.
	* mkinstalldirs: Likewise.
	* ylwrap: Likewise.

2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>

	* ltmain.sh (func_normal_abspath): New function.
	(func_relative_path): Likewise.
	(func_mode_help): Document new -bindir option for link mode.
	(func_mode_link): Add new -bindir option, and use it to place
	output DLL if specified.

2009-08-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Call AC_DISABLE_OPTION_CHECKING.
	(baseargs): Add --disable-option-checking.
	* configure: Regenerate.

	* Makefile.def (configure-target-libiberty): Depend on
	all-binutils and all-ld.
	(configure-target-newlib): Likewise.
	* Makefile.in: Regenerate.

2009-08-17  Ben Elliston  <bje@au.ibm.com>

	* config.sub, config.guess: Update from upstream sources.

2009-08-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	Sync from src, merge:

	2009-07-02  Tristan Gingold  <gingold@adacore.com>

	* configure.ac: Do not exclude gas for i386-*-darwin.
	Add a case for x86_64-*-darwin.
	* configure: Regenerate.

2009-08-06  Neil Vachharajani  <nvachhar@gmail.com>

	* MAINTAINERS: Add my name to Write After Approval list.

2009-08-06  Michael Eager <eager@eagercon.com>

	* configure.ac: Add Microblaze target.
	* configure: Regenerate.

2009-07-31  Christian Bruel  <christian.bruel@st.com>

	* configure.ac (sh*-*-elf): Don't add target-libgloss to noconfigdirs.
	* configure: Regenerate.
	
2009-07-28  Rask Ingemann Lambertsen <ccc94453@vip.cybercity.dk>

	* MAINTAINERS (Write After Approval): Update my e-mail address.

2009-07-06  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Add missing comma in AC_ARG_WITH(boot-libs).
	* configure: Rebuild.

2009-07-01  Tobias Grosser  <grosser@fim.uni-passau.de>

	* MAINTAINERS: Move myself to the Graphite Reviewers.

2009-06-30  Wei Guozhi  <carrot@google.com>

	* MAINTAINERS: Add my name to Write After Approval list.

2009-06-26  Steve Ellcey  <sje@cup.hp.com>

	PR bootstrap/40338
	* configure.ac (comparestring): Create new variable.
	* Makefile.tpl (comparestring): Use to skip some comparisions.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2009-06-26  Doug Evans  <dje@sebabeach.org>

	* Makefile.def (host_modules): Add cgen.
	* Makefile.in: Regenerate.
	* configure.ac (host_tools): Add cgen.
	* configure: Regenerate.

2009-06-23  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS: Add myself as mep maintainer.

2009-06-23  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Add --enable-build-with-cxx.  When set, add c++ to
	boot_languages.  Only bootstrap target libraries listed in
	target_libs for some boot language.  Add --with-stage1-ldflags,
	--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.  Remove
	with_host_libstdcxx from ppllibs.  Only add -fkeep-inline-functions
	if not building with C++.
	* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
	* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
	(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
	(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS.  Export HOST_LIBS.
	(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD.  Add
	POSTSTAGE1_LDFLAGS to LDFLAGS.  Export HOST_LIBS.
	(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
	* configure, Makefile.in: Rebuild.

2009-06-23  Li Feng  <nemokingdom@gmail.com>

	* MAINTAINERS: Added my name to write-after-approval list.

2009-06-15  Ryan Mansfield  <rmansfield@qnx.com>

	* configure.ac: Define is_elf for QNX Neutrino targets.
	* configure: Regenerate.

2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>

        * MAINTAINERS: Added my name to the write-after-approval list

2009-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.ac: Detect MPC in default directory.
	* configure: Regenerate.

2009-06-03  Jerome Guitton  <guitton@adacore.com>
	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

        * Makefile.tpl (all): Avoid a trailing backslash.
        * Makefile.in: Regenerate.

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

	* config.sub, config.guess: Update from upstream sources.

2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* configure.ac (powerpc-*-aix*, rs6000-*-aix*): Add target-newlib
	to noconfdirs.
	* configure: Regenerate.

2009-06-02  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.tpl ([+compare-target+]): Compare all stage
	directories, rather than just gcc.
	* Makefile.in: Rebuilt.

2009-06-01  Doug Kwan  <dougkwan@google.com>

	* configure.ac: Support gold for target arm*-*-*.
	* configure: Regenerate.

2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.def: Add MPC support and dependencies.
	* configure.ac: Likewise.  Reorganize GMP/MPFR checks.

	* Makefile.in, configure: Regenerate.

2009-05-27  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.tpl (all): Avoid harmless warning in make all when
	gcc-bootstrap is enabled but stage_last does not exist.
	* Makefile.in: Rebuilt.

2009-05-24  Nicolas Roche  <roche@adacore.com>

	* Makefile.tpl (compare-target): Skip ./ada/*tools directories.
	* Makefile.in: Regenerate.

2009-05-21  Denis Chertykov  <chertykov@gmail.com>

	* MAINTAINERS: Update my e-mail address.

2009-05-21  Dave Korn  <dave.korn.cygwin@gmail.com>

	* configure.ac (cygwin noconfigdirs):  Remove libgcj.
	* configure:  Regenerate.

2009-05-18  Alexandre Oliva  <aoliva@redhat.com>

	PR other/40159
	* Makefile.tpl (all): Don't assume gcc-bootstrap and
	gcc-no-bootstrap are mutually exclusive.
	* Makefile.in: Rebuilt.

2009-05-18  Alexandre Oliva  <aoliva@redhat.com>

	PR other/40159
	* Makefile.tpl (all): Don't end with unconditional success.
	* Makefile.in: Rebuilt.

2009-05-12  Alexandre Oliva  <aoliva@redhat.com>

	PR target/37137
	* Makefile.def (flags_to_pass): Remove redundant and incomplete
	STAGE1_CFLAGS, STAGE2_CFLAGS, STAGE3_CFLAGS, and STAGE4_CFLAGS.
	Add FLAGS_FOR_TARGET and BUILD_CONFIG.
	(bootstrap_stage): Remove bootstrap-debug custom stages.  Turn
	stage_configureflags, stage_cflags and stage_libcflags into
	explicit Makefile macros.
	* Makefile.tpl (HOST_EXPORTS, EXTRA_HOST_FLAGS): Pass GCJ and
	GFORTRAN.
	(POSTSTAGE1_HOST_EXPORTS): Add XGCC_FLAGS_FOR_TARGET and TFLAGS to
	CC.  Set CC_FOR_BUILD from CC.
	(BASE_TARGET_EXPORTS, RAW_CXX_TARGET_EXPORTS,
	NORMAL_TARGET_EXPORTS): Move SYSROOT_CFLAGS_FOR_TARGET and
	DEBUG_PREFIX_CFLAGS_FOR_TARGET from CFLAGS and CXXFLAGS to
	XGCC_FLAGS_FOR_TARGET.  Add it along with TFLAGS to CC, CXX, GCJ,
	and GFORTRAN.
	(TFLAGS, STAGE_CFLAGS, STAGE_TFLAGS, STAGE_CONFIGURE_FLAGS): New.
	(_LIBCFLAGS): Renamed to _TFLAGS.
	(do-compare-debug, do-compare3-debug): Drop.
	(CC, GCC_FOR_TARGET, CXX_FOR_TARGET, RAW_CXX_FOR_TARGET,
	GCJ_FOR_TARGET, GFORTRAN_FOR_TARGET): Remove FLAGS_FOR_TARGET.
	(FLAGS_FOR_TARGET, SYSROOT_CFLAGS_FOR_TARGET,
	DEBUG_PREFIX_CFLAGS_FOR_TARGET): Move down.
	(XGCC_FLAGS_FOR_TARGET): New.
	(BASE_FLAGS_TO_PASS): Pass STAGEid_CFLAGS, STAGEid_TFLAGS and TFLAGS.
	(EXTRA_HOST_FLAGS): Pass GCJ and GFORTRAN.
	(POSTSTAGE1_FLAGS_TO_PASS): Move SYSROOT_CFLAGS_FOR_TARGET and
	DEBUG_PREFIX_CFLAGS_FOR_TARGET from CFLAGS, CXXFLAGS, LIBCFLAGS,
	LIBCXXFLAGS to XGCC_FLAGS_FOR_TARGET.    Add it along with TFLAGS
	to CC, CXX, GCJ, and GFORTRAN.  Pass XGCC_FLAGS_FOR_TARGET and
	TFLAGS.
	(BUILD_CONFIG): Include if requested.
	(all): Set TFLAGS on bootstrap.
	(configure-stageid-prefixmodule): Pass TFLAGS, adjust FLAGS.
	(all-stageid-prefixmodule): Likewise.
	(do-clean, distclean-stageid): Set TFLAGS.
	(restrap): Fix whitespace.
	* Makefile.in: Rebuilt.

2009-05-07  Paolo Bonzini  <bonzini@gnu.org>

	* config.guess: Sync with src.

2009-05-07  Dave Korn  <dave.korn.cygwin@gmail.com>

	* configure.ac ($with_ppl):  Default to no if not supplied.
	($with_cloog):  Likewise.
	configure:  Regenerate.

2009-04-27  James E. Wilson  <wilson@codesourcery.com>

	* MAINTAINERS: Update my e-mail address.

2009-04-27  Nick Clifton  <nickc@redhat.com>

	* MAINTAINERS: Replace Aldy Hernandez as a maintainer for the FRV.

2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Add GNATBIND.
	(POSTSTAGE1_FLAGS_TO_PASS): Pick up exported value for GNATBIND.
	* Makefile.in: Regenerate.

2009-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR bootstrap/39739
	* configure.ac (extra_mpfr_configure_flags): Set and AC_SUBST.
	* Makefile.def (module=mpfr): Use extra_mpfr_configure_flags.

	* configure, Makefile.in: Regenerate.

2009-04-21  Taras Glek  <tglek@mozilla.com>

	* include/hashtab.h: Update GTY annotations to new syntax
	* include/splay-tree.h: Likewise

2009-04-17  Ben Elliston  <bje@au.ibm.com>

	* config.sub, config.guess: Update from upstream sources.

2009-04-15  Anthony Green  <green@moxielogic.com>

	* configure.ac: Add moxie support.
	* configure: Rebuilt.

2009-04-14  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac: Change copyright header to refer to version
	3 of the GNU General Public License and to point readers at the
	COPYING3 file and the FSF's license web page.
	* Makefile.def: Likewise.
	* Makefile.tpl: Likewise.
	* Makefile.in: Regenerate.

2009-04-09  Jack Howarth  <howarth@bromo.med.uc.edu>

	* configure.ac: Restore match for darwin9 or later. Use double
	brackets since regeneration eats one pair.
	* configure: Regenerate.

2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/10039
	* configure.ac: Require texinfo 4.7.
	* configure: Regenerated.

2009-04-09  Nick Clifton  <nickc@redhat.com>

	* COPYING.RUNTIME: New file: Contains a copy of version 3.1 of
	the GCC Runtime Library Exception.

2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.ac: Bump minimum GMP/MPFR versions to 4.2 and 2.3.1.
	* configure: Regenerate.

2009-04-01  Steve Ellcey  <sje@cup.hp.com>

	* Makefil.def (languages): New entries.
	* Makefile.tpl (check-gcc-*): New generic target.
	* Makefile.in: Regenerate.

2009-03-25  Erven Rohou <erven.rohou@inria.fr>

	* MAINTAINERS:  Update my email address.

2009-03-18  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuild.
	* configure.ac (host_libs): Add libiconv.
	* Makefile.in: Rebuild.
	* Makefile.def (host_modules): Add libiconv.
	(configure-gdb, all-gdb): Depend on libiconv.

2009-03-16  Tristan Gingold  <gingold@adacore.com>

	* configure.ac: Treat gdb as supported on x86_64-darwin.
	* configure: Regenerate.

2009-03-16  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (--with-host-libstdcxx): New option.
	* configure: Regenerate.

2009-03-12  Joern Rennecke <joern.rennecke@arc.com>

	* MAINTAINERS:  Move myself into the write after approval list.

2009-03-11  Nicola Pero  <nicola.pero@meta-innovation.com>

	* MAINTAINERS: Update e-mail address.
	
2009-03-11  Dorit Nuzman  <dorit@il.ibm.com>

	* MAINTAINERS: Remove myself as auto-vectorizer maintainer.

2009-03-10  Ira Rosen <irar@il.ibm.com>

	* MAINTAINERS: Add myself as auto-vectorizer maintainer.

2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	Backport from git Libtool:

	2009-01-19  Robert Millan  <rmh@aybabtu.com>
	Support GNU/kOpenSolaris.
	* libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER)
	(_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS)
	(_LT_LANG_CXX_CONFIG) [kopensolaris*-gnu]: Recognize
	GNU/kOpenSolaris.

2009-02-27  Andreas Schwab  <schwab@linux-m68k.org>

	* MAINTAINERS: Update e-mail address.

2009-02-24  Michael Eager  <eager@eagercon.com>

	* MAINTAINERS (Write After Approval): Add self.

2009-02-18  Bingfeng Mei  <bmei@broadcom.com>

	* MAINTAINERS (Write After Approval): Add myself.

2009-02-05  Andreas Schwab  <schwab@suse.de>

	* Makefile.tpl (stage_last): Define $r and $s before using
	$(RECURSE_FLAGS_TO_PASS).
	* Makefile.in: Regenerate

2009-01-30  Ian Lance Taylor  <iant@google.com>

	* MAINTAINERS: Move myself to the Global Reviewers list.

2009-01-29  Robert Millan  <rmh@aybabtu.com>

	* configure.ac: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
	* configure: Regenerate.

2009-01-17  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Make whitespace consistent.
	Remove Robert Millan from Write After Approval.

2009-01-16  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.def (configure-opcodes): Depend on configure-libiberty.
	(all-opcodes): Depend on all-libiberty.
	* Makefile.in: Regenerate.

2009-01-15  Douglas B Rupp  <rupp@gnat.com>

	* configure.ac (ia64*-*-*vms*): Add case with no gdb or ld support.
	* configure: Regenerate.

2009-01-12  Ramana Radhakrishnan  <ramana.r@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2009-01-12  Steven G. Kargl  <sgk@troutmask.apl.washington.edu>

	* MAINTAINERS: Add myself to reviewers (Fortran).

2009-01-12  Sebastian Pop <sebastian.pop@amd.com>

	PR tree-optimization/38515
	* configure.ac (cloog-polylib): Removed.
	(with_ppl, with_cloog): Test for "no".
	* configure: Regenerated.

2009-01-11  Daniel Franke  <franke.daniel@gmail.com>

	* MAINTAINERS: Moved myself to reviewers (Fortran).

2009-01-06  Thomas Schwinge  <tschwinge@gnu.org>

	* MAINTAINERS (OS Port Maintainers): Add myself for GNU/Hurd.
	(Write After Approval): Remove myself.

2009-01-03  Diego Novillo  <dnovillo@google.com>

	* MAINTAINERS: Remove myself from alias maintainership.

2009-01-02  David Ayers  <ayers@fsfe.org>

	* MAINTAINERS: Update e-mail address.

2008-12-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Make whitespace consistent.

2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	Backport from upstream Libtool:
	* libltdl.m4 (_LT_SYS_DYNAMIC_LINKER, _LT_LINKER_SHLIBS):
	Add cache variables to tests that require the linker to work.
	For shlibpath_overrides_runpath, this also changes the semantics
	to let the result from the C compiler take precedence.

2008-12-02  Ben Elliston  <bje@au.ibm.com>

	* config.sub, config.guess: Update from upstream sources.

2008-12-12  Sebastian Pop <sebastian.pop@amd.com>

	* configure.ac (ppllibs): Add by default the lib flags.
	* configure: Regenerate.

2008-12-08  Luis Machado  <luisgpm@br.ibm.com>

	* MAINTAINERS:  Add myself to the write after approval list.

2008-12-04  Jack Howarth  <howarth@bromo.med.uc.edu>

	* configure.ac: Add double brackets on darwin[912].
	* configure: Regenerate.

2008-12-03  Daniel Kraft  <d@domob.eu>

	* MAINTAINERS:  Moved myself and Mikael Morin from Write After
	Approval to Reviewer section (for Fortran front-end).

2008-12-02  Jack Howarth  <howarth@bromo.med.uc.edu>

	* configure.ac: Expand to darwin10 and later.
	* configure: Regenerate.

2008-12-02  Andreas Schwab  <schwab@suse.de>

	* Makefile.def: configure-target-boehm-gc depends on
	all-target-libstdc++-v3.
	* Makefile.in: Regenerate.

2008-12-02  Kai Tietz  <kai.tietz@onevision.com>

	* MAINTAINERS:  Add myself as mingw maintainer.

2008-12-02  Ben Elliston  <bje@au.ibm.com>

	* config.sub, config.guess: Update from upstream sources.

2008-12-01  Gerald Pfeifer  <gerald@pfeifer.com>

	* README.SCO: Remove.

2008-11-29  Fernando Pereira  <pronesto@gmail.com>

	* MAINTAINERS:  Add myself to the write after approval list.

2008-11-29  Dave Korn  <dave.korn.cygwin@gmail.com>

	* MAINTAINERS:  Update my email address in WAA section.

2008-11-29  Chen Liqin <liqin@sunnorth.com.cn>

	* MAINTAINERS: Update e-mail address.

2008-11-27  Toon Moene <toon@moene.org>

	* MAINTAINERS: Change e-mail address.

2008-11-27  Tristan Gingold  <gingold@adacore.com>

	* configure.ac: Build gdb for i?86-*-darwin*
	* configure: Regenerated.

2008-11-24  Hariharan Sandanagobalane <hariharan@picochip.com>

	* MAINTAINERS: Added my full name.

2008-11-14  Daniel Jacobowitz  <dan@codesourcery.com>

	PR bootstrap/38014
	PR bootstrap/37923

	Revert:

	2008-10-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.tpl (HOST_EXPORTS): Correct CPPFLAGS typo.
	* Makefile.in: Regenerated.

	2008-10-22  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/921
	PR gdb/1646
	PR gdb/2175
	PR gdb/2176

	* Makefile.def (flags_to_pass): Add CPPFLAGS_FOR_BUILD and CPPFLAGS.
	* Makefile.tpl (BUILD_EXPORTS): Set CPPFLAGS.
	(EXTRA_BUILD_FLAGS): Correct typo.  Pass CPPFLAGS.
	(HOST_EXPORTS): Pass CPPFLAGS.
	(CPPFLAGS_FOR_BUILD, CPPFLAGS, CPPFLAGS_FOR_TARGET): Define.
	(LDFLAGS_FOR_TARGET): Initialize from configure script.
	(EXTRA_TARGET_FLAGS): Set CPPFLAGS.
	* Makefile.in, configure: Regenerated.
	* configure.ac: Set CPPFLAGS_FOR_TARGET, LDFLAGS_FOR_TARGET,
	and CPPFLAGS_FOR_BUILD.

2008-11-06  Jeff Law <law@redhat.com>

	* MAINTAINERS: Add myself as middle end maintainer.

2008-11-06  Andrew Stubbs  <ams@codesourcery.com>

	* MAINTAINERS (Write after approval): Add myself.

2008-11-05  Diego Novillo  <dnovillo@google.com>

	* MAINTAINERS (Global Reviewers): Add myself.
	(Non-Algorithmic Maintainers): Remove myself.

2008-11-04  Thomas Schwinge  <tschwinge@gnu.org>

	* MAINTAINERS (Write after approval): Add myself.

2008-10-31  Mikael Morin  <mikael.morin@tele2.fr>

	* MAINTAINERS (Write after approval): Add myself.

2008-10-31  Ben Elliston  <bje@au.ibm.com>

	* configure.ac (spu-*-*): Remove special case.
	* configure: Regenerate.

2008-10-30  Catherine Moore  <clm@codesourcery.com>

	* MAINTAINERS (Write after approval): Update my email address.

2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>

	* configure.ac [spu-*-*]: Do not set skipdirs.
	* configure: Re-generate.

2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>

	* MAINTAINERS (Various Maintainers): Add myself to reload.

2008-10-25  Richard Guenther  <rguenther@suse.de>

	* MAINTAINERS (Various Maintainers): Add myself as middle-end
	maintainer.  Remove myself as libgcc-math maintainer.
	(Non-Algorithmic Maintainers): Remove myself.

2008-10-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.tpl (HOST_EXPORTS): Correct CPPFLAGS typo.
	* Makefile.in: Regenerated.

2008-10-23  Cary Coutant  <ccoutant@google.com>

	* MAINTAINERS (Write after approval): Add myself.

2008-10-22  Daniel Jacobowitz  <dan@codesourcery.com>

	PR gdb/921
	PR gdb/1646
	PR gdb/2175
	PR gdb/2176

	* Makefile.def (flags_to_pass): Add CPPFLAGS_FOR_BUILD and CPPFLAGS.
	* Makefile.tpl (BUILD_EXPORTS): Set CPPFLAGS.
	(EXTRA_BUILD_FLAGS): Correct typo.  Pass CPPFLAGS.
	(HOST_EXPORTS): Pass CPPFLAGS.
	(CPPFLAGS_FOR_BUILD, CPPFLAGS, CPPFLAGS_FOR_TARGET): Define.
	(LDFLAGS_FOR_TARGET): Initialize from configure script.
	(EXTRA_TARGET_FLAGS): Set CPPFLAGS.
	* Makefile.in, configure: Regenerated.
	* configure.ac: Set CPPFLAGS_FOR_TARGET, LDFLAGS_FOR_TARGET,
	and CPPFLAGS_FOR_BUILD.

2008-10-20  Sebastian Pop <sebastian.pop@amd.com>

	* MAINTAINERS (Graphite Reviewers): Added Daniel Berlin and
	Sebastian Pop.

2008-10-14  Antoniu Pop	<antoniu.pop@gmail.com>

	* MAINTAINERS (Write After Approval): Added myself.

2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.ac (MPFR check): Bump minimum version to 2.3.0 and
	recommended version to 2.3.2.

	* configure: Regenerate.

2008-10-01  Mark Mitchell  <mark@codesourcery.com>

	* MAINTAINERS (Blanket Write Privs): Change to Global Reviewers.

2008-09-29  David Daney	<david.daney@caviumnetworks.com>

	* MAINTAINERS (Write After Approval): Update e-mail address.

2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>

	* libtool.m4: Update to libtool 2.2.6.
	* lt~obsolete.m4: Update to libtool 2.2.6.
	* ltmain.sh: Update to libtool 2.2.6.
	* ltsugar.m4: Update to libtool 2.2.6.
	* ltversion.m4: Update to libtool 2.2.6.
	* ltoptions.m4: Update to libtool 2.2.6.
	* ltgcc.m4: Update to match changes from libtool 2.2.6.

2008-09-22  Chris Fairles  <cfairles@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2008-09-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Update my name.

2008-09-20  Steven Bosscher  <steven@gcc.gnu.org>

	* MAINTAINERS: Add myself in "Write After Approval".

2008-09-18  Steve Ellcey  <sje@cup.hp.com>

	* MAINTAINERS: Add myself as ia64 maintainer.

2008-09-04  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Remove John Carr, Steve Chamberlain, Michael Chastain,
	Klaus Kaempf, Mumit Khan, Alan Lehotsky, Warren Levy, Don Lindsay,
	Dave Love, Alexandre Petit-Bianco, Clinton Popetz, Gavin Romig-Koch,
	and Michael Tiemann from Write After Approval since they do not
	actually have access.

2008-09-05  Richard Guenther  <rguenther@suse.de>

	* configure.ac: Initialize clooglibs to -lcloog.
	* configure: Re-generate.

2008-09-04  Le-Chun Wu  <lcwu@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2008-09-03  Sebastian Pop  <sebastian.pop@amd.com>

	* configure.ac (--with-cloog-polylib): New.
	(--disable-cloog-version-check): New.
	(--disable-ppl-version-check): New.
	* configure: Re-generate.

2008-09-03  Richard Guenther  <rguenther@suse.de>

	* configure.ac: Always pass -DCLOOG_PPL_BACKEND to the
	cloog test.
	* configure: Re-generate.

2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>

	Add picoChip port.
	* MAINTAINERS: Add picoChip maintainers.

2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>
	    Jan Sjodin  <jan.sjodin@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
	    Konrad Trifunovic  <konrad.trifunovic@inria.fr>
	    Adrien Eliche  <aeliche@isty.uvsq.fr>

	Merge from graphite branch.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* configure.ac (host_libs): Add ppl and cloog.
	Add checks for PPL and CLooG.
	* Makefile.def (ppl, cloog): Added modules and dependences.
	* Makefile.tpl (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): New.
	(HOST_PPLLIBS, HOST_PPLINC, HOST_CLOOGLIBS, HOST_CLOOGINC): New.

2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* configure.ac (RPATH_ENVVAR): Use PATH on Windows.
	(GCC_SHLIB_SUBDIR): New.
	* Makefile.tpl (HOST_LIB_PATH_gcc): Use GCC_SHLIB_SUBDIR.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2008-08-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Consistently use tabs to separate columns.

2008-08-29  Tristan Gingold  <gingold@adacore.com>

	* MAINTAINERS (Write after Approval): Add myself.

2008-08-28  Tristan Gingold  <gingold@adacore.com>

	* configure.ac (powerpc-*-darwin*, i?86-*-darwin*,x86_64-*-darwin9):
	Enable bfd, binutils and opcodes.
	* configure: Regenerate.

2008-08-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* MAINTAINERS: Update my hppa and hpux entries.  Remove my vax entry.

2008-08-23  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* MAINTAINERS:  Use correct Umlaut for last name.

2008-08-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* MAINTAINERS: Move myself from Reviewers to Write after Approval.

2008-08-16  David Edelsohn  <edelsohn@gnu.org>

	* MAINTAINERS: Update my email address.

2008-08-16  Nicolas Roche  <roche@adacore.com>

	* Makefile.tpl: Add BOOT_ADAFLAGS.
	* Makefile.in: Regenerate.

2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* configure.ac (mips*-*-*linux*, mips*-*-gnu*): Use mt-mips-gnu.
	* configure: Regenerate.

2008-07-30 Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Add makefile fragments for hpux.
	* Makefile.def (flags_to_pass): Add ADA_CFLAGS.
	* Makefile.tpl (HOST_EXPORTS): Pass ADA_CFLAGS.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2008-07-28 Aldy Hernandez <aldyh@redhat.com>

	* MAINTAINERS: Add Jakub and myself as gimple maintainers.

2008-07-11 Dodji Seketeli <dseketel@redhat.com>

	* MAINTAINERS (Write after Approval): Add myself.

2008-07-02  Xuepeng Guo  <xuepeng.guo@intel.com>

	* MAINTAINERS (Write After Approval):  Add myself.

2008-06-29  Andrew Jenner  <andrew@codesourcery.com>

	* MAINTAINERS (Write After Approval):  Add myself.

2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>

	* MAINTAINERS: Update my email address.

2008-06-25  Joey Ye  <joey.ye@intel.com>

	* MAINTAINERS (Write After Approval):  Add myself.

2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.tpl ($(srcdir)/configure): Update dependencies.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2008-06-17  Daniel Kraft  <d@domob.eu>

	* MAINTAINERS (Write After Approval):  Add myself.

2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Set TOPLEVEL_CONFIGURE_ARGUMENTS early, when
	"$@" is still intact with both Autoconf 2.59 and 2.62.
	* configure: Regenerate.

2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.tpl: Fix comment errors.
	* Makefile.in: Regenerate.

2008-06-12  David S. Miller  <davem@davemloft.net>
	    David Edelsohn  <edelsohn@gnu.org>

	* configure.ac: Add powerpc*-*-* to gold supported targets.
	* configure: Regenerate.

2008-06-08  Joseph Myers  <joseph@codesourcery.com>

	PR tree-optimization/36218
	* Makefile.def (flags_to_pass): Add LDFLAGS_FOR_BUILD.
	* Makefile.tpl (EXTRA_BUILD_FLAGS): Define.
	(all prefix="build-"): Pass them to build-system sub-makes.
	* Makefile.in: Regenerate.

2008-06-07  Joseph Myers  <joseph@codesourcery.com>

	* MAINTAINERS (mt port): Remove.
	(sco5, unixware, sco udk): Remove.
	(Kean Johnston): Add to Write After Approval.

2008-05-30  Julian Brown  <julian@codesourcery.com>

	* configure.ac (arm*-*-linux-gnueabi): Don't disable building
	of libobjc for ARM EABI Linux.
	* configure: Regenerate.

2008-05-18 Xinliang David Li   <davidxl@google.com>

	* ChangeLog: Remove wrong ChangeLog entry.

2008-05-17 Xinliang David Li   <davidxl@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2008-05-15  Janus Weil  <janus@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2008-05-14  Rafael Espíndola  <espindola@google.com>

	* config-ml.in: don't handle --enable-shared and --enable-static.

2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* MAINTAINERS: Update my email address.

2008-05-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* MAINTAINERS: Update my email address.

2008-05-03  Kris Van Hees  <kris.van.hees@oracle.com>

	* MAINTAINERS (Write After Approval): Add myself.

2008-04-28  Gabriele Svelto  <gabriele.svelto@st.com>

	* MAINTAINERS (Write After Approval): Add myself.

2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>

	* MAINTAINERS (crx): Add myself.

2008-04-18  Paolo Bonzini  <bonzini@gnu.org>

	Sync with src:
	2008-04-14  David S. Miller  <davem@davemloft.net>

	* configure.ac: Add sparc*-*-* to gold supported targets.
	* configure: Regenerate.

2008-04-18  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/35457
	* configure.ac: Include override.m4.
	* configure: Regenerate.

2008-04-18  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (restrap): Call `make all' using double-colon rules.
	* Makefile.in: Regenerate.

2008-04-18  M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* configure.ac (cr16-*-*): Add case for cr16 target and include gdb
	as nonconfigurable directories list.
	* configure: Regenerate.

2008-04-14  Ben Elliston  <bje@au.ibm.com>

	* config.sub, config.guess: Update from upstream sources.

2008-04-12  Hans-Peter Nilsson  <hp@axis.com>

	* Makefile.tpl <gcc>: Error early unless at least GNU make 3.80.
	* Makefile.in: Regenerate.

2008-04-11  Eric B. Weddington  <eweddington@cso.atmel.com>

	* configure.ac: Do not build libssp for the AVR.
	* configure: Regenerate.

2008-04-07  Ian Lance Taylor  <iant@google.com>

	* Makefile.def: check-gold depends upon all-binutils.
	* Makefile.in: Regenerate.

2008-04-04  Andy Hutchinson  <hutchinsonandy@aim.com>

	* MAINTAINERS (Write After Approval): Add myself.

2008-04-04  Nick Clifton  <nickc@redhat.com>

	PR binutils/4334
	* configure.ac: Run ACX_CHECK_CYGWIN_CAT_WORKS for cygwin hosted
	builds.
	* configure: Regenerate.

2008-04-04  NightStrike  <NightStrike@gmail.com>

	PR other/35151
	* configure.ac: Combine rules for mingw32 and mingw64.
	* configure: Regenerate.

2008-04-02  Kai Tietz  <kai.tietz@onvision.com>

	* MAINTAINERS (Write After Approval): Add myself.

2008-04-01  Seongbae Park <seongbae.park@gmail.com>

	* Makefile.tpl (.NOTPARALLEL): Revert previous change.
	* Makefile.in (.NOTPARALLEL): Ditto.

2008-04-01  Peter O'Gorman  <pogma@thewrittenword.com>

	* MAINTAINERS (Write After Approval): Add myself.

2008-03-31  Seongbae Park <seongbae.park@gmail.com>

	* Makefile.tpl (.NOTPARALLEL): Serialize stageprofile libiberty.
	* Makefile.in (.NOTPARALLEL): Regenerate.

2008-03-27  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (PICFLAG, PICFLAG_FOR_TARGET): Remove.
	* Makefile.in: Regenerate.

2008-03-26  Jakub Staszak  <kuba@et.pl>

	* MAINTAINERS (Write After Approval): Add myself.

2008-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* MAINTAINERS:  Update e-mail address.

2008-03-20  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Add support for --enable-gold.
	* Makefile.def: Add gold as a directory like ld.
	* configure, Makefile.in: Regenerate.

2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: m4_include config/proginstall.m4.
	* configure: Regenerate.

	Backport from upstream Libtool:

	2007-10-12  Eric Blake  <ebb9@byu.net>

	Deal with Autoconf 2.62's semantic change in m4_append.
	* ltsugar.m4 (lt_append): Replace broken versions of
	m4_append.
	(lt_if_append_uniq): Don't require separator to be overquoted,
	and avoid broken m4_append.
	(lt_dict_add): Fix typo.
	* libtool.m4 (_LT_DECL): Don't overquote separator.

2008-03-13  David Edelsohn  <edelsohn@gnu.org>

	* config.rpath: Add AIX 6 support.

2008-03-13  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (stageprofile).  Remove -fprofile-generate
	from stage_libcflags.
	* Makefile.in: Regenerate.

2008-03-13  Ben Elliston  <bje@au.ibm.com>

	* config.sub, config.guess: Update from upstream sources.

2008-03-06  Tom Tromey  <tromey@redhat.com>

	* MAINTAINERS: Update for treelang deletion.

2008-03-03  James E. Wilson  <wilson@tuliptree.org>

	* MAINTAINERS: Update my email address.

2008-03-03  Stan Shebs  <stanshebs@earthlink.net>

	* MAINTAINERS (darwin port): Add myself as a maintainer.
	(objective-c/c++): Add myself as a maintainer.

2008-03-03  Volker Reichelt  <v.reichelt@netcologne.de>

	* MAINTAINERS (Write After Approval): Update my email address.

2008-02-25  Tomas Bily  <tbily@suse.cz>

	* MAINTAINERS (Write After Approval): Add myself.

2008-02-23  Jakub Jelinek  <jakub@redhat.com>

	* MAINTAINERS (OpenMP): Add myself.

2008-02-20  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/32009
	PR bootstrap/32161

	* configure.ac (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Compute here.
	* configure: Regenerate.

	* Makefile.def: Define stage_libcflags for all bootstrap stages.
	* Makefile.tpl (BOOT_LIBCFLAGS, STAGE2_LIBCFLAGS, STAGE3_LIBCFLAGS,
	STAGE4_LIBCFLAGS): New.
	(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Subst from autoconf, without
	$(SYSROOT_CFLAGS_FOR_TARGET) and $(DEBUG_PREFIX_CFLAGS_FOR_TARGET).
	(BASE_TARGET_EXPORTS): Append them here to C{,XX}FLAGS.
	(EXTRA_TARGET_FLAGS): Append them here to {LIB,}C{,XX}FLAGS.
	(configure-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags
	for target modules.  Don't export LIBCFLAGS.
	(all-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags; pass
	$(BASE_FLAGS_TO_PASS) where [+args+] was passed, and [+args+] after
	the overridden CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
	(invocations of `all'): Replace $(TARGET_FLAGS_TO_PASS) with
	$(EXTRA_TARGET_FLAGS), $(FLAGS_TO_PASS) with $(EXTRA_HOST_FLAGS).
	* Makefile.in: Regenerate.

2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR libgcj/33085
	* libtool.m4 (_LT_COMPILER_PIC) [ mingw, cygwin ] <GCJ>:
	Do not use -DDLL_EXPORT.  Backport from upstream.

2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* MAINTAINERS (Write After Approval): Add myself.

2008-02-02  Hans-Peter Nilsson  <hp@axis.com>

	* configure.ac: Enable fortran for cris-*-elf and crisv32-*-elf.
	* configure: Regenerate.

2008-01-31  Marc Gauthier  <marc@tensilica.com>

	* configure.ac (xtensa*-*-*): Recognize processor variants.
	* configure: Regenerate.

2008-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/34922
	* configure.ac (PARSE_ARGS): Push suitable setting of
	ac_subdirs_all, for `./configure --help=recursive'.
	Handle `+' in generic toplevel directory disabling.
	* configure: Regenerate.

2008-01-28  Nick Clifton  <nickc@redhat.com>

	* MAINTAINERS (xstormy16): Take over maintainership.

2008-01-25  Joseph Myers  <joseph@codesourcery.com>

	* MAINTAINERS (c4x port): Remove.

2008-01-24  David Edelsohn  <edelsohn@gnu.org>

	* libtool.m4: Backport AIX 6 support from ToT Libtool.

2008-01-23  Ben Elliston  <bje@au.ibm.com>

	* config.sub, config.guess: Update from upstream sources.

2008-01-22  Tobias Grosser  <grosser@fim.uni-passau.de>

	* MAINTAINERS (Write After Approval): Add myself.

2008-01-17  H.J. Lu  <hjl.tools@gmail.com>

	* MAINTAINERS: Update my email address.

2008-01-09  Raksit Ashok  <raksit@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2008-01-09  Raksit Ashok  <raksit@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2008-01-08  Ben Elliston  <bje@au.ibm.com>

	* config.sub, config.guess: Update from upstream sources.

2007-12-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.ac: Change required MPFR from 2.2.0 -> 2.2.1.
	Change recommended MPFR from 2.2.1 -> 2.3.0.
	* configure: Regenerate.

2007-12-15  Sebastian Pop  <sebastian.pop@amd.com>

	* MAINTAINERS: Update my email address.

2007-12-15  Bernhard Fischer  <aldot@gcc.gnu.org>

	* MAINTAINERS: Update my email address.

2007-12-13  Richard Sandiford  <rsandifo@nildram.co.uk>

	* Makefile.tpl (CFLAGS_FOR_TARGET): Add -g.
	(CXXFLAGS_FOR_TARGET): Add -O2 -g.
	* Makefile.in: Regenerate.

2007-12-10  Mark Heffernan <meheff@google.com>

	* MAINTAINERS (Write After Approval): Add myself and alphabetize two
	misplaced entries.

2007-12-10  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Enable libjava for x86_64-*-darwin9.
	* configure: Regenerate.

2007-12-07  Bill Maddox <maddox@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	* config.sub, config.guess: Update from upstream sources.

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

	* config-ml.in: Remove 64bit configure tests.

2007-11-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* config-ml.in: Robustify against white space in absolute file
	names.

	* config-ml.in (multi-clean): Substitute ${Makefile}.
	Remove superfluous ${Makefile} in list.

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

	* config-ml.in: Don't hardcode the Makefile name.

2007-11-08  Alexander Monakov  <amonakov@ispras.ru>

	* MAINTAINERS (Write After Approval): Add myself.

2007-11-07  Samuel Tardieu  <sam@rfc1149.net>

	* MAINTAINERS (Write After Approval): Add myself.

2007-11-06  Doug Kwan <dougkwan@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	* MAINTAINERS (mercury): Remove entry.
	(Write After Approval): Add Fergus Henderson <fjh@cs.mu.oz.au>.

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

	* Makefile.def (dependencies): Make configure-gdb depend on
	all-intl.
	* Makefile.in: Regenerated.

2007-10-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	* MAINTAINERS (Fortran maintainer): Remove myself.

2007-10-15  Patrick Mansfield <patmans@us.ibm.com>

	* Makefile.def: To avoid problems running with parallel makes,
	build newlib before libgloss so that target specific header
	files are availble.
	* Makefile.in: Regenerate

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

	* Makefile.def (dependencies): Add all-gdb -> all-libdecnumber.
	* Makefile.in: Regenerate.

2007-10-09  Vladimir Makarov  <vmakarov@redhat.com>

	* MAINTAINERS (Register allocation reviewer): Add myself.

2007-10-08  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (CFLAGS_FOR_BUILD, CXXFLAGS_FOR_BUILD,
	LDFLAGS_FOR_BUILD): Default them to host flags only for $host = $build.
	Set default CXXFLAGS_FOR_BUILD to CXXFLAGS, not CFLAGS.  Set default
	LDFLAGS_FOR_BUILD to LDFLAGS, not CFLAGS.
	* configure: Regenerate.

2006-10-04  Seongbae Park <seongbae.park@gmail.com>

	* MAINTAINERS (Register allocation reviewer): Add myself.

2007-10-01  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (AR_FOR_BUILD, AS_FOR_BUILD, CXX_FOR_BUILD,
	DLLTOOL_FOR_BUILD, GCJ_FOR_BUILD, GFORTRAN_FOR_BUILD,
	LDFLAGS_FOR_BUILD, LD_FOR_BUILD, NM_FOR_BUILD, RANLIB_FOR_BUILD,
	WINDMC_FOR_BUILD, WINDRES_FOR_BUILD): Use autoconf substitutions.
	* configure.ac: Default them to host tools for $host = $build.
	Subst them.

	* configure: Regenerate.
	* Makefile.in: Regenerate.

2006-09-24  Peter Bergner <bergner@vnet.ibm.com>

	* MAINTAINERS (Register allocation reviewer): Add myself.

2006-09-24  Kenneth Zadeck <zadeck@naturalbridge.com>

	* MAINTAINERS (Register allocation reviewer): Add myself.

2007-09-21  Seongbae Park  <seongbae.park@gmail.com>

	* MAINTAINERS (Write After Approval): Fix typo.

2007-09-20  Richard Sandiford  <rsandifo@nildram.co.uk>

	* configure.ac (mipsisa*-*-elfoabi*): New stanza.
	* configure: Regenerate.

2007-09-20  Paul Jarc  <prj-bugzilla-gcc@multivac.cwru.edu>

	PR bootstrap/31906
	* libtool-ldflags: Don't prefix arguments with -Xcompiler if
	they're already prefixed.

2007-09-19  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Move libgomp before
	libstdc++.
	* Makefile.def: Add libgomp config as a maybe dependency for libstdc++.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2007-09-17  Andreas Schwab  <schwab@suse.de>

	* configure.ac: Raise minimum makeinfo version to 4.6.
	* configure: Regenerate.

2007-09-17  Johannes Singler <singler@ira.uka.de>

	* MAINTAINERS (write-after-approval) add myself

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

	* configure.ac: Correct makeinfo version check.
	* configure: Regenerate.

2007-09-14  Richard Sandiford  <rsandifo@nildram.co.uk>

	* MAINTAINERS: Update my email address.

2007-09-14  Richard Sandiford  <richard@codesourcery.com>

	* configure.ac (mips*-sde-elf*): New stanza.  Add target-libiberty
	to $skipdirs and only disable gprof for newlib.  Use the normal
	mips*-elf* handling in other respects.
	* configure: Regnerate.

2007-09-12  David Daney  <ddaney@avtrex.com>

	* configure.ac: Remove mips64*-*-linux* noconfigdirs section, thus
	enabling libgcj.
	* configure: Regenerate.

2007-09-10  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR other/32154
	* configure.ac: For libgloss targets, point the linker to the linker
	script, startup code and simulator library.
	* configure: Regenerate.

2007-09-07  Andrew Haley  <aph@redhat.com>

	* configure.ac (noconfigdirs): Remove target-libffi and
	target-libjava.
	* configure: Regenerate.

2007-09-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/33281
	* configure.ac: Use config/mh-mingw on mingw.
	* configure: Regenerate.

2007-09-05  Pat Haugen  <pthaugen@us.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-09-05  Richard Guenther  <rguenther@suse.de>

	* configure.ac (--enable-stage1-checking): If neither --enable-checking
	nor --disable-checking is provided also turn on yes and types
	checking for stage1.
	* configure: Re-generate.

2007-08-30  Krister Walfridsson  <cato@df.lth.se>

	* MAINTAINERS (OS Port Maintainers): Add myself as NetBSD maintainer.
	(Write After Approval): Remove myself.

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

	* config.sub, config.guess: Update from upstream sources.

2007-08-22  Bud Davis  <jmdavis@link.com>

	* MAINTAINERS (Write After Approval): Added myself.
	* MAINTAINERS (Reviewers): Removed myself.

2007-08-18  Paul Brook  <paul@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
	(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Include it.
	* Makefile.in: Regenerate.
	* configure.ac (--with-debug-prefix-map): New.
	* configure: Regenerate.

2007-08-17  Richard Sandiford  <richard@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* configure.ac (mips*-sde-elf*): New stanza.  Use config/mt-sde
	as target_makefile_frag.
	* configure: Regenerate.

2007-08-16  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.def (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS):
	Add to flags_to_pass.  Adjust uses of BOOT_CFLAGS.
	(bootstrap2-debug, bootstrap-debug): New bootstrap stages.
	* Makefile.tpl (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS): New.
	(do-compare, do-compare3, do-compare-debug): New.
	([+compare-target+]): Use them.

2007-08-14  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* MAINTAINERS (Write After Approval): Change my email address.

2007-08-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
	    Ben Elliston  <bje@au.ibm.com>

	* configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS, baseargs): Pass
	--silent if $silent.
	* configure: Regenerate.

2003-08-12  Zdenek Dvorak  <ook@ucw.cz>

	* MAINTAINERS (Various Maintainers): Add myself as
	loop infrastructure maintainer.  Update my e-mail
	address.

2007-07-31  Diego Novillo  <dnovillo@google.com>

	* MAINTAINERS (Reviewers): Rename from Non-Autopoiesis.
	Adjust description.

2007-07-26  Richard Guenther  <rguenther@suse.de>

	* configure.ac: Add types checking to stage1 checking flags.
	* configure: Regenerate.

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

	* COPYING3: New file.  Contains version 3 of the GNU General
	Public License.
	* COPYING3.LIB: New file.  Contains version 3 of the GNU
	Lesser General Public License.

2007-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>

	* MAINTAINERS (S/390 port maintainer): Remove my co-maintainer tag.

2007-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>

	* MAINTAINERS (S/390 co-maintainer): Add myself.
	(Write After Approval): Remove myself.

2007-07-13  Dan Hipschman  <dsh@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	* Makefile.tpl (BUILD_EXPORTS): Escape the newline at the end of the
	WINDRES export.
	* Makefile.in: Regenerate.

2007-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* MAINTAINERS (OS Port Maintainers): Add myself as IRIX, Tru64 UNIX
	maintainer.

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

	* lt~obsolete.m4: New. Import from 20070318 libtool.

2007-07-03  Julian Brown  <julian@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-07-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Rewrite 'configure --help' strings to look nicer.
	* configure: Regenerate.

2007-07-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Add some missing m4 quotation.
	* configure: Regenerate.

2007-07-02  Simon Baldwin  <simonb@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-07-02  Paolo Bonzini  <bonzini@gnu.org>

	* configure: Regenerate.

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

	* Makefile.def: Add windmc tool to build.
	* Makefile.tpl: Likewise.
	* configure.ac: Likewise.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2007-06-28  DJ Delorie  <dj@redhat.com>

	* configure.ac (arm*-*-linux-gnueabi): Don't build libgloss if we're
	not building newlib.
	* configure: Regenerated.

2007-06-28  Jan Sjodin  <jan.sjodin@amd.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-06-25  Martin Michlmayr  <tbm@cyrius.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-06-19  Chris Matthews  <chrismatthews@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* MAINTAINERS (Write After Approval): Add myself.

2007-06-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.def: Add dependency from configure-gdb to all-bfd.
	* Makefile.in: Regenerated.

2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>

	* configure.ac: Don't add target-libmudflap to noconfigdirs for
	bfin*-*-uclinux* targets.
	* configure: Regenerate.

2007-06-14  Ian Lance Taylor  <iant@google.com>

	* MAINTAINERS: Add myself as non-algorithmic global write
	maintainer.

2007-06-14  Diego Novillo  <dnovillo@google.com>

	* MAINTAINERS: Add self as middle-end maintainer and
	non-algorithmic global write maintainer.

2007-06-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* MAINTAINERS: Change spelling from "fortran 95" to "Fortran".
	Move all Fortran maintainers except Paul Brook into the
	Non-Autopoiesis section.

2007-06-14  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (cleanstrap): Don't delete the toplevel Makefile.
	(distclean-stage[+id+]): Possibly delete stage_last.
	* Makefile.in: Regenerate.

2007-06-12  Seongbae Park  <seongbae.park@gmail.com>

	* MAINTAINERS (Various Maintainer): Fix typo.

2007-06-11  Paolo Bonzini  <bonzini@gnu.org>

	* MAINTAINERS (Various Maintainer): Add myself as
	dataflow maintainer.

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

	* config.sub, config.guess: Update from upstream sources.

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

	* Makefile.tpl: Fix spelling error.
	* Makefile.in: Regenerate.

2007-06-01  Steve Ellcey  <sje@cup.hp.com>

	* libtool.m4 (LT_CMD_MAX_LEN): Try using getconf to set
	lt_cv_sys_max_cmd_len.

2007-05-31  Dorit Nuzman   <dorit@il.ibm.com>

	* MAINTAINERS (Various Maintainers): Add myself as
	auto-vectorizer maintainer.

2003-05-31  Paolo Bonzini  <bonzini@gnu.org>

	PR libjava/32098
	* libtool.m4: Revert previous change.
	* ltgcc.m4: Put it here.

2003-05-30  Zdenek Dvorak  <dvorakz@suse.cz>

	* MAINTAINERS (Various Maintainers): Add myself as
	auto-vectorizer maintainer.

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

	PR libjava/32098
	* libtool.m4 (_LT_LANG_GCJ_CONFIG): Use gcc to test gcj features.

2007-05-30  Richard Guenther  <rguenther@suse.de>

	* MAINTAINERS (Various Maintainers): Add myself as
	auto-vectorizer maintainer.

2007-05-30  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/29382
	* configure.ac: Don't use -fkeep-inline-functions for GCC < 3.3.1.
	* configure: Rebuilt.

2007-05-28  Roberto Costa  <robsettantasei@gmail.com>

	* MAINTAINERS (Write After Approval): Removed my name.

2007-05-25  Steven Bosscher  <steven@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Remove myself.

2007-05-25  Andreas Tobler  <a.tobler@schweiz.org>

	* ltmain.sh: Fix Darwin verstring, remove ${wl}.

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

	* ltmain.sh: Update from ToT Libtool.
	* libtool.m4: Update from ToT Libtool.
	* ltsugar.m4: New. Update from ToT Libtool.
	* ltversion.m4: New. Update from ToT Libtool.
	* ltoptions.m4: New. Update from ToT Libtool.
	* ltconfig: Remove.
	* ltcf-c.sh: Remove.
	* ltcf-cxx.sh: Remove.
	* ltcf-gcj.sh: Remove.

2007-05-22  Ollie Wild  <aaw@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-05-16  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (bootstrap_stage): Replace stage_make_flags with
	stage_cflags.
	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS, POSTSTAGE1_FLAGS_TO_PASS):
	Remove CFLAGS/LIBCFLAGS.
	(configure-stage[+id+]-[+prefix+][+module+],
	all-stage[+id+]-[+prefix+][+module+]): Pass it from [+stage_cflags+].
	* Makefile.in: Regenerate.

2007-05-15  Diego Novillo  <dnovillo@google.com>

	* MAINTAINERS: Update e-mail address.

2007-05-15  Revital Eres  <eres@il.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-05-14  Roberto Costa  <robsettantasei@gmail.com>

	* MAINTAINERS (Write After Approval): Updated my address.

2007-05-14  Thomas Neumann  <tneumann@users.sourceforge.net>

	* MAINTAINERS (Write After Approval): Add myself.

2007-05-11  Silvius Rus  <rus@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-04-23  Tom Tromey  <tromey@redhat.com>

	* MAINTAINERS: Added myself as non-algorithmic libcpp maintainer.

2007-04-22  Mark Mitchell  <mark@codesourcery.com>

	* MAINTAINERS (cpplib): Rename to ...
	(libcpp): ... this.  Add C/C++ front end maintainers.

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

	* config-ml.in: Pass ${ml_config_env} to configure calls.

2007-04-04  Christian Bruel  <christian.bruel@st.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-04-02  Dave Korn  <dave.korn@artimi.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-03-31  Tobias Burnus  <burnus@net-b.de>

	* MAINTAINERS (fortran 95 front end): Add myself.

2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-03-24  Ayal Zaks  <zaks@il.ibm.com>

	* MAINTAINERS (Modulo Scheduler): Add myself.

2007-03-23  Brooks Moses  <brooks.moses@codesourcery.com>

	* MAINTAINERS (fortran 95 front end): Add myself.
	(c++ front end): whitespace fix.

2007-03-22  Nathan Froyd  <froydnj@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	* configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Fix m4 quoting
	of glob.  Quote arguments with single quotes too.
	* configure: Regenerate.

2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.def (fixincludes): Remove unneeded "missing" lines.
	* Makefile.in: Regenerate

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

	* configure: Regenerate.

2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>

	* configure.ac: Add "--with-pdfdir" configure option,
	which defines pdfdir variable.
	* Makefile.def (target=fixincludes): Add install-pdf to
	missing targets.
	(recursive_targets): Add install-pdf target.
	(flags_to_pass): Add pdfdir.
	* Makefile.tpl: Add pdfdir handling, add do-install-pdf
	target.
	* configure: Regenerate
	* Makefile.in: Regenerate

2007-02-28  Eric Christopher  <echristo@apple.com>

	Revert:
	2006-12-07  Mike Stump  <mrs@apple.com>

	* Makefile.def (dependencies): Add dependency for
	install-target-libssp and install-target-libgomp on
	install-gcc.
	* Makefile.in: Regenerate.

2007-02-27  Matt Kraai  <kraai@ftbfs.org>

	* configure: Regenerate.
	* configure.ac: Move statements after variable declarations.

2007-02-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* MAINTAINERS: Add myself as sh maintainer.

2007-02-19  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Adjust for loop syntax.
	* configure: Regenerate.

2007-02-18  Alexandre Oliva  <aoliva@redhat.com>

	* configure: Rebuilt.

2007-02-18  Alexandre Oliva  <aoliva@redhat.com>

	* configure.ac: Drop multiple occurrences of --enable-languages,
	and fix its quoting.
	* configure: Rebuilt.

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

	* configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Fix quoting.
	* configure: Regenerate.

2007-02-14  Gerald Pfeifer  <gerald@pfeifer.com>

	* ltconfig (freebsd*): Default to elf.

2007-02-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.ac (target_libraries): Move libgcc before libiberty.
	* configure: Regenerated.

2007-02-13  Daniel Jacobowitz  <dan@codesourcery.com>
	    Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/30753
	* configure.ac: Remove obsolete build / host tests.  Use AC_PROG_CC
	unconditionally.  Use AC_PROG_CXX.  Use ACX_TOOL_DIRS to find $prefix.
	* configure: Regenerated.

2007-02-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* MAINTAINERS (Language Front End Maintainers): Update my mail
	address.

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

	PR bootstrap/30748
	* configure.ac: Correct syntax for Solaris ksh.
	* configure: Regenerated.

2007-02-09  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Sync with src.
	* configure: Regenerate.

2007-02-09  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in: Regenerate.

2007-02-09  Paolo Bonzini  <bonzini@gnu.org>

	* config.sub: Sync with src.

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

	* Makefile.tpl (build_alias, host_alias, target_alias): Use
	noncanonical equivalents.
	* configure.in: Rename to...
	* configure.ac: ...this.  Update AC_PREREQ.  Prevent error for
	AS_FOR_TARGET.  Set build_noncanonical, host_noncanonical, and
	target_noncanonical.  Use them.  Rewrite removal of configure
	arguments for autoconf 2.59.  Discard variable settings.  Force
	program_transform_name for native tools.

	* Makefile.in: Regenerated.
	* configure: Regenerated with autoconf 2.59.

2007-02-07  Roman Zippel <zippel@linux-m68k.org>

	* MAINTAINERS (Write After Approval): Add myself.

2007-01-31  Andreas Schwab  <schwab@suse.de>

	* Makefile.tpl (LDFLAGS): Substitute it.
	* Makefile.in: Regenerate.

2007-01-30 Andrey Belevantsev <abel@ispras.ru>

	* MAINTAINERS (Write After Approval): Add myself.

2007-01-28  David Edelsohn  <edelsohn@gnu.org>

	* MAINTAINERS (spu port): Add myself.

2007-01-23  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/30541
	* Makefile.def (flags_to_pass): Add GNATBIND and GNATMAKE.
	* Makefile.tpl (GNATBIND): Substitute it.
	(GNATMAKE): Likewise.
	(POSTSTAGE1_FLAGS_TO_PASS): Pass staged GNATBIND instead
	of STAGE_PREFIX.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2007-01-18  Mike Stump  <mrs@apple.com>

	* configure.in: Re-enable -Werror for gcc builds.

2007-01-11  Harsha Jagasia  <harsha.jagasia@amd.com>

	* MAINTAINERS (Write After Approval): Add myself.

2007-01-11  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Change == to = in test command.
	* configure: Regenerate.

2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
	    Nick Clifton  <nickc@redhat.com>
	    Kaveh R. Ghazi  <ghazi@caip.rutgets.edu>

	* configure.in (build_configargs, host_configargs, target_configargs):
	Remove build/host/target parameters.
	(host_libs): Add gmp and mpfr.
	(GMP tests): Reorganize to allow in-tree GMP/MPFR.
	* Makefile.def (gmp, mpfr): New.
	(gcc): Remove target.
	* Makefile.tpl (build_os, build_vendor, host_os, host_vendor,
	target_os, target_vendor): New.
	(configure): Add host_alias/target_alias arguments.  Adjust invocations.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2007-01-11  Matt Fago  <fago@earthlink.net>

	* configure.in: Try to link to functions only in mpfr 2.2.x
	to improve robustness of configure tests.
	* configure: Regenerate.

2007-01-09  Uros Bizjak  <ubizjak@gmail.com>

	* MAINTAINERS: Add myself as i386 maintainer.

2007-01-08  Jan Hubicka  <jh@suse.cz>

	* MAINTAINERS: Add myself as i386 maintainer.

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

	* configure.in: Add support for an x86_64-mingw* target.
	* configure: Regenerate.

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

	* Makefile.tpl (all-target): Correct @if conditional for target
	modules.
	* configure.in: Omit libiberty if building only target libgcc.
	* configure, Makefile.in: Regenerated.

2007-01-04  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Use DEV-PHASE to detect the default for --enable-werror.
	* configure: Regenerate.

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

	* Makefile.def (target_modules): Add libgcc.
	(lang_env_dependencies): Remove default items.  Use no_c and no_gcc.
	* Makefile.tpl (clean-target-libgcc): Delete.
	(configure-target-[+module+]): Emit --disable-bootstrap dependencies
	on gcc even for bootstrapped modules.  Rewrite handling of
	lang_env_dependencies to loop over target_modules.
	* configure.in (target_libraries): Add target-libgcc.
	* Makefile.in, configure: Regenerated.

2006-12-29  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Reorganize recognition of languages.  Add
	--enable-stage1-languages.  Show supported languages for the chosen
	target rather than all recognized languages.
	* configure: Regenerate.

2006-12-29  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (GCC_STRAP_TARGETS, all-prebootstrap): Remove.
	* Makefile.in: Regenerate.

2006-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in: Warn that MPFR 2.2.0 is buggy.
	* configure: Regenerate.

2006-12-27  Ian Lance Taylor  <iant@google.com>

	* configure.in: When removing Makefiles to force a reconfigure, also
	remove prev-DIR*/Makefile.
	* configure: Regenerate.

2006-12-22  Andreas Schwab  <schwab@suse.de>

	* configure: Regenerate with correct autoconf version.

2006-12-20  Adam Megacz  <megacz@cs.berkeley.edu>

	* configure.in: add AC_SUBST for *_FOR_TARGET.
	* configure: Regenerate.

2006-12-19  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Simplify logic for rejecting languages that cannot
	be built.  Separate the case when a language is unsupported,
	from the case when the user chooses not to build a language.

2006-12-19  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Remove "$build" case for powerpc-*-darwin* since
	it only affects bootstrap and could be tested on "$host" as well.
	* configure: Regenerate.
	* config/mh-ppc-darwin: Add to the stage1 cflags here.

2006-12-19  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/29544
	* Makefile.def (flags_to_pass): Add STAGE1_CHECKING.
	(bootstrap_stage): Add STAGE1_CHECKING to stage1 configure flags,
	move here comment from Makefile.tpl.
	* Makefile.tpl: Move some definitions higher in the file.
	(STAGE1_CHECKING): New.
	* configure.in: Add --enable-stage1-checking.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2006-12-19  Paolo Bonzini  <bonzini@gnu.org>

	* MAINTAINERS: Add myself as build system maintainer.

2006-12-15  Simon Martin  <simartin@users.sourceforge.net>

	* MAINTAINERS (Write After Approval): Add myself.

2006-12-13  Eric Christopher  <echristo@apple.com>

	* MAINTAINERS: Add myself as darwin maintainer.

2006-12-11  Ian Lance Taylor  <ian@airs.com>

	* MAINTAINERS: Add myself as libgcc and fp-bit maintainer.

2006-12-11  Joern Rennecke <joern.rennecke@arc.com>

	MAINTAINERS: Update my entry.

2006-12-11  Alan Modra  <amodra@bigpond.net.au>

	* configure.in:  Handle spu makefile frag.
	* Makefile.tpl (MAINT): Define
	(MAINTAINER_MODE_FALSE, MAINTAINER_MODE_TRUE): Define.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2006-12-11  Ben Elliston  <bje@au.ibm.com>

	* config.guess: Import latest version.
	* config.sub: Likewise.

2006-12-11  Ben Elliston  <bje@au.ibm.com>

	* configure.in (spu-*-*): Don't skip target-libiberty.
	* configure: Regenerate.

2006-12-10  Andreas Tobler  <a.tobler@schweiz.org>

	PR bootstrap/30134
	* configure.in: Correct x86 darwin support for libjava to powerpc
	and i?86 only.
	* configure: Regenerate.

2006-12-08  Sandro Tolaini  <tolaini@libero.it>

	* configure.in: Add x86 darwin support for libjava.
	* configure: Regenerate.

2006-12-07  Mike Stump  <mrs@apple.com>

	* Makefile.def (dependencies): Add dependency for
	install-target-libssp and install-target-libgomp on
	install-gcc.
	* Makefile.in: Regenerate.

2006-12-04  Richard Guenther  <rguenther@suse.de>

	* MAINTAINERS (Non-Algorithmic Maintainers): New section.
	(Non-Algorithmic Maintainers): Move over non-algorithmic
	loop optimizer maintainers, add myself as a non-algorithmic
	middle-end maintainer.

2006-12-04  Daniel Franke  <franke.daniel@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-12-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in: Update error message for missing GMP/MPFR.

	* configure: Regenerate.

2006-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in: Update MPFR version in error message.

	* configure: Regenerate.

2006-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in (--with-mpfr-dir, --with-gmp-dir): Remove flags.
	(--with-mpfr-include, --with-mpfr-lib, --with-gmp-include,
	--with-gmp-lib): New flags.

	* configure: Regenerate.

2006-11-25  Brooks Moses  <brooks.moses@codesourcery.com>

	* MAINTAINERS (Write After Approval): Change my email address.

2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2006-11-22  Philipp Thomas <pth@suse.de>

	* MAINTAINERS (i18n): Update e-mail address.

2006-11-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>

	* MAINTAINERS (spu port): Add myself as maintainer.
	(Write After Approval): Remove myself.

2006-11-22  Ben Elliston  <bje@au.ibm.com>

	* configure.in (skipdirs): Don't build libssp for SPU.
	* configure: Regenerate.

2006-11-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* MAINTAINERS (spu port): Add myself as maintainer.
	(libobjc): Update my email address.

2006-11-21  Andrea Bona  <andrea.bona@st.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-11-20  Trevor Smigiel <trevor_smigiel@playstation.sony.com>

	* configure.in (skipdirs) : Don't build target-libiberty for SPU.
	* configure : Rebuilt.

2006-11-20  Trevor Smigiel <trevor_smigiel@playstation.sony.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-11-20  Andrea Ornstein  <andrea.ornstein@st.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in (--with-mpfr-dir): Also look in .libs and _libs for
	libmpfr.a.
	* configure: Regenerate.

2006-11-16  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (clean-target-libgcc): Test for gcc Makefile presence.
	(unstage): Test for stage_last presence.

	PR bootstrap/29802
	* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Add HOST_SUBDIR in STAGE_PREFIX.
	* Makefile.in: Regenerate.

2003-11-16  Zdenek Dvorak  <dvorakz@suse.cz>

	* MAINTAINERS: Add myself and Daniel Berlin as loop optimizer
	maintainers.

2006-11-14  Erven Rohou  <erven.rohou@st.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-11-14  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (clean-stage*): Test separately for package/Makefile
	and stageN-package/Makefile.
	* Makefile.in: Regenerated.

2006-11-14  Jie Zhang  <jie.zhang@analog.com>

	* configure.in: Remove target-libgloss from noconfigdirs for
	bfin-*-*.
	* configure: Regenerated.

2006-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in (have_gmp): Only error if the gcc directory exists.

	* configure: Regenerate.

2006-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in: Robustify error message for missing GMP/MPFR.

	* configure: Regenerate.

2006-10-31  Stephen M. Webb <stephen.webb@bregmasoft.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-10-30  Uros Bizjak <ubizjak@gmail.com>

	* MAINTAINERS: Change email address.

2006-10-30  Vladimir Prus  <vladimir@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-10-26  Peter Bergner  <bergner@vnet.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-10-25  Chen Liqin  <liqin@sunnorth.com.cn>

	* MAINTAINERS (Write After Approval): Move myself to
	Write After Approval section.

2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in: Require GMP-4.1+ and MPFR-2.2+.  Don't check
	need_gmp anymore.
	* configure: Regenerate.

2006-10-16  Tobias Burnus  <burnus@net-b.de>

	* MAINTAINERS (Write After Approval): Add myself.

2006-10-16  Ben Elliston  <bje@au.ibm.com>

	* config.guess: Import latest version.
	* config.sub: Likewise.

2006-10-10  Brooks Moses  <bmoses@stanford.edu>

	* Makefile.def: Added pdf target handling.
	* Makefile.tpl: Added pdf target handling.
	* Makefile.in: Regenerated.

2006-10-10  Chen Liqin  <liqin@sunnorth.com.cn>

	* MAINTAINERS: Add self as score port maintainer.

2006-10-04  Brooks Moses  <bmoses@stanford.edu>

	* MAINTAINERS (Write After Approval): Add myself.

2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>

	* configure.in: Check for GMP 4.1 or newer.  Check for MPFR 2.2.0
	or newer.
	* configure: Regenerated.

2006-09-27  Dave Brolley  <brolley@redhat.com>

	* configure.in (RUNTEST): Look for 'runtest' in the source tree by using
	$s instead of $r.
	* configure: Regenerated.

2006-09-26  Thiemo Seufer  <ths@mips.com>

	* configure.in: Remove redundant handling of mips*-dec-bsd*. Likewise
	for mipstx39-*-*. Disable libgloss for mips64*-*-linux*.
	* configure: Regenerate.

2006-09-24  Graeme Peterson <gridly@gmail.com>

	* MAINTAINERS (Write After Approval): Remove myself.

2006-09-22  Chao-ying Fu  <fu@mips.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-09-10  Joseph S. Myers  <joseph@codesourcery.com>

	* MAINTAINERS: Add self as soft-fp maintainer.

2006-09-09  Anatoly Sokolov <aesok@post.ru>

	* MAINTAINERS: Add myself as avr maintainer.
	Remove Marek Michalkiewicz as avr maintainer.

2006-09-07  Roberto Costa  <roberto.costa@st.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-08-30  Corinna Vinschen  <corinna@vinschen.de>

	* configure.in: Never build newlib for a Mingw host.
	Never build newlib as Mingw target library.
	Test the existence of winsup/cygwin for building a Cygwin newlib,
	rather than just winsup.
	Add winsup/mingw and winsup/w32api paths to FLAGS_FOR_TARGET if
	building a Mingw target.
	* configure: Regenerate.

2006-08-08  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* MAINTAINERS (Various Maintainers): Add self as RTL opt. maintainer.

2006-07-25  Paolo Bonzini  <bonzini@gnu.org>

	* config.guess: Import from src (was more updated).
	* config.sub: Likewise.

2006-07-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.in: Allow mingw32 and cygwin targets to build cross-gdb.
	* configure: Regenerated.

2006-07-18  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (configure-stageN-MODULE): Pass --with-build-libsubdir
	for stages after the first.

2006-07-17  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.def: Add dependencies for configure-opcodes
	on configure-intl and all-opcodes on all-intl.
	* Makefile.in: Regenerated.

2006-07-13  Ben Elliston  <bje@au.ibm.com>

	* MAINTAINERS (Various Maintainers): Add myself as dfp maintainer.

2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>

	Port to hosts whose 'sort' and 'tail' implementations
	treat operands with leading '+' as file names, as POSIX
	has required since 2001.  However, make sure the code still
	works on pre-POSIX hosts.
	* ltmain.sh: Don't assume "sort +2" is equivalent to
	"sort -k 3", since POSIX 1003.1-2001 no longer requires this.

2006-07-05  Ulrich Weigand  <uweigand@de.ibm.com>

	* MAINTAINERS (Various Maintainers): Add myself as reload maintainer.

2006-07-04  Peter O'Gorman  <peter@pogma.com>

	* ltconfig: chmod 644 before ranlib during install.

2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR bootstrap/18058
	* configure.in: Add -fkeep-inline-functions to CFLAGS for stage 1
	if the bootstrap compiler is a GCC version that supports it.
	* configure: Regenerate.

2006-07-03  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Fix thinkos in previous check-in.
	* configure: Regenerate.

2006-07-03  Paolo Bonzini  <bonzini@gnu.org>

	PR other/27063
	* configure.in: Test subdir_requires and give an appropriate
	error message.
	* configure: Regenerate.

2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* MAINTAINERS (Write After Approval): Add myself.

2006-06-22  John David Anglin  <dave.anglin@nrc.ca>

	* MAINTAINERS (OS Port Maintainers): Add myself as hpux maintainer.

2006-06-22  Steve Ellcey  <sje@cup.hp.com>

	* MAINTAINERS (OS Port Maintainers): Add myself as hpux maintainer.

2006-06-20  David Ayers  <d.ayers@inode.at>

	PR bootstrap/28072
	* configure.in:	Add target-boehm-gc to noconfigdirs depending on
	whether target-libjava is being configured instead of whether the
	java front end is enabled.
	* configure: Regenerate.

2006-06-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR target/27540
	* configure.in: Only enable libgomp on IRIX 6.
	* configure: Regenerate.

2006-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Export CFLAGS and LDFLAGS
	too.
	* Makefile.in: Regenerate.

2006-06-13  Jeff Johnston  <jjohnstn@redhat.com>

	* config-ml.in: Alter CCASFLAGS to include special
	multilib options the same as is done for CFLAGS.

2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* configure.in: Don't enable libgomp on hpux10.
	* configure: Rebuilt.

2006-06-12  David Ayers  <d.ayers@inode.at>

	PR bootstrap/27963
	PR target/19970
	* configure.in:	Remove target-boehm-gc from noconfigdirs where
	${libgcj} is specified.
	* configure: Regenerate.

2006-06-06  Carlos O'Donell <carlos@codesourcery.com>

	Sync from src:

	* configure.in: Sync.
	* configure: Regenerated.

	2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.def: Added dependencies from sim and gdb on intl, and
	added configure dependencies to everything with an all dependency
	on intl.
	* Makefile.in: Regenerated.

2006-06-06  David Ayers  <d.ayers@inode.at>

	PR libobjc/13946
	* Makefile.def: Add dependencies for libobjc which boehm-gc.
	* Makefile.in: Regenerate.
	* configure.in: Add --enable-objc-gc at toplevel and have it
	enable boehm-gc for Objective-C.
	Remove target-boehm-gc from libgcj.
	Add target-boehm-gc to target_libraries.
	Add target-boehm-gc to noconfigdirs where ${libgcj}
	is specified.
	Assert that boehm-gc is supported when requested for Objective-C.
	Only build boehm-gc if needed either for Java or Objective-C.
	* configure: Regenerate.

2006-06-05  Paolo Bonzini  <bonzini@gnu.org>

	PR 27674
	* Makefile.tpl (configure-[+prefix+][+module+],
	all-[+prefix+][+module+]): Depend on stage_current if bootstrapping.
	Remove rule to unstage bootstrapped modules.
	(stage_current): New.
	* Makefile.in: Regenerate.

2006-06-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* MAINTAINERS (Write After Approval): Update my e-mail address.

2006-06-01  Mark Shinwell  <shinwell@codesourcery.com>

	* include/libiberty.h: Declare pex_run_in_environment.

2006-05-31  Asher Langton  <langton2@llnl.gov>

	* MAINTAINERS (Write After Approval): Add myself.

2006-05-25  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (bfd, opcodes): Fix lib_path.
	* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Replace ADAC with ADAFLAGS.
	(restrap): Move under "@if gcc-bootstrap".  Fix typo.
	* Makefile.in: Regenerate.

2006-05-24  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.in: Regenerate.

2006-05-24  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.def: Add install-html target. Add datarootdir
	docdir and htmldir to flags_to_pass.
	* Makefile.tpl: Add install-html target.
	* Makefile.in: Regenerate.
	* configure.in: Add --with-datarootdir, --with-docdir, and
	--with-htmldir options. AC_SUBST datarootdir, docdir and htmldir.
	* configure: Regenerate.

2006-05-24  Mark Shinwell  <shinwell@codesourcery.com>

	* configure.in: Enable gprof for cross builds.
	* configure: Regenerate.

2006-05-22  Richard Guenther  <rguenther@suse.de>

	Revert
	2006-01-31  Richard Guenther  <rguenther@suse.de>
	Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (target_modules): Add libgcc-math target module.
	* configure.in (target_libraries): Add libgcc-math target library.
	(--enable-libgcc-math): New configure switch.
	* Makefile.in: Re-generate.
	* configure: Re-generate.
	* libgcc-math: New toplevel directory.

2006-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
	    Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.in:  Enable libgcj for hppa*-hp-hpux11*.
	* configure: Rebuilt.

2006-05-12  Sandra Loosemore <sandra@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-05-01  DJ Delorie  <dj@redhat.com>

	* configure.in: Restore CFLAGS if GMP isn't present.
	* configure: Regenerate.

2006-05-01  Richard Guenther  <rguenther@suse.de>

	* MAINTAINERS (Various Maintainers): Add myself as libgcc-math
	maintainer.

2006-04-30  Kenneth Zadeck <zadeck@naturalbridge.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-04-28  Jan Beulich  <jbeulich@novell.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-04-18  DJ Delorie  <dj@redhat.com>

	* configure.in (m32c): Build libstdc++-v3.  Pass flags to
	reference libgloss so that libssp can be built in a combined
	tree.
	* configure: Regenerate.

2006-04-08  Robert Millan  <rmh@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2006-04-05  Ben Elliston  <bje@au.ibm.com>

	* configure.in: Require makeinfo 4.4 or higher.
	* configure: Regenerate.

2006-04-04  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Add Richard Henderson as libgomp maintainer.
	Rearrange the entries of other libraries to have them in one place.

2006-03-22  Janne Blomqvist  <jb@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Remove myself.
	(Language Front End Maintainers): Add myself as fortran 95 maintainer.

2006-03-14  Richard Guenther  <rguenther@suse.de>

	* configure: Regenerate with autoconf 2.13.

2006-03-13  Jim Blandy  <jimb@codesourcery.com>

	* MAINTAINERS: Use my work address.

	* MAINTAINERS: Update my E-mail address.

2006-03-10  Aldy Hernandez  <aldyh@redhat.com>

	* configure.in: Handle --disable-<component> generically.
	* configure: Regenerate.

2006-03-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR libgcj/17311
	* ltmain.sh: Don't use "$finalize_rpath" for compile.

2006-02-21  Erik Edelmann  <eedelman@gcc.gnu.org>

	* MAINTAINERS (Write After Approval):  Remove myself.
	(Language Front End Maintainers):  Add myself as fortran 95 maintainer.

2006-02-21  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>

	* Makefile.tpl  (BUILD_CONFIGDIRS): Remove.
	(TARGET_CONFIGDIRS): Remove.
	* configure.in: Remove AC_SUBST(target_configdirs).
	* Makefile.in, configure: Regenerated.

2006-02-20  Steven G. Kargl  <kargls@comcast.net>

	* MAINTAINERS (Write After Approval):  Remove myself.
	(Language Front End Maintainers):  Add myself as fortran 95 maintainer.

2006-02-20  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/25670

	* Makefile.tpl ([+compare-target+]): Print explanation messages.

	* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
	* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
	(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
	BUILD_PREFIX, BUILD_PREFIX_1.
	* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.

	* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
	* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.

	* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
	all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
	of `cat stage_current`.  Always provide the `r' and `s' variables.
	(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
	a single shell execution.
	(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
	bootstrapped modules, make the stage1 module if the build was not
	started yet, else build the current stage.
	(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
	(all-build, all-host, all-target, [+make_target+]-host,
	[+make_target+]-target): Do not use \-continued lines.
	(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
	(current_stage, restrap, stage_last): New.

	* Makefile.in: Regenerate.
	* configure: Regenerate.

2006-02-19  Bud Davis  <jmdavis@link.com>

	* MAINTAINERS (Write After Approval):  Remove myself.
	(Language Front End Maintainers):  Add myself as fortran 95
	maintainer and update e-mail address.

2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>

	* MAINTAINERS (Write After Approval):  Remove myself.
	(Language Front End Maintainers):  Add myself as fortran 95
	maintainer.

2006-02-16  Victor Kaplansky  <victork@il.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-02-16  Thomas Koenig  <Thomas.Koenig@online.de>

	* MAINTAINERS (Write After Approval):  Remove myself.
	(Language Front End Maintainers):  Add myself as
	fortran 95 maintainer.

2006-02-14  Paolo Bonzini  <bonzini@gnu.org>

	Sync from src:

	2005-12-27  Leif Ekblad  <leif@rdos.net>

	* configure.in: Add support for RDOS target.
	* configure: Regenerate.

2006-02-14  Paolo Bonzini  <bonzini@gnu.org>
	    Andreas Schwab  <schwab@suse.de>

	* configure: Regenerate.

2006-02-12  David Edelsohn  <edelsohn@gnu.org>

	* configure.in (enable_libgomp): Add AIX.
	* configure: Regenerate.

2006-02-07  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	* MAINTAINERS (Write After Approval): Add myself.

2006-02-03  Lee Millward  <lee.millward@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2006-01-31  Richard Guenther  <rguenther@suse.de>
	Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (target_modules): Add libgcc-math target module.
	* configure.in (target_libraries): Add libgcc-math target library.
	(--enable-libgcc-math): New configure switch.
	* Makefile.in: Re-generate.
	* configure: Re-generate.
	* libgcc-math: New toplevel directory.

2006-01-26  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Set with_gnu_as, with_gnu_ld, with_newlib earlier.
	Set md_exec_prefix.  Use ACX_CHECK_INSTALLED_TARGET_TOOL to find
	the assembler, linker and binutils.
	* configure: Regenerate.

2006-01-22  Dirk Mueller  <dmueller@suse.de>

	* MAINTAINERS (Write After Approval): Add myself.

2006-01-20  Diego Novillo  <dnovillo@redhat.com>

	* configure: Regenerate.

2006-01-18  Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Diego Novillo  <dnovillo@redhat.com>

	* libgomp: New directory.
	* Makefile.def: Add target_module libgomp.
	* Makefile.in: Regenerate.
	* configure.in (target_libraries): Add target-libgomp.
	* configure: Regenerate.

2006-01-05  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.tpl (clean-stage[+id+]-[+prefix+][+module+]): Remove
	@ from continuation.
	* Makefile.in: Rebuilt.

2006-01-04  Chris Lattner  <sabre@gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2006-01-04  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/24252

	* Makefile.def (flags_to_pass): Add STAGE1_CFLAGS and STAGE1_LANGUAGES.
	* Makefile.tpl (OBJDUMP): New.
	(EXTRA_HOST_FLAGS): Add it.
	(EXTRA_GCC_FLAGS): Remove flags already specified in flags_to_pass.

	* Makefile.tpl (stage[+id+]-start, stage[+id+]-end): Do not try
	to use symbolic links between directories.  Avoid race conditions
	or make them harmless.
	* configure.in: Do not try to use symbolic links between directories.

	* Makefile.def (LEAN): Pass.
	* Makefile.tpl (LEAN): Define.
	(stage[+id+]-start): Accept that the previous directory does not
	exist, if the bootstrap is lean.
	(stage[+id+]-bubble): Invoke lean bootstrap commands after
	stage[+id+]-start.  Use a makefile variable and an `if' instead of a
	configure substitution.
	([+compare-target+]): Likewise.
	([+bootstrap-target+]-lean): New.
	* configure.in: Remove lean bootstrap support from here.

	* Makefile.in: Regenerate.
	* configure: Regenerate.

2006-01-04  Ben Elliston  <bje@au.ibm.com>

	* MAINTAINERS (libdecnumber): Add myself.

2006-01-02  Mark Mitchell  <mark@codesourcery.com>

	* libtool-ldflags: New script.

2006-01-02  Andreas Schwab  <schwab@suse.de>

	* configure.in: When reconfiguring remove Makefile in
	all stage directories.
	* configure: Regenerate.

2005-12-27  Steven Bosscher  <stevenb.gcc@gmail.com>

	* MAINTAINERS: Update my email address.

2005-12-20  Paolo Bonzini  <bonzini@gnu.org>

	Revert Ada-related part of the previous change.

	* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, ADAFLAGS_FOR_TARGET):
	Do not pass.
	* Makefile.tpl (BOOT_ADAFLAGS): Do not define.
	* Makefile.in: Regenerate.
	* configure.in: Do not include mt-ppc-aix target fragment.
	* configure: Regenerate.

2005-12-19  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Select appropriate fragments for PowerPC/AIX.
	* configure: Regenerate.

	* Makefile.def (flags_to_pass): Add ADAFLAGS, BOOT_ADAFLAGS,
	BOOT_CFLAGS, BOOT_LDFLAGS.
	* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Handle BOOT_ADAFLAGS,
	BOOT_CFLAGS, BOOT_LDFLAGS.
	(TARGET_FLAGS_TO_PASS): Handle ADAFLAGS_FOR_TARGET.
	(stage[+id+]-bubble): Pass flags recursively to the comparison target.
	(stage): Fail if we cannot complete the work.
	* Makefile.in: Regenerate.

2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>

	* configure.in: Replace ms1 with mt.
	* configure: Rebuilt.

2005-12-15  Bryce McKinlay  <mckinlay@redhat.com>

	* MAINTAINERS: Update my email address.

2005-12-15  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (all, do-[+make_target+], do-check, install,
	install-host-nogcc): Don't invoke $(stage) at the end.
	* Makefile.in: Regenerate.

2005-12-14  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Flip the top-level bootstrap switch.
	* configure: Regenerate.

2005-12-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.tpl: Throughout the file, use : $(MAKE) along with
	$(stage) and $(unstage).
	(EXTRA_TARGET_FLAGS): Correct double-quoting.
	(all): Remove stray semicolon.
	(local-distclean): Don't handle multilib.tmp and multilib.out.
	(install.all): Set $s for consistency.
	(configure-[+prefix+][+module+]): Instead of [+deps+], handle
	check_multilibs setting.  Always make the install directory.
	(configure-stage[+id+]-[+prefix+][+module+]): Likewise.
	Correct @if/@endif.
	(all-stage[+id+]-[+prefix+][+module+]): Correct @if/@endif.
	($(TARGET_SUBDIR)/[+module+]/multilib.out): Remove.
	(stage[+id+]-start, stage[+id+]-end): Stage $(TARGET_SUBDIR).
	(multilib.out): Remove.
	* Makefile.in: Regenerated.

2005-12-12  Carlos O'Donell <carlos@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>

	* MAINTAINERS: Add myself as mt maintainer.

	* config.sub: Replace ms1 with mt.  Allow ms1 as an alias.

2005-12-06  Adam Nemet  <anemet@caviumnetworks.com>

	* MAINTAINERS: Change email address.

2005-12-05  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in (CONFIGURED_BISON, CONFIGURED_YACC, CONFIGURED_M4,
	CONFIGURED_FLEX, CONFIGURED_LEX, CONFIGURED_MAKEINFO): Remove
	"CONFIGURED_" from the AC_CHECK_PROGS invocation.  Move below.
	Find in-tree tools if available.
	(EXPECT, RUNTEST, LIPO, STRIP): Find them and substitute them.
	(CONFIGURED_*_FOR_TARGET): Don't set nor substitute.
	(*_FOR_TARGET): Set them with GCC_TARGET_TOOL.
	(COMPILER_*_FOR_TARGET): New.
	* Makefile.tpl (HOST_EXPORTS): Add *_FOR_TARGET symbols that gcc needs.
	(BASE_TARGET_EXPORTS): Use COMPILER_*_FOR_TARGET symbols.
	(CONFIGURED_*, USUAL_*): Remove.
	(BISON, YACC, FLEX, LEX, M4, MAKEINFO, EXPECT, RUNTEST, LIPO,
	STRIP): Use autoconf substitutions.
	(COMPILER_AS_FOR_TARGET, COMPILER_LD_FOR_TARGET,
	COMPILER_NM_FOR_TARGET): New.
	(EXTRA_HOST_FLAGS): Pass LIPO and STRIP.

	(all): Make all-host and all-target in parallel.
	(do-[+make_target+], do-check, install, [+compare-target+]): Ensure
	that $$r and $$s are set before invoking a recursive make.
	(stage[+id+]-bubble): Likewise, and invoke the comparison at the end.
	([+bootstrap-target+]): Inline most of the `all' target.

2005-11-29  Ben Elliston  <bje@au.ibm.com>

	* Makefile.tpl (clean-target-libgcc): Invoke clean-target-libgcc
	from the gcc build directory.
	* Makefile.in: Regenerate.

2005-11-29  Ben Elliston  <bje@au.ibm.com>

	* Makefile.def: Add new libdecnumber host_module.  Make all-gcc
	depend on all-libdecnumber.
	* configure.in (host_libs): Include libdecnumber.
	* Makefile.in: Regenerate.
	* configure: Likewise.

2005-11-29  Ben Elliston  <bje@au.ibm.com>

	* libdecnumber: Import decNumber sources from the dfp-branch.

2005-11-21  Kean Johnston  <jkj@sco.com>

	* config.sub, config.guess: Sync from upstream sources.

2005-11-21  Ben Elliston  <bje@au.ibm.com>

	Import from Autoconf sources:

	2005-09-06  Paul Eggert  <eggert@cs.ucla.edu>
	* config/move-if-change: Don't output "$2 is unchanged";
	suggested by Ben Elliston.  Handle weird characters correctly.

2005-11-18  Andreas Tobler  <a.tobler@schweiz.ch>

	* ltcf-c.sh (whole_archive_flag_spec): Remove '-all_load $convenience'
	to match upstream libtool for darwin.

2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.def: Remove gdb dependencies for gdbtk.
	* Makefile.tpl (CONFIGURE_GDB_TK, INSTALL_GDB_TK): New variables.
	(configure-gdb, install-gdb): New rules.
	* configure.in: Set CONFIGURE_GDB_TK and INSTALL_GDB_TK.
	* Makefile.in, configure: Regenerated.

2005-11-06  Janne Blomqvist  <jb@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2005-11-06  Erik Edelmann  <eedelman@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2005-10-24  Diego Novillo  <dnovillo@redhat.com>

	* MAINTAINERS (alias analysis): Add Daniel Berlin and
	Diego Novillo.

2005-10-22  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/24297
	* Makefile.tpl (do-[+make-target+], do-check, install,
	stage[+id+]-bubble, [+compare-target+]): Ensure $$r and $$s
	are set before recursing.
	* Makefile.in: Regenerate.

2005-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/18939
	* Makefile.def (gcc) <target>: Fix thinko.
	* Makefile.in: Regenerate.

2005-10-17  Bernd Schmidt  <bernd.schmidt@analog.com>

	* configure.in (bfin-*-*): Use test, not brackets, in if statement.
	* configure: Regenerate.

2005-10-15  Jie Zhang  <jie.zhang@analog.com>

	* MAINTAINERS (Write After Approval): Add self.

2005-10-08  Kazu Hirata  <kazu@codesourcery.com>

	* configure.in (arm-*-linux-gnueabi): Add to noconfigdirs
	target-libffi, target-qthreads, target-libjava, and
	targetlibobjc.
	* configure: Regenerate.

2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.def (flags_to_pass): Add OBJDUMP_FOR_TARGET.
	* Makefile.tpl (BASE_TARGET_EXPORTS): Add OBJDUMP.
	(OBJDUMP_FOR_TARGET, CONFIGURED_OBJDUMP_FOR_TARGET)
	(USUAL_OBJDUMP_FOR_TARGET): New.
	(EXTRA_TARGET_FLAGS): Add OBJDUMP.
	* configure.in: Check for $OBJDUMP_FOR_TARGET.
	* configure, Makefile.in: Regenerated.

2005-10-05  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (all) [gcc-no-bootstrap]: Make prebootstrap packages
	before other host packages.

2005-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>

	* MAINTAINERS: Add self as sh libraries/configury maintainer.

2005-10-05  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/22340

	* configure.in (default_target): Remove.
	* Makefile.tpl (all): Do not use prerequisites as subroutines
	(all) [gcc-bootstrap]: Bootstrap gcc first if it was not done yet.
	(do-[+make_target+], check, install, [+bootstrap_target+]): Do not
	use prerequisites as subroutines.
	(check-host, check-target): New.
	(bootstrap configure & all targets): Do not use stage*-start
	if the directory layout is already ok.
	(non-bootstrap configure & all targets): Prepend a $(unstage).
	(stage[+id+]-bubble): Do that here.  Do not use NOTPARALLEL.
	(NOTPARALLEL): Remove.
	(unstage, stage variables): New variables.
	(unstage, stage targets): Simply expand to those variables.

	* configure: Regenerate.
	* Makefile.in: Regenerate.

2005-10-04  James E Wilson  <wilson@specifix.com>

	* Makefile.def (lang_env_dependencies): Add libmudflap.
	* Makefile.in: Regenerate.

2005-10-03  Andreas Schwab  <schwab@suse.de>

	Backport from libtool CVS:
	2002-11-03  Ossama Othman  <ossama@doc.ece.uci.edu>

	* ltmain.sh: add support for installing into temporary
	staging area (e.g. 'make install DESTDIR=...')

2005-10-03  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.in (*-*-darwin*): Build bfd, binutils and opcodes.
	* configure: Regenerated.

2005-09-30  Andrew Pinski  <pinskia@physics.uc.edu>

	* configure: Regenerate with the correct
	autoconf version.

2005-09-30  Catherine Moore  <clm@cm00re.com>

	* configure.in (bfin-*-*): New.
	* configure: Regenerated.

2005-09-28  Geoffrey Keating  <geoffk@apple.com>

	* Makefile.tpl (BASE_TARGET_EXPORTS): Add LIPO, STRIP.
	(LIPO_FOR_TARGET): New.
	(CONFIGURED_LIPO_FOR_TARGET): New.
	(USUAL_LIPO_FOR_TARGET): New.
	(STRIP_FOR_TARGET): New.
	(CONFIGURED_STRIP_FOR_TARGET): New.
	(USUAL_STRIP_FOR_TARGET): New.
	* Makefile.def (flags_to_pass): Add LIPO_FOR_TARGET and
	STRIP_FOR_TARGET.
	* configure.in: Set LIPO_FOR_TARGET, STRIP_FOR_TARGET,
	CONFIGURED_LIPO_FOR_TARGET, CONFIGURED_STRIP_FOR_TARGET.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2005-09-19  David Edelsohn  <edelsohn@gnu.org>

	* configure.in (powerpc-*-aix*): Add target-libssp to noconfigdirs.
	(rs6000-*-aix*): Same.
	* configure: Regenerate.

2005-09-16  Tom Tromey  <tromey@redhat.com>

	* MAINTAINERS: Add self as java maintainer.

2005-09-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>

	* configure.in: Recognize f95 in the --enable-languages option,
	and substitute it for fortran, issuing a warning.
	* configure: Regenerate.

2005-08-30  Phil Edwards  <phil@codesourcery.com>

	* configure.in (*-*-vxworks*):  Add target-libstdc++-v3 to noconfigdirs.
	* configure:  Regenerated.

2005-08-22  Aldy Hernandez  <aldyh@redhat.com>

	* MAINTAINERS: Add self as ms1 maintainer.

2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>

	* Makefile.def (libssp): Add to lang_env_dependencies.
	* Makefile.in: Regenerate.

2005-08-18  Ian Lance Taylor  <ian@airs.com>

	* MAINTAINERS: Add myself as middle-end maintainer.

2005-08-17  Christian Groessler  <chris@groessler.org>

	* Makefile.tpl: (USUAL_CC_FOR_TARGET): Add missing trailing slash.
	* Makefile.in: Regenerate.

2005-08-15  Andreas Krebbel  <krebbel1@de.ibm.com>

	* MAINTAINERS (write after approval): Added myself.

2005-08-12  Maciej W. Rozycki  <macro@linux-mips.org>

	* MAINTAINERS (Write After Approval): Add myself.

2005-08-12  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Replace NCN_STRICT_CHECK_TOOL with
	NCN_STRICT_CHECK_TOOLS, and likewise for NCN_STRICT_CHECK_TARGET_TOOLS.
	Look for alternate names of the target cc and c++
	* configure: Regenerate.

2005-08-08  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in (CC_FOR_TARGET, CXX_FOR_TARGET, GCJ_FOR_TARGET,
	GCC_FOR_TARGET, RAW_CXX_FOR_TARGET, GFORTRAN_FOR_TARGET): Find
	them with NCN_STRICT_CHECK_TARGET_TOOL, like the other target
	tools; remove code to manually set them.
	(Target tools): Look in the environment for them.
	* Makefile.tpl (CC_FOR_TARGET, CXX_FOR_TARGET, GCJ_FOR_TARGET,
	GCC_FOR_TARGET, RAW_CXX_FOR_TARGET, GFORTRAN_FOR_TARGET): Redefine.
	(AS_FOR_TARGET, LD_FOR_TARGET, NM_FOR_TARGET): Look into gcc
	build directory.
	(CONFIGURED_CC_FOR_TARGET, CONFIGURED_CXX_FOR_TARGET,
	CONFIGURED_GCJ_FOR_TARGET, CONFIGURED_GCC_FOR_TARGET,
	CONFIGURED_GFORTRAN_FOR_TARGET, USUAL_CC_FOR_TARGET,
	USUAL_CXX_FOR_TARGET, USUAL_GCJ_FOR_TARGET, USUAL_GCC_FOR_TARGET,
	USUAL_RAW_CXX_FOR_TARGET, USUAL_GFORTRAN_FOR_TARGET): New.
	(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE,
	RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE, RECURSE_FLAGS): Delete.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2005-07-28  Ben Elliston  <bje@au.ibm.com>

	* MAINTAINERS: Update for removed CPU targets.

2005-07-27  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.tpl (EXTRA_TARGET_FLAGS): Set LDFLAGS=LDFLAGS_FOR_TARGET.
	* Makefile.def (flags_to_pass): Add LDFLAGS_FOR_TARGET.
	* Makefile.in: Regenerated.

2005-07-26  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.tpl (SYSROOT_CFLAGS_FOR_TARGET): New variable.
	(CFLAGS_FOR_TARGET): Use it.
	(CXXFLAGS_FOR_TARGET): Likewise.
	* Makefile.in: Regenerated.
	* configure.in (--with-build-sysroot): New option.
	* configure: Regenerated.

2005-07-24  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl: Wrap install between unstage and stage
	* Makefile.in: Regenerate.

2005-07-21  Eric Christopher  <echristo@apple.com>

	* MAINTAINERS: Update affiliation.

2005-07-21  Paul Woegerer  <paul.woegerer@nsc.com>

	* MAINTAINERS: Add self as crx port maintainer.

2005-07-20  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS: Add self as m32c maintainer.

2005-07-16  Kelley Cook  <kcook@gcc.gnu.org>

	* all files: Update FSF address.

2005-07-15  Eric Christopher  <echristo@redhat.com>

	* MAINTAINERS: Change affiliation.

2005-07-14  Jim Blandy  <jimb@redhat.com>

	* configure.in: Add cases for Renesas m32c.
	* configure: Regenerated.

2005-07-14  Kelley Cook  <kcook@gcc.gnu.org>

	* COPYING.LIB: Update from fsf.org.

2005-07-14  Kelley Cook  <kcook@gcc.gnu.org>

	* COPYING, compile, config.guess,
	config.sub, install-sh, missing, mkinstalldirs,
	symlink-tree, ylwrap: Sync from upstream sources.
	* config-ml.in: Update FSF address.

2005-07-13  Eric Christopher  <echristo@redhat.com>

	* configure.in: Add toplevel noconfigdir support for tpf.
	* configure: Regenerate.

2005-07-11  Paolo Bonzini  <bonzini@gnu.org>

	PR ada/22340

	* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Fix pasto.
	* Makefile.in: Regenerate.

2005-07-07  Mark Mitchell  <mark@codesourcery.com>

	* MAINTAINERS: Remove Dave Brolley as a cpplib maintainer.  Add Dave
	Brolley to write-after-approval.

2005-07-07  Andreas Schwab  <schwab@suse.de>

	* Makefile.def (flags_to_pass): Add CFLAGS_FOR_BUILD.
	* Makefile.tpl (EXTRA_GCC_FLAGS): Don't pass CFLAGS_FOR_BUILD here.
	* Makefile.in: Regenerated.

2005-07-06  Geoffrey Keating  <geoffk@apple.com>

	* configure.in: Don't build sim or rda when targetting darwin.
	* configure: Regenerate.

2005-07-06  Kazu Hirata  <kazu@codesourcery.com>

	* configure.in: Add --enable-libssp and --disable-libssp.
	* configure: Regenerate with autoconf-2.13.

2005-07-02  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.def (target_modules): Add libssp.
	* configure.in (target_libraries): Add target-libssp.
	* configure: Rebuilt.
	* Makefile.in: Rebuilt.

2005-07-01  Zack Weinberg  <zackw@panix.com>

	* MAINTAINERS: Change email address.  Resign from maintainership.

2005-07-01  Richard Guenther  <rguenther@suse.de>

	* MAINTAINERS: Change my e-mail address and affiliation.

2005-06-22  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (stagefeedback): Come after profile.
	Define profiledbootstrap target.
	* Makefile.tpl (profiledbootstrap): Remove.
	(stageprofile-end): Zap stagefeedback.
	(stagefeedback-start): Copy all .gcda files, not only GCC's.
	* Makefile.in: Regenerate.

2005-06-13  Richard Sandiford  <richard@codesourcery.com>

	* MAINTAINERS: Update my email address.

2005-06-13  Zack Weinberg  <zack@codesourcery.com>

	* depcomp: Update from automake CVS.  Add 'ia64hp' stanza.
	In 'cpp' stanza, support '#line' as well as '# '.

2005-06-08  Andreas Schwab  <schwab@suse.de>

	* MAINTAINERS: Move myself from 'Write After Approval' to
	'CPU Port Maintainers' section as m68k maintainer.

2005-06-07  Hans-Peter Nilsson  <hp@axis.com>

	* configure.in (unsupported_languages): New macro.
	<mmix-knuth-mmixware>: Set unsupported_languages.  Name explicit
	non-ported target libraries in noconfigdirs.
	<cris-*, crisv32-*> Ditto, except for non-aout, non-elf,
	non-linux-gnu.  Remove libgcj_ex_libffi.
	<lang_frag loop>: Set add_this_lang=no if the language is in
	unsupported_languages.
	* configure: Regenerate.

2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	* configure.in: Fix typo in handling of --with-mpfr-dir.
	* configure: Regenerate.

2005-06-04  Richard Sandiford  <rsandifo@nildram.co.uk>

	* MAINTAINERS: Update my email address.

2005-06-02  Jim Blandy  <jimb@redhat.com>

	* config.sub: Add cases for the Renesas m32c.  (This patch has been
	accepted into the master sources.)

2005-06-02  Aldy Hernandez  <aldyh@redhat.com>
	    Michael Snyder  <msnyder@redhat.com>
	    Stan Cox  <scox@redhat.com>

	* configure.in: Set noconfigdirs for ms1.

	* configure: Regenerate.

2005-06-01  Jerry DeLisle  <jvdelisle@verizon.net>

	* MAINTAINERS (Write After Approval): Add self.

2005-06-01  Josh Conner  <jconner@apple.com>

	* MAINTAINERS (Write After Approval): Add self.

2005-06-01  Kazu Hirata  <kazu@codesourcery.com>

	* MAINTAINERS: Update my email address.

2005-05-27  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	* MAINTAINERS (Write After Approval): Add self.

2005-05-26  Chris Demetriou  <cgd@broadcom.com>

	* MAINTAINERS (Write After Approval): Remove self.

2005-05-25  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (stage[+id+]-start): Iterate over target module as well.
	(Dependencies): Consider target modules for bootstrap dependencies.
	Make target bootstrap modules depend on each stage's gcc.
	* Makefile.in: Regenerate.

2005-05-20  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (configure-gcc): Depend on binutils having been built.
	(all-gcc): No need to do it here.
	* Makefile.in: Regenerate.

2005-05-19  Paul Brook  <paul@codesourcery.com>

	* configure.in: Rewrite misleading error message when requested
	language cannot be built.
	* configure: Regenerate.

2005-05-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* ylwrap: Import from Automake 1.9.5.

2005-05-13  David Ung  <davidu@mips.com>

	* MAINTAINERS (Write After Approval): Add self.

2005-05-09  Mike Stump  <mrs@apple.com>

	* libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Use quotes on
	lt_cv_sys_max_cmd_len for now.

2005-05-09  Stan Cox  <scox@redhat.com>

	* MAINTAINERS: Remove self, add Nick Clifton as iq2000 maintainer.

2005-05-08  Matt Kraai  <kraai@ftbfs.org>

	* README.SCO: Update the URL.

2005-05-05  David Edelsohn  <edelsohn@gnu.org>

	* ltconfig: Define file_list_spec.  Pass file_list_spec and
	with_gnu_ld to libtool.
	* ltcf-c.sh (aix[45]): Define file_list_spec.
	* ltcf-cxx.sh (aix[45]): Same.
	* ltcf-gcj.sh (aix[45]): Same.
	* ltmain.sh: If command exceeds max_cmd_len and file_list_spec
	exists, write list of input files to temporary file.

2005-05-04  Mike Stump  <mrs@apple.com>

	* configure.in: Always pass --target to target configures as
	otherwise rebuilds that do --recheck will fail.
	* confiugure: Rebuilt.

2005-05-04  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Rename from
	STAGE_HOST_EXPORTS.
	(configure, all): Add bootstrap support.
	(Host modules, target modules): Pass post-stage1 flags and exports.
	(Top-level bootstrap): Remove bootstrap rules, expanded elsewhere.
	* Makefile.in: Regenerate.

2005-04-29  Paolo Bonzini  <bonzini@gnu.org>

	* configure: Regenerate.

2005-04-27  Mike Stump  <mrs@apple.com>

	* MAINTAINERS: Add self as darwin maintainer.

2005-04-22  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config.sub: Update from master copy.

2005-04-21  Mike Stump  <mrs@apple.com>

	* MAINTAINERS: Add self as Objective-C/Objective-C++ maintainer.
	* MAINTAINERS: Add Zem as Objective-C++ maintainer.

2005-04-19  Hans-Peter Nilsson  <hp@axis.com>

	* configure.in <crisv32-*-*, cris-*-*>: New local variable
	libgcj_ex_libffi.  Have specific match for *-*-linux*.  Separate
	matches for "*-*-aout" and "*-*-elf".  Don't disable libffi for
	"*-*-elf" and "*-*-linux*".
	* configure: Regenerate.

2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>

	* MAINTAINERS (Various Maintainers): Add self as i18n maintainer.

2005-04-12  Mike Stump  <mrs@apple.com>

	* libtool.m4: Update AC_LIBTOOL_SYS_MAX_CMD_LEN bits from upstream.

2005-04-04  Thomas Koenig  <Thomas.Koenig@online.de>

	* MAINTAINERS (Write After Approval): Add myself.

2005-04-07  Bernd Schmidt  <bernd.schmidt@analog.com>

	* MAINTAINERS (Port Maintainers): Add self for Blackfin.

2005-04-06  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (BUILD_CONFIGARGS): Include --with-build-subdir.
	(TARGET_CONFIGARGS): Include --with-target-subdir.
	(configure, all): New macros.  Use them throughout.
	* Makefile.in: Regenerate.

2005-04-04  Jon Grimm  <jgrimm2@us.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2005-03-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* MAINTAINERS: Remove 'loop unrolling' maintainer.

2005-03-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Move John Carr to Write After Approval.

2005-03-30  J"orn Rennecke <joern.rennecke@st.com>

	* config/mh-mingw32: Delete.
	* configure.in: Don't use it.
	* configure: Regenerate.

2005-03-31  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (bfd, opcodes, libstdc++-v3, libmudflap): Set lib_path.
	* Makefile.tpl (SET_LIB_PATH, REALLY_SET_LIB_PATH): Remove.
	(HOST_EXPORTS, STAGE_HOST_EXPORTS, TARGET_EXPORTS): Set $(RPATH_ENVVAR).
	(HOST_LIB_PATH): Generate from Makefile.def.
	(TARGET_LIB_PATH): Likewise.
	(Old bootstrap targets): Include TARGET_LIB_PATH into RPATH_ENVVAR.
	* Makefile.in: Regenerate.
	* configure.in (set_lib_path, SET_LIB_PATH, SET_GCC_LIB_PATH): Remove.
	(RPATH_ENVVAR): Include Darwin case.
	* configure: Regenerate.

2005-03-29  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* MAINTAINERS (Various Maintainers): Remove self.
	(Write After Approval): Add self.

2005-03-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* MAINTAINERS (Various Maintainers): Add self.

2005-03-25  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in (RPATH_ENVVAR): Set to DYLD_LIBRARY_PATH on Darwin.
	* configure: Regenerate.

2005-03-21  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.def: Remove libstdcxx_incdir, libsubdir, gxx_include_dir,
	gcc_version, and gcc_version_trigger from set of flags to pass.
	* Makefile.tpl: Remove definitions of above variables.
	(config.status): Remove dependency on $(gcc_version_trigger).
	* Makefile.in: Regenerate.
	* configure.in: Do not reference config/gcc-version.m4 nor
	config/gxx-include-dir.m4.  Do not invoke TL_AC_GCC_VERSION nor
	TL_AC_GXX_INCLUDE_DIR.  Do not set gcc_version_trigger.
	* configure: Regenerate.

2005-03-16  Manfred Hollstein  <manfred.h@gmx.net>
	    Andrew Pinski <pinskia@physics.uc.edu>

	* Makefile.tpl (check-[+module+]): Fix shell statement inside if ... fi.
	* Makefile.in: Regenerate.

2005-03-13  Feng Wang  <fengwang@nudt.edu.cn>

	* MAINTAINERS (Write After Approval): Add myself.

2005-03-03  David Ayers  <d.ayers@inode.at>

	* MAINTAINERS (Write After Approval): Add myself.

2005-03-01  Alexandre Oliva  <aoliva@redhat.com>

	PR libgcj/20160
	* ltmain.sh: Avoid creating archives with components that have
	duplicate basenames.

2005-02-28  Andrew Pinski  <pinskia@physics.uc.edu>

	PR bootstrap/20250
	* Makefile.tpl (HOST target installs): Fix copy and pasto, use install
	instead of check.
	* Makefile.in: Regenerate.

2005-02-28  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in: Regenerate to fix conflict between the previous two
	patches.

2005-02-28  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/17383
	* Makefile.def (target_modules): Remove "stage", now unnecessary.
	* Makefile.tpl (HOST_SUBDIR): New substitution.
	(STAGE_HOST_EXPORTS, EXPECT, HOST_LIB_PATH, USUAL_AR_FOR_TARGET,
	USUAL_AS_FOR_TARGET, USUAL_DLLTOOL_FOR_TARGET, USUAL_GCC_FOR_TARGET,
	USUAL_LD_FOR_TARGET, USUAL_NM_FOR_TARGET, USUAL_OBJDUMP_FOR_TARGET,
	USUAL_RANLIB_FOR_TARGET, USUAL_WINDRES_FOR_TARGET): Use it.
	(Host modules, Bootstrapped modules): Use it.
	(Build modules, Target modules): Do not create symlink trees,
	always configure out-of-srcdir.
	(distclean): Try removing $(host_subdir) with rm before using rm -rf.
	* configure.in (FLAGS_FOR_TARGET, CC_FOR_TARGET, GCJ_FOR_TARGET,
	GFORTRAN_FOR_TARGET, CXX_FOR_TARGET, RAW_CXX_FOR_TARGET): Use
	$(HOST_SUBDIR).  Create a symlink for host_subdir.

	* Makefile.in: Regenerate.
	* configure: Regenerate.

2005-02-28  Nathanael Nerode  <neroden@gcc.gnu.org>

	Merged from libada-gnattools-branch:
	2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>

	* gnattools: New directory.
	* Makefile.def: Add gnattools as a module, depending on target-libada.
	* Makefile.in: Regenerate.
	* configure.in: Include gnattools in host_tools; disable it if ada
	is disabled.
	* configure: Regenerate.

2005-02-24  James A. Morrison  <phython@gcc.gnu.org>

	* MAINTAINERS (Language Front Ends Maintainers): Add myself as
	treelang maintainer.
	(Write After Approval): Remove myself.

2005-02-23  Paul Schlie  <schlie@comcast.net>

	* configure.in: Allow darwin targeted ports to build tk, itcl and
	libgui.
	* configure: Regenerate.

2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR libgcj/10353
	* configure.in (noconfigdirs) <sparc-*-solaris2.[0-6]>: Add libgcj.
	* configure: Regenerate.

2005-02-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2005-02-10  Ian Lance Taylor  <ian@airs.com>

	* MAINTAINERS: Update my e-mail address.

2005-02-02  Richard Guenther  <rguenth@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2005-01-29  Hans-Peter Nilsson  <hp@axis.com>

	* configure.in (noconfigdirs) <crisv32-*-*>: Match like cris-*-*.
	<crisv32-*-*, cris-*-*>: Only disable target-newlib and
	target-libgloss when not *-*-elf and *-*-aout.
	* configure: Regenerate.

2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS: Remove obsolete entries.

	* MAINTAINERS (Write After Approval): Add Michael Matz.

2005-01-19  Neil Booth  <neil@daikokuya.co.uk>

	* MAINTAINERS: Remove self as cpplib maintainer.

2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>

	* install-sh, config.sub: Import from upstream.

2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>

	PR bootstrap/18222
	* Makefile.def: Pass CPPFLAGS_FOR_TARGET.
	* Makefile.tpl: Define target CPPFLAGS on CPPFLAGS_FOR_TARGET.
	* Makefile.in: Regenerate.

2005-01-16  Jason Thorpe  <thorpej@netbsd.org>

	* MAINTAINERS: Update my email address.

2005-01-12  David Edelsohn  <edelsohn@gnu.org>
	    Andreas Schwab  <schwab@suse.de>

	PR bootstrap/18033
	* config-ml.in: Eval option if surrounded by single quotes.

2005-01-03  Paolo Bonzini  <bonzini@gnu.org>

	Revert 2004-12-28 Makefile changes, a better fix will be
	applied to mainline and src after GCC 4.0 branches.

2004-12-28  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/17383

	* Makefile.def (target_modules): Remove stage parameter,
	it is always true now.
	* Makefile.tpl (configure-build-[+module+],
	configure-target-[+module+]): Always build symlink tree
	for the directory and for include.  BUILD_SUBDIR and
	TARGET_SUBDIR cannot be . anymore.
	* Makefile.in: Regenerate.

2004-12-25  David Edelsohn  <edelsohn@gnu.org>

	Revert 2004-12-08 Makefile changes.

2004-12-17  Danny Smith  <dannysmith@users.sourceforge.net>

	* MAINTAINERS: Move myself to OS Port Maintainers for windows,
	cygwin, mingw.

2004-12-16  Andrew Stubbs  <andrew.stubbs@st.com>

	* configure.in (sh64-*-*): Reenable gprof.
	* configure: Regenerate.

2004-12-08  David Edelsohn  <edelsohn@gnu.org>

	* Makefile.def (flags_to_pass): Add PICFLAG_FOR_TARGET.
	* Makefile.tpl (EXTRA_HOST_FLAGS): Add PICFLAG.
	(EXTRA_TARGET_FLAGS): Add PICFLAG.
	* Makefile.in: Regenerate.

2004-12-08  Christopher Faylor  <cgf@gcc.gnu.org>

	* MAINTAINERS: Update my email address.

2004-12-07  Matt Kraai  <kraai@ftbfs.org>

	* Makefile.tpl: Generate normal dependencies if the LHS module is
	not bootstrapped.
	* Makefile.in: Regenerate.

2004-12-03  Richard Sandiford  <rsandifo@redhat.com>

	* configure.in: Include config/gxx-include-dir.m4.  Use
	TL_AC_GXX_INCLUDE_DIR.  Remove some now-redundant AC_SUBSTs.
	* configure: Regenerate.

2004-12-03  Richard Sandiford  <rsandifo@redhat.com>

	* config.if: Delete.
	* configure.in: Set libstdcxx_incdir directly.
	* configure: Regenerate.

2004-12-02  Eric Christopher  <echristo@redhat.com>

	* Makefile.tpl (clean-target-libgcc): Make change in correct place.
	* Makefile.in: Regenerate.

2004-12-02  Richard Sandiford  <rsandifo@redhat.com>

	* configure.in: Clear gcc_version_trigger if the file doesn't exist.
	* configure: Regenerate.

2004-12-02  Richard Sandiford  <rsandifo@redhat.com>

	* configure.in: Include config/gcc-version.m4.  Use TL_AC_GCC_VERSION
	to set gcc_version_trigger.  Remove some now-redundant AC_SUBSTs.
	* configure: Regenerate.

2004-12-01  Eric Christopher  <echristo@redhat.com>

	* Makefile.in (clean-target-libgcc): Add stmp-dirs to list
	of things to remove.

2004-11-29  Matt Kraai  <kraai@ftbfs.org>

	* MAINTAINERS (Write After Approval): Update my e-mail address.

2004-11-29  Kelley Cook  <kcook@gcc.gnu.org>

	* libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Re-import linux-gnu case
	from CVS libtool to always pass_all.

2004-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* configure.in (hppa*-*-linux*): Don't add libgcj to noconfigdirs.
	(hppa*64*-*-*): Delete incorrect comment.
	* configure: Rebuilt.

2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>

	* libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Revert previous change.

2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>

	* libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Import linux-gnu case
	from CVS libtool to always pass_all.

2004-11-15  Kelley Cook  <kcook@gcc.gnu.org>

	* install-sh, compile: Import from automake.

2004-11-15  Kelley Cook  <kcook@gcc.gnu.org>

	* config.guess, config.sub:  Import from savannnah.

2004-11-12  Scott Robert Ladd  <scott.ladd@coyotegulch.com>

	* MAINTAINERS (Write After Approval): Add myself

2004-11-12  Mike Stump  <mrs@apple.com>

	* Makefile.def: Add html support.
	* Makefile.tpl: Likewise.
	* Makefile.in: Regenerate.

2004-11-11  Geoffrey Keating  <geoffk@apple.com>

	PR 18423
	* configure.in: Remove all instances of build-fixincludes from
	noconfigdirs.
	(build_configargs): Supply --target to subdirectories.
	* configure: Regenerate.

	* Makefile.def: Make gcc install depend on fixincludes install.
	* Makefile.in: Regenerate.

2004-11-10  Janis Johnson  <janis187@us.ibm.com>

	* MAINTAINERS: Add myself as gcc testsuite maintainer.

2004-11-11  Paul Brook  <paul@codesourcery.com>

	* MAINTAINERS: Add self as arm maintainer.  Update email address.

2004-11-08  Hans-Peter Nilsson  <hp@bitrange.com>

	* configure.in (noconfigdirs) [mmix-*-*]: Disable
	target-libgfortran.
	* configure: Regenerate.

2004-11-07  David Edelsohn  <edelsohn@gnu.org>

	* config-ml.in: Pass FCFLAGS for multilibs, handle GFORTRAN
	like CC.

2004-11-05  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (host fixincludes): Specify missing targets.
	* Makefile.in: Regenerate.

2004-11-05  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* MAINTAINERS: Add myself

2004-11-05  Gabor Loki  <loki@inf.u-szeged.hu>

	* MAINTAINERS (Write After Approval): Add myself.

2004-11-04  Geoffrey Keating  <geoffk@apple.com>

	* Makefile.def: Build fixincludes for the host, too.
	* Makefile.in: Regenerate.
	* configure.in (host_tools): Add fixincludes.
	* configure: Regenerate.

2004-11-04  Daniel Jacobowitz  <dan@debian.org>

	* configure.in (arm-*-oabi*, thumb-*-oabi*): Remove.
	* configure: Regenerated.

2004-11-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/17783
	* configure.in: Set up LD_LIBRARY_PATH by default for gcc.
	* configure: Regenerated.

2004-10-31  Mark Mitchell  <mark@codesourcery.com>

	* README.SCO: Update per FSF instructions.

2004-10-28  Eric B. Weddington  <ericw@evcohs.com>

	PR target/18151
	* configure.in (case ${target}): Do not build fixincludes for avr.
	* configure: Regenerated.

2004-10-26  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in (case ${target}): Do not build fixincludes
	on platforms where it is not used.
	* configure: Regenerated.

2004-10-23  Daniel Jacobowitz  <dan@debian.org>

	* configure.in: Use an absolute path to install-sh.
	* configure: Regenerated.

2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* MAINTAINERS (Write After Approval): Add myself.

2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS: Remove from Write After Approval those that are
	already maintainers.

2004-10-19  Sebastian Pop  <pop@cri.ensmp.fr>

	* MAINTAINERS:  Update my email address.

2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.in (*-*-cygwin*): Supress warning if newlib not present.
	* configure: Regenerate.

2004-10-07  J"orn Rennecke <joern.rennecke@st.com>

	* MAINTAINERS:  Update my email address.

2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS (Language Front Ends Maintainers): New.  Move
	entries belonging to this category.

2004-10-06  Josef Zlomek  <josef.zlomek@email.cz>

	* MAINTAINERS: Update my e-mail address.

2004-10-06  Paolo Bonzini  <bonzini@gnu.org>

	Fix wrong conflict resolution in:

	2004-08-16  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in: Regenerate.
	* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
	in the recursive `make', instead of hardwiring `all'.
	(Autogenerated TARGET-* variables): New.

2004-10-05  Tomer Levi  <Tomer.Levi@nsc.com>

	* configure.in: Enable target-libgloss for crx-*-*.
	* configure: Regenerate.

2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS (Various Maintainers): Move the "windows,
	cygwin, mingw" maintainer to ...
	(OS Port Maintainers): ... here.

2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS (Write After Approval): Remove those that are
	maintainers of some subsystem.

2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>

	* ltcf-c.sh (tpf*): Add ld_shlibs=yes.
	* ltcf-cxx.sh (tpf*): Likewise.
	* ltconfig (tpf*): Add TPF OS configuration support.

2004-10-01  Bernd Schmidt  <bernds_cb1@t-online.de>

	* MAINTAINERS: Change my email address to my new work account.

2004-09-24  Michael Roth  <mroth@nessie.de>

	* configure.in (--without-headers): Add missing double quotes.
	* configure: Regenerate.

2004-09-24  Kelley Cook <kcook@gcc.gnu.org>

	* ylwrap: Revert to previous version.

2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/17369
	* Makefile.tpl (REALLY_SET_LIB_PATH): Add @SET_GCC_LIB_PATH@.
	(HOST_EXPORTS]): Add @SET_GCC_LIB_PATH@. Set and export
	SET_GCC_LIB_PATH_CMD.
	(BASE_TARGET_EXPORTS): Likewise.
	* Makefile.in: Regenerated.

	* configure.in (SET_GCC_LIB_PATH): Set and substitute.
	* configure: Regenerated.

2004-09-23  Kelley Cook  <kcook@gcc.gnu.org>

	* config.guess: New upstream version
	* compile, depcomp, install-sh, ylwrap: Likewise.

2004-09-19  Roger Sayle  <roger@eyesopen.com>

	* config/mh-x86omitfp: New host makefile fragment.  Add
	-fomit-frame-pointer to the default BOOT_CFLAGS.
	* configure.in: Use it to speed up bootstrap on some IA-32 hosts.
	* configure: Regenerate.

2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/11572
	* configure.in (*-*-darwin*): Renable libobjc.
	* configure: Regenerate.

2004-09-10  Nathan Sidwell  <nathan@codesourcery.com>

	* MAINTAINERS: Add self as c++ and type-safe vector maintainer.

2004-09-09  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.def: Remove libbanshee.
	* Makefile.tpl: Ditto.
	* configure.in: Ditto.
	* Makefile.in: Regen.
	* configure: Ditto.

2004-09-08  David Edelsohn  <edelsohn@gnu.org>

	* ltmain.sh: Use $pic_object as $non_pic_object if
	$non_pic_object=none.

2004-09-07  Paolo Bonzini  <bonzini@gnu.org>

	* missing: Import latest version from master repository.

2004-09-06  Nick Clifton  <nickc@redhat.com>

	* config.sub: Import latest version from master repository.
	* config.guess: Likewise.
	This includes these changes:

	2004-08-27  Hans-Peter Nilsson  <hp@axis.com>

	* config.sub: Handle crisv32, alias etraxfs.
	* config.guess (crisv32:Linux:*:*): Handle.

	2004-08-13  Brad Smith  <brad@comstyle.com>

	* config.guess (*:OpenBSD:*:*): Remove defunct MIPS machines.
	(sgi:OpenBSD:*:*): Emit mips64, not mipseb.

	2004-08-11  Paul Eggert  <eggert@cs.ucla.edu>

	* config.guess (*:Darwin:*:*): If uname -p reports "unknown",
	assume the processor is a powerpc.  This is because coreutils
	uname (at least versions 4.5.7 through 5.2.1) outputs "unknown"
	in this case, due to a MacOS X bug that causes
	sysctl ((int[]) {CTL_HW, HW_MACHINE_ARCH}, 2, buffer, &bufsize, 0, 0)
	to return a negative number.
	Problem reported by Petter Reinholdtsen in:
	http://lists.gnu.org/archive/html/bug-gnu-utils/2003-02/msg00201.html

	2004-07-19  Ben Elliston  <bje@gnu.org>

	* config.guess (S7501:*:4.0:3.0): Handle NCR System V UNIX machine.

	2004-06-24  Ben Elliston  <bje@gnu.org>

	* config.guess: Update copyright years.
	* config.sub: Likewise.

	2004-06-22  Robert Millan  <robertmh@gnu.org>

	* config.guess (*:FreeBSD:*:*): Remove check for glibc (unneeded
	since GNU/kFreeBSD systems match *:GNU/*:*:* instead).

	2004-06-22  Stanley F. Quayle <stan@stanq.com>

	* config.guess (*:*VMS:*:*): New entry. Replaces
	Alpha:OpenVMS:*. Recognize and advertise all VMS flavors as dec
	manufacturer.

	2004-06-22  Ben Elliston  <bje@gnu.org>

	* config.guess: Cray fixes from Wendy Palm <wendyp@cray.com>.
	* config.sub: Likewise.

	2004-06-22  Ben Elliston  <bje@gnu.org>

	Reported by Hans-Peter Nilsson <hp@bitrange.com>:
	* config.sub: Correctly handle mmix-knuth and mmix-knuth-mmixware.

	2004-06-11  Ben Elliston  <bje@gnu.org>

	* config.guess (pegasos:OpenBSD:*:*): Remove.

	2004-06-11  Ben Elliston  <bje@gnu.org>

	From Wouter Verhelst <wouter@grep.be>:
	* config.guess (M68*:*:R3V[5678]:*): Detect R3V8.

	2004-06-11  Ben Elliston  <bje@gnu.org>

	* config.guess (luna88k:OpenBSD:*:*): New.

	2004-03-12  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config.guess (m32r*:Linux:*:*): New case.
	* config.sub: Handle m32rle.

	2004-03-12  Ben Elliston  <bje@wasabisystems.com>

	From Jens Petersen  <petersen@redhat.com>:
	* config.sub: Handle sparcv8.

	2004-03-03  Ben Elliston  <bje@wasabisystems.com>

	From Tom Smith <smith@cag.lkg.hp.com>:
	* config.guess: Version suffixes are equally significant on Tru64
	V4.* and V5.*, so do not ignore them on V5.*.  Handle a version
	prefix of "P" (patched kernel).

	2004-02-23  Tal Agmon  <Tal.Agmon@nsc.com>

	* config.sub: Add support for National Semiconductor CRX target.

2004-09-03  Janis Johnson  <janis187@us.ibm.com>

	* MAINTAINERS (Various Maintainers): Remove myself as web page
	maintainer, add myself as maintainer of build status lists.

2004-09-03  Jan Beulich  <jbeulich@novell.com>

	* configure.in: Remove target-libstdc++-v3 from noconfigdirs for
	*-*-netware, but add target-libmudflap.
	Consolidate *-*-netware targets (of which really only i?86 exists)
	into a single entry.
	* configure: Likewise.

2004-09-01  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (sorry): Remove.
	(clean-stage[+id+], clean-stage[+id+]-module): New targets.
	(cleanstrap targets): Depend on distclean, not distclean-stage1.
	(do-clean): Clean per-stage directories too.
	(do-distclean): Run distclean-stage1 too.
	(.NOTPARALLEL): Enable during toplevel bootstrap.
	(stage[+id+]-bubble): Enable parallel execution during
	the recursive invocation.
	* Makefile.in: Regenerate.

	Fix previous checkin:

	* Makefile.tpl: Move BOOT_CFLAGS above host makefile fragment
	include.
	* configure.in: Fix indentation.
	* configure: Regenerate.

2004-08-31  Robert Bowdidge <bowdidge@apple.com>

	* Makefile.in: Move BOOT_CFLAGS above host makefile fragment include.
	* configure.in: add test for powerpc-*-darwin* to specify makefile frag
	* configure: regenerate
	* config/mh-ppc-darwin: create file, override BOOT_CFLAGS for
	-mdynamic-no-pic


2004-08-31  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (build_modules): Add fixincludes.
	(dependencies): Make gcc depend on fixincludes.
	* configure.in (build_tools): Add fixincludes.
	(build_configdirs): Always include build_libs.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2004-08-30  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (bootstrap stages): Add 'lean' parameter.
	* Makefile.tpl (configure-stageN-*, all-stageN-*): Turned into
	phony targets; do not generate timestamp files.
	(distclean-stageN): Remove references to their timestamp files.
	(restageN, touch-stageN): Remove.
	(stageN-bubble): Rewritten.
	(compare): Support lean bootstraps.
	* Makefile.in: Regenerate.

	* configure.in: Only warn when bootstrapping but
	build != host or build != target.  Support lean bootstraps.
	* configure: Regenerate.

2004-08-26  Phil Edwards  <phil@codesourcery.com>

	* configure.in:  Give a better error message if GMP/MPFR are missing
	and a language needing them has been requested.
	* configure:  Regenerated.

2004-08-25  Phil Edwards  <phil@codesourcery.com>

	* configure.in:  Print a list of available language front-ends if
	a requested one is missing.  Tidy stray tab characters.
	* configure:  Regenerated.

2004-08-19  Michael Koch  <konqueror@gmx.de>

	* gcc/doc/install.texi: Update entry about automake for libjava.

2004-08-17  Robert Millan  <robertmh@gnu.org>

	* configure.in: In noconfigdirs check, match GNU/k*BSD with GNU/Linux
	(instead of FreeBSD).
	* configure: Regenerate.

2004-08-16  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in: Regenerate.
	* configure: Regenerate.

	* Makefile.def (bootstrap-stage): Rename extra_*_flags to
	stage_*_flags.
	* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
	for bootstrapped modules if toplevel bootstrap is going.
	(GCC bootstrap): Generate per-stage targets for all bootstrapped
	modules.  Adjust for changes in Makefile.def.  Enable several
	rules even in non-bootstrap mode, just to avoid peppering the
	template with unnecessary "@if/@endif gcc-bootstrap" pairs.
	(stage-[+prev+]-bubble): Remove.

	* Makefile.def (Dependencies): Depend on all-build-bison,
	all-build-flex, all-build-byacc, all-build-texinfo, rather
	than the host variations.
	* Makefile.tpl (BUILD_DIR_PREFIX): Remove.  Replace throughout
	with BUILD_SUBDIR.
	(BISON): Update for recent Bisons.
	(YACC): Fix typo.
	(cross): Depend on all-build.
	(all): Do not depend on all-build.
	(prebootstrap): Remove.
	(dep-kind): Accept separate prefixes for MODULE and ON variables.
	(Prebootstrap dependencies): Add them to the per-stage targets
	and to all-prebootstrap.
	* configure.in (build_configdirs): Always enable build_tools.
	(BUILD_DIR_PREFIX): Remove.

	* Makefile.def (gcc): Add target variable.
	(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
	* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
	in the recursive `make', instead of hardwiring `all'.
	(Autogenerated TARGET-* variables): New.

2004-08-13  Brian Booth  <bbooth@redhat.com>

	* MAINTAINERS: Remove myself from write-after-approval.

2004-08-12  Nathanael Nerode  <neroden@gcc.gnu.org>

	* src-release: Stop distributing mmalloc with gdb (which doesn't
	use it).
	* Makefile.def: GDB doesn't depend on mmalloc anymore.
	* Makefile.in: Regenerate.

2004-08-09  Mark Mitchell  <mark@codesourcery.com>

	* configure.in (arm*-*-eabi*): New target.
	* configure: Regenerate.

2004-08-06  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (bfd, opcodes, gcc, zlib): Mark as bootstrap module.
	(bison, byacc, flex, texinfo): Do not mark as bootstrap module.
	(Dependencies): New section.
	* Makefile.tpl (Dependencies): Generate from Makefile.def.
	(configure-target-[+module+]): Depend on maybe-all-gcc
	(all-prebootstrap): New name of all-bootstrap.  Changed throughout.
	(toplevel profiledbootstrap): Fix dependencies.
	* Makefile.in: Regenerate.

2004-08-03  Mark Mitchell  <mark@codesourcery.com>

	* configure.in (arm*-*-symbianelf*): Add ${libgcj} and
	target-libiberty to noconfigdirs.
	* configure: Regenerate.

2004-08-03  Paul Brook  <paul@codesourcery.com>

	* configure.in: Check for MPFR as well as GMP.
	* configure: Regenerate.

2004-08-01  Robert Millan  <robertmh@gnu.org>

	* configure.in: Turn mt-linux into mt-gnu. Use mt-gnu and enable
	libmudflap for all GNU-based systems (with Glibc).
	* configure: Regenerate.

2004-08-03 Paolo Bonzini <bonzini@gnu.org>

	* Makefile.def (host-modules): Add gcc.
	* Makefile.in: Regenerate.
	* Makefile.tpl (sorry): New rule.
	(configure-host, all-host, [+make_target+]-host, do-check,
	install-host): Do not add gcc as a special case.
	(host modules): Add a small special-casing for gcc.  Export
	extra_make_flags through the environment.
	(maybe-configure-gcc, configure-gcc, maybe-all-gcc, all-gcc,
	maybe-check-gcc, check-gcc, maybe-install-gcc, install-gcc,
	other recursive targets for gcc): Remove.

	(all, do-[+make_target+], do-check): Wrap between unstage and stage.
	(stage, unstage): New rules.
	(stage[+id+]-start, stage[+id+]-end, [+compare-target+],
	distclean-stage[+id+]): Use stage_current.
	([+bootstrap-target+], profiledbootstrap): Do not invoke manually
	the stage*-start rules.

2004-08-02  Geoffrey Keating  <geoffk@apple.com>

	* ltcf-cxx.sh: On Darwin, make archive multi-module, and don't
	use -all_load flag.

2004-08-02  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Sync from src, add noconfigdirs for crx-*-*.
	* configure: Regenerate.

2004-07-16  Toon Moene  <toon@moene.indiv.nluug.nl>

	* maintainer-scripts/gcc_release: Revert yesterday's change.

2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* MAINTAINERS: Add myself to write-after-approval.

2004-07-15  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libf2c: Removed.
	* gcc/gccbug.in: Updated because of libf2c removal.
	* maintainer-scripts/gcc_release: Ditto.

2004-07-09  Loren J. Rittle <ljrittle@acm.org>

	* configure.in: Build libmudflap by default on FreeBSD.
	* configure: Regenerated.

2004-07-09  Mark Mitchell  <mark@codesourcery.com>

	* configure.in: Do not build libmudflap by default on non-GNU/Linux
	systems.
	* configure: Regenerated.

2004-07-08 John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/16344
	* Makefile.tpl (profiledbootstrap): Build runtime libraries with
	feedback based compiler.
	* Makefile.in: Rebuilt.

2004-07-08  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.def (host_modules): Set bootstrap=true for flex.
	* Makefile.tpl (all-gcc): Depend on texinfo and flex.
	* Makefile.in: Rebuilt.

2004-07-07  Jan Hubicka  <jh@suse.cz>

	* MAINTAINERS: Add self as a profile feedback maintainer.

2004-07-05  Phil Edwards  <phil@codesourcery.com>

	* configure.in:  Do not prepend $srcdir to /dev/null in
	makefile fragments.
	* configure:  Regenerate.

2004-07-01  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (build_modules): Add bison, byacc, flex,
	m4, texinfo.
	(flags_to_pass): Add FLEX.
	* Makefile.tpl (BUILD_DIR_PREFIX, BASE_EXPORTS): New.
	(BUILD_EXPORTS, HOST_EXPORTS, BASE_TARGET_EXPORTS): Include it.
	(DEFAULT_YACC, USUAL_YACC, DEFAULT_LEX, USUAL_LEX, DEFAULT_M4,
	DEFAULT_MAKEINFO): Remove.
	(CONFIGURED_YACC, CONFIGURED_FLEX, CONFIGURED_BISON,
	CONFIGURED_LEX, CONFIGURED_M4, CONFIGURED_MAKEINFO): Substitute.
	(YACC, FLEX, BISON, LEX, M4, MAKEINFO): Define to look into
	objdir or else use configured tool.
	(all-build): New.
	(all): Depend on it.
	(Build module dependencies): Add.
	* Makefile.in: Regenerate.
	* configure.in: Better support for multiple build modules,
	matching what is done for host/target modules.  Do not look
	for "plausible" locations of build tools if Canadian cross.
	Use autoconf's AC_PROG_CC to find a C compiler.  Define
	BUILD_DIR_PREFIX.  Look for flex, makeinfo and m4.
	* configure: Regenerate.

2004-06-22  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (HOST_EXPORTS): Fix pasto.
	* Makefile.in: Regenerate.

2004-06-22  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (configure-build-[+module+],
	configure-[+module+], configure-target-[+module+]): Pass
	[+extra_configure_args+].
	(all-build-[+module+], all-[+module+], check-[+module+],
	install-[+module+], [+make_target+]-[+module+],
	all-target-[+module+], check-target-[+module+],
	install-target-[+module+], [+make_target+]-target-[+module+]):
	Pass [+extra_make_args+].
	(HOST_EXPORTS): Include the former GCC_HOST_EXPORTS.
	(GCC_HOST_EXPORTS): Remove.
	(configure-gcc, all-gcc, GCC_STRAP_TARGETS, profiledbootstrap,
	cross, check-gcc, check-gcc-c++, install-gcc,
	gcc-no-fixedincludes, [+make_target+]-gcc, stage[+id+]-bubble):
	Replace GCC_HOST_EXPORTS with HOST_EXPORTS.
	* Makefile.in: Regenerate.

2004-06-21  Matthew Sachs  <msachs@apple.com>

	* MAINTAINERS: Added self to write-after-approval.

2004-06-21  Christopher Faylor  <cgf@alum.bu.edu>

	* configure.in: Check for srcdir/winsup rather than build directory
	winsup.
	* configure: Regenerate.

2004-06-17  Corinna Vinschen  <vinschen@redhat.com>

	* configure.in: Don't build Cygwin native newlib if winsup
	directory is missing.  Emit warning instead.
	* configure: Regenerate.

2004-06-09  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (touch-stage[+id+]): New.
	(restage[+prev+]): Depend on touch-stage[+id+].

	* Makefile.tpl (RECURSE_FLAGS_TO_PASS): New.
	Use it throughout.

	* Makefile.def: Add profile and feedback bootstrap stages.
	Remove next field from bootstrap stages.
	* Makefile.tpl (LN, LN_S): Substitute.
	(stageN-start, stageN-end): Use double-colon rules, to
	provide a hook for additional setup commands.
	(distclean-stageN-gcc, restageN): Create dependencies from
	[+prev+], not from [+next+].
	(stageN-bubble): Add commands for successive stages from
	[+prev+], using double-colon rules.
	(all-stageN-gcc): Fix typo.
	(stagefeedback-start, profiledbootstrap): New.
	* Makefile.in: Regenerate.
	* configure.in: Call ACX_PROG_LN.
	* configure: Regenerate.

2004-06-08  Canqun Yang  <canqun@nudt.edu.cn>

	* MAINTAINERS (Write After Approval): Add myself.

2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>

	* MAINTAINERS (Write After Approval): Add myself.

2004-06-03  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Fix --enable-bootstrap breakage introduced in trees
	without gcc.
	* configure: Regenerate.

2004-06-01  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl: Fix typo.
	* Makefile.in: Regenerate.

2004-06-01  Paolo Bonzini <bonzini@gnu.org>

	* configure.in: Remove new- prefix from toplevel
	bootstrap targets.
	* configure: Regenerate.

2004-06-01  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (all.normal): Rename to all.
	(all): Replace with a rule to pick the default
	target from configure.
	(all-gcc, configure-gcc): Use conditionals to
	do nothing when toplevel bootstrap is going on.
	(GCC directory bootstrap) [gcc-bootstrap]: Disable.
	(Toplevel bootstrap) [gcc-no-bootstrap]: Disable.
	* configure.in: Support --enable-bootstrap.

	* Makefile.def: Remove new- prefix from toplevel
	bootstrap targets.
	* Makefile.tpl: Likewise.

	* Makefile.def: Add bootstrap_stage 4.  Add bootstrap2
	target.

	* Makefile.tpl (Toplevel bootstrap): Pass $(BASE_FLAGS_TO_PASS)
	$(RECURSE_FLAGS) to recursive invocation of make.

	* Makefile.in: Regenerate.
	* configure: Regenerate.

2004-05-30  Andreas Jaeger  <aj@suse.de>
	    Jim Wilson <wilson@specifixinc.com>

	* config-ml.in: Pass FFLAGS and ADAFLAGS for multilibs, handle F77
	like CC.

2004-05-27  Daniel Jacobowitz  <dan@debian.org>

	* configure.in: Fix sed invocation for GFORTRAN_FOR_TARGET.
	* configure: Regenerate.

2004-05-25  Daniel Jacobowitz  <drow@false.org>

	* Makefile.tpl (BUILD_EXPORTS, HOST_EXPORTS, GCC_HOST_EXPORTS)
	(STAGE_HOST_EXPORTS, BASE_TARGET_EXPORTS, RAW_CXX_TARGET_EXPORTS)
	(NORMAL_TARGET_EXPORTS): New macros.  Use them in all the recursive
	targets.
	* Makefile.in: Regenerate.

2004-05-24  Paolo Bonzini <bonzini@gnu.org>

	* configure.in: Test the ability to symlink directories.
	* configure: Regenerate.

	* Makefile.def (bootstrap-stage): New definitions.
	* Makefile.tpl (configure-stage1-gcc,
	configure-stage2-gcc, configure-stage3-gcc,
	all-stage1-gcc, all-stage2-gcc, all-stage3-gcc,
	new-bootstrap, new-cleanstrap, new-restage1, new-restage2,
	new-restage3, compare): Autogenerate, see Makefile.in
	entry for behavioral changes.
	(distclean-stage1, new-stage1-start, new-stage1-end,
	new-stage1-bubble, distclean-stage2, new-stage2-start,
	new-stage2-end, new-stage2-bubble, distclean-stage3,
	new-stage3-start, new-stage3-end): New autogenerated targets.
	(objext, prebootstrap, BOOT_CFLAGS,
	POSTSTAGE1_FLAGS_TO_PASS): Move above the autogenerated
	targets.

	* Makefile.in: Regenerate.
	(distclean-stage1, new-stage1-start, new-stage1-end,
	new-stage1-bubble, distclean-stage2, new-stage2-start,
	new-stage2-end, new-stage2-bubble, distclean-stage3,
	new-stage3-start, new-stage3-end): New targets.
	(all-stage1-gcc): Move prebootstrap dependency from here...
	(configure-stage1-gcc): ...to here.
	(new-bootstrap): Use bubble targets.
	(new-cleanstrap, new-restage1, new-restage2, new-restage3):
	Use per-stage distclean targets.
	(configure-stage1-gcc, configure-stage2-gcc,
	configure-stage3-gcc, all-stage1-gcc,
	all-stage2-gcc, all-stage3-gcc, new-bootstrap):
	Use new-stageN-start to prepare the tree.

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (host_modules): add libcpp.
	* Makefile.tpl: Add dependencies on and for libcpp.
	* Makefile.in: Regenerate.
	* configure.in: Add libcpp host module.
	* configure: Regenerate.

2004-05-21  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl: Whenever a recursive target is defined, wrap
	it in a special @if/@endif block, and prepare its maybe
	dependency in the @if/@endif block
	* configure.in: Instead of writing maybe dependencies, remove
	the @if/@endif statements, and remove the @if/@endif blocks
	that remain.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2004-05-20  Janis Johnson  <janis187@us.ibm.com>

	* MAINTAINERS (Various Maintainers): Add myself for compat testsuite.

2004-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR bootstrap/15120
	* libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on sh*.
	* */configure: Rebuilt.

2004-05-17  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.def, Makefile.tpl, configure.in: Remove all mention
	of libf2c.
	* configure, Makefile.in: Regenerate.

2004-05-13  Tobias Schlüter  <tobi@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2004-05-13  Diego Novillo  <dnovillo@redhat.com>

	Merge from tree-ssa-20020619-branch.

	* Makefile.def: Add libbanshee, libmudflap and libgfortran.
	* Makefile.tpl (BUILD_CONFIGDIRS): Add libbanshee.
	(HOST_GMPLIBS): Define.
	(HOST_GMPINC): Define.
	(TARGET_LIB_PATH): Add libmudflap.
	(GFORTRAN_FOR_TARGET): Define.
	(configure-build*): Export GFORTRAN.
	(configure-gcc): Export GMPLIBS and GMPINC.
	(all-gcc): Add maybe-all-libbanshee.
	(configure-target-libgfortran): Define.
	* Makefile.in: Regenerate.
	* configure.in (host_libs): Add libbanshee.
	(target_libraries): Add target-libmudflap and target-libgfortran.
	Add --with-libbanshee.
	Handle --disable-libmudflap.
	(*-*-freebsd*): Use with_gmp.
	Add $(libgcj) to noconfigdirs.
	* configure: Regenerate.
	* depcomp: New file.
	* MAINTAINERS: Add tree-ssa maintainers.

2004-05-04  Vladimir Makarov  <vmakarov@redhat.com>

	* MAINTAINERS (Various Maintainers): Add myself.

2004-04-30  Brian Ford  <ford@vss.fsi.com>

	* MAINTAINERS (Write After Approval): Add myself.

2004-04-29  Uros Bizjak  <uros@kss-loka.si>

	* MAINTAINERS (Write After Approval): Add myself.

2004-04-28  Paolo Bonzini  <bonzini@gnu.org>

	* config/acx.m4: Fix fastcompare support for new-bootstrap.
	* configure: Regenerate.

2004-04-27  Paolo Bonzini  <bonzini@gnu.org>

	Revert:
	2004-04-26  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (flags_to_pass): Remove *dir variables that
	are passed to the modules via TOPLEVEL_CONFIGURE_ARGUMENTS,
	as well as prefix and exec_prefix.
	* Makefile.in: Regenerate.

2004-04-26  Robert Millan  <robertmh@gnu.org>

	Add patches from libtool CVS.
	* libtool.m4: Add kfreebsd*-gnu and knetbsd*-gnu.
	* ltconfig: Likewise.
	* ltcf-c.sh: Likewise.
	* ltcf-cxx.sh: Likewise.
	* ltcf-gcj.sh: Likewise.

2004-04-26  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (host_modules): Mark with the bootstrap
	flag packages on which gcc depends.
	* Makefile.tpl (all-bootstrap): Use it.
	* Makefile.in: Regenerate.

2004-04-26  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (flags_to_pass): Remove *dir variables that
	are passed to the modules via TOPLEVEL_CONFIGURE_ARGUMENTS,
	as well as prefix and exec_prefix.
	* Makefile.in: Regenerate.

2004-04-26  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Invoke ACX_PROG_CMP_IGNORE_INITIAL.
	* configure: Regenerate.
	* config/acx.m4: Mutuate ACX_PROG_CMP_IGNORE_INITIAL from gcc.
	* gcc/Makefile.tpl (compare): Use the result of the test.
	* gcc/Makefile.in: Regenerate.

2004-04-23  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (all-stage1-gcc, all-stage2-gcc, all-stage3-gcc):
	Always relocate gcc and prev-gcc to the original names, even
	if the build fails.
	(new-cleanstrap, new-restage1, new-restage2, new-restage3):
	New targets.

2004-04-23  Laurent GUERBY <laurent@guerby.net>

	* MAINTAINERS: Update my email address.

2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.in (mips*-*-irix5*): Enable ld.
	* configure: Regenerate.

2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure: Regenerate.

2004-04-15  James E Wilson  <wilson@specifixinc.com>

	* Makefile.tpl (configure-[+module+], configure-gcc,
	configure-stage1-gcc, configure-stage2-gcc, configure-stage3-gcc):
	Set and export LDFLAGS.
	* Makefile.in: Regenerate.

2004-04-12  Michael Chastain  <mec.gnu@mindspring.com>

	* MAINTAINERS: Add myself to write-after-approval.

2004-04-09  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR bootstrap/14871
	* Makefile.tpl: If we don't have built-in-tree target tools,
	use the ones found by configure rather than hacking around with
	program_transform_name.
	* configure.in: Give Makefile.tpl the information necessary
	to do that.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR bootstrap/14760
	* configure.in: When computing baseargs, strip *all* copies of
	offending options.  Also, don't match/substitute the trailing space,
	so that this actually works when two similar options are separated by
	only one space.
	* configure: Regenerate.

2004-04-06  David Edelsohn  <edelsohn@gnu.org>

	* configure.in (powerpc-*-aix*): Remove target-libada from noconfigdirs.
	(rs6000-*-aix*): Same.
	* configure: Regenerate.

2004-04-05  Ranjit Mathew  <rmathew@hotmail.com>

	* MAINTAINERS: Add myself to write-after-approval.

2004-04-03  Bud Davis  <bdavis9659@comcast.net>

	* MAINTAINERS: Add myself to write-after-approval.

2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl (top level bootstrap support): Remove now-unneeded
	STRICT_WARN, WARN_CFLAGS flags passed down to make.
	* Makefile.in: Regenerate.

	* configure.in (top level bootstrap support): Rework --enable-werror
	to set @stage2_werror_flag@.
	* configure: Regenerate.
	* Makefile.tpl (top level bootstrap support): Pass
	@stage2_werror_flag@ down to configure in stages 2 and 3.
	* Makefile.in: Regenerate.

2004-03-23  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl (new-bootstrap): Set CC and CC_FOR_BUILD in configure
	for stages 2 and 3 as well as in make.  As a consequence, remove
	OUTPUT_OPTION (now detected by configure) from the flags passed down
	to make.
	* Makefile.in: Regenerate.

	* Makefile.tpl (new-bootstrap): Fix typo.
	* Makefile.in: Regenerate.

2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Rearrange by moving recursive_targets rules
	into their proper sections.
	* Makefile.tpl (top level bootstrap support): Move disabling
	of coverage flags from 'make' to 'configure'; improve comments.
	* Makefile.in: Regenerate.

	* Makefile.tpl (experimental top level bootstrap) Move stage1
	language setting from all- target to configure- target; disable
	intermodule optimization in stage 1; prevent gratuitous rebuilds
	of stage 1.
	* Makefile.in: Regenerate.
	* configure.in: Comma-separate stage 1 language list for top
	level bootstrap.
	* configure: Regenerate.

	* Makefile.tpl: Clean up experimental top level bootstrap support:
	note known problems; set CONFIG_SHELL; don't set BUILD_CC; relocate
	prev-gcc in configure- targets as well as all- targets.
	* Makefile.in: Regenerate.

2004-03-21  Kelley Cook  <kcook@gcc.gnu.org>

	* compile: New file imported from automake.

2004-03-17  Paolo Bonzini  <bonzini@gnu.org>

	* configure.in: Remove symbolic link section.
	* configure: Regenerate.
	* Makefile.tpl (links): Remove.
	* Makefile.in: Regenerate.

2004-03-15  Paolo Bonzini  <bonzini@gnu.org>
	    Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in (DEFAULT_YACC, DEFAULT_M4, DEFAULT_LEX):
	Set with AC_CHECK_PROGS.
	* configure.in: Fix comment typo from last patch.
	* configure: Regenerate.

2004-03-15  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Introduce experimental top level bootstrap support.
	* Makefile.in: Regenerate.
	* configure.in: Introduce support for top level bootstrap.
	* configure: Regenerate.

2004-03-12  Eric Botcazou  <ebotcazou@gcc.gnu.org>
	    Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/14522
	* configure.in: Cope with shells that do not support unquoted ^
	* configure: Regenerate.

2004-03-11  Eric Botcazou  <ebotcazou@gcc.gnu.org>
	    Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/14522
	* configure.in: Cope with shells that do not support nesting
	quotes inside quoted backquote substitutions.
	* configure: Regenerate.

2004-03-10  Andrew Pinski  <pinskia@physics.uc.edu>

	PR bootstrap/14522
	* configure.in: Fix escaping of $.
	* configure: Regenerate.

2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: Regenerate, since I forgot to while committing Paolo's
	changes.

2004-03-08  Paolo Bonzini  <bonzini@gnu.org>

	PR ada/14131
	Move language detection to the top level.
	* configure.in: Find default values for the tools as
	soon as possible.  Disable ada if GNAT is not found.
	Emit error message about missing languages.  Expand
	--enable-languages=all for the gcc subdirectory.

2004-03-10  Ben Elliston  <bje@gnu.org>

	* MAINTAINERS: Update my email address.

2004-03-05  David Edelsohn  <edelsohn@gnu.org>

	* ltconfig: Disable building static libraries if building shared
	libraries on AIX 5L.

2004-03-01  Richard Sandiford  <rsandifo@redhat.com>

	* configure.in (mips64*-*-linux*): Override mips*-*-linux* case
	and disable libgcj.
	* configure: Regenerated.

2004-03-01  Brian Booth  <bbooth@redhat.com>

	* MAINTAINERS: Add myself to write-after-approval.

2004-03-01  Paolo Bonzini  <bonzini@gnu.org>

	* MAINTAINERS: Add myself to write-after-approval.

2004-02-28  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR bootstrap/7087
	* Makefile.tpl: Guard XFOO sed statements better.
	* Makefile.tpl: Add dependency for configure-target-libada.
	* Makefile.in: Regenerate (incidentally fixes broken
	commit when libada-branch was merged).

2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>

	* MAINTAINERS: Add myself to write-after-approval.

2004-02-20  Andrew Pinski  <pinskia@physics.uc.edu>

	* MAINTAINERS: Add Nicola Pero and myself as libobjc
	maintainers.

2004-02-20  Andrew Cagney  <cagney@redhat.com>

	* config.guess: Update from version 2003-10-16 to 2004-02-16.
	* config.sub: Update from version 2003-11-03 to 2004-02-16.

2004-02-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR bootstrap/11932
	* mkinstalldirs, install-sh: Import from automake CVS HEAD.

2004-02-14  Jerry Quinn  <jlquinn@optonline.net>

	* MAINTAINERS: Added myself to write-after-approval.

2004-02-14  Michael Koch  <konqueror@gmx.de>

	* MAINTAINERS: Added myself to write-after-approval.

2004-02-13  Joseph S. Myers  <jsm@polyomino.org.uk>

	* MAINTAINERS: Move Steve Chamberlain to write-after-approval.  Move
	some OS port maintainers to OS port maintainers section.

2004-02-13  Frank Ch. Eigler  <fche@redhat.com>

	* MAINTAINERS: Add self.

2004-02-12  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS: Alphabetize.

2004-02-12  Paolo Bonzini  <bonzini@gnu.org>

	* MAINTAINERS: Remove myself.

2004-02-11  David Edelsohn  <edelsohn@gnu.org>

	* configure.in (powerpc-*-aix*): Add target-libada to noconfigdirs.
	(rs6000-*-aix*): Same.
	* configure: Regenerate.

2004-02-11  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.in (host): Add in missing $noconfigdirs to defines.
	* configure: Regenerate.

2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
	    Nathanael Nerode  <neroden@gcc.gnu.org>

	PR ada/6637, PR ada/5911
	Merge with libada-branch:
	* configure.in, Makefile.tpl, Makefile.def: Add target-libada,
	with appropriate dependencies. Add --enable-libada configure switch.
	* configure, Makefile.in: Regenerate.

2004-02-09  Paolo Bonzini  <bonzini@gnu.org>

	* MAINTAINERS: Add myself to write-after-approval.

2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.in: Don't pass --with-stabs on IRIX 5 either.
	* configure: Regenerate.

2004-02-04  Geoffrey Keating  <geoffk@apple.com>

	Merge from upstream:

	* ltmain.in: When setting IFS to '~', be careful about user
	arguments that contain '~'.

	2004-02-04  Peter O'Gorman  <peter@pogma.com>

	* ltmain.in (infer_tag): Move tag inferrence to a shell function.
	Also test $base_compile against $CC with escaped arguments. Bug
	reported by Geoff Keating <geoffk@apple.com>.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS: Remove i960 port.

2004-01-23  DJ Delorie  <dj@redhat.com>

	* Makefile.def (target_modules) [libiberty]: Don't stage.
	* Makefile.in: Rebuilt.

2004-01-20  Caroline Tice  <ctice@apple.com>

	* MAINTAINERS: Add myself to write-after-approval.

2004-01-19  Paolo Carlini  <pcarlini@suse.de>

	* MAINTAINERS: Update my email address.

2004-01-18  James A. Morrison  <ja2morri@uwaterloo.ca>

	* MAINTAINERS: Add myself to write-after-approval.

2004-01-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* MAINTAINERS: Remove entries without email address.

2004-01-15  Daniel Jacobowitz  <drow@mvista.com>

	* MAINTAINERS: Add myself to write-after-approval.

2004-01-15  Steven Bosscher  <stevenb@suse.de>

	* MAINTAINERS: Update my email address.

2004-01-14  Loren J. Rittle <ljrittle@acm.org>

	* Makefile.def (target_modules) [libtermcap, libiberty, zlib]: Stage.
	* Makefile.tpl (configure-target-[+module+]): Support stage.
	* Makefile.in: Rebuilt.

2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>

	* MAINTAINERS: Add myself as a libiberty MAINTAINER.

2004-01-10  Richard Sandiford  <rsandifo@redhat.com>

	* MAINTAINERS: Add myself as a MIPS maintainer.

2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Use ./config.cache, not config.cache.
	* configure: Regenerate.
	* Makefile.tpl: Special-casing not needed for GCC any more.
	* Makefile.in: Regenerate.

	* configure.in: Don't share a cache file for host dirs.
	* configure: Regenerate.

	* config-ml.in: Don't mess with the cache file.

2004-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* MAINTAINERS: Move myself from 'Write After Approval' to
	'CPU Port Maintainers' section as SPARC maintainer.

2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Make GCC use a separate config.cache.
	* Makefile.in: Regenerate.

	PR bootstrap/11932, PR bootstrap/11933
	(I don't know if it will fix either of them, but it relates
	to them.)
	* configure.in: Don't use shared config.cache for target
	directories.
	* configure: Regenerate.

2004-01-02  Dan Nicolaescu  <dann@ics.uci.edu>

	* MAINTAINERS: Add myself to 'Write After Approval' section.

2003-12-31  Roger Sayle  <roger@eyesopen.com>

	* configure.in (ia64*-*-hpux*): Disable building java libraries.
	* configure: Regenerated.

2003-12-23  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS: Remove the mn10200 maintainer.

2003-12-21  Bernardo Innocenti  <bernie@develer.com>

	* configure.in (*-*-uclinux): Exclude newlib, libgloss and rda.
	* configure: Regenerated.

2003-12-16  Jan Hubicka  <jh@suse.cz>

	* MAINTAINERS: Add myself as callgraph maintainer.

2003-12-08  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.in (raw_libstdcxx_flags): Remove the leading space.
	* configure: Regenerate.

2003-12-01  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* MAINTAINERS: Move myself from 'Bug database only accounts' to
	'Write After Approval' section. Update email.

2003-12-01  James Lemke <jim@wasabisystems.com>

	* MAINTAINERS (Write After Approval): Add myself.

2003-11-20  Matt Thomas  <matt@3am-software.com>

	* MAINTAINERS: Add myself as a vax port maintainer.

2003-11-20  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.tpl (BASE_FLAGS_TO_PASS): Pass along CONFIG_SHELL.
	(configure-build-[+module+], configure-[+module+]): Likewise.
	(configure-target-[+module+], configure-gcc, config.status): Likewise.
	* Makefile.in: Regenerate.

2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* libtool.m4: Sync darwin bits from libtool cvs to build a gcc with
	shared/dylibed libraries.
	* ltmain.sh: Likewise.
	* ltcf-c.sh: Likewise, disable shared library build for OS-X < 10.3.
	* ltcf-cxx.sh: Likewise.
	* ltcf-gcj.sh: Likewise.
	* ltconfig: Likewise.

2003-11-17  Stan Cox  <scox@redhat.com>

	* MAINTAINERS: Add myself as iq2000 port maintainer.

2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>

	* Makefile.tpl (EXTRA_GCC_FLAGS): Pass BOOT_ADAFLAGS.
	* Makefile.in: Regenerate.

2003-11-03  Ulrich Weigand  <uweigand@de.ibm.com>

	* config.sub: Update to 2003-11-03 version.

2003-10-20  Phil Edwards  <phil@codesourcery.com>

	* configure.in (*-*-vxworks):  Add target-libiberty to noconfdirs.
	* configure:  Regenerate.

2003-10-20  Nicolas Pitre <nico@cam.org>

	* MAINTAINERS: Add myself to 'Write After Approval' section.

2003-10-20  Arnaud Charlet  <charlet@act-europe.fr>

	* MAINTAINERS (Various maintainers: Ada front end): Added myself.

2003-10-19  Joseph S. Myers  <jsm@polyomino.org.uk>

	* MAINTAINERS: Update my email address.

2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config-ml.in (multi-do): Pass MULTIFLAGS to subdir makes.

2003-10-17 Ralph Loader  <rcl@ihug.co.nz>

	* MAINTAINERS: Add myself to 'Write After Approval' section.

2003-10-16  Bernardo Innocenti  <bernie@develer.com>

	* config.guess: Update to 2003-10-16 version.
	* config.sub: Update to 2003-10-16 version.

2003-10-15 David Daney  <ddaney@avtrex.com>

	* MAINTAINERS: Added myself to 'Write After Approval' section.

2003-10-15  Falk Hueffner  <falk@debian.org>

	* MAINTAINERS: Move myself from 'Bug database only accounts' to
	'Write After Approval' section. Update email.

2003-10-14  Roger Sayle  <roger@eyesopen.com>

	* MAINTAINERS: Move myself from 'Write After Approval' to
	'Various Maintainers' section as middle-end maintainer.

2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Make GCC_FLAGS_TO_PASS a superset of
	HOST_FLAGS_TO_PASS.
	* Makefile.in: Regenerate.

2003-10-11  Bernardo Innocenti  <bernie@develer.com>

	* config.guess: Update to 2003-10-07 version.
	* config.sub: Update to 2003-10-07 version.

2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* ltcf-cxx.sh (irix5*, irix6*): Prefix -soname and its arg with ${wl}.
	* ltconfig (irix5*, irix6*): Don't override version_type.

2003-10-05  Mohan Embar  <gnustuff@thisiscool.com>

	* configure.in: Allow explicit specification of CFLAGS_FOR_BUILD.
	* configure: Rebuilt
	* Makefile.tpl: Use CFLAGS_FOR_BUILD computed by configure
	* Makefile.in: Rebuilt

2003-10-03  H.J. Lu  <hongjiu.lu@intel.com>

	* ltconfig (sys_lib_search_path_spec): Fix a typo for HPUX.

2003-09-30  Carlo Wood  <carlo@alinoe.com>

	* MAINTAINERS (Write After Approval): Add myself.

2003-09-29  Paul Koning  <ni1d@arrl.net>

	* MAINTAINERS: Move myself from "Write After Approval"
	to CPU platform maintainers for pdp11 platform.

2003-09-23  Andreas Tobler  <a.tobler@schweiz.ch>

	* MAINTAINERS: Move myself from 'Write After Approval' to
	'Various Maintainers' section as libffi testsuite maintainer.

2003-09-21  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Pass a computed --program-transform-name
	to subconfigures.
	* configure: Regenerated.

2003-09-20  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Don't pass down obsolete ENQUIRE variable.
	* Makefile.in: Regenerate.

	* Makefile.tpl: Don't pass (unused) DLLTOOL or WINDRES to gcc.
	* Makefile.in: Regenerate.

2003-09-19  Ziemowit Laski  <zlaski@apple.com>

	* MAINTAINERS: Move myself from 'Write After Approval'
	to 'Various Maintainers' (objective-c) section.

2003-09-17  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in (TOPLEVEL_CONFIGURE_ARGUMENTS, baseargs): Fix
	quoting.
	* configure: Regenerated.

2003-09-16  Joel Brobecker  <brobecker@gnat.com>

	* MAINTAINERS (Write After Approval): Add myself to write after
	approval list.

2003-09-16  Dorit Naishlos  <dorit@il.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2003-09-09  Ian Lance Taylor  <ian@wasabisystems.com>

	* MAINTAINERS: Update my e-mail address.

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

	* libtool.m4 (LD): Correct powerpc64 host match.

2003-09-06  James E Wilson  <wilson@tuliptree.org>

	* MAINTAINTERS: Update my affiliation and email address.

2003-09-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* MAINTAINERS (Write After Approval): Add myself.

2003-09-04  DJ Delorie  <dj@redhat.com>

	* configure: Regenerate.

2003-09-04  Robert Millan  <robertmh@gnu.org>

	* configure.in: Match GNU/KFreeBSD with new kfreebsd*-gnu triplet.

2003-09-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in: Ensure arguments to sed are properly spaced.
	* configure: Regenerate.

2003-08-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Update my e-mail address.

2003-08-28  Mohan Embar  <gnustuff@thisiscool.com>

	* MAINTAINERS (Write After Approval): Add myself.

2003-08-27  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Set RAW_CXX_FOR_TARGET if unset.
	* configure: Regenerated.

2003-08-23  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* MAINTAINERS: Update my email address.

2003-08-23  Phil Edwards  <pme@gcc.gnu.org>

	* configure.in:  Use newline instead of semicolon when assuming
	shell arguments in a for loop.
	* configure:  Regenerated.

2003-08-22  Jason Eckhardt  <jle@rice.edu>

	* MAINTAINERS: Resurrect the i860 maintainer.

2003-08-20  Geoffrey Keating  <geoffk@apple.com>

	PR 8180
	* configure.in: When testing with_libs and with_headers, treat
	'no' as unset.  Based on a patch by Dan Kegel <dank@kegel.com>.
	* configure: Regenerate.

	* configure.in (TOPLEVEL_CONFIGURE_ARGUMENTS): Quote properly for
	make, shell, etc.
	(baseargs): Likewise.
	* configure: Regenerate.

2003-08-20  Bernardo Innocenti  <bernie@develer.com>

	* MAINTAINERS (Write After Approval): Add myself.

2003-08-19  Geoffrey Keating  <geoffk@apple.com>

	* configure.in: Disable libgcj for darwin not on powerpc.
	* configure: Rebuild.

2003-08-14  Alexandre Duret-Lutz  <adl@gnu.org>

	* config-ml.in, symlink-tree: Add license.

2003-08-03  Richard Stallman  <rms@gnu.org>
	    Eben Moglen  <moglen@columbia.edu>

	* README.SCO: New file.

2003-08-01  Matt Kraai  <kraai@alumni.cmu.edu>

	* Makefile.tpl (check, check-c++): Express dependencies using
	dependencies rather than commands.
	* Makefile.in: Regenerate.

2003-08-01  Andrew Cagney  <cagney@redhat.com>

	* configure.in (noconfigdirs): Do not add GDB when m32r-*-*.
	* configure: Ditto.

2003-07-31  Geoffrey Keating  <geoffk@apple.com>

	* Makefile.tpl (libsubdir): Use gcc instead of gcc-lib.
	* Makefile.in: Update.

2003-07-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.in: Enable libgcj for darwin.
	* configure: Rebuild.

2003-07-29  Phil Edwards  <pme@gcc.gnu.org>

	* config-ml.in:  Use ac_configure_args directly instead of
	ml_arguments.  Only set ml_norecursion if --no[-]recursion is
	actually seen.

2003-07-27  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Use 'mkinstalldirs' rather than 'mkdir' when
	creating target and build subdirs to build all parent dirs as needed.
	* Makefile.in: Rebuild.
	* configure.in: Don't build dirs explicitly here.
	* configure: Rebuild.

2003-07-26  Paul Brook  <paul@nowt.org>

	* MAINTAINERS (fortran 95): Add myself, Steven Bosscher and Toon Moene.

2003-07-22  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.tpl (all-make): Depend on intl.
	* Makefile.in: Rebuilt.

2003-07-20  Phil Edwards  <pme@gcc.gnu.org>

	* install-sh:  Update to newer upstream versions (associated with
	aclocal 1.7).
	* mkinstalldirs:  Likewise.
	* missing:  Likewise, plus $1Help2man -> $1 typo fix.

2003-07-16  Andrew Pinski  <pinskia@gcc.gnu.org>

	* MAINTAINERS: Move self from Bug database only accounts
	to write-after-approval.

2003-07-16  Nathanael Nerode  <neroden@gcc.gnu.org>

	* config.if: Remove unused libc_interface determination.

2003-07-14  Nathanael Nerode  <neroden@gcc.gnu.org>

	* MAINTAINERS: Move self from write-after-approval to
	build machinery (*.in).

2003-07-13  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR bootstrap/11273
	PR bootstrap/11408
	* Makefile.tpl: Set INSTALL and friends using autoconf.  Remove
	unused INSTALL_PROGRAM_ARGS.
	* configure.in: Use AC_PROG_INSTALL.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2003-07-13  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS: Alphabetize.

2003-07-10  Alexandre Oliva  <aoliva@redhat.com>

	* configure: Rebuilt.
	2001-09-26  Alexandre Oliva  <aoliva@redhat.com>
	* configure.in (noconfigdirs) [am33_2.0-*-linux*]: Don't build
	newlib nor libgloss.
	Wed May  9 10:07:19 2001  Alexandre Oliva  <aoliva@redhat.com>
	* configure.in (am33_2.0-*-linux*): Added.

2003-07-09  Bob Wilson  <bob.wilson@acm.org>

	* configure.in: Add ${libgcj} to noconfigdirs for xtensa-*-* targets.
	* configure: Regenerate.

2003-07-07  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.tpl (configure-gcc): Depend on maybe-configure-intl.
	* Makefile.in: Regenerate.

2003-07-04  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.tpl (all-bootstrap): Depend on maybe-all-intl.
	* Makefile.in: Regenerate.

2003-07-04  H.J. Lu <hongjiu.lu@intel.com>

	* Makefile.tpl: Replace PWD with PWD_COMMAND.
	* Makefile.in: Regenerated.

	* config-ml.in: Replace PWD with PWD_COMMAND.

2003-07-04  Zack Weinberg  <zack@codesourcery.com>

	* intl: New directory; see intl/ChangeLog for details.
	* ABOUT-NLS, config.rpath: Import from gettext 0.12.1.
	* Makefile.tpl: all-gcc depends on maybe-all-intl.
	* Makefile.in: Regenerate.

2003-06-27  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Clean up config-lang.in handling.  Delete
	useless assignment to "subdirs".
	* configure: Regenerate.

2003-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Rename 'target_libs' to 'target_libraries'.
	Remove useless reference to 'target_libs'.
	* configure: Regenerate.

2003-06-23  Keith Seitz  <kseitz@sources.redhat.com>

	* Makefile.tpl: Add maybe-configure-itcl to configure-gdb.
	* Makefile.in: Regenerate.

2003-06-23  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.def: Introduce flags_to_pass.
	* Makefile.tpl: Generate BASE_FLAGS_TO_PASS using it.
	* Makefile.in: Regenerate.

2003-06-23  Hans-Peter Nilsson  <hp@bitrange.com>

	* configure.in (noconfigdirs) <cris-*-*>: Disable target-newlib
	and target-libgloss.
	<d30v-*-*, fr30-*-*, i960-*-*, m32r-*-*>: Disable gdb.
	<h8300*-*-*>: Disable libf2c and ${libgcj}.
	* configure: Regenerate.

2003-06-17  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in: Update testsuite_flags to new location.
	* configure. Regenerate.

2003-06-18  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Remove BUILD_CC stuff.
	* Makefile.in: Regenerate.

2003-06-17  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS (Write After Approval): Remove Andrew Haley.

2003-06-16  Graeme Peterson <gp@qnx.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	* config.guess: Update to 2003-06-12 version.
	* config.sub: Update to 2003-06-13 version.

2003-06-12  H.J. Lu <hongjiu.lu@intel.com>

	* config.guess: Update to 2003-06-06 version.
	* config.sub: Update to 2003-06-06 version.

2003-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.in: Don't pass --with-stabs for mips*-sgi-irix6*o32.
	* configure. Regenerate.

2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Disable serial configure by default.
	* configure: Regenerate.
	* Makefile.tpl: Abolish .NOTPARALLEL.
	* Makefile.in: Regenerate.

	* Makefile.tpl: Replace {build,host,target}_canonical by
	{build,host,target}.
	* Makefile.in: Regenerate.

	* Makefile.tpl: Fix stupid pasto.
	* Makefile.in: Regenerate.

2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Remove bogus conditional.
	* Makefile.in: Regenerate.

2003-06-05  Jan Hubicka  <jh@suse.cz>

	* Makefile.tpl (profiledbootstrap): New target.
	* Makefile.in (profiledbootstrap): New target.

2003-06-05  Wolfgang Bangerth  <bangerth@dealii.org>

	* MAINTAINERS (Bugzilla only): Add Dara Hazeghi and Andrew
	Pinski. Remove user names from other bugzilla-only maintainers.

2003-06-03  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Make 'recursive targets' using autogen rather
	than shell loop.  Remove duplicate 'clean' targets and false
	comments.
	* Makefile.def: Add systematic dependencies to 'recursive' targets.
	Add systematic method of specifying missing targets in subdirs.
	Add copyright boilerplate.
	* Makefile.in: Regenerate.
	* configure.in: Add 'recursive targets' to maybe list.
	* configure: Regenerate.

	* MAINTAINERS: "GNATS only" -> "Bug database only".

	* Makefile.tpl: Rename [+target+] to [+make_target+].
	* Makefile.def: Rename 'target' to 'make_target'.

2003-05-31  Neil Booth  <neil@daikokuya.co.uk>

	* MAINTAINERS: Add self as options handling maintainer.

2003-05-28  Michael Meissner  <gnu@the-meissners.org>

	* MAINTAINERS: Remove myself as m32r/v850 maintainer, since it has
	been too long since I touched those ports.

2003-05-28  DJ Delorie  <dj@redhat.com>

	* Makefile.tpl: Make maybe-check-gcc .PHONY.
	* Makefile.in: Regenerate.

2003-05-21  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* configure.in: Use curly braces in the definition of tooldir.
	* configure: Regenerate.

2003-05-21  DJ Delorie  <dj@redhat.com>

	* Makefile.tpl (configure-target-libiberty): Depend only on gcc, not
	newlib or libgloss.
	* Makefile.in: Regenerate.

2003-05-21  DJ Delorie  <dj@redhat.com>

	* Makefile.tpl: Add missing empty maybe-check-gcc target.
	* Makefile.in: Regenerate.

2003-05-20  Ian Lance Taylor  <ian@airs.com>

	* MAINTAINERS: Update my e-mail address.

2003-05-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Switch more things to use maybe dependencies.
	* Makefile.tpl: Switch more things to use maybe dependencies.
	Factor out common code from autogen IF statements.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2003-05-14  Kelley Cook  <kelleycook@wideopenwest.com>

	* configure.in: Accept i[3456789]86 for machine type.
	* configure: Regenerate.

2003-05-18  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Switch more things to use maybe dependencies.
	Rearrange a little.  Use GCC_TOPLEV_SUBDIRS.
	* configure: Regenerate.
	* Makefile.tpl: Switch more things to use maybe dependencies.
	* Makefile.in: Regenerate.

2003-05-16  Andreas Schwab  <schwab@suse.de>

	* Makefile.tpl (install-opcodes): Define.
	* Makefile.in: Rebuild.

2003-05-13  Andreas Jaeger  <aj@suse.de>

	* config.guess: Update to 2003-05-09 version.
	* config.sub: Update to 2003-05-09 version.

2003-05-13  Michael Eager <eager@mvista.com>

	* configure.in: Correct sed script so that options in quotes are not
	deleted.
	* configure: Rebuild.

2003-05-12  Corinna Vinschen  <corinna@vinschen.de>

	* configure.in (FLAGS_FOR_TARGET): Remove $$s/newlib/libc/sys/cygwin
	and $$s/newlib/libc/sys/cygwin32 include paths.
	* configure: Ditto.

2003-05-12  Michael Meissner  <gnu@the-meissners.org>

	* MAINTAINERS: Update my email addresses.

2003-05-06  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config-ml.in: Propagate INSTALL variables.

2003-05-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* MAINTAINERS: Remove duplicate entries in Write After Approval.

2003-05-02  Chris Demetriou  <cgd@broadcom.com>

	* Makefile.tpl: Require "makeinfo" from texinfo 4.2 or later.
	* Makefile.in: Regenerate.

2003-05-02  Wolfgang Bangerth  <bangerth@dealii.org>

	* MAINTAINERS (GNATS only): Add Falk Hueffner.

2003-04-30  Wolfgang Bangerth  <bangerth@dealii.org>

	* MAINTAINERS (GNATS only): Add Giovanni Bajo.

2003-04-27  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.tpl: Clean $(BUILD_SUBDIR).
	* Makefile.in: Regenerated.

2003-04-25  Wolfgang Bangerth  <bangerth@dealii.org>

	* MAINTAINERS (Write After Approval): Upgrade myself from
	GNATS only to write-after-approval. Update my mail address.

2003-04-25  Loren J. Rittle <ljrittle@acm.org>

	(OS Port Maintainers: freebsd): Add myself.

2003-04-22  Mark Mitchell  <mark@codesourcery.com>

	* MAINTAINERS (java): Remove Alexandre Petit-Bianco.

2003-04-22  Kean Johnston  <jkj@sco.com>

	* MAINTAINERS (SCO ports): Added myself.

2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>

	* MAINTAINERS (gcov): Add myself and Jan Hubicka.

2003-04-19  Kean Johnston  <jkj@sco.com>

	* MAINTAINERS (Write After Approval): Add myself.

2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* Makefile.tpl (MAKEINFOFLAGS): Default to --split-size=5000000.
	* Makefile.in: Regenerate.

2003-04-18  Jakub Jelinek  <jakub@redhat.com>

	* configure.in (powerpc64*-*-linux*): Remove.
	* configure: Rebuilt.

2003-04-17  Phil Edwards  <pme@gcc.gnu.org>

	* Makefile.tpl (GCC_STRAP_TARGETS):  New variable containing all the
	previous bootstrap targets, plus bubblestrap, quickstrap, cleanstrap,
	and restrap.
	* Makefile.in:  Regenerate.

2003-04-16  Richard Earnshaw  <rearnsha@arm.com>

	* configure.in (arm-*-netbsdelf*): Enable building java libraries.
	* configure: Regenerated.

2003-04-15  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS: Remove myself as windows/cygwin/mingw maintainer.

2003-04-13  Nick Clifton  <nickc@redhat.com>

	* config-ml.in: Remove support for --disable-aix removing
	call-aix multilibs.

2003-04-10  Alexandre Oliva  <aoliva@redhat.com>

	* libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on mips*.
	* */configure: Rebuilt.

2003-04-08  Joel Sherrill  <joel@oarcorp.com>

	* MAINTAINERS: Add my email address.

2003-03-17  Olivier Hainque  <hainque@act-europe.fr>

	* MAINTAINERS (Write After Approval): Add myself.

2003-03-14  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Move .NOEXPORT, MAKEOVERRIDES back down.
	* Makefile.in: Regenerate.

2003-03-14  Michael Chastain  <mec@shout.net>

	* Makefile.in: Regenerate with correct Makefile.def.

2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Move .NOEXPORT, MAKEOVERRIDES up.  Delete unused
	Make macro.
	* Makefile.in: Regenerate.
	* configure.in: Clean up gxx_include_dir logic.
	* configure: Regenerate.

2003-03-12  Ansgar Esztermann  <ansgar@thphy.uni-duesseldorf.de>

	* MAINTAINERS (Write After Approval): Add myself.

2003-03-10  Ben Elliston  <bje@wasabisystems.com>

	* MAINTAINERS: Update my mail address.

2003-03-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* configure.in (gxx_include_dir): Fix typo.
	* configure: Regenerated.

2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Reindent.
	* Makefile.in: Regenerate.
	* configure.in: Reindent.  Don't set unused variables.
	* configure: Regenerate.

2003-03-04  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Include $(build_tooldir)/sys-include in
	FLAGS_FOR_TARGET.
	* configure: Regenerated.

2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Always pass down RANLIB.
	* Makefile.in: Regenerate.

	* Makefile.tpl: Don't set unused enable_shared, enable_threads macros.
	* Makefile.in: Regenerate.
	* configure.in: Remove unused logic relating to --enable-shared
	and --enable-threads.  Remove bogus comments.  Remove redundant
	noconfigdirs.
	* configure: Regenerate.

	* configure.in: Replace ${libstdcxx_version} by its value.
	Remove reference to mh-dgux.
	* configure: Regenerate.

2003-03-03  Kevin Buettner  <kevinb@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2003-02-28  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Rearrange.
	* Makefile.in: Regenerate.

2003-02-25  Uwe Stieber <uwe@wwws.de>

	* configure.in: Add support for kaOS as cross build target system.
	* configure: Regenerated.

2003-02-24  Steven Bosscher  <steven@gcc.gnu.org>

	* MAINTAINERS (Write after approval): Add myself.

2003-02-21  James E Wilson  <wilson@tuliptree.org>

	* MAINTAINERS: Update my email address.

2003-02-21  Zack Weinberg  <zack@codesourcery.com>

	* MAINTAINERS: Add self to blanket write privs. section.

2003-02-20  Sean McNeil  <sean@blue.mcneil.com>

	* Makefile.tpl: Add definition of CPPFLAGS to pass into
	configure-target-* as some target builds may require additional
	flags for preprocessor tests.
	* Makefile.in: Regenerated.

2003-02-19  Alexandre Oliva  <aoliva@redhat.com>

	* libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld.
	* ltconfig: Handle it.
	* ltcf-cxx.sh: Use with_gnu_ld passed as a shell variable instead of
	auto-detecting it.

	* ltcf-cxx.sh: Replace $linker_flags with $compiler_flags wherever
	it is used as argument to $CC.
	* ltcf-gcj.sh: Likewise.

	* configure.in: Introduce --enable-maintainer-mode.
	* configure: Rebuilt.
	* Makefile.tpl (Makefile.in, configure): Enable dependencies only
	for maintainer mode.
	* Makefile.in: Rebuilt.

2003-02-18  Jason Merrill  <jason@redhat.com>

	* Makefile.tpl (check-c++): Allow parallelism.

2003-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* MAINTAINERS: Remove John Carr (who never actually had access to
	gcc.gnu.org).

2003-02-15  Geoffrey Keating  <geoffk@apple.com>

	* configure.in (*-*-darwin*): Rename from powerpc*-*-darwin*,
	don't configure target-libobjc.
	* configure: Regenerate.

2003-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.tpl (RANLIB): Define.
	* Makefile.in: Regenerate.

2003-02-08  Laurynas Biveinis  <laurynas.biveinis@mif.vu.lt>

	* MAINTAINERS: Update my email.

2003-02-06  Keith R Seitz  <keiths@redhat.com>

	* Makefile.def: Remove "snavigator", "grep", and "db" modules.
	* Makefile.tpl: Remove "all-snavigator" and "all-grep".
	* Makefile.in: Regenerated.
	* configure.in: Remove all traces of snavigator, db, and grep.
	* configure: Regenerated.

2003-02-06  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* MAINTAINERS: Remove duplicate entry for Bernd Schmidt from Write
	After Approval.

2003-02-02  Christian Cornelssen  <ccorn@cs.tu-berlin.de>

	* MAINTAINERS (Write after approval): Add myself.

2003-01-31  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.tpl (all-sid): Add libiberty/bfd/opcodes dependencies.
	* Makefile.in: Regenerated.

2003-01-30  Roger Sayle  <roger@eyesopen.com>

	* config.guess: Updated to 2003-01-30's version.
	* config.sub: Updated to 2003-01-28's version.

2003-01-30  Alexandre Oliva  <aoliva@redhat.com>

	* config.if: If gcc_version is already set, just use it.  Don't set
	gcc_version_trigger if it's already set, otherwise set it to
	gcc/version.c, but only if the file exists.  If it is not set and
	gcc/version.c does not exist, try to extract the version number from
	$CC.

2003-01-29  Andreas Tobler  <a.tobler@schweiz.ch>

	* MAINTAINERS: Add myself to write-after-approval list.

2003-01-27  Phil Edwards  <pme@gcc.gnu.org>

	* configure.in:  Revert 24Jan change.
	* configure:  Regenerate.

2003-01-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* MAINTAINERS: Remove incorrect entry for Paul Eggert.  Fix
	entry of HJ Lu.

2003-01-23  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Revert previous change.
	* configure: Regenerate.

2003-01-23  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Make rda native-only.
	* configure: Regenerate.

2003-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* MAINTAINERS: Move myself from GNATS-only-accounts to
	write-after-approval.

2003-01-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Add missing \.
	* configure: Rebuilt.

2003-01-17  Jakub Jelinek  <jakub@redhat.com>

	* configure.in (baseargs): Avoid using \| in sed regular
	expressions.
	* configure: Rebuilt.

2003-01-16  Jakub Jelinek  <jakub@redhat.com>

	* configure.in (baseargs): Remove all supported forms of
	--cache-file, --srcdir, --host, --build and --target options
	from argument lists.
	* configure: Rebuilt.

2003-01-15  Josef Zlomek  <zlomekj@suse.cz>

	* MAINTAINERS: Add myself to write-after-approval list.

2003-01-15  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (noconfigdirs): Don't skip gas on IRIX 6.
	* configure: Rebuilt.

2003-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Substitute TOPLEVEL_CONFIGURE_ARGUMENTS.
	* Makefile.tpl: Pass TOPLEVEL_CONFIGURE_ARGUMENTS to gcc.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2003-01-09  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in: Remove Makefile in build, host and target modules
	unless configure was run with --no-recursion.
	* configure: Rebuilt.

2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>

	* Makefile.tpl (BASE_FLAGS_TO_PASS): Also pass DESTDIR.
	(install-info, dir.info): Prepend $(DESTDIR) to $(infodir).
	* Makefile.in: Regenerate.

2003-01-08  Chris Demetriou  <cgd@broadcom.com>

	* config.guess: Update to 2003-01-03 version.
	* config.sub: Update to 2003-01-03 version.

2003-01-07  Christopher Faylor  <cgf@redhat.com>

	* configure: Regenerate with proper autoconf 2.13.

2003-01-07  Christopher Faylor  <cgf@redhat.com>

	* configure.in: Add AC_PREREQ for consistency.
	* configure: Regenerate.

2003-01-06  Andrew Cagney  <ac131313@redhat.com>

	* configure.in (GDB_TK): Add tcl directories conditional on
	gdb/gdbtk directory being present.
	* configure: Regenerate.

2003-01-04 John David Anglin  <dave.anglin@nrc.ca>

	* configure.in (LD): Improve test for gcc.  Try to set LD to the ld used
	by gcc if LD is not defined and we are not doing a Canadian Cross.
	* configure: Rebuilt.

2002-12-31  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.def (target_modules) [libffi]: Allow installation.

2002-12-31  Andreas Schwab  <schwab@suse.de>

	* configure.in: Fix use of $program_transform_name.
	* configure: Regenerated.

2002-12-30  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in (baseargs): Don't remove first configure argument.
	* configure: Regenerated.

2002-12-29  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.tpl (local-distclean): Don't remove...
	(multilib.ts): ... this.  Moved into...
	(multilib.out): ... this.  Don't use sub-make.
	($(BUILD_SUBDIR)/[+module+]/Makefile, [+module+]/Makefile,
	$(TARGET_SUBDIR)/[+module+]/Makefile, gcc/Makefile): Moved into...
	(configure-build-[+module+], configure-[+module+],
	configure-target-[+module+], configure-gcc): ... these.  Test
	for Makefile existence.  Drop config.status from dependencies.
	* Makefile.in: Rebuilt.
	* configure.in: Move gcc-version-trigger to the end of
	ac_configure_args.  Add comments to maybedep.tmp and
	serdep.tmp.  Introduce --disable-serial-configure.  Remove
	nonopt from baseargs, matching and removing corresponding
	whitespace while at it.
	* configure: Rebuilt.

2002-12-28  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (host_configargs): Replace reference to
	no-longer-defined buildopts with --build=${build_alias}.
	* configure: Rebuilt.

	* Makefile.tpl ($(NOTPARALLEL)): Move to the end.  Bring uses of
	program_transform_name to standard idiom.
	(AUTOGEN, AUTOCONF): Define.
	(Makefile.in): Use $(AUTOGEN).
	(Makefile): Depend on config.status, and use autoconf-style rule to
	build it.  Move original commands to...
	(config.status): ... this new target.
	(configure): Add $(srcdir).  Depend on config/acx.m4.  Use
	$(AUTOCONF).
	* Makefile.in: Rebuilt.

2002-12-28  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Fix dramatic bustage due to change in
	program_transform_name.
	* Makefile.in: Regenerate.

	* configure.in: Remove unnecessary PATH setting.
	* configure: Regnerate.

	* configure.in: Don't default to unprefixed tools unless
	the native tools will work.
	* configure: Regenerate.

	* configure.in: Convert to autoconf script.  Blow away lots
	of now-redundant Makefile fragments.
	* configure: Generate using Autoconf.
	* Makefile.tpl: Rewrite to reflect autoconfiscation.
	* Makefile.in: Regenerate.

2002-12-27  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: Fix stupid bug where RANLIB was mistakenly included.

	* configure.in: Rename (buildargs, hostargs, targargs) to
	(build_configargs, host_configargs, target_configargs).

	* configure.in: Move logic out of sed statement.

	* configure: Remove unneeded 'export's.  Make CC_FOR_TARGET,
	CXX_FOR_TARGET, GCJ_FOR_TARGET substituted in configure.in only.

2002-12-25  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* config.sub: Import from master repository
	* config.guess: Ditto

2002-12-24  Andreas Schwab  <schwab@suse.de>

	* Makefile.tpl (multilib.out): Fix missing space.
	* Makefile.in: Regenerate.

2002-12-23  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Use shared multilib.out.  Use move-if-change for it.
	Convert (cd foo; make) to (cd foo && make).  Clean up multilib.out.
	* Makefile.in: Regenerate.
	* configure.in: Remove unnecessary leftovers.

2002-12-21  Geoffrey Keating  <geoffk@apple.com>

	* configure.in (extra_ranlibflags_for_target): New variable.
	(*-*-darwin): Add -c to ranlib commands.
	* configure (tooldir): Handle extra_ranlibflags_for_target.

2002-12-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Revert HJL's change.
	* Makefile.in: Regenerated.
	* configure.in: Put build_prefix before $(BUILD_SUBDIR) here, and
	always.

2002-12-19  Andreas Schwab  <schwab@suse.de>

	* Makefile.tpl, configure.in: Substitute libstdcxx_incdir.
	* Makefile.in: Regenerate.

2002-12-18  H.J. Lu <hjl@gnu.org>

	* Makefile.tpl: Add @build_prefix@ before $(BUILD_SUBDIR).
	* Makefile.in: Regenerated.

	* configure.in (build_prefix): New. Substitute.

2002-12-18  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Don't let real targets depend on phony targets.
	* Makefile.in: Regenerate.

	* Makefile.tpl (do-info): Depend on maybe-all-texinfo, not all-texinfo.
	* Makefile.in: Regenerate.

2002-12-17  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* config.sub: Import from master repository
	* config.guess: Ditto

2002-12-16  Jason Merrill  <jason@redhat.com>

	* Makefile.tpl (all-gcc): Use 'make quickstrap' if there was a
	previous 'make bootstrap'.
	* Makefile.in: Regenerate.

2002-12-17  Hans-Peter Nilsson  <hp@bitrange.com>

	* configure.in (noconfigdirs) [mmix-*-*]: Disable libgloss and gdb.

2002-12-13  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in, Makefile.tpl, Makefile.def: Remove tclX.
	* Makefile.in: Regenerate.

2002-12-13  Jason Merrill  <jason@redhat.com>

	* Makefile.tpl (check-gcc-c++): Renamed from check-c++.  Don't run
	library tests.
	(check-c++): Just depend on it and check-target-libstdc++-v3.
	* Makefile.in: Regenerate.

2002-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.tpl (configure-target-rda): Depend on $(ALL_GCC_C).
	* Makefile.in: Rebuilt.

2002-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (configure-target-rda): Depend on ALL_GCC_C.

2002-12-10  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: Fix bug put in by gremlins.

	* Makefile.tpl: Substitute more autoconfily.
	* configure: Substitute more autoconfily.
	* Makefile.in: Regenerate.

2002-12-09  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* config.sub: Import from master repository
	* config.guess: Ditto
	* MAINTAINERS: Added Svein Seldal under write after approval

2002-12-08  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.tpl (all-sim): Depend on maybe-configure-gdb.
	* Makefile.in (all-sim): Ditto.

2002-12-06  DJ Delorie  <dj@redhat.com>

	* Makefile.tpl: Change configure dependencies to not have real
	targets depend on phony targets.

2002-12-05  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Revert unintentional change.

	* Makefile.tpl: Change dependency for */multilib.out so that
	it works when gcc isn't in the tree.

	* configure.in: Substitute more.
	* configure: Run subconfigures from the Makefile.
	* Makefile.tpl: Run subconfigures from the Makefile; add a few
	convenience targets.  Make sure gcc isn't rebuilt after bootstrap.

2002-12-05  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* MAINTAINERS: Add Christian Ehrhardt under "GNATS only".

2002-12-03  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Add targets for configuring host subdirs in Makefile,
	and corresponding dependencies.
	* Makefile.in: Regenerate.

	* configure.in (host_tools): Order binutils, gas and ld for
	convenience in running the testsuites.

	* Makefile.tpl: Introduce rules to serialize subconfigure runs.
	* Makefile.in: Regenerate.
	* configure.in: Introduce rules to serialize subconfigure runs.

	* configure.in: Introduce BASE_CC_FOR_TARGET.
	* Makefile.tpl: Reorganize and comment.  Introduce HOST_CONFIGARGS.
	Realize configure-build-* targets.  Realize configure-target-* targets.
	* Makefile.in: Regenerate.

2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: Move gcc_version_trigger stuff from here...
	* configure.in: ...to here.

	* configure.in: Separate subconfigure options added by this file from
	options given by the user.  Add machinery to put args for host
	subconfigures into the Makefile.

	* Makefile.tpl: Remove 'vault' targets.
	* Makefile.tpl: Reorder and comment dependencies.
	* Makefile.in: Regenerate.

2002-12-01  Nathanael Nerode  <neroden@gcc.gnu.org>
	* configure.in: Fix my broken commit of previous patch. (sigh)

2002-11-28  Geoffrey Keating  <geoffk@apple.com>

	* configure.in: Move host-specific darwin noconfigdirs into
	the host-specific section.

2002-11-28  Geoffrey Keating  <geoffk@apple.com>

	* configure.in: Move host-specific darwin noconfigdirs into
	the host-specific section.

2002-11-26  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: Remove skip-this-dir support.
	* Makefile.tpl: Remove skip-this-dir support.

	* Makefile.tpl: Remove leftover support for non-autoconfiscated
	subdirectories.
	* Makefile.in: Regenerate.

	* Makefile.tpl: Strip out useless setting of 'dir'.
	* Makefile.in: Regenerate.

2002-11-22  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Fix deeply stupid bug.

	* configure.in: Introduce RAW_CXX_FOR_TARGET and simplify embedded
	shell code in CXX_FOR_TARGET
	* Makefile.def: Introduce raw_cxx.
	* Makefile.tpl: Use raw_cxx to select between CXX_FOR_TARGET and
	RAW_CXX_FOR_TARGET.
	* Makefile.in: Regenerate.

2002-11-21  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Remove unnecessary ifs.
	* Makefile.in: Regenerate.

	* Makefile.tpl: Implement soft dependency machinery.  Maybe-ize
	dependencies.  Maybe-ize build-libiberty.  Create dummy install
	targets for 'no_install' modules.
	* configure: Move GDB_TK substitution to configure.in.  Move
	build_modules stuff to configure.in.
	* configure.in: Implement soft dependency machinery.  Maybe-ize
	GDB_TK, rearrange slightly.  Move build_modules stuff from configure.
	* Makefile.in: Regenerate.

2002-11-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Make all-target, install-target behave similarly
	to all, install (only hitting configured targets).  Eliminate
	unused macro defintions.

	* Makefile.tpl: Add all-gcc: all-build-libiberty dependency when
	build != host.

	* Makefile.tpl: Add all-gcc: all-libiberty dependency.

	* ltcf-c.sh, ltcf-gcj.sh, Makefile.tpl: Correct BUILD/HOST confusion.

	* configure.in: Produce lists of subdir targets we're actually
	configuring.  Remove references to "dosrel".
	* Makefile.tpl: Let configure set which subdir targets are hit.
	Remove install-cross; clean up install; remove ALL.  Remove
	references to "dosrel".  Remove "EXTRA_TARGET_HOST" hackery.
	Autogenerate host module targets.  Remove empty dependency lines
	and redundant dependency; rearrange slightly.
	* Makefile.def: Add host-side libtermcap, utils.

	* Makefile.in: Regenerate.

2002-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* ltconfig (osf[345]): Append $major to soname_spec.
	Reflect this in library_names_spec.
	* ltmain.sh (osf): Prefix $major with . for use as extension.

2002-11-19  Andreas Jaeger  <aj@suse.de>

	* libtool.m4 (libtool_flags): Add patch from libtool CVS: Support
	linking of 32-bit libraries with ld on the x86-64, ppc64, s390x
	and sparc64 GNU/Linux systems.

2002-11-19  Nathan Sidwell  <nathan@codesourcery.com>

	* MAINTAINERS: Update email.

2002-11-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* MAINTAINERS: Complete James Dennett's entry.

2002-11-15  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* MAINTAINERS (Write After Approval): Add myself.

2002-11-13  Bruce Korb  <bkorb@gnu.org>

	* Makefile.tpl: syntactic cleanup

2002-11-13 Stuart Hastings <stuart@apple.com>

	* MAINTAINERS: Add myself to write-after-approval list.

2002-11-12  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.def: Add list of recursive targets to autogenerate.
	Add build_modules.
	* Makefile.tpl: Autogenerate do-* targets.  Autogenerate *-target-*
	targets.  Autogenerate *-build-* targets.
	* Makefile.in: Regenerate.

2002-11-12  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: More autoconf-style substitutions.
	* Makefile.tpl: More autoconf-style substitutions.
	* Makefile.in: Regenerate.

2002-11-11  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: Substitute more variables in a more autoconf-friendly
	way.  Simplify slightly.
	* Makefile.tpl: Make more variables substitutable in an
	autoconf-friendly way.
	* Makefile.in: Regenerate.

2002-11-11  Jonathan Wakely  <redi@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2002-11-10  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in (v810*): Remove special setting of tools.

	* configure: Add support for extra required flags for ar or nm.
	* configure.in (aix4.3+): Use above support for target-specific
	issues, rather than using config/mt-aix43.

2002-11-09  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: Remove 'removing', which doesn't work.  Replace $subdir
	with . everywhere.  Replace $subdirs with ''.  Replace $makesrcdir
	with $srcdir.  Reformat indentation.  Substitute some variables
	formerly hard-coded in the Makefile for build=host.
	* Makefile.tpl: Autogenerate more; make more autoconf-friendly.
	* Makefile.def: Autogenerate more.
	* Makefile.in: Regenerate.

2002-11-04  Adam Nemet  <anemet@lnxw.com>

	* MAINTAINERS (Write After Approval): Add myself.

2002-11-04  Kevin Buettner  <kevinb@redhat.com>

	* Makefile.def (host_modules): Add rda.
	* Makefile.in: Regenerate.
	* configure.in (target_tool): Add target-rda to list.

2002-10-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* MAINTAINERS: Remove "co-maintainer" note for web pages.

2002-10-25  Phil Edwards  <pme@gcc.gnu.org>

	* Makefile.tpl (bootstrap):  Add bubblestrap, quickstrap, cleanstrap,
	and restrap targets to this rule.
	* Makefile.in:  Regenerate.

2002-10-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* MAINTAINERS: Add Wolfgang Bangerth and Volker Reichelt under
	GNATS only accounts.

2002-10-24  Hans-Peter Nilsson  <hp@bitrange.com>

	* configure.in (i[3456]86-*-linux*): Add check to disable
	${libgcj} for glibc1.

2002-10-24  Denis Chertykov  <denisc@overta.ru>

	* MAINTAINERS: Add myself as ip2k port maintainer.

2002-10-07  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* configure.in: Add tic4x target.

2002-10-03  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Make SET_LIB_PATH substitution more autoconfy.
	* configure.in: Make SET_LIB_PATH substitution more autoconfy.
	* Makefile.in: Regenerate.

	* Makefile.tpl: Make RPATH_ENVVAR substitution more autoconfy.
	* configure.in: Make RPATH_ENVVAR substitution more autoconfy.
	* Makefile.in: Regenerate.

2002-10-02  Janis Johnson  <janis187@us.ibm.com>

	* MAINTAINERS: Add myself as web pages co-maintainer.

2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Eliminate reference to all-gui, all-libproc.
	* Makefile.in: Regenerate.

2002-10-02  Zack Weinberg  <zack@codesourcery.com>

	* MAINTAINERS: Add myself and Nathan Sidwell
	<nathan@codesourcery.com> as VxWorks maintainers.

2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.def: Remove order dependency comments.
	* Makefile.tpl: Add explicit install-install dependencies.
	* Makefile.in: Regenerate.

	* Makefile.tpl: Remove material now in src-release.  (Finally!)
	* Makefile.in: Regenerate.

	* Makefile.tpl: Add configure-target (for src-release in src)
	* Makefile.in: Regenerate.

2002-09-30  Nick Clifton  <nickc@redhat.com>

	* Makefile.in (BINUTILS_SUPPORT_DIRS): Add cpu directory.

2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.in (s390*-*-linux*): Enable libgcj.

2002-09-29  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: Revert accidentally applied changes.

	* Makefile.tpl: Make more autoconf-friendly.
	* Makefile.in: Regenerate.
	* configure: Make substitution more autoconf-like.

2002-09-28  Richard Earnshaw  <rearnsha@arm.com>

	* configure.in (arm-*-coff, strongarm-*-coff, xscale-*-coff): Use a
	single entry to handle all these.
	(arm-*-elf, strongarm-*-elf, xscale-*-elf): Likewise.  Also enable
	libjava on arm-*-elf.

2002-09-27  Geoffrey Keating  <geoffk@apple.com>

	* configure.in (powerpc-*-darwin*): Don't configure BFD, TK, or the
	things that depend on them.

2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Make subsituted variables more autoconfy.
	* Makefile.in: Regenerate.
	* configure: Make seds more autoconfy.

2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Rewrite substituted lines to look autoconfy.
	* Makefile.in: Regenerate.
	* configure.in: Rewrite sed statements to look autoconfy.

	* Makefile.tpl: Autogenerate *-target-* lists, dependencies of
	all-target-foo on configure-target-foo.
	* Makefile.def: Ditto.
	* Makefile.in: Rebuild.

2002-09-25  Andrew Haley  <aph@redhat.com>

	* MAINTAINERS: Add aph@redhat.com as Java maintainer.

2002-09-22  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.def: New file.
	* Makefile.tpl: New file.
	* Makefile.in: Generate from Makefile.tpl with 'autogen Makefile.def'.
	* contrib/gcc_update: Note that Makefile.in is a generated file.

	* configure.in: Minor rearrangement.  Simplify tests.

2002-09-22  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.in (with_headers): Skip copy if value is "yes".
	(with_libs): Likewise.

2002-09-20  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in (*-*-netbsd*): Use noconfigdirs, not skipdirs.
	* configure.in (sh*-*-pe*): Ditto.
	* configure.in (mips*-*-pe*): Ditto.
	* configure.in (*arm-wince-pe): Ditto.

	* configure.in: Rearrange.

2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* MAINTAINERS: Update my email address.

2002-08-30  Paul Koning  <pkoning@equallogic.com>

	* MAINTAINERS: (Write After Approval): Add myself.

2002-08-29  Geoffrey Keating  <geoffk@redhat.com>

	* MAINTAINERS: Update Jason Eckhardt's address, remove i860.

2002-08-24  Geoffrey Keating  <geoffk@redhat.com>

	* MAINTAINERS: Change my mailing address.

2002-08-21  Paolo Carlini  <pcarlini@unitus.it>

	* MAINTAINERS (Write After Approval): Remove myself.
	(Various Maintainers: c++ runtime libs): Add myself.

2002-08-20  Loren J. Rittle <ljrittle@acm.org>

	* MAINTAINERS (Write After Approval): Remove myself.
	(Various Maintainers: c++ runtime libs): Add myself.

2002-08-15  Eric Christopher  <echristo@redhat.com>

	* config.sub: Import from master repository.
	* config.guess: Ditto.

2002-08-19  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (GCC_FOR_TARGET): Prepend STAGE_CC_WRAPPER.
	* configure.in (CC_FOR_TARGET, GCJ_FOR_TARGET, CXX_FOR_TARGET,
	CXX_FOR_TARGET_FOR_RECURSIVE_MAKE): Likewise.

2002-08-16  Aldy Hernandez  <aldyh@redhat.com>

	* MAINTAINERS: Add self to rs6000 vector extensions.

2002-08-15  Alexandre Oliva  <aoliva@redhat.com>

	* libiberty/configure: Reverted unintended yesterday's check in.

2002-08-14  Alexandre Oliva  <aoliva@redhat.com>

	* boehm-gc/configure, libf2c/configure: Rebuilt.
	* libffi/configure, libiberty/configure: Ditto.
	* libjava/configure, libobjc/configure: Ditto.
	* libstdc++-v3/configure, zlib/configure: Ditto.
	Merged from binutils:
	2002-01-27  Daniel Jacobowitz  <drow@mvista.com>
	From Steve Ellcey <sje@cup.hp.com>:
	* libtool.m4 (HPUX_IA64_MODE): Set to 32 or 64 based on ABI.
	(lt_cv_deplibs_check_method, lt_cv_file_magic_cmd,
	lt_cv_file_magic_test_file): Set to appropriate values for HP-UX
	IA64.
	* ltcf-c.sh (archive_cmds, hardcode_*): Ditto.
	* ltconfig (shlibpath_*, dynamic_linker, library_names_spec,
	soname_spec, sys_lib_search_path_spec): Ditto.

2002-08-06  Federico G. Schwindt <fgsch@olimpo.com.br>

	* configure.in (hppa*-*-openbsd*): Treat like hppa*-*-*elf*.

2002-08-04  H.J. Lu  (hjl@gnu.org)

	* configure.in (mips*-*-linux*): Don't skip target-libffi.

2002-08-02  Krister Walfridsson  <cato@df.lth.se>

	* MAINTAINERS (Write After Approval): Add myself.

2002-07-31  Alan Modra  <amodra@bigpond.net.au>

	* configure.in: Move generic linux case to end.	 Copy generic
	linux noconfigdirs to mips*-*-linux* entry and new
	powerpc64*-*-linux* entry.  Add target-libffi for the latter.

2002-07-19  Michael Matz  <matz@suse.de>

	* MAINTAINERS: Add myself as ra* maintainer.

2002-07-16  Chris Demetriou  <cgd@broadcom.com>

	* config.guess: Update to 2002-07-09 version.
	* config.sub: Update to 2002-07-03 version.

2002-07-15  Hans-Peter Nilsson  <hp@bitrange.com>

	* MAINTAINERS: Fix typo in a maintainer email address.

2002-07-11  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Remove two redundant tests.

2002-07-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.in (mips*-*-irix6*o32): Enable stabs.

2002-07-08  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Don't build grez.
	* Makefile.in: Ditto.

	* Makefile.in: Remove references to bsp, cygmon, libstub.
	* configure.in: Ditto.

	* configure.in: Remove leftover reference to gdbtest.

2002-07-08  Phil Edwards  <pme@gcc.gnu.org>

	* configure.in (gxx_include_dir):  Change to match versioned
	C++ headers if --enable-version-specific-runtime-libs is used.

2002-07-04  Steve Ellcey  <sje@cup.hp.com>

	* ltcf-cxx.sh (hpux*): Modify to support ia64-*-hpux*.

2002-07-03  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Make --without-x work.

2002-07-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Rearrange target Makefile fragment collection.

	* Makefile.in: Don't try to build gdbtest, tgas, ispell, inet, or
	cvs[src].
	* configure.in: Ditto.

2002-07-01  Matt Kraai  <kraai@alumni.cmu.edu>

	* MAINTAINERS (Write After Approval): Update my e-mail address.

2002-06-24  Ben Elliston  <bje@redhat.com>

	* configure.in (host_tools): Remove cgen.

	* Makefile.in (all-cgen): Remove; runs from its source directory.
	(check-cgen, install-cgen, clean-cgen): Likewise.
	(all-opcodes): Do not depend on all-cgen.
	(all-sim): Likewise.

2002-07-01  Nathanael Nerode <neroden@gcc.gnu.org>

	* Makefile.in: Eliminate 'apache' targets.
	* configure.in: Eliminate 'apache' targets.

	* configure.in: Eliminate redundant tests.  Reorganize.

	* Makefile.in: Eliminate last reference to LIBGCC1_TEST.

	* config-ml.in: Eliminate references to Cygnus configure.

	* Makefile.in: Eliminate references to building emacs.

2002-06-28  Graham Stott  <graham.stott@btinternet.com>

	* MAINTAINERS: Update my email address.

2002-06-26  Benjamin Kosnik  <bkoz@redhat.com>

	* config.if (libstdcxx_incdir): Version C++ headers.
	(cxx_incdir): Remove.

2002-06-25  Nathanael Nerode  <neroden@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add self.

Thu Jun 20 00:35:14 2002  Denis Chertykov  <denisc@overta.ru>

	* configure.in: Add support for ip2k.

2002-06-22  Nathanael Nerode  <neroden@twcny.rr.com>

	* configure.in: Fix AIX configury bug.

2002-06-20  Steve Ellcey  <sje@cup.hp.com>

	* MAINTAINERS (Write After Approval): Add self.

2002-06-19  Nathanael Nerode  <neroden@twcny.rr.com>

	* configure.in: replace ${topsrcdir} with ${srcdir}

	* configure.in: Move definition of libstdcxx_flags
	right above usage, rather than waaay earlier.

	* configure.in: Pull definition of is_cross_compiler earlier.

	* configure.in: Rearrange a little.

	* configure.in: Remove references to librx.
	* Makefile.in: Remove references to librx.

Tue Jun 18 22:37:35 2002  Denis Chertykov  <denisc@overta.ru>

	* config.sub: Add support for avr target.
	Import from master sources, rev 1.255

2002-06-19  Phil Edwards  <pme@gcc.gnu.org>

	* configure, .cvsignore:  Revert previous change...
	* Makefile:  ...delete.

2002-06-19  Nathanael Nerode  <neroden@twcny.rr.com>

	* configure.in: Eliminate ${gasdir} variable.

2002-06-18  Dave Brolley  <brolley@redhat.com>

	* configure.in: Add support for frv.
	* config.sub: Add support for frv.

2002-06-18  Phil Edwards  <pme@gcc.gnu.org>

	* configure:  Remove garbage from previous commit.

2002-06-18  Phil Edwards  <pme@gcc.gnu.org>

	* configure:  For in-source builds, make a subdir and re-exec there.
	* Makefile:  New file.  Pass targets through to build directory.
	* .cvsignore:  No longer ignore "Makefile".

2002-06-16  Douglas Rupp  <rupp@gnat.com>

	* MAINTAINERS (Write After Approval): Add self.

2002-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (CFLAGS_FOR_TARGET): Add -O2.

2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.in (vax-*-netbsd*): Re-enable gas.

2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>

	* Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with BUILD_PREFIX,
	BUILD_PREFIX_1, to correct nomenclature.
	* configure: Likewise.

	* Makefile.in: Eliminate version-specific references to tcl8.1, tk8.1.
	* configure.in: Eliminate version-specific references to tcl8.1, tk8.1.

2002-05-31  Olaf Hering  <olh@suse.de>

	* config-ml.in: Propogate DESTDIR also.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.in (vax-*-netbsd*): Don't build gas for this
	platform.

2002-05-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* configure.in (noconfigdirs): Don't compile libiberty, libstdcxx
	and libgcj for AVR.

2002-05-23  Kaz Kojima  <kkojima@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2002-05-22  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.guess: Update to 2002-05-22 version.
	* config.sub: Likewise.

2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in: Allow for PWDCMD to override hardcoded pwd.
	* config-ml.in: Likewise.
	* configure: Likewise.
	* configure.in: Likewise.

2002-05-16  Stephane Carrez  <stcarrez@nerim.fr>

	* MAINTAINERS: Update my email address.

2002-05-13  Nathanael Nerode  <neroden@twcny.rr.com>

	* configure.in: Simplify makefile fragment collection.

	* configure.in: Remove code to build emacs.

	* configure.in : Remove --srcdir argument from targargs and buildargs
	(it's always overridden in the Makefile anyway).  Rearrange a bit.

	* configure: Move some logic to configure.in.
	* configure.in: Move some logic from configure.

2002-05-11  Tom Tromey  <tromey@redhat.com>

	* MAINTAINERS: Reflect libgcj reality.

2002-05-09  Federico G. Schwindt  <fgsch@olimpo.com.br>

	* Makefile.in: Honour DESTDIR.

2002-05-08  Mark Mitchell  <mark@codesourcery.com>

	* config.guess: Import 2002-03-20 version.
	* config.sub: Import 2002-04-26 version.

2002-05-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config-ml.in: Allow for PWDCMD to determine ML_POPDIR.

2002-05-07  Tim Josling  <tej@melbpc.org.au>

	* MAINTAINERS: Add self.

2002-05-06  Loren J. Rittle <ljrittle@acm.org>

	* ltmain.sh: Detect and handle object name conflicts
	while piecewise linking a static library.

2002-05-05  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (noconfigdirs): Don't disable libgcj on
	sparc64-*-solaris* and sparcv9-*-solaris*.

2002-05-03  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in: Revert 2002-04-18's patch; fixed in libjava.

2002-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.in (FLAGS_FOR_TARGET): Do not add
	-B$$r/$(TARGET_SUBDIR)/newlib/ when compiling newlib natively
	on i[3456]86-*-linux*.

2002-05-01  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.in (noconfigdirs): Replace [ ] with test.

	* configure.in (noconfigdirs): Do not add target-newlib if
	target == i[3456]86-*-linux*, and host == target.

2002-04-29  Nathanael Nerode  <neroden@doctormoo.dyndns.org>

	* configure.in: delete reference to absent file

	* configure.in: replace '[' with 'test'

	* configure.in: Eliminate references to gash.
	* Makefile.in: Eliminate references to gash.

	* configure.in: remove useless references to 'pic' makefile fragments.

	* configure.in: (*-*-windows*) Finish removing.

	* configure.in: Eliminate redundant test for libgui.

2002-04-29  Roger Sayle  <roger@eyesopen.com>

	* MAINTAINERS: Add self and realphabetize.  Update entries
	for Dan Berlin, Chris Demetriou and Michael Matz.  Remove
	entry for a29k port maintainer.

2002-04-26	Joel Sherrill <joel@OARcorp.com>

	* configure.in (h8300*-*-rtems*): Disable libf2c and libgcj.
	(sparc-*-elf*, sparc64-*-elf*): Disable libgcj.

2002-04-19  Nathanael Nerode  <neroden@twcny.rr.com>

	* configure.in: remove references to dead files

2002-04-19  Mark Mitchell  <mark@codesourcery.com>

	* MAINTAINERS: Add information about purpose of this file.

2002-04-18  Tom Tromey  <tromey@redhat.com>

	* configure.in: Disallow configuring libgcj when it is already
	installed and we're using Solaris 2.8 linker.  Do enable libgcj on
	Solaris 2.8 by default.  For PR libgcj/6158.

2002-04-17  Nathanael Nerode  <neroden@twcny.rr.com>

	* configure.in:  Move default CC setting out of config/mh-* fragments
	directly into here.

2002-04-17  Nathanael Nerode  <neroden@twcny.rr.com>

	* configure.in: don't even try to configure or make a subdirectory
	if there's no configure script for it.

2002-04-15  Mark Mitchell  <mark@codesourcery.com>

	* MAINTAINERS: Remove chill maintainers.
	* Makefile.in (CHILLFLAGS): Remove.
	(CHILL_LIB): Remove.
	(TARGET_CONFIGDIRS): Remove libchill.
	(CHILL_FOR_TARGET): Remove.
	(BASE_FLAGS_TO_PASS): Don't pass CHILLFLAGS, CHILL_FOR_TARGET, or
	CHILL_LIB.
	(CONFIGURE_TARGET_MODULES): Remove configure-target-libchill.
	(CHECK_TARGET_MODULES): Likewise.
	(INSTALL_TARGET_MODULES): Likewise.
	(CLEAN_TARGET_MODULES): Likewise.
	(configure-target-libchill): Remove.
	(all-target-libchill): Remove.
	* configure.in (target_libs): Remove target-libchill.
	Do not compute CHILL_FOR_TARGET.
	* libchill: Remove directory.

2002-04-11  DJ Delorie  <dj@redhat.com>

	* Makefile.in, configure.in: Sync with binutils, entries
	follow...

2002-04-07  Andrew Cagney  <ac131313@redhat.com>

	* Makefile.in (do-tar-bz2): Delete rule.  Replace with ...
	(do-tar, do-bz2): New rules.
	(taz): Update.  Replace do-tar-bz2 with do-tar and do-bz2.
	(gdb-tar): New rule.
	(gdb-taz): Rewrite.  Use gdb-tar and do-bz2.
	(insight_dejagnu.tar): New rule.
	(insight.tar): New rule.
	(gdb+dejagnu.tar): New rule.
	(gdb.tar): New rule.

2002-02-01  Mo DeJong  <supermo@bayarea.net>

	* Makefile.in: Add all-tix to deps for all-snavigator
	so that tix is built when building snavigator.

2002-01-11  Steve Ellcey  <sje@cup.hp.com>

	* configure.in (ia64*-*-hpux*): New target for IA64 HP-UX,
	ld and gdb are not supported.

2002-01-07  Mark Salter  <msalter@redhat.com>

	* configure.in: Remove target-bsp and target-cygmon from arm builds.
	Allow target-libgloss to be built for arm, strongarm, and xscale.

2001-12-13  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.in (FLAGS_FOR_TARGET): Remove -nostdinc and -isystem
	options for i[3456]86-pc-linux* native builds.

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

	* Makefile.in (do-proto-toplev): Use msgfmt to generate .gmo
	files from .po files for a distribution.

2001-09-03  Jeff Holcomb  <jeffh@redhat.com>

	* configure.in: Enable libstdc++-v3 for h8300 targets.

2001-06-19  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.in (VER): If AM_INIT_AUTOMAKE uses BFD_VERSION, get
	version from bfd/.

Fri Jun  8 11:14:02 2001  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (VER): When present, extract the version number from
	the file version.in.

2001-05-24  Tom Rix <trix@redhat.com>

	* configure.in : enable ld for aix

2001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* config.guess: Add linux target for S/390.

2000-11-07  Philip Blundell  <pb@futuretv.com>

	* Makefile.in (ETC_SUPPORT): Also add configbuild.* and configdev.*.

2000-11-03  Philip Blundell  <pb@futuretv.com>

	* Makefile.in (ETC_SUPPORT): Add configure.texi and associated info
	files.

2001-01-15  Ben Elliston  <bje@redhat.com>

	* configure.in (host_tools): Add sid.
	Always configure cgen.

2000-11-24  Nick Clifton  <nickc@redhat.com>

	* configure.in (c4x, c5x, tic54x): Move after ARM targets.


2000-08-20  Doug Evans  <dje@casey.transmeta.com>

	* Makefile.in (ALL_MODULES): Add all-cgen.
	(CROSS_CHECK_MODULES,INSTALL_MODULES,CLEAN_MODULES): Similarily.
	(all-cgen): New target.
	(all-opcodes,all-sim): Depend on all-cgen.
	* configure.in (host_tools): Add cgen.
	Only configure cgen if --enable-cgen-maint.

2002-04-09  Loren J. Rittle <ljrittle@acm.org>

	* configure.in: Add *-*-freebsd* configurations.

2002-04-08  Tom Tromey  <tromey@redhat.com>

	* configure.in: Add FLAGS_FOR_TARGET to GCJ_FOR_TARGET.
	Fixes PR libgcj/6068.

2002-03-30  Krister Walfridsson  <cato@df.lth.se>

	* configure.in (i*86-*-netbsdelf*): Don't disable libgcj.

2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.in (alpha*-dec-osf*): Enable libgcj.

2003-03-27  Matthew Gingell <gingell@gnat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2002-03-24  Nick Clifton  <nickc@cambridge.redhat.com>

	Fix for: PR bootstrap/3591, target/5676
	* configure.in (mcore-pe): Disable the configuration of
	libstdc++-v3 since exceptions are not supported.

2002-03-20  Anthony Green  <green@redhat.com>

	* configure.in: Enable libgcj for xscale-elf target.

Tue Mar 19 09:05:08 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* MAINTAINERS:  Update my email address.

2002-03-16  Alexandre Oliva  <aoliva@redhat.com>

	* ltmain.sh (relink_command): Fix typo in previous change.

2002-03-15  Alexandre Oliva  <aoliva@redhat.com>

	* ltmain.sh (taglist): Initialized.  Don't let `CC' tag out of it.
	(relink_command): Added --tag flags.
	(mode=install): If relinking fails; error out.

2002-03-12  Richard Henderson  <rth@redhat.com>

	* Makefile.in (NOTPARALLEL): New.  Use it instead of explicit
	.NOTPARALLEL tag.
	(do-check): Rename from check.
	(check): Allow parallel check.

2002-03-12  Bob Wilson  <bob.wilson@acm.org>

	* MAINTAINERS: Add myself as maintainer for xtensa port.
	Fix alphabetical order in CPU port maintainer list.
	Remove myself from Write After Approval list.

2002-03-11  Richard Henderson  <rth@redhat.com>

	* Makefile.in (.NOTPARALLEL): Add fake tag.

2002-03-07  H.J. Lu  (hjl@gnu.org)

	* configure.in: Enable gprof for mips*-*-linux*.

2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>

	* MAINTAINERS (Write After Approval): Add myself.

2002-02-28  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (libstdcxx_flags): Don't add libstdc++-v3 flags for
	libjava.
	(CXX_FOR_TARGET): Explain why -shared-libgcc here.

2002-02-23  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (MAKEINFO): Don't assume makeinfo will be built just
	because its Makefile is there; test for the executable instead.

2002-02-22  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (CXX_FOR_TARGET): Add -shared-libgcc for
	libstdc++-v3 and libjava.

2002-02-11  Adam Megacz <adam@xwt.org>

	* gcc/Makefile.in: Removed libstdc++-v3 dependancy for libjava and
	boehm-gc

2002-02-09  Alexandre Oliva  <aoliva@redhat.com>

	* config.guess: Updated to 2002-01-30's version.
	* config.sub: Updated to 2002-02-01's version.
	Contribute sh64-elf.
	2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
	* configure.in: Added sh64-*-*.

2002-02-08  Chris Demetriou  <cgd@broadcom.com>

	* MAINTAINERS: Belatedly add myself to write after approval list.

Thu Feb  7 12:40:58 CET 2002  Jan Hubicka  <jh@suse.cz>

	* MAINTAINERS: Put self in as maintainer for x86-64 port.
	Remove self as Write After Approval.

2002-01-31  Geoffrey Keating  <geoffk@redhat.com>

	* MAINTAINERS: Put self in as maintainer for contrib/regression
	directory.

2002-01-28  Phil Edwards  <pme@gcc.gnu.org>

	* MAINTAINERS:  Update my email address.

2002-01-26  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.in (*-*-netbsd*): New.  Skip target-newlib,
	target-libiberty, and target-libgloss.  Skip Java-related
	libraries if not supported for NetBSD on target CPU.

2002-01-25  Douglas B Rupp  <rupp@gnat.com>

	* install-sh: Use _inst.$$_ for temp file name.

2002-01-24  Jason Thorpe  <thorpej@wasabisystems.com>

	* MAINTAINERS (Write After Approval): Move my contact info
	from here...
	(OS Port Maintainers): ...to here (netbsd).

2002-01-22  Bob Wilson  <bob.wilson@acm.org>

	* MAINTAINERS (Write After Approval): Add myself.

2002-01-17  H.J. Lu <hjl@gnu.org>

	* Makefile.in (all-fastjar): Also depend on all-libiberty.
	(all-target-fastjar): Also depend on all-target-libiberty.

2002-01-16  H.J. Lu  (hjl@gnu.org)

	* config.guess: Import from master sources, rev 1.225.
	* config.sub: Import from master sources, rev 1.238.

2002-01-16  Kazu Hirata  <kazu@hxi.com>

	* MAINTAINERS (Write After Approval): Remove myself.

2001-12-19  Florian Weimer  <fw@deneb.enyo.de>

	* MAINTAINERS (Write After Approval): Add myself.

2001-12-17  Joseph S. Myers  <jsm28@cam.ac.uk>

	* MAINTAINERS: Add self as docs co-maintainer.

2001-12-11  Matthias Klose  <doko@debian.org>

	* MAINTAINERS (Write After Approval): Add myself.

2001-12-09  Zack Weinberg  <zack@codesourcery.com>

	* MAINTAINERS: Update my email address.

2001-12-07  Turly O'Connor  <turly@apple.com>
	* MAINTAINERS (Write After Approval): Add myself.
	* rs6000.c (rs6000_trampoline_size): Handle ABI_DARWIN case.
	(rs6000_initialize_trampoline): Call __trampoline_setup for
	ABI_DARWIN too.
	* darwin-tramp.asm: New file, implements __trampoline_setup.
	* t-darwin (LIB2FUNCS_EXTRA): Include darwin-tramp.asm.

2001-12-07  Paolo Carlini  <pcarlini@unitus.it>

	* MAINTAINERS (Write After Approval): Add myself.

Wed Dec  5 07:33:45 2001  Douglas B. Rupp  <rupp@gnat.com>

	* configure, configure.in: Use temp file for long sed commands.

2001-12-03  Laurent Guerby  <guerby@acm.org>

	* config.sub: Update to version 1.232 on subversion.

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

	* MAINTAINERS: Update mail address for config.* patches.

2001-11-27  DJ Delorie <dj@redhat.com>
	    Zack Weinberg  <zack@codesourcery.com>

	When build != host, create libiberty for the build machine.

	* Makefile.in (TARGET_CONFIGARGS, BUILD_CONFIGARGS): Replace
	CONFIG_ARGUMENTS.
	(ALL_BUILD_MODULES_LIST, BUILD_CONFIGDIRS, BUILD_SUBDIR):
	New variables.
	(ALL_BUILD_MODULES, CONFIGURE_BUILD_MODULES): New variables
	and rules.
	(all.normal): Depend on ALL_BUILD_MODULES.
	(CONFIGURE_TARGET_MODULES rule): Use TARGET_CONFIGARGS.
	(all-build-libiberty): Depend on configure-build-libiberty.

	* configure: Calculate and substitute proper value for
	ALL_BUILD_MODULES.
	* configure.in: Create the build subdirectory.
	Calculate and substitute TARGET_CONFIGARGS (formerly
	CONFIG_ARGUMENTS); also BUILD_SUBDIR and BUILD_CONFIGARGS (new).

2001-11-26  Ziemowit Laski  <zlaski@apple.com>

	* MAINTAINERS (write-after-approval): Add self.

2001-11-17  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* MAINTAINERS (GNATS only accounts): Remove self.

2001-11-14  Hans-Peter Nilsson  <hp@bitrange.com>

	* configure.in (noconfigdirs) [h8300*-*-*, h8500-*-*]: Disable
	libf2c.

2001-11-12  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add self.

2001-11-12  David O'Brien  <obrien@FreeBSD.org>

	* MAINTAINERS: mips and s390 are also CPU ports.

2001-11-12  David O'Brien  <obrien@FreeBSD.org>

	* MAINTAINERS: mcore, cris and mmix are also CPU ports.

2001-11-11  David O'Brien  <obrien@FreeBSD.org>

	* MAINTAINERS: Alphabetize.

2001-11-09  Kazu Hirata  <kazu@hxi.com>

	* MAINTAINERS (Various maintainers: h8 port): Add myself.

2001-11-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* MAINTAINERS (Various maintainers: hppa port): Added myself.

2001-11-08  Phil Edwards  <pedwards@disaster.jaj.com>

	* configure.in (--enable-languages): Be more permissive about
	syntax.  Check for empty lists better.  Warn about $LANGUAGES.

2001-11-08  Geoffrey Keating  <geoffk@redhat.com>

	* config.sub: Import from master sources, rev. 1.230.
	* MAINTAINERS: Change 'stormy16' to 'xstormy16'.

2001-11-07  Laurent Guerby  <guerby@acm.org>

	* MAINTAINERS (Write After Approval): Add self.

2001-11-06  Hans-Peter Nilsson  <hp@bitrange.com>

	* Makefile.in (MAKEINFO): Use "missing" for makeinfo older than 4.0.

2001-11-05  Hans-Peter Nilsson  <hp@bitrange.com>

	* config.sub: Import from master sources, rev 1.226.
	* config.guess: Import from master sources, rev 1.216.

2001-11-03  Hans-Peter Nilsson  <hp@bitrange.com>

	* configure.in (noconfigdirs) [mmix-*-*]: Disable libgcj.
	* MAINTAINERS: Add self as maintainer of MMIX port.
	Remove old after-approval entry.

2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>

	* ChangeLog, configure: Fix spelling errors.

2001-10-20  Brendan Kehoe  <brendan@zen.org>

	* MAINTAINERS: Tweak my address.

Thu Oct 11 21:50:15 2001  J"orn Rennecke <amylaar@onetel.net.uk>

	* MAINTAINERS: Update my email address.

2001-10-11  Hans-Peter Nilsson  <hp@axis.com>

	* configure.in (noconfigdirs) [cris-*-*]: Disable libgcj.
	* MAINTAINERS: Add self as maintainer of CRIS port.

2001-10-10  Geert Bosch  <bosch@gnat.com>

	* MAINTAINERS (Various maintainers: Ada front end):
	Added Robert Dewar.

2001-10-03  David Billinghurst <David.Billinghurst@riotinto.com>

	* MAINTAINERS (Write After Approval): Added self

2001-10-02  Geert Bosch  <bosch@gnat.com>

	* MAINTAINERS (Various maintainers: Ada front end): Added myself.

2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>

	* configure: Handle temporary files securely using mkdir.

2001-09-29  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (configure-target-gperf): Depend on $(ALL_GCC_CXX).

2001-09-26  Will Cohen <wcohen@redhat.com>

	* configure.in (*-*-linux*): Disable configuration of target-newlib
	and target-libgloss.

2001-09-26  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (EXTRA_TARGET_FLAGS): Pass RANLIB_FOR_TARGET for
	RANLIB.

2001-09-21  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (AS_FOR_TARGET, LD_FOR_TARGET,
	DLLTOOL_FOR_TARGET, WINDRES_FOR_TARGET, AR_FOR_TARGET,
	RANLIB_FOR_TARGET, NM_FOR_TARGET): Don't use double quotes to
	avoid quotes nesting problems.
	(NATIVE_CHECK_MODULES): Ditto, just for consistency.
	(DO_X): Export only variables that are set.

2001-09-19  Ben Elliston  <bje@redhat.com>

	* configure.in (sparc-sun-solaris2*): Don't use /usr/bin/which on
	Solaris when testing for the /usr/ucb/cc compiler; it has incorrect
	semantics.  Use the shell built-in "type" command instead.

2001-08-31  Alexandre Oliva  <aoliva@redhat.com>

	Merged from gcc-3_0-branch:
	2001-07-30  Jeff Sturm  <jsturm@one-pont.com>
	* ltcf-c.sh: Use $objext, not $ac_objext.
	2001-07-27  Mark Kettenis  <kettenis@gnu.org>
	* ltcf-cxx.sh: Add support for GNU.
	2001-07-22  Timothy Wall  <twall@redhat.com>
	* ltcf-c.sh: Don't disable shared libraries for AIX5/IA64.  Preserve
	default settings if using GNU tools with that configuration.
	* ltcf-cxx.sh: Ditto.
	* ltcf-gcj.sh: Ditto.
	2001-07-21  Michael Chastain  <chastain@redhat.com>
	* ltconfig: Set max_cmd_len to a maximum of 512Kb, as it seems some
	HPUX 11.0 systems have trouble with 1MB.  Mark as gcc-local.
	* ltmain.sh: Mark as gcc-local.

2001-08-30  Eric Christopher  <echristo@redhat.com>
	    Jason Eckhardt  <jle@redhat.com>

	* config.guess: Merge from master sources.
	* config.sub: Merge from master sources, add support for mipsisa32.

2001-08-25  Geoffrey Keating  <geoffk@redhat.com>
	* config.sub: Merge from master sources, rev 1.219.
	* MAINTAINERS: Add self as contact for stormy16 port.

2001-08-14  Zack Weinberg  <zackw@panix.com>

	* config.sub: Merge from master sources, rev 1.218.
	* config.guess: Merge from master sources, rev 1.209.

2001-08-11  Graham Stott  <grahams@redhat.com>

	* Makefile.in (check-c++): Add missing semicolon.

Mon Jul 30 19:24:13 CEST 2001  Jan Hubicka  <jh@suse.cz>

	* MAINTAINERS (Various maitainers: predict.def): Added myself.

2001-07-30  Eric Christopher  <echristo@redhat.com>

	* MAINTAINERS (Various maintainers: mips port): Added myself.

2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>

	* configure.in (sh-*-linux*): New.

2001-07-27  Richard Henderson  <rth@redhat.com>

	* .cvsignore: Add LAST_UPDATED.

2001-07-23  Ulrich Weigand  <uweigand@de.ibm.com>

	* MAINTAINERS (Various maintainers: s390 port): Added myself.

2001-07-16  Aldy Hernandez  <aldyh@redhat.com>

	* config.sub: Fix mips64vr5000el typo in CPU-COMPANY.

Fri Jul 13 14:31:57 2001  Nicola Pero  <nicola@brainstorm.co.uk>

	* MAINTAINERS (Write After Approval): Added myself.

2001-07-12  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* configure.in (noconfigdirs): Don't compile libiberty, libstdcxx
	and libgcj on m68hc11/m68hc12.

2001-06-27  H.J. Lu  (hjl@gnu.org)

	* Makefile (CFLAGS_FOR_BUILD): New.
	(EXTRA_GCC_FLAGS): Add CFLAGS_FOR_BUILD.

2001-06-13  Joseph S. Myers  <jsm28@cam.ac.uk>

	* README: Remove version number.

2001-06-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* INSTALL/README: Update wrt. to the installation instructions now
	residing in gcc/doc/install.texi.

2001-06-13  Joseph S. Myers  <jsm28@cam.ac.uk>

	* README: Replace with a cut-down and updated version of gcc/README.

2001-06-12  David Edelsohn  <edelsohn@gnu.org>

	* config-ml.in (powerpc-*-* | rs6000-*-*): Allow aix64 and pthread
	multilibs to be disabled.

2001-06-11  Daniel Berlin  <dan@cgsoftware.com>

	* MAINTAINERS (Write After Approval): Add myself.

2001-06-09  Alexandre Oliva  <aoliva@redhat.com>

	* config.guess: Import CVS version 1.195.
	* config.sub: Import CVS version 1.212.

2001-06-08  Alexandre Oliva  <aoliva@redhat.com>, Jeff Sturm  <jsturm@one-point.com>

	* Makefile.in (AS_FOR_TARGET, LD_FOR_TARGET, NM_FOR_TARGET): If
	gcc/xgcc is built, use -print-prog-name to find out the program
	name to use.

2001-06-04  Phil Edwards  <pme@sources.redhat.com>

	* config.guess:  Import CVS version 1.194.  All gcc-local changes
	appear to also be in the master copy.
	* config.sub:  Import CVS version 1.211.

Mon Jun  4 16:32:53 2001  Mark Mitchell  <mark@codesourcery.com>

	* ltcf-c.sh (archive_cmds, archive_expsym_cmds) [solaris,
	with_gcc]: Use `gcc -shared' to build a shared library.

Mon Jun  4 16:24:43 2001  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* ltcf-c.sh (archive_cmd) [hpux, with_gcc]: Use gcc to link shared
	archives.

Fri Jun  1 18:55:19 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* MAINTAINERS (Write After Approval): Add myself.

2001-06-01  Hans-Peter Nilsson  <hp@axis.com>

	* configure.in (libstdcxx_flags): Do not try to execute
	libstdc++-v3/testsuite_flags until it exists.

2001-06-01  Alan Modra  <amodra@bigpond.net.au>

	* MAINTAINERS: Update my email address.

2001-05-31  Graham Stott  <grahams@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2001-05-28  Simon Patarin <simon.patarin@inria.fr>

	* ltcf-cxx.sh (osf3/osf4/osf5): Support creation of C++  shared
	libraries when using g++ with native linker.

2001-05-28  Alexandre Oliva  <aoliva@redhat.com>

	* ltconfig, ltmain.sh: Upgrade to libtool 1.4a 1.641.2.256.

2001-05-22  Alexandre Oliva  <aoliva@redhat.com>

	* ltcf-cxx.sh (allow_undefined_flag, no_undefined_flag)
	[aix4*|aix5*]: Prepend blank.

2001-05-20  Alexandre Oliva  <aoliva@redhat.com>

	* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
	ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.254.  Rebuilt a number
	of subdir/configure scripts to use the new libtool.m4.

2001-05-19  Matt Kraai  <kraai@alumni.carnegiemellon.edu>

	* MAINTAINERS (Write After Approval): Add myself.

2001-05-18  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in (libstdcxx_flags): Remove reference to libstdc++.INC.

2001-05-11  Ben Elliston  <bje@redhat.com>

	* Makefile.in (all-sid): New target.
	(check-sid, clean-sid, install-sid): Likewise.

2001-05-09  Jeffrey Oldham  <oldham@codesourcery.com>

	* ltcf-cxx.sh: Add -nostdlib to IRIX 6 archive_cmds.

2001-05-03  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (noconfigdirs) [*-cygwin*, *-mingw*, *-beos]: Disable
	libgcj.

2001-05-03  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (AS_FOR_TARGET, LD_FOR_TARGET, NM_FOR_TARGET): If
	gcc/xgcc is built, use -print-prog-name to find out the program
	name to use.

2001-04-26  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (noconfigdirs): Don't reset it from scratch in the
	target case; only append to it.

	* configure.in (noconfigdirs) [hppa*-*-*, mips*-*-irix6*,
	sparc-*-solaris2.8]: Disable ${libgcj}.

2001-04-25  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (libgcj_saved): Copy from $libgcj.
	(libgcj): Zero out if --enable-libgcj; add to noconfigdirs is
	--disable-libgcj.

2001-04-25  Gavin Romig-Koch  <gavin@redhat.com>

	* MAINTAINERS: Remove self as MIPS maintainer and
	C front end maintainer.

Mon Apr 23 09:15:03 2001  Anthony Green  <green@redhat.com>

	* configure.in: Move *-chorusos target case to the proper switch.
	Disable libgcj.

2001-04-12  Alexandre Oliva  <aoliva@redhat.com>

	* ltconfig, ltmain.sh, ltcf-cxx.sh: Upgraded to libtool 1.4a
	1.641.2.228.

2001-04-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* Makefile.in (STAGE1_CFLAGS): Pass down.

2001-04-13  Alan Modra  <amodra@one.net.au>

	* config.guess: Add hppa64-linux support.  Note for next import that
	this is already in the master file.
	* configure.in: Likewise.  Accept `parisc' alias for `hppa'.

2001-04-12  Alexandre Oliva  <aoliva@redhat.com>

	* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
	ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.226.

2001-04-11  Stan Shebs  <shebs@apple.com>

	* MAINTAINERS: Add self as Darwin port maintainer.

2001-04-11  Alan Modra  <amodra@one.net.au>

	* MAINTAINERS: Update my email address.

2001-04-10  Loren J. Rittle  <ljrittle@acm.org>

	* ltcf-cxx.sh: Support creation of C++ shared libraries on
	recent versions of FreeBSD (release 3 or later).
	* ltconfig: On FreeBSD, -lc must not be provided when building
	a shared library or else the standard -pthread gcc option is
	rendered worthless to later users of the built library.

2001-04-06  Joseph S. Myers  <jsm28@cam.ac.uk>

	* MAINTAINERS: Add self and RTH as C front end maintainers.

2001-04-05  Alexandre Oliva  <aoliva@redhat.com>

	* config.sub: Make sure to match an already-canonicalized
	machine name (eg. mn10300-unknown-elf).

2001-04-01  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (CXX_FOR_TARGET_FOR_RECURSIVE_MAKE, RECURSE_FLAGS):
	New macros.
	(bootstrap, cross): Use RECURSE_FLAGS.
	* configure.in: Subst CXX_FOR_TARGET_FOR_RECURSIVE_MAKE.

2001-03-27  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (CXX_FOR_TARGET): Use xgcc for libstdc++-v3.

2001-03-22  Colin Howell  <chowell@redhat.com>

	* Makefile.in (DO_X): Do not backslash single-quotes in
	backquotes (two places).

2001-03-22  Alexandre Oliva  <aoliva@redhat.com>

	Re-installed:
	2001-01-02  Laurynas Biveinis  <lauras@softhome.net>
	* ltcf-c.sh: Clear ac_cv_prog_cc_pic for DJGPP.  Do not add
	'-DPIC' to ac_cv_prog_cc_pic for DJGPP.
	* ltcf-cxx.sh: Likewise.
	* ltcf-gcj.sh: Likewise.

2001-03-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* MAINTAINERS: Add myself as "documentation co-maintainer".

2001-03-22  Alexandre Oliva  <aoliva@redhat.com>

	* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
	ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.198.

2001-03-19  Tom Tromey  <tromey@redhat.com>

	* config-ml.in: Handle GCJ and GCJFLAGS.

2001-03-21  Michael Chastain  <chastain@redhat.com>

	* Makefile.in: all-m4 depends on all-texinfo.

2001-03-20  Loren J. Rittle  <ljrittle@acm.org>

	* MAINTAINERS: Add myself to write after approval list.

2001-03-18  Laurynas Biveinis  <lauras@softhome.net>

	* Makefile.in (DO_X): Quote nested quotes.

2001-03-18  Alan Modra  <alan@linuxcare.com.au>

	* MAINTAINERS: Add myself to write after approval list.

2001-03-15  Laurynas Biveinis  <lauras@softhome.net>

	* Makefile.in (DO_X): Use double quotes for quoting
	"RANLIB=$${RANLIB}".

2001-03-10  Ovidiu Predescu  <ovidiu@cup.hp.com>

	* MAINTAINERS: Added Stan Shebs as new maintainer for Objective-C.

2001-03-09  Nicola Pero <n.pero@mi.flashnet.it>

	* configure.in: Only use `lang_requires' for languages athat are
	actually enabled.

2001-03-08  Phil Edwards  <pme@sources.redhat.com>

	* MAINTAINERS (C++ runtime libs):  Update and alphabatize.

2001-03-08  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (ALL_GCC, ALL_GCC_C, ALL_GCC_CXX): Set before use.

2001-03-07  Tom Tromey  <tromey@redhat.com>

	* configure.in: Allow config-lang.in to set `lang_requires' to list
	of other required languages.

2001-03-06  Laurynas Biveinis  <lauras@softhome.net>

	* Makefile.in: Remove RANLIB definition. Use RANLIB
	in RANLIB_FOR_TARGET, EXTRA_HOST_FLAGS, EXTRA_TARGET_FLAGS,
	EXTRA_GCC_FLAGS, $(DO_X) targets only when the RANLIB is set.

2001-02-28  Benjamin Kosnik  <bkoz@redhat.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (check-c++): Use tabs, not spaces.

2001-02-20  Laurynas Biveinis  <lauras@softhome.net>

	* MAINTAINERS: add myself to Write After Approval list.

2001-02-19  Benjamin Kosnik  <bkoz@redhat.com>

	* Makefile.in (check-c++): New rule.

	* configure.in (target_libs): Remove libg++.
	(noconfigdirs): Remove libg++.
	(noconfigdirs): Same.
	(noconfigdirs): Same.
	(noconfigdirs): Same.

	* config-ml.in: Remove libg++ references.

	* Makefile.in (TARGET_CONFIGDIRS): Remove libio, libstdc++, libg++.
	(ALL_TARGET_MODULES): Same.
	(configure-target-libg++): Remove.
	(all-target-libg++): Remove.
	(configure-target-libio): Remove.
	(all-target-libio): Remove.
	(check-target-libio): Remove.
	(.PHONY): Remove.
	(libg++.tar.bz2): Remove.
	(all-target-cygmon): Remove libio.
	(all-target-libstdc++): Remove.
	(configure-target-libstdc++): Remove.
	(TARGET_LIB_PATH): Remove libstdc++.
	(ALL_GCC_CXX): Remove libstdc++.
	(all-target-gperf): Correct.

2001-02-16  Nick Clifton  <nickc@redhat.com>

	* configure.in (noconfigdirs): Allow configuration of texinfo
	for Cygwin hosts.

2001-02-15  Anthony Green  <green@redhat.com>

	* configure: Introduce GCJ_FOR_TARGET.
	* configure.in: Ditto.
	* Makefile.in: Ditto.

2001-02-13  Andreas Schwab  <schwab@suse.de>

	* MAINTAINERS: Update mail address.

2001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* config.guess: Add linux target for S/390.
	* config.sub: Likewise.

2001-02-08  Chandrakala Chavva <cchavva@redhat.com>

	* configure.in: for *-chorusos, don't config target-newlib and
	target-libgloss.

2001-02-06  Ben Elliston  <bje@redhat.com>

	* configure: Output host type to stdout, not stderr.

2001-02-05  Mark Mitchell  <mark@codesourcery.com>

	* ltcf-c.sh: Add support for -no-undefined under GNU/Linux.
	* ltcf-cxx.sh: Likewise.

	* config.if: Assume enable_libstdcxx_v3 is defined.

2001-02-04  Mark Mitchell  <mark@codesourcery.com>

	Remove V2 C++ library.
	* configure.in: Remove --enable-libstdcxx_v3 support.

2001-01-31  Bryce McKinlay  <bryce@albatross.co.nz>

	* include/demangle.h: Add prototype for java_demangle_v3.

2001-01-29  Phil Edwards  <pme@sources.redhat.com>

	* COPYING.LIB:  Update to LGPL 2.1 from the FSF.

2001-01-27  Richard Henderson  <rth@redhat.com>

	* configure.in (target_makefile_frag) [alpha*-*]: Use mt-alphaieee.

2001-01-27  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* ltcf-cxx.sh (ac_cv_prog_cc_pic_works, ac_cv_prog_cc_static_works):
	Don't unset, it's non-portable and no longer necessary, set to empty
	instead.

2001-01-27  Michael Sokolov  <msokolov@ivan.Harhan.ORG>,  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* ltconfig: Shell portability fix for the tagname validity check.

2001-01-27  Alexandre Oliva  <aoliva@redhat.com>

	* ltcf-c.sh (ld_shlibs) [aix5*]: Disable on unknown CPU types.
	* ltcf-cxx.sh, ltcf-gcj.sh: Likewise.

2001-01-26  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* ltcf-cxx.sh: Use parentheses around eval $ac_compile.

2001-01-26  Tom Tromey  <tromey@redhat.com>

	* configure.in: Allow libgcj to be built on Sparc Solaris.

2001-01-25  David Edelsohn  <edelsohn@gnu.org>

	* ltcf-c.sh: Add aix5 case.
	* ltcf-cxx.sh: Likewise.
	* ltconfig: Likewise.

2001-01-24  Alexandre Oliva  <aoliva@redhat.com>

	* ltmain.sh (TAG disable-shared, TAG disable-static): Make sure we
	keep at least one of build_libtool_libs or build_old_libs set to
	yes.

	* ltcf-gcj.sh (lt_simple_link_test_code): Remove stray `(0)'.
	* libtool.m4 (_AC_LIBTOOL_GCJ): Pass $CPPFLAGS on.

2001-01-23  Bryce McKinlay  <bryce@albatross.co.nz>

	* configure.in: Enable libgcj on several additional platforms.

2001-01-22  Bryce McKinlay  <bryce@albatross.co.nz>

	* configure.in: Enable libgcj for linux targets.

2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* MAINTAINERS (Write After Approval): Add myself.

2001-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* MAINTAINERS: Add myself as vax port maintainer.

2001-01-11  Fergus Henderson  <fjh@cs.mu.oz.au>

	* MAINTAINERS: Add myself as Mercury front-end maintainer.

2001-01-09  Mike Stump  <mrs@wrs.com>

	* Makefile.in (CONFIGURE_TARGET_MODULES): Pass back configuration
	failures of subdirectories.

2001-01-02  Laurynas Biveinis  <lauras@softhome.net>

	* ltcf-c.sh: Clear ac_cv_prog_cc_pic for DJGPP.  Do not add
	'-DPIC' to ac_cv_prog_cc_pic for DJGPP.
	* ltcf-cxx.sh: Likewise.
	* ltcf-gcj.sh: Likewise.
	* ltconfig.sh: Fix typo.

2001-01-02  Laurynas Biveinis  <lauras@softhome.net>

	* configure: handle DOS-style absolute paths.

2001-01-02  Laurynas Biveinis  <lauras@softhome.net>

	* configure.in: remove supported directories from $noconfigdirs for DJGPP.

2000-12-30  Marek Michalkiewicz  <marekm@linux.org.pl>

	* MAINTAINERS: Add myself as avr port co-maintainer.

2000-12-28  Ben Elliston  <bje@redhat.com>

	* MAINTAINERS: Add myself under ``Write After Approval''.

2000-12-19  Joseph S. Myers  <jsm28@cam.ac.uk>

	* texinfo: Remove directory from GCC.

2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>

	* COPYING: Update to current
	ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
	to 19yy as example year in copyright notice).

2000-12-18  Benjamin Kosnik  <bkoz@redhat.com>

	* Makefile.in (BASE_FLAGS_TO_PASS): Alphabetize.
	(libstdcxx_incdir): Pass down.
	* config.if: Remove expired bits for cxx_interface, add stub.
	(libstdcxx_incdir): Add variable for g++ include directory.
	* configure.in (gxx_include_dir): Use it.

2000-12-18  Alexandre Oliva  <aoliva@redhat.com>

	* MAINTAINERS: Added self as sh port co-maintainer.  Removed entry
	with old-email address from ``Write After Approval''.

2000-12-15  Andreas Jaeger  <aj@suse.de>

	* configure.in: Handle lang_dirs.

2000-12-14  Tom Tromey	<tromey@redhat.com>

	* MAINTAINERS: Removed brads.

	* MAINTAINERS: Added gcj developers.

2000-12-13  Anthony Green  <green@redhat.com>

	* configure.in: Disable libgcj for any target not specifically
	listed.  Disable libgcj for x86 and Alpha Linux until compatible
	with g++ abi.

2000-12-13  Mike Stump  <mrs@wrs.com>

	* Makefile.in (local-distclean): Also remove fastjar.

2000-12-12  Rodney Brown  <RodneyBrown@mynd.com>

	* contrib/gcc_update: Add fastjar --touch entries.

2000-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in: Disable language-specific target libraries for
	languages that aren't enabled.

2000-12-10  Anthony Green  <green@redhat.com>

	* configure.in: Define libgcj.  Disable libgcj target libraries for
	most targets.

2000-12-10  Neil Booth  <neilb@earthling.net>

	* MAINTAINERS: Update mail address, remove from WAA list.

2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* libjava: Imported from /cvs/java.
	* libffi: Likewise.
	* Boehm-gc: Likewise.

2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* configure.in (target_libs): Revert 2000-12-08 patch.
	(noconfigdirs): Added target-libjava.

2000-12-09  Laurynas Biveinis  <lauras@softhome.net>

	* djunpack.bat: removed.

2000-12-09  Laurynas Biveinis  <lauras@softhome.net>

	* Makefile.in: handle DOS-style absolute paths.
	* config-ml.in: likewise.
	* symlink-tree: likewise.

2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* fastjar: Imported.

2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* Makefile.in (TARGET_CONFIGDIRS): Wrong place. Removed note about
	libjava.
	* configure.in (target_libs): Removed `target-libjava'.

2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* Makefile.in (TARGET_CONFIGDIRS): Added note about libjava.
	(ALL_MODULES): Added fastjar.
	(NATIVE_CHECK_MODULES, INSTALL_MODULES, CLEAN_MODULES): Likewise.
	(all-target-libjava): all-fastjar replaces all-zip.
	(all-fastjar): Added.
	(configure-target-fastjar, all-target-fastjar): Likewise.
	* configure.in (host_tools): Added fastjar.

2000-12-07  Mike Stump  <mrs@wrs.com>

	* Makefile.in (local-distclean): Remove leftover built files.

2000-11-24  Nick Clifton  <nickc@redhat.com>

	* configure.in (xscale-elf): Add target.
	(xscale-coff): Add target.

2000-11-22  Loren J. Rittle  <ljrittle@acm.org>

	* ltcf-cxx.sh: Support creation of C++ shared libraries on
	recent versions of FreeBSD (release 3 or later).
	* ltconfig: On FreeBSD, -lc must not be provided when building
	a shared library or else the standard -pthread gcc option is
	rendered worthless to later users of the built library.

2000-11-16  Fred Fish  <fnf@be.com>

	* configure.in (enable_libstdcxx_v3): Fix typo,
	libstd++ -> libstdc++.

2000-11-21  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* MAINTAINERS: Add self to Write After Approval list.

2000-11-21  Bernd Schmidt  <bernds@redhat.com>

	* MAINTAINERS: Update my email address.  Add myself to global write
	privs list.

2000-11-18  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in: Merge with src and libgcj.
	(ALL_GCC_C, ALL_GCC_CXX): New macros.  Use them as dependencies of
	configure-target-<library> when their configure scripts need the C
	or C++ library to have already been built to work properly.
	(do_proto_toplev): Set them to an empty string.

	* Makefile.in (HOST_LIB_PATH, TARGET_LIB_PATH): New macros.
	(REALLY_SET_LIB_PATH): Use them.

2000-11-17  Stan Shebs  <shebs@apple.com>

	* MAINTAINERS: Add self to Write After Approval list.

2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>

	* configure: Provide the original toplevel configure arguments
	(including $0) to subprocesses in the environment rather than
	through gcc/configargs.h.

2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>

	* MAINTAINERS: Remove references to cccp. Change C9X reference to
	C99.  Alphabetise "Write After Approval" list.

2000-11-12  Mark Mitchell  <mark@codesourcery.com>

	* configure: Turn on libstdc++ V3 by default.

	* ltcf-c.sh: On Solaris, use `gcc -shared' to build a shared library
	if we've got GCC.

2000-11-11  Philip Blundell  <philb@gnu.org>

	* MAINTAINERS: Add self to Write After Approval list.

2000-11-09  David Edelsohn  <edelsohn@gnu.org>

	* ltcf-c.sh (aix4): Improve shared library configuration; require
	exporting symbols.
	* ltcf-cxx.sh (aix4): Define.
	* ltconfig (aix4): Define library and soname specs appropriate for
	AIX.  Define command to create export symbols list.

Mon Nov  6 14:19:35 2000  Christopher Faylor <cgf@cygnus.com>

	* config.sub: Add support for Sun Chorus

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

	* MAINTAINERS: Rename <name>@cygnus.com addresses to
	<name>@redhat.com.  Also installed new email address for Clint
	Popetz.

2000-10-30  Joseph S. Myers  <jsm28@cam.ac.uk>

	* etc: Remove directory from GCC.

2000-10-16  Michael Meissner  <meissner@redhat.com>

	* configure (gcc/configargs.h): Only create if there is a build GCC
	directory created.

2000-10-16  Matthias Klose  <doko@debian.org>

	* config.if: Search libstdc++-v3/configure.in for INTERFACE,
	when configured for libstdc++-v3.

2000-10-05  Phil Edwards  <pme@gcc.gnu.org>

	* configure: Save configure arguments to gcc/configargs.h.

2000-10-04  Philipp Thomas  <pthomas@suse.de>

	* config.guess: Import CVS version 1.157.
	* config.sub: Import CVS version 1.181.

2000-10-04  Andris Pavenis  <pavenis@latnet.lv>

	* Makefile.in (bootstrap): avoid recursion if subdir missing
	(cross): ditto
	(do-proto-toplev): ditto

2000-09-30  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (DEVO_SUPPORT): Added gettext.m4, libtool.m4,
	ltcf-c.sh, ltcf-cxx.sh and ltcf-gcj.sh.

	* ltconfig, ltmain.sh, libtool.m4, ltcf-cxx.sh: Updated from libtool
	multi-language branch, to work around Solaris' /bin/sh bug.  Rebuilt
	all affected `configure' scripts.

Mon 25-Sep-2000 19:46:09 BST  Neil Booth  <neilb@earthling.net>

	* MAINTAINERS: Add self as cpplib co-maintainer.

2000-09-24  Aldy Hernandez  <aldyh@redhat.com>

	* MAINTAINERS: Add self to Write After Approval list.

2000-09-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* INSTALL/README: egcs -> GCC update.

Sun Sep 17 16:55:59 CEST 2000	Marc Espie <espie@cvs.openbsd.org>

	* MAINTAINERS: Add myself to Write After Approval list.

2000-09-15  Kazu Hirata  <kazu@hxi.com>

	* MAINTAINERS: Add myself to Write After Approval list.

Wed Sep 13 11:11:29 2000  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Do not build byacc for hppa64.  Provide paths to the
	X11 libraries for hppa64.

2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* MAINTAINERS: Add myself as 68hc11 port maintainer.

2000-09-06  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (all-zlib): Added dummy target.

	* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
	ltcf-gcj.sh: Updated from libtool multi-language branch.

2000-09-05  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (all-bootstrap): Added all-texinfo and all-zlib.
	(bootstrap*): Depend on all-bootstrap.

2000-09-05  Philipp Thomas  <pthomas@suse.de>

	* config.guess: Import CVS version 1.156.
	* config.sub: Import CVS version 1.179.

2000-09-02  Anthony Green  <green@cygnus.com>

	* Makefile.in (all-gcc): Depend on all-zlib.
	(CLEAN_MODULES): Add clean-zlib.
	(ALL_MODULES): Add all-zlib.
	* configure.in (host_libs): Add zlib.

2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, DJ Delorie  <dj@redhat.com>

	* configure.in (FLAGS_FOR_TARGET): Use -nostdinc even for Canadian
	crosses, but add gcc/include to the header search path for them.

2000-08-04  David E. O'Brien  <obrien@FreeBSD.org>

	* MAINTAINERS: Add self to Write After Approval list.

2000-08-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config.guess: Import CVS version 1.152.
	* config.sub: Import CVS version 1.177.

2000-08-25  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (FLAGS_FOR_TARGET): Use $target_configdirs and
	$targargs to tell whether newlib is going to be built.

	* configure.in [disable-libstdcxx-v3] (libstdcxx_flags): Search
	$$r/TARGET_SUBDIR/libio for _G_config.h.

2000-08-23  Alexandre Oliva  <aoliva@redhat.com>

	* MAINTAINERS: Add self as a build machinery (*.in) maintainer.

2000-08-22  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS: Add self as a build machinery (*.in) maintainer

2000-08-22  Alexandre Oliva  <aoliva@redhat.com>

	* config-ml.in (CC, CXX): Avoid trailing whitespace.
	(LD_LIBRARY_PATH, SHLIB_PATH): Adjust for multilibs and export to
	sub-configures.

2000-08-21  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS: Add self as a libiberty maintainer

2000-08-16  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (libstdcxx_flags): Use
	libstdc++-v3/src/libstdc++.INC.

2000-08-15  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (libstdcxx_flags): Use libstdc++-v3/src/INCLUDES.

2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>

	* configure.in (libstdcxx_flags): Remove -isystem $$s/libio/stdio.

	* configure: Make enable_threads and enable_shared defaults
	explicit.  Substitute enable_threads into generated Makefiles.
	* configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
	* libtool.m4: Accept *-*-linux* not just *-*-linux-gnu*.

2000-08-13  Geoff Keating  <geoffk@cygnus.com>

	* Makefile.in (GCC_FOR_TARGET): Also add -B$$r/gcc/ here.

2000-08-12  Alexandre Oliva  <aoliva@redhat.com>

	* config-ml.in (CC): Remove bogus duplicate quotation mark from
	previous delta.

2000-08-11  Jason Merrill  <jason@redhat.com>

	* configure.in (CC_FOR_TARGET, CHILL_FOR_TARGET,
	CXX_FOR_TARGET): Add -B$$r/gcc/ here.
	(FLAGS_FOR_TARGET): Not here.
	(CHILL_FOR_TARGET, CXX_FOR_TARGET): Don't check the list of languages.

2000-08-11  Alexandre Oliva  <aoliva@redhat.com>

	* config-ml.in (CC, CXX): Don't introduce a leading space.

2000-08-07  DJ Delorie  <dj@delorie.com>

	* MAINTAINERS: Add self as a DJGPP maintainer

2000-08-07  DJ Delorie  <dj@redhat.com>

	* configure.in (FLAGS_FOR_TARGET): invert test for xgcc, should mean
	"if we're also building gcc, and it's a gcc that will run on the
	build machine, we want to use its includes instead of the system's
	default includes".

2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>

	* MAINTAINERS: Add self to Write After Approval list.

2000-08-03  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (libstdcxx_flags): Don't use `"'.

	* config-ml.in: Adjust multilib search paths to the
	appropriate multilib tree.

2000-08-02  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (CHILL_FOR_TARGET, CXX_FOR_TARGET): Convert blanks to
	commas in $LANGUAGES.

2000-08-02  Manfred Hollstein  <manfredh@redhat.com>

	* configure.in: Re-enable all references to libg++ and librx.

2000-08-01  Alexandre Oliva  <aoliva@redhat.com>

	* ltconfig, ltmain.sh: Update from libtool multi-language branch.
	* ltcf-c.sh (need_lc): Fix test message.  Set wl for archive_cmds.
	(ac_cv_prog_cc_pic): Don't print `cached' without `checking'.
	* ltcf-cxx.sh (need_lc): Set based on postdeps.

	* configure.in (qCXX_FOR_TARGET): Use echo instead of expr.

2000-07-31  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (qCXX_FOR_TARGET): Quote `&' characters in
	CXX_FOR_TARGET for sed.

2000-07-30  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (CC_FOR_TARGET, CHILL_FOR_TARGET, CXX_FOR_TARGET):
	Do not override if already set in the environment or in configure.
	Don't duplicate $(FLAGS_FOR_TARGET) if it already appears in them.
	(FLAGS_FOR_TARGET): Don't use host directories on Canadian crosses.

2000-07-28  Alexandre Oliva  <aoliva@redhat.com>

	* libtool.m4, ltcf-c.sh, ltcf-cxx.sh, ltcf-gcj.sh: New files from
	the libtool CVS tree multi-language branch.
	* ltconfig, ltmain.sh: Updated.

2000-07-27  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (clean-target-libgcc): Remove gcc/libgcc.
	(clean-target): Depend on it.

	* Makefile.in (FLAGS_FOR_TARGET): New macro.
	(GCC_FOR_TARGET): Use it.
	(CC_FOR_TARGET, CXX_FOR_TARGET, CHILL_FOR_TARGET): Now defined...
	* configure.in: ... here.
	(FLAGS_FOR_TARGET): Define.  Add ld build dir to -L path.
	(libstdcxx_flags): Define and append to CXX_FOR_TARGET.

2000-07-24  Eric Christopher  <echristo@cygnus.com>

	* MAINTAINERS: Add self to Write After Approval list.

2000-07-24  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (configure-target-libf2c): Depend on $(ALL_GCC).
	(configure-target-libchill, configure-target-libobjc): Likewise.

	* configure.in: Use the same cache file for all target libs.
	* config-ml.in: But different cache files per multilib variant.

2000-07-23  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* configure (topsrcdir): Don't use dirname.

2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>

	* MAINTAINERS: Add self to Write After Approval list.

2000-07-20  Jason Merrill  <jason@redhat.com>

	* configure.in: Remove all references to libg++ and librx.

	* configure, configure.in, Makefile.in: Unify gcc and binutils.

2000-07-20  Hans-Peter Nilsson  <hp@axis.com>

	* config.sub: Update to subversions version 2000-07-06.

2000-07-12  Andrew Haley  <aph@cygnus.com>

	* configure.in (host_makefile_frag): Use mh-ia64pic on IA-64 hosts.
	(target_makefile_frag): Use mt-ia64pic on IA-64 targets.

2000-07-07  Phil Edwards  <pme@sourceware.cygnus.com>

	* symlink-tree:  Check number of arguments.

2000-07-05  Jim Wilson  <wilson@cygnus.com>

	* Makefile.in (CXX_FOR_TARGET): Add libstdc++ to the library
	search path for a g++ extracted from the build tree.  This
	will allow link tests run by configure scripts in
	subdirectories to succeed.

2000-07-01  Koundinya K  <kk@ddeorg.soft.net>

	* ltconfig: Add support for mips-dde-sysv4.2MP

2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* MAINTAINERS: Add myself as loop discovery maintainer.

2000-06-28  Corinna Vinschen  <vinschen@cygnus.com>

	* ltconfig: Check for host_os beeing one of `cygwin', `mingw' or
	`os2'. Force ac_cv_exeext to be ".exe" in that case.

2000-06-19  Timothy Wall  <twall@cygnus.com>

	* configure.in (noconfigdirs): Set noconfigdirs for tic54x target.
	* config.sub: Add tic54x target.

Sun Jun 11 17:20:00 MET 2000  Toon Moene  <toon@moene.indiv.nluug.nl>

	* MAINTAINERS: Add self as Fortran maintainer,
	remove Craig Burley.

Tue May 30 19:01:12 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* config.sub: Import CVS version 1.167 Tue May 30 09:00:07 2000.
	* config.guess: Import CVS version 1.148 Tue May 30 09:00:06 2000

Mon May 29 21:15:00 MET 2000  Philipp Thomas  <pthomas@suse.de>

	* MAINTAINERS: Add self as i18n maintainer

20000-05-21  H.J. Lu  (hjl@gnu.org)

	* Makefile.in (CC_FOR_TARGET): Make sure as/ld in the gcc
	directory are used if they exist. Make sure
	$(build_tooldir)/include is searched for header files,
	$(build_tooldir)/lib/ for library files.
	(GCC_FOR_TARGET): Likewise.
	(CXX_FOR_TARGET): Likewise.

Thu May 18 10:58:13 2000  Jeffrey A Law  (law@cygnus.com)

	* configure.in (hppa*64*-*-*): Do build ld for this configuration.

Wed May 17 16:03:48 2000  Alexandre Oliva  <aoliva@cygnus.com>

	* Makefile.in (configure-target-libiberty): Depend on
	configure-target-newlib.

2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>

	* configure.in, Makefile.in: Merge all libffi-related
	configury stuff from the libgcj tree.

Tue May 16 10:06:21 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	Thu Apr 27 11:01:48 2000 Andrew Cagney <cagney@b1.cygnus.com>:
	* Makefile.in (do-tar-bz2, do-md5sum): Skip CVS directories.

Tue May 16 09:57:35 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	Wed Apr 26 17:03:53 2000 Andrew Cagney <cagney@b1.cygnus.com>:
	* Makefile.in (do-djunpack): New target. Update djunpack.bat with
	current version information.  Add to proto-toplev directory.
	(gdb-taz): Build do-djunpack.

2000-05-15  David Edelsohn  <edelsohn@gnu.org>

	* configure.in: Special case powerpc*-*-aix* target_makefile_frag.

Mon May 15 13:39:09 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* MAINTAINERS: Add self to Write After Approval list.

2000-05-13 Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* ltmain.sh: Preserve in relink_command any environment
	variables that may affect the linker behavior.

Fri May 12 11:23:17 2000  Jeffrey A Law  (law@cygnus.com)

	* config.sub (basic_machine): Recognize hppa64 as a valid cpu type.

Wed May 10 21:26:51 2000  Jim Wilson  <wilson@cygnus.com>

	* configure.in (ia64*-*-elf*): Add gdb and friends to noconfigdirs.

2000-05-08  Eli Zaretskii  <eliz@is.elta.co.il>

	* djunpack.bat: Change the Sed script to replace @V@ in fnchange.lst
	with the version name.

Sat May  6 21:12:55 CDT 2000  Jason Eckhardt  <jle@cygnus.com>

	* MAINTAINERS: Add self as bb-reorder maintainer.

2000-05-01  Benjamin Kosnik  <bkoz@cygnus.com>

	* config.if: Tweak.

2000-04-23  Eli Zaretskii  <eliz@is.elta.co.il>

	* djunpack.bat: New file.

Wed Apr 19 12:46:26 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (taz, gdb-taz, gas.tar.bz2, binutils.tar.bz2,
	gas+binutils.tar.bz2, libg++.tar.bz2, gnats.tar.bz2, gdb.tar.bz2,
	dejagnu.tar.bz2, gdb+dejagnu.tar.bz2, insight.tar.bz2,
	insight+dejagnu.tar.bz2, newlib.tar.bz2): Pass MD5PROG to sub-make.

2000-04-16  Dave Pitts  <dpitts@cozx.com>

	* config.sub (case $basic_machine): Change default for "ibm-*"
	to "openedition".

2000-04-13  Andreas Jaeger  <aj@suse.de>

	* MAINTAINERS: Added myself.

Wed Apr 12 16:42:48 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (gdb-taz): New target.  GDB specific archive.
	(do-md5sum): New target.
	(MD5PROG): Define.
	(PACKAGE): Default to TOOL.
	(VER): Default to a shell script.
	(taz): Rewrite target.  Move real work to do-proto-toplev.  Include
	md5 checksum generation.
	(do-proto-toplev): New target. Create $(PACKAGE)-$(VER) link.
	(do-tar-bz2): Delete creation of $(PACKAGE)-$(VER) link.
	(gdb.tar.bz2, dejagnu.tar.bz2, gdb+dejagnu.tar.bz2,
	insight.tar.bz2): Use gdb-taz to create archive.

Fri Apr  7 18:10:29 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure (warn_cflags): Delete.

Thu Apr  6 16:15:14 2000  Philippe De Muyter  <phdm@macqel.be>

	* MAINTAINERS: Added myself.

2000-04-05  Benjamin Kosnik  <bkoz@cygnus.com>
	    Martin v. Löwis  <martin@loewis.home.cs.tu-berlin.de>

	* configure.in (enable_libstdcxx_v3): Add.
	(target_libs): Add bits here to switch between libstdc++-v2 and
	libstdc++-v3.
	* config.if: And this file too.
	* Makefile.in: Add libstdc++-v3 targets.

2000-04-05  Michael Meissner  <meissner@redhat.com>

	* config.sub (d30v): Add d30v as a basic machine type.

2000-03-29  Jason Merrill  <jason@casey.cygnus.com>

	* configure.in: -linux-gnu*, not -linux-gnu.

Sun Mar 12 17:30:30 2000  Toon Moene  <toon@moene.indiv.nluug.nl>

	* MAINTAINERS: Add self in write-after-approval section.

Sun Mar 12 00:23:32 2000  Jim Wilson  <wilson@cygnus.com>

	* MAINTAINERS: Add self as ia64 port maintainer.

2000-03-08  Neil Booth  <NeilB@earthling.net>

	* MAINTAINERS: Add self in write-after-approval section.

Fri Mar  3 18:44:08 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (taz): Set PACKAGE to TOOL when not defined.
	(do-tar-bz2): Replace TOOL with PACKAGE.
	(gdb.tar.bz2): Remove GDBTK from GDB package.
	(gdb+dejagnu.tar.bz2, insight.tar.bz2, insight+dejagnu.tar.bz2,
	dejagnu.tar.bz2): New packages.

2000-02-27  Andreas Jaeger  <aj@suse.de>

	* configure.in: Add entry for mips*-*-linux*, move catch all
	*-*-*linux* entry below this one.

2000-02-27  Ian Lance Taylor  <ian@zembu.com>

	* ltconfig, ltmain.sh: Update to libtool 1.3.4.

2000-02-24  Nick Clifton  <nickc@cygnus.com>

	* config.sub: Support an OS of "wince".

Thu Feb 24 16:15:56 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* config.guess, config.sub: Updated to match config's 2000-02-15
	version.

2000-02-23  Linas Vepstas <linas@linas.org>

	* config.sub: Add support for Linux/IBM 370.
	* configure.in: Likewise.

2000-02-22  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add mips-pe, sh-pe and arm-wince-pe targets.

2000-02-20  Christopher Faylor <cgf@cygnus.com>

	* config.guess: Guess "cygwin" rather than "cygwin32".

2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure (gcc_version): When setting, narrow search to
	lines containing `version_string'.

2000-02-15  Denis Chertykov  <denisc@overta.ru>

	* config.sub: Add support for avr target.

2000-02-14  Nick Clifton  <nickc@cygnus.com>

	* MAINTAINERS: Add maintainers for MCore port.

Tue Feb  1 00:07:46 2000  Hans-Peter Nilsson  <hp@bitrange.com>

	* config.sub: Add mmix-knuth-mmixware.

2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* MAINTAINERS: Pair cccp with cpplib maintainership.

2000-01-27  Christopher Faylor <cgf@redhat.com>

	* Makefile.in (CC_FOR_TARGET): Add new winsup directory
	structure stuff to -L library search.
	(CXX_FOR_TARGET): Ditto.
	(CROSS_CHECK_MODULES): Fix spelling mistake.

2000-01-24  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.in (CXX_FOR_TARGET): Use g++, not xgcc, to invoke
	the C++ compiler.

2000-01-12  Richard Henderson  <rth@cygnus.com>

	* configure.in: Don't build some bits for beos.

2000-01-12  Joel Sherrill (joel@OARcorp.com)

	* Makefile.in (CC_FOR_TARGET): Use newlib libraries as well
	as include files.

2000-01-11  Zack Weinberg  <zack@wolery.cumb.org>

	* Add self as cpplib maintainer, as requested by Jason
	Merrill.  Correct my e-mail address.

2000-01-06  Geoff Keating  <geoffk@cygnus.com>

	* configure.in: Use mt-aix43 to handle *_TARGET defs,
	not mh-aix43.

Thu Dec 23 03:43:36 1999  Hans-Peter Nilsson  <hp@bitrange.com>

	* MAINTAINERS: Add myself to "write after approval" list.

1999-12-14  Richard Henderson  <rth@cygnus.com>

	* config.guess (alpha-osf, alpha-linux): Detect ev67.
	* config.sub: Accept alphaev[78], alphaev8.

1999-12-03  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* config.guess, config.sub: Update from autoconf.

1999-11-29  Bruce Korb  <autogen@linuxbox.com>

	* MAINTAINERS:  update my playtime e-address.

Tue Nov 23 00:57:41 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config-ml.in (sparc*-*-*): Disable sparcv9 support if the
	necessary libraries are missing.

Fri Nov 19 11:22:31 MST 1999	Diego Novillo <dnovillo@cygnus.com>

	* MAINTAINERS: Add new 'write after approval' maintainer.

Wed Nov 17 16:08:43 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* MAINTAINERS: Add new Java maintainer.

1999-10-25  Andreas Schwab  <schwab@suse.de>

	* configure: Fix quoting inside arguments of eval.

1999-10-21  Nick Clifton  <nickc@cygnus.com>

	* config-ml.in: Allow suppression of some ARM multilibs.

Tue Sep  7 23:33:57 1999  Linas Vepstas  <linas@linas.org>

	* config.guess: Add OS/390 match pattern.
	* config.sub: Add mvs, openedition targets.
	* configure.in (i370-ibm-opened*): New.

1999-09-04  Steve Chamberlain  <sac@pobox.com>

	* config.sub: Add support for configuring for pj.

1999-08-31  Nick Clifton  <nickc@cygnus.com>

	* config.sub (maybe_os): Add support for configuring for fr30.

1999-08-25  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Do not configure or build ld for AIX
	platforms.  ld is known to be broken on these platforms.

Wed Aug 25 01:12:25 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config-ml.in: Pass compiler flag corresponding to multidirs to
	subdir configures.

1999-08-09  Ian Lance Taylor  <ian@zembu.com>

	* Makefile.in (LDFLAGS): Define.

1999-08-08  Mumit Khan  <khan@xraylith.wisc.edu>

	* configure.in (i[3456]-*-mingw32*): Don't put gprof in
	noconfigdirs.
	(*-*-cygwin*): Likewise.

1999-08-08  Ian Lance Taylor  <ian@zembu.com>

	* mkdep: New file.
	* Makefile.in (GAS_SUPPORT_DIRS): Add mkdep.
	(BINUTILS_SUPPORT_DIRS): Add mkdep.

	From Eli Zaretskii <eliz@is.elta.co.il>:
	* configure (tmpfile): Change cONf$$ to cNf$$ to avoid an overly
	long file name when using DJGPP on MS-DOS.

Wed Aug  4 02:07:14 1999  Jeffrey A Law  (law@cygnus.com)

	* config.sub (vxworks case): Use os=-vxworks, not os=vxworks.

1999-07-30  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* Makefile.in (check-target-libio): Remove all-target-libstdc++
	dependency as this causes "make check" to globally "make all"

Tue Jun 22 23:45:18 1999  Tom Tromey  <tromey@cygnus.com>

	* configure.in (target_libs): Added target-zlib.
	* Makefile.in (ALL_TARGET_MODULES): Added zlib.
	(CONFIGURE_TARGET_MODULES): Likewise.
	(CHECK_TARGET_MODULES): Likewise.
	(INSTALL_TARGET_MODULES): Likewise.
	(CLEAN_TARGET_MODULES): Likewise.
	(configure-target-zlib): New target.
	(all-target-zlib): Likewise.
	(all-target-libjava): Depend on all-target-zlib.
	(configure-target-libjava): Depend on configure-target-zlib.

	* Makefile.in (configure-target-libjava): Depend on
	configure-target-newlib.
	(configure-target-boehm-gc): New target.
	(configure-target-qthreads): New target.

	* configure.in (target_libs): Added target-qthreads.
	* Makefile.in (ALL_TARGET_MODULES): Added qthreads.
	(CONFIGURE_TARGET_MODULES): Likewise.
	(CHECK_TARGET_MODULES): Likewise.
	(INSTALL_TARGET_MODULES): Likewise.
	(CLEAN_TARGET_MODULES): Likewise.
	(all-target-qthreads): New target.
	(configure-target-libjava): Depend on configure-target-qthreads.
	(all-target-libjava): Depend on all-target-qthreads.

	* Makefile.in (ALL_TARGET_MODULES): Added libjava, boehm-gc.
	(CONFIGURE_TARGET_MODULES): Likewise.
	(CHECK_TARGET_MODULES): Likewise.
	(INSTALL_TARGET_MODULES): Likewise.
	(CLEAN_TARGET_MODULES): Likewise.
	(all-target-libjava): New target.
	(all-target-boehm-gc): Likewise.
	* configure.in (target_libs): Added libjava, boehm-gc.

1999-07-22  Ian Lance Taylor  <ian@zembu.com>

	* Makefile.in (binutils.tar.bz2): Don't pass makeall.bat and
	configure.bat in SUPPORT_FILES.
	(gas+binutils.tar.bz2): Likewise.

	* makeall.bat: Remove; obsolete.

1999-07-21  Ian Lance Taylor  <ian@zembu.com>

	From Mark Elbrecht:
	* configure.bat: Remove; obsolete.

1999-07-11  Ian Lance Taylor  <ian@zembu.com>

	* configure: Add -W -Wall to the default CFLAGS when compiling with
	gcc.

Thu Jul  8 12:32:23 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>

	* configure.in: Build ld, binutils & gas for hppa*-*-linux-gnu*.

1999-06-30  Mark Mitchell  <mark@codesourcery.com>

	* configure.in: Build ld on IRIX6.

1999-06-12  Ian Lance Taylor  <ian@zembu.com>

	* Makefile.in: Change distribution targets to use bzip2 instead of
	gzip.
	(TEXINFO_SUPPORT): Set to just texinfo/texinfo.tex.
	(taz): Don't use texinfo/gpl.texinfo or texinfo/lgpl.texinfo.

1999-06-04  Nick Clifton  <nickc@cygnus.com>

	* config.sub: Add mcore target.

Sun May 30 16:03:16 1999  Cort Dougan  <cort@cs.nmt.edu>

	* config.guess (ppc-*-linux-gnu): Also use ld emul elf32ppclinux.

Tue May 25 11:20:46 1999  H.J. Lu  (hjl@gnu.org)

	* config.guess (dummy): Changed to $dummy.

1999-05-24  Nick Clifton  <nickc@cygnus.com>

	* config.sub: Tidied up case statements.

1999-05-22  Ben Elliston  <bje@cygnus.com>

	* config.guess: Handle NEC UX/4800. Contributed by Jiro Takabatake
	<jiro@din.or.jp>.

	* config.guess: Merge with FSF version. Future changes will be
	more accurately recorded in this ChangeLog.
	* config.sub: Likewise.

Thu May 20 10:00:42 1999   Stephen L Moshier  <moshier@world.std.com>

	 * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.

1999-04-30  Tom Tromey  <tromey@cygnus.com>

	* ltmain.sh: [mode link] Always use CC given by ltconfig.

1999-04-23  Tom Tromey  <tromey@cygnus.com>

	* ltconfig, ltmain.sh: Update to libtool 1.2f.

1999-04-20  Drew Moseley  <dmoseley@cygnus.com>

	* configure.in (noconfigdirs): Don't build libstub for arm-elf targets.
	(noconfigdirs): Don't build any bsp stuff for for arm-oabi targets.
	Bad merge removed these two changes.

Tue Apr 13 22:50:54 1999  Donn Terry (donn@interix.com)
			  Martin Heller (Ing.-Buero_Heller@t-online.de)

	* config.guess (interix Alpha): Add.

1999-04-11  Richard Henderson  <rth@cygnus.com>

	* configure.in (i?86-*-beos*): Do config gperf; don't config
	gdb, newlib, or libgloss.

Sun Apr 11 23:55:34 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* config-ml.in: On mips*-*-*, if multidirs contains mabi=64, try to
	link a trivial program with -mabi=64.  If it fails, remove mabi=64
	from multidirs.

Sat Apr 10 21:50:01 1999  Philipp Thomas  (kthomas@gwdg.de)

	* config.sub: Set basic_machine to i586 when target_alias = k6-*.

1999-04-08  Nick Clifton  <nickc@cygnus.com>

	* config.sub: Add support for mcore targets.

1999-04-07  Michael Meissner  <meissner@cygnus.com>

	* configure.in (d30v-*): Use config/mt-d30v as makefile fragment,
	not mt-ospace, in order to shut up assembler warning about using
	symbols that are named the same as registers.

1999-04-07  Drew Moseley  <dmoseley@cygnus.com>

	* Makefile.in (all-target-cygmon): Added all-target-bsp to the
	dependency list for all-target-cygmon.

1999-04-05  Doug Evans  <devans@casey.cygnus.com>

	* config-ml.in: Check $host, not $target, for selective multilibs.
	(arm-*-*): Allow disabling of biendian, h/w fp, 26 bit apcs,
	thumb interworking, and underscore prefix multilibs.

1999-04-04  Ian Lance Taylor  <ian@zembu.com>

	* missing: Update to version from current automake.

Fri Apr  2 15:11:32 1999  H.J. Lu  (hjl@gnu.org)

	* configure (gxx_include_dir): Removed.

	* configure.in (gxx_include_dir): Handle it.
	* Makefile.in: Likewise.

1999-03-29  Gavin Romig-Koch  <gavin@cygnus.com>

	* config.sub (mips64vr4111,mips64vr4111el) Add.

1999-03-21  Ben Elliston  <bje@cygnus.com>

	* config.guess: Correct typo for detecting ELF on FreeBSD.

Thu Mar 18 00:17:50 1999  Mark Elbrecht <snowball3@usa.net>

	* configure.in (pc-msdosdjgpp): Set host_makefile_frag to
	config/mh-djgpp.

Thu Mar 11 18:37:23 1999  Drew Moseley  <dmoseley@cygnus.com>

	* Makefile.in (all-target-bsp): Added all-gcc all-binutils and
	all-target-newlib to dependency list for all-target-bsp.

Thu Mar 11 01:19:31 1999  Mumit Khan  <khan@xraylith.wisc.edu>

	* config.sub: Add i386-uwin support.
	* config.guess: Likewise.

Thu Mar 11 01:07:55 1999  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>

	* configure.in: cleanup, add mh-*pic handling for arm, special
	case powerpc*-*-aix*

Wed Mar 10 18:35:07 1999  Jeff Johnston  <jjohnstn@cygnus.com>

	* configure.in (noconfigdirs): Removed target-libgloss so libnosys.a
	can be built.

Wed Mar 10 17:39:09 1999  Drew Moseley  <dmoseley@cygnus.com>

	* configure.in: Added bsp support to arm-*-coff and arm-*-elf
	targets.

1999-03-02  Nick Clifton  <nickc@cygnus.com>

	* config.sub: Rename CYGNUS LOCAL to EGCS LOCAL

Sun Feb 28 02:20:00 1999  Geoffrey Noer  <noer@cygnus.com>

	* config.sub: Check for "cygwin*" rather than "cygwin32*"

1999-02-24  Nick Clifton  <nickc@cygnus.com>

	* config.sub: Fix typo in arm recognition.

Wed Feb 24 13:51:40 1999  Drew Moseley  <dmoseley@cygnus.com>

	* configure.in (noconfigdirs): Changed target_configdirs to
	include target-bsp only for m68k-*-elf* and m68k-*-coff*
	rather than m68k-*-* since it is not known to work on
	m68k-aout. Ditto for arm-*-*oabi.

Wed Feb 24 12:52:17 1999  Stan Shebs  <shebs@andros.cygnus.com>

	* configure.in (*-*-windows*): Remove, no longer used.

1999-02-19  Ben Elliston <bje@cygnus.com>

	* config.guess: Automatically recognise ELF on FreeBSD. From Niall
	Smart and improved by Andrew Cagney.

Thu Feb 18 19:55:09 1999  Marc Espie <espie@cvs.openbsd.org>

	* config.guess: Recognize openbsd-*-hppa.

Wed Feb 17 01:38:59 1999  H.J. Lu  (hjl@gnu.org)

	* Makefile.in (REALLY_SET_LIB_PATH): Append $$$(RPATH_ENVVAR)
	only if it is not empty.

1999-02-17  Nick Clifton  <nickc@cygnus.com>

	Patch from: Scott Bambrough <scottb@corelcomputer.com>

	* config.guess: Modified to recognize uname's armv* syntax.

	* config.sub: Modified to recognize uname's armv* syntax.

1999-02-17  Mark Salter  <msalter@cygnus.com>

	* configure.in: Added target-bsp for sparclite.

Mon Feb  8 14:17:24 1999  Richard Henderson  <rth@cygnus.com>

	* config.sub: Recognize alphapca5[67] and up to alphaev8.

1999-02-08  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add support for strongarm port.
	* config.sub: Add support for strongarm target.

Sun Feb  7 18:01:54 1999  Mumit Khan  <khan@xraylith.wisc.edu>

	* configure.in (*-*-cygwin32*): Use config/mh-cygwin instead of
	the old name config/mh-cygwin32.
	Enable texinfo.

Thu Feb  4 20:43:25 1999  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Do build ld for ix86 Solaris.

Tue Feb  2 19:46:40 1999  Jim Wilson  <wilson@cygnus.com>

	* Makefile.in (EXTRA_GCC_FLAGS):  Set AR to $AR instead of
	$AR_FOR_TARGET.  Likewise for RANLIB.

Tue Feb  2 20:05:05 1999  Catherine Moore  <clm@cygnus.com>

	* config.sub (oabi):  Recognize.
	* configure.in (arm-*-oabi):  Handle.

Sat Jan 30 06:09:00 1999  Robert Lipe  (robertlipe@usa.net)

	* config.guess: Improve detection of i686 on UnixWare 7.

Sat Jan 30 08:04:00 1999  Mumit Khan  <khan@xraylith.wisc.edu>

	* config.guess: Add support for i386-pc-interix.
	* config.sub: Likewise.
	* configure.in: Likewise.

Mon Jan 18 13:59:20 1999  Christopher Faylor <cgf@cygnus.com>

	* Makefile.in: Remove unneeded all-target-libio from
	from all-target-winsup target since it is now unneeded.
	Add all-target-libtermcap in its place since it is now
	needed.

Wed Dec 30 20:34:52 1998  Christopher Faylor <cgf@cygnus.com>

	* configure.in: makefile stub for cygwin target is probably
	unnecessary.  Remove it for now.

Wed Dec 30 01:13:03 1998  Christopher Faylor <cgf@cygnus.com>

	* configure.in: libtermcap.a should be built when cygwin is the
	target as well as the host.
	* config.guess: Allow mixed case in cygwin uname output.
	* Makefile.in: Add libtermcap target.

Wed Dec 23 00:20:50 1998  Jeffrey A Law  (law@cygnus.com)

	* config.sub: Clean up handling of hppa2.0.

Tue Dec 22 23:56:31 1998  Rodney Brown  (rodneybrown@pmsc.com)

	* config.guess: Use C code to identify more HP machines.

Thu Dec 17 01:22:30 1998  Jeffrey A Law  (law@cygnus.com)

	* config.sub: Handle hppa2.0.

Tue Dec 15 17:02:58 1998  Bob Manson  <manson@charmed.cygnus.com>

	* configure.in: Add cygmon for x86-coff and x86-elf. Configure
	cygmon for all sparclite targets, regardless of object format.

1998-12-15  Mark Salter  <msalter@cygnus.com>

	* configure.in: Added target-bsp for several target architectures.

	* Makefile.in: Added rules for bsp.

Fri Dec  4 01:34:02 1998  Jeffrey A Law  (law@cygnus.com)

	* config.guess: Improve detection of hppa2.0 processors.

Fri Dec  4 01:33:05 1998  Niall Smart <nialls@euristix.ie>

	* config.guess: Recognize FreeBSD using ELF automatically.

1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure (skip-this-dir): Add handling for new shell script, which
	might be created by a sub-directory's configure to indicate, this particular
	directory is "unwanted".
	* Makefile.in ($(CONFIGURE_TARGET_MODULES)): Likewise.

Wed Nov 18 18:28:45 1998  Geoffrey Noer  <noer@cygnus.com>

	* ltconfig: import from libtool, after changing libtool to
	account for the cygwin name change.

Wed Nov 18 18:09:14 1998  Geoffrey Noer  <noer@cygnus.com>

	* Makefile.in: CC_FOR_TARGET and CXX_FOR_TARGET should also
	include newlib/libc/sys/cygwin and newlib/libc/sys/cygwin32.

Wed Nov 18 20:13:29 1998  Christopher Faylor <cgf@cygnus.com>

	* configure.in: Add libtermcap to list of cygwin dependencies.

Tue Nov 17 16:57:51 1998  Geoffrey Noer  <noer@cygnus.com>

	* Makefile.in: modify CC_FOR_TARGET and CXX_FOR_TARGET so that
	they include winsup/include when it's a cygwin target.

1998-11-12  Tom Tromey  <tromey@cygnus.com>

	* configure.in (host_tools): Added zip.
	* Makefile.in (all-target-libjava): Depend on all-zip.
	(all-zip): New target.
	(ALL_MODULES): Added all-zip.
	(NATIVE_CHECK_MODULES): Added check-zip.
	(INSTALL_MODULES): Added install-zip.
	(CLEAN_MODULES): Added clean-zip.

Thu Nov 12 17:27:21 1998  Geoffrey Noer  <noer@cygnus.com>

	* Makefile.in: lose "32" from comment about cygwin.

Thu Nov  5 15:00:31 1998  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Use -Os to build target libraries for the fr30.

Wed Nov  4 18:49:43 1998  Dave Brolley  <brolley@cygnus.com>

	* config.sub: Add fr30.

Mon Nov  2 15:19:33 1998  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: drop "32" from config/mh-cygwin32.  Check
	cygwin* instead of cygwin32*.
	* config.sub: Check cygwin* instead of cygwin32*.

Thu Oct 22 10:55:25 1998  Robert Lipe  <robertl@dgii.com>

	* config.guess: Match any version of Unixware7.

1998-10-20  Syd Polk  <spolk@cygnus.com>

	* Makefile.in configure.in: Add the ability to use tcl8.1 and tk8.1
	if desired.

Sun Oct 18 18:34:50 1998  Jeffrey A Law  (law@cygnus.com)

	* config.if (cxx_interface, libstdcxx_interface): Do not try to set
	these if the appropriate directories and files to not exist.

Wed Oct 14 10:29:06 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (DEVO_SUPPORT): Add config.if.

Tue Oct 13 15:45:36 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure: Add pattern to replace "build_tooldir"'s
	definition in the generated Makefile with "tooldir"'s
	actual value.

Tue Oct 13 09:17:06 1998  Jeffrey A Law  (law@cygnus.com)

	* config.sub: Bring back lost sparcv9.

	* Makefile.in (all-snvavigator): Remove all-flexlm dependency.

Mon Oct 12 12:09:44 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (CHILL_FOR_TARGET): Mirror recent changes to
	CC_FOR_TARGET and friends.

Mon Oct 12 12:09:30 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* Makefile.in (build_tooldir): New variable, same as tooldir.
	(CC_FOR_TARGET, GCC_FOR_TARGET, CXX_FOR_TARGET): Add
	-B$(build_tooldir)/bin/.
	(BASE_FLAGS_TO_PASS): Pass build_tooldir down.

Tue Sep  1 16:23:11 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* README: Remove installation instructions and refer to the
	INSTALL directory instead.

Wed Sep 30 22:20:50 1998  Robert Lipe  <robertl@dgii.com>

	* config.sub: Add support for i[34567]86-pc-udk.
	* configure.in: Likewise.

Wed Sep 30 19:23:48 1998  Geoffrey Noer  <noer@cygnus.com>

	* Makefile.in: add bzip2 package building bits for user
	tools module
	* configure.in: ditto

Wed Sep 30 03:00:05 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (TARGET_CONFIGDIRS): Add libobjc.
	(ALL_TARGET_MODULES): Add all-target-libobjc.
	(CONFIGURE_TARGET_MODULES, CHECK_TARGET_MODULES): Similarly.
	(INSTALL_TARGET_MODULES, CLEAN_TARGET_MODULES): Similarly.
	(all-target-libchill): Add dependencies.
	* configure.in (target_libs): Add libchill.

1998-09-30  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure.in (target_subdir): Remove duplicate line.

Tue Sep 29 22:45:41 1998  Felix Lee  <flee@cygnus.com>

	* Makefile.in (all-automake): fix dependencies.

Mon Sep 28 04:04:27 1998  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Minor cleanups for building in the $(target_alias)
	subdir.

1998-09-22  Jim Wilson  <wilson@cygnus.com>

	* Makefile.in (bootstrap): Set r and s before make all.  Use
	BASE_FLAGS_TO_PASS in make all.
	(cross): Likewise.

1998-09-20  Mark Mitchell  <mark@markmitchell.com>

	* Makefile.in (bootstrap): Pass TARGET_FLAGS_TO_PASS to `make all'.

Sun Sep 20 00:13:02 1998  Richard Henderson  <rth@cygnus.com>

	* config.sub: Fix typo in last change.

1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config.sub: Add support for C4x target.
	* configure.in: Likewise.

1998-09-13  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config.sub: Recognize sparcv9 just like sparc64.

Wed Sep  9 15:44:52 1998  Robert Lipe  <robertl@dgii.com>

	* config.guess: Match "Pent II" or "PentII" for OpenServer.

Tue Sep  8 01:18:39 1998  Jeffrey A Law  (law@cygnus.com)

	* config.guess: Correctly identify Pentium II sco boxes.

	* config.guess: Fix "tr" code.  From Weiwen Liu.

Sat Sep  5 13:56:52 1998  John Hughes  <john@Calva.COM>

	* configure.in: Do not assume x86-svr4 or x86-unixware can handle
	stabs.

Sat Sep  5 02:12:02 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (TARGET_CONFIGDIRS): Add libchill.
	(ALL_TARGET_MODULES): Add all-target-libchill.
	(CONFIGURE_TARGET_MODULES, CHECK_TARGET_MODULES): Similarly.
	(INSTALL_TARGET_MODULES, CLEAN_TARGET_MODULES): Similarly.
	(all-target-libchill): Add dependencies.
	* configure.in (target_libs): Add libchill.

Sun Aug 30 22:27:02 1998  Lutz Wohlrab <lutz.wohlrab@informatik.tu-chemnitz.de>

	* config.guess: Avoid assumptions about "tr" behaves when
	LANG is set to something other than English.

Sun Aug 30 22:14:44 1998  H.J. Lu  (hjl@gnu.org)

	* configure (gxx_include_dir): Changed to
	'${prefix}/include/g++'-${libstdcxx_interface}.

	* config.if: New to determine the interfaces.

Sun Aug 30 21:15:19 1998  Mark Klein (mklein@dis.com)

	* config.guess: Detect and handle MPE/IX.
	* config.sub: Deal with MPE/IX.

Sat Aug 29 14:32:55 1998  David Edelsohn  <edelsohn@mhpcc.edu>

	* configure.in: Use mh-aix43.

1998-07-29  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure: Fix --without/--disable cases for gxx-include-dir.

Fri Aug 28 12:28:26 1998  Per Bothner  <bothner@cygnus.com>

	* mdata-sh:  Imported.  Needed for automake support.

Thu Aug 13 12:49:29 1998  H.J. Lu  <hjl@gnu.org>

	* Makefile.in (taz): Try "chmod -R og=u ." before
	"chmod og=u `find . -print`".

Fri Jul 31 09:38:33 1998  Catherine Moore  <clm@cygnus.com>

	* configure.in: Add arm-elf and thumb-elf support.

Mon Jul 27 16:23:58 1998  Doug Evans  <devans@canuck.cygnus.com>

	* Makefile.in: Undo previous patch.

Fri Jul 24 19:55:24 1998  Doug Evans  <devans@canuck.cygnus.com>

	* Makefile.in (INSTALL_TARGET): Move EXTRA_TARGET_HOST_INSTALL_MODULES
	to here ...
	(install-no-fixedincludes): and here
	(INSTALL_MODULES): ... from here.

Fri Jul 24 17:01:42 1998  Ian Lance Taylor  <ian@cygnus.com>

	* config.sub: Merge with FSF.

	* config.guess: Merge with FSF.

Fri Jul 24 08:43:36 1998  Doug Evans  <devans@canuck.cygnus.com>

	* configure (extraconfigdirs): New variable.
	(SUBDIRS): Add extraconfigdirs and recurse on them too.
	* Makefile.in (all): Move higher in file.
	(EXTRA_TARGET_HOST_ALL_MODULES): New variable.
	(EXTRA_TARGET_HOST_{INSTALL,CHECK}_MODULES): New variables.
	(ALL_MODULES): Add EXTRA_TARGET_HOST_ALL_MODULES.
	(CROSS_CHECK_MODULES): Add EXTRA_TARGET_HOST_CHECK_MODULES.
	(INSTALL_MODULES): Add EXTRA_TARGET_HOST_INSTALL_MODULES.

1998-07-23  Brendan Kehoe  <brendan@cygnus.com>

	* Makefile.in (all-target-libjava): Depend on all-gcc and
	all-target-newlib.
	(configure-target-libjava): Depend on $(ALL_GCC).

Sat Jul 18 14:32:43 CDT 1998  Robert Lipe  <robertl@dgii.com>

	* config.guess: (*-pc-sco3.2v5) Add detection for Pentium II.
	(*-pc-unixware7) Add detection for Pentium II, Pentium Pro.

Sun Jul 19 00:46:53 CEST 1998  Marc Lehmann <pcg@goof.com>

	* INSTALL/README: Fix typo.

Fri Jul 17 13:30:18 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ylwrap: Change absolute path checks to check for DOS style path
	names.

	* ylwrap: Don't use a full path name if the source file is in the
	same directory.  From hjl@lucon.org (H.J. Lu).

	* config-ml.in: Default to being verbose, to match Feb 18 change to
	configure.

Thu Jul 16 12:29:51 1998  Ian Lance Taylor  <ian@cygnus.com>

	Brought over from egcs:

	Sat Jun 27 22:46:32 1998  Jeffrey A Law  (law@cygnus.com)

	* configure.in (target_subdir): Set to ${target_alias} instead
	of "libraries".

	Mon Sep  1 16:45:44 1997  Jim Wilson  <wilson@cygnus.com>

	* configure.in (target_subdir): Set to libraries if enable_multilib.

Wed Jul 15 01:00:54 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in ($(CONFIGURE_TARGET_MODULES)): If there are any
	multilibs, force reconfiguration the first time we create
	multilib.out in a subdirectory, in case TARGET_SUBDIR is `.'.

Tue Jul 14 23:41:03 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Strip any --no option from CONFIG_ARGUMENTS, to
	avoid confusion with --no-recursion.

Tue Jul 14 15:37:41 1998  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: Win32 hosts shouldn't use install -x
	* install-sh: remove -x option, and special .exe-handling
	hack.

Tue Jul 14 15:28:41 1998  Richard Henderson  <rth@cygnus.com>

	* config.guess: Recognize i586-pc-beos.
	* configure.in: Don't build some bits for beos.

Tue Jul 14 13:22:18 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure: If CC is set but CFLAGS is not, and CC is gcc, make
	CFLAGS default to -O2.

	* ltmain.sh: Add some hacks to make SunOS --enable-shared work
	when using GNU ld.

Fri Jul 10 13:18:23 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltmain.sh: Correct install when using a different shell.

Tue Jul  7 15:24:38 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltconfig, ltmain.sh: Update to libtool 1.2b.

Thu Jul  2 13:57:36 1998  Klaus Kaempf  <kkaempf@rmi.de>

	* makefile.vms: Update to build binutils/makefile.vms.  Add install
	target.

Wed Jul  1 16:45:21 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltconfig: Update to correct AIX handling.

Sat Jun 27 22:46:32 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (BASE_FLAGS_TO_PASS): Add TARGET_SUBDIR.

	* configure.in (target_subdir): Set to ${target_alias} instead
	of "libraries".

1998-06-26  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in (BASE_FLAGS_TO_PASS): Add gcc_version_trigger.
	(Makefile): Depend on $(gcc_version_trigger).

	* configure (gcc_version): Change default initializer to empty
	string.
	(gcc_version_trigger): New variable; pass this variable down
	to subdir configures to enable them checking gcc's version
	themselves. Emit make macros for both gcc_version vars.
	(topsrcdir): Initialize reliably.
	(recursion line): Remove --with-gcc-version=${gcc_version}.

1998-06-24  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure (enable_version_specific_runtime_libs): Implement new flag
	--enable-version-specific-runtime-libs which installs C++ runtime stuff
	in $(libsubdir); emit definition in each generated Makefile.
	(gxx_include_dir): Initialize depending on
	$enable_version_specific_runtime_libs.

1998-06-24  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure (gcc_version): Initialize properly depending on
	how and where configure is started.
	(recursion line): Pass a --with-gcc-version=${gcc_version}
	to configures in subdirs.

Wed Jun 24 16:01:59 1998  John Metzler  <jmetzler@cygnus.com>

	* configure.in (noconfigdirs): Add configure pattern for mips tx39
	cygmon

Tue Jun 23 22:42:32 1998  Mark Alexander  <marka@cygnus.com>

	* configure.in: Add cygmon and libstub support for mn10200.

1998-06-19  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure (gcc_version): Add new variable describing the
	particular gcc version we're building.
	* Makefile.in (libsubdir): Add new macro for the directory
	in which the compiler finds executables, libraries, etc.
	(BASE_FLAGS_TO_PASS): Pass down gcc_version, target_alias
	and libsubdir.

Fri Jun 19 02:36:59 1998  Alexandre Oliva <oliva@dcc.unicamp.br>

	* Makefile.in (local-clean): Remove *.log.
	(warning.log): Built with warn_summary from build.log.
	(mail-report.log): Run test_summary.
	(mail-report-with-warnings.log): Run test_summary including
	warning.log in the report.

Thu Jun 18 11:26:03 1998  Robert Lipe  <robertl@dgii.com>

	* config.guess: Detection of Pentium II for *-sco-3.2v5*.

Mon Jun 15 14:53:54 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (grep): Grep no longer depends on libiberty.

Fri Jun 12 14:03:34 1998  Syd Polk  <spolk@cygnus.com>

	* Makefile.in: all-snavigator needs all-libgui.

Thu Jun 11 19:43:47 1998  Mark Alexander  <marka@cygnus.com>

	* configure.in: Add cygmon and libstub support for mn10300.

Wed Jun 10 11:19:47 1998  Ian Lance Taylor  <ian@cygnus.com>

	* missing: Update to version from automake 1.3.

	* ltmain.sh: On installation, don't get confused if the same name
	appears more than once in the list of library names.

Wed Jun  3 14:51:42 1998  Ian Lance Taylor  <ian@cygnus.com>

	* config.sub: Accept m68060 and m5200 as CPU names.

Mon Jun  1 17:25:16 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Use && rather than using -a in test, because odd
	strings can confuse test.
	* configure.in: Likewise.

Thu May 28 19:31:13 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltconfig, ltmain.sh: Bring in Visual C++ support.

Sat May 23 23:44:13 1998  Alexandre Oliva <oliva@dcc.unicamp.br>

	* Makefile.in (boostrap2-lean, bootstrap3-lean,
	bootstrap4-lean): New targets.

Mon May 11 23:55:56 1998  Jeffrey A Law  (law@cygnus.com)

	* mpw-* Delete.  Not used.

Mon May 11 23:11:34 1998  Jeffrey A Law  (law@cygnus.com)

	* COPYING.LIB: Update FSF address.

Fri May  8 01:30:20 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltconfig, ltmain.sh: Update to libtool 1.2a.

	* Makefile.in (GASB_SUPPORT_DIRS): Remove intl; already included via
	GAS_SUPPORT_DIRS.

Thu May  7 17:27:35 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltconfig, ltmain.sh: Avoid producing a version number if
	-version-info was not used.

Tue May  5 18:02:24 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Add --with-newlib to CONFIG_ARGUMENTS if we are
	building with newlib.

1998-04-30  Paul Eggert  <eggert@twinsun.com>

	* Makefile.in (EXTRA_GCC_FLAGS): Remove backslash at end;
	Solaris `make' causes it to continue to next definition.

Tue Apr 28 16:24:24 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* Makefile.in (install-gdbtk): Call this 'install-gdb' so that
	the right GUI libraries and files are installed along with GDB.

Tue Apr 28 18:11:24 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Change alpha to alpha* in several places.

Tue Apr 28 07:42:00 1998  Mark Alexander  <marka@cygnus.com>

	* config.sub: Recognize sparc86x.

Tue Apr 28 07:35:02 1998  Michael Meissner  <meissner@cygnus.com>

	* configure.in (--enable-target-optspace): Remove debug echo.

Thu Apr 23 21:31:16 1998  Jim Wilson  <wilson@cygnus.com>

	* configure: Set CXXFLAGS from CXXFLAGS, not CFLAGS.

Thu Apr 23 12:26:38 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltconfig: Update cygwin32 support.

	* Makefile.in (GAS_SUPPORT_DIRS): Add intl.
	(BINUTILS_SUPPORT_DIRS, GASB_SUPPORT_DIRS): Likewise.
	(GDB_SUPPORT_DIRS): Likewise.

Wed Apr 22 12:30:10 1998  Michael Meissner  <meissner@cygnus.com>

	* configure.in (target_makefile_frag): If --enable-target-optspace,
	use -Os to compile target libraries rather than -O2.  Default to
	using -Os for d10v and m32r if --{enable,disable}-target-optspace is
	not used.
	* configure.in (target_cflags): Ditto for d30v.

Tue Apr 21 23:06:54 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in (all-bfd): Depend on all-intl.
	(all-binutils): Likewise.
	(all-gas): Likewise.
	(all-gprof): Likewise.
	(all-ld): Likewise.

1998-04-19  Brendan Kehoe  <brendan@cygnus.com>

	* configure.in (host_tools): Fix typo, lbtool -> libtool.

Fri Apr 17 16:20:42 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (all-bfd): Depend upon all-libiberty.

	* ltconfig, ltmain.sh: Bring in newer cygwin32 support.

Fri Apr 17 12:22:22 1998  Bob Manson  <manson@charmed.cygnus.com>

	* Makefile.in: Add libstub.

	* configure.in: Ditto. Build libstub for targets that have cygmon
	support.

Tue Apr 14 18:01:55 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Don't set PICFLAG on ix86-cygwin32.

Tue Apr 14 12:24:45 1998  J. Kean Johnston  <jkj@sco.com>

	* configure.in: Recognise i[3456]96-*-sysv5* as a valid host, and
	use mh-sysv5 if specified.  Support gprof on SCO Open Server.

Tue Apr 14 11:33:51 1998  Krister Walfridsson <cato@df.lth.se>

	* configure: Define DEFAULT_M4 by searching PATH.
	* Makfile.in: Use DEFAULT_M4.

Mon Apr 13 15:37:24 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltconfig: Add cygwin32 support.

	* Makefile.in, configure.in: Add libtool as a native only directory
	to configure and build.

Sun Apr 12 20:58:46 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (INSTALL_MODULES): Remove texinfo.

Wed Apr  8 13:18:56 1998  Philippe De Muyter  <phdm@macqel.be>

	* Makefile.in (EXTRA_GCC_FLAGS): XFOO lines shortened.

Thu Apr  2 14:48:44 1998  Geoffrey Noer  <noer@cygnus.com>

	* Makefile.in: add ash make rules
	* configure.in: add ash to native_only and host_tools lists

Thu Mar 26 12:53:20 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in (all-gettext, all-intl): New targets.
	(ALL_MODULES): Added all-gettext, all-intl.
	(CROSS_CHECK_MODULES): Added check-gettext, check-intl.
	(INSTALL_MODULES): Added install-gettext, install-intl.
	(CLEAN_MODULES): Added clean-gettext, clean-intl.

	* configure.in (host_tools): Added gettext.
	(native_only): Likewise.
	(noconfigdirs) [various cases]: Likewise.
	(host_libs): Added intl.

Thu Mar 26 15:00:11 1998  Keith Seitz  <keiths@onions.cygnus.com>

	* configure: Do not disable building gdbtk for cygwin32 hosts.

Wed Mar 25 10:04:18 1998  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add thumb-coff target.
	* config.sub: Add thumb-coff target.

Wed Mar 25 11:49:12 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* Makefile.in: Revert yesterday's change.
	(all-target-winsup):  all-target-librx stays out of here.

Tue Mar 24 16:58:29 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* Makefile.in (TARGET_CONFIGDIRS, ALL_TARGET_MODULES,
	CONFIGURE_TARGET_MODULES, CHECK_TARGET_MODULES,
	INSTALL_TARGET_MODULES, CLEAN_TARGET_MODULES, all-target-winsup):
	Remove references to librx and libg++.

Tue Mar 24 18:28:12 1998  Eric Mumpower  <nocturne@cygnus.com>

	* Makefile.in (BASE_FLAGS_TO_PASS): Pass $(lispdir) down to
	recursive makes

Tue Mar 24 11:37:45 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (CC_FOR_TARGET): Use $(TARGET_SUBDIR) when passing -B
	for newlib directory.
	(CXX_FOR_TARGET): Likewise.

Mon Mar 23 11:30:21 1998  Jeffrey A Law  (law@cygnus.com)

	* ltconfig: Update after libtool/ltconfig.in change for
	hpux11.

Fri Mar 20 18:51:43 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltconfig, ltmain.sh: Update to libtool 1.2.

Fri Mar 20 09:32:14 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in (install-gcc): Don't specify LANGUAGES here.
	(install-gcc-cross): Instead, override LANGUAGES here.

1998-03-18  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in ($(CONFIGURE_TARGET_MODULES)): Set CONFIG_SITE to a
	non-existent file since /dev/null loses with bash 2.0/autoconf 2.12.

Wed Mar 18 09:24:59 1998  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add Thumb-pe target.

Tue Mar 17 16:59:00 1998  Syd Polk <spolk@cygnus.com>

	* Makefile.in - changed sn targets to snavigator
	* configure.in - changed sn targets to snavigator

Tue Mar 17 10:33:28 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* config-ml.in: After building symlink tree call make distclean
	if a Makefile got linked into ${ml_dir}/${ml_libdir}; this happens
	to be the case for libiberty.

Tue Mar 17 10:22:37 1998  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* configure: When making link, also check the current
	directory. The configure scripts may create one.

Fri Mar  6 01:02:03 1998  Richard Henderson  <rth@cygnus.com>

	* config.sub: Accept alphapca56 and alphaev6 properly.

Fri Mar  6 00:14:55 1998  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>

	* configure.in: Revert 3 Jan change for powerpc-linux-gnulibc1.

Mon Feb 23 15:09:18 1998  Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de

	* config.sub (sco5): Fix typo.

Mon Feb 23 14:46:06 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (INSTALL_MODULES): Move install-tcl before
	install-itcl.
	(install-itcl): Remove dependency on install-tcl.

Mon Feb 23 09:53:28 1998  Mark Alexander  <marka@cygnus.com>

	* configure.in: Remove libgloss from noconfigdirs for MN10300.

Thu Feb 19 13:40:41 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Don't build libgui for a cygwin32 target when not on
	a cygwin32 host.

Wed Feb 18 12:29:00 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* configure (redirect): Set to null, so default behavior of
	configure is now --verbose.

1998-02-16  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in ($(CONFIGURE_TARGET_MODULES)): Run configure with
	CONFIG_SITE=/dev/null to forestall lossage with site configuration.

Mon Feb 16 12:23:53 1998  Manfred Hollstein  <Manfred.Hollstein@ks.sel.alcatel.de>

	* Makefile.in (BASE_FLAGS_TO_PASS, EXTRA_TARGET_FLAGS): Really add
	this change to sync Makefile.in with its ChangeLog entries.

Thu Feb 12 15:03:08 1998  H.J. Lu  <hjl@gnu.org>

	* ltmain.sh (mkdir): Check that the directory doesn't exist
	before we exit with error, so that we don't get races during
	parallel builds.

Sat Feb  7 15:19:18 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltconfig, ltmain.sh: Update from libtool 1.0i.

Fri Feb  6 01:33:52 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in (BASE_FLAGS_TO_PASS): Don't pass PICFLAG and
	PICFLAG_FOR_TARGET.
	(EXTRA_TARGET_FLAGS): Don't pass PICFLAG_FOR_TARGET.

	* configure: Emit a definition for the new macro enable_shared
	into each Makefile.

Thu Feb  5 17:01:12 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* configure.in (host_tools, native_only): Add libtool.

Wed Feb  4 16:53:58 1998  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: add target-gperf to noconfigdirs for Cygwin32.
	Fix typo in ming config comment.

Wed Feb  4 18:56:13 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ltconfig, ltmain.sh: Update from libtool 1.0h.

Mon Feb  2 19:38:19 1998  Ian Lance Taylor  <ian@cygnus.com>

	* config.sub: Add tic30 cases, and map c30 to tic30.

Sun Feb  1 02:40:41 1998  Richard Henderson  <rth@cygnus.com>

	* Makefile.in (TARGET_CONFIGDIRS): Add libf2c.
	(ALL_TARGET_MODULES, CONFIGURE_TARGET_MODULES): Similarly
	(CHECK_TARGET_MODULES, INSTALL_TARGET_MODULES): Similarly
	(CLEAN_TARGET_MODULES): Similarly
	(all-target-libf2c): Add dependences.
	* configure.in (target_libs): Add libf2c.

Fri Jan 30 17:18:32 1998  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: Remove expect from noconfigdirs when target
	is cygwin32.  OK to build expect and dejagnu with Canadian
	Cross.

Wed Jan 28 12:58:49 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Do build expect, dejagnu, and cvssrc for a cygwin32
	host.

	* config.guess: Use ${UNAME_MACHINE} rather than i386 for cygwin32
	and mingw32.

Wed Jan 28 10:26:37 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in (BASE_FLAGS_TO_PASS): Remove passing $(local_prefix)
	here as it is not defined in the toplevel Makefile.

Tue Jan 27 23:25:06 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure (package_makefile_rules_frag): New variable, which names
	a file with generic rules, ...
	Change comment to mention we now have FIVE parts.
	* configure: Undo last change.

Tue Jan 27 23:15:55 1998  Lassi A. Tuura  <lat@iki.fi>

	* config.guess: More accurate determination of HP processor types.
	* config.sub: More accurate determination of HP processor types.

Sat Jan 24 01:59:45 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure (package_makefile_frag): Move inserting the
	${package_makefile_frag} to where it should be according
	to the comment.

Fri Jan 23 00:29:28 1998  Philip Blundell  <pb@nexus.co.uk>

	* config.guess: Add support for Linux/ARM.

Thu Jan 22 15:14:01 1998  Fred Fish  <fnf@cygnus.com>

	* .cvsignore: Remove *-info and *-install since they match
	release-info and mpw-install, which we don't want to just ignore.

Thu Jan 22 01:38:33 1998  Richard Henderson  <rth@cygnus.com>

	* configure.in: Revert 3 Jan change for alpha-linux-gnulibc1.

Sat Jan 17 21:28:08 1998  Pieter Nagel <pnagel@epiuse.co.za>

	* Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and
	local_prefix to sub-make invocations.

Sat Jan 17 21:04:59 1998 H.J. Lu  (hjl@gnu.org)

	* configure.in: Check makefile fragments in the source
	directory.

Fri Jan 16 00:41:37 1998  Alexandre Oliva <oliva@dcc.unicamp.br>

	* configure.in: Check whether host and target makefile
	fragments exist before adding them to *_makefile_frag.

Wed Jan 14 23:39:10 1998  Bob Manson  <manson@charmed.cygnus.com>

	* configure.in (target_configdirs): Add cygmon for sparc64-elf.

Wed Jan 14 12:48:07 1998  Keith Seitz  <keiths@pizza.cygnus.com>

	* configure.in: Make sure we only replace RPATH_ENVVAR on
	lines which begin with RPATH_ENVVAR, i.e. add "^" to the
	regexp to sed.

	* Makefile.in (BASE_FLAGS_TO_PASS): Pass RRPATH_ENVVAR down
	to sub-makes.

1998-01-13  Lee Iverson   (leei@ai.sri.com)

	* config-ml.in (multi-do): LDFLAGS must include multilib
	designator.

Tue Jan 13 01:13:24 1998   Robert Lipe (robertl@dgii.com)

	* config.guess: Recognize i[3456]-i586-UnixWare7-sysv5.

Sun Jan  4 01:06:55 1998  Mumit Khan  <khan@xraylith.wisc.edu>

	* config.sub: Add mingw32 support.
	* configure.in: Likewise.

Sat Jan  3 12:11:05 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com>

	* configure.in: Finalize support for {alpha|powerpc}*-*-linux-gnulibc1

Sun Dec 28 11:28:58 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (INSTALL_TARGET): Do install-gcc first.
	* configure (gxx_include_dir): Provide a definition for subdirs
	which do not use autoconf.

Wed Dec 24 22:46:55 1997  Jeffrey A Law  (law@cygnus.com)

	* config.guess: Sync with egcs.  Picks up new alpha support,
	BeOS & some additional linux support.

Tue Dec 23 12:44:24 1997  Jeffrey A Law  (law@cygnus.com)

	* config.guess: HP 9000/803 is a PA1.1 machine.

Mon Dec 22 02:39:24 1997  Richard Henderson  <rth@cygnus.com>

	* configure.in: It's alpha*-...

Sun Dec 21 16:53:12 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* configure.in (host_makefile_frag, target_makefile_frag):
	Handle multiple config files.
	(alpha-*-linux*): Treat alpha-*-linux* as alpha-*-linux* and
	alpha-*-*.

Thu Dec 18 13:13:03 1997  Doug Evans  <devans@canuck.cygnus.com>

	* mkdep: New file.

Wed Dec 17 09:53:02 1997  Michael Meissner  <meissner@cygnus.com>

	* configure.in (d30v-*-*): Allow configuring of libide, vmake, etc.

Tue Dec 16 17:36:05 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in: Add libgui directory.
	(GDB_TK): Add all-libgui.
	* configure.in: Add libgui directory.
	* configure: Add all-libgui to GDB_TK.

Mon Dec 15 16:12:28 1997  Nick Clifton  <nickc@cygnus.com>

	* config-ml.in (multidirs): Add m32r to multilib list.

Fri Dec 12 10:43:31 1997  Brendan Kehoe  <brendan@canuck.cygnus.com>

	* Makefile.in (all-target-gperf): Change dependency to
	all-target-libstdc++.

Thu Dec 11 23:30:51 1997  Fred Fish  <fnf@ninemoons.com>

	* config.guess: Add BeOS support.

Wed Dec 10 15:10:38 1997  Ian Lance Taylor  <ian@cygnus.com>

	Source directory cvs renamed to cvssrc:
	* configure.in (host_tools): Change cvs to cvssrc.
	(native_only): Likewise.
	(noconfigdirs) [various cases]: Likewise.
	* Makefile.in (ALL_MODULES): Change all-cvs to all-cvssrc.
	(CROSS_CHECK_MODULES): Change check-cvs to check-cvssrc.
	(INSTALL_MODULES): Change install-cvs to install-cvssrc.
	(CLEAN_MODULES): Change clean-cvs to clean-cvssrc.
	(all-cvssrc): Rename target from all-cvs.

Wed Dec  3 07:55:59 1997  Jeffrey A Law  (law@cygnus.com)

	* configure (gxx_include_dir): Fix thinko.

Tue Dec  2 10:55:34 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (INSTALL_TARGET_CROSS): Define.
	(install-cross, install-gcc-cross): New targets.

Tue Dec  2 10:08:31 1997  Nick Clifton  <nickc@cygnus.com>

	* configure.in (noconfigdirs): Add support for Thumb target.

	* config.sub (maybe_os): Add support for Thumb target.

Sun Nov 30 16:12:27 1997  Bob Manson  <manson@charmed.cygnus.com>

	* Makefile.in: Add rules for cygmon.

	* configure.in: Build cygmon for sparc-elf and sparclite-aout.

Thu Nov 27 01:31:30 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (INSTALL_TARGET): Do install-gcc first.
	* configure (gxx_include_dir): Provide a definition for subdirs
	which do not use autoconf.

Wed Nov 26 11:53:33 1997  Keith Seitz  <keiths@onions.cygnus.com>

	* Makefile.in, configure, configure.in, ChangeLog: merge with foundry's
	11/18/97 build

Wed Nov 26 16:08:50 1997  Jeffrey A Law  (law@cygnus.com)

	* From Franz Sirl.
	* config.guess (powerpc*-*-linux): Handle glibc2 beta release
	found on RedHat Linux systems.

Fri Nov 21 09:51:01 1997  Jeffrey A Law  (law@cygnus.com)

	* config.guess (alpha stuff): Merge with FSF to avoid incorrect
	guesses.

Thu Nov 13 11:38:37 1997  Jeffrey A Law  (law@cygnus.com)

	* configure.in (i[3456]86-ncr-sysv4.3*): Tweak.

Mon Nov 10 15:23:21 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* ltmain.sh: If mkdir fails, check whether the directory was created
	anyhow by some other process.

Mon Nov 10 14:38:03 1997  Michael Meissner  <meissner@cygnus.com>

	* configure.in (d30v-*-*): Configure all directories.

Sun Nov  9 17:36:20 1997  Michael Meissner  <meissner@cygnus.com>

	* configure.in (d30v-*-*): Configure newlib, libiberty directories
	for the D30V.

Sat Nov  8 14:42:59 1997  Michael Meissner  <meissner@cygnus.com>

	* configure.in (d30v-*-*): Configure target-libgloss on the D30V.

Fri Nov  7 10:34:09 1997  Rob Savoye  <rob@darkstar.cygnus.com>

	* include/libiberty.h: Add extern "C" { so it can be used with C++
	progrms.
	* include/remote-sim.h:  Add extern "C" { so it can be used with C++
	programs.

Thu Oct 30 11:09:29 1997  Michael Meissner  <meissner@cygnus.com>

	* configure.in (d30v-*-*): Configure GCC now.

Mon Oct 27 13:17:24 1997  Stan Shebs  <shebs@andros.cygnus.com>

	* configure.in: Remove a "second pass" of tweaking noconfigdirs,
	is no longer needed.

Mon Oct 27 12:03:53 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* Makefile.in: check-target-libio depends on all-target-libstdc++.

Sun Oct 26 11:48:27 1997  Manfred Hollstein  (manfred@s-direktnet.de)

	* Makefile.in (bootstrap-lean): Combined with `normal' bootstrap
	targets using "$@" to provide support for similar but not identical
	targets without having to duplicate code.

Mon Oct 20 15:28:49 1997  Klaus K"ampf  <kkaempf@progis.de>

	* makefile.vms: Fix to work with DEC C.

Tue Oct  7 23:58:57 1997  Gavin Koch  <gavin@cygnus.com>

	* config.sub: Add mips-tx39-elf to marketing names.

Tue Oct  7 14:24:41 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ltmain.sh: Handle symlinks in generated script.

Wed Oct  1 13:11:27 1997  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Handle autoconf style directory options: --bindir,
	--datadir, --includedir, --infodir, --libdir, --libexecdir,
	--mandir, --oldincludedir, --sbindir, --sharedstatedir,
	--sysconfdir.
	* Makefile.in (sbindir, libexecdir, sysconfdir): New variables.
	(sharedstatedir, localstatedir, oldincludedir): New variables.
	(BASE_FLAGS_TO_PASS): Pass down bindir, datadir, includedir,
	infodir, libdir, libexecdir, localstatedir, mandir, oldincludedir,
	sbindir, sharedstatedir, and sysconfdir.

Mon Sep 29 00:38:08 1997 Aaron Jackson <jackson@negril.msrce.howard.edu>

	* Makefile.in (bootstrap-lean): New target.

Wed Sep 24 18:06:27 1997  Stu Grossman  <grossman@babylon-5.cygnus.com>

	* configure.in (d30v):  Remove tcl, tk, expect, gdb, itcl, tix, db,
	sn, and gnuserv from noconfigdirs.

Wed Sep 24 15:18:32 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ltmain.sh: Tweak shell pattern to avoid bug in NetBSD /bin/sh.

Thu Sep 18 23:58:27 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (cross): New target.

Thu Sep 18 21:43:23 1997  Alexandre Oliva  <oliva@dcc.unicamp.br>
			  Jeff Law	   <law@cygnus.com>

	* Makefile.in (bootstrap2, bootstrap3): New targets.
	(all-bootstrap): Remove outdated and confusing target.
	(bootstrap, bootstrap2, bootstrap3): Don't pass BOOT_CFLAGS down.

Thu Sep 18 15:37:42 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure (tooldir): enable_gdbtk=YES for cygwin32, NO for
	windows.  Consistent with gdb/configure.

1997-09-15 02:37  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Name Linux target fragment.

	* configure: Rewrite so that project Makefile fragment is inserted
	first and appears last in the resulting Makefile.

Tue Sep 16 09:55:07 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (install-itcl): Install tcl first.

Fri Sep 12 16:19:20 1997  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: remove bison from noconfigdirs for Cygwin32 host

Thu Sep 11 16:40:46 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* Makefile.in (local-distclean): Also remove mh-frag mt-frag.

	* configure.in (skipdirs): Add target-librx for Linux.
	(alpha-*-linux*): Use config/mh-elfalphapic and config/mt-elfalphapic.

Wed Sep 10 21:29:54 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (bootstrap): New target.

Wed Sep 10 15:19:22 1997  Jeffrey A Law  (law@cygnus.com)

	* config.sub: Accept 'amigados' for backward compatibility.

Mon Sep  8 20:46:20 1997  Ian Lance Taylor  <ian@cygnus.com>

	* config.guess: Merge with FSF.

Sun Sep  7 23:18:32 1997  Fred Fish  <fnf@ninemoons.com>

	* config.sub: Change 'amigados' to 'amigaos' to match current usage.

Sun Sep  7 15:55:28 1997  Gavin Koch  <gavin@cygnus.com>

	* config.sub: Add "marketing-names" patch.

Fri Sep  5 16:11:28 1997  Joel Sherrill  (joel@OARcorp.com)

	* configure.in (*-*-rtems*): Do not build libgloss for rtems.

Fri Sep  5 12:27:17 1997  Jeffrey A Law  (law@cygnus.com)

	* config.sub: Handle v850-elf.

Wed Sep  3 22:01:58 1997  Fred Fish  <fnf@ninemoons.com>

	* .cvsignore (*-install): Remove.

Wed Sep  3 12:15:24 1997  Chris Provenzano  <proven@cygnus.com>

	* ltconfig: Set CONFIG_SHELL in libtool.
	* ltmain.sh: Use CONFIG_SHELL instead of /bin/sh

Mon Sep  1 16:45:44 1997  Jim Wilson  <wilson@cygnus.com>

	* configure.in (target_subdir): Set to libraries if enable_multilib.

Wed Aug 27 16:15:11 1997  Jim Wilson  <wilson@cygnus.com>

	* config.guess: Update from gcc directory.

Tue Aug 26 16:46:46 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (all-sim): Depends on all-readline.

Wed Aug 20 19:57:37 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* Makefile.in (BISON, YACC): Use $$s.
	(all-bison): Depend on all-texinfo.

Tue Aug 19 01:41:32 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* Makefile.in (BISON): Add -L flag.
	(YACC): Likewise.

Mon Aug 18 11:30:50 1997  Nick Clifton  <nickc@cygnus.com>

	* configure.in (noconfigdirs): Add support for v850e target.

	* config.sub (maybe_os): Add support for v850e target.

Mon Aug 18 11:30:50 1997  Nick Clifton  <nickc@cygnus.com>

	* configure.in (noconfigdirs): Add support for v850ea target.

	* config.sub (maybe_os): Add support for v850ea target.

Mon Aug 18 09:24:06 1997  Gavin Koch  <gavin@cygnus.com>

	* config.sub: Add mipstx39.  Delete r3900.

Mon Aug 18 17:20:10 1997  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (all-autoconf): Depends on all-texinfo.

Fri Aug 15 23:09:26 1997  Michael Meissner  <meissner@cygnus.com>

	* config-ml.in ({powerpc,rs6000}*-*-*): Update to current AIX and
	eabi targets.

Thu Aug 14 14:42:17 1997  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Get CFLAGS and CXXFLAGS from Makefile, if possible.

	* configure: When handling a Canadian Cross, handle YACC as well as
	BISON.  Just set BISON to bison.  When setting YACC, prefer bison.
	* Makefile.in (all-bison): Depend upon all-texinfo.

Tue Aug 12 20:09:48 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* Makefile.in (BISON): bison, not byacc or bison -y.
	(YACC): bison -y or byacc or yacc.
	(various): Add *-bison as appropriate.
	(taz): No need to mess with BISON anymore.

Tue Aug 12 22:33:08 1997  Ian Lance Taylor  <ian@cygnus.com>

	* configure: If OSTYPE matches *win32*, try to find a good value for
	CONFIG_SHELL.

Sun Aug 10 14:41:11 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (taz): Get the version number from AM_INIT_AUTOMAKE in
	configure.in if it is present.

Sat Aug  9 00:58:01 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (LD_FOR_TARGET): Change ld.new to ld-new.

Fri Aug  8 16:30:13 1997  Doug Evans  <dje@canuck.cygnus.com>

	* config.sub: Recognize `arc' cpu.
	* configure.in: Likewise.
	* config-ml.in: Likewise.

Thu Aug  7 11:02:34 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in ($(INSTALL_X11_MODULES)): Depend upon installdirs.

Wed Aug  6 16:27:29 1997  Chris Provenzano  <proven@cygnus.com>

	* configure: Changed sed delimiter from ':' to '|' when
	attempting to substitute ${config_shell} for SHELL. On
	NT ${config_shell} may contain a ':' in it.

Wed Aug  6 12:29:05 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* Makefile.in (EXTRA_GCC_FLAGS): Fix for non-bash shells.

Wed Aug  6 00:42:35 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (AS_FOR_TARGET): Change as.new to as-new.

Tue Aug  5 14:08:51 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (NM_FOR_TARGET): Change nm.new to nm-new.

	* ylwrap: If the program is a relative path, force it to be
	absolute.

Tue Aug  5 12:12:44 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure (tooldir): Set BISON to `bison -y' and not just bison.

Mon Aug  4 22:59:02 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (CC_FOR_TARGET): When winsup/Makefile present,
	correctly specify the target build directory $(TARGET_SUBDIR)/winsup
	for libraries.

Mon Aug  4 12:40:24 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* Makefile.in (EXTRA_GCC_FLAGS): Fix handling of macros with values
	separated by spaces.

Thu Jul 31 19:49:49 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ylwrap: New file.
	* Makefile.in (DEVO_SUPPORT): Add ylwrap.

	* ltmain.sh: Handle /bin/sh at start of install program.

	* Makefile.in (DEVO_SUPPORT): Add ltconfig, ltmain.sh, and missing.

	* ltconfig, ltmain.sh: New files, from libtool 1.0.
	* missing: New file, from automake 1.2.

Thu Jul 24 12:57:56 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in: Treat tix like tk, putting it in X11_MODULES.  Add
	check-tk to CHECK_X11_MODULES.

Wed Jul 23 17:03:29 1997  Ian Lance Taylor  <ian@cygnus.com>

	* config.sub: Merge with FSF.

Tue Jul 22 19:08:29 1997  Ian Lance Taylor  <ian@cygnus.com>

	* config.guess: Merge with FSF.

Tue Jul 22 14:50:42 1997  Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>

	* configure: Treat msdosdjgpp like go32.
	* configure.in: Likewise.  Don't remove gprof for go32.

	* configure: Change Makefile.tem2 to Makefile.tm2.

Mon Jul 21 10:31:26 1997  Stephen Peters  <speters@cygnus.com>

	* configure.in (noconfigdirs): For alpha-dec-osf*, don't ignore grep.

Tue Jul 15 14:33:03 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* install-sh (chmodcmd): Set to null if the DST directory already
	exists.  Same as Nov 11th change.

Mon Jul 14 11:01:15 1997  Martin M. Hunt  <hunt@cygnus.com>

	* configure (GDB_TK): Needs itcl and tix.

Mon Jul 14 00:32:10 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* config.guess: Update from FSF.

Fri Jul 11 11:57:11 1997  Martin M. Hunt  <hunt@cygnus.com>

	* Makefile.in (GDB_TK): Depend on itcl and tix.

Fri Jul  4 13:25:31 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (INSTALL_PROGRAM_ARGS): New variable.
	(INSTALL_PROGRAM): Use $(INSTALL_PROGRAM_ARGS).
	(INSTALL_SCRIPT): New variable.
	(BASE_FLAGS_TO_PASS): Pass down INSTALL_SCRIPT.
	* configure.in: If host is *-*-cygwin32*, set INSTALL_PROGRAM_ARGS
	to -x.
	* install-sh: Add support for -x option.

Mon Jun 30 15:51:30 1997  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in, Makefile.in: Treat tix like itcl.

Thu Jun 26 13:59:19 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (WINDRES): New variable.
	(WINDRES_FOR_TARGET): New variable.
	(BASE_FLAGS_TO_PASS): Add WINDRES_FOR_TARGET.
	(EXTRA_HOST_FLAGS): Add WINDRES.
	(EXTRA_TARGET_FLAGS): Add WINDRES.
	(EXTRA_GCC_FLAGS): Add WINDRES.
	($(DO_X)): Pass down WINDRES.
	($(CONFIGURE_TARGET_MODULES)): Set WINDRES when configuring.
	* configure: Treat WINDRES like DLLTOOL, and WINDRES_FOR_TARGET like
	DLLTOOL_FOR_TARGET.

Wed Jun 25 15:01:26 1997  Felix Lee  <flee@cygnus.com>

	* configure.in: configure sim before gdb for win32-x-ppc

Wed Jun 25 12:18:54 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>

	Move gperf into the toplevel, from libg++.
	* configure.in (target_tools): Add target-gperf.
	(native_only): Add target-gperf.
	* Makefile.in (all-target-gperf): New target, depend on
	all-target-libg++.
	(configure-target-gperf): Empty rule.
	(ALL_TARGET_MODULES): Add all-target-gperf.
	(CONFIGURE_TARGET_MODULES): Add configure-target-gperf.
	(CHECK_TARGET_MODULES): Add check-target-gperf.
	(INSTALL_TARGET_MODULES): Add install-target-gperf.
	(CLEAN_TARGET_MODULES): Add clean-target-gperf.

Mon Jun 23 10:51:53 1997  Jeffrey A Law  (law@cygnus.com)

	* config.sub (mn10200): Recognize new basic machine.

Thu Jun 19 14:16:42 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* configure.in: Don't set ENABLE_MULTILIB, so we'll be passing
	--enable-multilib down to subdirs; setting TARGET_SUBDIR was enough.

Tue Jun 17 15:31:20 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* configure.in: If we're building mips-sgi-irix6* native, turn on
	ENABLE_MULTILIB and set TARGET_SUBDIR.

Tue Jun 17 12:20:59 1997  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in (all-sn): Depend on all-grep.

Mon Jun 16 11:11:10 1997  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Use mh-ppcpic and mt-ppcpic for powerpc*-* targets.

	* configure: Set CFLAGS and CXXFLAGS, and substitute them into
	Makefile.  From Jeff Makey <jeff@cts.com>.
	* Makefile.in: Add comment for CFLAGS and CXXFLAGS.

	* Makefile.in (DISTBISONFILES): Remove.
	(taz): Don't futz with DISTBISONFILES.  Change BISON to use
	$(DEFAULT_YACC).

	* configure.in: Build itl, db, sn, etc., when building for native
	cygwin32.

	* Makefile.in (LD): New variable.
	(EXTRA_HOST_FLAGS): Pass down LD.
	($(DO_X)): Likewise.

Mon Jun 16 11:10:35 1997  Philip Blundell  <Philip.Blundell@pobox.com>

	* Makefile.in (INSTALL): Use $(SHELL) when executing install-sh.

Fri Jun 13 10:22:56 1997  Bob Manson  <manson@charmed.cygnus.com>

	* configure.in (targargs): Strip out any supplied --build argument
	before adding our own. Always add --build.

Thu Jun 12 21:12:28 1997  Bob Manson  <manson@charmed.cygnus.com>

	* configure.in (targargs): Pass --build if we're doing
	a cross-compile.

Fri Jun  6 21:38:40 1997  Rob Savoye  <rob@chinadoll.cygnus.com>

	* configure: Use '|' instead of ":" as the separator in
	sed. Otherwise sed chokes on NT path names with drive
	designators. Also look for "?:*" as the leading characters in an
	absolute pathname.

Mon Jun  2 13:05:20 1997  Gavin Koch  <gavin@cygnus.com>

	* config.sub: Support for r3900.

Wed May 21 17:33:31 1997  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Use install-sh, not install.sh.

Wed May 14 16:06:51 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (taz): Improve check for BISON so it doesn't try to
	apply it twice.

Fri May  9 17:22:05 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (INSTALL_MODULES): Put install-opcodes before
	install-binutils.

Thu May  8 17:29:50 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in: Add automake targets.
	* configure.in (host_tools): Add automake.

Tue May  6 15:49:52 1997  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Default CXX to c++, not gcc.
	* Makefile.in (CXX): Set to c++, not gcc.
	(CXX_FOR_TARGET): When cross, transform c++, not gcc.

Thu May  1 10:11:43 1997  Geoffrey Noer  <noer@cygnus.com>

	* install-sh: try appending a .exe if source file doesn't
	exist

Wed Apr 30 12:05:36 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* configure.in: Turn on multilib by default.
	(cross_only): Remove target-libiberty.

	* Makefile.in (all-gcc): Don't depend on libiberty.

Mon Apr 28 18:39:45 1997  Michael Snyder  <msnyder@cleaver.cygnus.com>

	* config.guess: improve algorithm for recognizing Gnu Hurd x86.

Thu Apr 24 19:30:07 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (DEVO_SUPPORT): Add mpw-install.
	(DISTBISONFILES): Add ld/Makefile.in

Tue Apr 22 17:17:28 1997  Geoffrey Noer  <noer@pizza.cygnus.com>

	* configure.in: if target is cygwin32 but host isn't cygwin32,
	don't configure gdb tcl tk expect, not just gdb.

Mon Apr 21 13:33:39 1997  Tom Tromey  <tromey@cygnus.com>

	* configure.in: Added gnuserv everywhere sn appears.

	* Makefile.in (ALL_MODULES): Added all-gnuserv.
	(CROSS_CHECK_MODULES): Added check-gnuserv.
	(INSTALL_MODULES): Added install-gnuserv.
	(CLEAN_MODULES): Added clean-gnuserv.
	(all-gnuserv): New target.

Thu Apr 17 13:57:06 1997  Per Fogelstrom  <pefo@openbsd.org>

	* config.guess: Fixes for MIPS OpenBSD systems.

Tue Apr 15 12:21:07 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (INSTALL_XFORM): Remove.
	(BASE_FLAGS_TO_PASS): Remove INSTALL_XFORM.

	* mkinstalldirs: New file, copied from automake.
	* Makefile.in (installdirs): Rename from install-dirs.  Use
	mkinstalldirs.  Change all users.
	(DEVO_SUPPORT): Add mkinstalldirs.

Mon Apr 14 11:21:38 1997  Ian Lance Taylor  <ian@cygnus.com>

	* install-sh: Rename from install.sh.
	* Makefile.in (INSTALL): Change install.sh to install-sh.
	(DEVO_SUPPORT): Likewise.

	* configure: Use ${config_shell} with ${moveifchange}.  From Thomas
	Graichen <graichen@rzpd.de>.

Fri Apr 11 16:37:10 1997  Niklas Hallqvist  <niklas@appli.se>

	* config.guess: Recognize OpenBSD systems correctly.

Fri Apr 11 17:07:04 1997  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* README, Makefile.in (ETC_SUPPORT): Remove references to
	cfg-paper*, configure.{texi,man,info*}._

Sun Apr  6 18:47:57 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* Makefile.in (all.normal): Ensure that gcc is built after all
	the x11 - ie gdb - targets.

Tue Apr  1 16:28:50 1997  Klaus Kaempf  <kkaempf@progis.de>

	* makefile.vms: Don't run conf-a-gas.

Mon Mar 31 16:26:55 1997  Joel Sherrill  <joel@oarcorp.com>

	* configure.in (hppa1.1-*-rtems*): New target, like hppa-*-*elf*.

Sun Mar 30 12:38:27 1997  Fred Fish  <fnf@cygnus.com>

	* configure.in: Remove noconfigdirs case since gdb also
	configures and builds for tic80-coff.

Fri Mar 28 18:28:52 1997  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Set cache_file to config.cache.
	* Makefile.in (local-distclean): Remove config.cache.

Wed Mar 26 18:49:39 1997  Ian Lance Taylor  <ian@cygnus.com>

	* COPYING: Update FSF address.

Wed Mar 26 10:38:25 1997  Michael Meissner  <meissner@cygnus.com>

	* configure.in (tic80-*-*): Remove G++ libraries and libgloss from
	noconfigdirs.

Mon Mar 24 15:02:39 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (install-dirs): Don't crash if prefix, and hence
	MAKEDIRS, is empty.

Mon Mar 24 12:40:55 1997  Doug Evans  <dje@canuck.cygnus.com>

	* config.sub: Tweak mn10300 entry.

Fri Mar 21 15:35:27 1997  Michael Meissner  <meissner@cygnus.com>

	* configure.in (host_tools): Put sim before gdb, so gdb's
	configure.tgt can determine if the simulator was configured.

Sun Mar 16 16:07:08 1997  Fred Fish  <fnf@cygnus.com>

	* config.sub: Move BeOS $os case to be with other Cygnus
	local cases.

Sun Mar 16 01:34:55 1997  Martin Hunt <hunt@cygnus.com>

	* config.sub: Remove misplaced comment that broke Linux.

Sat Mar 15 22:50:15 1997  Fred Fish  <fnf@cygnus.com>

	* config.sub: Add BeOS support.

Mon Mar 10 13:30:11 1997  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in (CHECK_X11_MODULES): Don't run check-tk.

Wed Mar  5 12:09:29 1997  Martin  <hunt@cygnus.com>

	* configure.in (noconfigdirs): Remove tcl and tk from
	noconfigdirs for cygwin32 builds.

Fri Feb 28 18:20:15 1997  Fred Fish  <fnf@cygnus.com>

	* configure.in (tic80-*-*): Remove ld from noconfigdirs.

Thu Feb 27 14:57:26 1997  Ken Raeburn  <raeburn@cygnus.com>

	* Makefile.in (GAS_SUPPORT_DIRS, BINUTILS_SUPPORT_DIRS): Remove
	make-all.com, use makefile.vms instead.

Tue Feb 25 18:46:14 1997  Stan Shebs  <shebs@andros.cygnus.com>

	* config.sub: Accept -lnews*.

Tue Feb 25 13:19:14 1997  Andrew Cagney  <cagney@kremvax.tpgi.com.au>

	* configure.in (noconfigdirs): Disable target-newlib,
	target-examples and target-libiberty for d30v.

Fri Feb 21 17:56:25 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* configure.in (noconfigdirs): Enable ld for d30v.

Fri Feb 21 20:58:51 1997  Michael Meissner  <meissner@cygnus.com>

	* configure.in (tic80-*-*): Build compiler.

Sun Feb 16 15:41:09 1997  Andrew Cagney  <cagney@critters.cygnus.com>

	* configure.in (d30v-*): Remove sim directory from list of
	unsupported d30v directories

Tue Feb 18 17:32:42 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* config.sub, configure.in: Add d30v target cpu.

Thu Feb 13 22:04:44 1997  Klaus Kaempf  <kkaempf@progis.de>

	* makefile.vms: New file.
	* make-all.com: Remove.

Wed Feb 12 12:54:18 1997  Jim Wilson  <wilson@cygnus.com>

	* Makefile.in (EXTRA_GCC_FLAGS): Add LIBGCC2_DEBUG_CFLAGS.

Sat Feb  8 20:36:49 1997  Michael Meissner  <meissner@cygnus.com>

	* Makefile.in (all-itcl): The rule is all-itcl, not all-tcl.

Tue Feb  4 11:39:29 1997  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in (ALL_MODULES): Added all-db.
	(CROSS_CHECK_MODULES): Addec check-db.
	(INSTALL_MODULES): Added install-db.
	(CLEAN_MODULES): Added clean-db.

Mon Feb  3 13:29:36 1997  Ian Lance Taylor  <ian@cygnus.com>

	* config.guess: Merge with latest FSF sources.

Tue Jan 28 09:20:37 1997  Tom Tromey  <tromey@cygnus.com>

	* Makefile.in (ALL_MODULES): Added all-itcl.
	(CROSS_CHECK_MODULES): Added check-itcl.
	(INSTALL_MODULES): Added install-itcl.
	(CLEAN_MODULES): Added clean-itcl.

Thu Jan 23 01:44:27 1997  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: build gdb for mn10200

Fri Jan 17 15:32:15 1997  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (all-target-winsup): Depend on all-target-libio.

Mon Jan 13 22:46:54 1997  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (tic80-*-*): Turn off most targets right now.

Fri Jan  3 16:04:03 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (MAKEINFO): Check for the existence of the Makefile,
	rather than the makeinfo program.
	(do-info): Depend upon all-texinfo.

Tue Dec 31 16:00:31 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Remove uses of config/mh-linux.

	* config.sub, config.guess: Merge with latest FSF sources.

Fri Dec 27 23:04:33 1996  Fred Fish  <fnf@cygnus.com>

	* config.sub (case $basic_machine): Add tic80 entries.

Fri Dec 27 12:07:59 1996  Ian Lance Taylor  <ian@cygnus.com>

	* config.sub, config.guess: Merge with latest FSF sources.

Wed Dec 18 22:46:39 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-build.in: Build ld before gcc, use NewFolderRecursive.
	* mpw-config.in: Test for NewFolderRecursive.
	* mpw-install: Use symbolic name for startup filename.
	* mpw-README: Add various additional details.

Wed Dec 18 13:11:46 1996  Jim Wilson  <wilson@cygnus.com>

	* configure.in (mips*-sgi-irix6*): Remove binutils from noconfigdirs.

Wed Dec 18 10:29:31 1996  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Do build gcc and the target libraries for
	the mn10200.

Wed Dec  4 16:53:05 1996  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: don't avoid building gdb for mn10300 any more
	* Makefile.in: double-quote GCC_FOR_TARGET line in EXTRA_GCC_FLAGS
	instead of single-quoting it.

Tue Dec  3 23:26:50 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* configure.in: Don't use --with-stabs on IRIX 6.

Tue Dec  3 09:05:25 1996  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in (m32r): Build gdb, libg++ now.

Sun Dec  1 00:18:59 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* configure.in (mips*-sgi-irix6*):  Remove gdb and related
	directories from noconfigdirs.

Tue Nov 26 11:45:33 1996  Kim Knuttila  <krk@cygnus.com>

	* config.sub (basic_machine): added mips16 configuration

Sat Nov 23 19:26:22 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* config.sub: Handle d10v-unknown.

Sat Nov 23 10:23:01 1996  Gavin Koch  <gavin@cygnus.com>

	* config.sub: Handle v850-unknown.

Thu Nov 21 16:19:44 1996  Geoffrey Noer  <noer@cygnus.com>

	* Makefile.in: add findutils
	* configure.in: add findutils to list of host_tools

Wed Nov 20 10:09:01 1996  Jeffrey A Law  (law@cygnus.com)

	* config.sub: Handle mn10200 and mn10300.

Tue Nov 19 16:35:14 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (d10v-*): Do not build librx.

Mon Nov 18 13:28:41 1996  Jeffrey A Law  (law@cygnus.com)

	* configure.in (mn10300): Build everything except gdb & libgloss.

Wed Nov 13 14:59:46 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* config.guess:  Patch for Dansk Data Elektronik servers,
	from Niels Skou Olsen <nso@dde.dk>.

	For ncr, use /bin/uname rather than uname, since GNU uname does not
	support -p.  Suggested by Mark Mitchell <mmitchell@usa.net>.

	Patch for MIPS R4000 running System V,
	from Eric S. Raymond <esr@snark.thyrsus.com>.

	Fix thinko for nextstep.

	Patch for OSF1 in i?86, from Dan Murphy <dlm@osf.org> via Harlan Stenn.

	Sat Jun 24 18:58:17 1995  Morten Welinder  <terra+@cs.cmu.edu>
	* config.guess: Guess mips-dec-mach_bsd4.3.

	Thu Oct 10 04:07:04 1996  Harlan Stenn <harlan@pfcs.com>
	* config.guess (i?86-ncr-sysv*):  Emit just enough of the minor
	release numbers.
	* config.guess (mips-mips-riscos*):  Emit just enough of the
	release number.

	Tue Oct  8 10:37:22 1996  Frank Vance <fvance@waii.com>
	* config.guess (sparc-auspex-sunos*):  Added.
	(f300-fujitsu-*): Added.

	Wed Sep 25 22:00:35 1996  Jeff Woolsey <woolsey@jlw.com>
	* config.guess:  Recognize a Tadpole as a sparc.

Wed Nov 13 00:53:09 1996  David J. MacKenzie  <djm@churchy.gnu.ai.mit.edu>

	* config.guess: Don't assume that NextStep version is either 2 or
	3.  NextStep 4 (aka OpenStep 4) has come out now.

Mon Nov 11 23:52:03 1996  David J. MacKenzie  <djm@churchy.gnu.ai.mit.edu>

	* config.guess: Support Cray T90 that reports itself as "CRAY TS".
	From Rik Faith <faith@cs.unc.edu>.

Fri Nov  8 11:34:58 1996  David J. MacKenzie  <djm@geech.gnu.ai.mit.edu>

	* config.sub: Contributions from bug-gnu-utils to:
	Support plain "hppa" (no version given) architecture, reported by
	OpenStep.
	OpenBSD like NetBSD.
	LynxOs is not a hardware supplier.

	* config.guess: Contributions from bug-gnu-utils to add support for:
	OpenBSD like NetBSD.
	Stratus systems.
	More Pyramid systems.
	i[n>4]86 Intel chips.
	M680[n>4]0 Motorola chips.
	Use unknown instead of lynx for hardware manufacturer.

Mon Nov 11 10:09:08 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* install.sh (chmodcmd): Set to null if the DST directory already
	exists.

Mon Nov 11 10:43:41 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (powerpc*-{eabi,elf,linux,rtem,sysv,solaris}*): Do
	not use mt-ppc target Makefile fragment any more.

Sun Nov  3 19:17:07 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* configure.in (*-*-windows):  Exclude everything but those dirs
	needed to build windows.

Tue Oct 29 16:41:31 1996  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (all-target-winsup): Depend on all-target-librx.

Mon Oct 28 17:32:46 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* configure.in:  Exclude mmalloc from i386-windows.

Thu Oct 24 09:22:46 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* Undo my previous change.

Thu Oct 24 12:12:04 1996  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (EXTRA_GCC_FLAGS): Pass down GCC_FOR_TARGET
	unconditionally.
	(MAKEOVERRIDES): Define (revert this part of October 18 change).

Thu Oct 24 09:02:07 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* Makefile.in (FLAGS_TO_PASS):  Add $(HOST_FLAGS) to allow the
	host to add it's own flags.

Tue Oct 22 15:20:26 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Handle GCC_FOR_TARGET like CC_FOR_TARGET.

Fri Oct 18 13:37:13 1996  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (CC_FOR_TARGET): Check for xgcc, not Makefile.
	(CXX_FOR_TARGET): Likewise.
	(GCC_FOR_TARGET): Define.
	(BASE_FLAGS_TO_PASS): Remove GCC_FOR_TARGET.
	(EXTRA_GCC_FLAGS): Define GCC_FOR_TARGET based on whether
	CC_FOR_TARGET was specified on the command line.
	(MAKEOVERRIDES): Don't define.

Thu Oct 17 10:27:56 1996  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in (m32r): Fix spelling of libg++ libs.

Thu Oct 10 10:37:17 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* config.sub (-apple*): Remove, now redundant.

Thu Oct 10 12:30:54 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Don't get confused by CPU-VENDOR-linux-gnu.

	* configure: Rework yesterday's sed script patch.

	* config.sub: Merge with FSF.

Wed Oct  9 17:24:59 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* config.guess:  Merge from FSF.

	1996-09-12  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
	* config.guess: Use pc instead of unknown, for pc clone systems.
	Change linux to linux-gnu.

	Mon Jul 15 23:51:11 1996  Karl Heuer  <kwzh@gnu.ai.mit.edu>
	* config.guess: Avoid non-portable tr syntax.

Wed Oct  9 06:06:46 1996  Jeffrey A Law  (law@cygnus.com)

	* test-build.mk (HOLES): Add "xargs" for gdb.

	* configure: Avoid hpux10.20 sed bug.

Tue Oct  8 08:32:48 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* configure.in:  Add support for windows host
	(that is a build done under the Microsoft build environment).

Tue Oct  8 10:39:08 1996  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in: Replace all uses of srcroot with s, to shrink
	command line lengths.

	Patches from Geoffrey Noer <noer@cygnus.com>:
	* configure.in: If configuring for newlib, pass --with-newlib to
	subdirectories.
	* Makefile.in (CC_FOR_TARGET): If winsup/Makefile exists, pass a
	-Bnewlib/ and -Lwinsup to gcc.
	(CXX_FOR_TARGET): Likewise.

Mon Oct  7 10:59:35 1996  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (ETC_SUPPORT): Add configure.

Fri Oct  4 12:22:58 1996  Angela Marie Thomas (angela@cygnus.com)

	* configure.in: Use config/mh-dgux386 for i[345]86-dg-dgux
	host configuration file.

Thu Oct  3 09:28:25 1996  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Break mn10x00 support into separate
	mn10200 and mn10300 configurations.
	* config.sub: Likewise.

Wed Oct  2 22:27:52 1996  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Add lots of stuff to noconfigdirs for
	the mn10x00 targets.

	* config.sub, configure.in: Add mn10x00 support.

Wed Oct  2 15:52:36 1996  Klaus Kaempf  <kkaempf@progis.de>

	* make-all.com: Call conf-a-gas, not config-a-gas.

Tue Oct  1 01:28:41 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* configure.in (noconfigdirs): Don't build libgloss for arm-coff
	targets.

Mon Sep 30 14:24:01 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-README: Add much more detail for native PowerMac.
	* mpw-install: New file.
	* mpw-configure: Add --norecursion and --help options.
	* mpw-config.in: Translate readme and install files when
	copying to objdir.
	* mpw-build.in: Don't always depend on byacc and flex.
	(install-only-top): New action.

Fri Sep 27 17:39:44 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* configure.in:  You can now configure GDB for the v850.

Tue Sep 24 19:05:12 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* configure.in (noconfigdirs): Don't configure any C++ dirs
	if targeting D10V.

Tue Sep 17 12:15:31 1996  Ian Lance Taylor  <ian@cygnus.com>

	* config.sub: Recognize mips64vr5000.

Mon Sep 16 17:00:52 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Use a single line for host_tools and native_only.

Mon Sep  9 12:21:30 1996  Doug Evans  <dje@canuck.cygnus.com>

	* config.sub, configure.in: Add entries for m32r.

Thu Sep  5 13:52:47 1996  Tom Tromey  <tromey@creche.cygnus.com>

	* Makefile.in (inet-install): Don't run install-gzip.

Wed Sep  4 17:26:13 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* configure.in:  Don't config lots of things for *-*-windows*.

Sat Aug 31 11:45:57 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-config.in: Test for mpw-true, true, and null-command scripts.
	(host_libs, host_tools): Copy from configure.in.
	* mpw-configure: Don't complain about directories not found.

Thu Aug 29 16:44:58 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (i[345]86): Recognize i686 for pentium pro.
	(i[3456]86-*-dgux*): Use config/mh-sysv for the host configuration
	file.

	* config.guess (i[345]86): Ditto.

Mon Aug 26 18:34:42 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* configure.in (noconfigdirs): Removed gdb for D10V.

Thu Aug 22 17:13:52 1996  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Remove ld, target-libio, target-libg++, and
	target-libstdc++ from noconfigdirs.

Wed Aug 21 18:56:38 1996  Fred Fish  <fnf@cygnus.com>

	* configure: Fix three locations where shell scripts were
	being run directly rather than with config_shell.

Tue Aug 20 13:08:47 1996  J.T. Conklin  <jtc@hippo.cygnus.com>

	* configure.in (v850-*-*): Set up initial $noconfigdirs.
	* config.sub (basic_machine): Recognize v850.

Thu Aug 15 12:19:33 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-configure: Handle multiple enable/disable options and
	pass them down recursively, handle -c and -s flags appropriately
	depending on choice of compiler, add escape mechanism for
	quoted arguments to gC.

Mon Aug 12 13:15:13 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (powerpc*-*-*): For eabi, system V.4, Linux, and
	solaris targets, use config/mt-ppc to set C{,XX}FLAGS_FOR_TARGETS
	so that -mrelocatable-lib and -mno-eabi are used.

	* Makefile.in (CONFIGURE_TARGET_MODULES): If target compiler does
	not support --print-multi-lib, don't abort.

Thu Aug  8 12:18:59 1996  Klaus Kaempf  <kkaempf@progis.de>

	* make-all.com: Run config-a-gas.
	* setup.com: Don't copy subdirectory files around.

Tue Jul 30 17:49:31 1996  Brendan Kehoe  <brendan@cygnus.com>

	* configure.in (*-*-ose): Remove exclusion of libgloss for this
	target, it now compiles correctly.

Sat Jul 27 15:10:43 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-config.in: Generate Mac include for elf/dwarf2.h.

Tue Jul 23 10:47:04 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* configure.in (d10v-*-*): Remove ld from $noconfigdirs.

Mon Jul 22 13:28:51 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* configure.in (native_only): Add prms.

Mon Jul 22 12:27:58 1996  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (GAS_SUPPORT_DIRS): Add make-all.com and setup.com.
	(BINUTILS_SUPPORT_DIRS): Likewise.

Thu Jul 18 12:55:40 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (d10v-*-*): Don't configure ld or gdb until the
	d10v support is added.

Wed Jul 17 14:33:09 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* configure.in (d10v-*-*): New target.

Mon Jul 15 11:53:00 1996  Jeffrey A Law  (law@cygnus.com)

	* config.guess (HP 9000/811): Recognize this as a PA1.1
	machine.

Fri Jul 12 23:21:17 1996  Ken Raeburn  <raeburn@cygnus.com>

	* Makefile.in (do-tar-gz): New target, split out from tail end of
	taz target.  Run each command separately, don't use pipes.
	(taz): Use it.

Fri Jul 12 12:08:04 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-configure: Look for g-mpw-make.sed in config/mpw.
	* mpw-build.in: No builds should depend on building byacc or flex,
	they are assumed to be installed already.

Fri Jul 12 09:52:52 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* Makefile.in (CONFIGURE_TARGET_MODULES): Set r environment
	variable that CC_FOR_TARGET needs.

Thu Jul 11 10:09:45 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* Makefile.in (CONFIGURE_TARGET_MODULES): Determine if the multlib
	options have changed since the last time the subdirectory was
	configured, and if it has, reconfigure.
	(CLEAN_TARGET_MODULES): Delete multilib.out and tmpmulti.out, which
	CONFIGURE_TARGET_MODULES uses to remember the old multilib options.

Wed Jul 10 18:56:59 1996  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (ALL_MODULES,CROSS_CHECK_MODULES,INSTALL_MODULES,
	CLEAN_MODULES): Add bash.
	(all-bash): New target.

Mon Jul  8 17:33:14 1996  Jim Wilson  <wilson@cygnus.com>

	* configure.in (mips-sgi-irix6*): Use mh-irix6 instead of mh-irix5.

Mon Jul  1 13:31:35 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* config.sub (basic_machine): Recognize d10v as a valid processor.

Fri Jun 28 12:14:35 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-configure: Add support for --bindir.
	* mpw-build.in: Use a GCC-specific build script for GCC actions.

Wed Jun 26 17:20:12 1996  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: add bash, time, gawk to list of hosttools and things
	to only build for native toolchains

Tue Jun 25 23:09:03 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (docdir): Remove.

Tue Jun 25 19:00:08 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (datadir): Set to $(prefix)/share.

Mon Jun 24 23:26:07 1996  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: build diff and patch for cygwin32-hosted
	toolchains.

Mon Jun 24 15:01:12 1996  Joel Sherrill  <joel@merlin.gcs.redstone.army.mil>

	* config.sub: Accept -rtems*.

Sun Jun 23 22:41:54 1996  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: enable dosrel for cygwin32-hosted builds,
		remove diff from the list of things not buildable
		via Canadian Cross

Sat Jun 22 11:39:01 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* Makefile.in (TARGET_SUBDIR): Move comment to previous line so we
	don't get ". ".

Fri Jun 21 17:24:48 1996  Jim Wilson  <wilson@cygnus.com>

	* configure.in (mips*-sgi-irix6*): Set noconfigdirs appropriately.

Thu Jun 20 16:57:40 1996  Ken Raeburn  <raeburn@cygnus.com>

	* Makefile.in (taz): Handle case where tex3patch didn't even get
	checked out.  Also, if it was found, put the symlink in a new util
	subdirectory.

Thu Jun 20 12:20:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* config.guess (*:Linux:*:*): Add support for PowerPC Linux.

Tue Jun 18 14:24:12 1996  Klaus Kaempf  (kkaempf@progis.de)

	* config.sub: Recognize -openvms.
	* configure.in (alpha*-*-*vms*): Set noconfigdirs.
	* make-all.com, setup.com: New files.

Mon Jun 17 16:34:46 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* Makefile.in (taz): tex3patch moved to texinfo/util.

Sat Jun 15 17:13:25 1996  Geoffrey Noer <noer@cygnus.com>

	* configure: enable_gdbtk=no for cygwin32-hosted toolchains
	* configure.in: remove make from disable-if-Can-Cross list
		enable gdb if ${host} and ${target} are cygwin32

Fri Jun  7 18:16:52 1996  Harlan Stenn <harlan@pfcs.com>

	* config.guess (i?86-ncr-sysv*):  Emit minor release numbers.
	Recognize the NCR 4850 machine and NCR Pentium-based platforms.

Wed Jun  5 00:09:17 1996  Per Bothner  <bothner@wombat.gnu.ai.mit.edu>

	* config.guess:  Combine mips-mips-riscos cases, and use cpp to
	distinguish sysv/svr4/bsd variants.
	Based on a patch from Harlan Stenn <harlan@pfcs.com>.

Fri Jun  7 14:24:49 1996  Tom Tromey  <tromey@creche.cygnus.com>

	* configure.in: Added copyright notice.
	* move-if-change: Added copyright notice.

Thu Jun  6 16:27:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (powerpcle-*-solaris*): Until we get shared
	libraries working, don't build gdb, sim, make, tcl, tk, or
	expect.

Tue Jun  4 20:41:45 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* config.guess:  Merge with FSF:

	Mon Jun  3 08:49:14 1996  Karl Heuer  <kwzh@gnu.ai.mit.edu>
	* config.guess (*:Linux:*:*): Add guess for sparc-unknown-linux.

	Fri May 24 18:34:53 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
	* config.guess (AViiON:dgux:*:*): Fix typo in recognizing mc88110.

	Fri Apr 12 20:03:59 1996  Per Bothner  <bothner@spiff.gnu.ai.mit.edu>
	* config.guess:  Combine two OSF1 rules.
	Also recognize field test versions.  From mjr@zk3.dec.com.
	* config.guess (dgux):  Use /usr/bin/uname rather than uname,
	because GNU uname does not support -p.  From pmr@pajato.com.

Tue Jun  4 11:07:25 1996  Tom Tromey  <tromey@csk3.cygnus.com>

	* Makefile.in (MAKEDIRS): Removed $(tooldir).

Tue May 28 12:30:50 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-README: Document GCCIncludes.

Sun May 26 15:16:27 1996  Fred Fish  <fnf@cygnus.com>

	* configure.in (alpha-*-linux*): Set enable_shared to yes.

Tue May 21 15:41:39 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-configure: Handle --enable-FOO and --disable-FOO.

Mon May 20 10:12:29 1996  Geoffrey Noer  <noer@cygnus.com>

	* configure.in (*-*-cygwin32): Configure make.

Tue May  7 14:19:42 1996  Tom Tromey  <tromey@snuffle.cygnus.com>

	* Makefile.in (inet-install): Quote value of INSTALL_MODULES.

Fri May  3 08:57:17 1996  Tom Tromey  <tromey@lisa.cygnus.com>

	* Makefile.in (all-inet): Depend on all-perl.

	* Makefile.in (inet-install): New target.

	* Makefile.in (all-inet): Depend on all-tcl.
	(all-inet): Depend on all-send-pr.

Tue Apr 30 13:55:51 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (powerpcle-*-solaris*): Turn off tk and tcl
	temporarily.

Thu Apr 25 11:48:20 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Don't configure --with-gnu-ld on AIX.

Thu Apr 25 06:33:36 1996  Michael Meissner  <meissner@wogglebug.tiac.net>

	* configure.in (powerpcle-*-solaris*): Turn off gdb temporarily.

Tue Apr 23 09:07:39 1996  Tom Tromey  <tromey@creche.cygnus.com>

	* Makefile.in (ALL_MODULES): Added all-inet.
	(CROSS_CHECK_MODULES): Added check-inet.
	(INSTALL_MODULES): Added install-inet.
	(CLEAN_MODULES): Added clean-inet.
	(all-indent): New target.

	* configure.in (host_tools): Added inet.
	(native_only): Added inet.
	(noconfigdirs): Added inet.

Fri Apr 19 15:35:29 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Don't configure libgloss if we are not configuring
	newlib.

Wed Apr 17 19:30:01 1996  Rob Savoye  <rob@chinadoll.cygnus.com>

	* configure.in: Don't configure libgloss for unsupported
	architectures.

Tue Apr 16 11:17:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* Makefile.in (CLEAN_MODULES): Add clean-apache.

Mon Apr 15 15:09:05 1996  Tom Tromey  <tromey@creche.cygnus.com>

	* Makefile.in (ALL_MODULES): Include all-apache.
	(CROSS_CHECK_MODULES): Include check-apache.
	(INSTALL_MODULES): Include install-apache.
	(all-apache): New target.

	* configure.in: Added apache everywhere perl is seen.

Mon Apr 15 14:59:13 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* Makefile.in: Add support for clean-{module} and
	clean-target-{module} rules.

Wed Apr 10 21:37:41 PDT 1996  Marilyn E. Sander <msander@cygnus.com>

	* configure.in (*-*-ose) do not build libgloss.

Mon Apr  8 16:16:20 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* config.guess (prep*:SunOS:5.*:*): Turn into
	powerpele-unknown-solaris2.

Mon Apr  8 14:45:41 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Permit --enable-shared to specify a list of
	directories.

Fri Apr  5 08:17:57 1996  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in (host==solaris): Pass only the first word of $CC
	to /usr/bin/which when checking if we're using /usr/ccs/bin/cc.

Fri Apr  5 03:16:13 1996  Jason Molenda  (crash@phydeaux.cygnus.com)

	* Makefile.in (BASE_FLAGS_TO_PASS): pass down $(MAKE).

Thu Mar 28 14:11:11 1996  Tom Tromey  <tromey@creche.cygnus.com>

	* Makefile.in (ALL_MODULES): Include all-perl.
	(CROSS_CHECK_MODULES): Include check-perl.
	(INSTALL_MODULES): Include install-perl.
	(ALL_X11_MODULES): Include all-guile.
	(CHECK_X11_MODULES): Include check-guile.
	(INSTALL_X11_MODULES): Include install-guile.
	(all-perl): New target.
	(all-guile): New target.

	* configure.in (host_tools): Include perl and guile.
	(native_only): Include perl and guile.
	(noconfigdirs): Don't build guile and perl; no ports have been
	done.

Tue Mar 26 21:18:50 1996  Andrew Cagney  <cagney@kremvax.highland.com.au>

	* configure (--enable-*): Handle quoted option lists such as
	--enable-sim-cflags='-g0 -O' better.

Thu Mar 21 11:53:08 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* Makefile.in ({,inst}all-target): New rule so we can make and
	install all of the target directories easily.

Wed Mar 20 18:10:57 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* configure.in: Add missing global flag in sed substitution when
	deleting `target-' from ${configdirs}.

Thu Mar 14 19:15:06 1996  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (DO_X): Don't get confused if CC contains `=' in an
	option.

	* configure.in (mips*-nec-sysvr4*): Use a host_makefile_frag of
	config/mh-necv4.

	* install.sh: Correct misspelling of transformbasename.

	* config.guess: Recognize mips-*-sysv*.

Mon Mar 11 15:36:42 1996  Dawn Perchik  <dawn@critters.cygnus.com>

	* config.sub: Recognize mon960.

Sun Mar 10 13:18:38 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Restore Canadian Cross handling of BISON and LEX,
	removed in Feb 20 change.

Fri Mar  8 20:07:09 1996  Per Bothner  <bothner@kalessin.cygnus.com>

	* README:  Suggestions from Torbjorn Granlund <tege@matematik.su.se>:
	Mention make install.  Remove the old copyright date as well the
	clumsy and rather pointless copyright on the README file.

Fri Mar  8 17:51:35 1996  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in ($(CONFIGURE_TARGET_MODULES)): If there is a
	Makefile after running symlink-tree, then run `make distclean' to
	avoid clobbering any generated files in srcdir.

Tue Mar  5 08:21:44 1996  J.T. Conklin  <jtc@rtl.cygnus.com>

	* configure.in (m68k-*-netbsd*): Build everything now.

Wed Feb 28 12:25:46 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* Makefile.in (taz): Fix quoting.

Tue Feb 27 11:33:57 1996  Doug Evans  <dje@charmed.cygnus.com>

	* configure.in (sparclet-*-*): Build everything now.

Tue Feb 27 14:31:51 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* configure.in (m68k-*-linux*): New host.

Mon Feb 26 14:32:44 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Check for bison before byacc.

Tue Feb 20 23:12:35 1996  Stu Grossman  (grossman@critters.cygnus.com)

	* Makefile.in configure:  Change the way LEX and BISON/YACC are
	set.  configure now defines DEFAULT_LEX and DEFAULT_YACC by
	searching PATH.  These are used as fallbacks by Makefile.in if
	flex/bison/byacc aren't in objdir.

Mon Feb 19 11:45:30 1996  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in: Make everything which depends upon all-bfd also
	depend upon all-opcodes, in case --with-commonbfdlib is used.

Thu Feb 15 19:50:50 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (host *-*-cygwin32): Don't build gdb if we are
	building NT native compilers on Unix.

Thu Feb 15 17:42:25 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Don't get CC from the host Makefile fragment if we
	can find gcc in PATH, or if this is a Canadian Cross.  Move the
	Solaris test for /usr/ucb/cc to the post target script, just after
	the compiler sanity test.

Wed Feb 14 16:57:40 1996  Ian Lance Taylor  <ian@cygnus.com>

	* config.sub: Merge with FSF.

Tue Feb 13 14:27:48 1996  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (RPATH_ENVVAR): New variable.
	(REALLY_SET_LIB_PATH): Use it.
	* configure.in: On HP/UX, set RPATH_ENVVAR to SHLIB_PATH.

Mon Feb 12 15:28:49 1996  Doug Evans  <dje@charmed.cygnus.com>

	* config.sub, configure.in: Recognize sparclet cpu.

Mon Feb 12 15:33:59 1996  Christian Bauernfeind <chrisbfd@theorie3.physik.uni-erlangen.de>

	* config.guess:  Support m68k-cbm-sysv4.

Sat Feb 10 12:06:42 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* config.guess (*:Linux:*:*): Guess m68k-unknown-linux and
	m68k-unknown-linuxaout from linker help string.  Put quotes around
	$ld_help_string.

Thu Dec  7 09:03:24 1995  Tom Horsley  <Tom.Horsley@mail.hcsc.com>

	* config.guess (powerpc-harris-powerunix): Add guess for port
	to new target.

Thu Feb  8 15:37:52 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* config.guess (UNAME_VERSION): Recognize X4.x as an OSF version.

Mon Feb  5 16:36:51 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: If --enable-shared was used, set SET_LIB_PATH to
	$(REALLY_SET_LIB_PATH) in Makefile.
	* Makefile.in (SET_LIB_PATH): New variable.
	(REALLY_SET_LIB_PATH): New variable.
	($(DO_X)): Use $(SET_LIB_PATH).
	(install.all, gcc-no-fixedincludes, $(ALL_MODULES)): Likewise.
	($(NATIVE_CHECK_MODULES), $(CROSS_CHECK_MODULES)): Likewise.
	($(INSTALL_MODULES), $(CONFIGURE_TARGET_MODULES)): Likewise.
	($(ALL_TARGET_MODULES), $(CHECK_TARGET_MODULES)): Likewise.
	($(INSTALL_TARGET_MODULES), $(ALL_X11_MODULES)): Likewise.
	($(CHECK_X11_MODULES), $(INSTALL_X11_MODULES)): Likewise.
	(all-gcc, all-bootstrap, check-gcc, install-gcc): Likewise.
	(install-dosrel): Likewise.
	(all-opcodes): Depend upon all-libiberty.

Sun Feb  4 16:51:11 1996  Steve Chamberlain  <sac@slash.cygnus.com>

	* config.guess (*:CYGWIN*): New

Sat Feb  3 10:42:35 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* Makefile.in (all-target-winsup): All all-target-libiberty.

Fri Feb  2 17:58:56 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* configure.in (noconfigdirs): Add missing # in front of comment.

Thu Feb  1 14:38:13 1996  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: add second pass to things added to noconfigdirs
	so *-gm-magic can exclude libgloss properly.

Thu Feb  1 11:10:16 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-configure (extralibs_name, rez_name): Set correctly
	for MWC68K compiler.

	* mpw-README: Add more info on the necessary build tools.

Thu Feb  1 10:22:38 1996  Steve Chamberlain  <sac@slash.cygnus.com>

	* configure.in, config.sub: Recognize cygwin32.

Wed Jan 31 14:17:10 1996  Richard Henderson  <rth@tamu.edu>

	* config.guess, config.sub: Recognize A/UX.

Wed Jan 31 13:52:14 1996  Ian Lance Taylor  <ian@cygnus.com>

	* config.sub: Merge with gcc/config.sub.

Thu Jan 25 11:01:10 1996  Raymond Jou  <rjou@mexican.cygnus.com>

	* mpw-build.in (do-binutils): Add build of stamps.

Thu Jan 25 17:05:26 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* config.sub: Add recognition for mips64vr4100*-* targets.

Wed Jan 24 12:47:55 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* test-build.mk: Add checking of `hpux9' rather than just `hpux'.
	Add creation of gconfigargs with `--enable-shared' turned on.
	($(host)-stamp-stage2-configured): Pass $(gconfigargs).
	($(host)-stamp-stage3-configured): Likewise.
	(HOLES): Add chatr and ldd.
	(i386-ncr-sysv4.3*): Add use of /usr/ccs/bin in the PATH and HOLE_DIRS.

Wed Jan 24 20:32:30 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* configure: Pass --nfp to recursive configures.

Mon Jan 22 10:41:56 1996  Steve Chamberlain  <sac@slash.cygnus.com>

	* Makefile.in (DLLTOOL): New.
	(DLLTOOL_FOR_TARGET): New.
	(EXTRA_HOST_FLAGS): Pass down DLLTOOL.
	(EXTRA_TARGET_FLAGS): Ditto.
	(EXTRA_GCC_FLAGS): Ditto.
	(CONFIGURE_TARGET_MODULES): Ditto.
	(DO_X): Ditto.
	* configure: Add DLLTOOL.

Fri Jan 19 13:30:15 1996  Stan Shebs  <shebs@andros.cygnus.com>

	SCO OpenServer 5 changes from Robert Lipe <robertl@dgii.com>:
	* configure.in (i[345]86-*-sco3.2v5*): Use mh-sysv instead of
	mh-sco, since old workarounds no longer needed, and don't
	build ld, since libraries have weak symbols in COFF.

Sun Jan 14 23:01:31 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (CONFIGURE_TARGET_MODULES): Add missing ';'.

Fri Jan 12 15:25:35 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Make sure that ${CC} can be used to compile an
	executable.

Sat Jan  6 07:23:33 1996  Michael Meissner  <meissner@wogglebug.tiac.net>

	* Makefile.in (all-gdb): Depend on $(GDB_TK).
	* configure (GDB_TK): Set GDB_TK to either "all-tcl all-tk" or
	nothing depending on whether gdbtk is being built.

Wed Jan  3 17:54:41 1996  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (newlib.tar.gz): Delete building of newlib's info files.

Mon Jan  1 19:09:14 1996  Brendan Kehoe  <brendan@rtl.cygnus.com>

	* configure.in (noconfigdirs): Put ld or gas in this early, if the
	user specifically used --with-gnu-ld=no or --with-gnu-as=no.

Sat Dec 30 16:08:57 1995  Doug Evans  <dje@canuck.cygnus.com>

	* config-ml.in: Add support for
	--disable-{softfloat,m68881,m68000,m68020} on m68*-*-*.
	Simplify setting of multidirs from --disable-foo.

Fri Dec 29 07:56:11 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* Makefile.in (EXTRA_GCC_FLAGS): If any of the make variables
	LANGUAGES, BOOT_CFLAGS, STMP_FIXPROTO, LIMITS_H_TEST,
	LIBGCC1_TEST, LIBGCC2_CFLAGS, LIBGCC2_INCLUDES, and ENQUIRE are
	non-empty, pass them on to the	GCC make.
	(all-bootstrap): New rule that is like all-gcc, except it executes
	the GCC bootstrap rule instead of the GCC all rule.

Wed Dec 27 15:51:48 1995  Doug Evans  <dje@canuck.cygnus.com>

	* config-ml.in (ml_realsrcdir): New, to account for ${subdir}.

Tue Dec 26 11:45:31 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* config.guess (AViiON:dgux:*:*): Update from FSF to add pentium
	DG/UX support.

Fri Dec 15 10:01:27 1995  Stan Cox  <coxs@dg-rtp.dg.com>

	* config.sub (i*86*) Change [345] to [3456]

Wed Dec 20 17:41:40 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* configure.in (noconfigdirs): Add gas or ld if --with-gnu-as=no or
	--with-gnu-ld=no.

Wed Dec 20 15:15:35 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* config-ml.in (rs6000*, powerpc*): Add switches to control which
	AIX multilibs get built.

Mon Dec 18 17:55:46 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in (i386-win32): Don't build expect if we're not
	building the tcl subdir.

Mon Dec 18 11:47:19 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* Makefile.in: (configure-target-examples, all-target-examples):
	New targets, configure and build example programs.

Fri Dec 15 16:13:03 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-configure: If an mpw-config.in generated a file mk.sed,
	use it as input to sedit the generated MPW makefile.
	* mpw-README: Add a suggestion about Gestalt.h.

Wed Dec 13 16:43:51 1995  Ian Lance Taylor  <ian@cygnus.com>

	* config.sub: Accept *-*-ieee*.

Tue Dec 12 11:52:57 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (local-distclean): Remove $(TARGET_SUBDIR).  From
	Ronald F. Guilmette <rfg@monkeys.com>.

Mon Dec 11 15:31:58 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in (host==powerpc-pe): Add many directories to noconfigdirs
	for powerpc-pe native.
	(target==i386-win32): add tcl, make to noconfigdirs if canadian cross.
	(target==powerpc-pe): duplicate i386-win32 entry.

Sat Dec  9 14:58:28 1995  Jim Wilson  <wilson@chestnut.cygnus.com>

	* configure.in (noconfigdirs): Exclude target-newlib for all versions
	of vxworks, not just vxworks5.1.

Mon Dec  4 12:05:40 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-configure: Add support for exec-prefix.

Mon Dec  4 10:22:50 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* config.guess: Recognize HP model 816 machines as having
	a PA1.1 processor.

Mon Dec  4 12:38:15 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Ignore new autoconf configure options.

Thu Nov 30 16:57:33 1995  Per Bothner  <bothner@wombat.gnu.ai.mit.edu>

	* config.guess:  Recognize Pentium under SCO.
	From Robert Lipe <robertl@arnet.com>.

Wed Nov 29 13:49:08 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* configure.in (noconfigdirs): Disable target-libio on v810-*-*.

Wed Nov 29 12:12:01 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Don't configure gas for alpha-dec-osf*.

Tue Nov 28 17:16:48 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Default to --with-stabs for some targets for which
	it makes sense: mips*-*-*, alpha*-*-osf*, i[345]86*-*-sysv4* and
	i[345]86*-*-unixware*.

Mon Nov 27 13:44:15 1995  Ian Lance Taylor  <ian@cygnus.com>

	* config-ml.in: Get list of multidirs using gcc --print-multi-lib
	rather than basing it on the target.  Simplify handling of options
	controlling which directories to configure.  Remove extraneous
	slash in multi-clean target.

Fri Nov 24 17:29:29 1995  Doug Evans  <dje@deneb.cygnus.com>

	* config-ml.in: Prefix more variables with ml_ so they don't collide
	with configure's.

Wed Nov 22 11:27:02 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Don't turn -v into --v.

Tue Nov 21 16:48:02 1995  Doug Evans  <dje@deneb.cygnus.com>

	* configure.in (targargs): Fix typo.

	* Makefile.in (DEVO_SUPPORT): Add symlink-tree.

Tue Nov 21 14:08:28 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Strip --host and --target options from
	CONFIG_ARGUMENTS, and always configure for --host only.  Add
	--with-cross-host option when building with a cross-compiler.
	* configure: Canonicalize the arguments put into config.status by
	always using `=' for an option with an argument.  Pass a presumed
	--host or --target explicitly.

Fri Nov 17 17:50:30 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* config.sub: Merge -macos*, -magic*, -pe*, and -win32 cases
	into general OS recognition case.

Fri Nov 17 17:42:25 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in (target_configdirs): add target-winsup only
	for win32 target systems.

Thu Nov 16 14:04:47 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (all-target-libgloss): Depend upon
	configure-target-newlib, since when libgloss is built it looks to
	see if the newlib directory exists.

Wed Nov 15 14:47:52 1995  Ken Raeburn  <raeburn@cygnus.com>

	* Makefile.in (DEVO_SUPPORT): Use config-ml.in instead of
	cfg-ml-*.in.

Wed Nov 15 11:45:23 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Handle LD and LD_FOR_TARGET when configuring a
	Canadian Cross.

Tue Nov 14 14:56:11 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in (target_libs): add target-winsup.
	(target==i386-win32): add patch diff flex make to $noconfigdirs.
	(target==ppcle-pe): remove ld from $noconfigdirs.

Tue Nov 14 01:25:50 1995  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (CONFIGURE_TARGET_MODULES): Pass --with-target-subdir.
	Preserve relative path names in $srcdir.  Build symlink tree if
	configuring cross target dir and srcdir=. (= no VPATH support).
	(configure-target-libg++): Depend on configure-target-librx.
	* cfg-ml-com.in, cfg-ml-pos.in: Deleted.
	* config-ml.in: New file.
	* symlink-tree: New file.
	* configure: Ensure srcdir="." if that's what it is.

Mon Nov 13 12:34:20 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-README: Clarify some phrasing, add notes about CodeWarrior
	includes and FLEX_SKELETON setting.
	* mpw-configure (--with-gnu-ld): New option, controls whether
	to use PPCLink or ld with PowerMac GCC.
	* mpw-build.in (all-grez, do-grez, install-grez): New targets.
	* mpw-config.in: Configure grez if targeting Mac.

	* config.sub: Accept pmac and pmac-mpw as names for PowerMacs,
	accept mpw and mac-mpw as names for m68k Macs, change macos7 to
	just macos.
	* configure.in: Configure grez resource compiler if targeting Mac.
	* Makefile.in (all-grez, install-grez): New targets.

Wed Nov  8 17:33:51 1995  Jason Merrill  <jason@yorick.cygnus.com>

	* configure: CXX defaults to gcc, not g++.  If we find
	gcc in the path, set CC to gcc -O2.

Tue Nov  7 15:45:17 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Default ${build} correctly.  Avoid picking up extra
	spaces when reading CC and CXX from Makefile.  When doing a
	Canadian Cross, use plausible default values for numerous
	variables.
	* configure.in: When doing a Canadian Cross, don't try to
	configure tools whose configure script can't handle it.

Mon Nov  6 19:32:17 1995  Jim Wilson  <wilson@chestnut.cygnus.com>

	* cfg-ml-com.in (sh-*-*): Add m2 and ml/m2 to multidirs.

Sun Nov  5 00:15:41 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* configure:  Remove dubious bug reporting address.

Fri Nov  3 08:17:54 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* Makefile.in ($(CONFIGURE_TARGET_MODULES)):  If subdir has
	configure script, run that instead of this directory's configure.
	In either case, print a message that we're configuring the sub-dir.

Thu Nov  2 23:23:36 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* configure.in: Before checking for the existence of various files,
	use sed to filter out "target-".

Thu Nov  2 13:24:56 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (DO_X): Split rule to decrease command line length
	for systems with small ARG_MAX values.  From phdm@info.ucl.ac.be
	(Philippe De Muyter).

Wed Nov  1 15:18:35 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* Makefile.in (all-patch): depend on all-libiberty.

Wed Nov  1 12:23:20 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: If the only directory in target_configdirs which
	actually exists is libiberty, then set target_configdirs to empty,
	to avoid trying to build a target libiberty in a gas or gdb
	distribution.

Tue Oct 31 17:52:39 1995  J.T. Conklin  <jtc@slave.cygnus.com>

	* configure.in (host_makefile_frag): Use m68k-sun-sunos* instead
	of m68k-sun-* when selecting mh-sun3 to avoid matching NetBSD/sun3
	systems.

Tue Oct 31 16:57:32 1995  Jim Wilson  <wilson@chestnut.cygnus.com>

	* configure.in (copy_dirs): Use sys-include instead of include
	for --with-headers option.

Tue Oct 31 10:29:36 1995  steve chamberlain  <sac@slash.cygnus.com>

	* Makefile.in, configure.in: Make winsup builds work with
	new scheme.

Mon Oct 30 18:57:09 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Build the linker on AIX.

Mon Oct 30 12:27:16 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* Makefile.in (CC_FOR_TARGET, CXX_FOR_TARGET):  Add $(TARGET_SUBDIR)
	where needed.

Mon Oct 30 12:45:25 1995  Doug Evans  <dje@cygnus.com>

	* Makefile.in (all-gcc): Fix typo.

Sat Oct 28 10:27:59 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* Makefile.in ($(CHECK_TARGET_MODULES)):  Fix typo.

Fri Oct 27 23:14:12 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* configure.in:  Rename libFOO to target-libFOO, and xiberty
	to target-xiberty, to provide more flexibility.
	(target_subdir):  Define.  Create if cross.
	Set TARGET_SUBDIR in Makefile to ${target_subdir}.
	* Makefile.in:  Rename all-libFOO -> all-target-libFOO, all-xiberty
	-> all-target-libiberty, configure-libFOO -> configure-target-libFOO,
	check-libFOO -> check-target-libFOO, etc.
	($(DO_X)):  Iterate over TARGET_CONFIGDIRS after SUBDIRS.
	($(CONFIGURE_TARGET_MODULES), $(CHECK_TARGET_MODULES),
	$(ALL_TARGET_MODULES), $(INSTALL_TARGET_MODULES)): Update accordingly.
	(configure-target-XXX):  Depend on $(ALL_GCC), not all-gcc, to
	allow ALL_GCC="" to only configure.
	(DEVO_SUPPORT):  Add cfg-ml-com.in and cfg-ml-pos.in.
	(ETC_SUPPORT, ETC_SUPPORT_PFX):  Merge;  update 'taz' accordingly.
	(LIBGXX_SUPPORT_DIRS):  Remove xiberty.

Sat Oct 28 01:53:49 1995  Ken Raeburn  <raeburn@cygnus.com>

	* Makefile.in (taz): Build "info" in etc explicitly.

Fri Oct 27 09:32:30 1995  Stu Grossman  (grossman@cygnus.com)

	* configure.in:  Make sure that CC is undefined (as opposed to
	null) if toplevel/config/mh-{host} doesn't define it.  Fixes a
	problem with autoconf trying to configure on a host without GCC.

Thu Oct 26 22:35:01 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-configure: Set host alias from choice of host compiler,
	only use generic MPW Makefile sed if present, edit a file
	named "hacked_Makefile.in" instead of "Makefile.in" if present.
	* mpw-README: Add problem notes about CW6 and CW7.

Thu Oct 26 05:45:10 1995  Ken Raeburn  <raeburn@kr-pc.cygnus.com>

	* Makefile.in (taz): Use ";" instead of ";;".

Wed Oct 25 15:18:24 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* Makefile.in (taz):  Grep for '^diststuff:' or '^info:' in
	sub-directory Makefiles, instead of using DISTSTUFFDIRS and
	DISTDOCDIRS.
	(DISTSTUFFDIRS, DISTDOCDIRS):  Removed - no longer used.
	(newlib.tar.gz):  Don't pass DISTDOCDIRS to recursive make.

Wed Oct 25 14:43:55 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* Makefile.in (DISTDOCDIRS):  Remove ld gprof bnutils gas libg++ gdb
	and gnats, because they are now subsumed by DISTSTUFFDIRS.
	Move bfd to DISTSTUFFDIRS.

Tue Oct 24 18:19:09 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* Makefile.in (X11_LIB): Removed.
	(X11_FLAGS_TO_PASS): pass only X11_EXTRA_CFLAGS and X11_EXTRA_LIBS.

	* configure.in (host_makefile_frag): mh-aix & mh-sun removed.

Sun Oct 22 13:04:42 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* cfg-ml-com.in (powerpc*): Shorten some of the multilib directory
	names.

Fri Oct 20 18:02:10 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* cfg-ml-com.in (powerpc*-eabi*): Add mcall-aixdesc varients.

Thu Oct 19 10:40:57 1995  steve chamberlain  <sac@slash.cygnus.com>

	* configure.in (i[345]86-*-win32): Always build newlib.
	Don't configure cvs, autoconf or texinfo.
	* Makefile.in (LD_FOR_TARGET): New.
	(BASE_FLAGS_TO_PASS, EXTRA_TARGET_FLAGS, CONFIGURE_TARGET_MODULES):
	Pass down LD_FOR_TARGET.

Wed Oct 18 15:53:56 1995  steve chamberlain  <sac@slash.cygnus.com>

	* winsup: New directory.
	* Makefile.in: Build winsup.
	* configure.in: Winsup is configured when target is win32.
	Can only build win32 target GDB when native.

Mon Oct 16 09:42:31 1995  Jeffrey A Law  (law@cygnus.com)

	* config.guess: Recognize HP model 819 machines as having
	a PA 1.1 processor.

Mon Oct 16 10:49:43 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Fix sed loop which substitutes for CC and CXX to
	avoid bug found in various sed implementations.

Wed Oct 11 16:16:20 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* cfg-ml-com.in (powerpc-*-eabisim): Delete separate rule for
	simulator.  Use standard powerpc-*-eabi*.

Mon Oct  9 17:21:56 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Stop putting gas and binutils in noconfigdirs for
	powerpc-*-aix* and rs6000-*-*.

Mon Oct  9 12:38:40 1995  Michael Meissner  <meissner@cygnus.com>

	* cfg-ml-com.in (powerpc*-*-eabisim*): Add support for building
	-mcall-aixdesc libraries.

Fri Oct  6 16:17:57 1995  Ken Raeburn  <raeburn@cygnus.com>

	Mon Sep 25 22:49:32 1995  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* config.sub (arm | armel | armeb): Fix shell syntax.

Fri Oct  6 14:40:28 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* cfg-ml-com.in ({powerpc,rs6000}-ibm-aix*): Add multilibs for
	-msoft-float and -mcpu=common support.
	(powerpc*-*-eabisim*): Add support for building -mcall-aix
	libraries.

Thu Oct  5 13:26:37 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* configure.in: Allow configuration and build of emacs19 for the alpha.

Wed Oct  4 22:05:36 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in (CC): Get ^CC, not just any old CC, from
	${host_makefile_frag}.

Wed Oct  4 21:55:00 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in (CC): Try to get CC from
	${srcdir}/${host_makefile_frag}, not ${host_makefile_frag}.

Wed Oct  4 21:44:12 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* Makefile.in (TARGET_CONFIGDIRS): configure targetdirs
	only if it exists in $(srcdir).

Wed Oct  4 11:52:31 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure: If CC and CXX are not set in the environment, set
	them, based on either an existing Makefile or on searching for gcc
	in PATH.  Substitute for CC and CXX in Makefile.
	* configure.in: Remove libm from target_libs.  Separate
	target_configdirs from configdirs.  If CC is not set in
	environment, try to get it from a host Makefile fragment.  Rewrite
	changes of configdirs to use skipdirs instead.  A few minor
	tweaks.  Take directories out of target_configdirs as they are
	taken out of configdirs.  Remove existing Makefile files from
	subdirectories.  Substitute for TARGET_CONFIGDIRS and
	CONFIG_ARGUMENTS in Makefile.
	* Makefile.in (TARGET_CONFIGDIRS): New variable, automatically set
	by configure.in.
	(CONFIG_ARGUMENTS): Likewise.
	(CONFIGURE_TARGET_MODULES): New variable.
	($(DO_X)): Loop over TARGET_CONFIGDIRS as well as SUBDIRS.
	($(CONFIGURE_TARGET_MODULES)): New target.
	(configure-libg++, configure-libio): New targets.
	(all-libg++): Depend upon configure-libg++.
	(all-libio): Depend upon configure-libio.
	(configure-libgloss, all-libgloss): New targets.
	(configure-libstdc++): New target.
	(all-libstdc++): Depend upon configure-libstdc++.
	(configure-librx, all-librx): New targets.
	(configure-newlib): New target.
	(all-newlib): Depend upon configure-newlib
	(configure-xiberty): New target.
	(all-xiberty): Depend upon configure-xiberty.

Sat Sep 30 04:32:59 1995  Jason Molenda (crash@phydeaux.cygnus.com)

	* configure.in (host i[345]86-*-win32):  Expand the
	noconfigdirs again.

Thu Sep 28 21:18:49 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-configure: Fix sed command file name.

Thu Sep 28 17:39:56 1995  steve chamberlain  <sac@slash.cygnus.com>

	* configure.in (host i[345]86-*-win32): Reduce the
	noconfigdirs again.

Wed Sep 27 12:24:00 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Don't configure ld and gdb for powerpc*-*-winnt*
	or powerpc*-*-pe*, since they are not yet supported.

Tue Sep 26 14:30:01 1995  Stan Shebs  <shebs@andros.cygnus.com>

	Add PowerMac support and many other enhancements.
	* mpw-configure: New option --cc to select compiler to use,
	paste options set according to --cc into the generated
	Makefile, generate the Makefile by sed'ing the Unix Makefile.in
	if mpw-make.sed is present.
	* mpw-config.in: Don't test for gC1, test for mpw-touch,
	add forward includes for PowerPC include files.
	* mpw-build.in: Build using Makefile.PPC if present.
	(do-byacc, etc): Remove separate version resource builds.
	(do-gas): Build "stamps" before "all".
	(do-gcc): Build "stamps-h" and "stamps-c" before "all".
	* mpw-README: Update to reflect --cc option, PowerMac support,
	and recently-reported compatibility problems.

Fri Sep 22 12:15:42 1995  Doug Evans  <dje@deneb.cygnus.com>

	* cfg-ml-com.in (m68*-*-*): Only build multilibs for
	embedded m68k systems (-aout, -coff, -elf, -vxworks).
	(--with-multilib-top): Pass to recursive invocations.

Tue Sep 19 13:51:05 1995  J.T. Conklin  <jtc@blues.cygnus.com>

	* configure.in (noconfigdirs): Disable libg++ and libstdc++ on
	v810-*-*.

Mon Sep 18 23:08:26 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* configure.in (noconfigdirs): Disable bfd, binutils, gas, gcc,
	gdb, ld and opcodes on v810-*-*.

Tue Sep 12 18:03:31 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (DO_X): Change do-realclean to do-maintainer-clean.
	(local-maintainer-clean): New target.
	(maintainer-clean): New target.
	(realclean): Just depend upon maintainer-clean.

Fri Sep  8 17:11:14 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* configure.in (noconfigdirs): Disable gdb on m68k-*-netbsd*.

Fri Sep  8 16:46:29 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Build ld in mips*-*-bsd* case.

Thu Sep  7 20:03:41 1995  Ken Raeburn  <raeburn@cygnus.com>

	* config.sub: Accept -lites* OS.  From Ian Dall.

Fri Sep  1 08:06:58 1995  James G. Smith  <jsmith@beauty.cygnus.com>

	* config.sub: recognise mips64vr4300 and mips64vr4300el as valid
	targets.

Wed Aug 30 21:06:50 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* configure.in: treat i386-win32 canadian cross the same as
	i386-go32 canadian cross.

Thu Aug 24 14:53:20 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* cfg-ml-com.in (powerpc*-*-eabisim): Add support for PowerPC
	running under the simulator to build a reduced set of libraries.
	(powerpc-*-eabiaix): Add fine grained multilib support added to
	other powerpc targets yesterday.

Wed Aug 23 09:41:56 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* cfg-ml-com.in (powerpc*): Add support for -disable-biendian,
	-disable-softfloat, -disable-relocatable, -disable-aix, and
	-disable-sysv to control which multilib libraries get built.

Thu Aug 17 16:03:41 1995  Ken Raeburn  <raeburn@kr-laptop.cygnus.com>

	* configure: Add Makefile.tem to list of files to remove in trap
	handler.

Mon Aug 14 19:27:56 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* config.guess (*Linux*):  Add missing "exit"s.
	Also, need specific check for alpha-unknown-linux (uses COFF).

Fri Aug 11 15:38:20 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* config.guess:  Merge with FSF:

	Wed Jun 28 17:57:27 1995  David Edelsohn  <edelsohn@mhpcc.edu>
	* config.guess (AIX4): More robust release numbering discovery.

	Thu Jun 22 19:01:24 1995  Kenneth Stailey  (kstailey@eagle.dol-esa.gov)
	* config.guess (i386-sequent-ptx): Properly get version number.

	Thu Jun 22 18:36:42 1995  Uwe Seimet  (seimet@iris1.chemie.uni-kl.de)
	* config.guess (mips:*:4*:UMIPS): New case.

Mon Aug  7 09:21:35 1995  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in (i386-go32 host): Fix typo (deja-gnu -> dejagnu).
	(i386-win32 host): Likewise.  Don't build readline.

Sat Aug  5 09:51:49 1995  Fred Fish  <fnf@rtl.cygnus.com>

	* Makefile.in (GDBTK_SUPPORT_DIRS):  Define and pass as part of
	SUPPORT_FILES to submakes.

Fri Aug  4 13:04:36 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (GDB_SUPPORT_DIRS): Add utils.
	(DEVO_SUPPORT): Add mpw-README, mpw-build.in, mpw-config.h and
	mpw-configure.

Wed Aug  2 16:32:40 1995  Ken Raeburn  <raeburn@cygnus.com>

	* configure.in (appdirs): Use =, not ==, in test expression when
	trying to build the text to print in the warning message for
	Solaris users.

Mon Jul 31 09:56:18 1995  steve chamberlain  <sac@slash.cygnus.com>

	* cfg-ml-com.in (z8k-*-coff): Add 'std' multilib build.

Fri Jul 28 00:16:31 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* config.guess: Recognize lynx-2.3.

Thu Jul 27 15:47:59 1995  steve chamberlain  <sac@slash.cygnus.com>

	* config.sub (z8ksim): Deleted
	(z8k-*-coff): New, this is the one true name of the target.

Thu Jul 27 14:33:33 1995  Doug Evans  <dje@canuck.cygnus.com>

	* cfg-ml-pos.in (dotdot): Work around SunOS sed bug.

Thu Jul 27 13:31:05 1995  Fred Fish  (fnf@cygnus.com)

	* config.guess (*:Linux:*:*): First try asking the linker what the
	default object file format is (elf, aout, or coff).  Then if this
	fails, try previous methods.

Thu Jul 27 11:28:17 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* configure.in: Don't build newlib for *-*-vxworks5.1.

Thu Jul 27 11:18:47 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* configure.in: Don't build newlib for a29k-*-vxworks5.1.
	* test-build.mk: Add setting of --with-headers for a29k-vxworks5.1.

Tue Jul 25 21:25:39 1995  Doug Evans  <dje@canuck.cygnus.com>

	* cfg-ml-pos.in (MULTITOP): Trim excess trailing "/.".

Fri Jul 21 10:41:12 1995  Doug Evans  <dje@canuck.cygnus.com>

	* cfg-ml-com.in: New file.
	* cfg-ml-pos.in: New file.

Wed Jul 19 00:37:27 1995  Jeffrey A. Law  <law@rtl.cygnus.com>

	* COPYING.NEWLIB: Add HP free copyright to list.

Tue Jul 18 10:58:51 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* config.sub: Recognize -eabi* for the system, not just -eabi.

Mon Jul  3 13:44:51 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* Makfile.in (DLLTOOL_FOR_TARGET): New name, pass it down.
	* config.sub, configure.in (win32): New target and host.

Wed Jun 28 23:57:08 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* configure.in: Add i386-pe configuration.

Fri Jun 23 14:28:44 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-build.in (install): Install GDB after LD.

Thu Jun 22 17:10:53 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* mpw-config.in (elf/mips.h): Always forward-include, needed
	for GDB to build.

Wed Jun 21 15:17:30 1995  Rob Savoye  <rob@darkstar.cygnus.com>

	* testsuite: New directory for customer acceptance and whole tool
	chain tests.

Wed Jun 21 16:50:29 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* configure: If per-host line isn't found, but AC_OUTPUT is found
	and a configure script exists, run it instead.

Thu Jun 15 21:09:24 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* config.guess:  Update from FSF, for alpha-dec-winnt3.5 and  Crays.

Tue Jun 13 21:43:27 1995  Rob Savoye  <rob@darkstar.cygnus.com>

	* configure: Set build_{cpu,vendor,os,alias} to host values when
	--build isn't specified.

Mon Jun  5 18:26:36 1995  Jason Merrill  <jason@phydeaux.cygnus.com>

	* Makefile.in (PICFLAG, PICFLAG_FOR_TARGET): New macros.
	(FLAGS_TO_PASS): Pass them.
	(EXTRA_TARGET_FLAGS): Ditto.

Wed May 31 22:27:42 1995  Jim Wilson  <wilson@chestnut.cygnus.com>

	* Makefile.in (all-libg++): Depend on all-libstdc++.

Thu May 25 22:40:59 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* configure.in (noconfigdirs): Enable all packages for
	  i386-unknown-netbsd.

Sat May 20 13:22:31 1995  Angela Marie Thomas  <angela@cirdan.cygnus.com>

	* configure.in (noconfigdirs): Don't configure tk for i386-go32
	hosted builds (DOS builds)

Thu May 18 18:08:49 1995  Ken Raeburn  <raeburn@kr-laptop.cygnus.com>

	Changes for ARM based on patches from Richard Earnshaw:
	* config.sub: Handle armeb and armel.
	* configure.in: Omit arm linker only for riscix.

Thu May 11 17:23:26 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* config.guess:  Update from FSF.

Tue May  9 15:52:05 1995  Michael Meissner  <meissner@cygnus.com>

	* config.sub: Recognize powerpcle as the little endian variant of
	the PowerPC.  Recgonize ppc as a PowerPC variant, and ppcle as a
	powerpcle variant.  Convert pentium into i586, not i486.  Add p5
	alias for i586.  Map new x86 variants p6, k5, nexgen into i586
	temporarily.

Tue May  2 16:29:41 1995  Jeff Law  (law@snake.cs.utah.edu)

	* configure.in (hppa*-*-lites*): Treat like hppa*-*-*elf*.

Sun Apr 30 21:38:09 1995  Jeff Law  (law@snake.cs.utah.edu)

	* config.sub: Accept -lites* as a basic system type.

Thu Apr 27 11:33:29 1995  Michael Meissner  (meissner@cygnus.com)

	* config.guess (*:Linux:*:*): Check for whether the pre-BFD linker is
	installed, and if so return linuxoldld as the system name.

Wed Apr 26 10:59:02 1995  Jeff Law  (law@snake.cs.utah.edu)

	* config.guess: Add hppa1.1-hp-lites support.

Tue Apr 25 11:08:11 1995  Rob Savoye  <rob@darkstar.cygnus.com>

	* configure.in: Don't build newlib for m68k-vxworks5.1.

Wed Apr 19 17:02:43 1995  Jim Wilson  <wilson@chestnut.cygnus.com>

	* configure.in (mips-sgi-irix6): Use mh-irix5.

Fri Apr 14 15:21:17 1995  Doug Evans  <dje@chestnut.cygnus.com>

	* Makefile.in (all-gcc): Depend on all-ld (for libgcc1-test).

Wed Apr 12 16:06:01 1995  Jason Merrill  <jason@phydeaux.cygnus.com>

	* test-build.mk: Enable building of shared libraries on IRIX 5 and
	OSF/1.  Fix compiler flags.
	* build-all.mk: Support Linux and OSF/1 3.0.  Fix compiler flags.

Tue Apr 11 18:55:40 1995  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in: Recognize --with-newlib.
	(sparc-*-sunos4*): Build sim, dejagnu, expect, tcl if cross target.

Mon Apr 10 14:38:20 1995  Jason Molenda (crash@phydeaux.cygnus.com)

	* Makefile.in: move {all,check,install}-gdb from *_MODULES
	to *_X11_MODULES due to gdbtk needing X include files et al.

Mon Apr 10 11:42:22 1995  Stan Shebs  <shebs@andros.cygnus.com>

	Merge in support for Mac MPW as a host.
	(Old change descriptions retained for informational value.)

	* mpw-config.in: Add generic include forwards for cpu-specific
	include files in aout and elf directories.

	* mpw-configure: Added copyright.
	* mpw-config.in: Check for presence of required build tools.
	(target_libs): Add newlib.
	(target_tools): Add examples.
	(Read Me): Generate as "Read Me for MPW" instead.
	* mpw-build.in: Base sub-builds on all-foo instead of do-foo.
	(all-byacc, do-byacc, all-flex, do-flex, do-newlib): New actions.
	(do-gas, do-gcc, do-gdb, do-ld): Build Version.r first.

	* mpw-configure: Remove subdir-specific makefile hackery,
	delete mk.tmp after using it.

	* mpw-build.in (all): Display start and end times.

	* mpw-configure (host_canonical): Set.
	(target_cpu): Always add to makefiles.
	(ARCHDEFS, EMUL): Add to makefile only if nonempty.
	(TM_FILE, XM_FILE, NM_FILE): No longer add to makefile.
	(mpw-mh-mpw): Look for in srcdir and srcroot.
	Use sed instead of mpw-edit-prefix to edit prefix definitions.

	* mpw-build.in: (install-only): New target.

	* mpw-configure (host_alias, target_alias): Rename from hostalias
	and targetalias, add into generated Makefile.
	(mk.tmp): If present, add into generated Makefile.
	* mpw-build.in (all-gas): Build config.h first before gas proper.

	* mpw-configure (config.status): Write only if changed.
	* mpw-config.in (readline): Configure it (not built, just used for
	definitions).

	* mpw-config.in (elf/mips.h): Add a forward include.

	* mpw-config.in: Forward-include most .h files in include into
	extra-include.
	(readline): Don't build.
	mpw-build.in (install): Install GDB.

	* mpw-configure (prefix, mpw_prefix): Handle it.
	* mpw-config.in (mmalloc, readline): Don't configure.
	* mpw-build.in (thisscript): Rename to ThisScript.
	Use mpw-build instead of BuildProgram everywhere.
	(mmalloc, readline): Don't build.
	* mpw-README: New file, basic documentation about the MPW port.

	* mpw-config.in: Use forward-include to create include files.

	* mpw-configure: Add more things to the top of each configured
	Makefile, including contents of config/mpw-mh-mpw.
	* mpw-config.in (extra-include): Create this directory and fill it
	with Posix-like include files when configuring.

	* config.sub (apple, mac, mpw): Add various aliases.

	* mpw-build.in: New file, top-level build script fragment for MPW.
	* mpw-configure: New file, configure script for MPW.
	* mpw-config.in: New file, config fragment for MPW.

Fri Apr  7 19:33:16 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* configure.in (host_libs): Remove glob, since it is gone from the
	sources.

Fri Mar 31 11:36:17 1995  Jason Molenda  (crash@phydeaux.cygnus.com)

	* Makefile.in: define empty GDB_NLM_DEPS var.

	* configure.in(target_makefile_frag): use config/mt-netware
	for netware targets.

Thu Mar 30 13:51:43 1995  Ian Lance Taylor  <ian@cygnus.com>

	* config.sub: Merge in recent FSF changes.  Remove linux special
	cases.

Tue Mar 28 14:47:34 1995  Jason Molenda (crash@phydeaux.cygnus.com)

	Revert this change:

	Tue Mar 30 10:03:09 1993  Ian Lance Taylor  (ian@cygnus.com)

		* build-all.mk: Use CC=cc -Xs on Solaris.

Tue Mar 21 10:43:32 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* glob/*: Removed.  Schauer's 24 Feb 1994 readline change made us
	stop using it.
	* Makefile.in: Nuke all references to glob subdirectory.

Thu Mar 16 13:35:30 1995  Jason Merrill  <jason@phydeaux.cygnus.com>

	* configure.in: Fix --enable-shared logic in per-host.

Mon Mar 13 12:33:15 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in (*-hp-hpux[78]*): Use mh-hpux8.

Mon Mar  6 10:21:58 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* configure.in (noconfigdirs): Don't build gas on AIX, for
	powerpc*-*-aix* as well as for rs6000*-*-aix*.

Wed Mar  1 12:51:53 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Fix --cache-file to work if the file argument is a
	relative path.

Tue Feb 28 17:36:07 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure: If the --cache-file is used, pass it down to
	configure in subdirectories.

Mon Feb 27 12:52:46 1995  Kung Hsu  <kung@mexican.cygnus.com>

	* config.sub: add vxworks29k configuration.

Fri Feb 10 16:12:26 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* Makefile.in (taz): Do "diststuff" part quietly.

Sun Feb  5 14:16:35 1995  Doug Evans  <dje@canuck.cygnus.com>

	* config.sub: Mini-merge with gcc/config.sub.

Sat Feb  4 12:11:35 1995  Jim Wilson  <wilson@chestnut.cygnus.com>

	* config.guess (IRIX): Sed - to _.

Fri Feb  3 11:54:42 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* Makefile.in (source-vault, binary-vault): New targets.

Thu Jan 26 13:00:11 1995  Michael Meissner  <meissner@cygnus.com>

	* config.sub: Recognize -eabi as a basic system type.

Thu Jan 12 13:13:23 1995  Jason Merrill  <jason@phydeaux.cygnus.com>

	* configure.in (enable_shared stuff): Fix typo.

Thu Jan 12 01:36:51 1995  deanm@medulla.LABS.TEK.COM (Dean Messing)

	* Makefile.in (BASE_FLAGS_TO_PASS): Fix typo in passing LIBCXXFLAGS*.

Wed Jan 11 16:29:53 1995  Jason Merrill  <jason@phydeaux.cygnus.com>

	* Makefile.in (LIBCXXFLAGS_FOR_TARGET): Add -fno-implicit-templates.

Mon Jan  9 12:48:01 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>

	* configure.in (rs6000-*-*): Don't build gas.

Wed Jan  4 23:53:49 1995  Ian Lance Taylor  <ian@tweedledumb.cygnus.com>

	* Makefile.in: Use /x/x/ instead of /brokensed/brokensed/, to
	reduce command line length.
	(AS_FOR_TARGET): Check for as.new, not Makefile.
	(NM_FOR_TARGET): Check for nm.new, not Makefile.

Wed Jan  4 13:02:39 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* config.guess:  Merge from FSF.

Thu Dec 15 17:11:37 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* configure: Don't use $ when handling program_suffix.

Mon Dec 12 12:09:37 1994  Stu Grossman  (grossman@cygnus.com)

	* configure.in:  Configure tk for hppa/hpux.

Fri Dec  2 15:55:38 1994  Per Bothner  <bothner@kalessin.cygnus.com>

	* Makefile.in (LIBGXX_SUPPORT_DIRS):  Add libstdc++.

Tue Nov 29 19:37:56 1994  Per Bothner  <bothner@kalessin.cygnus.com>

	* Makefile.in:  Move -fno-implicit-template from CXXFLAGS
	to LIBCXXFLAGS.  Tests are better run without it.

Wed Nov 23 10:29:25 1994  Brendan Kehoe  (brendan@lisa.cygnus.com)

	* Makefile.in (all-ispell): Depend on all-emacs19 instead of all-emacs.

Mon Nov 21 11:14:01 1994  J.T. Conklin  <jtc@rtl.cygnus.com>

	* configure.in (*-*-netware*): Don't configure xiberty.

Mon Nov 14 08:49:15 1994  Stu Grossman  (grossman@cygnus.com)

	* configure.in:  Remove tk from native_only list.

Fri Nov 11 15:31:26 1994  Bill Cox  (bill@rtl.cygnus.com)

	* build-all.mk: Add mips-ncd-elf target to sun4 targets
	  for special NCD build.

Mon Nov  7 20:58:17 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* Makefile.in (DEVO_SUPPORT): Remove configure.bat and
	makeall.bat, they're only useful for binutils snapshots.
	(binutils.tar.gz, gas+binutils.tar.gz): Add configure.bat and
	makeall.bat to specified SUPPORT_FILES.

Mon Nov  7 17:25:18 1994  Bill Cox  (bill@cirdan.cygnus.com)

	* build-all.mk: Add Ericsson targets to sun4 and solaris
	  hosts.  Add  BNR's sun4 target to solaris host, so their
	  build-from-source will be tested in-house first.

Sat Nov  5 18:43:30 1994  Jason Merrill  (jason@phydeaux.cygnus.com)

	* Makefile.in (LIBCFLAGS): New variable.
	(CFLAGS_FOR_TARGET): Ditto.
	(LIBCFLAGS_FOR_TARGET): Ditto.
	(LIBCXXFLAGS): Ditto.
	(CXXFLAGS_FOR_TARGET): Ditto.
	(LIBCXXFLAGS_FOR_TARGET): Ditto.
	(BASE_FLAGS_TO_PASS): Pass them.
	(EXTRA_TARGET_FLAGS): Ditto.

	* configure.in: Support --enable-shared.

Sat Nov  5 15:44:00 1994  Per Bothner  <bothner@kalessin.cygnus.com>

	* configure.in (target_libs):  Include libstdc++ again.
	* config.guess:  Update from FSF (for FreeBSD).

Thu Nov  3 16:32:30 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* Makefile.in (DEVO_SUPPORT): Include configure.bat and
	makeall.bat.
	(DISTDOCDIRS): Add `etc'.
	(ETC_SUPPORT_PFX): New variable.
	(taz): Include anything from etc starting with a word in
	ETC_SUPPORT_PFX.

Wed Oct 26 16:19:35 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* config.sub: Update for recent FSF changes.  Remove obsolete
	h8300hds entry.  Add -windows* and -osx as basic os.  Minor
	spacing changes.

Thu Oct 20 18:41:56 1994  Per Bothner  <bothner@kalessin.cygnus.com>

	* configure.in (target_libs):  Remove libstdc++ for libg++-2.6.1.

	* config.guess:  Merge with FSF.
	* configure.in:  Match on i?86-ncr-sysv4.3, not i?86-ncr-sysv43.

Thu Oct 20 19:26:56 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* configure: Since the "trap 0" handler will override the exit
	status on many systems, only use it for "exit 1", and make it set
	a non-zero exit status; reset it before "exit 0".  Also, check
	exit status of config.sub, and error out if it failed.

Wed Oct 19 18:49:55 1994  Rob Savoye  (rob@cygnus.com)

	* Makefile.in: (ALL_TARGET_MODULES,INSTALL_TARGET_MODULES) Build
	and install libgloss.

Tue Oct 18 15:25:24 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* Makefile.in (all-binutils): Depend upon all-byacc.

	* configure.in: Don't build emacs on Irix 5.

Mon Oct 17 16:22:12 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* configure.in (*-*-netware*): Add libio.

Thu Oct 13 15:51:20 1994  Jason Merrill  (jason@phydeaux.cygnus.com)

	* Makefile.in (ALL_TARGET_MODULES): Add libstdc++.
	(CHECK_TARGET_MODULES): Ditto.
	(INSTALL_TARGET_MODULES): Ditto.
	(TARGET_LIBS): Ditto.
	(all-libstdc++): Note dependencies.

Thu Oct 13 01:43:08 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* Makefile.in (BINUTILS_SUPPORT_DIRS): Add gas.

Tue Oct 11 12:12:29 1994  Jason Merrill  (jason@phydeaux.cygnus.com)

	* Makefile.in (CXXFLAGS): Use -fno-implicit-templates instead of
	-fexternal-templates.

	* configure.in (target_libs): Add libstdc++.
	(noconfigdirs): Add libstdc++ as appropriate.

Thu Oct  6 18:00:54 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess:  Update from FSF.

Tue Oct  4 12:05:42 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* configure: Use ${config_shell} when running ${configsub}.

Mon Oct  3 14:28:34 1994  Doug Evans  <dje@canuck.cygnus.com>

	* config.sub: No longer recognize h8300h.

Mon Oct  3 12:40:54 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* config.sub: Remove extraneous differences between config.sub and
	gcc/config.sub.

Sat Oct  1 00:23:12 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* Makefile.in (DISTSTUFFDIRS): Add gas.

Thu Sep 22 19:04:55 1994  Doug Evans  (dje@canuck.cygnus.com)

	* COPYING.NEWLIB: New file.

Mon Sep 19 18:25:40 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess (HP-UX):  Patch from Harlan Stenn
	<harlan@landmark.com> to also emit release level.

Wed Sep  7 13:15:25 1994  Jim Wilson  (wilson@sphagnum.cygnus.com)

	* config.guess (sun4*:SunOS:*:*): Change '-JL' to '_JL'.

Tue Sep  6 23:23:18 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.sub:  Merge nextstep cleanup from FSF.

Mon Sep  5 05:01:30 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* configure.in (arm-*-*): Don't configure ld for this target.

Thu Sep  1 09:35:00 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* configure.in (*-*-netware): don't configure libg++, libio,
	  librx, or newlib.

Wed Aug 31 13:52:08 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure.in (alpha-dec-osf*): Use osf*, not osf1*.  Don't
	configure ld--it works, but it doesn't support shared libraries.

Sun Aug 28 18:13:45 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess (*-unknown-freebsd*):  Get rid of possible
	trailing "(Release)" in version string.
	Patch from Paul Richards <paul@isl.cf.ac.uk>.

Sat Aug 27 15:00:49 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess:  Fix i486-ncr-sysv43 -> i486-ncr-sysv4.3.
	Fix type: *-next-neststep -> *-next-nextstep.

	* config.guess:  Merge from FSF:

	Fri Aug 26 18:45:25 1994  Philippe De Muyter (phdm@info.ucl.ac.be)

	* config.guess: Recognize powerpc-ibm-aix3.2.5.

	Wed Apr 20 06:36:32 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)

	* config.guess: Recognize UnixWare 1.1 (UNAME_SYSTEM is SYSTEM_V
	instead of UNIX_SV for UnixWare 1.0).

Sat Aug 27 01:56:30 1994  Stu Grossman  (grossman@cygnus.com)

	* Makefile.in (all-gdb):  Add dependencies on all-gcc and all-ld
	to make gdb/nlm/* build after the compiler and linker.

Fri Aug 26 14:30:05 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess (netbsd, freebsd, linux):  Accept any machine,
	not just i[34]86.
	(m68k-atari-sysv4):  Relocate to match FSF version.

	* config.guess:  More merges from the FSF:

	Add a space before function call or macro invocation.

	Tue May 10 16:53:55 1994  Roland McGrath (roland@churchy.gnu.ai.mit.edu)

	* config.guess: Add trap cmd to remove dummy.c and dummy when
	interrupted.

	Wed Apr 20 18:07:13 1994  Roland McGrath (roland@churchy.gnu.ai.mit.edu)

	* config.guess (dummy.c): Redirect stderr for `hostinfo' command.
	(dummy): Redirect stderr from compilation of dummy.c.

	Sat Apr  9 14:59:28 1994  Christian Kranz  (kranz@sent5.uni-duisburg.de)

	* config.guess: Distinguish between NeXTStep 2.1 and 3.x.

Fri Aug 26 13:42:20 1994  Ken Raeburn  (raeburn@kr-laptop.cygnus.com)

	* configure: Accept and ignore --cache*, for compatibility with
	new autoconf.

Fri Aug 26 13:05:27 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess:  Merge from FSF:

	Thu Aug 25 20:28:51 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* config.guess (Pyramid*:OSx*:*:*): New case.
	(PATH): Add /.attbin at end for finding uname.
	(dummy.c): Handle i860-alliant-bsd.  Follow whitespace conventions.

	Wed Aug 17 18:21:02 1994  Tor Egge  (tegge@pvv.unit.no)

	* config.guess (M88*:DolphinOS:*:*): New case.

	Thu Aug 11 17:00:13 1994  Stan Cox  (coxs@dg-rtp.dg.com)

	* config.guess (AViiON:dgux:*:*): Use TARGET_BINARY_INTERFACE
	to select whether to use ELF or COFF.

	Sun Jul 24 16:20:53 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* config.guess: Recognize i860-stardent-sysv and i860-unknown-sysv.

	Sun May  1 10:23:10 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)

	* config.guess: Guess the OS version for HPUX.

	Tue Mar  1 21:53:03 1994  Karl Heuer  (kwzh@hal.gnu.ai.mit.edu)

	* config.guess (UNAME_VERSION): Recognize aix3.2.4 and aix3.2.5.

Fri Aug 26 11:19:08 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure.in: Recognize --with-headers, --with-libs, and
	--without-newlib.
	* Makefile.in (all-xiberty): Depend upon all-ld.

Wed Aug 24 12:36:50 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure.in: Change i[34]86 to i[345]86.

Mon Aug 22 10:58:33 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure (version): A few more tweaks to help message.

Fri Aug 19 12:40:25 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* Makefile.in:  Remove (for now) librx as a host library,
	now that we're building it for target.

Fri Aug 19 10:49:17 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure: Fix up help message; from karl@owl.hq.ileaf.com
	(Karl Berry).

Tue Aug 16 16:11:08 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* configure.in:  Also configure librx.

Mon Aug 15 16:51:45 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* Makefile.in:  Update various rules to reflect that librx
	is now needed for libg++.

Fri Aug 12 18:07:21 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* config.sub: Accept mips64orion and mips64orionel as a CPU name.

Mon Aug  8 11:36:17 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* configure.in: Configure the examples directory.

Thu Aug  4 16:12:36 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure: Simplify Jun 2 1994 change.

Wed Aug  3 04:58:16 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)

	* change CC to /usr/latest/bin/gcc for lynx host builds, since
	/bin/gcc isn't good enough to build gcc.

Wed Jul 27 09:07:14 1994  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (GDB_SUPPORT_FILES): Remove
	(setup-dirs-gdb, gdb.tar.gz, make-gdb.tar.gz):  Remove old rules.
	(gdb.tar.gz): Add new rule to use standard distribution building
	mechanism.

Mon Jul 25 11:10:06 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure.in: Warn about use of /usr/ucb/cc on Solaris.  From
	Bill Cox <bill@cygnus.com>.

Sat Jul 23 12:19:46 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess:  Recognize ISC.  Patch from kwzh@gnu.ai.mit.edu.

Fri Jul 22 17:53:59 1994  Stu Grossman  (grossman@cygnus.com)

	* configure:  Search current dir first in .gdbinit.

Fri Jul 22 11:28:30 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.sub:  Recognize freebsd (merged from gcc config.sub).

Thu Jul 21 14:10:52 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.sub:  Refer to NeXT's operating system as nextstep.

	* config.sub (case $basic_machine):  Re-order the cases, to match
	the order in the FSF version (which is mostly alphabethical).
	Merge in some additions and changes from the FSF.

Sat Jul 16 12:03:08 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* config.guess: Recognize m68k-atari-sysv4 and m88k-harris-csux7.
	* config.sub: Recognize cxux7.
	* configure.in: Use mh-cxux for m88k-harris-cxux*.

Mon Jul 11 14:37:39 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.sub:  Fix typo powerpc -> powerpc-*.

Sat Jul  9 13:03:43 1994  Michael Tiemann  (tiemann@blues.cygnus.com)

	* Makefile.in: `all-emacs19' depends on `all-byacc'.

	* Makefile.in: Add all-emacs19 and install-emacs19 rules (in
	parallel with all-emacs and install-emacs).  Top-level command
	`make all-emacs19 CC=gcc' now behaves as `make all-emacs CC=gcc'.

Thu Jun 30 16:53:42 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* test-build.mk ($(host)-stamp-stage2-installed): Remove
	$(relbindir)/make before doing ``make install'', and use
	$(GNU_MAKE) while doing it.  Avoids problem on SunOS with
	installing over running make binary.
	($(host)-stamp-stage3-installed): Likewise.

Tue Jun 28 13:43:25 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.guess: Recognize Mach.

Mon Jun 27 16:41:14 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure: Check ${exec_prefixoption}, not ${exec_prefix}, to
	see whether --exec-prefix was used.

Sun Jun 26 21:15:54 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* README:  Explicitly mention libg++/README.  (Zoo's idea.)

Tue Jun 21 12:45:55 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in: Add all-librx target similar to all-libproc.

Wed Jun  8 23:11:55 1994  Stu Grossman  (grossman@cygnus.com)

	* config.guess:  Rearrange tests for Alpha-OSF1 to properly deal
	with post 1.2 uname bogosity.

Thu Jun  9 00:27:59 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure: Remove temporary files on receipt of a signal.

Tue Jun  7 12:06:24 1994  Ian Lance Taylor  (ian@cygnus.com)

	* configure: If there is a package_makefile_frag, remove
	${subdir}/Makefile.tem after copying it in.

Mon Jun  6 21:35:02 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)

	* build_all.mk: support rs6000 lynx identifies itself as
	rs6000-lynx-lynxos2.2.2.  Also, use /usr/cygnus/progressive/bin/gcc
	since /bin/gcc is too feeble to compile a modern gcc.

Mon Jun  6 16:06:34 1994  Karen Christiansen (karen@cirdan.cygnus.com)

	* brought devo/test-build.mk update-to-date with progressive/
	  test-build.mk. Add lynx targets and hppa flag info.

Sat Jun  4 17:23:54 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* configure.in:  Use mh-ncrsvr43.  Patch from
	Tom McConnell <tmcconne@sedona.intel.com>.

Fri Jun  3 17:47:24 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess (i386-unknown-bsdi):  No longer need to
	check #if defined(__bsdi__) && defined(__i386__).

Thu Jun  2 18:56:46 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure: Set program_transform_nameoption correctly.

Thu Jun  2 10:57:06 1994  Karen Christiansen (karen@cirdan.cygnus.com)

	* brought build-all.mk update-to-date with progressive build-all.mk,
	  added new targets and hppa info.

Thu Jun  2 00:12:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure: If config.guess result is a prefix of the user
	specified target, assume a native build and use the user specified
	target as the host alias.  Remove SunOS patch suffix removal hack.
	* configure.in: Remove SunOS patch suffix removal hack.

	* Makefile.in (CROSS_CHECK_MODULES): Remove check-flex, since it's
	in NATIVE_CHECK_MODULES.

Wed Jun  1 10:49:41 1994  Bill Cox  (bill@rtl.cygnus.com)

	* Makefile.in: Rename HOST_ONLY to NATIVE.
	* configure: Delete SunOs patch suffix from host_canonical
	  and build_canonical variables that are prepended to Makefiles.
	* configure.in: Add comments for easier maintenance.

Tue May 31 19:39:47 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in: Add all-libproc target similar to all-gui.

Tue May 31 17:16:33 1994  Tom Lord  (lord@cygnus.com)

	* Makefile.in (CHECK_MODULES): split into
	HOST_ONLY_CHECK_MODULES and CROSS_CHECK_MODULES.

Tue May 31 16:36:36 1994  Paul Eggert  (eggert@twinsun.com)

	* config.guess (i386-unknown-bsdi): New system to guess.

Wed May 25 16:47:10 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in: Add all-gui target (but not yet build by "all").

Thu May 26 08:53:19 1994  Bill Cox  (bill@rtl.cygnus.com)

	* config.sub: Move deletion of patch suffix from here...
	* configure.in: To here, at Ian's suggestion.  The top-
	  level scripts might need to know of a patch level.

Wed May 25 09:15:54 1994  Bill Cox  (bill@rtl.cygnus.com)

	* config.sub: Strip off patch suffix so rtl is recognized
	  as a sunos4.1.3 machine, even though it's been patched.

Fri May 20 08:25:49 1994  Steve Chamberlain  (sac@deneb.cygnus.com)

	* Makefile.in (INSTALL_LAST): Delete.
	(INSTALL_DOSREL): New.

Thu May 19 17:12:12 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure.in: Use ld for i[34]86-*-sysv4* and sparc-*-solaris2*.
	Don't set use_gnu_ld to no for *-*-sysv4; that only controls
	whether we pass down --with-gnu-ld anyhow.

Thu May 19 09:29:12 1994  Steve Chamberlain  (sac@cygnus.com)

	* Makefile.in (INSTALL_LAST): Change operation so it works
	on more flavors of make.
	* configure.in (go32): Don't build libg++ or libio.

Fri May 13 13:28:34 1994  Steve Chamberlain  (sac@cygnus.com)

	* Makefile.in (Move HOST_PREFIX_1 and friends up so
	they can be overriden by templates.

Sat May  7 16:46:44 1994  Steve Chamberlain  (sac@cygnus.com)

	* configure.in (target==go32): Don't build gdb.
	* dosrel: New directory.

Fri May  6 14:19:25 1994  Steve Chamberlain  (sac@cygnus.com)

	* configure.in (host==go32): Configure dosrel too.
	* Makefile.in (INTALL_TARGET): Call INSTALL_LAST last.
	(HOST_CC, HOST_PREFIX, HOST_PREFIX_1): Undefine, they should
	be set by incoming names or templates.
	(INSTALL_LAST): New rule.

Thu May  5 17:35:05 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* config.sub (sparclitefrw, sparclitefrwcompat): Don't set the os.

Thu May  5 20:06:45 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* configure.in (appdirs): New variable.  Currently empty, but will
	be used in gas distribution.  If nonempty, lists a set of
	directories at least one of which must get configured, or top
	level configuration is considered to have failed.
	(rs6000-*-lynxos*): Use new file name.

Thu May  5 13:38:36 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	Eliminate XTRAFLAGS.
	* Makefile.in (CC_FOR_TARGET): If newlib exists, refer to the
	newlib include files using -idirafter, and also use -nostdinc.
	(CXX_FOR_TARGET): Likewise.
	(XTRAFLAGS): Removed.
	(BASE_FLAGS_TO_PASS): Remove XTRAFLAGS_FOR_TARGET.
	(EXTRA_HOST_FLAGS): Remove XTRAFLAGS.
	(EXTRA_TARGET_FLAGS, EXTRA_GCC_FLAGS): Likewise.
	($(DO_X)): Don't pass down XTRAFLAGS.

Thu May  5 00:16:36 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* configure.in (mips*-dec-bsd*): New target; do build linker.
	(mips*-*-bsd*): New target; don't build linker.

Wed May  4 20:10:10 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)

	* configure.in: support rs6000-*-lynxos* configuration.
	support sunos4 as a cross target.

	* config.sub: look for lynx*, not lynx since the OS version may
	legitimately be part of the name.

Tue May  3 21:48:11 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* configure.in (i[34]86-*-sco*): Move to be with other i386
	targets.
	(romp-*-*): New target.  Skip various binary utilities.
	(vax-*-*): New target.  Don't build newlib.
	(vax-*-vms): Renamed from *-*-vms.  Don't build opcodes or newlib.

Thu Apr 28 15:03:05 1994  David J. Mackenzie  (djm@rtl.cygnus.com)

	* configure.in: Only set host_makefile_frag if config
	directory exists.

Wed Apr 27 12:14:30 1994  David J. Mackenzie  (djm@rtl.cygnus.com)

	* install.sh: If $dstdir exists, don't check whether each
	component does.

Tue Apr 26 18:11:33 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* test-build.mk (HOLES): Add sleep; used by rcs/src/conf.sh.

Mon Apr 25 15:06:34 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* configure.in (*-*-lynxos*): Don't configure newlib for either
	native or cross Lynx.

Sat Apr 16 11:58:16 1994  Doug Evans  (dje@canuck.cygnus.com)

	* config.sub (sparc64-elf): Fix os.
	(z8k): Remove duplicate.

Thu Apr 14 23:33:17 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* Makefile.in (gcc-no-fixedincludes): Touch gcc/include/fixed, not
	gcc/stmp-fixproto, to try to prevent fixproto from being run.

Wed Apr 13 15:14:52 1994  Bill Cox  (bill@cygnus.com)

	* configure: Make file links cleanly even if Lynx fails on
	  an NFS symlink (at least fail cleanly).

Mon Apr 11 10:58:56 1994  Jim Wilson  (wilson@sphagnum.cygnus.com)

	* test-build.mk (CC): For mips-sgi-irix4, change -XNh1500 to
	-XNh2000.

Sat Apr  9 15:10:45 1994  David J. Mackenzie  (djm@rtl.cygnus.com)

	* configure: Unknown options are fatal again.

Fri Apr  8 12:01:41 1994  David J. Mackenzie  (djm@cygnus.com)

	* configure: Ignore --x-includes and --x-libraries, for Autoconf
	compatibility.

Thu Apr  7 17:31:43 1994  Doug Evans  (dje@canuck.cygnus.com)

	* build-all.mk: Add `clean' target.

Wed Apr  6 20:44:56 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* config.guess:  Add SINIX support.
	* configure.in:  Add mips-*-sysv4* support.

Mon Apr  4 17:41:44 1994  Doug Evans  (dje@canuck.cygnus.com)

	* build-all.mk: Document all useful targets.
	If canonhost is sparc-sun-solaris2.3, change it to sparc-sun-solaris2.
	If canonhost is mips-sgi-irix4.0.5H, change it to mips-sgi-irix4.

Thu Mar 31 04:55:57 1994  David J. Mackenzie  (djm@rtl.cygnus.com)

	* configure: Support --silent, --quiet.

Wed Mar 30 21:37:38 1994  David J. Mackenzie  (djm@rtl.cygnus.com)

	* configure: Support --disable-FEATURE.

Tue Mar 29 19:15:05 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.guess: Recognize NCR running SVR4.3.

Mon Mar 28 14:55:15 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess:  Make BSDI generate i386-unknown-bsd386.
	Patch from Paul Eggert <eggert@twinsun.com>.

Mon Mar 28 12:54:52 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure.in (powerpc-*-aix*): Treat like rs6000-*-*.

Sat Mar 26 11:25:48 1994  David J. Mackenzie  (djm@rtl.cygnus.com)

	* configure: Make unrecognized options give nonfatal warnings
	instead of fatal errors, and pass them to any subdirectory
	configures in case they recognize them.
	Make --x equivalent to --with-x.

Fri Mar 25 21:52:10 1994  David J. Mackenzie  (djm@rtl.cygnus.com)

	* configure: Add --enable-* options.  Clean up usage message and
	some comments.

Thu Mar 24 09:12:53 1994  Doug Evans  (dje@canuck.cygnus.com)

	* Makefile.in (NM_FOR_TARGET): Build tree version is now nm.new.

Sun Mar 20 11:28:22 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* configure.in (hppa*-*-*): Enable binutils.

Sat Mar 19 11:50:16 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.sub: Recognize cisco.

Fri Mar 18 16:42:32 1994  Jason Merrill  (jason@deneb.cygnus.com)

	* Makefile.in (CXXFLAGS): Add -fexternal-templates.

Tue Mar 15 11:25:55 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.guess: about target *-hitachi-hiuxwe2, don't print more
	than one configuration name.  Add comment.

Sun Mar  6 23:13:38 1994  Hisashi MINAMINO  (minamino@sra.co.jp)

	* config.guess: about target *-hitachi-hiuxwe2, fixed
	machine guessing order.  [Hitachi's CPU_IS_HP_MC68K
	macro is incorrect.]

Sun Mar 13 09:10:08 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (TAGS): Just build TAGS in each subdirectory, rather
	than the "make ls" stuff which used to be here.

Fri Mar 11 12:52:39 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess:  Recognize i[34]86-unknown-freebsd.
	From Shawn M Carey <smcarey@rodan.syr.edu>.

Thu Mar  3 14:24:21 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* configure.in (noconfigdirs for alpha): Remove libg++ and libio.

Wed Mar  2 13:28:48 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* config.guess: Check for ptx.

Mon Feb 28 16:46:50 1994  Kung Hsu  (kung@mexican.cygnus.com)

	* config.sub: Add os9k checking.

Thu Feb 24 07:09:04 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* config.guess: Handle OSF1 running on HPPA processors

Fri Feb 18 14:14:00 1994  Ken Raeburn  (raeburn@rtl.cygnus.com)

	* configure: If subdir configure fails, print out a message with
	subdirectory name, in case subdir's configure code didn't identify
	itself.

Fri Feb 18 12:50:15 1994  Doug Evans  (dje@cygnus.com)

	* configure.in: Remove embedded newlines from configdirs.
	Avoid mismatches of substrings.  Fix matching strings at end
	of configdirs.

Fri Feb 11 15:33:33 1994  Stu Grossman  (grossman at cygnus.com)

	* config.guess:  Add Lynx/rs6000 config support.

Tue Feb  8 13:41:09 1994  Ken Raeburn  (raeburn@rtl.cygnus.com)

	* configure.in (alpha-dec-osf1*, alpha*-*-*): Build gas.

Mon Feb  7 15:42:36 1994  Jeffrey A. Law  (law@cygnus.com)

	* configure.in (hppa*-*-osf*): Treat this just like most other
	PA configurations (eg no binutils or ld).
	(hppa*-*-*elf*): These configurations have binutils and ld.

Sun Feb  6 16:35:07 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* config.sub (hiux): Fix typo.  From m-kasahr@sramhc.sra.co.JP.

Sat Feb  5 01:00:33 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure.in (rs6000-*-*): Build gas.

Wed Feb  2 13:57:57 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* Makefile.in:  Avoid bug in losing hpux sed.

Wed Feb  2 14:53:05 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in, test-build.mk: Remove MUNCH_NM; it was only needed
	for GDB and GDB has been fixed to not need it.

Sun Jan 30 17:58:06 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* config.guess: Recognize vax hosts.

Fri Jan 28 15:29:38 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* configure (while loop): Don't use "break 2" inside case
	statement -- the case statement isn't an enclosing loop.

Mon Jan 24 18:40:06 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess:  Clean up NeXT support, to allow nextstep
	on Intel machines.  Make OS be nextstep.

Sun Jan 23 18:47:22 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)

	* config.guess: Add alternate forms for Convex.

Thu Jan 20 16:13:41 1994  Stu Grossman  (grossman at cygnus.com)

	* configure:  Completely rewrite option processing.  Take
	advantage of pattern-matching to avoid invoking test frequently.
	Also clean up host and target defaulting logic.

Mon Jan 17 15:06:56 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* Makefile.in: Replace all occurrances of "rootme" with "r" and
	"$${rootme}" with "$$r", to increase the likelihood that the do-*
	commands (plus user environment) will fit SCO limits.

Thu Jan  6 11:20:57 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure.in: Don't issue warnings about directories which are
	not being configured if -norecursion is set.  Correct test for
	--with-gnu-as and --with-gnu-ld to not get confused by substring
	matches.

	* configure.in: Don't build gas for alpha-dec-osf1*.

Tue Jan  4 17:10:19 1994  Stu Grossman  (grossman at cygnus.com)

	* configure:  Back out Per's change of 12/19/1993.  It changes the
	behavior of configure in unexpected and confusing ways.

	Also, use different delim char when calculating
	program_transform_name so that the name can contain slashes.

Sat Jan  1 13:45:31 1994  Rob Savoye  (rob@darkstar.cygnus.com)

	* configure.in, config.sub: Add support for VSTa micro-kernel.

Sat Dec 25 20:00:47 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* configure.in: Nuke hacks which were used to get a special
	version of GAS for HPPA configurations.

Sun Dec 19 20:40:44 1993  Per Bothner  (bothner@kalessin.cygnus.com)

	* configure:  If only ${target_alias} is given, use that
	as the default for ${host_alias}.
	* configure:  Add missing back-slashes before nested quotes.

Wed Dec 15 18:07:18 1993  david d `zoo' zuhn  (zoo@andros.cygnus.com)

	* Makefile.in (BASE_FLAGS_TO_PASS): add YACC=$(BISON)

Tue Dec 14 21:25:33 1993  Per Bothner  (bothner@cygnus.com)

	* config.guess:  Recognize some Tektronix configurations.
	From Kaveh R. Ghazi <ghazi@noc.rutgers.edu>.

Sat Dec 11 11:18:00 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* config.sub: Match any flavor of SH.

Thu Dec  2 17:16:58 1993  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* configure.in: Don't try to configure newlib for Alpha.

Thu Dec  2 14:35:54 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure.in: Don't build ld for Irix 5.  Don't build gas,
	libg++ or libio for any Alpha target.

	* configure.in (mips*-sgi-irix5*): New target; use mh-irix5.

Wed Dec  1 17:00:33 1993  Jason Merrill  (jason@deneb.cygnus.com)

	* Makefile.in (GZIPPROG): Renamed from GZIP, which gzip uses for
	default arguments -- so it tried to compress itself.

Tue Nov 30 13:45:15 1993  david d `zoo' zuhn  (zoo@andros.cygnus.com)

	* configure.in (notsupp): ensure that a space is always at the end
	  of the configdirs list, since the grep checks for an explicit space

Tue Nov 16 15:04:27 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* configure.in (target i386-sysv4.2): don't build ld, since static
	  versions of many libraries are not available.

Tue Nov 16 14:28:12 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.guess: Recognize Apollos (using environment variables).
	* configure.in: Don't configure ld, binutils, or gprof for Apollo.

Thu Nov 11 12:03:50 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.guess: Recognize Sony news mips running newsos.

Wed Nov 10 16:57:00 1993  Mark Eichin  (eichin@cygnus.com)

	* Makefile.in (all-cygnus, build-cygnus): "fi else" needs to be
	"fi ; else" for bash.

Tue Nov  9 15:54:01 1993  Mark Eichin  (eichin@cygnus.com)

	* Makefile.in (BASE_FLAGS_TO_PASS): pass SHELL.

Fri Nov  5 08:07:27 1993  D. V. Henkel-Wallace  (gumby@blues.cygnus.com)

	* config.sub: accept unixware as an alias for svr4.2.
	Fix some inconsistancies with the gcc version.

Fri Nov  5 15:14:12 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (DISTDOCDIRS):  Add gdb.

Fri Nov  5 11:59:42 1993  Per Bothner  (bothner@kalessin.cygnus.com)

	* Makefile.in (DISTDOCDIRS):  Add libg++ and libio.

Fri Nov  5 10:35:05 1993  Ken Raeburn  (raeburn@rover.cygnus.com)

	* Makefile.in (taz): Only build "info" in DISTDOCDIRS.
	(DISTDOCDIRS): Don't assume libg++ and gdb folks necessarily want
	this now.

Thu Nov  4 18:58:23 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.sub: Accept hiux* as an OS name.

	* Makefile.in: Change RUNTEST_FLAGS back to RUNTESTFLAGS per
	etc/make-stds.texi.  The underscore came from gcc, and dje now
	agrees that RUNTESTFLAGS is the correct name.

Thu Nov  4 10:49:01 1993  Per Bothner  (bothner@kalessin.cygnus.com)

	* install.sh:  Remove 'set -e'.  It makes any conditionals
	in the script useless.

	* config.guess: Automatically recognize arm-acorn-riscix
	Patch from Richard Earnshaw (rwe11@cl.cam.ac.uk).

Thu Nov 04 08:08:04 1993  Jeffrey Wheat  (cassidy@cygnus.com)

	* Makefile.in: Change RUNTESTFLAGS to RUNTEST_FLAGS

Wed Nov  3 22:09:46 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)

	* Makefile.in (DISTDOCDIRS): New variable.
	(taz): Edit local Makefile.in sooner, instead of proto-toplev
	Makefile.in later.  Build "info" and "dvi" in DISTDOCDIRS.

Wed Nov  3 21:31:52 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* configure.in (hppa target): check the source directory for the
	  pagas sub-directory

Wed Nov  3 11:12:22 1993  Doug Evans  (dje@canuck.cygnus.com)

	* config.sub: Allow -aout* and -elf*.

Wed Nov  3 11:08:33 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)

	* configure.in: Don't build ld on i386-solaris2, same as for
	sparc-solaris2.

Tue Nov  2 14:21:25 1993  Per Bothner  (bothner@kalessin.cygnus.com)

	* Makefile.in (taz): Add texinfo/lgpl.texinfo (for libg++).

Tue Nov  2 13:38:30 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* configure.in:  Configure gdb for alpha.

Mon Nov  1 10:42:54 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (CXXFLAGS): Add -O.

Wed Oct 27 10:45:06 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* config.guess: added support for DG Aviion

Tue Oct 26 14:37:37 1993  Ken Raeburn  (raeburn@rover.cygnus.com)

	* configure.in: Produce warning message for subdirectories not
	configurable for this host/target combination.  Don't try to
	configure gdb for vms.

Mon Oct 25 11:22:15 1993  Ken Raeburn  (raeburn@rover.cygnus.com)

	* Makefile.in (taz): Replace "byacc" with "bison -y" in the
	appropriate files before making "diststuff".
	(DISTBISONFILES): New var: list of files to be edited.
	(DISTSTUFFDIRS): Add binutils.

Fri Oct 22 20:32:15 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* config.sub: also handle mipsel and mips64el (for little endian mips)

Fri Oct 22 07:59:20 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* configure.in: Add * to end of all OS names.

Thu Oct 21 11:38:28 1993  Stan Shebs  (shebs@rtl.cygnus.com)

	* configure.in: Build newlib for LynxOS native.

Wed Oct 20 09:56:12 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.guess: Add support for delta 88k running SVR3.

	* configure.in: Add comment about HP compiler vs. emacs.

Tue Oct 19 16:02:22 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* configure.in: don't build ld on solaris2 (not a viable option
	  due to bugs in getpwnam & getpwuid)

Tue Oct 19 15:13:56 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)

	* configure.in: Accept alpha-dec-osf1*, not just -osf1, since
	config.guess will produce a full version number.

Tue Oct 19 15:58:01 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure.in: Build linker and binutils for alpha-dec-osf1.

Tue Oct 19 11:41:55 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in: Remove -O from CXXFLAGS for consistency with CFLAGS,
	and gdb/testsuite/Makefile.in.

Sat Oct  9 18:39:07 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* configure.in: recognize mips*- instead of mips-

Fri Oct  8 14:15:39 1993  Ken Raeburn  (raeburn@cygnus.com)

	* config.sub: Accept linux*coff and linux*elf as operating
	systems.

Thu Oct  7 12:57:19 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* config.sub: Recognize mips64, and mips3 as an alias for it.

Wed Oct  6 13:54:21 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* configure.in: Remove alpha-dec-osf*, no longer necessary now that
	gdb knows how to handle OSF/1 shared libraries.

Tue Oct  5 11:55:04 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* configure.in: Recognize hppa*-*-hiux* (currently synonym for hpux).
	* config.guess: Recognize Hitachi's HIUX.
	* config.sub: Recognize h3050r* and hppahitachi.
	Remove redundant cases for hp9k[23]*.

Mon Oct  4 16:15:09 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* configure.in: default to '--with-gnu-as' and '--with-gnu-ld'
	if gas and ld are in the source tree and are in ${configdirs}.
	If ${use_gnu_as} or ${use_gnu_ld} are 'no', then don't set the
	--with options (but still pass them down on the command line,
	if they were explicitly specified).

Fri Sep 24 19:11:13 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* configure: substitute SHELL value in Makefile.in with
	${CONFIG_SHELL}

Thu Sep 23 18:05:13 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* configure.in: Build gas, ld, and binutils for *-*-sysv4* and
	*-*-solaris2* targets.

Sun Sep 19 17:01:41 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* Makefile.in: define M4, and pass it down to sub-makes;
	all-autoconf now depends on all-m4

Sat Sep 18 00:38:23 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* Makefile.in ({AR,RANLIB}_FOR_TARGET): make contingent on
	presence of {ar,ranlib} instead of a configured directory

Wed Sep 15 08:41:44 1993  Jim Kingdon  (kingdon@cirdan.cygnus.com)

	* config.guess: Accept 34?? as well as 33?? for NCR.

Mon Sep 13 12:28:43 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* configure.in: grab mt-hppa for HPPA targets; use 'gas ' instead
	of 'gas' in sed commands, since 'gash' is now in the tree as well.

Fri Sep 10 11:23:52 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* configure: grab values for $(CC) and $(CXX) from the
	environment, so that someone can do "CC=gcc configure; make" and
	have it work right (matching the way that autoconf works now)

	* configure.in, Makefile.in: add support for gash, the tcl
	interface to Galaxy

	* config.guess: add NetBSD variants (hp300, x86)

Thu Sep  9 16:48:52 1993  Jason Merrill  (jason@deneb.cygnus.com)

	* install.sh: Support -d option (in the manner of SunOS 4 install,
	as it is more deterministic than that of GNU install)
	(chmodcmd): Set file to mode 755 by default (should also do default
	chgrp and chown, but I don't feel like dealing with that now)

Tue Sep  7 11:59:39 1993  Doug Evans  (dje@canuck.cygnus.com)

	* config.sub: Remove h8300hhms alias.

Tue Aug 31 11:00:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* configure.in: Match *-*-solaris2* not *-sun-solaris2*.

Mon Aug 30 18:29:10 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* Makefile.in (gcc-no-fixedincludes): touch stmp-fixproto as well
	as stmp-fixinc

Wed Aug 25 16:35:59 1993  K. Richard Pixley  (rich@sendai.cygnus.com)

	* config.sub: recognize m88110-bug-coff.

Tue Aug 24 10:23:24 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* Makefile.in (all-libio): all dependencies on the toolchain used
	to build this (gcc, gas, ld, etc)

Fri Aug 20 17:24:24 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.guess: Deal with OSF/1 1.3 on alpha.

Thu Aug 19 11:43:04 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* install.sh: add some 'else true' clauses for portability

	* configure.in: don't build libio for h8[35]00-*-* targets

Tue Aug 17 19:02:31 1993  Per Bothner  (bothner@kalessin.cygnus.com)

	* Makefile.in:  Add support for new libio.

Sun Aug 15 20:48:55 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* install.sh: If one command fails, don't try the rest.  Don't try
	to remove $dsttmp (via trap) unless we have already created it.
	If $src doesn't exist, detect it and exit with an error.

	* config.guess: Recognize BSD on hp300.

Wed Aug 11 18:35:13 1993  Per Bothner  (bothner@kalessin.cygnus.com)

	* config.guess:  Map (9000/[34]??:HP-UX:*:*) to m68k-hp-hpux.
	Bug report from "Hamish (H.I.) Macdonald" <hamish@bnr.ca>.

Wed Aug 11 15:37:51 1993  Jason Merrill  (jason@deneb.cygnus.com)

	* Makefile.in (all-send-pr): depends on all-prms

Wed Aug 11 16:56:03 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.guess: Fix typo (9000/8??:4.3bsd -> 9000/7??:4.3bsd).

Fri Aug  6 14:45:02 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* config.guess: From michael@mercury.cs.mun.ca (Michael Rendell):
	Added test for mips-mips-riscos5.

Thu Aug  5 15:45:08 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* configure.in: use mh-hp300 for 68k HP hosts

Mon Aug  2 11:56:53 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* configure: add support for CONFIG_SHELL, so that you can use
	some alternate shell for evaluating configure scripts

Sun Aug  1 11:36:27 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* Makefile.in (make-gdb.tar.gz):  Sed bug reporting address
	in configure script to bug-gdb@prep.ai.mit.edu when building
	distribution archive.
	* Makefile.in (COMPRESS):  Remove def.
	* Makefile.in (gdb.tar.gz, make-gdb.tar.gz):  Renamed from
	gdb.tar.Z and make-gdb.tar.Z respectively.
	* Makefile.in (make-gdb.tar.gz):  Now only build gzip'd archive.
	* Makefile.in (make-gdb.tar.gz):  Minor changes to move closer
	to convergence with 'taz' target in Makefile.in.

Fri Jul 30 12:34:57 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* install.sh (dsttmp): use trap to ensure that tmp files go
	away on error conditions

Wed Jul 28 11:57:36 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* Makefile.in (BASE_FLAGS_TO_PASS): remove LOADLIBES

Tue Jul 27 12:43:40 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* Makefile.in (install-dirs): Deal with a prefix like /gnu;
	its parent is '/' not ''.

	* Makefile.in (DEVO_SUPPORT): Add comments about ChangeLog.

Fri Jul 23 09:53:37 1993  Jason Merrill  (jason@wahini.cygnus.com)

	* configure: if ${newsrcdir}/configure doesn't exist, don't assume
	that ${newsrcdir}/configure.in does.

Tue Jul 20 11:28:50 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* test-build.mk: support for CONFIG_SHELL

Mon Jul 19 21:54:46 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* config.sub (netware):  Add as a basic system type.

Wed Jul 14 12:03:11 1993  K. Richard Pixley  (rich@sendai.cygnus.com)

	* Makefile.in (Makefile): depend on configure.in.  Also drop the
	  $(srcdir)/ from the dependency on Makefile.in.

Tue Jul 13 20:10:58 1993  Doug Evans  (dje@canuck.cygnus.com)

	* config.sub: Recognize h8300hhms as h8300h-hitachi-hms.
	(h8300hhms is temporary until multi-libraries are implemented).
	* configure.in: Handle h8300h too.

Sun Jul 11 17:35:27 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.guess: Recognize dpx/2 as m68k-bull-sysv3.

Thu Jul  8 18:26:12 1993  John Gilmore  (gnu@cygnus.com)

	* configure:  Remove extraneous output when guessing host type.
	* config.guess:  Remove extraneous output when guessing using C
	compiler rather than uname, or when guessing fails.

Wed Jul  7 17:58:14 1993  david d `zoo' zuhn  (zoo at rtl.cygnus.com)

	* Makefile.in: remove all.cross and install.cross targets

	* configure: remove CROSS=-DCROSS_COMPILE and ALL=all.cross
	  definitions

Tue Jul  6 10:39:44 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)

	* configure.in (target sh): Build gprof.

Thu Jul  1 16:52:56 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* config.sub: change -solaris to -solaris2

Thu Jul  1 15:46:16 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* configure.in: Use config/mh-riscos for mips-*-sysv*.

Wed Jun 30 09:31:58 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure: Correct error message for missing Makefile.in to
	print correct directory.

Tue Jun 29 13:52:16 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* install.sh: kludge around 386BSD shell bug

Tue Jun 29 13:06:49 1993  Per Bothner  (bothner@rtl.cygnus.com)

	* config.guess:  Recognize NeXT.
	* config.guess:  Recognize i486-ncr-sysv4.
	* Makefile.in (taz):  rm $(TOOL)-$$VER before linking.

Tue Jun 29 12:50:57 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (MAKEINFOFLAGS): New variable.
	(FLAGS_TO_PASS): Pass MAKEINFO as MAKEINFO MAKEINFOFLAGS.
	* build-all.mk, test-build.mk: Pass down --no-split as
	MAKEINFOFLAGS when hosted on DOS.  Compile DOS hosted without -g.

Thu Jun 24 13:39:11 1993  Per Bothner  (bothner@rtl.cygnus.com)

	* Makefile.in (DEVO_SUPPORT):  Add COPYING COPYING.LIB install.sh.

Wed Jun 23 12:59:21 1993  Per Bothner  (bothner@rtl.cygnus.com)

	* Makefile.in (libg++.tar.z):  New rule.
	* Makefile.in (taz):  Replace 'configure -rm' by 'make distclean'.
	* Makefile.in (taz):  Only do a single chmod.

Fri Jun 18 12:03:10 1993  david d `zoo' zuhn  (zoo at majipoor.cygnus.com)

	* install.sh: don't use dirname anymore (replaced with sed usage)

Thu Jun 17 18:43:42 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in:  Change extension for gzip'd files from '.z' to
	'.gz' per new FSF standard usage.

Thu Jun 17 16:58:50 1993  david d `zoo' zuhn  (zoo at majipoor.cygnus.com)

	* configure: put quotes around the final value of program_transform_name

Tue Jun 15 16:48:51 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: new install.sh support; update install-info rules

Wed Jun  9 12:31:34 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure.in: Build diff for crosses, but not for go32 host.

	* configure.in: Build gprof only for native, and don't build it
	for mips-*-*, rs6000-*-*, or i[34]86-*-sco*.

Mon Jun  7 13:12:11 1993  david d `zoo' zuhn  (zoo at deneb.cygnus.com)

	* configure.in: don't build gas,ld,binutils on for *-*-sysv4

Mon Jun  7 11:40:11 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)

	* configure.in (host_tools): Add prms.

Fri Jun  4 13:30:42 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: install gcc, do installation of $(INSTALL_MODULES)
	with $(FLAGS_TO_PASS) on the command line

	* config.sub: Recognize lynx and lynxos

Fri Jun  4 10:59:56 1993  Ian Lance Taylor  (ian@cygnus.com)

	* config.sub: Accept -ecoff*, not just -ecoff.

Thu Jun  3 17:38:54 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* Makefile.in (taz): Use .gz suffix instead of .z.
	(binutils.tar.gz, gas+binutils.tar.gz, gas.tar.gz): Fixed target
	names.

Thu Jun  3 00:27:06 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in (vault-install): add an 'else true' (for Ultrix)

Wed Jun  2 18:19:16 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in (install-no-fixedincludes):  install gcc last, so
	that rebuilds that might happen during 'make install' don't get
	bogus gcc include files

Wed Jun  2 16:14:10 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	Change from Utah for HPPA support:
	* config.guess: Recognize hppa1.x-hp-bsd.

Wed Jun  2 11:53:33 1993  Per Bothner  (bothner@rtl.cygnus.com)

	* config.guess:  Add support for Motorola Delta 68k, up to r3v7.
	Patch from pot@fly.cnuce.cnr.it (Francesco Potorti`).

Tue Jun  1 17:48:42 1993  Rob Savoye  (rob at darkstar.cygnus.com)

	* config.sub: Add support for rom68k and bug boot monitors.

Mon May 31 09:36:37 1993  Jim Kingdon  (kingdon@cygnus.com)

	* Makefile.in: Make all-opcodes depend on all-bfd.

Thu May 27 08:05:31 1993  Ian Lance Taylor  (ian@cygnus.com)

	* config.guess: Added special check for i[34]86-univel-sysv4*.

Wed May 26 16:33:40 1993  Ian Lance Taylor  (ian@cygnus.com)

	* config.guess: For i[34]86-unknown-sysv4 use UNAME_MACHINE for
	the processor rather than assuming i486.

Wed May 26 09:40:18 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* config.guess: Recognize SunOS6 as Solaris3.

Tue May 25 23:03:11 1993  Per Bothner  (bothner@cygnus.com)

	* config.guess:  Fix typo.  Avoid #elif (not in K&R 1).
	Recognize SunOS 5.* only (and not [6-9].*) as being Solaris2.

Tue May 25 12:44:18 1993  Ian Lance Taylor  (ian@cygnus.com)

	* build-all.mk (all-cross): New target for Canadian Cross.
	Added Q2 go32 targets.
	* test-build.mk: Configure go32 cross sparclite-aout and
	mips-idt-ecoff -with-gnu-ld.  Moved build binary directory from
	PARTIAL_HOLE_DIRS to BUILD_HOLES_DIRS.

Mon May 24 15:30:06 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: fix Alpha GDB typo; also, don't build DejaGnu for
	GO32 hosted toolchains

Mon May 24 14:18:41 1993  Rob Savoye  (rob at darkstar.cygnus.com)

	* configure: change  so "-exec-prefix" gets passed down rather
	than "-exec_prefix" so autoconf generated Makefiles get the
	exec_prefix set right.

Fri May 21 10:42:25 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* config.guess: get the Solaris2 minor version number

	* Makefile.in: add standards.texi and make-stds.texi to ETC_SUPPORT

Fri May 21 06:20:52 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)

	* config.guess: Recognize some Sequent platforms.

Thu May 20 14:33:48 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: added the vault-install target

	* configure.in: actually use the Sun3 makefile fragment that's in
	config, also added the release dir to configdirs

Thu May 20 14:19:18 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* Makefile.in (taz): Fix modes on stuff in $(TOOL) dir also.

Tue May 18 20:26:41 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: remove some program from Alpha targetted toolchains

Tue May 18 15:23:19 1993  Ken Raeburn  (raeburn@cygnus.com)

	* Makefile.in (DISTSTUFFDIRS): Renamed from PROTODIRS.  Add ld and
	gprof.
	(taz): Run "make diststuff" in those directories instead of "make
	proto-dir".  Look for "VERSION=" only at start of line in subdir
	Makefile.  Use "gzip -9" for compression.
	(TEXINFO_SUPPORT, DIST_SUPPORT, BINUTILS_SUPPORT_DIRS): New vars.
	(binutils.tar.z): New target.

Mon May 17 17:01:15 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)

	* Makefile.in (taz): Include gpl.texinfo.

Fri May 14 06:48:38 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)

	* Makefile.in (setup-dirs): Merged into "taz" target.
	(taz): Only do `proto-dir' stuff if a directory is actually needed
	for this target.

Wed May 12 13:09:44 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (MUNCH_NM): New variable, defined to be $(NM).
	(FLAGS_TO_PASS): Pass down MUNCH_NM.
	(HOST_CC, HOST_PREFIX, HOST_PREFIX_1): New variables.
	(EXTRA_GCC_FLAGS): Pass down HOST_* variables.
	(gcc-no-fixedincludes): Correct for current gcc Makefile.

Tue May 11 10:14:25 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (make-gdb.tar.Z):  Add configure, config.guess,
	config.sub, and move-if-change to gdb testsuite distribution
	archive, so the testsuite can be extracted, configured, and
	run separately from the gdb distribution.  Blow away the Chill
	tests that require a Chill compiled executable, since GNU Chill
	is not yet publically available.

Mon May 10 17:22:26 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* test-build.mk: set environment variables in a single command,
	instead of a list of assignments and exports

	* config.guess: recognize Alpha/OSF1 systems

Mon May 10 14:55:51 1993  K. Richard Pixley  (rich@rtl.cygnus.com)

	* configure: Change help message to prefer --options rather than
	  -options.

Mon May 10 05:58:35 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* config.sub: Convergent Tech. "miniframe" uses m68010, sez
	zippy@ecst.csuchico.edu.
	* config.guess: Recognize miniframe.

Sun May  9 17:47:57 1993  Rob Savoye  (rob at darkstar.cygnus.com)

	* Makefile.in: Use srcroot to find runtest rather than rootme.
	Pass RUNTESTFLAGS and EXPECT down in BASE_FLAGS_TO_PASS.

Fri May  7 14:55:59 1993  Ian Lance Taylor  (ian@cygnus.com)

	* test-build.mk: Extensive additions to support building on a
	machine other than the host.

Wed May  5 08:35:04 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)

	* configure (tooldir): Fix for i386-aix again.

Mon May  3 19:00:27 1993  Per Bothner  (bothner@cygnus.com)

	* configure, Makefile.in:  Change definition of $(tooldir)
	to match the FSF.

Fri Apr 30 15:55:21 1993  Fred Fish  (fnf@cygnus.com)

	* config.guess:  Recognize i[34]86/SVR4.

Fri Apr 30 15:52:46 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* Makefile.in (all-gdb): gdb depends on sim.

Thu Apr 29 23:30:48 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (gdb.tar.Z):  Make prototype gdb testsuite directory
	at the same time we make the prototype gdb directory.
	* Makefile.in (make-gdb.tar.Z):  Make the testsuite distribution
	files at the same time as the gdb base release distribution.

Thu Apr 29 12:50:37 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (check): Use individual check targets rather than
	DO_X rule.
	(check-gcc): Added.

Thu Apr 29 09:50:07 1993  Jim Kingdon  (kingdon@cygnus.com)

	* config.sub: Use sysv3.2 not sysv32 for canonical OS
	for System V release 3.2.

Thu Apr 29 10:33:22 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* config.sub: Recognize hppaosf.
	* configure.in: Do configure ld/binutils/gas for it.

Tue Apr 27 06:25:34 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* configure (tooldir): Alter syntax used to set this, for systems
	where "\$" isn't handled right, like i386-aix.

Thu Apr 22 08:17:35 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure: Pass program-transform-name, not
	program_transform_name, to recursive configures.

Thu Apr 22 02:58:21 1993  Ken Raeburn  (raeburn@cygnus.com)

	* Makefile.in (gas+binutils.tar.z): New rule for building snapshots
	of gas+ld+binutils.

Mon Apr 19 17:41:30 1993  Per Bothner  (bothner@cygnus.com)

	* config.guess:  Recognize AIX3.2 as distinct from 3.1.

Sat Apr 17 17:19:50 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: rename m88k-motorola-m88kbcs to m88k-motorola-sysv

Tue Apr 13 16:52:16 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)

	* Makefile.in (PRMS): Set back to all-prms.

Sat Apr 10 12:04:07 1993  Ian Lance Taylor  (ian@cygnus.com)

	* test-build.mk: Pass -with-gnu-as for known MIPS native and MIPS
	targets, rather than for MIPS hosts.

Fri Apr  9 13:51:06 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: add comment for --with-x default values

	* config.guess: handle Motorola Delta88 box for SVR3 and SVR4.

	* Makefile.in: add check-* targets for each of the directories in
	the tree.  Add a definition of RUNTEST that will use the one we
	just built, if it exists.  Pass this down via FLAGS_TO_PASS.

Thu Apr  8 09:21:30 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure.in: Removed obsolete references to bfd_target and
	target_makefile_frag.

	* build-all.mk: Set assorted targets for Q2.
	* config.sub: Recognize z8k-sim and h8300-hms.
	* test-build.mk: Really don't pass host to configure.
	(HOLES): Added uname.

Wed Apr  7 15:48:19 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure: Handle an empty program-prefix, program-suffix or
	program-transform-name correctly.

Tue Apr  6 13:48:41 1993  Ian Lance Taylor  (ian@cygnus.com)

	* build-all.mk: -G 8 no longer required for MIPS targets.
	* test-build.mk: Don't pass host argument to configure; make it
	guess.

Tue Apr  6 10:36:53 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (gdb.tar.Z):  Fix for building gzip'd distribution.
	* Makefile.in (COMPRESS):  New macro, like GZIP.

Fri Apr  2 09:02:31 1993  Ian Lance Taylor  (ian@cygnus.com)

	* test-build.mk: Use -with-gnu-as for mips-sgi-irix4 as well.

	* build-all.mk: Set GCC to gcc -O -G 8 for MIPS targets, since gcc
	with gas currently defaults to -G 0.

Thu Apr  1 08:25:42 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (all-flex): flex depends on byacc.

	* build-all.mk: If host not specified, use config.guess.  Pass TAG
	to test-build.mk as RELEASE_TAG.
	* test-build.mk (configargs): New variable containing arguments to
	pass to configure.  Set to -with-gnu-as on mips-dec-ultrix.
	(FLAGS_TO_PASS): Pass down RELEASE_TAG.

	* config.guess: Use /bin/uname when checking -X argument on SCO,
	to avoid invoking GNU uname which doesn't understand -X.

	* test-build.mk: Don't use /usr/unsupported/bin/as on AIX.

	* configure.in: Build gas for mips-*-*.

Wed Mar 31 21:20:58 1993  K. Richard Pixley  (rich@rtl.cygnus.com)

	* Makefile.in (all.normal): insert missing backslash.

Wed Mar 31 12:31:56 1993  Ian Lance Taylor  (ian@cygnus.com)

	* build-all.mk: Bump -XNh value to 1500 to match gcc requirements.

	* Makefile.in: Complete overhaul to merge many almost identical
	targets.

Tue Mar 30 20:17:01 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* Makefile.in (setup-dirs-gdb): Renamed from setup-dirs.
	(gdb.tar.Z): Adjusted.

	* Makefile.in (setup-dirs, taz): New targets; should be general
	enough to adapt for gdb sometime.  Build only .z file.
	(gas.tar.z): New target.

Tue Mar 30 10:03:09 1993  Ian Lance Taylor  (ian@cygnus.com)

	* build-all.mk: Use CC=cc -Xs on Solaris.

Thu Mar 25 15:14:30 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in:  Incorporate changes suggested by wilson@cygnus.com
	for handling BISON for FSF releases.

Thu Mar 25 06:19:48 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* configure: Actually implement the change zoo just documented.

Wed Mar 24 13:02:44 1993  david d `zoo' zuhn  (zoo at poseidon.cygnus.com)

	* configure: when using config.guess, only set target_alias when
	it's not already been set (ie, on the command line)

Mon Mar 22 23:07:39 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: add installcheck target, set PRMS to install-prms

Sun Mar 21 16:46:12 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure: add support for package_makefile_fragment, handle the
	case where a directory has a configure.in file but no Makefile.in
	more gracefully (with an actual understandable error message, even);
	add support for --without (and add this to the usage message); also
	explicitly add a --host=${host_alias} to the command line when
	config.guess is used

Sun Mar 21 12:11:58 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)

	* configure: Must use both --host and --target in recursive calls.

Thu Mar 18 12:31:35 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in: Change deja-gnu to dejagnu.

Mon Mar 15 15:44:35 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure.in (h8300-*-*, h8500-*-*): Don't build libg++.

Fri Mar 12 18:30:14 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: canonicalize all instances to *-*-solaris2*,
	also strip out a number of tools to not build for go32 host

Wed Mar 10 12:08:27 1993  K. Richard Pixley  (rich@rtl.cygnus.com)

	* config.guess: add GPL.

	* Makefile.in, config.guess, config.sub, configure: bump
	  copyrights to 93.

Wed Mar 10 07:12:48 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (do-info): Removed obsolete check for existence of
	localenv file.

	* Makefile.in (MAKEOVERRIDES): Define to be empty.

Wed Mar 10 03:11:56 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: a couple of 'else true' for decstation,
	support for TclX

	* configure.in: configure tclX too; don't remove Tk on RS/6000 anymore

Tue Mar  9 16:06:12 1993  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in (setup-dirs): change invocation of make to $(MAKE).

Mon Mar  8 14:52:11 1993  Ken Raeburn  (raeburn@cambridge)

	* config.guess: Recognize i386-ibm-aix (PS/2).
	* configure.in: Use config/mh-aix386 file for it.

Mon Mar  8 11:12:43 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (GCC_FOR_TARGET): Eliminated definition; use
	CC_FOR_TARGET instead.
	(BASE_FLAGS_TO_PASS): Pass GCC_FOR_TARGET=$(CC_FOR_TARGET).

Wed Mar  3 16:00:28 1993  Steve Chamberlain  (sac@ok.cygnus.com)

	* Makefile.in: Add sim to list of directories sent with gdb

Wed Mar  3 11:42:39 1993  Ken Raeburn  (raeburn@cygnus.com)

	* configure.in: Put back mips-dec-bsd* case.

Tue Mar  2 21:15:58 1993  Fred Fish  (fnf@cygnus.com)

	(Ultrix 2.2 support from Michael Rendell <michael@mercury.cs.mun.ca>)
	* configure.in (vax-*-ultrix2*):  Add Ultrix 2.2 triplet.
	* config.guess:  Change 'VAX*:ULTRIX:*:*' to 'VAX*:ULTRIX*:*:*'.

Tue Mar  2 18:11:03 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: remove no-op mips-dec-bsd* in "case $target"

	* Makefile.in (dir.info): only run gen-info-dir if it exists,
	(install-info): install dir.info only if it exists,
	(all-expect, install-expect): pass along X11_FLAGS_TO_PASS

Tue Mar  2 09:01:30 1993  Ken Raeburn  (raeburn@cygnus.com)

	* configure.in: For vms target, skip bfd, ld, binutils.  Do build
	gas for mips-dec-bsd.

Tue Mar  2 08:35:24 1993  Ian Lance Taylor  (ian@cygnus.com)

	* configure (makesrcdir): If ${srcdir} is relative and not ".",
	and ${subdir} is not ".", set makesrcdir based on ${invsubdir}.

Tue Feb 23 14:18:28 1993  Mike Werner  (mtw@poseidon.cygnus.com)

	* configure.in: Added "dejagnu" to hosttools list.

Mon Feb 22 23:28:38 1993  Per Bothner  (bothner@rtl.cygnus.com)

	* config.sub, configure.in, config.guess:  Add support
	for Bosx, an AIX variant from Bull.
	Patches from F.Pierresteguy@frcl.bull.fr.

Sun Feb 21 11:15:22 1993  Mike Werner  (mtw@poseidon.cygnus.com)

	* devo/dejagnu: Initial creation of devo/dejagnu.
	Migrated dejagnu testcases and support files for testing software
	tools to reside as subdirectories, currently called "testsuite",
	within the directory of the software tool.  Migrated all programs,
	support libraries, etc. beloging to dejagnu proper from
	devo/deja-gnu to devo/dejagnu.	These files were moved "as is"
	with no modifications.	The changes to these files which will
	allow them to configure, build, and execute properly will be made
	in a future update.

Fri Feb 19 20:19:39 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)

	* Makefile.in: Change send_pr to send-pr.
	* configure.in: Likewise.
	* send_pr: Renamed directory to send-pr.

Fri Feb 19 19:00:13 1993  Per Bothner  (bothner@cygnus.com)

	* Makefile.in:  Add some extra semi-colons (needed if SHELL=bash).

Fri Feb 19 00:59:33 1993  John Gilmore  (gnu@cygnus.com)

	* README:  Update for gdb-4.8 release.
	* Makefile.in (gdb.tar.Z):  Add texinfo/tex3patch.  Build
	gdb-xxx.tar.z (gzip'd) file also.

Thu Feb 18 09:16:17 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: make all-diff depend on all-libiberty

Tue Feb 16 16:06:31 1993  K. Richard Pixley  (rich@cygnus.com)

	* config.guess: add vax-ultrix in the spirit of mips-ultrix.

Tue Feb 16 05:57:15 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in, Makefile.in: add hello, tar, gzip, recode, indent

Tue Feb 16 00:58:20 1993  John Gilmore  (gnu@cygnus.com)

	* Makefile.in (DEVO_SUPPORT):  Remove etc directory
	(ETC_SUPPORT):  Only add the files GDB wants from etc/.
	(gdb.tar.Z):  Use ETC_SUPPORT.  Use byacc when building the file.

Thu Feb 11 20:14:28 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in:  makeinfo binary is in a new location

Tue Feb  9 12:42:27 1993  Ian Lance Taylor  (ian@cygnus.com)

	* config.sub: Accept -ecoff as an OS.

	* Makefile.in: Various changes to eliminate a level of make
	recursion and reduce the required command line length.
	(BASE_FLAGS_TO_PASS): New variable holding flags passed to all
	sub-makes.
	(EXTRA_HOST_FLAGS, EXTRA_TARGET_FLAGS, EXTRA_GCC_FLAGS): New
	variables holding settings for specific sub-makes.
	(FLAGS_TO_PASS, TARGET_FLAGS_TO_PASS, GCC_FLAGS_TO_PASS): Rewrote
	in terms of BASE_FLAGS_TO_PASS.
	(TARGET_LIBS): New variable listing directories which use
	TARGET_FLAGS_TO_PASS.
	(subdir_do): Eliminated.
	(do-*): New set of targets to replace subdir_do.
	(various): All targets which used subdir_do now depend on do-*.
	(local-clean): Renamed from do_clean.
	(local-distclean): New target, dependency of distclean and
	realclean.
	(install-info): Don't create directories.  Depend on dir.info
	rather than calling make recursively.
	(install-dir.info): Eliminated.
	(install-info-dirs): Create all info directories here.
	(dir.info): Depend upon do-install-info.

	* test-build.mk (HOLES): Added false.

Sat Feb  6 14:05:09 1993  Per Bothner  (bothner@rtl.cygnus.com)

	* config.guess:  Recognize BSDI and BSDJ (Jolitz 386bsd).

Thu Feb  4 20:49:18 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in (info): remove dependency on all-texinfo.  The
	problem was really in texinfo/C, not at this level.

Thu Feb  4 13:38:41 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (info): Added dependency on all-texinfo (PR 2112).

Thu Feb  4 01:50:53 1993  John Gilmore  (gnu@cygnus.com)

	* Makefile.in (make-gdb.tar.Z):  Change BISON to 'bison -y' for
	GDB releases.

Wed Feb  3 17:22:16 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* configure: Include srcdir in message about target of link not
	being found.  Don't convert `-' to `_' in `with' options being
	passed to subdirs.

Tue Feb  2 18:57:59 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: add uudecode to host_tools

	* Makefile.in: added {all,install}-uudecode targets, added them to
	the appropriate lists

Tue Feb  2 11:45:53 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (all-gcc): Added dependency on all-gas.

	* configure.in (mips-*-*): Build ld and binutils.

Mon Feb  1 12:35:41 1993  K. Richard Pixley  (rich@rtl.cygnus.com)

	* configure: check return code from mkdir, print error message and
	  exit on failure.

Sat Jan 30 16:40:28 1993  John Gilmore  (gnu@cygnus.com)

	* Makefile.in (make-gdb.tar.Z):  New location for texinfo.tex.

Thu Jan 28 15:09:59 1993  Ian Lance Taylor  (ian@cygnus.com)

	* test-build.mk (HOLES): Added tar, cpio and uudecode.

Wed Jan 27 16:50:32 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)

	* config.sub (h8500):  Recognize this as a cpu type.

Sat Jan 23 20:32:01 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure: source directory missing is no longer a warning

	* configure.in: recognize irix[34]* instead of irix[34]

	* Makefile.in: define and pass down X11_LIB

Sat Jan 23 13:49:40 1993  Per Bothner  (bothner@cygnus.com)

	* guess-systype: Renamed to ...
	* config.guess:  ... by popular request.
	* configure.in, Makefile.in:  Update accordingly.

Thu Jan 21 12:20:55 1993  Per Bothner  (bothner@cygnus.com)

	* guess-systype:  Patches from John Eaton <jwe@che.utexas.edu>:
	+ Add Convex, Cray/Unicos, and Encore/Multimax support.
	+ Execute ./dummy instead of assuming . is in PATH.

Tue Jan 19 17:18:06 1993  Per Bothner  (bothner@cygnus.com)

	* guess-systype:  New shell script.  Attempts to guess the
	canonical host name of the executing host.
	Only a few hosts are supported so far.
	* configure:  Call guess-systype if no host is specified.

Tue Jan 19 08:26:07 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (gcc-no-fixedincludes): Made to work with current
	gcc Makefile.


Fri Jan 15 10:27:02 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (GCC_FLAGS_TO_PASS): New variable.
	(all-gcc, install-gcc, subdir_do): Use it.

Wed Jan 13 17:06:45 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)

	* Makefile.in: Rename uninstalled gcc driver from gcc to xgcc.

Wed Jan  6 20:29:16 1993  Mike Werner  (mtw@rtl.cygnus.com)

	* Makefile.in: Removed explicit setting of SUBDIRS. SUBDIRS is now
	  set exclusively by configure, using configure.in .

Wed Jan  6 13:44:11 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* test-build.mk: set $PATH for all builds

	* Makefile.in: pass TARGET_FLAGS_TO_PASS for xiberty and libm

Wed Jan  6 11:02:10 1993  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (GCC_FOR_TARGET):  Supply a default that matches
	the one used in gcc/Makefile.in, so that a null expansion doesn't
	override the one needed to build gcc with a native cc.


Tue Jan  5 07:55:12 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* configure: Accept -with arguments.

Sun Jan  3 15:15:09 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* Makefile.in: added h8300sim

Tue Dec 29 15:06:00 1992  Ian Lance Taylor  (ian@cygnus.com)

	* build-all.mk: If canonhost is i386-unknown-sco3.2v4, change it
	to i386-sco3.2v4.  Set TARGETS and CFLAGS for i386-sco3.2v4.
	(all-cygnus, native, build-cygnus): Make
	$(canonhost)-stamp-3stage-done, not $(host)....
	* test-build.mk (stamp-3stage-compared): Use tail +10c for
	i386-sco3.2v4.  Added else true to if command.

Mon Dec 28 12:08:56 1992  Ken Raeburn  (raeburn@cygnus.com)

	* config.sub: (from FSF) Sequent uses a BSD-like OS.

Mon Dec 28 08:32:06 1992  Minh Tran-Le  (mtranle@paris.intellicorp.com)

	* configure.in (i[34]86-*-isc*): added; uses mh-sysv.

Thu Dec 24 17:26:24 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: don't remove binutils from Solaris builds

Thu Dec 24 14:08:38 1992 david d`zoo' zuhn  (zoo@cygnus.com)

	* Makefile.in: get rid of earlier definitions for *clean,
	also handle the recursive info rule better

Thu Dec 24 12:40:21 1992  Per Bothner  (bothner@rtl.cygnus.com)

	* Makefile.in (mostlyclean, distclean, realclean):  Fix to
	do more-or-less the right thing.

Wed Dec 16 10:25:31 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in: Add lines defining CC and CXX, and use CXX rather
	than gcc in definitions of CXX_FOR_BUILD and CXX_FOR_TARGET.

Tue Dec 15 00:34:32 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: change all $(host_cpu)-$(host_vendor)-$(host_os) to
	$(host_canonical).

	* configure.in: split the configdirs list into 4 categories (native
	v. cross, library v. tool) and handle the cross-only and native-
	only in more reasonable (and correct!) way.

Mon Dec 14 17:04:22 1992  Stu Grossman  (grossman at cygnus.com)

	* configure.in (hppa*-*-*):  Don't remove bfd and gdb from
	configdirs anymore.

Sun Dec 13 00:37:26 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: extensive cleanup::  removed all of the explicit
	clean-* targets, collapsed many wrappers around subdir_do into
	one, added additional targets to satisfy standards.texi, deleted
	some old targets, some changes for consistency

Fri Dec 11 20:18:02 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: handle some programs as cross-only, and others as
	native only

	* test-build.mk: handle partial holes in a more generic manner

	* Makefile.in: m4 depends on libiberty

Thu Dec  3 21:52:11 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: add m4, textutils, fileutils, sed, shellutils,
	time, wdiff, and find to configdirs

	* Makefile.in: all, clean, and install rules for the new programs
	added to configure.in

Mon Nov 30 14:54:34 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: use mh-sun for all *-sun-* hosts

Fri Nov 27 18:35:54 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: define flags for X11 include files and library file
	locations, pass them down to the programs that need this info

	* build-all.mk: added a 'native' target, to 3stage the native toolchain

Sun Nov 22 18:59:13 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: start building libg++ for HP-UX targets

Wed Nov 18 19:33:11 1992  John Gilmore  (gnu@cygnus.com)

	* README:  Update references to files moved into etc/.

Sun Nov 15 09:36:08 1992  Fred Fish  (fnf@cygnus.com)

	* config.sub (i386sol2, i486sol2):  i[34]86-unknown-solaris2.
	* configure.in (i[34]86-*-solaris2*):  Use config/mh-sysv4.

Thu Nov 12 08:50:42 1992  Ian Lance Taylor  (ian@cygnus.com)

	* configure: accept dash as well as underscore in long option
	names for FSF compatibility.

Wed Nov 11 08:04:37 1992  Ian Lance Taylor  (ian@cygnus.com)

	* config.sub: added -sco3.2v4 support from FSF.

Sun Nov  8 21:14:30 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: expand the section that adds or removes
	directories from the list of programs to build, to handle native
	vs. cross in addition to host v. native

Sat Nov  7 18:52:27 1992  Per Bothner  (bothner@rtl.cygnus.com)

	* Makefile.in:  Replace C++ in macro names with CXX.
	This is less likely to break ...

Sat Nov  7 15:16:58 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* test-build.mk: add -w to GNU_MAKE

Fri Nov  6 23:10:37 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* config.sub: remove 'sparc'-->'sparc-sun' default transformation,
	add 'sparc' to list of recognized cpus.  This needed to make
	'sparc-aout' expand to 'sparc-unknown-aout' instead of 'sparc-sun-aout'.
	Delete some redundant ose68 variants.  Recognize -wrs as an os,
	then changes that into $CPU-wrs-vxworks.

	* configure.in: remove most references to gdbtest, regularize
	target based program removal

	* test-build.mk: import from p3 tree (many fixes and changes)

Fri Nov  6 20:59:00 1992  david d `zoo' zuhn  (zoo@cygnus.com)

	* Makefile.in: added rules to handle tcl, tk, and expect

	* configure.in: handle those directories if they exist

Thu Nov  5 14:35:41 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* config.sub: removed bogus hppabsd and hppahpux names, since
	"hppa" is not a valid cpu (hppa1.1 or hppa1.0 are, though)

Thu Oct 29 00:12:41 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: all-gcc now depends on all-binutils.  all-libg++
	depends upon all-xiberty

	* Makefile.in: changes from p3, including:

	Thu Oct  8 15:00:17 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (XTRAFLAGS): include newlib directories if
	newlib/Makefile exists, rather than if host != target.

	Fri Sep 25 13:41:52 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in: added -nostdinc to XTRAFLAGS if we are using gcc
	from the same source tree and not building a cross-compiler.  This
	matters for the libg++ configuration if reconfiguring a tree that
	has already been installed.

	Thu Sep 10 10:35:51 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in: added -I for newlib/targ-include to XTRAFLAGS, to
	pick up the machine and system specific header files.

	* Makefile.in: added AS_FOR_TARGET, passed down in
	TARGET_FLAGS_TO_PASS.  Added CC_FOR_BUILD, which is intended to be
	the C compiler to use to create programs which are run in the
	build environment, set it to default to $(CC), and passed it down
	in FLAGS_TO_PASS and TARGET_FLAGS_TO_PASS.

	Mon Sep  7 22:34:42 1992  Ian Lance Taylor  (ian@cirdan.cygnus.com)

	* Makefile.in: add $(host) = $(target) tests back to *_FOR_TARGET.
	We need them for unusual native builds, like systems without
	ranlib.

	* configure: also define $(host_canonical) and
	$(target_canonical), which are the full, canonical names for the
	given host and target

Sun Nov  1 16:38:17 1992  Per Bothner  (bothner@cygnus.com)

	* Makefile.in:  Added separate definitions for C++.

Fri Oct 30 11:37:52 1992  Fred Fish  (fnf@cygnus.com)

	* configure.in (configdirs):  Add deja-gnu.

Fri Oct 23 00:39:18 1992  John Gilmore  (gnu@cygnus.com)

	* README:  Update for configure.texi and gdb-4.7 release.

Wed Oct 21 21:54:27 1992  John Gilmore  (gnu@cygnus.com)

	* Makefile.in:  Move "all" target to top of file.
	Previously, first target was ".PHONY" which caused BSD4.4 make
	to build .PHONY when make was run without arguments.

Mon Oct 19 01:17:54 1992  John Gilmore  (gnu@cygnus.com)

	* Makefile.in:  Add COPYING.LIB to GDB releases, now that there's
	Library-copylefted code in libiberty.

Tue Oct 13 01:22:32 1992  John Gilmore  (gnu@cygnus.com)

	* config.sub:  Replace m68kmote with plain old m68k.

Fri Oct  9 03:14:24 1992  John Gilmore  (gnu@cygnus.com)

	* Makefile.in:  Remove space from blank line, avoid Make complaints.

Thu Oct  8 18:41:45 1992  Ken Raeburn  (raeburn@cygnus.com)

	* config.sub: Complain if no argument is given.  Added support for
	386bsd as OS and target alias.

Thu Oct  8 15:07:22 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (XTRAFLAGS): include newlib directories if
	newlib/Makefile exists, rather than if host != target.

Mon Oct  5 03:00:09 1992  Mark Eichin  (eichin at tweedledumber.cygnus.com)

	* config.sub: recognize sparclite-wrs-vxworks.

	* Makefile.in (install-xiberty): added *-xiberty make rules (from
	p3.) Added clean-xiberty to clean.

Thu Oct  1 17:59:19 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: use *-*-* instead of nested cases for host and target

Tue Sep 29 14:11:18 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in: added -nostdinc to XTRAFLAGS if we are using gcc
	from the same source tree and not building a cross-compiler.  This
	matters for the libg++ configuration if reconfiguring a tree that
	has already been installed.

Sep 20 08:53:10 1992  Fred Fish  (fnf@cygnus.com)

	* config.sub (i486v/i486v4):  Merge in from FSF version.

Fri Sep 18 00:32:00 1992  Mark Eichin  (eichin@cygnus.com)

	* configure: only set PWD if it is already set.

Thu Sep 17 23:05:53 1992  Mark Eichin  (eichin@cygnus.com)

	* configure: just set PWD=`pwd` at the top, since Ultrix sh
	doesn't have unset and all success paths (and most error paths)
	out set it anyway. (Note: should change all uses of ${PWD=`pwd`}
	to just ${PWD} to avoid confusion.)

Tue Sep 15 16:00:54 1992  Ian Lance Taylor  (ian@cygnus.com)

	* configure: always set $(tooldir) to $(libdir)/$(target_alias),
	even for a native compilation.

Tue Sep 15 02:22:56 1992  John Gilmore  (gnu@cygnus.com)

	Changes to make the gdb.tar.Z rule work better.

	* Makefile.in (GDB_SUPPORT_DIRS):  Add opcodes.
	(DEVO_SUPPORT):  Add configure.texi.
	(bfd-ilrt.tar.Z):  Remove ancient rule.

Thu Sep 10 10:43:19 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in: added -I for newlib/targ-include to XTRAFLAGS, to
	pick up the machine and system specific header files.

	* configure.in, config.sub: added new target m68010-adobe-scout,
	with alias of adobe68k.  Changed configure.in to check for
	-scout before -sco* to avoid a false match.

	* Makefile.in: added AS_FOR_TARGET, passed down in
	TARGET_FLAGS_TO_PASS.  Added CC_FOR_BUILD, which is intended to be
	the C compiler to use to create programs which are run in the
	build environment, set it to default to $(CC), and passed it down
	in FLAGS_TO_PASS and TARGET_FLAGS_TO_PASS.

Wed Sep  9 12:21:42 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in: added TARGET_FLAGS_TO_PASS, CC_FOR_TARGET,
	AR_FOR_TARGET, RANLIB_FOR_TARGET, NM_FOR_TARGET.  Pass
	TARGET_FLAGS_TO_PASS, which defines CC, AR, RANLIB and NM as the
	FOR_TARGET variants, to newlib and libg++.

Tue Sep  8 17:28:30 1992  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* Makefile.in (all-gas, all-gdb): Require all-opcodes to be built
	first.

Wed Sep  2 02:50:05 1992  John Gilmore  (gnu@cygnus.com)

	* config.sub:  Accept `elf' as an environment.

Tue Sep  1 15:48:30 1992  Steve Chamberlain  (sac@thepub.cygnus.com)

	* Makefile.in (all-opcodes):  cd into the right directory

Sun Aug 30 21:12:11 1992  Ian Lance Taylor  (ian@cygnus.com)

	* configure: added -program_transform_name option, used as
	argument to sed when installing programs.
	configure.texi: added documentation for -program_prefix,
	-program_suffix and -program_transform_name.

Thu Aug 27 21:59:44 1992  John Gilmore  (gnu@cygnus.com)

	* config.sub:  Accept i486 where i386 ok.

Thu Aug 27 13:04:42 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)

	* config.sub: accept we32k

Mon Aug 24 14:05:14 1992  Ian Lance Taylor  (ian@cygnus.com)

	* config.sub, configure.in: accept OSE68000 and OSE68k.

	* Makefile.in: don't create all directories for ``make install'';
	let the subdirectories create the ones they need.

Tue Aug 11 23:13:17 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* COPYING: new file, GPL v2

Tue Aug  4 01:12:43 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: use the new gen-info-dir, which needs a template
	argument (which also lives in texinfo)

	* configure.texi, standards.texi: fix INFO-DIR-ENTRY

Mon Aug  3 00:34:17 1992  Fred Fish  (fnf@cygnus.com)

	* config.sub (ncr3000):  Change i386 to i486.

Thu Jul 23 00:12:17 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: add install-rcs, install-grep to
	install-no-fixedincludes, removed install-bison and install-libgcc

Tue Jul 21 01:01:50 1992  david d `zoo' zuhn (zoo@cygnus.com)

	* configure.in: grab the HPUX makefile fragment if on HPUX

Mon Jul 20 11:02:09 1992  D. V. Henkel-Wallace  (gumby@cygnus.com)

	* Makefile.in: eradicate bison spoor (ditto libgcc).
	 configure.in: recognise m68{k,000}-ericsson-OSE.
	 es1800 is alias for m68k-ericsson-OSE

Sun Jul 19 17:49:02 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: rearrange the parts that remove programs from
	configdirs, based now on HOST==TARGET or by canonical triple.

Fri Jul 17 22:52:49 1992  K. Richard Pixley  (rich@rtl.cygnus.com)

	* test-build.mk: recurse explicitly with -f test-build.mk when
	  appropriate.  predicate stage3 and comparison on the existence
	  of gcc.  That is, if gcc isn't around, we aren't three-staging.
	  On very clean, also remove ...stamp-co.  Build in-place before
	  doing other builds.

Thu Jul 16 18:33:09 1992  Steve Chamberlain  (sac@thepub.cygnus.com)

	* Makefile.in, configure.in: add tgas

Thu Jul 16 16:05:28 1992  K. Richard Pixley  (rich@rtl.cygnus.com)

	* Makefile.in: a number of changes merged in from progressive.

	* configure.in: add libm.

	* .cvsignore: ignore some stuff that comes from test-build.mk.

Tue Jul  7 00:24:52 1992  Fred Fish  (fnf@cygnus.com)

	* config.sub:  Add es1800 (m68k-ericsson-es1800).

Tue Jun 30 20:24:41 1992  D. V. Henkel-Wallace  (gumby@cygnus.com)

	* configure: Add program_suffix (parallel to program_prefix)
	* Makefile.in: adjust directory-creating script for losing decstation

Mon Jun 22 23:43:48 1992  Per Bothner  (bothner@cygnus.com)

	* configure:  Minor $subdir-related fixes.

Mon Jun 22 18:30:26 1992  Steve Chamberlain  (sac@thepub.cygnus.com)

	* configure: fix various problems with propogating
	makefile_target_frag in subdirs.
	* configure.in: config libgcc if its there

Fri Jun 19 15:19:40 1992  Stu Grossman  (grossman at cygnus.com)

	* config.sub:  HPPA merge.

Sun Jun 14 10:29:19 1992  John Gilmore  (gnu at cygnus.com)

	* Makefile.in:  Replace all-bison with all-byacc in all
	dependency lines for other tools (which now use byacc).

Fri Jun 12 22:21:57 1992  John Gilmore  (gnu at cygnus.com)

	* config.sub:  Add sun4sol2 => sparc-sun-solaris2.

Thu Jun  4 12:07:32 1992  Mark Eichin  (eichin@cygnus.com)

	* Makefile.in: make gprof rules similar to byacc rules (instead of
	vestigal $(unsubdir) that didn't work...)

Thu Jun  4 00:37:05 1992  Per Bothner  (bothner@rtl.cygnus.com)

	* config.sub:  Add support for Linux.
	* Makefile.in:  Use $(FLAGS_TO_PASS) more consistently
	(at least for libg++).

Tue Jun 02 20:03:00 1992  david d `zoo' zuhn (zoo@cygnus.com)

	* configure.texi: fix doc for the -nfp option to configure

Tue Jun  2 17:20:52 1992  Michael Tiemann  (tiemann@cygnus.com)

	* Makefile.in (all-binutils): ar needs flex, so depend on all-flex.

Sun May 31 15:04:08 1992  Mark Eichin  (eichin at cygnus.com)

	* config.sub: changed [^-]+ to [^-][^-]* so that it works under
	Sun sed. (BSD 4.3 sed doesn't handle [^-]+ either.)
	* configure.in: added solaris* host_makefile_frag hook.

Sun May 31 01:10:34 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* config.sub: changed recognition of m68000 so that various
	m68k types can be specified via m680[01234]0

Sat May 30 21:01:06 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* config.sub (basic_machine): fix sed so that '-foo' isn't
	completely substituted out while .+'-foo' loses the '-foo'

Wed May 27 23:18:52 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)

	* config.sub ($os): Add -aout.

Fri May 22 14:00:02 1992  Per Bothner  (bothner@cygnus.com)

	* configure:  If host_makefile_frag is absolute, don't
	prefix ${invsubdir} (relevant to libg++ auto-configure).

Thu May 21 18:00:09 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)

	* Makefile.in (tooldir): Define it.
	(all-ld): Depend on all-flex.

Sun May 10 21:45:59 1992  Per Bothner  (bothner@rtl.cygnus.com)

	* Makefile.in (check):  Fix libg++ special case.

Fri May  8 08:31:41 1992  K. Richard Pixley  (rich@cygnus.com)

	* configure: do not bury `pwd` into config.status, thus do fewer
	  pwd's.

	* configure: print the "Building in" message only when building in
	  other than "." AND verbose.

	* configure: remove -s, rework -v to better accommodate guested
	  configures.

	* standards.texi: updated to 3 may, fixed librid <-> libdir typo.

Fri May  1 18:00:50 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: macroize flags passed on recursion.  remove
	  fileutils.

Thu Apr 30 08:56:20 1992  K. Richard Pixley  (rich@cygnus.com)

	* configure: get makesrcdir right for subdirs deeper than 1.

	* Makefile.in: pass INSTALL, INSTALL_DATA, INSTALL_PROGRAM on
	  install.

Fri Apr 24 15:51:51 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: don't print subdir_do or recursion lines.

Fri Apr 24 15:22:04 1992  K. Richard Pixley  (rich@cygnus.com)

	* standards.texi: added menu item.

	* Makefile.in: build and install standards.info.

	* standards.texi: new file.

Wed Apr 22 18:06:55 1992  K. Richard Pixley  (rich@rtl.cygnus.com)

	* configure: test for and move config.status pieces from
	  ${subdir}/.

Wed Apr 22 14:38:34 1992  Fred Fish  (fnf@cygnus.com)

	* configure:  Test for existance of files before trying to mv
	them, to avoid numerous non-existance messages.

Tue Apr 21 12:31:33 1992  K. Richard Pixley  (rich@cygnus.com)

	* configure: correct final line of config.status.

	* configure: patch from eggert.  Avoids a protection problem if
	  the original Makefile.in is read only.

	* configure: use move-if-change from gcc to create config.status.
	  Some makefiles depend on config.status to tell if a directory
	  has been reconfigured for a different host.  This change
	  prevents those directories from remaking everything in the case
	  where the reconfig was only intended to rebuild a Makefile.

	* configure: test for config.sub with "config.sub sun4" rather
	  than "config.sub ${host_alias}".  Otherwise we can't tell a bad
	  host alias from a missing config.sub.

Mon Apr 20 18:16:36 1992  K. Richard Pixley  (rich@rtl.cygnus.com)

	* Makefile.in: explicitly pass CFLAGS on recursion. no longer pass
	  MINUS_G (this can be done with CFLAGS).  Default CFLAGS to -g.

Fri Apr 17 18:27:51 1992  Per Bothner  (bothner@cygnus.com)

	* configure: mkdir ${subdir} as needed.

Wed Apr 15 17:37:22 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in,configure.in: added autoconf.

Wed Apr 15 17:27:34 1992  K. Richard Pixley  (rich@rtl.cygnus.com)

	* Makefile.in: no longer pass against on recursion.

	* Makefile.in: added .NOEXPORT: so that stray makefile_frag
	  definitions are not inherited.

	* configure: correct makesrcdir when subdir is .

Tue Apr 14 11:56:09 1992  Per Bothner  (bothner@cygnus.com)

	* configure:  Add support for 'subdirs' variable, which is
	like 'configdirs', except that configure doesn't re-invoke
	itself for subdirs, it just creates a Makefile for each subdir.
	* configure.texi:  Document subdirs.

Mon Apr 13 18:50:16 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: added flex to configdirs

Mon Apr 13 18:43:55 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: remove clean-stamps from clean.

Sat Apr 11 03:52:03 1992  John Gilmore  (gnu at cygnus.com)

	* configure.in:  Add gdbtest to configdirs.

Fri Apr 10 23:11:49 1992  Fred Fish  (fnf@cygnus.com)

	* Makefile.in (MINUS_G):  Add macro, default to -g, pass on
	to recursive makes.
	* configure.in:  Recognize new ncr3000 config.

Wed Apr  8 23:08:12 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in, configure.in: removed references to gdbm.

Tue Apr  7 16:48:20 1992  Per Bothner  (bothner@cygnus.com)

	* config.sub:  Don't canonicalize os value
	newsos* to bsd (readline needs to check for newsos).
	(This fix was earlier made Jan 31, but got re-broken.)

Mon Apr  6 14:34:08 1992  Stu Grossman  (grossman at cygnus.com)

	* configure.in:  sco is an os, not a vendor!

	* configure:  Quote $( better.  Keep various shells happy.

Tue Mar 31 16:32:57 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: eliminate stamp-files.

Mon Mar 30 22:20:23 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: add send_pr.  remove "force" from .stmp-gprof rule.
	  Supress echoing of all the "if [ -d ... $(MAKE)" lines.

Wed Mar 25 15:20:04 1992  Stu Grossman  (grossman@cygnus.com)

	* config.sub:  fix iris/iris3.

Wed Mar 25 10:34:19 1992  K. Richard Pixley  (rich@cygnus.com)

	* configure: re-add -rm.

Tue Mar 24 23:50:16 1992  K. Richard Pixley  (rich@cygnus.com)

	* Maskefile.in: add .stmp-rcs to all.

	* configure.in: remove gas from rs6000 build, use aix host fragment.

Mon Mar 23 19:43:35 1992  K. Richard Pixley  (rich@cygnus.com)

	* configure: pass down site_option during recursion.

Thu Mar 19 16:49:36 1992  Stu Grossman  (grossman at cygnus.com)

	* Makefile.in (all.cross):  Add .stmp-bfd .stmp-readline.

Wed Mar 18 15:29:33 1992  Mike Stump  (mrs@cygnus.com)

	* configure: Change exec_prefix so that it really defaults to prefix.

Sat Mar 14 17:20:38 1992  Fred Fish  (fnf@cygnus.com)

	* Makefile.in, configure.in:  Add support for mmalloc library.

Fri Mar 13 18:44:18 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: add stmp dependencies for a few more things.

Thu Mar 12 04:56:24 1992  K. Richard Pixley  (rich@cygnus.com)

	* configure: adjusted error message on objdir/srcdir configure
	  collision, per john's suggestion.

	* Makefile.in: add libiberty stmp to all and all.cross.

Wed Mar 11 02:07:52 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in: remove force dependencies, add grep to all.

Tue Mar 10 21:49:18 1992  K. Richard Pixley  (rich@mars.cygnus.com)

	* Makefile.in: drop flex.  make stamp files work.

	* configure: added test for conflicting configuration in srcdir,
	  remove trailing slashes from srcdir.  Otherwise emacs gdb mode
	  gets cranky.  use relative paths for configure and srcdir
	  whenever possible.  Send some error messages to stderr that were
	  going to stdout.

Tue Mar 10 18:01:55 1992  Per Bothner  (bothner@cygnus.com)

	* Makefile.in:  Fix libg++ rule to check for gcc directory
	before using gcc/gcc.  Also pass XTRAFLAGS.

Thu Mar  5 21:45:07 1992  K. Richard Pixley  (rich@sendai)

	* Makefile.in: added stmp-files so that directories aren't polled
	  when they are already built.

	* configure.texi: fixed a node pointer problem.

Thu Mar  5 12:05:58 1992  Stu Grossman  (grossman at cygnus.com)

	* config.sub configure.in gdb/configure.in
	gdb/mips-tdep.c gdb/mipsread.c gdb/procfs.c gdb/signame.h
	gdb/tm-irix3.h gdb/tm-mips.h gdb/xm-irix4.h gdb/config/mt-irix3
	gdb/config/mh-irix4 texinfo/configure.in:  Port to SGI Irix-4.x.

Wed Mar  4 02:57:46 1992  K. Richard Pixley  (rich@rtl.cygnus.com)

	* configure: -recurring becomes -silent.  corrected help message
	  for -site= option.

	* Makefile.in: mkdir $(exec_prefix) and $(tooldir).

Tue Mar  3 14:51:21 1992  K. Richard Pixley  (rich@rtl.cygnus.com)

	* configure: when building Makefile for crosses, replace
	  tooldir and program_prefix.  default srcdir from location of
	  config.sub.  remove "for host in hosts" and "for target in
	  targets" loops.

Wed Feb 26 19:48:25 1992  K. Richard Pixley  (rich@rtl.cygnus.com)

	* Makefile.in: Do not pass bindir or mandir to cvs.

Wed Feb 26 18:04:40 1992  K. Richard Pixley  (rich@cygnus.com)

	* Makefile.in, configure.in: removed traces of namesubdir,
	  -subdirs, $(subdir), $(unsubdir), some rcs triggers.  Forced
	  copyrights to '92, changed some from Cygnus to FSF.

	* configure.texi: remove most references to multiple hosts,
	  multiple targets, subdirs, etc.

	* configure.man: removed rcsid. reference config.sub not
	  config.subr.

	* Makefile.in: mkdir $(infodir) on install-info.

Wed Feb 19 15:41:13 1992  John Gilmore  (gnu at cygnus.com)

	* configure.texi:  Explain better about .gdbinit and about
	the environment that configure.in sections run in.

Fri Feb  7 07:55:00 1992  John Gilmore  (gnu at cygnus.com)

	* configure.in:  Ultrix is only a decstation if it's a MIPS.

Fri Jan 31 21:54:51 1992  John Gilmore  (gnu at cygnus.com)

	* README:  DOC.configure => cfg-paper.texi.

Fri Jan 31 21:48:18 1992  Stu Grossman  (grossman at cygnus.com)

	* config.sub (near case $os):  Don't convert newsos* to bsd!

Fri Jan 31 02:27:32 1992  John Gilmore  (gnu at cygnus.com)

	* Makefile.in:  Reinstall change from gdb-4.3 that reduces
	the number of copies of COPYING that go into the GDB tar file.

Thu Jan 30 16:17:30 1992  Stu Grossman  (grossman at cygnus.com)

	* bfd/configure.in, gdb/config/mh-i386sco,
	gdb/config/mt-i386v32, gdb/configure.in, readline/configure.in:
	Fix SCO configuration stuff.

Tue Jan 28 23:51:07 1992  Per Bothner  (bothner at cygnus.com)

	* Makefile.in:  For libg++, make sure the -I pointing
	to the gcc directory goes *after* all the libg++-local -I flags.
	Also, move just-gcc dependency from just-libg++ to all-libg++.

Tue Jan 28 12:56:24 1992  Stu Grossman  (grossman at cygnus.com)

	* configure:  Change -x to -f to keep Ultrix /bin/test happy.

Sat Jan 18 17:45:11 1992  Stu Grossman  (grossman at cygnus.com)

	* Makefile.in (make-gdb.tar.Z):  Remove texinfo targets.

Sat Jan 18 17:03:21 1992  Fred Fish  (fnf at cygnus.com)

	* config.sub:  Add stratus configuration frags.  Also
	submitted to FSF.

Sat Jan 18 15:35:29 1992  Stu Grossman  (grossman at cygnus.com)

	* Makefile.in (DEV_SUPPORT):  add configure.man.

	* config.sub(Decode manufacturer-specific):  add -none*.

Fri Jan 17 17:58:05 1992  Stu Grossman  (grossman at cygnus.com)

	* Makefile.in:  remove form feeds to make Sun's make happy.
	(DEVO_SUPPORT):  DOC.configure => cfg-paper.texi.

Sat Jan  4 16:11:44 1992  John Gilmore  (gnu at cygnus.com)

	* Makefile.in (AR_FLAGS):  Make quieter.

Thu Jan  2 22:57:12 1992  John Gilmore  (gnu at cygnus.com)

	* configure.in:  Add libg++.
	* configure:  When verbose, don't output the command line at each
	level; it will be unremarkably the same as the previous version,
	which will be the same as what the user typed.

Fri Dec 27 16:26:47 1991  K. Richard Pixley  (rich at cygnus.com)

	* configure.in, Makefile.in: fix clean-info, add flex.  add
	  fileutils.

	* configure: be less sensitive to spaces in Makefile.in.  Do not
	  look for sources in "..".  Doing so breaks subdirectories that
	  might have their own configure.  If a subdir has it's own
	  configure script, use it.

Thu Dec 26 16:30:26 1991  K. Richard Pixley  (rich at cygnus.com)

	* cfg-paper.texi: some changes suggested by rms.

Thu Dec 26 10:13:36 1991  Fred Fish  (fnf at cygnus.com)

	* config.sub:  Merge in some small additions from the FSF version,
	taken from the gcc distribution, to bring the Cygnus and FSF
	versions into closer sync.

Fri Dec 20 11:34:18 1991  Fred Fish  (fnf at cygnus.com)

	* configure.in:  Changed svr4 references to sysv4.

Thu Dec 19 15:54:29 1991  K. Richard Pixley  (rich at cygnus.com)

	* configure: added -V for version number option.

Wed Dec 18 15:39:34 1991  K. Richard Pixley  (rich at cygnus.com)

	* DOC.configure, cfg-paper.texi: revised, updated, and texinfo'd.
	  renamed from DOC.configure to cfg-paper.texi.

Mon Dec 16 23:05:19 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* configure, config.subr, config.sub: config.subr is now
	  config.sub again.

Fri Dec 13 01:17:06 1991  K. Richard Pixley  (rich at cygnus.com)

	* configure.texi: new file, in progress.

	* Makefile.in: build info file and install the man page for
	  configure.

	* configure.man: new file, first cut.

	* configure: find config.subr again now that configuration "none"
	  has gone.  removed all traces of the -ansi option.  removed all
	  traces of the -languages option.

	* config.subr: resync from rms.

Wed Dec 11 22:25:20 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* configure, config.sub, config.subr: merge config.sub into
	  config.subr, call the result config.subr, remove config.sub, use
	  config.subr.

	* Makefile.in: revised install for dir.info.

Tue Dec 10 00:04:35 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* configure.in: add decstation host makefile frag.

	* Makefile.in: BISON now bison -y again.  also install-gcc on
	  install.  clean-gdbm on clean.  infodir belongs in datadir.
	  Make directories for info install.  Build dir.info here then
	  install it.

Mon Dec  9 16:48:33 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* Makefile.in: fix for bad directory tests.

Sat Dec  7 00:17:01 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* configure: \{1,2\} appears to be a sysv'ism.  Use a different
	  regexp.  -srcdir relative was being handled incorrectly.

	* Makefile.in: unwrapped some for loops so that parallel makes
	  work again and so one can focus one's attention on a particular
	  package.

Fri Dec  6 00:22:08 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* configure: added PWD as a stand in for `pwd` (for speed). use
	  elif wherever possible.  make -srcdir work without -objdir.
	  -objdir= commented out.

Thu Dec  5 22:46:52 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* configure: +options become --options.  -subdirs commented out.
	  added -host, -datadir.  Renamed -destdir to -prefix.  Comment in
	  Makefile now at top of generated Makefile.  Removed cvs log
	  entries.  added -srcdir.  create .gdbinit only if there is one
	  in ${srcdir}.

	* Makefile.in: idestdir and ddestdir go away.  Added copyrights
	  and shift gpl to v2.  Added ChangeLog if it didn't exist. docdir
	  and mandir now keyed off datadir by default.

Fri Nov 22 07:38:11 1991  K. Richard Pixley  (rich at rtl.cygnus.com)

	* Freshly created ChangeLog.


Local Variables:
mode: change-log
left-margin: 8
fill-column: 76
version-control: never
End:
