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:
