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:
