2024-04-16  Thomas Schwinge  <tschwinge@baylibre.com>

	* configure.ac (have_cargo): Force to "no" in Canadian cross
	configurations
	* configure: Regenerate.

2024-04-16  Thomas Schwinge  <tschwinge@baylibre.com>

	* configure: Regenerate.

2024-04-15  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* configure: Regenerate.
	* configure.ac: Emit an error message when cargo
	is missing.

2024-04-04  Paul-Antoine Arras  <parras@baylibre.com>

	* MAINTAINERS: Update my email address.

2024-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* MAINTAINERS: Update my email details, remove myself as arm
	maintainer.  Add myself to DCO section.

2024-04-02  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/106472
	* Makefile.tpl (make-postboot-target-dep): New lambda.
	Use it to add --enable-bootstrap dependencies of target modules
	on other target modules if the latter aren't bootstrapped.
	* Makefile.in: Regenerate.

2024-04-02  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.tpl: Fix duplicated words; returns returns ->
	returns.

2024-03-08  Filip Kastl  <fkastl@suse.cz>

	* MAINTAINERS: Fix order of names in Write After Aproval

2024-03-04  demin.han  <demin.han@starfivetech.com>

	* MAINTAINERS: Add myself

2024-02-28  Fangrui Song  <maskray@gcc.gnu.org>

	* MAINTAINERS: Add myself.

2024-02-26  Juergen Christ  <jchrist@linux.ibm.com>

	* MAINTAINERS: Add myself to write after approval and DCO.

2024-02-23  Xi Ruoyao  <xry111@xry111.site>

	* configure.ac (ENABLE_GOLD): Remove loongarch*-*-* from target
	list.
	* configure: Regenerate.

2024-02-23  Monk Chiang  <monk.chiang@sifive.com>

	* MAINTAINERS: Add myself.

2024-02-10  Alexander Westbrooks  <alexanderw@gcc.gnu.org>

	* MAINTAINERS: Add myself to write after approval and DCO.

2024-02-03  Maciej W. Rozycki  <macro@orcam.me.uk>

	* MAINTAINERS: Update my e-mail address.

2024-02-02  Sandra Loosemore  <sloosemore@baylibre.com>

	* MAINTAINERS: Update my e-mail address.

2024-01-29  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* MAINTAINERS: Update my work email address.

2024-01-25  Chung-Lin Tang  <cltang@baylibre.com>

	* MAINTAINERS: Update my work email address.

2024-01-24  Thomas Schwinge  <tschwinge@baylibre.com>

	* MAINTAINERS: Update my work email address.

2024-01-23  Tobias Burnus  <tburnus@baylibre.com>

	* MAINTAINERS: Update my email address.

2024-01-23  Andrew Stubbs  <ams@baylibre.com>

	* MAINTAINERS: Update

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Makefile.def: Add a dependency to libgrust for all-gcc.
	* Makefile.in: Regenerate the file.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Makefile.def: Add libgrust target to bootstrap.
	* Makefile.in: Regenerate.

2024-01-15  Andrew Pinski  <quic_apinski@quicinc.com>

	* MAINTAINERS (DCO): Add myself.

2024-01-09  Siddhesh Poyarekar  <siddhesh@gotplt.org>

	* SECURITY.txt: Drop "exploitable" in the hardening section.

2024-01-09  Tom Tromey  <tom@tromey.com>

	* Makefile.in: Rebuild.
	* Makefile.tpl (BASE_EXPORTS): Add GUILE.
	(GUILE): New variable.
	* Makefile.def (flags_to_pass): Add GUILE.

2024-01-08  Joseph Myers  <josmyers@redhat.com>

	* MAINTAINERS: Update my email address.

2023-12-30  Joseph Myers  <jsm@polyomino.org.uk>

	* MAINTAINERS: Update my email address.

2023-12-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* Makefile.def: Add libgrust as host & target module.
	* configure.ac: Add libgrust to host tools list. Add libgrust to
	noconfigdirs if we're not building target libstdc++.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2023-12-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
	    Arthur Cohen  <arthur.cohen@embecosm.com>

	* MAINTAINERS: Add maintainers for libgrust.

2023-12-13  Arsen Arsenović  <arsen@aarsen.me>

	* Makefile.def (gettext): Disable (via missing)
	{install-,}{pdf,html,info,dvi} and TAGS targets.  Set no_install
	to true.  Add --disable-threads --disable-libasprintf.  Drop the
	lib_path (as there are no shared libs).
	* Makefile.in: Regenerate.

2023-12-12  Paul Iannetta  <piannetta@kalrayinc.com>

	* MAINTAINERS: Add myself to write after approval

2023-12-12  Feng Wang  <wangfeng@eswincomputing.com>

	* MAINTAINERS: Update my email address

2023-12-12  Feng Wang  <wangfeng@eswincomputing.com>

	* MAINTAINERS: Add myself to write after approval

2023-11-23  Nathaniel Shead  <nathanieloshead@gmail.com>

	* MAINTAINERS: Add myself to write after approval and DCO

2023-11-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* libtool.m4: Fix stray call

2023-11-19  Lewis Hyatt  <lhyatt@gmail.com>

	* Makefile.in: Regenerate.
	* Makefile.tpl: Add dependency on site.exp to check-gcc-* targets

2023-11-18  Petter Tomner  <tomner@bahnhof.se>

	* MAINTAINERS: Update my email address.

2023-11-18  Frederik Harwath  <frederik@harwath.name>

	* MAINTAINERS: Change my address.

2023-11-16  Michal Jires  <mjires@suse.cz>

	* MAINTAINERS: Add myself.

2023-11-13  Arsen Arsenović  <arsen@aarsen.me>

	PR bootstrap/12596
	* .gitignore: Add '/gettext*'.
	* configure.ac (host_libs): Replace intl with gettext.
	(hbaseargs, bbaseargs, baseargs): Split baseargs into
	{h,b}baseargs.
	(skip_barg): New flag.  Skips appending current flag to
	bbaseargs.
	<library exemptions>: Exempt --with-libintl-{type,prefix} from
	target and build machine argument passing.
	* configure: Regenerate.
	* Makefile.def (host_modules): Replace intl module with gettext
	module.
	(configure-ld): Depend on configure-gettext.
	* Makefile.in: Regenerate.

2023-11-13  Arsen Arsenović  <arsen@aarsen.me>

	* intl/*: Remove.

2023-11-09  Jivan Hakobyan  <jivanhakobyan9@gmail.com>

	* MAINTAINERS: Add myself.

2023-11-09  YunQiang Su  <yunqiang.su@cipunited.com>

	* MAINTAINERS: Update my email address.

2023-11-06  Carl Love  <cel@linux.ibm.com>

	* MAINTAINERS: Update my email address.

2023-11-01  Eric Gallager  <egallager@gcc.gnu.org>

	* .github/CONTRIBUTING.md: Wrap lines more tightly.

2023-11-01  Eric Gallager  <egallager@gcc.gnu.org>

	* .github/CONTRIBUTING.md: New file.
	* .github/PULL_REQUEST_TEMPLATE.md: New file.

2023-10-22  Iain Sandoe  <iain@sandoe.co.uk>

	* configure: Regenerate.
	* configure.ac: Do not add default runpaths to GCC exes
	when we are building -static-libstdc++/-static-libgcc (the
	default).
	* libtool.m4: Add 'enable-darwin-at-runpath'.  Act  on the
	enable flag to alter Darwin libraries to use @rpath names.

2023-10-15  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.def: Add distclean-sim dependency on distclean-gnulib.
	* Makefile.in: Regenerate.

2023-10-11  Filip Kastl  <fkastl@suse.cz>

	* MAINTAINERS: Fix name order.

2023-10-10  Christoph Müllner  <christoph.muellner@vrull.eu>

	* MAINTAINERS: Add myself.

2023-10-06  Sergei Trofimovich  <siarheit@google.com>

	PR bootstrap/111663
	* Makefile.tpl (STAGEfeedback_CONFIGURE_FLAGS): Disable -Werror.
	* Makefile.in: Regenerate.

2023-10-05  Jan Engelhardt  <jengelh@inai.de>

	* SECURITY.txt: Fix up indentation.

2023-10-05  Jan Engelhardt  <jengelh@inai.de>

	* SECURITY.txt: Fix up commas.

2023-10-04  Siddhesh Poyarekar  <siddhesh@gotplt.org>

	* SECURITY.txt: New file.

2023-09-18  Fei Gao  <gaofei@eswincomputing.com>

	* MAINTAINERS: Add myself.

2023-09-15  Yang Yujie  <yangyujie@loongson.cn>

	* config-ml.in: Remove unneeded loongarch clause.
	* configure.ac: Register custom makefile fragments mt-loongarch-*
	for loongarch targets.
	* configure: Regenerate.

2023-09-12  Edwin Lu  <ewlu@rivosinc.com>

	* MAINTAINERS: Add myself

2023-09-12  Thomas Schwinge  <thomas@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	PR testsuite/109951
	* Makefile.tpl (BASE_TARGET_EXPORTS): Add
	'SYSROOT_CFLAGS_FOR_TARGET'.
	* Makefile.in: Regenerate.

2023-09-05  Yang Yujie  <yangyujie@loongson.cn>

	* config-ml.in: Do not build the multilib library variant
	that is duplicate with the toplevel one.

2023-08-29  Tsukasa OI  <research_trasio@irq.a4lg.com>

	* MAINTAINERS: Add myself.

2023-08-22  Filip Kastl  <fkastl@suse.cz>

	* MAINTAINERS: Update my email address.

2023-08-11  Eric Feng  <ef2648@columbia.edu>

	* MAINTAINERS: Add myself.

2023-08-07  Indu Bhagat  <indu.bhagat@oracle.com>

	* Makefile.def: Reflect that libsframe needs to installed before
	libbfd.  Reorder a bit to better track libsframe dependencies.
	* Makefile.in: Regenerate.

2023-08-07  Indu Bhagat  <indu.bhagat@oracle.com>

	* Makefile.def: Add install dependency on libsframe for libbfd.
	* Makefile.in: Regenerated.

2023-08-07  Nick Alcock  <nick.alcock@oracle.com>

	* libtool.m4 (lt_cv_sys_global_symbol_pipe): Augment symcode for
	Solaris 11.

2023-08-07  Alexander von Gluck IV  <kallisti5@unixzen.com>

	* configure: Regenerate.
	* configure.ac: Add Haiku to list of ELF OSes
	* libtool.m4: Update sys_lib_dlsearch_path_spec on Haiku.

2023-08-07  Nick Alcock  <nick.alcock@oracle.com>

	* libtool.m4 (LT_PATH_NM): Handle user-specified NM with
	options, including options containing paths.

2023-08-07  Nick Alcock  <nick.alcock@oracle.com>

	* libtool.m4 (LT_PATH_NM): Try BSDization flags with a user-provided
	NM, if there is one.  Run nm on itself, not on /dev/null, to avoid
	errors from nms that refuse to work on non-regular files.  Remove
	other workarounds for this problem.  Strip out blank lines from the
	nm output.

2023-08-07  Arsen Arsenović  <arsen@aarsen.me>

	* configure.ac: Reinstate 32b PA-RISC HP-UX targets
	* configure: Regenerate.

2023-08-07  Simon Marchi  <simon.marchi@efficios.com>

	* configure.ac: Add AC_SUBST(PKG_CONFIG_PATH).
	* configure: Re-generate.
	* Makefile.tpl (HOST_EXPORTS): Pass PKG_CONFIG_PATH.
	(PKG_CONFIG_PATH): New.
	* Makefile.in: Re-generate.

2023-08-07  Luis Machado  <luis.machado@arm.com>

	* configure.ac: Disable year2038 by default on 32-bit hosts.
	* configure: Regenerate.

2023-08-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

	* Makefile.def: Add gprofng module.
	* configure.ac: Add --enable-gprofng option.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2023-08-07  Martin Liska  <mliska@suse.cz>

	* configure.ac: Add --enable-default-compressed-debug-sections-algorithm.
	* configure: Regenerate.

2023-08-07  Fangrui Song  <maskray@google.com>

	* configure: Regenerate.
	* configure.ac: Add --with-zstd.

2023-08-07  Arsen Arsenović  <arsen@aarsen.me>

	* configure: Regenerate.
	* configure.ac: Recover tilegx/tilepro targets.

2023-08-07  H.J. Lu  <hjl.tools@gmail.com>

	* configure: Regenerated.
	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Check if AR works with
	--plugin and rc before enabling --plugin.

2023-08-07  H.J. Lu  <hjl.tools@gmail.com>

	* Makefile.tpl (AR): Add @AR_PLUGIN_OPTION@
	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
	* configure.ac: Include config/gcc-plugin.m4.
	AC_SUBST AR_PLUGIN_OPTION and RANLIB_PLUGIN_OPTION.
	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Pass --plugin to AR and
	RANLIB if possible.
	* Makefile.in: Regenerated.
	* configure: Likewise.

2023-08-07  Arsen Arsenović  <arsen@aarsen.me>

	* Makefile.tpl: Substitute @GDCFLAGS@ instead of using
	$(CFLAGS).

2023-08-07  David Faust  <david.faust@oracle.com>

	* MAINTAINERS: Add the BPF port to my reviewer listing.

2023-08-02  Jan Beulich  <jbeulich@suse.com>

	* MAINTAINERS: Correct my email address.

2023-08-02  Hu, Lin1  <lin1.hu@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2023-08-01  Richard Ball  <richard.ball@arm.com>

	* MAINTAINERS: Add myself.

2023-07-31  Andreas Schwab  <schwab@suse.de>

	* configure.ac (GDCFLAGS): Set default from ${CFLAGS}.
	* configure: Regenerate.
	* Makefile.in (GDCFLAGS): Substitute @GDCFLAGS@.

2023-07-31  xuli  <xuli1@eswincomputing.com>

	* MAINTAINERS: Add myself.

2023-07-25  Thomas Schwinge  <thomas@codesourcery.com>

	* MAINTAINERS: List myself as "nvptx port" maintainer.

2023-07-21  Cupertino Miranda  <cupertino.miranda@oracle.com>

	* MAINTAINERS: Add myself to write after approval

2023-07-18  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>

	* MAINTAINERS: Add myself as a reviewer for the riscv port.

2023-07-18  Robin Dapp  <rdapp@ventanamicro.com>

	* MAINTAINERS: Add myself as a reviewer for the riscv port.

2023-07-12  Hao Liu  <hliu@os.amperecomputing.com>

	* MAINTAINERS: Add Hao Liu to write after approval

2023-07-12  Ken Matsui  <kmatsui@gcc.gnu.org>

	* MAINTAINERS: Add Ken Matsui to write after approval

2023-07-07  Eugene Rozenfeld  <erozen@microsoft.com>

	* Makefile.in: Collect both kernel and user events for autofdo
	* Makefile.tpl: Collect both kernel and user events for autofdo

2023-06-30  Rishi Raj  <rishiraj45035@gmail.com>

	* MAINTAINERS: Added myself to Write After Approval and DCO

2023-06-29  Eugene Rozenfeld  <erozen@microsoft.com>

	* Makefile.in: Remove -gtoggle for STAGEautoprofile
	* Makefile.tpl: Remove -gtoggle for STAGEautoprofile

2023-06-25  Lehua Ding  <lehua.ding@rivai.ai>

	* MAINTAINERS: Add Lehua Ding to write after approval

2023-06-25  Iain Sandoe  <iain@sandoe.co.uk>

	* Makefile.def: Pass the enable-host-pie value to GCC configure.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Adjust the logic for shared and PIE host flags to
	ensure that PIE is passed for hosts that require it.

2023-06-16  YunQiang Su  <yunqiang.su@cipunited.com>

	* MAINTAINERS (Write After Approval): move Matthew Fortune
	to Write After Approval.

2023-06-15  Marek Polacek  <polacek@redhat.com>

	* configure.ac (--enable-host-pie): New check.  Set PICFLAG after this
	check.
	* configure: Regenerate.

2023-06-14  Filip Kastl  <filip.kastl@gmail.com>

	* MAINTAINERS: Add myself to write after approval

2023-06-02  YunQiang Su  <yunqiang.su@cipunited.com>

	* MAINTAINERS (CPU Port Maintainers): Add myself as MIPS
	port maintainer.
	(Write After Approval): Remove myself.

2023-05-30  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2023-05-29  Martin Jambor  <mjambor@suse.cz>

	* MAINTAINERS: Replace spaces with tabs.

2023-05-27  Benjamin Priour  <vultkayn@gcc.gnu.org>

	* MAINTAINERS: New entry.

2023-05-18  Eugene Rozenfeld  <erozen@microsoft.com>

	* Makefile.tpl: Disable warnings as errors for STAGEautofeedback
	* Makefile.in: Regenerate

2023-05-17  Eugene Rozenfeld  <erozen@microsoft.com>

	* Makefile.in: Disable warnings as errors for STAGEautofeedback

2023-05-11  Robin Dapp  <rdapp@ventanamicro.com>

	* MAINTAINERS: Sort.

2023-05-11  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>

	* MAINTAINERS: Add myself.

2023-05-10  Pan Li  <pan2.li@intel.com>

	* MAINTAINERS: Add myself.

2023-04-28  Eugene Rozenfeld  <erozen@microsoft.com>

	* Makefile.in: Define PROFILE_MERGER
	* Makefile.tpl: Define PROFILE_MERGER

2023-04-27  Robin Dapp  <rdapp@ventanamicro.com>

	* MAINTAINERS: Change my email address.

2023-04-26  Patrick O'Neill  <patrick@rivosinc.com>

	* MAINTAINERS: Add myself.

2023-04-26  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: fix sorting

2023-04-25  Victor Do Nascimento  <victor.donascimento@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2023-04-24  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Fix sorting.

2023-04-21  Peter Foley  <pefoley2@pefoley.com>

	* configure: Regenerate.
	* configure.ac: Only create serdep.tmp if needed

2023-04-21  “ajit.kumar.agarwal@ibm.com”  <aagarwa@ltcden2-lp1.aus.stglabs.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2023-04-21  Vineet Gupta  <vineetg@rivosinc.com>

	* MAINTAINERS (Write After Approval): Add myself.
	Ref: <680c7bbe-5d6e-07cd-8468-247afc65e1dd@gmail.com>

2023-04-06  Indu Bhagat  <indu.bhagat@oracle.com>

	* MAINTAINERS: Add myself.

2023-03-22  Tobias Burnus  <tobias@codesourcery.com>

	* MAINTAINERS: Add myself as OpenMP and libgomp maintainer.

2023-03-10  Arsen Arsenović  <arsen@aarsen.me>

	* MAINTAINERS (Write After Approval): Add myself.

2023-02-16  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: I'm stepping down from my positions.

2023-01-10  Philip Herron  <herron.philip@googlemail.com>

	* MAINTAINERS: Add Philip Herron as Rust front-end maintainer

2023-01-06  Clément Chigot  <chigot@adacore.com>

	* configure.ac: Skip GMP and MPFR when --disable-gdb is
	provided.
	* configure: Regenerate.

2023-01-04  Gaius Mulley  <gaiusmod2@gmail.com>

	* MAINTAINERS: Add Gaius Mulley as Modula-2 front-end maintainer.

2022-12-31  Iain Sandoe  <iain@sandoe.co.uk>

	* Makefile.def: Do not build shared libffi.
	* Makefile.in: Regenerate.

2022-12-21  Andrew Pinski  <apinski@marvell.com>

	* Makefile.def: Add configure-gdb dependencies
	on all-gmp and all-mpfr.
	* configure.ac: Split out MPC checking from MPFR.
	Require GMP and MPFR if the gdb directory exist.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2022-12-14  Gaius Mulley  <gaiusmod2@gmail.com>

	* configure.ac (target_libraries): Add target-libgm2.
	Add NCN_STRICT_CHECK_TARGET_TOOLS entry for gm2.
	Add GCC_TARGET_TOOL entry for gm2.
	(compare_exclusions): Add gcc/m2/gm2-compiler/M2Version,
	gcc/m2/gm2-compiler-boot/SYSTEM and gcc/m2/gm2version.
	* Makefile.def (target_modules): Add libgm2.
	(flags_to_pass): Add GM2_FOR_TARGET, GM2FLAGS_FOR_TARGET.
	(dependencies): Add all-target-libgm2 and on=all-target-libatomic.
	(languages): Add entry for language=m2 with gcc-check-target=check-m2
	and lib-check-target=check-target-libgm2.
	* Makefile.tpl (BUILD_EXPORTS): Add definition for GM2 and GM2FLAGS.
	(HOST_EXPORTS): Add definition for GM2.
	(BASE_TARGET_EXPORTS): Add definition for GM2.
	(GM2_FOR_BUILD): Defined.
	(GM2FLAGS): Defined.
	(GM2_FOR_TARGET): Defined.
	(GM2FLAGS_FOR_TARGET): Defined.
	(EXTRA_HOST_FLAGS): Defined.
	(POSTSTAGE1_FLAGS_TO_PASS): Add GM2 and GM2_FOR_BUILD.
	(EXTRA_TARGET_FLAGS): Add GM2 and GM2FLAGS.
	(EXTRA_GCC_FLAGS): Add GM2_FOR_TARGET.
	* configure: Rebuilt.
	* Makefile.in: Rebuilt.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* Makefile.def: Add Rust language.
	* Makefile.in: Regenerate via autogen.

2022-12-09  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Fix spacing.

2022-12-07  Arthur Cohen  <arthur.cohen@embecosm.com>

	* MAINTAINERS: Add Arthur Cohen as Rust front-end maintainer.

2022-12-07  Iain Sandoe  <iain@sandoe.co.uk>

	* Makefile.def: Pass host_libs_picflag to host dependent library
	configures.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (host_libs_picflag): New configure variable set to
	'--with-pic' when building 'host_shared'.

2022-11-25  Weimin Pan  <weimin.pan@oracle.com>

	* Makefile.def: Add libsframe as new module with its dependencies.
	* Makefile.in: Regenerated.
	* configure.ac: Add libsframe to host_libs.
	* configure: Regenerated.

2022-11-23  Marek Polacek  <polacek@redhat.com>

	Revert:
	2022-11-23  Marek Polacek  <polacek@redhat.com>

	* Makefile.def: Pass $(PICFLAG) to AM_CFLAGS for gmp, mpfr, mpc, and
	isl.
	* Makefile.in: Regenerate.
	* Makefile.tpl: Set PICFLAG.
	* configure.ac (--enable-host-pie): New check.  Set PICFLAG after this
	check.
	* configure: Regenerate.

2022-11-23  Marek Polacek  <polacek@redhat.com>

	* Makefile.def: Pass $(PICFLAG) to AM_CFLAGS for gmp, mpfr, mpc, and
	isl.
	* Makefile.in: Regenerate.
	* Makefile.tpl: Set PICFLAG.
	* configure.ac (--enable-host-pie): New check.  Set PICFLAG after this
	check.
	* configure: Regenerate.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/Makefile: New file.
	* doc/_static/custom.css: New file.
	* doc/baseconf.py: New file.
	* doc/bsd.rst: New file.
	* doc/contrib.rst: New file.
	* doc/contribute.rst: New file.
	* doc/cppdiropts.rst: New file.
	* doc/cppenv.rst: New file.
	* doc/cppopts.rst: New file.
	* doc/cppwarnopts.rst: New file.
	* doc/favicon.ico: New file.
	* doc/funding.rst: New file.
	* doc/gcc_sphinx.py: New file.
	* doc/gnu.rst: New file.
	* doc/gnu_free_documentation_license.rst: New file.
	* doc/gpl-3.0.rst: New file.
	* doc/indices-and-tables.rst: New file.
	* doc/lgpl-2.1.rst: New file.
	* doc/logo.pdf: New file.
	* doc/logo.svg: New file.
	* doc/md.rst: New file.
	* doc/requirements.txt: New file.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/baseconf.py: Port to GCC sources.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-14  Martin Liska  <mliska@suse.cz>

	* configure: Regenerate.
	* configure.ac: Support Sphinx based documentation.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/baseconf.py: Simplify BUGURL and VERSION_PACKAGE,
	provide a default.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/bsd.rst:
	Add trailing newline.
	* doc/contrib.rst:
	Add trailing newline.
	* doc/contribute.rst:
	Add trailing newline.
	* doc/cppdiropts.rst:
	Add trailing newline.
	* doc/cppenv.rst:
	Add trailing newline.
	* doc/cppopts.rst:
	Add trailing newline.
	* doc/cppwarnopts.rst:
	Add trailing newline.
	* doc/funding.rst:
	Add trailing newline.
	* doc/gnu.rst:
	Add trailing newline.
	* doc/gnu_free_documentation_license.rst:
	Add trailing newline.
	* doc/gpl-3.0.rst:
	Add trailing newline.
	* doc/indices-and-tables.rst:
	Add trailing newline.
	* doc/lgpl-2.1.rst:
	Add trailing newline.
	* doc/md.rst:
	Add trailing newline.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-09  Martin Liska  <mliska@suse.cz>

	* configure.ac: Use new install URL.
	* configure: Regenerate.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-10  Arsen Arsenović  <arsen@aarsen.me>

	* doc/baseconf.py: Inject dirname(__file__)/'modules' to path
	instead of just ``.''.
	* doc/gcc_sphinx.py: Moved to...
	* doc/modules/gcc_sphinx.py: ...here.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-10  Martin Liska  <mliska@suse.cz>

	* doc/baseconf.py: Modernize by using pathlib.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-11  Martin Liska  <mliska@suse.cz>

	* doc/Makefile: Disable -j auto.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-11  Martin Liska  <mliska@suse.cz>

	* doc/Makefile: Update comment.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-11  Martin Liska  <mliska@suse.cz>

	* doc/indices-and-tables.rst: Rename Indexes to Indices.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-13  Martin Liska  <mliska@suse.cz>

	PR web/107643
	* doc/baseconf.py: Set include_todo tag if INCLUDE_TODO env
	is set.
	* doc/indices-and-tables.rst: Use include_todo tag.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-13  Philipp Tomsich  <philipp.tomsich@vrull.eu>

	* doc/contrib.rst: Update Jeff Law's email address.

2022-11-13  Philipp Tomsich  <philipp.tomsich@vrull.eu>

	* doc/contrib.rst: Update Jeff Law's email address.

2022-11-13  Martin Liska  <mliska@suse.cz>

	PR web/107643
	* doc/baseconf.py: Set include_todo tag if INCLUDE_TODO env
	is set.
	* doc/indices-and-tables.rst: Use include_todo tag.

2022-11-11  Martin Liska  <mliska@suse.cz>

	* doc/indices-and-tables.rst: Rename Indexes to Indices.

2022-11-11  Martin Liska  <mliska@suse.cz>

	* doc/Makefile: Update comment.

2022-11-11  Martin Liska  <mliska@suse.cz>

	* doc/Makefile: Disable -j auto.

2022-11-10  Martin Liska  <mliska@suse.cz>

	* doc/baseconf.py: Modernize by using pathlib.

2022-11-10  Arsen Arsenović  <arsen@aarsen.me>

	* doc/baseconf.py: Inject dirname(__file__)/'modules' to path
	instead of just ``.''.
	* doc/gcc_sphinx.py: Moved to...
	* doc/modules/gcc_sphinx.py: ...here.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* configure.ac: Use new install URL.
	* configure: Regenerate.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/bsd.rst:
	Add trailing newline.
	* doc/contrib.rst:
	Add trailing newline.
	* doc/contribute.rst:
	Add trailing newline.
	* doc/cppdiropts.rst:
	Add trailing newline.
	* doc/cppenv.rst:
	Add trailing newline.
	* doc/cppopts.rst:
	Add trailing newline.
	* doc/cppwarnopts.rst:
	Add trailing newline.
	* doc/funding.rst:
	Add trailing newline.
	* doc/gnu.rst:
	Add trailing newline.
	* doc/gnu_free_documentation_license.rst:
	Add trailing newline.
	* doc/gpl-3.0.rst:
	Add trailing newline.
	* doc/indices-and-tables.rst:
	Add trailing newline.
	* doc/lgpl-2.1.rst:
	Add trailing newline.
	* doc/md.rst:
	Add trailing newline.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/baseconf.py: Simplify BUGURL and VERSION_PACKAGE,
	provide a default.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* configure: Regenerate.
	* configure.ac: Support Sphinx based documentation.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/baseconf.py: Port to GCC sources.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/Makefile: New file.
	* doc/_static/custom.css: New file.
	* doc/baseconf.py: New file.
	* doc/bsd.rst: New file.
	* doc/contrib.rst: New file.
	* doc/contribute.rst: New file.
	* doc/cppdiropts.rst: New file.
	* doc/cppenv.rst: New file.
	* doc/cppopts.rst: New file.
	* doc/cppwarnopts.rst: New file.
	* doc/favicon.ico: New file.
	* doc/funding.rst: New file.
	* doc/gcc_sphinx.py: New file.
	* doc/gnu.rst: New file.
	* doc/gnu_free_documentation_license.rst: New file.
	* doc/gpl-3.0.rst: New file.
	* doc/indices-and-tables.rst: New file.
	* doc/lgpl-2.1.rst: New file.
	* doc/logo.pdf: New file.
	* doc/logo.svg: New file.
	* doc/md.rst: New file.
	* doc/requirements.txt: New file.

2022-11-04  Thomas Schwinge  <thomas@codesourcery.com>

	* Makefile.def: Remove module 'liboffloadmic'.
	* Makefile.in: Regenerate.
	* configure.ac: Remove 'liboffloadmic' handling.
	* configure: Regenerate.

2022-10-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* MAINTAINERS: Update email address.

2022-10-21  Дилян Палаузов  <dilyan.palauzov@aegee.org>

	* configure.ac: Don't configure readline if --with-system-readline is
	used.
	* configure: Re-generate.

2022-10-12  Cui,Lili  <lili.cui@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2022-10-11  Olivier Hainque  <hainque@adacore.com>

	* libtool.m4 (*vxworks*): When enable_shared, set dynamic_linker
	and friends for rtp !large. Assume the linker has the required
	abilities and set lt_cv_deplibs_check_method.

2022-09-30  Olivier Hainque  <hainque@adacore.com>

	* configure.ac (*vxworks*): If enable_shared is not
	set, set to "no" and add --disable-shared to target and
	host_configargs.
	* configure: Regenerate.

2022-09-26  Jeff Law  <jlaw@ventanamicro.com>

	* MAINTAINERS: Update my email address and DCO entry.

2022-09-23  Paul-Antoine Arras  <pa@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2022-09-15  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	* MAINTAINERS (Write After Approval): Add myself.

2022-09-07  Jeff Law  <jeffreyalaw@gmail.com>

	* MAINTAINERS: Update my email address.

2022-09-07  Tom de Vries  <tdevries@suse.de>

	* configure.ac: Set extra_host_libiberty_configure_flags and
	extra_host_zlib_configure_flags in separate case statements.
	* configure: Regenerate.

2022-09-06  Xianmiao Qu  <cooper.qu@linux.alibaba.com>

	* MAINTAINERS: Update c-sky port maintainers' emails.

2022-08-31  Martin Liska  <mliska@suse.cz>

	* configure: Regenerate.
	* configure.ac: Delete hpux9 and hpux10.

2022-08-18  Sergei Trofimovich  <siarheit@google.com>

	* Makefile.def: Drop libelf module and gcc-configure dependency
	on it.
	* Makefile.in: Regenerate with 'autogen Makefile.def'.
	* Makefile.tpl (HOST_EXPORTS): Drop unused LIBELFLIBS and
	LIBELFINC.
	* configure: Regenrate.
	* configure.ac (host_libs): Drop unused libelf.

2022-08-18  Sergei Trofimovich  <siarheit@google.com>

	* Makefile.in: Regenerate.

2022-08-04  Eugene Rozenfeld  <erozen@microsoft.com>

	* MAINTAINERS: Add myself as AutoFDO maintainer.

2022-08-01  Roger Sayle  <roger@nextmovesoftware.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* configure: Regenerate.

2022-07-31  Roger Sayle  <roger@nextmovesoftware.com>

	PR bootstrap/106472
	* Makefile.def (dependencies): Make configure-target-libgo depend
	upon all-target-libbacktrace.

2022-07-27  David Faust  <david.faust@oracle.com>

	* MAINTAINERS: Add myself as reviewer for CTF and BTF.

2022-07-27  Richard Biener  <rguenther@suse.de>

	* MAINTAINERS (Roger Sayle): Update e-mail address.

2022-07-21  Sam Feifer  <sfeifer@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2022-07-21  Marc Poulhiès  <poulhies@adacore.com>

	* MAINTAINERS: Add myself as Ada front end co-maintainer.

2022-07-19  Alexander Monakov  <amonakov@ispras.ru>

	* .gitignore: Do not ignore config.h.

2022-07-15  Andrew Carlotti  <andrew.carlotti@arm.com>

	* MAINTAINERS: Add myself to Write After Approval.

2022-07-04  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: fix sorting of names

2022-07-03  Immad Mir  <mirimmad17@gmail.com>

	* MAINTAINERS: add myself.

2022-07-03  Immad Mir  <mirimmad17@gmail.com>

	* MAINTAINERS: Add myself to write after approval and DCO.

2022-07-02  Tim Lange  <mail@tim-lange.me>

	* MAINTAINERS: Add myself.

2022-07-01  Haochen Jiang  <haochen.jiang@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2022-06-30  Cui,Lili  <lili.cui@intel.com>

	Revert:
	2022-06-30  Cui,Lili  <lili.cui@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2022-06-30  Cui,Lili  <lili.cui@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2022-06-28  Alexandre Oliva  <oliva@adacore.com>

	* Makefile.tpl (HOST_EXPORTS): Add TFLAGS to GCC_FOR_TARGET.
	(EXTRA_GCC_FLAGS): Likewise.
	* Makefile.in: Rebuilt.

2022-06-28  konglin1  <lingling.kong@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2022-06-27  Tom de Vries  <tdevries@suse.de>

	* configure.ac: Build libiberty pic variant for gdbserver.
	* configure: Regenerate.

2022-06-26  Iain Sandoe  <iain@sandoe.co.uk>

	* configure: Regenerate.
	* configure.ac: Correct use of $host.

2022-06-25  Jeff Law  <jeffreyalaw@gmail.com>

	* MAINTAINERS: Remove tilegx and tilepro entries.
	* configure.ac: Remove tilegx and tilepro stanzas.
	* configure: Rebuilt.

2022-05-28  Bruce Korb  <bkorb@gnu.org>

	* .gitignore: Ignore vim swap files

2022-05-13  Surya Kumari Jangala  <jskumari@linux.ibm.com>

	* MAINTAINERS: Add myself to write after approval.

2022-05-11  Kewen Lin  <linkw@linux.ibm.com>

	* MAINTAINERS: Remove myself from DCO section.

2022-05-09  Xi Ruoyao  <xry111@xry111.site>

	* MAINTAINERS: Update my email address.

2022-05-09  Clément Chigot  <chigot@adacore.com>

	* MAINTAINERS: Update my email address.

2022-05-05  Kewen Lin  <linkw@linux.ibm.com>

	* MAINTAINERS: Add myself as PowerPC port co-maintainer and to DCO
	section.

2022-04-19  Richard Henderson  <rth@gcc.gnu.org>

	* MAINTAINERS: Update my email address.

2022-04-01  Qian Jianhua  <qianjh@fujitsu.com>

	* MAINTAINERS: Update my email address.

2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>

	* MAINTAINERS: (CPU Port Maintainers): Add myself and
	Lulu as LoongArch port maintainer.

2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
	    Lulu Cheng  <chenglulu@loongson.cn>

	* configure.ac: Add LoongArch tuples.
	* configure: Regenerate.

2022-03-28  Tom Tromey  <tromey@adacore.com>

	* configure.ac: Remove --with-mpfr-dir and --with-gmp-dir.
	* configure: Rebuild.

2022-03-24  Bill Schmidt  <bill.schmidt@gmail.com>

	* MAINTAINERS: Change my information.

2022-03-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* MAINTAINERS: Add myself to DCO section.

2022-03-14  Jonathan Wakely  <jwakely@redhat.com>

	* configure.ac: Fix incorrect option in comment.
	* configure: Regenerate.

2022-03-09  Hans-Peter Nilsson  <hp@axis.com>

	* Makefile.def (dependencies): Make configure-sim depend on
	all-readline.
	* Makefile.in: Regenerate.

2022-02-22  Christophe Lyon  <christophe.lyon@foss.st.com>

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

2022-02-08  Ulrich Weigand  <ulrich.weigand@de.ibm.com>

	* MAINTAINERS: Remove Hartmut Penner as s390 maintainer.

2022-01-31  Ed Smith-Rowland  <esmithrowland@gmail.com>

	* MAINTAINERS: Update my email and add myself to the DCO list.

2022-01-25  Thomas Schwinge  <thomas@codesourcery.com>

	Revert:
	2021-09-16  Andrew Pinski  <apinski@marvell.com>

	PR bootstrap/67102
	* Makefile.def: Have configure-target-libffi depend on
	all-target-libstdc++-v3.
	* Makefile.in: Regenerate.

2022-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR other/104181
	* build.log: Remove.

2022-01-20  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Adjust email address based on IRC request.

2022-01-18  Xionghu Luo  <luoxhu@linux.ibm.com>

	* MAINTAINERS: Update my email address.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Rename .c names to .cc.

2022-01-13  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.am: Remove.

2022-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* Makefile.am: New file.

2022-01-11  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Sort 2 names.

2022-01-10  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Fix obvious issues with sorting.

2022-01-07  liuhongt  <hongtao.liu@intel.com>

	* build.log: New file.

2022-01-05  Nathan Sidwell  <nathan@acm.org>

	* MAINTAINERS: Add DCO entry.  Sort that list.

2022-01-04  Gaius Mulley  <gaiusmod2@gmail.com>

	* MAINTAINERS: Change of email address in both DCO and
	Write After Approval list.

2021-12-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* configure: Regenerate.

2021-12-21  Martin Liska  <mliska@suse.cz>

	* config.sub: Change mode back to 755.

2021-12-17  Martin Liska  <mliska@suse.cz>

	* config.sub: Sync from master.

2021-12-17  Martin Liska  <mliska@suse.cz>

	Revert:
	2021-12-16  Matthias Seidel  <mseidel@apache.org>

	* config.sub: Fix typo.

2021-12-16  Matthias Seidel  <mseidel@apache.org>

	* config.sub: Fix typo.

2021-12-16  H.J. Lu  <hjl.tools@gmail.com>

	Revert:
	2021-12-15  H.J. Lu  <hjl.tools@gmail.com>

	* Makefile.tpl (AR): Add @AR_PLUGIN_OPTION@
	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
	* configure.ac: Include config/gcc-plugin.m4.
	AC_SUBST AR_PLUGIN_OPTION and RANLIB_PLUGIN_OPTION.
	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Pass --plugin to AR and
	RANLIB if possible.
	* Makefile.in: Regenerated.
	* configure: Likewise.

2021-12-15  H.J. Lu  <hjl.tools@gmail.com>

	* Makefile.tpl (BUILD_CFLAGS): New.
	(CFLAGS): Append $(BUILD_CFLAGS).
	(CXXFLAGS): Likewise.
	(PGO_BUILD_GEN_FLAGS_TO_PASS): New.
	(PGO_BUILD_TRAINING_CFLAGS): Likewise.
	(PGO_BUILD_TRAINING_CXXFLAGS): Likewise.
	(PGO_BUILD_TRAINING_FLAGS_TO_PASS): Likewise.
	(PGO_BUILD_TRAINING_MFLAGS): Likewise.
	(PGO_BUILD_USE_FLAGS_TO_PASS): Likewise.
	(PGO-TRAINING-TARGETS): Likewise.
	(PGO_BUILD_TRAINING): Likewise.
	(all): Add '+' to the command line for recursive make.  Support
	the PGO build.
	* configure.ac: Add --enable-pgo-build[=lto].
	AC_SUBST PGO_BUILD_GEN_CFLAGS, PGO_BUILD_USE_CFLAGS and
	PGO_BUILD_LTO_CFLAGS.  Enable the PGO build in Makefile.
	* Makefile.in: Regenerated.
	* configure: Likewise.

2021-12-15  H.J. Lu  <hjl.tools@gmail.com>

	* Makefile.tpl (AR): Add @AR_PLUGIN_OPTION@
	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
	* configure.ac: Include config/gcc-plugin.m4.
	AC_SUBST AR_PLUGIN_OPTION and RANLIB_PLUGIN_OPTION.
	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Pass --plugin to AR and
	RANLIB if possible.
	* Makefile.in: Regenerated.
	* configure: Likewise.

2021-12-14  Marc Poulhiès  <poulhies@adacore.com>

	* MAINTAINERS: Add myself to write after approval.

2021-12-06  Navid Rahimi  <navidrahimi@microsoft.com>

	* MAINTAINERS: Adding myself.

2021-12-02  Pekka Seppänen  <pexu@gcc.mail.kapsi.fi>

	* configure: Regenerate.
	* configure.ac: For CPP_FOR_BUILD use $(CC_FOR_BUILD) -E instead of
	$(CPP).

2021-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Makefile.def: Add bootstrap to libbacktrace, libphobos, zlib, and
	libatomic.
	* Makefile.in: Regenerate.
	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Fix command for GDC.
	(STAGE1_CONFIGURE_FLAGS): Add --with-libphobos-druntime-only if
	target-libphobos-bootstrap.
	(STAGE2_CONFIGURE_FLAGS): Likewise.
	* configure: Regenerate.
	* configure.ac: Add support for bootstrapping D front-end.

2021-11-16  Martin Uecker  <uecker@gcc.gnu.org>

	* MAINTAINERS: Add myself to DCO section and update email address.

2021-11-16  Iain Sandoe  <iain@sandoe.co.uk>

	* configure: Regenerate.
	* configure.ac: Ensure that PIC (shared) defaults are set
	correctly for Darwin.

2021-11-16  Jim Wilson  <jim.wilson.gcc@gmail.com>

	* MAINTAINERS: Update my address.

2021-11-12  Alan Modra  <amodra@gmail.com>

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

2021-11-03  Maciej W. Rozycki  <macro@embecosm.com>

	* MAINTAINERS: Clarify the policy WRT the Write After Approval
	list.

2021-11-02  Andrew Burgess  <andrew.burgess@embecosm.com>

	* MAINTAINERS (Reviewers, arc): Remove my entry.
	(Write After Approval): Add an entry for myself.

2021-10-28  Richard Purdie  <richard.purdie@linuxfoundation.org>

	* Makefile.tpl: Add CPP_FOR_BUILD and CPPFLAGS_FOR_BUILD support
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Add CPP_FOR_BUILD and CPPFLAGS_FOR_BUILD support

2021-10-26  Jeff Law  <jeffreyalaw@gmail.com>

	* MAINTAINERS: Fix up Maciej's entries.

2021-10-26  Maciej W. Rozycki  <macro@embecosm.com>

	* MAINTAINERS (CPU Port Maintainers): Add myself as a VAX port
	maintainer.

2021-10-22  Eric Gallager  <egallager@gcc.gnu.org>

	PR other/102663
	* Makefile.def: Handle install-dvi target.
	* Makefile.tpl: Likewise.
	* Makefile.in: Regenerate.

2021-10-19  Clément Chigot  <clement.chigot@atos.net>

	* MAINTAINERS: Add myself for write after approval.

2021-10-12  Eric Gallager  <egallager@gcc.gnu.org>

	* Makefile.def: Mark libcody, libdecnumber,
	c++tools, libgcc, and libobjc as missing TAGS
	targets.
	* Makefile.in: Regenerate.

2021-10-07  Siddhesh Poyarekar  <siddhesh@gotplt.org>

	* MAINTAINERS: Add myself to DCO section and update email
	address.

2021-09-29  Jonathan Wakely  <jwakely@redhat.com>

	* MAINTAINERS: Add myself to DCO section.

2021-09-28  Andrew Burgess  <andrew.burgess@embecosm.com>

	* configure: Regenerate.
	* configure.ac (skipdirs): Add the contents of target_configdirs if
	we are not building gcc.

2021-09-24  Andrew Burgess  <andrew.burgess@embecosm.com>

	* Makefile.def: Back-port commits ba4d88ad892f and
	755ba58ebef0 from binutils-gdb repository.
	* Makefile.in: Regenerated.

2021-09-20  Harald Anlauf  <anlauf@gmx.de>

	* MAINTAINERS (Reviewers): Add myself as Fortran reviewer.

2021-09-17  Iain Sandoe  <iain@sandoe.co.uk>

	* Makefile.def: Add a jit check target for the jit
	language.
	* Makefile.in: Regenerate.

2021-09-16  Andrew Pinski  <apinski@marvell.com>

	PR bootstrap/67102
	* Makefile.def: Have configure-target-libffi depend on
	all-target-libstdc++-v3.
	* Makefile.in: Regenerate.

2021-09-10  Petter Tomner  <tomner@kth.se>

	* MAINTAINERS: Me added to DCO and write after approval

2021-09-01  YunQiang Su  <syq@debian.org>

	* MAINTAINERS: Add myself for write after approval.

2021-08-31  Andrew Burgess  <andrew.burgess@embecosm.com>

	* Makefile.def: Add all-gdb dependency on all-libbacktrace.
	* Makefile.in: Regenerate.

2021-08-21  Dragan Mladjenovic  <Dragan.Mladjenovic@syrmia.com>

	* MAINTAINERS: Add myself for write after approval.

2021-08-18  Iain Sandoe  <iain@sandoe.co.uk>

	* Makefile.in: Regenerate.
	* Makefile.tpl: Make the state of the configured host
	shared flag available to makefile fragements.

2021-08-09  Hongyu Wang  <hongyu.wang@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2021-07-20  Richard Earnshaw  <rearnsha@arm.com>

	* .dir-locals.el (bug-reference-url-format): Use https.

2021-07-20  Richard Earnshaw  <rearnsha@arm.com>

	* .dir-locals.el (c-mode): Change fill-column to 79.

2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* MAINTAINERS: Add myself to DCO section.

2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>

	* configure: Regenerate.
	* configure.ac: Adjust cases for which it is necessary to
	include the Darwin host config fragment.

2021-07-06  Gaius Mulley  <gaius.mulley@southwales.ac.uk>

	* MAINTAINERS: Add myself for write after approval and DCO.

2021-07-05  Iain Sandoe  <iain@sandoe.co.uk>

	* Makefile.def: Add dsymutil defs.
	* Makefile.in: Regenerated.
	* Makefile.tpl: Add dsymutil to flags.
	* configure: Regenerated.
	* configure.ac: Add dsymutil to target and build recipes.

2021-07-01  Ankur Saini  <arsenic@sourceware.org>

	* MAINTAINERS: Add myself for write after approval.

2021-06-30  Xi Ruoyao  <xry111@mengyan1223.wang>

	* MAINTAINERS (Write After Approval): Add myself.

2021-06-25  Matthias Kretz  <m.kretz@gsi.de>

	* MAINTAINERS: Add myself for write after approval and DCO

2021-06-24  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>

	* .gitignore: Add entry for cscope.out.

2021-06-22  liuhongt  <hongtao.liu@intel.com>

	* MAINTAINERS: Remove my Write After Approval entry.

2021-06-21  liuhongt  <hongtao.liu@intel.com>

	* MAINTAINERS: Add myself as maintainer of the i386 vector
	extensions.

2021-06-18  Antoni Boucher  <bouanto@zoho.com>

	* MAINTAINERS (Write After Approval): Add myself.

2021-06-17  Aldy Hernandez  <aldyh@redhat.com>

	* MAINTAINERS (Various Maintainers): Add Andrew and myself
	as *vrp and ranger maintainers.

2021-06-05  Jeff Law  <jeffreyalaw@gmail.com>

	* MAINTAINERS: Adjust my entry in the DCO section so that it does
	not trigger testsuite failures.

2021-06-05  Jeff Law  <jeffreyalaw@gmail.com>

	* MAINTAINERS: Add myself to DCO section with both email addresses.

2021-06-03  Jason Merrill  <jason@redhat.com>

	* MAINTAINERS: Add DCO version number.

2021-06-02  Jason Merrill  <jason@redhat.com>

	* MAINTAINERS: Add DCO section.

2021-05-31  Indu Bhagat  <indu.bhagat@oracle.com>

	* MAINTAINERS (Write After Approval): Add myself.

2021-05-29  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Add gnulib to configdirs for sim.
	* configure: Regenerate.

2021-05-18  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.def: Add configure-sim dependency on all-gnulib.
	* Makefile.in: Regenerated.

2021-05-17  Serge Belyshev  <belyshev@depni.sinp.msu.ru>

	* MAINTAINERS (Write After Approval): Add myself.

2021-05-12  Marcel Vollweiler  <marcel@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2021-05-11  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Remove entries for removed
	components (HSA, BRIG, libhsail-rt).
	Move Pekka to Write After Approval.

2021-05-11  Martin Liska  <mliska@suse.cz>

	* Makefile.def: Remove libhsail-rt.
	* Makefile.in: Likewise.
	* configure.ac: Likewise.
	* configure: Regenerate.
	* libhsail-rt/ChangeLog: Removed.
	* libhsail-rt/Makefile.am: Removed.
	* libhsail-rt/Makefile.in: Removed.
	* libhsail-rt/README: Removed.
	* libhsail-rt/aclocal.m4: Removed.
	* libhsail-rt/configure: Removed.
	* libhsail-rt/configure.ac: Removed.
	* libhsail-rt/configure.tgt: Removed.
	* libhsail-rt/include/internal/fibers.h: Removed.
	* libhsail-rt/include/internal/phsa-queue-interface.h: Removed.
	* libhsail-rt/include/internal/phsa-rt.h: Removed.
	* libhsail-rt/include/internal/workitems.h: Removed.
	* libhsail-rt/rt/arithmetic.c: Removed.
	* libhsail-rt/rt/atomics.c: Removed.
	* libhsail-rt/rt/bitstring.c: Removed.
	* libhsail-rt/rt/fbarrier.c: Removed.
	* libhsail-rt/rt/fibers.c: Removed.
	* libhsail-rt/rt/fp16.c: Removed.
	* libhsail-rt/rt/misc.c: Removed.
	* libhsail-rt/rt/multimedia.c: Removed.
	* libhsail-rt/rt/queue.c: Removed.
	* libhsail-rt/rt/sat_arithmetic.c: Removed.
	* libhsail-rt/rt/segment.c: Removed.
	* libhsail-rt/rt/workitems.c: Removed.
	* libhsail-rt/target-config.h.in: Removed.

2021-05-04  Nick Clifton  <nickc@redhat.com>

	* configure.ac (AC_PROG_CC): Replace with AC_PROG_CC_C99.
	* configure: Regenerate.

2021-04-28  Jakub Jelinek  <jakub@redhat.com>
	    Tobias Burnus  <tobias@codesourcery.com>

	* configure.ac (--enable-offload-defaulted): New.
	* configure: Regenerate.

2021-04-23  David Faust  <david.faust@oracle.com>

	* MAINTAINERS (Write After Approval): Add myself.

2021-04-11  Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2021-03-26  Dimitar Dimitrov  <dimitar@dinux.eu>

	* MAINTAINERS: Add myself as pru port maintainer.

2021-03-23  David Malcolm  <dmalcolm@redhat.com>

	* MAINTAINERS: Add myself as static analyzer maintainer.

2021-03-18  Jeff Law  <jlaw@tachyum.com>

	* MAINTAINERS: Update primary entry.

2021-03-13  Eugene Rozenfeld  <erozen@microsoft.com>

	* MAINTAINERS (Write After Approval): Add myself.

2021-03-13  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.def: Remove all-sim dependency on configure-gdb.
	* Makefile.in: Regenerated.

2021-03-11  Jeff Law  <law@redhat.com>

	* MAINTAINERS: Update entries for a few ex-ImgTec employees

2021-03-11  Martin Liska  <mliska@suse.cz>

	* Makefile.tpl: The change was done Makefile.in which
	is generated file.

2021-03-08  Jeff Law  <law@redhat.com>

	* MAINTAINERS: Update my email address

2021-02-23  Kito Cheng  <kito.cheng@sifive.com>

	* config.guess: Import latest upstream.
	* config.sub: Import latest upstream.

2021-01-25  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/98739
	* Makefile.in: Enable -fprofile-reproducible=parallel-runs
	for profiledbootstrap.

2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2021-01-22  Maciej W. Rozycki  <macro@orcam.me.uk>

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

2021-01-12  Segher Boessenkool  <segher@kernel.crashing.org>

	* MAINTAINERS: Fix spacing.

2021-01-12  Qian Jianhua  <qianjh@cn.fujitsu.com>

	* MAINTAINERS (Write After Approval): Add myself

2021-01-06  Nick Alcock  <nick.alcock@oracle.com>

	* Makefile.def: Sync with binutils-gdb:
	(dependencies): all-ld depends on all-libctf.
	(host_modules): libctf is no longer no_install.
	No longer no_check.  Checking depends on all-ld.
	* Makefile.in: Regenerated.

2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* libtool.m4: Match gnu* along other GNU systems.
	* libgo/config/libtool.m4: Match gnu* along other GNU systems.
	* libgo/configure: Re-generate.

2021-01-04  Philipp Tomsich  <philipp.tomsich@vrull.eu>

	* MAINTAINERS: Update my email address.

2020-12-17  Marius Hillenbrand  <mhillen@linux.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2020-12-15  Nathan Sidwell  <nathan@acm.org>

	* Makefile.def
	* Makefile.in
	* Makefile.tpl
	* configure
	* configure.ac

2020-12-15  Nathan Sidwell  <nathan@acm.org>

	* Makefile.def: Add libcody.
	* configure.ac: Add libcody.
	* Makefile.in: Regenerated.
	* configure: Regenerated.

2020-12-14  Andrea Corallo  <andrea.corallo@arm.com>

	* .dir-locals.el (c-mode): Set 'fill-column' to 80 columns.

2020-12-05  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/97865
	* libtool.m4: Update handling of Darwin platform link flags
	for Darwin20.

2020-12-02  Simon Marchi  <simon.marchi@polymtl.ca>

	* .gitignore: Sync with binutils-gdb

2020-12-02  Claudiu Zissulescu  <claziss@gmail.com>

	* MAINTAINERS: Add myself as arc port maintainer.

2020-11-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/87788
	* configure.ac: Don't disable D for *-*-darwin*.
	* configure: Regenerate.

2020-11-29  John David Anglin  <danglin@gcc.gnu.org>

	* libtool.m4 (archive_cmds): Add +nodefaultrpath ld option on
	hppa64-*-hpux11*.

2020-11-25  Matthew Malcomson  <matthew.malcomson@arm.com>

	* configure: Regenerate.
	* configure.ac: Add --bootstrap-hwasan option.

2020-11-23  Iain Sandoe  <iain@sandoe.co.uk>

	* config.guess: Import latest upstream.
	* config.sub: Import latest upstream.

2020-11-16  Martin Liska  <mliska@suse.cz>

	* .gitignore: Add cache as clangd uses it now.

2020-11-13  Haochen Gui  <guihaoc@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): add myself

2020-11-09  Pat Bernardi  <bernardi@adacore.com>

	* MAINTAINERS (Write After Approval): Add myself.

2020-11-09  Jonathan Wakely  <jwakely@redhat.com>

	* config-ml.in (multi-do, multi-clean): Add @ to silence recipes.
	Remove FIXME comments.

2020-11-06  Martin Uecker  <muecker@gwdg.de>

	* MAINTAINERS: Update my email address.

2020-11-06  Hongtao Liu  <hongtao.liu@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2020-10-06  Tobias Burnus  <tobias@codesourcery.com>

	PR target/97302
	* configure.ac: Only set with_gmp to /usr/local
	if not building in tree.
	* configure: Regenerate.

2020-09-18  Omar Tahir  <omar.tahir@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2020-08-26  Tobias Burnus  <tobias@codesourcery.com>

	* MAINTAINERS (Various Maintainers): Add myself as OpenACC maintainer.

2020-08-20  Tobias Burnus  <tobias@codesourcery.com>

	PR bootstrap/96612
	* configure.ac: Run AX_CXX_COMPILE_STDCXX also for ${build} compiler,
	if not the same as ${host}.
	* configure: Regenerate.

2020-08-16  Sergei Trofimovich  <slyfox@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2020-08-12  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>

	* MAINTAINERS: Update my email address.

2020-07-30  Joe Ramsay  <joe.ramsay@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2020-07-22  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2020-06-12  Martin Liska  <mliska@suse.cz>

	* .gitignore: Add .clang-tidy.

2020-06-08  Jason Merrill  <jason@redhat.com>

	* configure.ac: Check AX_CXX_COMPILE_STDCXX if not bootstrapping.
	* configure: Regenerate.

2020-06-06  Max Filippov  <jcmvbkbc@gmail.com>

	* MAINTAINERS: Add myself as xtensa port maintainer.

2020-05-28  Nicolas Bértolo  <nicolasbertolo@gmail.com>

	* configure.ac: Don't require --enable-host-shared when building
	for Mingw.
	* configure: Regenerate.

2020-05-18  Jason Merrill  <jason@redhat.com>

	* configure.ac: Update bootstrap dialect to -std=c++11.

2020-05-18  Alex Coplan  <alex.coplan@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2020-04-29  Thomas Schwinge  <thomas@codesourcery.com>

	PR target/92713
	* configure.ac ["${ENABLE_LIBSTDCXX}" = "default" && amdgcn*-*-*]
	(noconfigdirs): Add 'target-libstdc++-v3'.
	* configure: Regenerate.

2020-04-21  Stephen Casner  <casner@acm.org>

	PR 25830
	* configure.ac (noconfigdirs): Exclude gdb & gprof for pdp11.
	* configure: Rebuild.

2020-04-17  Martin Liska  <mliska@suse.cz>
	    Jonathan Yong <10walls@gmail.com>

	PR gcov-profile/94570
	* ltmain.sh: Do not define HAVE_DOS_BASED_FILE_SYSTEM
	for CYGWIN.

2020-04-14  Martin Jambor  <mjambor@suse.cz>

	* MAINTAINERS (Reviewers): Add myself as callgraph (IPA) reviewer.

2020-04-09  Tom Tromey  <tom@tromey.com>

	* configure: Rebuild.
	* Makefile.in: Rebuild.
	* Makefile.def (gdbsupport, gdbserver): New host modules.
	(configure-gdb): Depend on all-gdbsupport.
	(all-gdb): Depend on all-gdbsupport, all-libctf.
	* configure.ac (host_tools): Add gdbserver.
	Conditionally build gdbserver and gdbsupport.

2020-03-09  Tobias Burnus  <tobias@codesourcery.com>

	* configure.ac: Build libgomp by default for amdgcn.
	* configure: Regenerate.

2020-03-05  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2020-02-28  Joel Hutton  <joel.hutton@arm.com>

	* MAINTAINERS (Write After Approval) : Add myself.

2020-02-20  Palmer Dabbelt  <palmer@sifive.com>

	* MAINTAINERS: Change palmer@sifive.com to palmer@dabbelt.com.

2020-02-14  Martin Sebor  <msebor@redhat.com>

	* doc/extend.texi (attribute alias): Mention type requirement.
	(attribute weak): Same.
	(attribute weakref): Correct invalid example.

2020-02-03  Segher Boessenkool  <segher@kernel.crashing.org>

	* doc/md.texi (PowerPC and IBM RS6000): Improve documentation.

2020-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
	    Jakub Jelinek  <jakub@redhat.com>

	* .gitattributes: Add *.md diff=md.

2020-01-14  Georg-Johann Lay  <avr@gjlay.de>

	The mentioned auto-generated file is no more part of the

	GCC sources, it's auto-generated in $(builddir) during build.

	PR target/92055
	* contrib/gcc_update (files_and_dependencies): Remove
	entry for gcc/config/avr/t-multilib.

2020-01-14  Anatoly Sokolov <aesok@dol.ru>

	* MAINTAINERS: Update my email address.

2020-01-13  Joseph Myers  <joseph@codesourcery.com>

	* README.MOVED_TO_GIT: Remove.

2020-01-11  Joseph Myers  <joseph@codesourcery.com>

	* README.MOVED_TO_GIT: New file.

2020-01-02  Dennis Zhang  <dennis.zhang@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2019-12-20  Jerome Lambourg  <lambourg@adacore.com>

	* MAINTAINERS (write_after_approval): Add myself.

2019-12-19  Stam Markianos-Wright  <stam.markianos-wright@arm.com>

	* MAINTAINERS (write_after_approval): Add myself.

2019-12-17  Mihail Ionescu  <mihail.ionescu@arm.com>

	* MAINTAINERS (write_after_approval): Add myself.

2019-12-11  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Factor out common cases for compare_exclusions.
	* configure: Regenerate.

2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config-ml.in (msp430-*-*): Support --disable-no-exceptions configure
	flag.

2019-12-10  Lewis Hyatt  <lhyatt@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2019-11-27  Tobias Burnus  <tobias@codesourcery.com>

	PR middle-end/92463
	* configure.ac: Use MPFR_RNDN instead of GMP's MP_RNDN.
	* configure: Regenerate

2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac: Use https for gcc.gnu.org.
	* configure: Regenerated.

2019-11-19  James Greenhalgh  <james.greenhalgh@arm.com>

	* MAINTAINERS (aarch64 port): Remove my name, move to...
	(Write After Approval): ...Here.

2019-11-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* MAINTAINERS: Change my email address as maintainer.

2019-11-11  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/91828
	* configure.ac: Bump minimum MPFR to 3.1.0, recommended to 3.1.6+.
	* configure: Regenerated.

2019-10-21  Jason Merrill  <jason@redhat.com>

	* .gitattributes: Also check ChangeLog whitespace.

2019-10-21  Andrew Burgess  <andrew.burgess@embecosm.com>

	* contrib/dg-extract-results.sh: Add support for KPASS.
	* contrib/dg-extract-results.py: Likewise.

2019-10-17  Jason Merrill  <jason@redhat.com>

	* .gitattributes: Avoid {} in filename pattern.

2019-10-08  Thomas Schwinge  <thomas@codesourcery.com>

	* MAINTAINERS: Add back Trevor Smigiel; move into Write After
	Approval section.

2019-10-01  Frederik Harwath <frederik@codesourcery.com>

	* MAINTAINERS: Add myself to Write After Approval

2019-09-26  Richard Sandiford  <richard.sandiford@arm.com>

	* MAINTAINERS: Add myself as an aarch64 maintainer.

2019-09-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* MAINTAINERS: Add myself as aarch64 maintainer.

2019-09-23  Carl Love  <cel@us.ibm.com>

	* config/rs6000/vsx.md (xxswapd_v4si, xxswapd_v8hi, xxswapd_v16qi):
	New define_insn.
	(vsx_xxpermdi4_le_<mode> for VSX_W, vsx_xxpermdi8_le_V8HI,
	vsx_xxpermdi16_le_V16QI): Removed define_insn.

2019-09-13  Sam Tebbs  <sam.tebbs@arm.com>

	* MAINTAINERS (Sam Tebbs): Update email address.

2019-09-10  Tobias Burnus  <tobias@codesourcery.com>

	* MAINTAINERS: Update my email address.

2019-09-10  Christophe Lyon  <christophe.lyon@st.com>

	* libtool.m4: Handle uclinuxfdpiceabi.

2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* MAINTAINERS: Add myself as the maintainer of the eBPF port.
	Remove myself from Write After Approval section.

2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* configure.ac: Support for bpf-*-* targets.
	* configure: Regenerate.

2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* config.sub: Import upstream version 2019-06-30.
	* config.guess: Import upstream version 2019-07-24.

2019-09-03  Ulrich Weigand  <uweigand@de.ibm.com>

	* MAINTAINERS: Remove spu port maintainers.

2019-08-28  Martin Liska  <mliska@suse.cz>

	* .gitignore: Add .clangd and compile_commands.json
	to .gitignore.

2019-08-23  Michael Forney  <mforney@mforney.org>

	* Makefile.tpl (HOST_EXPORTS): Add CXX_FOR_BUILD.
	* Makefile.in: Regenerate.

2019-08-19  Tom Tromey  <tom@tromey.com>

	* configure: Rebuild.
	* configure.ac: Add --with-static-standard-libraries.

2019-08-16  Alexandre Oliva <oliva@gnu.org>

	* MAINTAINERS: aoliva from @redhat.com to @gcc.gnu.org.

2019-08-13  Mark Eggleston  <mark.eggleston@codethink.co.uk>

	* MAINTAINERS (Write After Approval): Add myself.

2019-07-08  Kito Cheng  <kito.cheng@sifive.com>

	* MAINTAINERS (Write After Approval): Remove myself, already listed in
	RISC-V port maitainer.

2019-07-08  Kito Cheng  <kito.cheng@sifive.com>

	* MAINTAINERS (Write After Approval): Fix the list sorted by surname.

2019-07-08  Kito Cheng  <kito.cheng@sifive.com>

	* MAINTAINERS (Write After Approval): Add myself.

2019-07-03  Andrea Corallo  <andrea.corallo@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2019-06-25  Martin Liska  <mliska@suse.cz>

	contrib/filter-clang-warnings.py: Transform from
	filter-rtags-warnings.py.

2019-06-15  Tom Tromey  <tom@tromey.com>

	* configure.ac (host_libs): Add gnulib.
	* configure: Rebuild.
	* Makefile.def (host_modules, dependencies): Add gnulib.
	* Makefile.in: Rebuild.

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

	* MAINTAINERS (Write After Approval): Add myself.

2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>

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

2019-06-11  Matthew Beliveau  <mbelivea@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2019-06-11  Nick Clifton  <nickc@redhat.com>

	Import these changes from the binutils/gdb repository:

	2019-05-28  Nick Alcock  <nick.alcock@oracle.com>

	* Makefile.def (dependencies): configure-libctf depends on all-bfd
	and all its deps.
	* Makefile.in: Regenerated.

	2019-05-28  Nick Alcock  <nick.alcock@oracle.com>

	* Makefile.def (host_modules): Add libctf.
	* Makefile.def (dependencies): Likewise.
	libctf depends on zlib, libiberty, and bfd.
	* Makefile.in: Regenerated.
	* configure.ac (host_libs): Add libctf.
	* configure: Regenerated.

2019-05-20  Vladislav Ivanishin  <vlad@ispras.ru>

	* MAINTAINERS (Write After Approval): Add myself.

2019-05-19  Peter Bergner  <bergner@linux.ibm.com>

	* MAINTAINERS: Update my email address.

2019-05-17  Thomas Rodgers  <trodgers@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2019-05-16  Jun Ma  <junma@linux.alibaba.com>

	* MAINTAINERS (Write After Approval): Add myself.

2019-05-07  Jim Wilson  <jimw@sifive.com>

	* MAINTAINERS: Remove myself as IA-64 maintainer.

2019-05-04  Roland Illig  <roland.illig@gmx.de>

	* MAINTAINERS (Write After Approval): Add myself.

2019-05-02  Richard Biener  <rguenther@suse.de>

	PR bootstrap/85574
	* Makefile.tpl (compare target): Also compare extra-compare
	files.
	* Makefile.in: Regenerate.

2019-04-22  Roman Zhuykov  <zhroma@ispras.ru>

	* MAINTAINERS (Various Maintainers): Remove Ayal Zaks and add myself
	as modulo-scheduler maintainer.

2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>

	* MAINTAINERS: Add myself as co-maintainer for Darwin.

2019-04-18  Iain Sandoe  <iain@sandoe.co.uk>

	* MAINTAINERS: Update my email address.

2019-04-14  Johannes Pfau  <johannespfau@gmail.com>

	* configure.ac: Remove d from unsupported languages on mingw and cygwin.
	* configure: Regenerate.

2019-04-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (enable_libphobos): Check LIBPHOBOS_SUPPORTED.
	* configure: Regenerate.

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* configure.ac: Add target-zlib to target_libraries.
	* configure: Regenerate.

2019-04-09  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Regenerate.
	* Makefile.tpl: Pass GENERATOR_CFLAGS
	in all stages.

2019-03-28  Martin Liska  <mliska@suse.cz>

	PR bootstrap/89829
	* Makefile.in: Revert r254150.
	* Makefile.tpl: Likewise.

2019-03-28  Ben Elliston  <bje@gnu.org>

	* MAINTAINERS (Various Maintainers): Remove myself from dfp.c and
	related, and libdecnumber.

2019-03-15  Alexander Monakov  <amonakov@ispras.ru>

	* MAINTAINERS (Reviewers): Add myself as selective scheduling reviewer.
	(Write After Approval): Remove myself.

2019-02-27  Alejandro Martinez  <alejandro.martinezvicente@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2019-02-11  Andrew Stubbs  <ams@codesourcery.com>

	* MAINTAINERS (amdgcn port): Add myself and Julian Brown.
	(Write After Approval): Remove myself and Julian.

2019-01-26  Harald Anlauf  <anlauf@gmx.de>

	* MAINTAINERS (Write After Approval): Add myself.

2019-01-25  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2019-01-24  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>

	* ChangeLog: Replace space with tab.
	* MAINTAINERS: Delete 1 tab to keep alignment.

2019-01-21  Jiufu Guo  <guojiufu@linux.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2019-01-18  Li Jia He  <helijia@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>
	    Jan Hubicka  <hubicka@ucw.cz>
	    Martin Jambor  <mjambor@suse.cz>

	* configure.ac: Likewise.
	* configure: Regenerate.
	* contrib/config-list.mk: Add amdgcn-amdhsa.

2019-01-16  Kewen Lin  <linkw@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2019-01-16  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	PR target/88535
	* config.guess: Import upstream version 2019-01-03.
	* config.sub: Import upstream version 2019-01-01.

2018-12-21  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

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

2018-12-21  Gergö Barany  <gergo@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2018-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	* contrib/config-list.mk: Remove powerpc-eabispe and powerpc-linux_spe.

2018-12-05  Iain Sandoe  <iain@sandoe.co.uk>

	* configure.ac (NCN_STRICT_CHECK_TOOLS): Check otool.
	(ACX_CHECK_INSTALLED_TARGET_TOOL): Likewise
	(GCC_TARGET_TOOL): Likewise.
	* Makefile.tpl (HOST_EXPORTS): Add OTOOL, OTOOL_FOR_TARGET.
	(BASE_TARGET_EXPORTS): OTOOL, export OTOOL_FOR_TARGET.
	OTOOL, OTOOL_FOR_TARGET: New substitutions.
	(EXTRA_HOST_FLAGS, EXTRA_TARGET_FLAGS): Add OTOOL.
	* configure: Regenerate.
	* Makefile.in: Likewise.

2018-11-28  Johannes Pfau  <johannespfau@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2018-11-13  Martin Liska  <mliska@suse.cz>

	* gcc.target/i386/pr87930.c: Move to ...
	* gcc.dg/asan/pr87930.c: ... here.  Guard for i?86/x86_64 targets.

2018-11-10  Stafford Horne  <shorne@gmail.com>

	* MAINTAINERS (CPU Port Maintainers): Add myself for or1k.
	(Write After Approval): Remove myself.

2018-11-06  Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* config/iconv.m4 (AM_ICONV_LINK): Don't overwrite CPPFLAGS.
	Append $INCICONV to it.

2018-11-04  Stafford Horne  <shorne@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2018-10-31  Joseph Myers  <joseph@codesourcery.com>

	PR bootstrap/82856
	* multilib.am: New file.  From automake.

	Merge from binutils-gdb:
	2018-06-19  Simon Marchi  <simon.marchi@ericsson.com>

	* libtool.m4: Use AC_LANG_SOURCE.
	* configure.ac: Remove AC_PREREQ, use AC_LANG_SOURCE.
	* ar-lib: New file.
	* test-driver: New file.
	* configure: Re-generate.

2018-10-31  Michael Ploujnikov  <michael.ploujnikov@oracle.com>

	* MAINTAINERS (Write After Approval): Add myself.

2018-10-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR bootstrap/87788
	PR d/87799
	* configure: Rebuild.
	* configure.ac: Disable D on systems where it is known not to work.

2018-10-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Makefile.def (target_modules): Add libphobos.
	(flags_to_pass): Add GDC, GDCFLAGS, GDC_FOR_TARGET and
	GDCFLAGS_FOR_TARGET.
	(dependencies): Make libphobos depend on libatomic, libbacktrace
	configure, and zlib configure.
	(language): Add language d.
	* Makefile.in: Rebuild.
	* Makefile.tpl (BUILD_EXPORTS): Add GDC and GDCFLAGS.
	(HOST_EXPORTS): Add GDC.
	(POSTSTAGE1_HOST_EXPORTS): Add GDC and GDC_FOR_BUILD.
	(BASE_TARGET_EXPORTS): Add GDC.
	(GDC_FOR_BUILD, GDC, GDCFLAGS): New variables.
	(GDC_FOR_TARGET, GDC_FLAGS_FOR_TARGET): New variables.
	(EXTRA_HOST_FLAGS): Add GDC.
	(STAGE1_FLAGS_TO_PASS): Add GDC.
	(EXTRA_TARGET_FLAGS): Add GDC and GDCFLAGS.
	* config-ml.in: Treat GDC and GDCFLAGS like other compiler/flag
	environment variables.
	* configure: Rebuild.
	* configure.ac: Add target-libphobos to target_libraries.  Set and
	substitute GDC_FOR_BUILD and GDC_FOR_TARGET.

2018-10-24  Ilya Leoshkevich  <iii@linux.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2018-10-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* MAINTAINERS (Write After Approval): Remove myself.

2018-10-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* MAINTAINERS: Add myself as D front-end and libphobos maintainer.

2018-10-14  Bin Cheng <bin.cheng@linux.alibaba.com>

	* MAINTAINERS: Update my email address.

2018-10-04  Thomas Schwinge  <thomas@codesourcery.com>

	* MAINTAINERS: List myself as "libgomp (OpenACC)" and "OpenACC"
	maintainer.

2018-09-13  Matthew Malcomson  <matthew.malcomson@arm.com>

	* MAINTAINERS (Write After Approval): Add self.

2018-09-13  Sam Tebbs  <sam.tebbs@arm.com>

	* MAINTAINERS (write after approval): Add myself.

2018-09-04  Xuepeng Guo  <xuepeng.guo@intel.com>

	* MAINTAINERS: Update my email address.

2018-08-29  Vlad Lazar  <vlad.lazar@arm.com>

	* MAINTAINERS (write after approval): Add myself.

2018-08-21  Richard Sandiford  <richard.sandiford@arm.com>

	* MAINTAINERS: Add self to global reviewers list.

2018-08-17  Sandra Loosemore  <sandra@codesourcery.com>

	MAINTAINERS: Add c-sky port maintainers.

2018-08-10  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Revert change in previous commit and
	join lines.

2018-08-10  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Remove extra line.

2018-08-06  Naveen H.S  <naveenh@marvell.com>

	* MAINTAINERS: Update my email address.

2018-07-19  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS (m32c, msp43, rl78, libiberty, build): Remove myself
	as maintainer.

2018-07-16  Andreas Krebbel  <krebbel@linux.ibm.com>

	* MAINTAINERS: Adjust email address for me and my colleague Robin
	Dapp.

2018-07-13  H.J. Lu  <hongjiu.lu@intel.com>
	    Sunil K Pandey  <sunil.k.pandey@intel.com>

	PR target/84413
	* config/i386/i386.c (m_CORE_AVX512): New.
	(m_CORE_AVX2): Likewise.
	(m_CORE_ALL): Add m_CORE_AVX2.
	* config/i386/x86-tune.def: Replace m_HASWELL with m_CORE_AVX2.
	Replace m_SKYLAKE_AVX512 with m_CORE_AVX512 on avx256_optimal
	and remove the rest of m_SKYLAKE_AVX512.

2018-07-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config.sub: Sync with upstream version 2018-07-03.

2018-07-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config.guess: Sync with upstream version 2018-06-26.
	* config.sub: Sync with upstream version 2018-07-02.

2018-06-19  Bernhard M. Wiedemann  <bwiedemann@suse.de>

	* libtool.m4: Sort output of 'find' to enable deterministic builds.
	* ltmain.sh: Likewise.

2018-07-03  Segher Boessenkool  <segher@kernel.crashing.org>

	* contrib/config-list.mk: Remove powerpc-linux_paired.

2018-06-29  Alexandre Oliva <oliva@adacore.com>

	* configure.ac: Introduce support for @unless/@endunless.
	* Makefile.tpl (dep-kind): Rewrite with cond; return
	postbootstrap in some cases.
	(make-postboot-dep, postboot-targets): New.
	(dependencies): Do not output postbootstrap dependencies at
	first.  Output non-target ones changed for configure to depend
	on stage_last @if gcc-bootstrap, and the original deps @unless
	gcc-bootstrap.
	* configure.in, Makefile.in: Rebuilt.

2018-06-28  Jackson Woodruff  <jackson.woodruff@arm.com>

	* MAINTAINERS (write after approval): Add myself.

2018-06-26  Rasmus Villemoes  <rv@rasmusvillemoes.dk>

	* MAINTAINERS (write after approval): Add myself.

2018-06-19  Nick Clifton  <nickc@redhat.com>

	* zlib/configure.ac: Restore old behaviour of only enabling
	multilibs when a target subdirectory is defined.  This allows
	building with srcdir == builddir.
	* zlib/configure: Regenerate.

2018-06-18  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.def (fortran): Add check-target-libgomp-fortran.
	* Makefile.tpl (check-target-libgomp-fortran): New phony target.
	* Makefile.in: Regenerate.

2018-06-16  Ben Elliston  <bje@gnu.org>

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

2018-06-08  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Remove MPX-related entries.
	* Makefile.def: Remove libmpx support.
	* Makefile.in: Regenerate.
	* configure.ac: Remove removed files.
	* configure: Regenerate.
	* libmpx/ChangeLog: Remove.
	* libmpx/Makefile.am: Remove.
	* libmpx/Makefile.in: Remove.
	* libmpx/acinclude.m4: Remove.
	* libmpx/aclocal.m4: Remove.
	* libmpx/config.h.in: Remove.
	* libmpx/configure: Remove.
	* libmpx/configure.ac: Remove.
	* libmpx/configure.tgt: Remove.
	* libmpx/libmpx.spec.in: Remove.
	* libmpx/mpxrt/Makefile.am: Remove.
	* libmpx/mpxrt/Makefile.in: Remove.
	* libmpx/mpxrt/libmpx.map: Remove.
	* libmpx/mpxrt/libtool-version: Remove.
	* libmpx/mpxrt/mpxrt-utils.c: Remove.
	* libmpx/mpxrt/mpxrt-utils.h: Remove.
	* libmpx/mpxrt/mpxrt.c: Remove.
	* libmpx/mpxrt/mpxrt.h: Remove.
	* libmpx/mpxwrap/Makefile.am: Remove.
	* libmpx/mpxwrap/Makefile.in: Remove.
	* libmpx/mpxwrap/libmpxwrappers.map: Remove.
	* libmpx/mpxwrap/libtool-version: Remove.
	* libmpx/mpxwrap/mpx_wrappers.c: Remove.

2018-06-04  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS: Add myself as gcov maintainer.

2018-06-04  Matthew Fortune  <mfortune@gmail.com>

	* MAINTAINERS: Update my email address.

2018-06-04  Tom de Vries  <tdevries@suse.de>

	* MAINTAINERS: Remove write-after-approval entries for component
	maintainers.

2018-06-01  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* MAINTAINERS (write after approval): Add myself.

2018-06-01  Bin Cheng <amker@gcc.gnu.org>

	* MAINTAINERS: Update my email address.

2018-06-01  Tom de Vries  <tdevries@suse.de>

	* MAINTAINERS: Update my email address.

2018-05-22  Bin Cheng <bin.cheng@arm.com>

	* MAINTAINERS (loop-optimizer): Add myself.

2018-05-01  Francois H. Theron  <francois.theron@netronome.com>

	* configure.ac: Added "nfp" target.
	* configure: Regenerate.

2018-04-30  Richard Biener  <rguenther@suse.de>

	PR bootstrap/85571
	* Makefile.tpl (STAGE3_CFLAGS): Use -fchecking=1.
	(STAGE3_TFLAGS): Likewise.
	(STAGEtrain_CFLAGS): Filter out -fchecking=1.
	(STAGEtrain_TFLAGS): Likewise.
	* Makefile.in: Regenerate.

2018-04-26  Richard Biener  <rguenther@suse.de>

	* Makefile.tpl (STAGE1_TFLAGS): Add -fno-checking.
	(STAGE2_CFLAGS): Likewise.
	(STAGE2_TFLAGS): Likewise.
	(STAGE3_CFLAGS): Add -fchecking.
	(STAGE3_TFLAGS): Likewise.
	(STAGEtrain_CFLAGS): Filter out -fchecking.
	(STAGEtrain_TFLAGS): Likewise.
	* Makefile.in: Re-generate.

2018-04-25  Catherine Moore <clm@codesourcery.com>

	* MAINTAINERS (mips): Remove myself as MIPS maintainer.

2018-04-18  Paul Clarke  <pc@us.ibm.com>

	* MAINTAINERS (write after approval): Add myself.

2018-04-10  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* MAINTAINERS: Update my email address.

2018-04-02  Bill Schmidt  <wschmidt@linux.ibm.com>

	* MAINTAINERS: Remove redundant Write-After-Approval entry.

2018-03-30  Bill Schmidt  <wschmidt@linux.ibm.com>

	* MAINTAINERS: Update my email address and disambiguate myself
	a bit from Will Schmidt.

2018-03-21  Nathan Sidwell  <nathan@acm.org>

	* MAINTAINERS: Move maintainers of now-removed picochip and score
	ports to write after approval.

2018-03-13  Richard Sandiford  <richard.sandiford@arm.com>

	* MAINTAINERS: Add entry for SVE maintainership.

2018-02-13  Maciej W. Rozycki  <macro@mips.com>

	* configure.ac <wasm32-*-*> (noconfigdirs): Add `ld'.
	* configure: Regenerate.

2018-01-18  Boris Kolpackov  <boris@codesynthesis.com>

	* MAINTAINERS (write after approval): Add myself.

2018-01-18  Siddhesh Poyarekar  <siddhesh@sourceware.org>

	* MAINTAINERS (write after approval): Add myself.

2018-01-16  Sebastian Perta  <sebastian.perta@renesas.com>

	* MAINTAINERS (write after approval): Add myself.

2018-01-03  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2018-01-03  Ben Elliston  <bje@gnu.org>

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

2017-12-12  Stafford Horne  <shorne@gmail.com>

	* configure.ac: Remove logic adding gdb to noconfigsdirs for or1k.
	* configure: Regenerate.

2017-11-29  Qing Zhao  <qing.zhao@oracle.com>

	* MAINTAINERS (Write After Approval): Add myself.

2017-11-28  Julia Koval  <julia.koval@intel.com>
	    Sebastian Peryt  <sebastian.peryt@intel.com>

	* Makefile.def (target_modules): Remove libcilkrts.
	* Makefile.in: Ditto.
	* configure: Ditto.
	* configure.ac: Ditto.

2017-11-28  Julia Koval  <julia.koval@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2017-11-22  Sudakshina Das  <sudi.das@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2017-11-06  Palmer Dabbelt  <palmer@sifive.com>

	* MAINTAINERS (RISC-V): Add Jim Wilson as a maintainer.
	Use my SiFive email address.

2017-11-15  Sebastian Peryt  <sebastian.peryt@intel.com>

	* MAINTAINERS (write after approval): Add myself.

2017-10-27  Martin Liska  <mliska@suse.cz>

	* Makefile.tpl: Use proper name of folder as it was renamed
	during transition to 4 stages.
	* Makefile.in: Regenerate.

2017-10-16  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>

	* MAINTAINERS (write after approval): Add myself.

2017-10-01  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Add a note that maintainership also includes web
	pages, docs, and testsuite related to that area.

2017-09-25  Tom de Vries  <tom@codesourcery.com>

	* MAINTAINERS (CPU Port Maintainers): Add myself as nvptx maintainer.

2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>

	* MAINTAINERS: Add myself as a maintainer for the Ada front end.

2017-09-15  Nathan Sidwell  <nathan@acm.org>

	* MAINTAINERS: Remove myself as a vxworks maintainer.

2017-09-13  Thomas Schwinge  <thomas@codesourcery.com>

	* MAINTAINERS: Remove email address of Jim Norris.

2017-09-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* MAINTAINERS (Reviewers): Move myself from here...
	(CPU Port Maintainers): ... to here.

2017-09-09  James Greenhalgh  <james.greenhalgh@arm.com>

	* MAINTAINERS (James Greenhalgh): Move to AArch64 maintainers.

2017-07-31  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	* MAINTAINERS (write after approval): Add myself.

2017-07-28  Tony Reix  <tony.reix@atos.net>

	* configure.ac (target-libffi): Don't disable for AIX.
	(go): Don't add to unsupported_languages on AIX.
	(target-libgo): Don't disable for AIX.
	* configure: Regenerate.

2017-07-19  Yury Gribov  <tetra2005@gmail.com>

	* MAINTAINERS: Add myself.

2017-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* MAINTAINERS: Update my email address.

2017-07-04  Richard Earnshaw  <rearnsha@arm.com>

	* contrib/gcc_update (files_and_dependencies): Remove stamp rules for
	arm-specific auto-generated header files.

2017-07-03  Nathan Sidwell  <nathan@acm.org>

	* configure.ac: Set srcdir when sourcing config-lang.in fragments.
	* configure: Rebuilt.

2017-07-03  Bernd Schmidt  <bschmidt@redhat.com>

	* MAINTAINERS: Readd myself for c6x.

2017-06-28  Martin Liska  <mliska@suse.cz>

	PR bootstrap/81217
	* Makefile.def: Remove superfluous bootstrap_target from
	bootstrap_stage.
	* Makefile.in: Re-generate the file.

2017-06-26  Maxim Ostapenko  <m.ostapenko@samsung.com>

	* MAINTAINERS: Add myself to Write After Approval

2017-06-21  Andrew Jenner  <andrew@codesourcery.com>

	* MAINTAINERS: Add myself as maintainer for PowerPC SPE port.

2017-06-19  Martin Liska  <mliska@suse.cz>

	* Makefile.def: Define 4 stages PGO bootstrap.
	* Makefile.tpl: Define FLAGS.
	* Makefile.in: Regenerate.

2017-06-14  Ian Lance Taylor  <iant@golang.org>

	* Makefile.def: Add check-gotools to go check targets.
	* Makefile.in: Rebuild.

2017-06-12  Segher Boessenkool  <segher@kernel.crashing.org>

	* config.gcc: Remove rs6000/e500.h from tm_file for all targets.

2017-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac (*-*-linux-android*): Set target_makefile_frag.
	* configure: Regenerate.

2017-05-31  Martin Liska  <mliska@suse.cz>

	* configure.ac: Add handling of stage2_werror_flags to
	action-if-given and to action-if-not-given.
	* configure: Regenerate.

2017-05-31  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

	* MAINTAINERS: Add self to Write After Approval

2017-05-27  Bernd Schmidt  <bschmidt@redhat.com>

	* MAINTAINERS: Update my email address, and remove myself as
	maintainer in some areas.

2017-05-25  Eric Gallager  <egall@gwmail.gwu.edu>

	* MAINTAINERS: Add self to Write After Approval

2017-05-25  Nathan Sidwell  <nathan@acm.org>

	* configure.ac: Add --enable-languages=default to mean default and
	make --enable-languages=all mean all supported languages.
	* configure: Regenerated.

2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>

	* config.gcc (powerpc*-*-*spe*): New.
	(powerpc-*-eabispe*): Use ${cpu_type} instead of hardcoded pathnames.
	(powerpc-*-rtems*spe*): New.
	(powerpc*-*-linux*spe*): New.
	(powerpc-wrs-vxworksspe): New.
	(powerpc*-*-*, rs6000-*-*): Use ${cpu_type}.
	(misc flags) [powerpc*-*-*, rs6000-*-*): Use ${cpu_type}.
	* config.host (powerpc*-*-*spe*): New.

2017-05-19  Martin Liska  <mliska@suse.cz>

	* configure.ac: Add --enable-werror-always just for
	bootstrap-debug (or none build config) and do not add it
	when we are on a release branch.
	* configure: Regenerated.

2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>

	* MAINTAINERS: Add self to Write After Approval

2017-05-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	* MAINTAINERS: Move myself to Write After Approval section.

2017-05-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_conditional_register_usage): Handle ACCL,
	ACCH registers.
	* config/arc/arc.md (mulsidi3): Use advanced mpy instructions when
	available.
	(umulsidi3): Likewise.
	(mulsidi3_700): Disable this pattern when we have advanced mpy
	instructions.
	(umulsidi3_700): Likewise.
	(maddsidi4): New pattern.
	(macd, mac, mac_r, umaddsidi4, macdu, macu, macu_r): Likewise.
	(mpyd_arcv2hs, mpyd_imm_arcv2hs, mpydu_arcv2hs): Likewise.
	(mpydu_imm_arcv2hs): Likewise.
	* config/arc/predicates.md (accl_operand): New predicate.

2017-05-09  Claudiu Zissulescu  <claziss@synopsys.com>
	    Andrew Burgess <andrew.burgess@embecosm.com>

	* config/arc/arc.c (ARC_AUTOBLINK_IRQ_P): Consider fast interrupts
	case.
	(ARC_AUTOFP_IRQ_P): Likewise.
	(ARC_AUTO_IRQ_P): Likewise.
	(rgf_banked_register_count): New variable.
	(parse_mrgf_banked_regs_option): New function.
	(arc_override_options): Handle rgf_banked_regs option.
	(arc_handle_interrupt_attribute): Add firq option.
	(arc_compute_function_type): Return fast irq type when required.
	(arc_must_save_register): Handle fast interrupts.
	(arc_expand_prologue): Do not emit dwarf info for fast interrupts.
	(arc_return_address_regs): Update.
	* config/arc/arc.h (arc_return_address_regs): Update.
	(arc_function_type): Add fast interrupt type.
	(ARC_INTERRUPT_P): Update.
	(RC_FAST_INTERRUPT_P): Define.
	* config/arc/arc.md (simple_return): Update for fast interrupts.
	(p_return_i): Likewise.
	* config/arc/arc.opt (mrgf-banked-regs): New option.
	* doc/invoke.texi (mrgf-banked-regs): Document.

2017-05-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (irq_ctrl_saved): New variable.
	(ARC_AUTOBLINK_IRQ_P): Define.
	(ARC_AUTOFP_IRQ_P): Likewise.
	(ARC_AUTO_IRQ_P): Likewise.
	(irq_range): New function.
	(arc_must_save_register): Likewise.
	(arc_must_save_return_addr): Likewise.
	(arc_dwarf_emit_irq_save_regs): Likewise.
	(arc_override_options): Handle deferred options.
	(MUST_SAVE_REGISTER): Deleted, replaced by arc_must_save_register.
	(MUST_SAVE_RETURN_ADDR): Deleted, replaced by
	arc_must_save_return_addr.
	(arc_compute_frame_size): Handle automated save and restore of
	registers.
	(arc_expand_prologue): Likewise.
	(arc_expand_epilogue): Likewise.
	* config/arc/arc.md (stack_irq_dwarf): New unspec instruction.
	* config/arc/arc.opt (mirq-ctrl-saved): New option.
	* doc/invoke.texi (mirq-ctrl-saved): Document option.

2017-04-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
	Tobias Burnus  <tobias.burnus@physik.fu-berlin.de>

	PR bootstrap/77661
	* Makefile.def: Don't pass --enable-maintainer-mode on to an
	in-tree build MPC.
	* Makefile.in: Regenerate.

2017-03-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* configure.ac: Enable LTO by default on darwin >= 9.
	* configure: Regenerate.

2017-03-20  Palmer Dabbelt  <palmer@dabbelt.com>

	* MAINTAINERS (CPU Port Maintainers): Add Kito Cheng, Palmer Dabbelt,
	and Andrew Waterman as the RISC-V maintainers.

2017-03-18  Nicolas Koenig  <koenigni@gcc.gnu.org>

	* MAINTAINERS: Add self to Write After Approval

2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>

	* config.guess: Import latest from upstream.

2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS (Write After Approval): Remove entries that are
	already covered under Reviewers.

2017-03-08  Mark Wielaard  <mark@klomp.org>

	PR demangler/70909
	PR demangler/67264
	* include/demangle.h: Add d_printing to struct demangle_component
	and pass struct demangle_component as non const.

2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Remove Neil Booth as option handling maintainer.

2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>

	* Makefile.tpl: Remove HOST_ISLVER.
	(HOST_EXPORTS): Remove ISLVER.
	* Makefile.in: Regenerate.

2017-02-13  Richard Biener  <rguenther@suse.de>

	* configure: Re-generate.

2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Adjust bug reporting URL.

2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS (Write After Approval): Remove redundant entry
	for Andrew Burgess.

2017-02-03  John David Anglin  <danglin@gcc.gnu.org>

	* configure.ac: Add gcc/function-tests.o to compare_exclusions for
	32-bit hppa*-*-hpux*.
	* configure: Regenerate.

2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>

	* configure.ac: Moved the white list of enabling BRIG FE to
	libhsail-rt/configure.tgt.
	* configure: Regenerated.
	* MAINTAINERS: Updated maintainers for BRIG FE and libhsail-rt.

2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
	    Martin Jambor  <mjambor@suse.cz>

	* Makefile.def (target_modules): Added libhsail-rt.
	(languages): Added language brig.
	* Makefile.in: Regenerated.
	* configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Added
	tgarget-libhsail-rt.  Make brig unsupported on untested architectures.
	* configure: Regenerated.

2017-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR other/79046
	* configure: Regenerated.

2017-01-04  Alan Modra  <amodra@gmail.com>

	* configure: Regenerate.

2016-12-29  Ben Elliston  <bje@gnu.org>

	* config.sub: Import latest version.

2016-12-26  Alexander Ivchenko  <alexander.ivchenko@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-12-21  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac: Don't bootstrap libmpx unless --with-build-config
	includes bootstrap-mpx.
	* configure: Regenerated.

2016-12-19  Chenghua Xu  <paul.hua.gm@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-12-01  Ma Jiang  <ma.jiang@zte.com.cn>

	* configure: Regenerate.

2016-12-01  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Don't use pkg-config to check for bdw-gc.
	* configure: Regenerate.

2016-11-30  Matthias Klose  <doko@ubuntu.com>

	* Makefile.def: Remove reference to boehm-gc target module.
  	* configure.ac: Include pkg.m4, check for --with-target-bdw-gc
	options and for the bdw-gc pkg-config module.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2016-11-28  Nathan Sidwell  <nathan@acm.org>

	* MAINTAINERS (nvptx): Remove self.

2016-11-25  Ben Elliston  <bje@gnu.org>

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

2016-11-18  Toma Tabacu  <toma.tabacu@imgtec.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	* Makefile.def: Remove references to GCJ.
	* Makefile.tpl: Likewise.
	* Makefile.in: Regenerate.

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	* config-ml.in: Remove references to GCJ.
	* configure.ac: Likewise.
	* configure: Regenerate.

2016-11-01  Josh Conner  <joshconner@google.com>

	* MAINTAINERS (Write After Approval): Update email address,

2016-10-27  Carl Love  <cel@us.ibm.com>

	* MAINTAINERS (Write After Approval): Fix my entry in the Write After
	Approval list to make it alphabetical.

2016-10-27  Carl Love  <cel@us.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-10-27  Andrew Burgess  <andrew.burgess@embecosm.com>

	* MAINTAINERS (Reviewers): Add myself.
	(Write After Approval): Add myself.

2016-10-21  Hartmut Penner  <hepenner@us.ibm.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	* MAINTAINERS: Update email address.

2016-10-10  Nathan Sidwell  <nathan@acm.org>

	* MAINTAINERS: Update email address.

2016-10-10  Andreas Tobler <andreast@gcc.gnu.org>

	* configure.ac: Add aarch64-*-freebsd*.
	* configure: Regenerate.

2016-10-05  Steve Ellcey  <sellcey@caviumnetworks.com>

	* MAINTAINERS: Update email address after it got reverted.

2016-10-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (target_libraries): Readd target-boehm-gc.
	Restore --enable-objc-gc handling.
	* configure: Regenerate.

2015-10-03  Jeff Law  <law@redhat.com>

	* MAINTAINERS: Move several inactive maintainers to the
	write-after-approval section.

2016-09-30  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac: Add target-libffi to target_libraries.
	Readd libgcj target disablings, modified to only target-libffi.
	Readd target addition of go to unsupported languages.
	* configure: Regenerated.

2016-09-30  Steve Ellcey  <sellcey@caviumnetworks.com>

	* MAINTAINERS: Update email address.

2016-09-30  Andrew Haley  <aph@redhat.com>

	* MAINTAINERS: Remove Per Bothner, Andrew Haley, and Tom Tromey from
	write-after approval.  Remove Tom Tromey and Bryce McKinlay from
	libgcj.

2016-09-30  Andrew Haley  <aph@redhat.com>

	* MAINTAINERS: Move Per Bothner, Andrew Haley, and Tom Tromey to
	write-after approval after GCJ deletion.

2016-09-30  Andrew Haley  <aph@redhat.com>

	* Makefile.def: Remove libjava.
	* Makefile.tpl: Likewise.
	* Makefile.in: Regenerate.
	* configure.ac: Likewise.
	* configure: Likewise.
	* gcc/java: Remove.
	* libjava: Likewise.

2016-09-28  Claudiu Zissulescu  <claziss@synopsys.com>

	* MAINTAINERS (Reviewers): Add myself.

2016-09-26  Anton Kolesov  <Anton.Kolesov@synopsys.com>

	* configure.ac: Disable "sim" directory for arc*-*-*.
	* configure: Regenerated.

2016-09-23  Tamar Christina <tamar.christina@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-09-12  Maciej W. Rozycki  <macro@imgtec.com>

	* configure.ac: Check for the minimum in-tree MPFR version
	handled.
	* configure: Regenerate.

2016-07-20  Yan-Ting Lin  <currygt52@gmail.com>

	* configure.ac (nds32*-*-*): Remove entry to enable gdb.
	* configure: Regenerated.

2016-07-19  Fritz Reese  <fritzoreese@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-06-23  Andi Kleen  <ak@linux.intel.com>

	* Makefile.def: Add autoprofiledbootstrap.
	* Makefile.tpl: Dito.
	* Makefile.in: Regenerate.

2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>

    * configure.ac: Disable libgcj and libgloss for Phoenix-RTOS targets.
    * configure: Regenerate.

2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* configure: Regenerate.
	* configure.ac: Remove support for avr-rtems.

2016-06-18  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-06-16  Michael Collison  <michael.collison@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-06-14  Mikael Morin  <mikael@gcc.gnu.org>

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

2016-06-03  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-05-28  Alan Modra  <amodra@gmail.com>

	* Makefile.tpl (configure): Depend on m4 files included.
	* Makefile.in: Regenerate.

2016-05-20  Bill Seurer  <seurer@linux.vnet.ibm.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Fix
	code formatting in ALTIVEC_BUILTIN_VEC_ADDE section.

2016-05-20  Bill Seurer  <seurer@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (vec_addec): Change vec_addec to a
	special case builtin.
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
	support for ALTIVEC_BUILTIN_VEC_ADDEC.
	* config/rs6000/rs6000.c (altivec_init_builtins): Add definition
	for __builtin_vec_addec.

2016-05-16  Jakub Sejdak  <jakub.sejdak@phoesys.com>

	* config.guess: Import version 2016-04-02 (newest).
	* config.sub: Import version 2016-05-10 (newest).

2016-05-16  Anton Kolesov  <anton.kolesov@synopsys.com>

	* configure.ac: Add ARC support to libgloss.
	* configure: Regenerate

2016-05-09  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* configure.ac (mpfr): Remove pre-3.1.0 mpfr compatibility code.
	* configure: Regenerated.
	* Makefile.def (gmp): Explicitly disable assembler.
	(mpfr): Adjust lib_path.
	(mpc): Likewise.
	* Makefile.in: Regenerated.

2016-05-01  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/70704
	* configure.ac (--enable-stage1-checking): Add missing
	--enable-checking=.
	* configure: Regenerated.

2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>

	* config.guess: Revert r235676.
	* config.sub: Revert r235676.

2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>

	* config.guess: Remove SH5 support.
	* config.sub: Likewise.
	* configure: Likewise.
	* configure.ac: Likewise.

2016-04-26  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/70704
	* configure.ac (--enable-stage1-checking): For --disable-checking or
	implicit --enable-checking, make sure extra flag matches in between
	stage1 and later checking.
	* configure: Regenerated.

2016-04-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* .gitattributes: New file.

2016-04-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* MAINTAINERS (rs6000/powerpc port): Add myself.

2016-04-13  Segher Boessenkool  <segher@kernel.crashing.org>

	PR bootstrap/70173
	* Makefile.tpl (local-distclean): Delete the libcc1, gnattools,
	and gotools directories.  Delete the stage_final file.
	* Makefile.in: Regenerate.

2016-04-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-04-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	* MAINTAINERS (Fortran maintainer): Remove myself.

2016-04-04  Bill Seurer  <seurer@linux.vnet.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-03-29  Kelvin Nilsen  <kdnilsen@linux.vnet.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-03-17  Cary Coutant  <ccoutant@gmail.com>

	Sync with binutils-gdb:

	2016-03-17  Cary Coutant  <ccoutant@gmail.com>

	* configure.ac: Add mips and s390 to the gold target check.
	* configure: Regenerate.

2016-03-01  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS (mep): Remove myself as MeP maintainer.

2016-02-22  David Malcolm  <dmalcolm@redhat.com>

	* MAINTAINERS (libcpp): Add myself.
	(diagnostic messages): Likewise.

2016-02-20  Tom de Vries  <tom@codesourcery.com>

	* MAINTAINERS: Fix whitespace.

2016-02-02  Claudiu Zissulescu  <claziss@synopsys.com>

	* MAINTAINERS (Write After Approval): Add myself.

2016-01-29  Sebastian Pop  <s.pop@samsung.com>

	* config/isl.m4: Add comments about isl-0.16.
	* configure: Regenerate.

2016-01-29  Martin Jambor  <mjambor@suse.cz>

	* MAINTAINERS (hsa maintainers): Add myself.

2015-01-27  Wilco Dijkstra  <wdijkstr@arm.com>

	* MAINTAINERS: (Write After Approval): Add myself.

2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* Makefile.in: Regenerate.
	* Makefile.tpl: Export ISLVER.
	* configure: Regenerate.
	* config/isl.m4: Detect isl-0.15.

2016-01-24  Mikhail Maltsev  <maltsevm@gmail.com>

	PR bootstrap/69329
	* Makefile.tpl (BASE_FLAGS_TO_PASS): Add LSAN_OPTIONS.
	* Makefile.in: Regenerate.

2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>

	* configure.ac: Enable LTO for DJGPP
	* configure: Regenerate

2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>

	Sync with binutils-gdb:
	2015-10-21  Nick Clifton  <nickc@redhat.com>

	PR gas/19109
	* configure.ac: Note the 'none' is an acceptable argument to
	--enable-compressed-debug-sections.
	* configure: Regenerate.

2016-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR bootstrap/69134
	* Makefile.def (mpfr): Disable assembler.
	* Makefile.in: Regenerate.

2016-01-01  Ben Elliston  <bje@gnu.org>

	* config.guess: Import version 2016-01-01.
	* config.sub: Likewise.

2015-12-18  Sujoy Saraswati  <sujoy.saraswati@hpe.com>

	* MAINTAINERS (Write After Approval): Add myself.

2015-12-17  Sebastian Pop  <s.pop@samsung.com>

	* Makefile.in: Replace ISL with isl.
	* Makefile.tpl: Same.
	* config/isl.m4: Same.
	* configure.ac: Same.
	* contrib/download_prerequisites: Same.
	* configure: Regenerate.

2015-12-17  Andris Pavenis  <andris.pavenis@iki.fi>

	* MAINTAINERS (Write After Approval): Add Myself.

2015-12-17  Nathan Sidwell  <nathan@acm.org>

	* config/isl.m4 (ISL_CHECK_VERSION): Add gmp libs.
	* configure: Regenerate.

2015-12-16  Aditya Kumar  <aditya.k7@samsung.com>
	    Sebastian Pop  <s.pop@samsung.com>

	* config/isl.m4 (ISL_CHECK_VERSION): Check for
	isl_ctx_get_max_operations.
	* configure: Regenerate.

2015-12-15  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2015-12-02  Ian Lance Taylor  <iant@google.com>

	PR go/66147
	* Makefile.tpl (HOST_EXPORTS): Add XGCC_FLAGS_FOR_TARGET.
	* Makefile.in: Regenerate.

2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>

	PR libffi/65726
	* Makefile.def (lang_env_dependencies): Make libffi depend
	on cxx.
	* Makefile.in: Regenerate.

2015-11-26  David Edelsohn  <dje.gcc@gmail.com>

	* m4/libtool.m4 (export_symbols_cmds) [AIX]: Add global TLS "L"
	symbols.

2015-11-20  Tristan Gingold  <gingold@adacore.com>

	Sync with binutils-gdb:
	2015-11-20  Tristan Gingold  <gingold@adacore.com>

	* configure.ac: Add aarch64-*-darwin* and arm-*-darwin*.
	* configure: Regenerate.

2015-11-19  Martin Liska  <mliska@suse.cz>

	* .gitignore: Add .clang-format to ignored files.
	* Makefile.in: Add clang-format.
	* Makefile.tpl: Likewise.

2015-11-13  Tsvetkova Alexandra  <aleksandra.tsvetkova@intel.com>

	* configure.ac: Enable libmpx by default.
	* configure: Regenerated.

2015-10-23  Steve Ellcey  <sellcey@imgtec.com>

	* MAINTAINERS: Update email address.

2015-10-23  Paulo Matos  <pmatos@linki.tools>

	* MAINTAINERS: Update email address.

2015-10-23  Alan Hayward <alan.hayward@arm.com>

	* MAINTAINERS  (Write After Approval): Add myself.

2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>

	Sync with binutils-gdb:
	2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/19109
	* configure.ac: Add
	--enable-compressed-debug-sections={all,gas,gold,ld}.
	* configure: Regenerated.

2015-10-16  Arnaud Charlet  <charlet@adacore.com>

	* MAINTAINERS: Update list of Ada maintainers and email addresses.

2015-10-09  Martin Liska  <mliska@suse.cz>

	* MAINTAINERS (Write After Approval): Add myself.

2015-10-09  Alexander Fomin <alexander.fomin@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2015-10-02  Florian Weimer  <fweimer@redhat.com>

	* MAINTAINERS: Update email address.

2015-10-02  Louis Krupp <louis.krupp@zoho.com>

	* MAINTAINERS  (Write After Approval): Add myself.

2015-09-20  Kai Tietz  <ktietz70@googlemail.com>

	* MAINTAINERS: Update email.

2015-09-14  Bernd Schmidt  <bschmidt@redhat.com>

	* MAINTAINERS: Update my email address.

2015-09-01  James Bowman  <james.bowman@ftdichip.com>

	* MAINTAINERS (ft32 port): Add myself.

2015-08-28  David Sherwood  <david.sherwood@arm.com>

	* MAINTAINERS: Add myself.

2015-08-27  Patrick Marlier  <patrick.marlier@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	PR libfortran/54572
	* Makefile.def: Make libgfortran depend on libbacktrace.
	* Makefile.in: Regenerate.

2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>

	* MAINTAINERS (Write After Approval): Add myself.

2015-08-12  Tom de Vries  <tom@codesourcery.com>

	PR other/67092
	* configure.ac: Remove --with_host_libstdcxx support.
	* configure: Regenerate.

2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* configure.ac (noconfigdirs): Don't add "target-libgomp" for target
	nvptx*-*-*.
	* configure: Regenerate.

2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>

	* Makefile.def (libiconv): Define bootstrap=true.
	Mark pdf/html/info as missing.
	(configure-gcc): Depend on all-libiconv.
	(all-gcc): Ditto.
	(configure-libcpp): Ditto.
	(all-libcpp): Ditto.
	(configure-intl): Ditto.
	(all-intl): Ditto.
	* Makefile.in: Regenerate.

2015-08-03  Bin Cheng  <bin.cheng@arm.com>

	* MAINTAINERS (loop ivopts): Add the entry and myself.

2015-07-31  Nathan Sidwell  <nathan@codesourcery.com>

	* MAINTAINERS (nvptx): Add self.

2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/iterators.md (VRL2, VRL3, VRL4): Remove values for
	128-bit vector modes.

2015-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2015-07-28  Ben Elliston  <bje@gnu.org>

	* config.sub, config.guess: Import from upstream.

2015-07-24  Michael Darling  <darlingm@gmail.com>

	PR other/66259
	* config-ml.in: Reflects renaming of configure.in to configure.ac
	* configure: Likewise
	* configure.ac: Likewise

2015-07-23  Bernd Schmidt  <bernds_cb1@t-online.de>

	* MAINTAINERS: Update my email address.

2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>

	Sync with binutils-gdb:
	2015-03-17  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.ac (target_configdirs): Exclude target-zlib if
	target-libjava isn't built.
	* configure: Regenerated.

2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>

	Sync with binutils-gdb:
	2015-05-13  John David Anglin  <dave.anglin@bell.net>

	* configure.ac: Disable configuration of GDB for HPUX targets.
	* configure: Regenerate.

	2015-04-01  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.ac: Add --with-system-zlib.
	* configure: Regenerated.

	2015-01-28  James Bowman  <james.bowman@ftdichip.com>

	* configure.ac: Add FT32 support.
	* configure: Regenerate.

	2015-01-12  Anthony Green  <green@moxielogic.com>

	* configure.ac: Don't disable gprof for moxie.
	* configure: Rebuild.

2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>

	Sync with binutils-gdb:
	2015-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/18355
	* Makefile.def: Add extra_configure_flags to host zlib.
	* configure.ac (extra_host_zlib_configure_flags): New.  Set
	to --enable-host-shared When bfd is to be built as shared
	library.  AC_SUBST.
	* Makefile.in: Regenerated.

2015-07-14  Hans-Peter Nilsson  <hp@bitrange.com>

	Sync with src:
	2015-03-30  H.J. Lu  <hongjiu.lu@intel.com>
	* Makefile.def (dependencies): Add all-zlib to all-bfd.
	* Makefile.in: Regenerated.

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

	* configure.ac (ospace_frag): Enable for i?86*-*-elfiamcu
	target.
	* configure: Regenerate.

2015-06-23  Ludovic Courtès  <ludo@gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2015-06-22  Andreas Tobler  <andreast@gcc.gnu.org>

	* MAINTAINERS (OS Port Maintainers): Add myself.
	(Various Maintainers): Remove myself from libffi testsuite.

2015-06-04  Richard Sandiford  <richard.sandiford@arm.com>

	* MAINTAINERS (gen* on machine desc): Add self.

2015-06-02  Jason Merrill  <jason@redhat.com>

	PR bootstrap/66319
	* configure.ac: Use -std=gnu++98.

2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2015-05-28  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (--vtable-verify): Use AS_HELP_STRING for help.
	* configure: Regenerate.

2015-05-26  Jason Merrill  <jason@redhat.com>

	* configure.ac: When bootstrapping with GCC, add -std=c++98 to CXX.
	* configure: Regenerate.

2015-05-16  James Bowman  <james.bowman@ftdichip.com>

	* configure.ac: FT32 target added.
	* configure: Regenerated.

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* MAINTAINERS (Write After Approval): Add myself.

2015-05-11  Paulo Matos  <paulo@matos-sorge.com>

	* MAINTAINERS (Write After Approval): Add myself.

2015-05-11  Paulo Matos  <paulo@matos-sorge.com>

	* configure.ac: Fix typo.
	* configure: Regenerate.

2015-05-10  Mikhail Maltsev  <maltsevm@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2015-05-03  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Match $host configured with triplets.
	* configure: Regenerate.

2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* Makefile.tpl: Remove surplus whitespace throughout.
	* Makefile.in: Regenerate.

2015-04-20  Segher Boessenkool  <segher@kernel.crashing.org>

	* MAINTAINERS (Various Maintainers): Add myself as instruction
	combiner maintainer.

2015-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/62077
	* configure.ac (--enable-stage1-checking): Default to
	release,misc,gimple,rtlflag,tree,types if --disable-checking
	or --enable-checking is not specified and DEV-PHASE is not
	experimental.
	* configure: Regenerated.

2015-04-14  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	* Makefile.tpl (EXTRA_HOST_EXPORTS): New variables.
	(EXTRA_BOOTSTRAP_FLAGS): Likewise.
	(check-[+module+]): Add EXTRA_HOST_EXPORTS and EXTRA_BOOTSTRAP_FLAGS.
	* Makefile.in: Regenerate.

2015-04-08  Cary Coutant  <ccoutant@gmail.com>

	* MAINTAINERS: Update my email address.

2015-04-02  James Greenhalgh  <james.greenhalgh@arm.com>

	* MAINTAINERS: Add myself as a reviewer for the AArch64 port.

2015-04-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* MAINTAINERS: Add myself as an arm port reviewer.

2015-03-25  Martin Liska  <mliska@suse.cz>
	    Yury Gribov  <y.gribov@samsung.com>

	* Makefile.in: Fix ln source location for vimrc file.
	* Makefile.tpl: Likewise.

2015-03-09  Aldy Hernandez  <aldyh@redhat.com>

	PR bootstrap/25672
	* configure.ac: Do not initialize CFLAGS_FOR_TARGET from CFLAGS if
	cross-compiling.  Similarly for CXX_FOR_TARGET.
	* configure: Regenerate.

2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>

	* Makefile.def: Add libmpx.
	* configure.ac: Add libmpx.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2015-03-06  Kirill Yukhin  <kirill.yukhin@intel.com>

	* MAINTAINERS (CPU Port Maintainers): Add myself
	i386 vector ISA extns mantainer.

2015-03-13  Jeff Law  <law@redhat.com>

	* MAINTAINERS: Remove Paul Brook as a Fortran and ARM
	maintainer.
	Remove Richard Henderson as a maintainer for the x86 port.

2015-03-03  Joern Rennecke  <gnu@amylaar.uk>

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

2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	* MAINTAINERS (Various Maintainers): Add myself as libmpx,
	pointer bounds checker and i386 MPX maintainer.

2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>

	* MAINTAINERS (Various Maintainers): Add self as docs co-maintainer.

2015-02-26  Martin Sebor  <msebor@redhat.com>

	* MAINTAINERS (Various Maintainers): Add self.

2015-02-20  Thomas Schwinge  <thomas@codesourcery.com>

	* configure.ac [--enable-as-accelerator-for] (enable_languages):
	Make sure it contains lto.
	* configure: Regenerate.

2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>

	* configure: Regenerate.

2015-02-06  Diego Novillo  <dnovillo@google.com>
1
	* MAINTAINERS (Global Reviewers, Plugin, LTO, tree-ssa,
	middle-end, docstring): Remove myself.
	(Write After Approval): Add myself.

2015-02-02  Janis Johnson  <janis.marie.johnson@gmail.com>

	* MAINTAINERS (Various Maintainers: testsuite): Remove myself.
	(Write After Approval): Update address.

2015-01-29  David Malcolm  <dmalcolm@redhat.com>

	PR jit/64780
	* configure.ac: Require the user to explicitly specify
	--enable-host-shared if the jit is enabled.
	* configure: Regenerate.

2015-01-27  Robert Suchanek  <robert.suchanek@imgtec.com>

	* MAINTAINERS (Write After Approval): Add myself.

2015-01-25  Tom de Vries  <tom@codesourcery.com>

	* MAINTAINERS: Make whitespace consistent.

2015-01-23  Braden Obrzut  <admin@maniacsvault.net>

	* MAINTAINERS (Write After Approval): Add myself.

2015-01-20  Andre Vehreschild  <vehre@gmx.de>

	* MAINTAINERS: (Write After Approval): Add myself.

2015-01-15  Martin Uecker  <uecker@eecs.berkeley.edu>

	* MAINTAINERS: (Write After Approval): Add myself.

2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>

	* MAINTAINERS: (Write After Approval): Add myself.

2015-01-13  Iain Sandoe  <iain@codesourcery.com>

	* MAINTAINERS (Language Front Ends Maintainers): Add myself as an
	objective-c/c++ front end maintainer.

2015-01-13  Marek Polacek  <polacek@redhat.com>

	* MAINTAINERS (Reviewers): Add self as C front end reviewer.

2015-01-12  Jeff Law  <law@redhat.com>

	* MAINTAINERS: Remove Stan Shebs as he has been inactive for
	a very long time.

2015-01-09  Ian Lance Taylor  <iant@google.com>

	* configure.ac (host_tools): Add gotools.
	* Makefile.def (host_modules): Add gotools.
	(dependencies): Add dependency of all-gotools on all-target-libgo.

2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>

	* configure.ac: Don't add ${libgcj} for arm*-*-freebsd*.
	* configure: Regenerate.

2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>

	* Makefile.def (dependencies) <all-target-liboffloadmic>: Depend on
	all-target-libgomp.
	* Makefile.in: Regenerate.

2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>

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

2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac: Add Visium support.
	* configure: Regenerate.

2015-01-04  Andreas Schwab  <schwab@linux-m68k.org>

	* configure.ac: Use OBJCOPY for OBJCOPY_FOR_TARGET.
	* configure: Regenerate.

2015-01-03  Andrew Pinski  <apinski@cavium.com>

	* Makefile.def (flags_to_pass): Pass OBJCOPY_FOR_TARGET also.
	* Makefile.tpl (HOST_EXPORTS): Add OBJCOPY_FOR_TARGET.
	(BASE_TARGET_EXPORTS): Add OBJCOPY.
	(OBJCOPY_FOR_TARGET): New variable.
	(EXTRA_TARGET_FLAGS): Add OBJCOPY.
	* Makefile.in: Regenerate.
	* configure.ac: Check for already installed target objcopy.
	Also GCC_TARGET_TOOL on objcopy.
	* configure: Regenerate.

2015-01-02  Hans-Peter Nilsson  <hp@bitrange.com>

	* config.sub: Update from upstream, to 2015-01-01 version.
	* config.guess: Ditto.

2014-12-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* MAINTAINERS (RTEMS Ports): Add myself.

2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-12-16  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-12-15  Thomas Schwinge  <thomas@codesourcery.com>

	* configure.ac (--enable-as-accelerator-for): Don't set
	ENABLE_AS_ACCELERATOR_FOR.  Update all users.
	* configure: Regenerate.

2014-12-13  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/64023
	* Makefile.tpl (EXTRA_TARGET_FLAGS): Set STAGE1_LDFLAGS
	to POSTSTAGE1_LDFLAGS and STAGE1_LIBS to POSTSTAGE1_LIBS.
	Add -B to libstdc++-v3/src/.libs and libstdc++-v3/libsupc++/.libs
	to CXX.
	* Makefile.in: Regenerated.

2014-12-09  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
	    Yury Gribov  <y.gribov@samsung.com>

	* .gitignore: Added .local.vimrc and .lvimrc.
	* Makefile.tpl (vimrc, .lvimrc, .local.vimrc): New targets.
	* Makefile.in: Regenerate.

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

	* config/isl.m4: Don't pass -DCLOOG_INT_GMP on islinc.
	* configure: Regenerated.

2014-11-27  Bernd Schmidt  <bernds@codesourcery.com>

	* MAINTAINERS (nvptx port): New entry.

2014-11-26  Jan-benedict Glaw  <jbglaw@lug-owl.de>

	* configure: Regenerate.

2014-11-26  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* configure.ac: Merge with Binutils.

2014-11-26  Tobias Burnus  <burnus@net-b.de>

	* Makefile.def: Make more dependent on mpfr, mpc and isl.
	* Makefile.in: Regenerate.

2014-11-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* Makefile.def (module=gmp): Work around in-tree gmp configure bug with
	missing flex.
	* Makefile.in: Regenerated.

2014-11-21  Ilya Verbin  <ilya.verbin@intel.com>

	* Makefile.in: Regenerate.

2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR bootstrap/63784
	* libtool.m4: Add $pic_flag with -shared.

2014-11-21  Renlin Li  <Renlin.Li@arm.com>

	* MAINTAINERS (Write After Approval): Added myself.

2014-11-21  Alex Velenko  <Alex.Velenko@arm.com>

	* MAINTAINERS (write-after-approval): Add myself.

2014-11-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* MAINTAINERS (OS Port Maintainers): Add overdue maintainership note
	from 2 years ago.

2014-11-19  Alex Velenko  <Alex.Velenko@arm.com>

	Revert:
	2014-11-19  Alex Velenko  <Alex.Velenko@arm.com>

	* MAINTAINERS (Write After Approval): Added myself as line map
	maintainer.

2014-11-19  Renlin Li  <Renlin.Li@arm.com>

	Revert:
	2014-11-19  Renlin Li  <Renlin.Li@arm.com>

	* MAINTAINERS (Write After Approval): Added myself.

2014-11-19  Renlin Li  <Renlin.Li@arm.com>

	* MAINTAINERS (Write After Approval): Added myself.

2014-11-19  Alex Velenko  <Alex.Velenko@arm.com>

	* MAINTAINERS (Write After Approval): Added myself as line map
	maintainer.

2014-11-17  Dodji Seketeli  <dodji@redhat.com>

	* MAINTAINERS (Various Maintainers): Added myself as line map
	maintainer.

2014-11-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* move-if-change: Sync from upstream gnulib.

2014-11-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* compile: Sync with upstream Automake.
	* depcomp: Ditto.
	* install-sh: Ditto.
	* missing: Ditto.
	* mkinstalldirs: Ditto.
	* ylwrap: Ditto.

2014-11-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config.sub: Update from upstream config repo.
	* config.guess: Ditto.

2014-11-13  Kirill Yukhin  <kirill.yukhin@intel.com>

	* Makefile.def: Add liboffloadmic to target_modules.  Make
	liboffloadmic depend on libgomp's configure, libstdc++ and libgcc.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Add liboffloadmic to target binaries.
	Restrict liboffloadmic for POSIX and i*86, and x86_64 architectures.
	Add liboffloadmic to noconfig list when C++ is not supported.

2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>

	* configure: Regenerate.
	* configure.ac (--enable-as-accelerator-for)
	(--enable-offload-targets): New configure options.

2014-11-11  Tobias Burnus  <burnus@net-b.de>

	* Makefile.def: Make all-gcc depend on all-isl.
	* Makefile.in: Regenerate.

2014-11-11  David Malcolm  <dmalcolm@redhat.com>

	* ChangeLog.jit: New.
	* MAINTAINERS (Various Maintainers): Add myself as jit maintainer.

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

	PR target/63610
	* libtool.m4: Fix globbing of darwin versions.
	* configure: Regenerate.

2014-11-11  Tobias Burnus  <burnus@net-b.de>

	* Makefile.def: Remove CLooG.
	* Makefile.tpl: Ditto.
	* configure.ac: Ditto.
	* configure: Regenerate.
	* Makefile.in: Ditto.

2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>

	* configure.ac: Handle nvptx-*-*.
	* configure: Regenerate.

2014-11-06  Prachi Godbole  <prachi.godbole@imgtec.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-10-31  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.def (libcc1): Remove bootstrap=true;.
	* Makefile.in: Regenerated.

2014-10-31  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* configure.ac: Update comment.
	* configure: Regenerate.

2014-10-31  Ilya Enkovich  <ilya.enkovich@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-10-30  Thomas Schwinge  <thomas@codesourcery.com>

	* configure.ac (extra_host_libiberty_configure_flags): Add
	--enable-shared also for libcc1's benefit.
	* configure: Regenerate.

2014-10-29  Tristan Gingold  <gingold@adacore.com>

	* MAINTAINERS: Change my email address.

2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* Makefile.def: Add libcc1 to host_modules.
	* configure.ac (host_tools): Add libcc1.
	* Makefile.in, configure: Rebuild.

2014-10-24  Hans-Peter Nilsson  <hp@axis.com>

	* configure.ac (build_configargs): Don't share config.cache between
	build subdirs.
	* configure: Regenerate.

2014-10-24  Daniel Hellstrom  <daniel@gaisler.com>

	* config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
	* doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
	* config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
	leon3v7 as leon3.
	* config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
	* config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
	* config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
	* config/sparc/sparc.md (cpu): Add leon3v7.
	* config/sparc/sparc.opt (enum processor_type): Add leon3v7.

2014-10-24  Daniel Hellstrom  <daniel@gaisler.com>

	* MAINTAINERS (write-after-approval): Add myself.

2014-10-23  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Disable the Go frontend on systems where it is known
	to not work.
	* configure: Regenerate.

2014-10-23  Richard Biener  <rguenther@suse.de>

	* Makefile.def: Add libcpp build module and dependencies.
	* configure.ac: Add libcpp build module.
	* Makefile.in: Regenerate.
	* configure: Likewise.

2014-10-15  Max Filippov  <jcmvbkbc@gmail.com>

	* MAINTAINERS (write-after-approval): Add myself.

2014-10-12  Manuel López-Ibáñez <manu@gcc.gnu.org>

	* INSTALL/README: Do not mention CVS.

2014-10-03  Jing Yu  <jingyu@google.com>

	* configure.ac: Add aarch64 to list of targets that support gold.
	* configure: Regenerate.

2014-09-29  François Dumont  <fdumont@gcc.gnu.org>

	* MAINTAINERS:  Add myself as libstdc++ special modes maintainer.

2014-09-29  Catherine Moore  <clm@codesourcery.com>

	* MAINTAINERS:  Add myself as MIPS maintainer.

2014-09-28  Matthew Fortune  <matthew.fortune@imgtec.com>

	* MAINTAINERS: Move myself to MIPS maintainers.

2014-09-23  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* MAINTAINERS: Put all email addresses between '<' and '>'.

2014-09-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* MAINTAINERS: Move myself to reviewers (Fortran).

2014-09-01  Andi Kleen  <ak@linux.intel.com>

	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Add LTO_EXPORTS.
	POSTSTAGE1_FLAGS_TO_PASS):  Add LTO_FLAGS_TO_PASS.
	* Makefile.in: Regenerate.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Delete

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): NEXT_INSN/PREV_INSN are done.

2014-08-27  Sebastian Pop  <s.pop@samsung.com>

	* config/isl.m4 (_ISL_CHECK_CT_PROG): Removed.
	(ISL_CHECK_VERSION): Check for functionality added to ISL 0.12 instead
	of checking for version number.
	* configure: Regenerated.
	* configure.ac (ISL_CHECK_VERSION): Do not use ISL version number.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 5 (additional rtx_def subclasses)
	is done; begin phase 6 (use extra rtx_def subclasses).

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 4 (removal of "scaffolding") is
	done; begin phase 5 (additional rtx_def subclasses).

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): DF_REF_INSN is done.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): SET_BB_HEAD, SET_BB_END,
	SET_BB_HEADER are done.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): SET_DEP_PRO and SET_DEP_CON are
	done.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Remove SET_VINSN_INSN_RTX.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Remove SET_BND_TO.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Remove SET_BB_NOTE_LIST.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Remove SET_BB_FOOTER.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 3 (per-file commits within
	"config" subdirs) is done; begin phase 4 (removal of
	"scaffolding").

2014-08-23  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 2 (per-file commits in main source
	dir) is done; begin phase 3 (per-file commits within "config"
	subdirs).

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 1 ("scaffolding") is done; begin
	phase 2 (per-file commits in main source dir).

2014-08-21  Bin Cheng  <bin.cheng@arm.com>

	* configure: Regenerated.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add SET_BND_TO

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add SET_BB_NOTE_LIST.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add SET_VINSN_INSN_RTX.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add SET_DEP_PRO, SET_DEP_CON.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add DF_REF_INSN.

2014-08-19  Joost VandeVondele <vondele@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2014-08-19  Christopher Faylor  <me.gnu@cgf.cx>

	* MAINTAINERS: Remove myself

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Add SET_NEXT_INSN, SET_PREV_INSN.

2014-08-18  Patrick Palka  <ppalka@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2014-08-18  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add SET_BB_HEAD, SET_BB_END,
	SET_BB_HEADER, SET_BB_FOOTER

2014-08-18  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: New file

2014-08-18 Roman Gareev  <gareevroman@gmail.com>

	* configure.ac: Eliminate ClooG installation dependency.
	* configure: Regenerate.
	* Makefile.tpl: Add definition of ISLLIBS and HOST_ISLLIBS.
	* Makefile.in: Regenerate.

2014-08-15  Ilya Verbin  <iverbin@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-08-15  Ilya Tocar  <tocarip@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-08-01  Jiong Wang  <jiong.wang@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-07-28  Anthony Green  <green@moxielogic.com>

	Import from savannah.gnu.org:
	* config.sub: Update to 2014-07-28 version.

2014-07-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* MAINTAINERS: Remove my MIPS maintainer entry.

2014-07-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/47230
	* configure.ac (alpha*-*-linux*): Use mh-alpha-linux.
	* configure: Regenerate.

2014-07-24  James Norris  <jnorris@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-07-20  Roman Gareev  <gareevroman@gmail.com>

	* configure.ac: Accept only CLooG 0.18.1.
	* configure: Regenerate.

2014-07-17  Roman Gareev  <gareevroman@gmail.com>

	* configure.ac: Don't accept isl 0.11.
	* configure: Regenerate.

2014-07-16  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac: Don't accept isl 0.10.
	* configure: Regenerate.

2014-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Fix include path for in-tree cloog.
	* config/cloog.m4 (CLOOG_INIT_FLAGS): Remove bogus include path.
	* configure: Regenerate.

2014-06-18  Richard Henderson  <rth@redhat.com>

	* .gitignore: Import gcc_update output.

2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>

	* config-ml.in: Robustify ac_configure_args parsing.

	* configure.ac (--enable-linker-plugin-configure-flags)
	(--enable-linker-plugin-flags): New flags.
	(configdirs): Conditionally add libiberty-linker-plugin.
	* configure: Regenerate.
	* Makefile.def (host_modules): Add libiberty-linker-plugin.
	(host_modules) <lto-plugin>: Pay attention to
	@extra_linker_plugin_flags@ and
	@extra_linker_plugin_configure_flags@.
	(all-lto-plugin): Also depend on all-libiberty-linker-plugin.
	* Makefile.in: Regenerate.

	* Makefile.tpl (configure-[+prefix+][+module+])
	(configure-stage[+id+]-[+prefix+][+module+]): If specified, use
	"module_srcdir" instead of "module" for locating a module's srcdir.
	* Makefile.in: Regenerate.

2014-06-10  Matthew Fortune  <matthew.fortune@imgtec.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-06-06  Sebastian Pop  <sebpop@gmail.com>

	* MAINTAINERS: Update my email address.

2014-06-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-05-30  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/61011
	* configure.ac (--disable-libstdcxx): Set noconfigdirs correctly.
	Disable libcilkrts, libitm, libsanitizer when not building libstdc++.
	* configure: Regenerate.

2014-05-28  Pedro Alves  <palves@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* MAINTAINERS: Update my affiliation/email.

2014-05-19  Mike Stump  <mikestump@comcast.net>

	* MAINTAINERS: Add wide-int reviewers.

2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>

	* configure.ac (target_makefile_frag): Set for nios2-*-elf*.
	* configure: Regenerated.

2014-05-15  Torvald Riegel  <triegel@redhat.com>

	* MAINTAINERS (libitm): Add myself as maintainer.

2014-05-07  Charles Baylis  <charles.baylis@linaro.org>

	* MAINTAINERS (Write After Approval): Add myself.

2014-05-01  Richard Sandiford  <rdsandiford@googlemail.com>

	* config.sub, config.guess: Import from upstream.

2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>

	* MAINTAINERS (Write After Approval): Put myself in correct order.

2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2014-04-24  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* MAINTAINERS: Move myself from Reviewers to Write After Approval
	section.

2014-04-21 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>

	* MAINTAINERS (Write After Approval): Delete myself.

2014-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/56781
	* libtool-ldflags: Also prefix -static-lib*, -shared-lib*
	and -B* options with -Xcompiler.

2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/60620
	* Makefile.def (dependencies): Make gnattools depend on libstdc++-v3.
	* Makefile.in: Regenerate.

2014-03-28  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>

	* Makefile.def (dependencies): Make all-ld depend on all-binutils
	for WINDRES_FOR_TARGET in default-manifest.o rule.
	* Makefile.in: Regenerate.

2014-03-26  Dominique d'Humieres <dominiq@lps.ens.fr>

	* MAINTAINERS (Write After Approval): Add myself.

2014-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/56781
	* Makefile.def: Set bootstrap=true; for host fixincludes.
	* configure.ac: Don't bootstrap host fixincludes unless
	--with-build-config=bootstrap-{a,ub}san.
	* Makefile.in: Regenerated.
	* configure: Regenerated.

2014-03-21  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac: Move BUILD_CONFIG set up earlier.  Add
	--enable-vtable-verify option parsing.  Don't add
	target-libsanitizer to bootstrap_target_libs unless
	--with-build-config=bootstrap-asan or
	--with-build-config=bootstrap-ubsan.  Don't add target-libvtv
	to bootstrap_target_libs unless --enable-vtable-verify.
	* configure: Regenerated.

2014-03-10  Anatoly Sokolov <aesok@post.ru>

	* MAINTAINERS (Write After Approval): Add myself.

2014-03-07  Denis Chertykov  <chertykov@gmail.com>

	* MAINTAINERS: Remove avr maintainers: Anatoly Sokolov and Eric Weddington

2014-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/58572
	* Makefile.tpl (POSTSTAGE1_CXX_EXPORT): Use -isystem instead of
	-I for libstdc++-v3 includes if $(LEAN).
	* Makefile.in: Regenerated.

2014-03-04  Jonathan Wakely  <jwakely@redhat.com>

	* MAINTAINERS: Update my email address.

2014-02-24  Walter Lee  <walt@tilera.com>

	* configure.ac (tilepro-*-*) Change to tilepro*-*-*.
	(tilegx-*-*): Change to tilegx*-*-*.
	* configure: Regenerate.

2014-02-17  Loren J. Rittle  <ljrittle@acm.org>

	* MAINTAINERS (Various Maintainers: c++ runtime libs): Remove myself.

2014-02-17  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* MAINTAINERS (Write After Approval): Add myself.

2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/59788
	* ltmain.sh (opt_duplicate_compiler_generated_deps): Enable on
	*solaris2*.

2014-01-21  John David Anglin  <danglin@gcc.gnu.org>

	* MAINTAINERS: Update my email address.

2014-01-20  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS: Convert to UTF-8.
	Properly sort Xinliang David Li's entry.

2013-12-31  Chung-Lin Tang  <cltang@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* MAINTAINERS: Add Sandra Loosemore and Chung-Lin Tang as
	nios2 port maintainers.

2013-12-16  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* MAINTAINERS (Write After Approval): Add myself.

2013-12-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* configure.ac: Add user-friendly check for native x86_64-linux
	multilibs.
	* configure: Regenerate.

2013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>

	* MAINTAINERS: Add myself as sh maintainer.

2013-12-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* MAINTAINERS: Add self as SLSR maintainer.

2013-11-18  Jan Hubicka  <hubicka@ucw.cz>

	* MAINTAINERS: Update my email address.

2013-11-15  David Edelsohn  <dje.gcc@gmail.com>

	* MAINTAINERS (Global Reviewers, c++): Remove Mark Mitchell.

2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>

	* Makefile.in: Regenerate.

	* Makefile.tpl: Fix typo.
	* Makefile.in: Regenerate partially.

2013-11-04  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* configure.ac: Added libcilkrts to noconfig list when C++ is not
	supported.
	* configure: Regenerated.

2013-11-01  Trevor Saunders  <tsaunders@mozilla.com>

	* MAINTAINERS (Write After Approval): Add myself.

2013-10-30  Jason Merrill  <jason@redhat.com>

	* Makefile.tpl (STAGE1_CONFIGURE_FLAGS): Pass
	--disable-build-format-warnings.

2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* Makefile.def: Add libcilkrts to target_modules.  Make libcilkrts
	depend on libstdc++ and libgcc.
	* configure: Regenerate.
	* configure.ac: Added libcilkrts to target binaries.  Also, restrict
	libcilkrts for POSIX and i*86, and x86_64 architectures.
	* Makefile.in: Added libcilkrts related fields to support building it.

2013-10-26  Jeff Law  <law@redhat.com>

	* Makefile.def (target_modules): Remove libmudflap
	(languages): Remove check-target-libmudflap).
	* Makefile.in: Rebuilt.
	* Makefile.tpl (check-target-libmudflap-c++): Remove.
	* configure.ac (target_libraries): Remove target-libmudflap.
	Remove checks which disabled libmudflap on some systems.
	* configure: Rebuilt.
	* libmudflap: Directory removed.

2013-10-21  Cong Hou  <congh@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2013-10-16  Mike Stump  <mikestump@comcast.net>

	* .dir-locals.el: Add.

2013-10-15  David Malcolm  <dmalcolm@redhat.com>

	* configure.ac: Add --enable-host-shared
	* configure: Regenerate.

2013-01-10  Joern Rennecke  <joern.rennecke@embecosm.com>

	Import from savannah.gnu.org:
	* config.guess: Update to 2013-06-10 version.
	* config.sub: Update to 2013-10-01 version.

2013-10-01  Simon Cook  <simon.cook@embecosm.com>

	Changes to build configuration to allow big endian ARC ELF toolchain
	* configure.ac: Also add target-libgloss to noconfigdirs for arceb-*-*.
	* configure: Regenerate.

2013-09-20  Alan Modra  <amodra@gmail.com>

	* libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical
	ppc host match.  Support little-endian powerpc linux hosts.

2013-09-19  Dodji Seketeli  <dodji@redhat.com>

	* MAINTAINERS (diagnostic messages): Add myself as diagnostics
	maintainer.

2013-09-12  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS: Add Nick Clifton and DJ Delorie as msp430
	maintainers.

2013-09-03  Richard Biener  <rguenther@suse.de>

	* configure.ac: Also allow ISL 0.12.
	* configure: Regenerated.

2013-08-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* MAINTAINERS (Write After Approval): Add myself.

2013-08-27  David Malcolm  <dmalcolm@redhat.com>

	* MAINTAINERS (gdbhooks.py): Add myself as maintainer.

2013-08-26  Caroline Tice  <cmtice@google.com>

	* MAINTAINERS:  Correct earliers update:  Move myself from libvtv
	"Various Reviewers" to libvtv "Various Maintainers".

2013-08-20  Steven Bosscher  <steven@gcc.gnu.org>

	* MAINTAINERS: Add myself as RTL optimizers reviewer.

2013-08-19  Benjamin De Kosnik  <bkoz@gnu.org>

	* MAINTAINERS: Update name, email.

2013-08-13  Adam Butcher  <adam@jessamine.co.uk>

	* MAINTAINERS (Write After Approval): Add myself.

2013-08-12  Caroline Tice  <cmtice@google.com>

	* MAINTAINERS: Add myself as libvtv maintainer. Correct my email
	address in the Write After Approval section.

2013-08-09  Carlos O'Donell  <carlos@redhat.com>

	* MAINTAINERS (Write After Approval): Update email.

2013-08-08  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.ac: Adjust to check VTV_SUPPORTED.
	* configure: Regenerated.

2013-08-02  Caroline Tice  <cmtice@google.com>

	* configure.ac: Add target-libvtv to target_libraries; disable libvtv
	on non-linux systems; add target-libvtv to noconfigdirs; add
	libsupc++/.libs to C++ library search paths.
	* configure: Regenerated.
	* Makefile.def: Add libvtv to target_modules; make libvtv depend on
	libstdc++ and libgcc.
	* Makefile.in: Regenerated.

2013-07-19  Yvan Roux  <yvan.roux@linaro.org>

	* MAINTAINERS (Write After Approval): Add myself.

2013-07-19  Chung-Ju Wu  <jasonwucj@gmail.com>
	    Shiva Chen  <shiva0217@gmail.com>

	* MAINTAINERS (nds32 port): Add Chung-Ju Wu and Shiva Chen as
	nds32 port maintainers.

2013-07-17  Tim Shen  <timshen91@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2013-07-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* configure.ac: Sync from binutils.
	* configure: Regenerate.

2013-06-14  Vidya Praveen  <vidyapraveen@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2013-06-01  Dinar Temirbulatov  <dinar@kugelworks.com>

	* MAINTAINERS (Write After Approval): Add myself.

2013-05-17  David Malcolm  <dmalcolm@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2013-04-30  Brooks Moses  <bmoses@google.com>

	* MAINTAINERS: Update my email; move myself from Fortran
	reviewer to Write After Approval.

2013-04-16  Andreas Schwab  <schwab@suse.de>

	* configure.ac (aarch64-*-*): Don't disable java.
	* configure: Regenerate.

2013-04-10  Chung-Ju Wu  <jasonwucj@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2013-03-30  Matthias Klose  <doko@ubuntu.com>

	* Makefile.def (target_modules): Don't install libffi.
	* Makefile.in: Regenerate.

2013-02-24  Tilo Schwarz  <tilo@tilo-schwarz.de>

	* MAINTAINERS (Write After Approval): Add myself.

2013-02-20  Andrew Sutton  <andrew.n.sutton@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2013-02-15  Yufeng Zhang  <yufeng.zhang@arm.com>

	* configure.ac: Set libgloss_dir for the aarch64*-*-* targets.
	* configure: Regenerated.

2013-02-05  Ian Lance Taylor  <iant@google.com>

	PR go/55969
	* configure.ac: Disable libgo on some systems where it does not
	work.

2013-02-04  David Edelsohn  <dje.gcc@gmail.com>

	* MAINTAINERS: Explicitly add myself as AIX maintainer.
	Remove Geoff Keating as rs6000 port maintainer, at his request.

2013-01-24  Maxim Kuvyrkov  <maxim@kugelworks.com>

	* MAINTAINERS: Update my email.

2013-01-23  Shenghou Ma  <minux.ma@gmail.com>

	* configure: Re-generate.

2013-01-15  Richard Biener  <rguenther@suse.de>

	PR other/55973
	* configure: Re-generate.

2013-01-14  Matthias Klose  <doko@ubuntu.com>

	* Makefile.def (install-target-libsanitizer): Depend on
	install-target-libstdc++-v3.
	* Makefile.in: Regenerate.

2013-01-14  Richard Biener  <rguenther@suse.de>

	* configure.ac (cloog/isl): Also allow ISL 0.11.x and CLooG 0.18.0.
	* configure: Re-generate

2013-01-11  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config.sub: Update from config repo.

2013-01-11  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.tpl (BOOT_ADAFLAGS): Remove -gnata.
	* Makefile.in: Regenerate.

2013-01-10  Joern Rennecke  <joern.rennecke@embecosm.com>

	* MAINTAINERS (arc): Add new port maintainership for myself.

2013-01-09  Jason Merrill  <jason@redhat.com>

	* .gitignore: Import from gdb repository.

2013-01-09  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.def (configure-gcc): Depend on all-gmp.
	(all-gcc): Remove dependency on all-gmp.
	* Makefile.in: Regenerated.

2013-01-08  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config.sub: Merge from config repo.
	* config.guess: Ditto.

2013-01-08  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* Makefile.def: Merge from binutils.
	* Makefile.in: Ditto.

2013-01-01  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>

	* MAINTAINERS: Update my email.

2012-12-29  Ben Elliston  <bje@gnu.org>

	* config.guess: Update to 2012-12-29 version.
	* config.sub: Likewise.

2012-12-20  Matthias Klose  <doko@ubuntu.com>

	* Makefile.def (install-target-libgfortran): Depend on
	install-target-libquadmath, install-target-libgcc.
	(install-target-libsanitizer): Depend on install-target-libgcc.
	(install-target-libjava): Depend on install-target-libgcc.
	(install-target-libitm): Depend on install-target-libgcc.
	(install-target-libobjc): Depend on install-target-libgcc.
	(install-target-libstdc++-v3): Depend on install-target-libgcc.
	* Makefile.in: Regenerate.

2012-12-19  Matthias Klose  <doko@ubuntu.com>

	* Makefile.def (install-target-libgo): Depend on
	install-target-libatomic.
	* Makefile.in: Regenerate.

2012-12-18  Andreas Schwab  <schwab@linux-m68k.org>

	PR go/55201
	* Makefile.def (all-target-libgo): Depend on all-target-libatomic.
	* Makefile.in: Regenerate.

2012-12-16  Thomas Schwinge  <thomas@codesourcery.com>

	* configure.ac (ENABLE_GOLD): Consider *-*-gnu* targets ELF.
	* configure: Regenerate.

2012-12-12  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config.sub: Merge from config repo.

2012-12-11  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.def (target_modules): Add bootstrap=true and
	raw_cxx=true to libsanitizer.
	* configure.ac (bootstrap_target_libs): Add libsanitizer.
	* Makefile.in: Regenerated.
	* configure: Likewise.

2012-12-01  Richard Sandiford  <rdsandiford@googlemail.com>

	* MAINTAINERS: Remove self as RTL optimization maintainer.

2012-11-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-11-28  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.def (target_modules): Remove bootstrap=true and
	raw_cxx=true from libsanitizer.
	* configure.ac (bootstrap_target_libs): Remove libsanitizer.
	* Makefile.in: Regenerated.
	* configure: Likewise.

2012-11-28  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.def (target_modules): Add bootstrap=true and
	raw_cxx=true to libsanitizer.
	* configure.ac (bootstrap_target_libs): Add libsanitizer.
	* Makefile.in: Regenerated.
	* configure: Likewise.

2012-11-28  Andrew Pinski  <apinski@cavium.com>

	PR bootstrap/54279
	* configure.ac (CXX_FOR_TARGET): Change over to use xg++.
	* configure: Regenerate.
	* Makefile.tpl (POSTSTAGE1_CXX_EXPORT): Change over to use xg++.
	* Makefile.in: Regenerate.

2012-11-27  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* configure.ac: Disable libsanitizer if we're not building C++.
	* configure: Regenerate.

2012-11-15  Roland McGrath  <roland@hack.frob.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-11-15  Dmitry Vyukov  <dvyukov@google.com>

	* MAINTAINERS: (libsanitizer, asan.c): Add myself,
	Kostya Serebryany (kcc@google.com) and
	Jakub Jelinek (jakub@redhat.com).
	Rename area for Dodji Seketeli (dodji@redhat.com).

2012-11-15  Dodji Seketeli  <dodji@redhat.com>

	* MAINTAINERS: (asan.c, related): Add myself.

2012-11-14  Roland McGrath  <mcgrathr@google.com>

	* configure.ac (ENABLE_GOLD): Consider *-*-nacl* targets ELF.
	* configure: Regenerate.

2012-11-13  Richard Henderson  <rth@redhat.com>

	* configure.ac: Move libsanitizer logic to subdirectory.
	* configure: Regenerate.

2012-11-13  Dodji Seketeli  <dodji@redhat.com>

	* configure.ac: Enable libsanitizer just on x86 linux for now.
	* configure: Re-generate.

2012-11-13  David Edelsohn  <dje.gcc@gmail.com>

	* configure.ac: Disable libsanitizer on AIX. Merge libquadmath
	sections.
	* configure: Regenerate.

2012-11-13  Hans-Peter Nilsson  <hp@axis.com>

	* configure.ac: Add section for configdirs for libsanitizer.
	Disable for cris-*-* and mmix-*-*.
	* configure: Regenerate.

2012-11-12  Wei Mi <wmi@google.com>

	* configure.ac: Add libsanitizer to target_libraries.
	* Makefile.def: Ditto.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* libsanitizer: New directory for asan runtime.  Contains an empty
	tsan directory.

2012-11-03  Corinna Vinschen  <corinna@vinschen.de>

	* configure.ac (FLAGS_FOR_TARGET,target=cygwin): Fix for building
	against Mingw64 w32api.
	* configure: Regenerate.

2012-11-03  H.J. Lu  <hongjiu.lu@intel.com>

	* configure: Regenerated.

2012-11-03  Robert Mason  <rbmj@verizon.net>

	* configure.ac: add --disable-libstdcxx configure option
	and handle defaulted state only for VxWorks, ARM-wince-pe and AVR.

2012-10-30  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-10-26  James Greenhalgh  <james.greenhalgh@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-10-24  Sharad Singhai  <singhai@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-10-24  Eric Christopher  <echristo@gmail.com>

	* MAINTAINERS: Update email address.

2012-10-23  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/54820
	* configure.ac (have_static_libs): Force 'no' for GCC version < 4.5.
	* configure: Regenerate.

2012-10-23  Richard Earnshaw  <rearnsha@arm.com>

	* MAINTAINERS (aarch64): Add Marcus and myself.

2012-10-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/54820
	* Makefile.tpl (STAGE1_FLAGS_TO_PASS): New variable.
	(all-[+prefix+][+module+]): Pass stage1_args to sub-makes.
	(all-stage[+id+]-[+prefix+][+module+]): Likewise, if prev is false.
	(clean-stage[+id+]-[+prefix+][+module+]): Likewise, if prev is false.
	(host_modules): Set stage1_args to STAGE1_FLAGS_TO_PASS.
	* Makefile.in: Regenerate.
	* configure.ac (have_static_libs): New variable and associated check.
	(stage1-ldflags): Move to after stage1_libs and set to -static-libstdc++
	-static-libgcc if stage1_libs is empty and have_static_libs is yes.
	* configure: Regenerate.

2012-10-10  Richard Biener  <rguenther@suse.de>

	* MAINTAINERS: Adjust for changed surname.

2012-10-04  Lawrence Crowl  <crowl@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-10-01  Cary Coutant  <ccoutant@google.com>

	* MAINTAINERS: Add myself as dwarf debugging code maintainer.

2012-09-28  Ian Lance Taylor  <iant@google.com>

	* Makefile.def: Make all-target-libgo depend on
	all-target-libbacktrace.
	* Makefile.in: Rebuild.

2012-09-26  Ian Lance Taylor  <iant@google.com>

	* Makefile.def: Make all-gcc depend on all-libbacktrace.
	* Makefile.in: Rebuild.

2012-09-20  Walter Lee  <walt@tilera.com>

	* configure.ac: Add tilegx to list of targets that support gold.
	* configure: Regenerate.

2012-09-20  Marek Polacek  <polacek@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-09-19  Steve Ellcey  <sellcey@mips.com>

	* configure.ac: Add mips*-mti-elf* target.
	* configure: Regenerate.

2012-09-17  Ian Lance Taylor  <iant@google.com>

	* MAINTAINERS (Various Maintainers): Add libbacktrace.
	* configure.ac (host_libs): Add libbacktrace.
	(target_libraries): Add libbacktrace.
	* Makefile.def (host_modules): Add libbacktrace.
	(target_modules): Likewise.
	* configure, Makefile.in: Rebuild.

2012-09-14  David Edelsohn  <dje.gcc@gmail.com>

	PR target/38607
	Merge upstream change.
	* libtool.m4 (_LT_COMPILER_PIC): Add -fPIC to GCC and GXX for AIX.

	* configure.ac: Add target-libquadmath to noconfigdirs for AIX.
	Add libgomp*.o to compare_exclusions for AIX.
	* configure: Regenerate.

2012-09-06  Diego Novillo  <dnovillo@google.com>

	* configure.ac: Bump minimum GMP version to 4.2.3.
	* configure: Re-generate.

2012-09-05  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54461
	* configure.ac (noconfigdirs,target=avr-*-*): Add target-newlib,
	target-libgloss if not configured --with-avrlibc=no.
	* configure: Regenerate.

2012-09-04  Jason Merrill  <jason@redhat.com>

	* configure.ac: Fix --enable-languages=all.

2012-09-04  Christophe Lyon  <christophe.lyon@st.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	PR bootstrap/54138
	* configure.ac: Re-organize ISL / CLOOG checks to allow
	disabling with either --without-isl or --without-cloog.
	* configure: Regenerated.

2012-09-03  Georg-Johann Lay  <avr@gjlay.de>

	* configure.ac (noconfigdirs,target=avr): Add target-libquadmath.
	* configure: Regenerate.

2012-08-27  Ulrich Drepper  <drepper@gmail.com>

	* MAINTAINERS: Fix my email address.

2012-08-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/4970
	* Makefile.def (host_modules): Rmove lib_path=.libs from bfd
	and opcodes.
	* Makefile.in: Regenerated.

2012-08-26  Art Haas <ahaas@impactweather.com>

	* configure: Regenerate.

2012-08-25  Křištof Želechovski <giecrilj@stegny.2a.pl>

	* INSTALL/README: Also refer to the online installation
	instructions.

2012-08-21  Hariharan Sandanagobalane <hariharan.gcc@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.
	(Picochip port): Remove myself.

2012-08-14   Diego Novillo  <dnovillo@google.com>

	Merge from cxx-conversion branch.

	* Makefile.tpl (STAGE[+id+]_CXXFLAGS): Remove
	POSTSTAGE1_CONFIGURE_FLAGS.
	* Makefile.in: Regenerate.
	* configure.ac (ENABLE_BUILD_WITH_CXX): Remove.  Update all users.
	Force C++ when bootstrapping.
	* configure: Regenerate.

2012-07-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* MAINTAINERS (Write After Approval): Add myself.

2012-07-16  Joseph Myers  <joseph@codesourcery.com>

	* README: Document use of ranges of years in copyright notices.

2012-07-06  Richard Guenther  <rguenther@suse.de>

	* Makefile.def (cloog): Pass $(HOST_GMPINC) and $(HOST_ISLINC)
	as CPPFLAGS, pass path to built gmp as LDFLAGS, always use
	--with-gmp=system.
	* Makefile.in: Regenerated.
	* configure: Likewise.

2012-07-06  Richard Guenther  <rguenther@suse.de>

	* configure.ac (extra_isl_gmp_configure_flags): Initialize and subst.
	* Makefile.def (isl): Use extra_isl_gmp_configure_flags and
	supply V=1 as extra_make_flags.
	* configure: Regenerated.
	* Makefile.in: Likewise.

2012-07-04  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

2012-07-03  Richard Guenther  <rguenther@suse.de>

	* Makfile.def (isl): Remove not necessary extra_exports and
	extra_make_flags.
	(cloog): Use $$CPPFLAGS instead of ${CPPFLAGS}.
	* Makefile.in: Regenerated.

2012-07-03  Richard Guenther  <rguenther@suse.de>

	* Makefile.def (cloog): Add V=1 to extra_make_flags.
	* configure.ac: If either the ISL or the CLooG check failed
	do not try to build in-tree versions.
	* Makefile.in: Regenerated.
	* configure: Regenerated.

2012-07-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure: Regenerate.

2012-07-02  Janis Johnson  <janisjo@codesourcery.com>

	* MAINTAINERS (Various Maintainers): Add myself as testsuite
	maintainer.

2012-07-02  Richard Guenther  <rguenther@suse.de>

	* configure: Regenerated.

2012-07-02  Richard Guenther  <rguenther@suse.de>
	Michael Matz  <matz@suse.de>
	Tobias Grosser <tobias@grosser.es>
	Sebastian Pop <sebpop@gmail.com>

	* Makefile.def: Add ISL host module, remove PPL host module.
	Adjust ClooG host module to use the proper ISL.
	* Makefile.tpl: Pass ISL include flags instead of PPL ones.
	* configure.ac: Include config/isl.m4.  Add ISL host library,
	remove PPL.  Remove PPL configury, add ISL configury, adjust
	ClooG configury.
	* Makefile.in: Regenerated.
	* configure: Likewise.

2012-07-02  Richard Guenther  <rguenther@suse.de>

	Merge from graphite branch
	2011-07-21  Tobias Grosser  <tobias@grosser.es>

	* configure: Regenerated.
	* config/cloog.m4: Remove support for CLooG-ppl and CLooG-parma,
	both cloog.org and legacy versions. The only supported version will
	be CLooG with the isl backend.

	2011-07-21  Tobias Grosser  <tobias@grosser.es>

	* configure: Regenerated.
	* configure.ac: Require cloog isl 0.17.0

	2011-07-21  Tobias Grosser  <tobias@grosser.es>

	* configure: Regenerated.
	* config/cloog.m4: Do not define CLOOG_ORG

2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>

	* configure.ac: Skip C if explicitly selected.
	* configure: Regenerate.

2012-06-28  Christophe Lyon <christophe.lyon@st.com>

	* configure.ac (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Make sure
	they contain -O2.
	* configure: Regenerate.

2012-06-25  Richard Sandiford  <rdsandiford@googlemail.com>

	PR debug/53740
	* df.h, df-problems.c, dce.c: Revert last patch.

2012-06-25  Iain Sandoe  <iain@codesourcery.com>

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

2012-06-21  Meador Inge  <meadori@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-06-20  Jason Merrill  <jason@redhat.com>

	* Makefile.tpl (check-target-libgomp-c++): New.
	(check-target-libitm-c++): New.
	* Makefile.def (c++): Add them.
	* Makefile.in: Regenerate.

2012-05-29  Edmar Wienskoski  <edmar@freescale.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-05-16  Olivier Hainque  <hainque@adacore.com>

	* Makefile.tpl (gcc-no-fixedincludes): Rename into ...
	(gcc-install-no-fixedincludes): Now forwarder to local target in gcc/
	(install-no-fixedincludes): Adjust accordingly.
	* Makefile.in: Regenerate.

2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>

	Merge upstream change
	* libtool.m4 (_LT_ENABLE_LOCK): Support x32.

2012-05-14  Marc Glisse  <marc.glisse@inria.fr>

	* MAINTAINERS (Write After Approval): Add myself.

2012-05-09  Nick Clifton  <nickc@redhat.com>
	    Paul Smith  <psmith@gnu.org>

	PR bootstrap/50461
	* configure.ac (mpfr-dir): When using in-tree MPFR sources
	allow for the fact that from release v3.1.0 of MPFR the source
	files were moved into a src sub-directory.
	* configure: Regenerate.

2012-05-07  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac: Bump minimum MPFR version to 2.4.0.
	* configure: Regenerated.

2012-05-01  Richard Henderson  <rth@redhat.com>

	* Makefile.def (libatomic): New target_module.
	* configure.ac (target_libraries): Add libatomic.
	(noconfigdirs): Check if libatomic is supported.
	* Makefile.in, configure: Rebuild.

2012-05-01  Greta Yorsh  <Greta.Yorsh@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-04-25  Joel Brobecker  <brobecker@adacore.com>

	* config.sub: Update to 2012-04-18 version from official repo.

2012-04-24  Naveen H.S  <naveen.S@kpitcummins.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-04-11  Steve Ellcey  <sellcey@mips.com>

	* MAINTAINERS: Changed email address.

2012-03-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52737
	* contrib/gcc_update (files_and_dependencies):
	Remove gcc/config/avr/t-multilib from touch data.

2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* MAINTAINERS (OS Port Maintainers): Remove irix.
	* configure.ac (enable_libgomp): Remove *-*-irix6*.
	(unsupported_languages): Remove mips-sgi-irix6.*.
	(noconfigdirs): Don't add ${libgcj} for mips*-*-irix6*.
	(with_stabs): Remove.
	* configure: Regenerate.

2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* MAINTAINERS (OS Port Maintainers): Remove osf.
	* configure.ac (enable_libgomp): Remove *-*-osf*.
	(with_stabs): Remove alpha*-*-osf*.
	* configure: Regenerate.

2012-03-05  Tristan Gingold  <gingold@adacore.com>

	* configure.ac: Enable gdb and readline for ia64*-*-*vms*.
	* configure: Regenerate.

2012-02-17  Walter Lee  <walt@tilera.com>

	* MAINTAINERS: (Write After Approval): Delete myself.

2012-02-14  Walter Lee  <walt@tilera.com>

	* MAINTAINERS (tilegx port): Add myself.
	(tilepro port): Add myself.
	(Write After Approval): Add myself.

2012-02-12  Gerald Pfeifer  <gerald@pfeifer.com>

	* MAINTAINERS (Various Maintainers): Add Diego Novillo, Gerald Pfeifer
	and Joseph Myers as docstring relicensing maintainers.

2012-02-09  Bin Cheng  <bin.cheng@arm.com>

	* MAINTAINERS (write-after-approval): Add myself.

2012-02-08  Ira Rosen <irar@il.ibm.com>

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

2012-02-04  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* MAINTAINERS (Write After Approval): Move myself to
	maintain alphabetical order.

2012-02-03  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-02-02  Jayant R Sonar <jayant.sonar@kpitcummins.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-02-02  Sumanth G <sumanth.gundapaneni@kpitcummins.com>
	    Jayant R Sonar <jayant.sonar@kpitcummins.com>

	* configure.ac (cr16-*-*): Remove nonconfigdirs.
	* configure: Regenerate.

2012-01-23  Harshit Chopra  <harshit@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2012-01-22  Douglas B Rupp  <rupp@ngnat.com>

	* configure.ac: Remove reference to mh-interix.
	* configure: Regenerate.

2012-01-05  Richard Henderson  <rth@redhat.com>

	PR bootstrap/51072
	* configure.ac: Disable libitm if c++ is not enabled.
	* configure: Rebuild.

	* configure.ac: Fix regexp for same.
	* configure: Rebuild.

2012-01-02  Balaji V. Iyer  <bviyer@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	PR bootstrap/51686
	* Makefile.def (install-strip-gcc): Depend on install-strip-lto-plugin.
	* Makefile.in: Regenerate.

2011-12-28  Oleg Endo  <olegendo@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2011-12-18  Eric Botcazou  <ebotcazou@adacore.com>

	* configure: Regenerate.

2011-12-14  Hariharan Sandanagobalane  <hariharan.gcc@gmail.com>

	* MAINTAINERS (picochip): Changed email address.

2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* MAINTAINERS (write-after-approval): Add self.

2011-11-29  DJ Delorie  <dj@redhat.com>

	* configure.ac (rl78-*-*) New case.
	* configure: Regenerate.
	* MAINTAINERS: Add myself as RL78 maintainer.

2011-11-21  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* MAINTAINERS: Add self as co-maintainer of the Ada front end.

2011-11-21  Andreas Tobler  <andreast@fgznet.ch>

	* libtool.m4: Additional FreeBSD 10 fixes.

2011-11-21  Joern Rennecke  <joern.rennecke@embecosm.com>

	* MAINTAINERS: Move myself from Write After Approval to CPU Port
	Maintainers section, as Epiphany maintainer.

2011-11-18  Iain Sandoe  <iains@gcc.gnu.org>

	PR target/49992
	* configure.ac: Remove ranlib special-casing for Darwin.
	* configure: Regenerate.

2011-11-12  Andrey Belevantsev  <abel@ispras.ru>

	* MAINTAINERS (Reviewers): Keep the list sorted.

2011-11-11  Andrey Belevantsev  <abel@ispras.ru>

	* MAINTAINERS (Selective Scheduling): Add myself as a reviewer.

2011-11-09  Roland McGrath  <mcgrathr@google.com>

	* configure.ac: Add tool checks for READELF and READELF_FOR_TARGET.
	* configure: Rebuild.
	* Makefile.def (flags_to_pass): Add READELF_FOR_TARGET.
	* Makefile.tpl (READELF, READELF_FOR_TARGET): New variables.
	(HOST_EXPORTS): Add READELF, READELF_FOR_TARGET.
	(BASE_FLAGS_TO_PASS): Add READELF_FOR_TARGET.
	(BASE_TARGET_EXPORTS, EXTRA_HOST_FLAGS, EXTRA_TARGET_FLAGS):
	Add READELF.
	* Makefile.in: Rebuild.

2011-11-09  Jason Merrill  <jason@redhat.com>

	* Makefile.def (language=c++): Remove check-c++0x.
	* Makefile.in (check-gcc-c++): Regenerate.

2011-11-08  Richard Henderson  <rth@redhat.com>

	* configure.ac: Test for libitm directory present first.

	* configure.ac: Adjust srcdir for running libitm/configure.tgt.

	* configure.ac: Test libitm/configure.tgt to disable libitm.
	* configure: Rebuild.

2011-11-07  Aldy Hernandez  <aldyh@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	Merged from transactional-memory.

	* Makefile.def (lang_env_dependencies): libitm is c++.
	Add libitm target module.
	* configure.ac: Likewise.
	* config/mmap.m4: New file.
	* contrib/gcc_update: Add libitm to touch data.
	* Makefile.in, configure: Rebuild.

2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.tpl (EXTRA_GCC_FLAGS): Remove LIBGCC2_CFLAGS,
	LIBGCC2_DEBUG_CFLAGS, LIBGCC2_INCLUDES.
	* Makefile.in: Regenerate.

2011-11-01  DJ Delorie  <dj@redhat.com>

	* config.sub: Update to version 2011-10-29 (added rl78)

2011-10-27  Nick Clifton  <nickc@redhat.com>

	* config.sub: Import these changes from the config project:

	2011-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
	    Ben Elliston  <bje@gnu.org>

	* config.sub (epiphany): New.

	2011-09-09  Linas Vepstas  <linasvepstas@gmail.com>
	    Ben Elliston  <bje@gnu.org>

	* config.sub (hexagon, hexagon-*): New.

	2011-08-23  Roland McGrath  <mcgrathr@google.com>

	* config.sub: Rename 32eb to be32, 32el to le32, 64el to le64, and
	64eb to be64.

	2011-08-16  Roland McGrath  <mcgrathr@google.com>

	* config.sub (32eb, 32el, 64eb, 64el): New (pseudo-)CPUs.
	(nacl): Grok as alias for 32el-unknown-nacl.

2011-10-25  Kirill Yukhin  <kirill.yukhin@intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2011-10-24  Teresa Johnson  <tejohnson@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2011-09-21  Jakub Jelinek  <jakub@redhat.com>

	* MAINTAINERS (sparc port): Remove myself.

2011-09-14  Tom de Vries  <tom@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2011-08-14  Yao Qi  <yao@codesourcery.com>

	* configure.ac (tic6x-*-*): Remove gdb from noconfigdirs.
	* configure: Regenerate.

2011-07-26  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Set have_compiler based on whether gcc directory
	exists, rather than on whether gcc is in configdirs.
	* configure: Rebuild.

2011-07-21  Joseph Myers  <joseph@codesourcery.com>

	* MAINTAINERS (Global Reviewers): Add self.

2011-07-20  David Edelsohn  <dje.gcc@gmail.com>

	* Makefile.tpl (POSTSTAGE1_CONFIGURE_FLAGS): Add libsupc++ to
	link directories.
	* Makefile.in: Rebuild.

2011-07-20  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/49787
	* configure.ac: Move --enable-bootstrap handling earlier in file.
	If --enable-bootstrap and either --enable-build-with-cxx or
	--enable-build-poststage1-with-cxx, enable C++ automatically.
	* configure: Rebuild.

2011-07-19  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Add --enable-build-poststage1-with-cxx.  If set,
	make C++ a boot_language.  Set and substitute
	POSTSTAGE1_CONFIGURE_FLAGS.
	* Makefile.tpl (POSTSTAGE1_CONFIGURE_FLAGS): New variable.
	(STAGE[+id+]_CONFIGURE_FLAGS): Add $(POSTSTAGE1_CONFIGURE_FLAGS).
	* configure, Makefile.in: Rebuild.

2011-07-19  Vladimir Makarov  <vmakarov@redhat.com>

	* MAINTAINERS (Register Allocation): Move myself from reviewers to
	maintainers.

2011-07-18  Jakub Jelinek  <jakub@redhat.com>

	* MAINTAINERS (Global Reviewers): Add myself.

2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure: Regenerate.

2011-07-16  Jason Merrill  <jason@redhat.com>

	* Makefile.def (language=c++): Add check-c++0x and
	check-target-libmudflap-c++.
	* Makefile.tpl (check-target-libmudflap-c++): New.
	* Makefile.in: Regenerate.

2011-07-16  Matthias Klose  <doko@ubuntu.com>

	* Makefile.tpl (EXTRA_CONFIGARGS_LIBJAVA): Define.
	* Makefile.def (target_modules/libjava): Pass
	$(EXTRA_CONFIGARGS_LIBJAVA).
	* configure.ac: Pass --disable-static in EXTRA_CONFIGARGS_LIBJAVA,
	if not configured with --enable-static-libjava.
	* Makefile.in: Regenerate.
	* configure: Likewise.

2011-07-15  Jason Merrill  <jason@redhat.com>

	* Makefile.in (check-c++): Move check-gcc-c++0x after
	check-target-libstdc++-v3.

2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>

	* MAINTAINERS (c6x port): New entry.

2011-07-13  Jason Merrill  <jason@redhat.com>

	* Makefile.in (check-gcc-c++0x): New.
	(check-c++): Depend on it.

2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/39150
	* configure.ac (i[3456789]86-*-solaris2*): Also accept
	x86_64-*-solaris2.1[0-9]*.
	* configure: Regenerate.

2011-06-29  Richard Sandiford  <rdsandiford@googlemail.com>

	* MAINTAINERS (RTL optimizers): Add self.

2011-06-27  Gabriel Charette  <gchare@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2011-06-22  Hans-Peter Nilsson  <hp@axis.com>

	PR regression/47836
	PR bootstrap/23656
	PR other/47733
	PR bootstrap/49247
	PR c/48825
	* configure.ac (target_libraries): Remove target-libiberty.
	Remove case-statement setting skipdirs=target-libiberty for
	multiple targets.  Remove checking target_configdirs and
	removing target-libiberty but keeping target-libgcc if
	otherwise empty.
	* Makefile.def (target_modules): Don't add libiberty.
	(dependencies): Remove all traces of target-libiberty.
	* configure, Makefile.in: Regenerate.

2011-06-13  Walter Lee <walt@tilera.com>

	* configure.ac (tilepro-*-*) New case.
	(tilegx-*-*): Likewise.
	* configure: Regenerate.

2011-06-06  Jing Yu  <jingyu@google.com>

	* configure.ac: Skip target-libiberty for
	arm*-*-linux-androideabi.
	* configure: Regenerated.

2011-06-06  Nick Clifton  <nickc@redhat.com>

	* config.sub: Sync from upstream.

2011-06-05  Nenad Vukicevic  <nenad@intrepid.com>

	* MAINTAINERS (Write After Approval): Add myself.

2011-06-01  Daniel Jacobowitz  <drow@false.org>

	* MAINTAINERS: Update my email address.

2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>

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

2011-05-11  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2011-05-08  Doug Kwan  <dougkwan@google.com>

	* configure.ac: Propagate LDFLAGS_FOR_TARGET.
	* configure: Regenerated.
	* Makefile.tpl (LDFLAGS_FOR_TARGET): Use LDFLAGS_FOR_TARGET
	value from configure.
	* Makefile.in: Regenerated.

2011-05-05  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (alpha*-dec-osf*, i[[3456789]]86-*-rdos*,
	sh*-*-pe|mips*-*-pe|arm-wince-pe, sparc-*-sunos4*, *-*-aix*,
	*-*-beos*, *-*-chorusos, *-*-dragonfly*, *-*-freebsd*, *-*-linux*
	| *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu, *-*-lynxos*,
	*-*-mingw*, *-*-netbsd*, *-*-netware*, *-*-tpf*, *-*-uclinux*,
	*-*-vxworks*): Disable newlib and libgloss in separate case
	statement.
	(i[[3456789]]86-*-linux*): Move logic allowing newlib to be built
	to separate case statement.
	(*-*-chorusos, *-*-dragonfly*, *-*-freebsd*, *-*-netbsd*,
	*-*-netware*, *-*-tpf*, *-*-uclinux*, *-*-vxworks*,
	alpha*-dec-osf*, alpha*-*-linux*, am33_2.0-*-linux*, sh-*-linux*,
	sh*-*-pe|mips*-*-pe|*arm-wince-pe, arm-*-coff, arm-*-elf* |
	arm*-*-eabi*, arm*-*-linux-gnueabi, arm*-*-symbianelf*, avr-*-*,
	bfin-*-*, cris-*-* | crisv32-*-*, frv-*-*, i[[3456789]]86-*-coff |
	i[[3456789]]86-*-elf, i[[3456789]]86-w64-mingw*,
	i[[3456789]]86-*-mingw*, x86_64-*-mingw*,
	i[[3456789]]86-*-interix*, i[[3456789]]86-*-beos*,
	i[[3456789]]86-*-rdos*, m32r-*-*,
	m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*, m68k-*-elf*, m68*-*-*
	| fido-*-*, powerpc-*-aix*, powerpc-*-beos*, powerpc-*-eabi,
	powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems*,
	rs6000-*-lynxos*, rs6000-*-aix*, mips*-*-linux*, sparclet-*-aout*
	| sparc86x-*-*, sparc-*-elf*, sparc64-*-elf*, sparclite-*-*,
	sparc-*-sunos4*, sparc-*-solaris* | sparc64-*-solaris* |
	sparcv9-*-solaris*, *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu |
	*-*-kopensolaris*-gnu, *-*-lynxos*, *-*-*): Don't disable newlib
	and libgloss in main case over targets.  Remove most empty cases
	in main case over targets.
	* configure: Regenerate.

2011-05-04  Janis Johnson  <janisjo@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2011-05-04  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Remove code setting special library locations for
	hppa*64*-*-hpux11*.  Remove code setting compiler for
	sparc-sun-solaris2*.
	* configure: Regenerate.

2011-05-04  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Separate libgloss_dir settings from general case
	over targets.
	* configure: Regenerate.

2011-04-28  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (*-*-dragonfly*, *-*-freebsd*, *-*-netbsd*,
	alpha*-dec-osf*, alpha*-*-linux*, alpha*-*-*, sh-*-linux*,
	arm-*-elf* | arm*-*-eabi*, arm*-*-linux-gnueabi, frv-*-*): Remove
	cases in libgcj-disabling case statement.
	(hppa*64*-*-linux*): Set unsupported_languages instead of
	disabling target-zlib.
	(hppa*64*-*-*): Restrict case in libgcj-disabling case statement
	to hppa*64*-*-hpux*.
	(hppa*-*-*): Restrict case in libgcj-disabling case statement to
	hppa*-*-hpux*.
	(ia64*-*-elf*, ia64*-**-hpux*, i[[3456789]]86-*-elf,
	i[[3456789]]86-*-linux*, *-*-cygwin*, i[[3456789]]86-*-interix*,
	i[[3456789]]86-*-solaris2*, m32r-*-*, m68k-*-elf*, m68*-*-* |
	fido-*-*, powerpc-*-eabi, powerpc-*-eabi* | powerpcle-*-eabi* |
	powerpc-*-rtems*, mips*-*-linux*, mips*-*-*, sh-*-* | sh64-*-*,
	sparc-*-elf*, sparc64-*-elf*, sparc-*-solaris* |
	sparc64-*-solaris* | sparcv9-*-solaris*, *-*-linux* | *-*-gnu* |
	*-*-k*bsd*-gnu | *-*-kopensolaris*-gnu, *-*-*): Remove cases in
	libgcj-disabling case statement.
	* configure: Regenerate.

2011-04-28  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Disable Java for targets not supporting libffi.
	(*-*-chorusos, *-*-kaos*, am33_2.0-*-linux*, sh*-*-pe|mips*-*-pe):
	Remove cases in Java-disabling statement.
	(*arm-wince-pe): Change to arm-wince-pe.
	(arc-*-*, arm-*-coff, arm-*-pe*, arm-*-riscix*, avr-*-*): Remove
	cases in Java-disabling statement.
	(bfin-*-*): Don't disable Java again.
	(c4x-*-* | tic4x-*-*, tic54x-*-*, cr16-*-*, d10v-*-*, d30v-*-*,
	fr30-*-elf*, moxie-*-*, h8300*-*-*, h8500-*-*, hppa1.1-*-osf* |
	hppa1.1-*-bsd*, hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-openbsd*,
	hppa*-*-pro*, i960-*-*, i[[3456789]]86-*-coff,
	i[[3456789]]86-*-pe, i[[3456789]]86-*-sco3.2v5*,
	i[[3456789]]86-*-sco*, i[[3456789]]86-*-sysv4*,
	i[[3456789]]86-*-beos*, i[[3456789]]86-*-rdos*,
	m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*): Remove cases in
	Java-disabling statement.
	(mmix-*-*): Don't disable Java again.
	(mt-*-*, powerpc*-*-winnt* | powerpc*-*-pe*, powerpcle-*-solaris*,
	powerpc-*-beos*, rs6000-*-lynxos*, rs6000-*-*, m68k-apollo-*,
	microblaze*, mips*-sde-elf*, mips*-*-irix5*, mips*-*-bsd*,
	sparclet-*-aout* | sparc86x-*-*, sparclite-*-*, sparc-*-sunos4*,
	tic6x-*-*, v810-*-*, vax-*-*): Remove cases in Java-disabling
	statement.
	* configure: Regenerate.

2011-04-28  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Separate cases disabling Java and Java libraries
	from general case over targets.
	* configure: Regenerate.

2011-04-21  Jie Zhang  <jzhang918@gmail.com>

	* MAINTAINERS: Update my email address.

2011-04-20  Easwaran Raman  <eraman@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2011-04-18  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR lto/48086
	* configure.ac: Re-enable LTO on *-apple-darwin9*.
	* configure: Regenerate.

2011-04-16  Jim Meyering  <meyering@redhat.com>

	* MAINTAINERS (Write After Approval): Add myself.

2011-04-15  Dodji Seketeli  <dodji@redhat.com>

	* MAINTAINERS: Update my email address.

2011-04-13  Georg-Johann Lay  <avr@gjlay.de>

	* MAINTAINERS (Write After Approval): Add myself.

2011-04-12  Yufeng Zhang  <yufeng.zhang@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2011-04-07  Stuart Henderson  <shenders@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2011-04-06  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (build_tools): Remove build-byacc.
	(host_libs): Remove mmalloc.
	(host_tools): Remove byacc make patch prms send-pr ash bash bzip2
	autoconf automake libtool diff rcs fileutils shellutils time
	textutils wdiff find uudecode hello tar gzip indent recode release
	sed perl gawk findutils gettext zip.
	(libgcj): Remove target-qthreads.
	(target_tools): Remove target-examples target-gperf.
	(YACC): Don't handle building byacc.
	* configure: Regenerate.
	* Makefile.def (ash, autoconf, automake, bash, byacc, bzip2, diff,
	dosutils, examples, fileutils, find, findutils, gawk, gettext,
	gnuserv, gperf, gzip, hello, indent, libtool, make, mmalloc,
	patch, perl, prms, qthreads, rcs, recode, release, sed, send-pr,
	shellutils, tar, textutils, time, uudecode, wdiff, zip): Don't
	handle building components.
	* Makefile.in: Regenerate.

2011-04-05  Sterling Augustine <augustine.sterling@gmail.com>

	* MAINTAINERS: Update my email address as Xtensa maintainer.

2011-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* config.sub: Sync from upstream.

2011-04-01  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (avr-*-*): Add comment about why libssp is disabled.
	(microblaze*): Don't disable libssp.
	* configure: Regenerate.

2011-04-01  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Remove code setting CONFIG_SHELL, config_shell and
	moveifchange.
	* configure: Regenerate.
	* Makefile.tpl: Use @SHELL@ not @config_shell@.
	* Makefile.in: Regenerate.

2011-04-01  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (*-*-sysv4*): Don't enable libgomp.
	(alpha*-*-*vms*, i[[34567]]86-*-sco3.2v5*, mn10300-*-*,
	powerpc-*-chorusos*, powerpc*-*-eabi*, powerpc*-*-sysv*,
	powerpc*-*-kaos*, s390x-ibm-tpf*, sparc64-*-elf*, v850*-*-*,
	xtensa*-*-elf*, *-*-beos*, *-*-elf*, *-*-netware*, *-*-rtems*,
	*-*-sysv[[45]]*, *-*-vxworks*, *-wrs-windiss): Remove
	md_exec_prefix cases.
	* configure: Regenerate.

2011-04-01  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Separate cases disabling target-libssp,
	target-libiberty, target-libstdc++-v3 and Fortran from general
	case over targets.
	* configure: Regenerate.

2011-04-01  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (*-*-chorusos): Don't disable libgcj.
	(*-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*):
	Remove case.
	(*-*-kaos*): Don't disable GCC libraries, zlib or fastjar.
	(arm-*-coff): Don't disable libgcj.
	(arm*-*-linux-gnueabi): Remove useless assignment.
	(arm-*-riscix*): Don't disable libgcj.
	(bfin-*-*): Don't enable target-bsp and target-cygmon depending on
	configuration.
	(c4x-*-* | tic4x-*-*): Don't disable GCC libraries.
	(c54x*-*-*): Remove case.
	(tic54x-*-*): Don't disable GCC or GCC libraries.
	(cris-*-* | crisv32-*-*): Don't handle *-*-aout.  Change *-*-elf
	to *.
	(d10v-*-*): Don't disable GCC libraries.
	(d30v-*-*): Don't disable libgcj.
	(h8500-*-*): Don't disable GCC libraries.
	(i960-*-*): Don't disable libgcj.
	(i[[3456789]]86-*-linux*): Don't handle *-*-*libc1*.
	(i[[3456789]]86-*-sco3.2v5*, i[[3456789]]86-*-sco*,
	i[[3456789]]86-*-sysv4*, i[[3456789]]86-*-beos*): Don't disable
	libgcj.
	(m68k-*-coff*): Remove case.
	(mmix-*-*): Don't disable libgloss on host.
	(mn10200-*-*, mn10300-*-*): Remove cases.
	(powerpc*-*-winnt* | powerpc*-*-pe*, powerpcle-*-solaris*,
	powerpc-*-beos*, m68k-apollo-*, mips*-*-irix5*, mips*-*-bsd*):
	Don't disable libgcj.
	(romp-*-*): Remove case.
	(sparclite-*-*, sparc-*-sunos4*): Don't disable libgcj.
	(sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*): Remove
	case.
	(v810-*-*): Don't disable GCC libraries.
	(v850*-*-*, vax-*-vms, xtensa*-*-*): Remove cases.
	(ip2k-*-*): Don't disable GCC libraries.
	* configure: Regenerate.

2011-03-28  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (i[[3456789]]86-*-msdosdjgpp*): Don't disable
	libffi on host.
	(x86_64-*-mingw*, i[[3456789]]86-*-mingw32*): Don't disable newlib
	on host.
	(c54x*-*-* | tic54x-*-*): Don't disable newlib on host.
	* configure: Regenerate.

2011-03-26  John Marino  <binutils@marino.st>

	* configure.ac: Add support for *-*-dragonfly*
	* configure: Regenerate.

2011-03-25  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (native_only): Remove.
	(i[[3456789]]86-*-msdosdjgpp*): Don't disable expect dejagnu
	send-pr uudecode guile gnuserv on host.
	(x86_64-*-mingw*): Don't disable expect dejagnu autoconf automake
	send-pr rcs guile perl texinfo libtool on host.
	(i[[3456789]]86-*-mingw32*): Don't disable expect dejagnu autoconf
	automake send-pr rcs guile perl texinfo libtool on host.
	(*-*-cygwin*, *-*-netbsd*): Remove host cases.
	(*-*-kaos*): Don't disable target-examples target-gperf on target.
	(alpha*-dec-osf*): Don't disable fileutils on target.
	(sh*-*-pe|mips*-*-pe|*arm-wince-pe): Don't disable target-examples
	texinfo send-pr expect dejagnu on target.
	(arm-*-elf* | arm*-*-eabi*, arm*-*-linux-gnueabi): Don't disable
	target-qthreads on target.
	(hppa*-hp-hpux11*, hppa*-*-*): Don't disable shellutils on target.
	(ia64*-*-elf*, ia64*-*-*vms*): Don't disable mmalloc on target.
	(i[[3456789]]86-w64-mingw*, i[[3456789]]86-*-mingw*,
	x86_64-*-mingw*): Don't disable expect on target.
	(*-*-cygwin*): Don't disable target-gperf on target.
	(powerpc*-*-winnt* | powerpc*-*-pe*): Don't disable make expect
	gnuserv on target.
	(powerpcle-*-solaris*): Don't disable make expect gnuserv on
	target.
	* configure: Regenerate.

2011-03-25  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (target_tools): Remove target-groff.
	(native_only): Remove target-groff.
	(hppa*64*-*-*): Don't disable byacc.
	(i[[3456789]]86-*-mingw32*): Remove commented-out noconfigdirs
	setting.
	(*-*-kaos*): Don't skip target-librx and target-groff.
	(*-*-netware*): Don't skip target-libmudflap.
	(*-*-tpf*): Don't skip target-libmudflap.
	(sh*-*-pe|mips*-*-pe|*arm-wince-pe): Don't condition configured
	directories on the host.
	(ia64*-*-*vms*): Don't skip tix.
	(sh-*-* | sh64-*-*): Don't condition skipped directories on the
	host.
	* configure: Regenerate.

2011-03-24  Paolo Bonzini  <pbonzini@redhat.com>

	* configure.ac: Remove references to mt-mep, mt-netware,
	mt-wince.
	* Makefile.def: Add all-utils soft dependencies.
	* Makefile.tpl: Remove GDB_NLM_DEPS.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Do not include mh-x86omitfp.
	* configure: Regenerate.

2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Remove empty cases.
	* configure: Regenerate.

2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def: Add dependency from termcap to gdb.
	* Makefile.in: Regenerate.

2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Remove all mentions of mh-sysv4 and mh-solaris.
	* configure: Regenerate.
	* Makefile.def: Remove all mentions of X11_FLAGS_TO_PASS.
	* Makefile.tpl: Likewise.
	* Makefile.in: Regenerate.

2011-03-24  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Remove all mentions of tentative_cc.
	* configure: Regenerate.

2011-03-24  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (i[[3456789]]86-*-vsta, i[[3456789]]86-*-go32*,
	i[[3456789]]86-*-beos*, powerpc-*-beos*, m68k-hp-hpux*,
	m68k-apollo-sysv*, m68k-apollo-bsd*, m88k-dg-dgux*,
	m88k-harris-cxux*, m88k-motorola-sysv*, mips*-dec-ultrix*,
	mips*-nec-sysv4*, mips*-sgi-irix4*, mips*-*-sysv4*, mips*-*-sysv*,
	i370-ibm-opened*, i[[3456789]]86-*-sysv5*, i[[3456789]]86-*-dgux*,
	i[[3456789]]86-ncr-sysv4.3*, i[[3456789]]86-ncr-sysv4*,
	i[[3456789]]86-*-sco3.2v5*, i[[3456789]]86-*-sco*,
	i[[3456789]]86-*-udk*, vax-*-ultrix2*, m68k-sun-sunos*,
	hppa*-*-hiux*, *-*-hiux*, rs6000-*-lynxos*, *-*-sysv4*,
	*-*-rhapsody*): Remove host cases.
	* configure: Regenerate.

2011-03-24  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (ppc*-*-pe): Remove host case.
	(strongarm-*-coff | xscale-*-coff, strongarm-*-elf* |
	xscale-*-elf*, thumb-*-coff, thumb-*-elf, thumb-*-pe, ep9312-*-elf
	| ep9312-*-coff, parisc*64*-*-linux*, ppc*-*-pe): Remove target
	cases.
	* configure: Regenerate.

2011-03-24  Joseph Myers  <joseph@codesourcery.com>

	* config.sub: Update to version 2011-03-23.

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

	* configure.ac (arm-semi-aof, crx-*-*, parisc*-*-linux*,
	i370-*-opened*, i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss*
	| i[[3456789]]86-*-uwin*, mcore-*-pe*): Remove empty cases.
	* configure: Regenerate.

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

	* MAINTAINERS (crx port, m68hc11 port): Remove.  Move maintainers
	to Write After Approval.
	* config-ml.in: Don't handle arc-*-elf*.
	* configure.ac (arc-*-*, crx-*-*, i[[3456789]]86-*-pe,
	m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*, mcore-*-pe*): Don't
	handle GCC libraries.
	* configure: Regenerate.

2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/48120:
	* configure.ac (pwllib): Use LIBS instead of LDFLAGS.
	Add -lstdc++ -lm to LIBS.
	* configure: Regenerate.

2011-03-18  David Edelsohn  <dje.gcc@gmail.com>

	* config.guess: Update to version 2011-02-02
	* config.sub: Update to version 2011-02-24

2011-03-16  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR lto/48086
	* configure.ac: Re-enable LTO on *-apple-darwin9.
	* configure: Regenerate.

2011-03-13  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR lto/48086
	* configure.ac: Disable LTO on darwin due to an assembler change in
	Xcode 3.2.6/4.0 that limits the total number of sections/segments to
	under 256.
	* configure: Regenerate.

2011-03-11  Chen Liqin <liqin.gcc@gmail.com>

	* MAINTAINERS: Update myself as score backend maintainer,
	update my e-mail address.

2011-03-09  Xuepeng Guo  <terry.guo@arm.com>

	* MAINTAINERS: Update my e-mail address.

2011-03-06  Joey Ye  <joey.ye@arm.com>

	* MAINTAINERS: Update my e-mail address.

2011-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	* configure.ac: Adjust test of with_ppl.
	* configure: Regenerated.

2011-03-02  Kai Tietz  <ktietz@redhat.com>

	* MAINTAINERS: Adjust my e-mail address.

2011-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	* configure.ac: Add -lpwl to ppllibs.
	* configure: Regenerated.

2011-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	* config/cloog.m4: Add -lisl to clooglibs.
	* configure: Regenerated.

2011-02-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* MAINTAINERS (CPU Port maintainers): Add self.

2011-02-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* MAINTAINERS: Add myself as testsuite maintainer.

2011-02-15  Mike Stump  <mikestump@comcast.net>

	* MAINTAINERS: Add myself as testsuite maintainer.

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

	Import from Libtool and gnulib:

	2011-01-27  Gerald Pfeifer  <gerald@pfeifer.com>

	Prepare for supporting FreeBSD 10.
	* config.rpath: Remove handling of freebsd1* which soon would
	match FreeBSD 10.0.

	2011-01-20  Gerald Pfeifer  <gerald@pfeifer.com>  (tiny change)

	Remove support for FreeBSD 1.x.
	* libtool.m4 (_LT_LINKER_SHLIBS)
	(_LT_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which
	soon would incorrectly match FreeBSD 10.0.

2011-02-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR binutils/12283
	* move-if-change: Import version from gnulib.

2011-02-12  Alexandre Oliva  <aoliva@redhat.com>

	PR lto/47225
	* Makefile.def (lto-plugin): Double dash for enable-shared.
	(configure-gcc): Depend on all-lto-plugin.
	* Makefile.in: Rebuilt.

2011-02-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Remove extra bracket.
	* configure: Regenerate.

2011-02-08  Tobias Burnus  <burnus@net-b.de>

	* MAINTAINERS: Add myself as libquadmath maintainer.

2011-02-08  Thomas Schwinge  <thomas@schwinge.name>

	* MAINTAINERS: Update my email address.

2011-02-07  Joseph Myers  <joseph@codesourcery.com>

	* MAINTAINERS (option handling): Add self.

2011-02-06  Kai Tietz  <kai.tietz@onevision.com>

	PR lto/47225
	* Makefile.def: Add dependency for install-gcc
	on install-lto-plugin.
	* Makfile.in: Regenerated

2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>

	* MAINTAINERS (CPU Port Maintainers): Add myself.

2011-01-31  Alexandre Oliva  <aoliva@redhat.com>

	PR libgcj/44341
	* configure.ac: Discard --with-* flags for host when configuring
	target libraries for cross build.
	* configure: Rebuilt.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* MAINTAINERS (linear loop transforms): Removed.

2011-01-25  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac: If with_ppl is no, move setting with_cloog=no
	after CLOOG_REQUESTED check.
	* configure: Regenerated.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* configure.ac: Call AC_MSG_ERROR when PPL 0.11 is not present and
	CLooG has been requested.
	* configure: Regenerated.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* configure: Regenerated.
	* configure.ac: Check for version 0.11 (or later revision) of PPL.

2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>

	* configure: Regenerated.
	* configure.ac: Use CLOOG_CHECK_VERSION(0,16,1).

2011-01-21  Andreas Schwab  <schwab@redhat.com>

	* configure.ac: Use AS_HELP_STRING throughout.
	* configure: Regenerate.

2011-01-18  Jie Zhang  <jie.zhang@analog.com>

	* configure.ac (bfin-*-*): Remove gdb from noconfigdirs.
	* configure: Regenerate.

2011-01-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* ltmain.sh (relink): Use absolute path when hardcoding with -L.

2011-01-13  Joel Brobecker  <brobecker@adacore.com>

	* configure.ac: Remove readline, mmalloc, and gdb from noconfigdirs
	for ia64-hpux.
	* configure: Regenerate.

2011-01-07  Jan Hubicka  <jh@suse.cz>

	PR lto/47225
	* Makefile.in: Regenerate.
	* Makefile.def (lto-plugin): Always pass enable-shared to the plugin
	configure.

2011-01-07  Jan Hubicka  <jh@suse.cz>

	* Makefile.in: Regenerate.
	* Makefile.def (gcc host module) and soft dependency on lto-plugin
	and configure dependency on lto-plugin configure.
	(lto-plugin module): Remove dependency on GCC; add dependency on
	liniberty.

2011-01-07  William Schmidt  <wschmidt@linux.vnet.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2010-12-23  Hariharan Sandanagobalane <hariharan@picochip.com>

	* configure: Regenerate.

2010-12-22  Hariharan Sandanagobalane <hariharan@picochip.com>

	* configure.ac: (picochip): Disable libiberty.

2010-12-14  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>

	* MAINTAINERS (Write After Approval): Add myself.

2010-12-10  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/46819
	* configure.ac: For --disable-libgcj clear libgcj_saved.
	* configure: Rebuild.

2010-12-10  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46540
	* configure.ac: Add --disable-libquadmath and
	--disable-libquadmath-support.
	* configure: Regenerate.

2010-12-03  Ian Lance Taylor  <iant@google.com>

	* MAINTAINERS: Add myself as libgo maintainer.

2010-12-03  Hans-Peter Nilsson  <hp@axis.com>

	PR libffi/46792
	* configure.ac (cris-*-elf, crisv32-*-elf): Disable target-libffi.
	* configure: Regenerate.

2010-12-02  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Always set default for poststage1_ldflags to
	-static-libstdc++ -static-libgcc.

2010-11-29  Andreas Schwab  <schwab@redhat.com>

	* configure.ac: Move comment to remove extra space in last argument
	of GCC_TARGET_TOOL.

2010-11-26  Alexandre Oliva  <aoliva@redhat.com>

	PR other/46026
	* configure.ac (CXX_FOR_TARGET): Add -funconfigured-libstdc++-v3.
	* Makefile.def (CXX_FOR_TARGET): Removed from flags_to_pass.
	* Makefile.tpl (CXX_FOR_TARGET_FLAG_TO_PASS): New.
	(BASE_FLAGS_TO_PASS): Use it.
	* configure: Rebuilt.
	* Makefile.in: Rebuilt.

2010-11-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/12258
	* configure.ac: Correct comments for --enable-gold/--enable-ld.
	Properly check default linker.
	* configure: Regnerated.

2010-11-23  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: For --enable-gold, handle value `default' instead of
	`both*'.  New configure option --{en,dis}able-ld.
	* configure: Regenerate.

2010-11-20  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Only disable a language library if no language needs
	it.  Don't let --disable-libgcj uncondtionally disable libffi.
	* configure: Rebuild.

2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in: Regenerate.

	PR other/46202
	* configure.ac: Fix just-built in-tree STRIP name to be
	binutils/strip-new.
	* configure: Regenerate.
	* Makefile.def (install-strip-gcc, install-strip-binutils)
	(install-strip-opcodes, install-strip-ld, install-strip-itcl)
	(install-strip-sid): Mirror dependencies on non-strip variants
	of these targets on the respective -strip prerequisites.
	* Makefile.tpl (install-strip, install-strip-host)
	(install-strip-target): New targets.
	(install-strip-[+module+], install-strip-target-[+module+]):
	New targets.
	* Makefile.in: Regenerate.

2010-11-19  Ian Lance Taylor  <iant@google.com>
	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Add target-libgo to target_libraries.  Set
	and substitute GOC_FOR_BUILD and GOC_FOR_TARGET.
	* Makefile.tpl (BUILD_EXPORTS): Add GOC and GOCFLAGS.
	(HOST_EXPORTS): Add GOC.
	(BASE_TARGET_EXPORTS): Add GOC.
	(GOC_FOR_BUILD, GOCFLAGS, GOC_FOR_TARGET): New variables.
	(GOCFLAGS_FOR_TARGET): New variable.
	(EXTRA_HOST_FLAGS): Add GOC.
	(EXTRA_TARGET_FLAGS): Add GOC and GOCFLAGS.
	* Makefile.def (target_modules): Add libgo.
	(flags_to_pass): Add GOC_FOR_TARGET and GOCFLAGS_FOR_TARGET.
	(dependencies): Add dependency from configure-target-libgo to
	configure-target-libffi and all-target-libstdc++-v3.  Add
	dependencies from all-target-libgo to all-target-libffi.
	(languages): Add go.
	* configure: Rebuild.
	* Makefile.in: Rebuild.

2010-11-19  Ian Lance Taylor  <iant@google.com>

	* config-ml.in: Add Go support: treat GOC and GOCFLAGS like other
	compiler/flag environment variables.

2010-11-18  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Check for lang_requires_boot_languages in
	config-lang.in files.
	* configure: Rebuild.

2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/32049
	* Makefile.def: Add libquadmath; build it with language=fortran.
	* configure.ac: Add libquadmath.
	* Makefile.tpl: Handle multiple libs in check-[+language+].
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2010-11-16  Tom Tromey  <tromey@redhat.com>

	* MAINTAINERS: Moved myself to reviewers section.

2010-11-15  Zdenek Dvorak  <ook@ucw.cz>

	* MAINTAINERS: Moved myself to reviewers section.

2010-11-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* MAINTAINERS (Various Maintainers): Add self for build machinery.
	(Write After Approval): Remove self.

2010-11-15  Andreas Schwab  <schwab@redhat.com>

	* configure.ac: Fix spelling in option names.
	* configure: Regenerated.

2010-11-13  Georg-Johann Lay  <georgjohann@web.de>

	PR bootstrap/39622
	* configure.ac (FLAGS_FOR_TARGET): Add include-fixed path.
	* configure: Regenerated.

2010-11-13  Kaveh R. Ghazi  <ghazi@gcc.gnu.org>

	* MAINTAINERS: Update my email address.

2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>

	* configure: Regenerate.

2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>

	* configure: Regenerate.

2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>

	* configure: Regenerate.

2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>

	* configure: Regenerate.

2010-11-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* configure.ac: Support official CLooG.org versions.
	* configure: Regenerate.
	* config/cloog.m4: New.

2010-11-10  François Dumont  <francois.cppdevs@free.fr>

	* MAINTAINERS (Write After Approval): Add myself.

2010-11-09  David Edelsohn  <dje.gcc@gmail.com>

	* MAINTAINERS: Update my email address.

2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>

	* configure.ac (*-*-darwin*): Use mh-darwin for all Darwin variants.
	* configure: Regenerate.

2010-11-03  Ian Lance Taylor  <iant@google.com>
	    Dave Korn  <dave.korn.cygwin@gmail.com>

	PR lto/46273
	* configure.ac: Remove libelf tests.  Build lto-plugin on ELF always
	and on other supported platforms whenever LTO is enabled.
	* configure: Rebuild.

2010-11-02  Alan Modra  <amodra@gmail.com>

	PR binutils/12110
	* configure.ac: Error when source path contains spaces.
	* configure: Regenerate.

2010-10-23  James E. Wilson  <wilson@codesourcery.com>

	* MAINTAINERS: Update my email address.

2010-10-20  Ian Lance Taylor  <iant@google.com>

	* Makefile.def (target_modules): Set lib_path to src/.libs for
	libstdc++-v3 module.
	* Makefile.tpl: Fix typo in TARGET_LIB_PATH comment.
	* Makefile.in: Rebuild.

2010-10-18  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* MAINTAINERS (Reviewers): Add myself for gengtype/GTY.
	(Write After Approval): Remove myself.

2010-10-15  Tristan Gingold  <gingold@adacore.com>

	* MAINTAINERS (OS Port Maintainers): Add myself for VMS.

2010-10-14  Douglas Rupp  <rupp@gnat.com>

	* MAINTAINERS (OS Port Maintainers): Add myself for VMS.

2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>

	* configure.ac (build_lto_plugin): New shell variable.
	(--enable-lto): Turn on by default for all non-ELF platforms that
	have had LTO support added so far.  Set build_lto_plugin appropriately
	for both ELF and non-ELF.
	(configdirs): Add lto-plugin or not based on build_lto_plugin.
	* configure: Regenerate.

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

	Sync from src:
	* configure.ac (v850 support): Remove target-libgloss from
	noconfigdirs.
	* configure: Regenerate.

2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/45326
	PR bootstrap/45174
	* configure.ac: Honor initial values of $build_configargs,
	$host_configargs, $target_configargs.  Mark the precious, so
	environment settings get recorded.
	* configure: Regenerate.

2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/45796
	* Makefile.def (info-gcc, dvi-gcc, pdf-gcc, html-gcc):
	Depend on all-build-libiberty.
	* Makefile.in: Regenerate.

2010-09-30  Michael Eager  <eager@eagercon.com>

	* configure.ac (microblaze): Add target-libssp to noconfigdirs.
	* configure: Regenerate.

2010-09-28  Michael Eager  <eager@eagercon.com>

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

2010-06-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/44621
	* configure.ac: Fix unportable shell quoting.
	* configure: Regenerate.

2010-09-21  Iain Sandoe  <iains@gcc.gnu.org>

	* configure.ac (enable-lto): Add Darwin to the list of supported lto
	targets and amend comment.
	* configure: Regenerate.

2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

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

	* configure.ac: Enable LTO by default on Darwin.
	* configure: Regenerate.

2010-09-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2010-09-01  Ian Bolton  <ian.bolton@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

2010-08-25  Danny Smith  <dannysmith@users.sourceforge.net>

	* MAINTAINERS (OS Port Maintainers): Remove myself from windows
	ports

2010-07-28  David Yuste  <david.yuste@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>

	* configure.ac: Support all v850 targets.
	* configure: Regenerate.

2010-07-23  Marc Glisse <marc.glisse@normalesup.org>

	PR bootstrap/44455
	* configure.ac (extra_mpfr_configure_flags): Copy from
	extra_mpc_gmp_configure_flags.
	* configure: Re-generated.

2010-07-22  Andi Kleen  <ak@linux.intel.com>

	* MAINTAINERS (Write After Approval): Add myself.

2010-07-22  Chung-Lin Tang  <cltang@codesourcery.com>

	* MAINTAINERS (Write After Approval): Add myself.

2010-07-20  Jeffrey Yasskin  <jyasskin@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2010-07-17  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/44862
	* Makefile.tpl (POSTSTAGE1_CXX_EXPORT):
	Provide -B option to allow for link spec %s substitutions for
	libstdc++.a on darwin.
	* Makefile.in: Regenerate.

2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>

	* MAINTAINERS (Reviewers): Update my e-mail address

2010-06-10  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.def (configure-gcc): Depend on all-libelf.
	* Makefile.in: Rebuild.

2010-06-05  Fabien Chêne  <fabien@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself in the right place.

2010-06-04  Fabien Chêne  <fabien@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

2010-05-25  Sterling Augustine  <sterling@tensilica.com>

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

2010-05-25  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config.sub: Update to version 2010-05-21.
	* config.guess: Update to version 2010-04-03.

2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>

	* configure.ac (--enable-lto): All *-apple-darwin* now support LTO.
	* configure: Regenerate.

2010-05-12  Sriraman Tallam  <tmsriram@google.com>

	* MAINTAINERS (Write After Approval): Add myself.

2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>

	* configure.ac (--enable-lto): Add x86_64-apple-darwin* as
	a platform that supports LTO.
	* configure: Regenerate.

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

	* configure.ac: Allow all the versions greater than 0.10 of PPL.
	* configure: Regenerated.

2010-04-27  Roland McGrath  <roland@redhat.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* configure.ac (--enable-gold): Support both, both/gold and
	both/bfd to add gold to configdirs without removing ld.
	* configure: Regenerated.

	* Makefile.def: Add install-gold dependency to install-ld.
	* Makefile.in: Regenerated.

2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR lto/42776
	* configure.ac (--enable-lto): Refactor handling so libelf tests
	are only performed inside then-clause of ACX_ELF_TARGET_IFELSE,
	and allow LTO to be explicitly enabled on non-ELF platforms that
	are known to support it inside else-clause.
	* configure: Regenerate.

2010-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac (BUILD_CONFIG): Redirect output to /dev/null.
	* configure: Regenerate.

2010-04-17  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* configure.ac (*-*-rtems*): Add target-libiberty to $skipdirs.
	* configure: Regenerate.

2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx
	separately.
	* configure: Regenerate.

2010-04-16  Kevin Williams  <kevin.williams@inria.fr>

	* MAINTAINERS (Write After Approval): Add myself.

2010-04-14  Tristan Gingold  <gingold@adacore.com>

	* configure.ac (alpha*-*-*vms*): Remove ld from noconfigdirs.
	* configure: Regenerate.

2010-04-13  Steve Ellcey  <sje@cup.hp.com>

	* configure: Regenerate after change to elf.m4.

2010-04-06  Iain Sandoe  <iains@gcc.gnu.org>

	* MAINTAINERS (Write After Approval): Add myself.

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 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:
