diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 35ae9ddc3353229188d7fdba1e381c0056f8362e..3eb15f84d89b681bed96010b7662037ea016cd85 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,43 @@
+2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
+
+	* configure.in: If not NO_MINUS_C_MINUS_O, substitute
+	OUTPUT_OPTION with '-o $@'.  Make zlibdir, zlibinc relative to
+	top level.  Kill oldstyle_subdirs.  Do not include
+	$srcdir/$s/Makefile.in in all_lang_makefiles, but do include
+	$outputs.  Do not run configure.lang from config.status.
+	Rearrange warning-flag logic to correspond to what the
+	makefile wants.  Put special vax stage1 options in
+	@stage1_flags@ not @stage1_warn_cflags@.  Don't do anything
+	with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
+	(--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
+	switch is given, nothing otherwise.
+	* configure.lang: Delete.
+
+        * Makefile.in: Expunge all traces of extra_c_objs,
+        extra_cxx_objs, and extra_cpp_objs.  Set MAYBE_CPPLIB from
+        @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS.  Set
+        warning options via a three level scheme so that -pedantic and
+        -Wtraditional are not used for non-C front ends: LOOSE_WARN,
+        STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
+        WARN_CFLAGS.  Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
+	Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
+	Set OUTPUT_OPTION, ZLIB, ZLIBINC.  Do not set P,
+        LANG_FLAGS_TO_PASS.  Add OUTPUT_OPTION to all object-file
+        generation rules.  Wrap all rules that change the current
+        directory in parentheses; pmake doesn't spawn a new shell for
+        each command.  Expunge all references to $(P).  When one
+        command depends on another and they're run all at once, use &&
+        to separate them, not ;.  Add libgcc_s$(SHLIB_EXT) to files
+        deleted on make clean.  Force OUTPUT_OPTION='-o $@' in stage2
+        and beyond.
+
+	* objc/Make-lang.in: Wrap all rules that change the current
+	directory in parentheses.  Expunge all references to $(P).
+	When one command depends on another and they're run all at
+	once, use && to separate them, not ;.  Add OUTPUT_OPTION to
+	all object-file generation rules.  Delete obsolete variables.
+	* objc/Makefile.in: Delete.
+
 2000-10-27  Jakub Jelinek  <jakub@redhat.com>
 
 	* calls.c (expand_call): If sibcall_failure is set during pass 1,
@@ -10,7 +50,7 @@
 
 2000-10-26  Richard Henderson  <rth@redhat.com>
 
-	* calls.c (expand_call): Supress sibcall if we have a 
+	* calls.c (expand_call): Supress sibcall if we have a
 	BLKmode return in registers.
 
 2000-10-26  Bernd Schmidt  <bernds@redhat.co.uk>
@@ -63,8 +103,8 @@
 
 2000-10-25  Neil Booth  <neilb@earthling.net>
 
-        * cpp.texi: Update with implementation-defined behavior and
-        internal limits.
+	* cpp.texi: Update with implementation-defined behavior and
+	internal limits.
 
 2000-10-25  Jakub Jelinek  <jakub@redhat.com>
 
@@ -82,14 +122,14 @@ Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
 
 	* config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
 	like memory.
-	
+
 2000-10-24  Jim Wilson  <wilson@cygnus.com>
 
 	* expmed.c (store_bit_field): Move integer pun code down after
 	code that calls emit_move_insn for entire register move.
 	* stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
 	Oct 20 changes.  Only store mode in TYPE_MODE if RECORD_TYPE.
-	
+
 2000-10-24  Richard Henderson  <rth@cygnus.com>
 
 	* rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
@@ -97,13 +137,13 @@ Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
 
 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
 
-        * gcse.c (cprop_insn): do not propagate constants into jump_insn
-        for machines with CC0 more than once.
+	* gcse.c (cprop_insn): do not propagate constants into jump_insn
+	for machines with CC0 more than once.
 
 2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
 
-        * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
-        pseudos just like memory.
+	* config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
+	pseudos just like memory.
 
 2000-10-24  Alexandre Oliva  <aoliva@redhat.com>
 
@@ -142,7 +182,7 @@ Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
 
 2000-10-23  Richard Henderson  <rth@cygnus.com>
 
-	* config/ia64/ia64.c (ia64_expand_prologue): Mark extra 
+	* config/ia64/ia64.c (ia64_expand_prologue): Mark extra
 	output registers as fixed.
 	(ia64_function_epilogue): Undo output fixation.
 
@@ -206,8 +246,8 @@ Wed Oct 18 11:16:40 2000  Donald Lindsay  <dlindsay@cygnus.com>
 2000-10-21  Chandrakala Chavva   <cchavva@redhat.com>
 
 	* libgcc-std.ver (__addvsi3, __addvdi3,  __subvsi3, __subvdi3,
-        __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
-        New functions.
+	__mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
+	New functions.
 
 2000-10-22  Alexandre Oliva  <aoliva@redhat.com>
 
@@ -375,7 +415,7 @@ Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 	if one is still available after register allocation.
 
 2000-10-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
- 
+
 	* t-vax: New file.  Don't build modules from libgcc1.c.
 
 Fri Oct 20 00:57:00 EDT 2000  John Wehle  (john@feith.com)
@@ -418,7 +458,7 @@ Fri Oct 20 00:57:00 EDT 2000  John Wehle  (john@feith.com)
 	factor of 2.
 	* config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
 	notes.
-	
+
 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
 
 	* libgcc2.c (_mulvsi3): Change variables u and v to a and b.
@@ -438,47 +478,47 @@ Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
 2000-10-18  Chandrakala Chavva  <cchavva@redhat.com>
 
-        * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
-        Use smulv_optab for -ftrapv.
-        (expand_mult_highpart): Use unsigned multiply.
-        (expand_divmod): Special-case division by -1.
-        For EXACT_DIV_EXPR, do right shift first, then the multiply.
-        For complex divide, use abs with unsigned result.
-        * expr.c (force_operand): Use unsigned multiply.
-        (expand_expr): Use overflow-trapping optabs for signed types if
-        flag_trapv.
-        If flag_trapv, don't generate a recursive call with EXPAND_SUM
-        if the type is signed and the original call wasn't EXPAND_SUM or
-        EXPAND_INITIALIZER.
-        * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
-        (negv_optab, absv_optab): Declare.
-        * flags.h (flag_trapv): Declare.
-        * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
-        smulv_optab, sdivv_optab, negv_optab and absv_optab.
+	* expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
+	Use smulv_optab for -ftrapv.
+	(expand_mult_highpart): Use unsigned multiply.
+	(expand_divmod): Special-case division by -1.
+	For EXACT_DIV_EXPR, do right shift first, then the multiply.
+	For complex divide, use abs with unsigned result.
+	* expr.c (force_operand): Use unsigned multiply.
+	(expand_expr): Use overflow-trapping optabs for signed types if
+	flag_trapv.
+	If flag_trapv, don't generate a recursive call with EXPAND_SUM
+	if the type is signed and the original call wasn't EXPAND_SUM or
+	EXPAND_INITIALIZER.
+	* expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
+	(negv_optab, absv_optab): Declare.
+	* flags.h (flag_trapv): Declare.
+	* genopinit.c (optabs): Add entries for addv_optab, subv_optab,
+	smulv_optab, sdivv_optab, negv_optab and absv_optab.
 	(gen_insn): Interpret '$P' as requiring an integer mode,
-        including partial integer modes.
-        * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
-        (product_cheap_p): Use unsigned expand_mult.
-        * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
-        (negv_optab, absv_optab): Define.
-        (expand_binop): Use overflow-trapping optabs for signed types if
-        flag_trapv.
-        Handle negv_optab libe neg_optab.
-        (expand_abs): Take result_unsignedp argument instead of unsignedp one.
-        Use overflow-trapping optabs for signed result if flag_trapv.
-        (expand_complex_abs): Use overflow-trapping optabs for signed types if
-        flag_trapv.
-        Don't open-code complex absolute-value operation for flag_trapv.
-        (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
-        sdivv_optab, negv_optab and absv_optab.
-        * toplev.c (flag_trapv): Define.
-        (lang_independent_options f_options): Include flag_trapv.
-        * tree.h (TYPE_TRAP_SIGNED): Define.
-        * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
-        __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
-        New functions.
-        * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
-        _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
+	including partial integer modes.
+	* loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
+	(product_cheap_p): Use unsigned expand_mult.
+	* optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
+	(negv_optab, absv_optab): Define.
+	(expand_binop): Use overflow-trapping optabs for signed types if
+	flag_trapv.
+	Handle negv_optab libe neg_optab.
+	(expand_abs): Take result_unsignedp argument instead of unsignedp one.
+	Use overflow-trapping optabs for signed result if flag_trapv.
+	(expand_complex_abs): Use overflow-trapping optabs for signed types if
+	flag_trapv.
+	Don't open-code complex absolute-value operation for flag_trapv.
+	(init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
+	sdivv_optab, negv_optab and absv_optab.
+	* toplev.c (flag_trapv): Define.
+	(lang_independent_options f_options): Include flag_trapv.
+	* tree.h (TYPE_TRAP_SIGNED): Define.
+	* libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
+	__mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
+	New functions.
+	* Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
+	_subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
 
 2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>
 	    David V. Henkel-Wallace  <gumby@cygnus.com>
@@ -503,7 +543,7 @@ Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 	(flag_no_nonansi_builtin): Likewise.
 	(init_decl_processing): Adjust call to
 	c_common_nodes_and_builtins.
-	
+
 2000-10-18  Marc Espie <espie@openbsd.org>
 
 	* tm.texi (LIBGCC_SPEC): Synch with reality.
@@ -557,18 +597,18 @@ Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
 	* emit-rtl.c (init_emit_once): Initialize the const_int_htab
 	earlier.
-	
+
 2000-10-18  Jan Hubicka  <jh@suse.cz>
 
-        * i386.c (ix86_comparison_operator, put_condition_code,
-        ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
-        (ix86_expand_strlensi_unroll_1): Use CCRCmode.
-        * i386.h (EXTRA_CC_MODES): Add CCRCmode.
-        * i386.md (adddi and negdi splitter): Use CCRCmode.
-        (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
-        (subsi3_carry): add '*'
-        (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
-        (cmp to add peep2): Use CCRCmode; swap operands.
+	* i386.c (ix86_comparison_operator, put_condition_code,
+	ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
+	(ix86_expand_strlensi_unroll_1): Use CCRCmode.
+	* i386.h (EXTRA_CC_MODES): Add CCRCmode.
+	* i386.md (adddi and negdi splitter): Use CCRCmode.
+	(add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
+	(subsi3_carry): add '*'
+	(addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
+	(cmp to add peep2): Use CCRCmode; swap operands.
 
 2000-10-18  Kazu Hirata  <kazu@hxi.com>
 
@@ -643,13 +683,13 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 	* cppinit.c (new_pending_directive) : New option OPT_target__help.
 	(cpp_handle_option): Support this new option.
 	* invoke.texi: Added notes about --target-help option.
-	
+
 2000-10-17  Graham Stott  <grahams@redhat.com>
- 
+
 	* config/i386/i386.md (testqi_1): Add missing operand prefix
 	for operand 0.
 	* config/i386/i386-protos.h: Add missing prototype.
- 
+
 2000-10-17  Diego Novillo  <dnovillo@cygnus.com>
 
 	* config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
@@ -779,7 +819,7 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* Makefile.in (c-parse.c, tradcif.c): Create atomically.
-	
+
 	* objc/Make-lang.in (objc-parse.c): Likewise.
 
 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
@@ -811,29 +851,29 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 
 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
 
-	Remove obstacks.  
+	Remove obstacks.
 	* Makefile.in (ggc-callbacks.o): Remove target.
-	(flow.o): Depend on GGC_H.  
+	(flow.o): Depend on GGC_H.
 	* alias.c (init_alias_analysis):
 	Remove ggc_p conditionals.
-	(end_alias_analysis): Likewise.  
+	(end_alias_analysis): Likewise.
 	* basic-block.h (init_flow): New function.
-	(allocate_reg_life_data): Declare.  
+	(allocate_reg_life_data): Declare.
 	* bb-reorder.c	(function_obstack): Replace with ...
 	(flow_obstack): ... new variable.
-	(fixup_reorder_chain): Use it.  
+	(fixup_reorder_chain): Use it.
 	* c-decl.c (ggc_p): Remove.
-	(caller-save.c): Don't call oballoc/obfree.  
+	(caller-save.c): Don't call oballoc/obfree.
 	* combine.c (struct
 	undobuf): Remove storage.
 	(try_combine): Don't call oballoc.
-	(undo_all): Don't call obfree.  
+	(undo_all): Don't call obfree.
 	* cse.c (insert): Use xmalloc, not
 	oballoc.
-	(cse_main): Adjust accordingly.  
+	(cse_main): Adjust accordingly.
 	* dwarf2out.c (save_rtx): Remove
 	obstack code.
-	(dwarf2out_init): Remove ggc_p conditionals.  
+	(dwarf2out_init): Remove ggc_p conditionals.
 	* emit-rtl.c (rtl_obstack): Remove.
 	(gen_rtx_CONST_INT): Remove ggc_p conditionals.
 	(make_insn_raw): Likewise.
@@ -842,19 +882,19 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 	(emit_insn): Likewise.
 	(gen_sequence): Likewise.
 	(copy_insn_1): Remove handling of `b' RTL components.
-	(init_emit_once): Remove ggc_p conditionals.  
+	(init_emit_once): Remove ggc_p conditionals.
 	* except.c (create_rethrow_ref): Don't fool with obstacks.
 	(add_partial_entry): Likewise.
 	(call_get_eh_context): Likewise.
 	(begin_protect_partials): Likewise.
-	(protect_with_terminate): Likewise.  
+	(protect_with_terminate): Likewise.
 	* explow.c
-	(plus_constant_wide): Likewise.  
+	(plus_constant_wide): Likewise.
 	* expr.c (init_expr_once):
 	Likewise.
 	(emit_block_move): Likewise.
 	(clear_storage): Likewise.
-	(expand_expr): Likewise.  
+	(expand_expr): Likewise.
 	* flow.c (function_obstack): Remove.
 	(flow_obstack): New variable.
 	(flow_firstobj): Likewise.
@@ -864,7 +904,7 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 	(calculate_global_regs_live): Likewise.
 	(allocate_bb_life_data): Make it static.  Likewiwse.
 	(init_flow): New function.
-	(size_int_type_wide): Remove ggc_p conditionals.  
+	(size_int_type_wide): Remove ggc_p conditionals.
 	* function.c
 	(push_function_context_to): Don't call save_tree_status.
 	(pop_function_context_from): Or restore_tree_status.
@@ -874,28 +914,28 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 	(insns_for_mem_walk): Don't mess with obstacks.
 	(instantiate_decls): Likewise.
 	(trampoline_address): Likewise.
-	(expand_function_end): Likewise.  
+	(expand_function_end): Likewise.
 	* function.h (sturct function):
 	Remove obstack-related variables.
 	(save_tree_status): Don't declare.
-	(restore_tree_status): Likewise.  
+	(restore_tree_status): Likewise.
 	* gcse.c (compute_can_copy):
-	Don't call oballoc/obfree.  
+	Don't call oballoc/obfree.
 	* genattrtab.c (operate_exp): Remove
 	ggc_p conditionals.
 	(simplify_cond): Likewise.
 	(simplify_test_exp): Don't mess with obstacks.
-	(optimize_attrs): Likewise.  
+	(optimize_attrs): Likewise.
 	* gengenrtl.c (gendef): Don't include
-	ggc_p conditionals.  
-	* ggc-callbacks.c (ggc_p): Remove.  
-	* ggc-none.c (ggc_p): Remove.  
-	* ggc.h (ggc_p): Don't declare.  
+	ggc_p conditionals.
+	* ggc-callbacks.c (ggc_p): Remove.
+	* ggc-none.c (ggc_p): Remove.
+	* ggc.h (ggc_p): Don't declare.
 	* integrate.c (save_for_inline): Don't mess with obstacks.
 	(integrate_decl_tree): Likewise.
-	(output_inline_function): Likewise.  
+	(output_inline_function): Likewise.
 	* lists.c
-	(init_EXPR_INSN_LIST_cache): Likewise.  
+	(init_EXPR_INSN_LIST_cache): Likewise.
 	* loop.c (temp_obstack):
 	Remove.
 	(rtl_obstack): Likewise.
@@ -905,37 +945,37 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 	(find_mem_givs): Likewise.
 	(record_biv): Likewise.
 	(general_induction_var): Likewise.
-	(product_cheap_p): Likewse.  
+	(product_cheap_p): Likewse.
 	* optabs.c (init_one_libfunc): Remove
-	ggc_p conditional.  
+	ggc_p conditional.
 	* print-tree.c (debug_tree): Don't use
 	oballoc/obfree.
-	(print_node): Likewise.  
+	(print_node): Likewise.
 	* profile.c (output_func_start_profiler):
-	Remove call to temporary_allocation.  
+	Remove call to temporary_allocation.
 	* reload1.c
-	(eliminate_regs_in_insn): Don't mess with obstacks.  
+	(eliminate_regs_in_insn): Don't mess with obstacks.
 	* resource.c
 	(mark_target_live_regs): Use xmalloc.
-	(free_resource_info): Free the memory.  
+	(free_resource_info): Free the memory.
 	* rtl.c (rtl_obstack):
 	Remove.
 	(rtvec_alloc): Don't mess with obstacks.
 	(rtx_alloc): Likewise.
 	(rtx_free): Remove.
 	(copy_rtx): Don't handle `b' cases.
-	(read_rtx): Use a local rtl_obstack.  
+	(read_rtx): Use a local rtl_obstack.
 	* rtl.h (oballoc): Remove.
 	(obfree): Likewise.
 	(pop_obstacks): Likewise.
 	(push_obstacks): Likewise.
 	(allocate_bb_life_data): Likewise.
 	(allocate_reg_life_data): Likewise.
-	(rtx_free): Likewise.  
+	(rtx_free): Likewise.
 	* sdbout.c (sdbout_queue_anonymous_type):
-	Use tree_cons, not saveable_tree_cons.  
+	Use tree_cons, not saveable_tree_cons.
 	* simplify-rtx.c
-	(cselib_init): Don't mess with obstacks.  
+	(cselib_init): Don't mess with obstacks.
 	* stmt.c
 	(mark_block_nesting): Mark the label_chain.
 	(epxand_label): Use ggc_alloc, not oballoc.
@@ -946,15 +986,15 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 	(expand_anon_union_decl): Likewise.
 	(add_case_node): Use xmalloc, not oballoc.
 	(free_case_nodes): New function.
-	(expand_end_case): Call it.  
+	(expand_end_case): Call it.
 	* stor-layout.c (layout_type): Don't
 	mess with obstacks.
-	(layout_type): Likewise.  
+	(layout_type): Likewise.
 	* toplev.c (wrapup_global_declarations):
 	Likewise.
 	(compile_file): Remove ggc_p conditionals.
 	(rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
-	(decode_f_option): Remove ggc_p conditionals.  
+	(decode_f_option): Remove ggc_p conditionals.
 	* tree.c
 	(function_maybepermanent_obstack): Remove.
 	(maybepermanent_obstack): Likewise.
@@ -1030,7 +1070,7 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 	(build_reference_type): Likewise.
 	(build_index_type): Likewise.
 	(build_range_type): Likewise.
-	(dump_tree_statistics): Don't print obstack information.  
+	(dump_tree_statistics): Don't print obstack information.
 	* tree.h
 	(struct tree_common): Remove permanent_flag.
 	(TREE_PERMANENT): Remove.
@@ -1066,7 +1106,7 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 	(debug_obstack): Likewise.
 	(rtl_in_current_obstack): Likewise.
 	(rtl_in_saveable_obstack): Likewise.
-	(obfree): Likewise.  
+	(obfree): Likewise.
 	* varasm.c (current_obstack): Remove.
 	(saveable_obstack): Remove.
 	(rtl_obstack): Remove.
@@ -1094,7 +1134,7 @@ Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
 	* config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
 	(rs6000_encode_section_info): Likewise.
 	* config/sh/sh.c (get_fpscr_rtx): Likewise.
-	
+
 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
 
 	* i386.md (adddi3, subdi3 splitters): Update for new pattern.
@@ -1138,7 +1178,7 @@ Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
 	the wanted type is not a pointer target.
 
 2000-10-11  Michael Meeks  <mmeeks@gnu.org>
-            Joseph S. Myers  <jsm28@cam.ac.uk>
+	    Joseph S. Myers  <jsm28@cam.ac.uk>
 
 	* c-typeck.c (check_modify_expr): New function.
 	(build_modify_expr): Call it if warn_sequence_point.
@@ -1201,7 +1241,7 @@ Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
 
 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
 
-	* arm.c: Miscellaneous white space and comment clean-ups.  No 
+	* arm.c: Miscellaneous white space and comment clean-ups.  No
 	functional change.
 	* arm.md: Likewise.
 
@@ -1224,7 +1264,7 @@ Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
 	(conditional execution splits): Split using predication format.
 	(define_cond_exec): Define.
 	* arm.c (arm_print_operand): handle insn predicate.
-	
+
 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
 
 	* README.NS32K: Remove file.
@@ -1252,7 +1292,7 @@ Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
 	uses different cache variables.
 	(AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
 	* configure: Regenerated.
-	
+
 2000-10-08  Richard Henderson  <rth@cygnus.com>
 
 	* Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
@@ -1360,7 +1400,7 @@ Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
 	(compute_block_forward_dependences): Use forward_dependency_cache.
 	(schedule_insns): Allocate and free memory for anti/output/forward
 	dependencies caches.
-	
+
 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
 
 	* config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
@@ -1538,7 +1578,7 @@ Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
 	* config/float-c4x.h: New.
 	* configure.in (c4x-*): Set float_format to c4x.
-	* configure: Regenerate.	
+	* configure: Regenerate.
 
 2000-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
@@ -1566,10 +1606,10 @@ Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 	* config/spur: Likewise.
 	* configure.in: Remove configury bits for above targets.
 	* configure: Regenerated.
-	
+
 	* configure.in: Don't configure chill by default.
 	* configure: Regenerated.
-	
+
 	* c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
 	(lang_mark_false_label_stack): Remove.
 	* c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
@@ -1582,7 +1622,7 @@ Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 	* ggc-common.c (lang_mark_false_label_stack): Change type.
 	* ggc.h (ggc_alloc_string): Add comment.
 	(ggc_strdup): New function.
-	
+
 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru>
 
 	* config/avr/avr.h (BRANCH_COST): Define as 0.
@@ -1728,16 +1768,16 @@ Fri Sep 29 13:20:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 	(output_message_text): New macro.
 
 	* diagnostic.c (clear_text_info): Rename to
-	output_clear_message_text. 
+	output_clear_message_text.
 	(output_clear): Adjust.
 	(output_finish): Rename to output_finalize_message.  Tweek.
-	(output_to_stream): Adjust. 
+	(output_to_stream): Adjust.
 
 2000-09-28  Neil Booth  <neilb@earthling.net>
 
 	* cpperror.c (_cpp_begin_message):  Do the test for suppression
-        of warnings and pedantic warnings before the "is a warning an
-        error" tests.
+	of warnings and pedantic warnings before the "is a warning an
+	error" tests.
 	* cppinit.c (cpp_handle_option): Remove surplus \n.
 	* cpplex.c (ON_REST_ARG): Delete.
 	(skip_block_comment): Initialise prevc.
@@ -1798,22 +1838,22 @@ Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
 
 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
 
-        * cpplex.c (parse_args): Don't set VOID_REST flag.
+	* cpplex.c (parse_args): Don't set VOID_REST flag.
 	(CONTEXT_VARARGS): New flag.
 	(maybe_paste_with_next): Set context earlier in loop.  Use
 	it.  Do varargs test with CONTEXT_VARARGS flag.
 	(push_arg_context): Set CONTEXT_VARARGS flag if we're
 	pushing an argument context for a varargs argument.
 	* cpplib.h (VOID_REST): Delete.
-	* gcc.dg/cpp/vararg1.c: Add test case.   
+	* gcc.dg/cpp/vararg1.c: Add test case.
 
 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
 
-        * flags.h:  Declare warning flag warn_system_headers.
-        * toplev.c:  Define it.
-        (W_options): Add option -Wsystem-headers.
-        * diagnostic.c (count_error): Test warn_system_headers.
-        * invoke.texi:  Add description for -Wsystem-headers.
+	* flags.h:  Declare warning flag warn_system_headers.
+	* toplev.c:  Define it.
+	(W_options): Add option -Wsystem-headers.
+	* diagnostic.c (count_error): Test warn_system_headers.
+	* invoke.texi:  Add description for -Wsystem-headers.
 	* cpplib.h (cpp_options): New member warn_system_headers.
 	* cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
 	CPP_IN_SYSTEM_HEADER.
@@ -1831,7 +1871,7 @@ Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
 	* cpplex.c (save_comment): Only store the initial '/'
 	now.
 	(lex_token): Combine handling of the two comment types.
-	Pass everything but the initial '/' to save_comment.	
+	Pass everything but the initial '/' to save_comment.
 
 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
 
@@ -2203,7 +2243,7 @@ Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
 	functions.  Generalize to handle both C and C++.
 	* Makefile.in (c-tree.info): New target.
 	(info): Add c-tree.info.
-	
+
 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
 	* expr.c (store_field): If BITSIZE is negative, use size of type.
@@ -2286,10 +2326,10 @@ Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
 	    Mark Mitchell  <mark@codesourcery.com>
 
-        * toplev.c (warn_disabled_optimization): Declare new warning flag.
-        * flags.h (warn_disabled_optimization): Add it here.
-        * gcse.c (gcse_main): Add warning when disabled.
-        * invoke.texi: Document -Wdisabled-optimization.
+	* toplev.c (warn_disabled_optimization): Declare new warning flag.
+	* flags.h (warn_disabled_optimization): Add it here.
+	* gcse.c (gcse_main): Add warning when disabled.
+	* invoke.texi: Document -Wdisabled-optimization.
 
 2000-09-21  Jason Merrill  <jason@redhat.com>
 
@@ -2324,7 +2364,7 @@ Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
 	ARM and THUMB modes.
 
 	* config/mcore/mcore.c: Fix compile time warnings.
-	* config/mcore/mcore-protos.h: Fix compile time warnings. 
+	* config/mcore/mcore-protos.h: Fix compile time warnings.
 
 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
 
@@ -2408,7 +2448,7 @@ Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
 
 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
 
-        * cppfiles.c (read_include_file): Take no special action for
+	* cppfiles.c (read_include_file): Take no special action for
 	zero-length files.
 
 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 380cfdfa18febc6d62daac02f0b9046dfc40b977..e24c83cb9938fa3d4df1c7d9c7861a5323d687ff 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -63,25 +63,40 @@ ALLOCA_FINISH = true
 # CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
 # BOOT_CFLAGS is the value of CFLAGS to pass to the stage2 and stage3
 # compilations.
-# WARN1_CFLAGS are the warning flags to use for most compilations in stage1.
-# WARN2_CFLAGS are the warning flags to pass to stage2, stage3, etc.
+# XCFLAGS is used for most compilations but not when using the GCC just built.
+# TCFLAGS is used for compilations with the GCC just built.
+# STAGE1_CFLAGS is set by configure on some targets.
+XCFLAGS =
+TCFLAGS =
+BOOT_CFLAGS = -g -O2
+STAGE1_CFLAGS = -g @stage1_cflags@
+CFLAGS = $(STAGE1_CFLAGS)
+
 # The warning flags are separate from BOOT_CFLAGS because people tend to
 # override optimization flags and we'd like them to still have warnings
 # turned on.  These flags are also used to pass other stage dependent
 # flags from configure.  The user is free to explicitly turn these flags
 # off if they wish.
-# LOOSE_CFLAGS are the CFLAGS to use when compiling something which is only
-# compiled with gcc, such as libgcc and the frontends other than C.
-# XCFLAGS is used for most compilations but not when using the GCC just built.
-# TCFLAGS is used for compilations with the GCC just built.
-XCFLAGS =
-TCFLAGS =
-CFLAGS = -g
-BOOT_CFLAGS = -O2 $(CFLAGS)
-WARN1_CFLAGS = @stage1_warn_cflags@
-WARN2_CFLAGS = @stage2_warn_cflags@
-WARN_CFLAGS = $(WARN1_CFLAGS)
-LOOSE_CFLAGS = `echo $(CFLAGS) $(WARN2_CFLAGS)|sed -e 's/-pedantic//g' -e 's/-Wtraditional//g'`
+# LOOSE_WARN are the warning flags to use when compiling something
+# which is only compiled with gcc, such as libgcc and the frontends
+# other than C.
+# STRICT_WARN and STRICT2_WARN are the additional warning flags to
+# apply to the back end and the C front end, which may be compiled
+# with other compilers.  This is partially controlled by configure in
+# stage1, as not all versions of gcc understand -Wno-long-long.
+LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
+STRICT_WARN = -Wtraditional @strict1_warn@
+STRICT2_WARN = -Wtraditional -pedantic -Wno-long-long
+
+# This is how we control whether or not the additional warnings are applied.
+.-warn = $(STRICT_WARN)
+GCC_WARN_CFLAGS = $(LOOSE_WARN) $($(@D)-warn)
+
+# All warnings have to be shut off in stage1 if the compiler used then
+# isn't gcc; configure determines that.  WARN_CFLAGS will be either
+# $(GCC_WARN_CFLAGS), or nothing.
+WARN_CFLAGS = @warn_cflags@
+
 # These exists to be overridden by the x-* and t-* files, respectively.
 X_CFLAGS =
 T_CFLAGS =
@@ -120,11 +135,15 @@ TEXI2DVI = texi2dvi
 # For GNUmake: let us decide what gets passed to recursive makes.
 MAKEOVERRIDES =
 @SET_MAKE@
+# Some compilers can't handle cc -c blah.c -o foo/blah.o.
+# In stage2 and beyond, we force this to "-o $@" since we know we're using gcc.
+OUTPUT_OPTION = @OUTPUT_OPTION@
 
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
+# This is where we get zlib from.  zlibdir is -L../zlib and zlibinc is
+# -I../zlib, unless we were configured with --with-system-zlib, in which
+# case both are empty.
+ZLIB = @zlibdir@ -lz
+ZLIBINC = @zlibinc@
 
 # How to invoke ranlib.
 RANLIB = ranlib
@@ -173,7 +192,7 @@ GCC_FOR_TARGET = ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/i
 # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
 # It omits XCFLAGS, and specifies -B./.
 # It also specifies -isystem ./include to find, e.g., stddef.h.
-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_CFLAGS) -isystem ./include $(TCFLAGS)
+GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -isystem ./include $(TCFLAGS)
 
 # Specify the abi to use when building the c++ runtime
 GXX_ABI_FLAG=@GXX_ABI_FLAG@
@@ -424,6 +443,10 @@ MAYBE_USE_COLLECT2 = @maybe_use_collect2@
 # so don't override it here.
 USE_COLLECT2 = collect2$(exeext)
 
+# configure sets this to 'libcpp.a' if cpplib is being merged into
+# C-family front ends.
+MAYBE_CPPLIB = @maybe_cpplib@
+
 # List of extra C and assembler files to add to libgcc1.a.
 # Assembler files should have names ending in `.asm'.
 LIB1FUNCS_EXTRA =
@@ -574,7 +597,8 @@ INTERNAL_CFLAGS = $(CROSS) -DIN_GCC @extra_c_flags@
 # This is the variable actually used when we compile.
 # If you change this line, you probably also need to change the definition
 # of HOST_CFLAGS in build-make to match.
-ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(WARN_CFLAGS) $(XCFLAGS) @DEFS@
+ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) \
+  $(CFLAGS) $(WARN_CFLAGS) $(XCFLAGS) @DEFS@
 
 # Likewise.
 ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
@@ -616,11 +640,14 @@ HOST_ERRORS = $(HOST_PREFIX)errors.o
 # Both . and srcdir are used, in that order,
 # so that tm.h and config.h will be found in the compilation
 # subdirectory rather than in the source directory.
-INCLUDES = -I. -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include
+# -I$(@D) and -I$(srcdir)/$(@D) cause the subdirectory of the file
+# currently being compiled, in both source trees, to be examined as well.
+INCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
+	   -I$(srcdir)/config -I$(srcdir)/../include
 
 # Always use -I$(srcdir)/config when compiling.
 .c.o:
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
+	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
 
 # This tells GNU make version 3 not to export all the variables
 # defined in this file into the environment.
@@ -684,15 +711,12 @@ PREPEND_DOTDOT_TO_RELATIVE_PATHS = sed \
 	-e 's|%||g'
 SUBDIR_FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) \
 	"CC=`echo @quoted_cc_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`"
-# Flags to pass when recursing into a frontend subdirectory.
-LANG_FLAGS_TO_PASS = $(SUBDIR_FLAGS_TO_PASS) \
-	"CFLAGS=$(LOOSE_CFLAGS)"
 #
 # Lists of files for various purposes.
 
 # Language-specific object files for C and Objective C.
 C_AND_OBJC_OBJS = c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
-  c-convert.o c-aux-info.o c-common.o c-semantics.o @extra_c_objs@
+  c-convert.o c-aux-info.o c-common.o c-semantics.o $(MAYBE_CPPLIB)
 
 # Language-specific object files for C.
 C_OBJS = c-parse.o c-lang.o $(C_AND_OBJC_OBJS)
@@ -838,7 +862,7 @@ Makefile: $(srcdir)/Makefile.in config.status $(srcdir)/version.c \
 	rm -f config.run
 
 $(srcdir)/configure: $(srcdir)/configure.in
-	cd $(srcdir); autoconf
+	(cd $(srcdir) && autoconf)
 
 gccbug:	$(srcdir)/gccbug.in
 	CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status 
@@ -857,7 +881,7 @@ mklibgcc: $(srcdir)/mklibgcc.in
 # ??? Newer versions have a maintainer mode that may be useful here.
 $(srcdir)/config.in: $(srcdir)/cstamp-h.in
 $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h
-	cd $(srcdir) && autoheader
+	(cd $(srcdir) && autoheader)
 	@rm -f $(srcdir)/cstamp-h.in
 	echo timestamp > $(srcdir)/cstamp-h.in
 auto-host.h: cstamp-h ; @true
@@ -950,7 +974,7 @@ specs: xgcc$(exeext)
 gcc-cross: xgcc$(exeext)
 	cp xgcc$(exeext) gcc-cross$(exeext)
 
-cc1$(exeext): $(P) $(C_OBJS) $(BACKEND) $(LIBDEPS)
+cc1$(exeext): $(C_OBJS) $(BACKEND) $(LIBDEPS)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cc1$(exeext) \
 		$(C_OBJS) $(BACKEND) $(LIBS)
 
@@ -1109,8 +1133,8 @@ c-parse.o : $(srcdir)/c-parse.c $(CONFIG_H) $(TREE_H) c-lex.h $(GGC_H) intl.h \
 	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $(srcdir)/c-parse.c
 
 $(srcdir)/c-parse.c: $(srcdir)/c-parse.y
-	cd $(srcdir); $(BISON) $(BISONFLAGS) -o c-p$$$$.c c-parse.y ; \
-	mv -f c-p$$$$.c c-parse.c
+	(cd $(srcdir) && $(BISON) $(BISONFLAGS) -o c-p$$$$.c c-parse.y && \
+	mv -f c-p$$$$.c c-parse.c)
 $(srcdir)/c-parse.y: c-parse.in
 	echo '/*WARNING: This file is automatically generated!*/' >tmp-c-parse.y
 	sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \
@@ -1158,13 +1182,15 @@ hash.o: hash.c hash.h system.h toplev.h
 vfprintf.o: $(srcdir)/../libiberty/vfprintf.c $(CONFIG_H) system.h
 	rm -f vfprintf.c
 	$(LN_S) $(srcdir)/../libiberty/vfprintf.c vfprintf.c
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) vfprintf.c
+	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+		vfprintf.c $(OUTPUT_OPTION)
 
 splay-tree.o: $(srcdir)/../libiberty/splay-tree.c \
   $(srcdir)/../include/splay-tree.h $(srcdir)/../include/libiberty.h
 	rm -f splay-tree.c
 	$(LN_S) $(srcdir)/../libiberty/splay-tree.c splay-tree.c
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) splay-tree.c
+	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+		splay-tree.c $(OUTPUT_OPTION)
 
 underscore.c: s-under ; @true
 
@@ -1242,7 +1268,8 @@ ggc-none.o: ggc-none.c $(CONFIG_H) $(RTL_H) $(GGC_H)
 obstack.o: $(srcdir)/../libiberty/obstack.c $(CONFIG_H)
 	rm -f obstack.c
 	$(LN_S) $(srcdir)/../libiberty/obstack.c obstack.c
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) obstack.c
+	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+		obstack.c $(OUTPUT_OPTION)
 
 prefix.o: prefix.c $(CONFIG_H) system.h Makefile prefix.h
 	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
@@ -1437,7 +1464,8 @@ dependence.o : dependence.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) \
 $(out_object_file): $(out_file) $(CONFIG_H) $(TREE_H) $(GGC_H) \
    $(RTL_H) $(REGS_H) hard-reg-set.h real.h insn-config.h conditions.h \
    insn-flags.h output.h $(INSN_ATTR_H) insn-codes.h system.h toplev.h function.h
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(out_file)
+	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+		$(out_file) $(OUTPUT_OPTION)
 
 # Build auxiliary files that support ecoff format.
 mips-tfile: mips-tfile.o version.o $(LIBDEPS)
@@ -1814,7 +1842,7 @@ PREPROCESSOR_DEFINES = \
 
 LIBCPP_OBJS =	cpplib.o cpplex.o cppmacro.o cppexp.o cppfiles.o \
 		cpphash.o cpperror.o cppinit.o cppdefault.o cppoutput.o \
-		mkdeps.o prefix.o version.o mbchar.o @extra_cpp_objs@
+		mkdeps.o prefix.o version.o mbchar.o
 
 LIBCPP_DEPS =	cpplib.h cpphash.h intl.h system.h
 
@@ -1859,8 +1887,8 @@ tradcpp.o: tradcpp.c $(CONFIG_H) system.h version.h cppdefault.h
 tradcif.o: $(srcdir)/tradcif.c $(CONFIG_H) system.h defaults.h
 
 $(srcdir)/tradcif.c: $(srcdir)/tradcif.y
-	cd $(srcdir); $(BISON) $(BISONFLAGS) -o tr$$$$.c tradcif.y ; \
-	mv -f tr$$$$.c tradcif.c
+	(cd $(srcdir) && $(BISON) $(BISONFLAGS) -o tr$$$$.c tradcif.y && \
+	mv -f tr$$$$.c tradcif.c)
 
 # Note for the stamp targets, we run the program `true' instead of
 # having an empty command (nothing following the semicolon).
@@ -1879,13 +1907,13 @@ protoize.o: protoize.c $(srcdir)/../include/getopt.h $(CONFIG_H) system.h \
    Makefile version.h
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
 	  $(DRIVER_DEFINES) $(PREPROCESSOR_DEFINES) \
-	  $(srcdir)/protoize.c
+	  $(srcdir)/protoize.c $(OUTPUT_OPTION)
 
 unprotoize.o: unprotoize.c protoize.c $(srcdir)/../include/getopt.h \
    $(CONFIG_H) system.h Makefile version.h
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
 	  $(DRIVER_DEFINES) $(PREPROCESSOR_DEFINES) \
-	  $(srcdir)/unprotoize.c
+	  $(srcdir)/unprotoize.c $(OUTPUT_OPTION)
 
 # This info describes the target machine, so compile with GCC just built.
 SYSCALLS.c.X: $(srcdir)/sys-types.h $(srcdir)/sys-protos.h $(GCC_PASSES) \
@@ -1986,26 +2014,26 @@ fixinc.sh: $(FIXINCSRCDIR)/mkfixinc.sh $(FIXINCSRCDIR)/fixincl.c \
 	$(FIXINCSRCDIR)/procopen.c $(FIXINCSRCDIR)/gnu-regex.c \
 	$(FIXINCSRCDIR)/server.c $(FIXINCSRCDIR)/gnu-regex.h \
 	$(FIXINCSRCDIR)/server.h $(FIXINCSRCDIR)/inclhack.def specs.ready
-	MAKE="$(MAKE)"; srcdir=`cd $(srcdir)/fixinc; pwd` ; \
+	(MAKE="$(MAKE)"; srcdir=`cd $(srcdir)/fixinc && pwd` ; \
 	CC="$(CC)"; CFLAGS="$(CFLAGS)"; LDFLAGS="$(LDFLAGS)"; \
 	export MAKE srcdir CC CFLAGS LDFLAGS; \
-	cd ./fixinc; $(SHELL) $${srcdir}/mkfixinc.sh $(target)
+	cd ./fixinc && $(SHELL) $${srcdir}/mkfixinc.sh $(target))
 
 # Build fixed copies of system files.
 stmp-fixinc: fixinc.sh gsyslimits.h
 	rm -rf include; mkdir include
 	-chmod a+rx include
-	TARGET_MACHINE=$(target); srcdir=`cd $(srcdir); pwd`; \
+	(TARGET_MACHINE=$(target); srcdir=`cd $(srcdir); pwd`; \
 	INSTALL_ASSERT_H=$(INSTALL_ASSERT_H); SHELL=$(SHELL) ;\
 	export TARGET_MACHINE srcdir INSTALL_ASSERT_H SHELL ; \
-	$(SHELL) ./fixinc.sh `pwd`/include $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS)
-	rm -f include/syslimits.h
+	$(SHELL) ./fixinc.sh `pwd`/include $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS); \
+	rm -f include/syslimits.h; \
 	if [ -f include/limits.h ]; then \
 	  mv include/limits.h include/syslimits.h; \
 	else \
 	  cp $(srcdir)/gsyslimits.h include/syslimits.h; \
-	fi
-	chmod a+r include/syslimits.h
+	fi; \
+	chmod a+r include/syslimits.h)
 # If $(SYSTEM_HEADER_DIR) is $(tooldir)/sys-include, and
 # that directory exists, then make sure that $(libsubdir) exists.
 # This is because cpp is compiled to find $(tooldir)/include via
@@ -2136,8 +2164,8 @@ cpp.dvi: $(srcdir)/cpp.texi
 
 
 INSTALL: $(srcdir)/install1.texi $(srcdir)/install.texi
-	cd $(srcdir); $(MAKEINFO) -D INSTALLONLY \
-		--no-split --no-headers -o INSTALL install1.texi
+	(cd $(srcdir) && $(MAKEINFO) -D INSTALLONLY \
+		--no-split --no-headers -o INSTALL install1.texi)
 #
 # Deletion of files made during compilation.
 # There are four levels of this:
@@ -2191,7 +2219,7 @@ mostlyclean: $(INTL_MOSTLYCLEAN) lang.mostlyclean
 # that don't exist in the distribution.
 INTL_CLEAN = intl.clean
 clean: mostlyclean $(INTL_CLEAN) lang.clean
-	-rm -f libgcc.a
+	-rm -f libgcc.a libgcc_s$(SHLIB_EXT)
 	-rm -rf libgcc
 	-rm -f *.dvi
 	-rm -f */*.dvi
@@ -2637,44 +2665,44 @@ testsuite/site.exp: site.exp
 	cp site.exp testsuite/site.exp
 
 check-g++: testsuite/site.exp
-	-rootme=`pwd`; export rootme; \
+	-(rootme=`pwd`; export rootme; \
 	srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \
 	cd testsuite; \
 	EXPECT=${EXPECT} ; export EXPECT ; \
 	if [ -f $${rootme}/../expect/expect ] ; then  \
 	   TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \
 	    export TCL_LIBRARY ; fi ; \
-	$(RUNTEST) --tool g++ $(RUNTESTFLAGS)
+	$(RUNTEST) --tool g++ $(RUNTESTFLAGS))
 
 check-gcc: testsuite/site.exp
-	-rootme=`pwd`; export rootme; \
+	-(rootme=`pwd`; export rootme; \
 	srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \
 	cd testsuite; \
 	EXPECT=${EXPECT} ; export EXPECT ; \
 	if [ -f $${rootme}/../expect/expect ] ; then  \
 	   TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \
 	   export TCL_LIBRARY ; fi ; \
-	$(RUNTEST) --tool gcc $(RUNTESTFLAGS)
+	$(RUNTEST) --tool gcc $(RUNTESTFLAGS))
 
 check-g77: testsuite/site.exp
-	-rootme=`pwd`; export rootme; \
+	-(rootme=`pwd`; export rootme; \
 	srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \
 	cd testsuite; \
 	EXPECT=${EXPECT} ; export EXPECT ; \
 	if [ -f $${rootme}/../expect/expect ] ; then  \
 	   TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \
 	   export TCL_LIBRARY ; fi ; \
-	$(RUNTEST) --tool g77 $(RUNTESTFLAGS)
+	$(RUNTEST) --tool g77 $(RUNTESTFLAGS))
 
 check-objc: testsuite/site.exp
-	-rootme=`pwd`; export rootme; \
+	-(rootme=`pwd`; export rootme; \
 	srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \
 	cd testsuite; \
 	EXPECT=${EXPECT} ; export EXPECT ; \
 	if [ -f $${rootme}/../expect/expect ] ; then  \
 	   TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \
 	    export TCL_LIBRARY ; fi ; \
-	$(RUNTEST) --tool objc $(RUNTESTFLAGS)
+	$(RUNTEST) --tool objc $(RUNTESTFLAGS))
 
 check-po:
 	if test -f cp/Makefile && test -f f/Makefile && \
@@ -2686,12 +2714,12 @@ check-po:
 
 # Update the tags table.
 TAGS: force
-	cd $(srcdir);							\
+	(cd $(srcdir);							\
 	mkdir tmp-tags;							\
 	mv -f c-parse.[ch] =*.[chy] tmp-tags;				\
 	etags *.y *.h *.c;						\
 	mv tmp-tags/* .;						\
-	rmdir tmp-tags
+	rmdir tmp-tags)
 
 # Create the distribution tar.gz file.
 dist: tmp-gcc.xtar
@@ -2703,7 +2731,7 @@ tmp-gcc.xtar: distdir
 	tar -chf tmp-gcc.xtar gcc-$(version)
 
 distdir-cvs: force
-	if [ -d $(srcdir)/CVS ]; then cd $(srcdir) && cvs -r update; fi
+	if [ -d $(srcdir)/CVS ]; then (cd $(srcdir) && cvs -r update); fi
 
 # This target exists to do the initial work before the language specific
 # stuff gets done.
@@ -2766,7 +2794,7 @@ distdir-finish:
 # Get rid of everything we don't want in the distribution.  We'd want
 # this to use Makefile.in, but it doesn't have the `lang.foo' targets
 # expanded.
-	cd gcc-$(version); make extraclean distdir-check VERSION_DEP=
+	(cd gcc-$(version) && make extraclean distdir-check VERSION_DEP=)
 
 distdir-check:
 	($(AWK) '/^[^#]/{print} /^#[A-Za-z]/{print substr($$1, 2)}' | sort) \
@@ -2796,6 +2824,18 @@ diff:
 # A list of files to be destroyed during "lean" builds.
 VOL_FILES=`echo $(BACKEND) $(OBJS) $(C_OBJS) $(LIBCPP_OBJS) *.c *.h gen*`
 
+# Flags to pass to stage2 and later recursive makes.  Note that the
+# WARN_CFLAGS setting can't be to the expansion of GCC_WARN_CFLAGS in
+# the context of the stage_x rule.
+STAGE2_FLAGS_TO_PASS = \
+	CFLAGS="$(BOOT_CFLAGS)" \
+	LDFLAGS="$(BOOT_LDFLAGS)" \
+	WARN_CFLAGS="\$$(GCC_WARN_CFLAGS)" \
+	STRICT_WARN="$(STRICT2_WARN)" \
+	libdir=$(libdir) \
+	LANGUAGES="$(LANGUAGES)" \
+	OUTPUT_OPTION="-o \$$@"
+
 # Only build the C compiler for stage1, because that is the only one that
 # we can guarantee will build with the native compiler, and also it is the
 # only thing useful for building stage2.
@@ -2813,25 +2853,31 @@ stage_b: stage_a
 # because alloca.o is newer, we permit these recursive makes to compile
 # alloca.o.  Then cc1 is newer, so it won't have to be relinked.
 stage_c: stage_b
-	+$(MAKE) CC="stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CFLAGS="$(BOOT_CFLAGS)" WARN_CFLAGS="$(WARN2_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage1/ LANGUAGES="$(LANGUAGES)"
+	+$(MAKE) CC="stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \
+		 STAGE_PREFIX=stage1/ \
+		 $(STAGE2_FLAGS_TO_PASS)
 	touch stage_c
 
 stage_d: stage_c
 	+$(MAKE) stage2
 	touch stage_d
- 
+
 stage_e: stage_d
-	+$(MAKE) CC="stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" CFLAGS="$(BOOT_CFLAGS)" WARN_CFLAGS="$(WARN2_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage2/ LANGUAGES="$(LANGUAGES)"
+	+$(MAKE) CC="stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" \
+		 STAGE_PREFIX=stage2/ \
+		 $(STAGE2_FLAGS_TO_PASS)
 	touch stage_e
 
 # For bootstrap4:
 stage_f: stage_e
-	+$(MAKE) CC="stage3/xgcc$(exeext) -B$(build_tooldir)/bin/ -Bstage3/" CFLAGS="$(WARN_CFLAGS) $(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage3/ LANGUAGES="$(LANGUAGES)"
+	+$(MAKE) CC="stage3/xgcc$(exeext) -B$(build_tooldir)/bin/ -Bstage3/" \
+		 STAGE_PREFIX=stage3/ \
+		 $(STAGE2_FLAGS_TO_PASS)
 	touch stage_f
 
 # Additional steps for *-lean targets:
 clean_s1: stage_b
-	-cd stage1; rm -f $(VOL_FILES)
+	-(cd stage1 && rm -f $(VOL_FILES))
 	touch clean_s1
 
 clean_s2: stage_d
diff --git a/gcc/config.in b/gcc/config.in
index ceb76f93b78f71593b2504f42ab4cc86a7e704bc..b2a09f6014b3736e526c21e75c0fb0e1364154b2 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -320,8 +320,7 @@
    every opportunity.  This is extremely expensive. */
 #undef ENABLE_GC_ALWAYS_COLLECT
 
-/* Define if you want the preprocessor merged into the C and C++ compilers.
-   This mode is not ready for production use. */
+/* Define if you want the preprocessor merged into the C and C++ compilers. */
 #undef USE_CPPLIB
 
 /* Define if you want the C and C++ compilers to support multibyte
diff --git a/gcc/configure b/gcc/configure
index 95ae6fb09a8cf2125010820ff14185293b111db8..e214aea45e88daa6b1634b4a13766581e3e27619 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -864,12 +864,12 @@ fi
 
 
 # Link cpplib into the compiler proper, for C/C++/ObjC.
+maybe_cpplib=
 # Check whether --enable-c-cpplib or --disable-c-cpplib was given.
 if test "${enable_c_cpplib+set}" = set; then
   enableval="$enable_c_cpplib"
   if test x$enable_c_cpplib != xno; then
-  extra_c_objs="${extra_c_objs} libcpp.a"
-  extra_cxx_objs="${extra_cxx_objs} ../libcpp.a"
+  maybe_cpplib=libcpp.a
   cat >> confdefs.h <<\EOF
 #define USE_CPPLIB 1
 EOF
@@ -878,6 +878,7 @@ fi
 fi
 
 
+
 # Enable Multibyte Characters for C/C++
 # Check whether --enable-c-mbchar or --disable-c-mbchar was given.
 if test "${enable_c_mbchar+set}" = set; then
@@ -1004,7 +1005,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:1008: checking host system type" >&5
+echo "configure:1009: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -1025,7 +1026,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$host" 1>&6
 
 echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:1029: checking target system type" >&5
+echo "configure:1030: checking target system type" >&5
 
 target_alias=$target
 case "$target_alias" in
@@ -1043,7 +1044,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$target" 1>&6
 
 echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1047: checking build system type" >&5
+echo "configure:1048: checking build system type" >&5
 
 build_alias=$build
 case "$build_alias" in
@@ -1070,7 +1071,7 @@ test "$host_alias" != "$target_alias" &&
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1074: checking for $ac_word" >&5
+echo "configure:1075: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1100,7 +1101,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1104: checking for $ac_word" >&5
+echo "configure:1105: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1151,7 +1152,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1155: checking for $ac_word" >&5
+echo "configure:1156: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1183,7 +1184,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1187: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1188: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1194,12 +1195,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 1198 "configure"
+#line 1199 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:1203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1225,12 +1226,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1229: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1230: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1234: checking whether we are using GNU C" >&5
+echo "configure:1235: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1239,7 +1240,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1243: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1244: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1258,7 +1259,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1262: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1263: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1291,10 +1292,10 @@ fi
 
 if test "x$CC" != xcc; then
   echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6
-echo "configure:1295: checking whether $CC and cc understand -c and -o together" >&5
+echo "configure:1296: checking whether $CC and cc understand -c and -o together" >&5
 else
   echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6
-echo "configure:1298: checking whether cc understands -c and -o together" >&5
+echo "configure:1299: checking whether cc understands -c and -o together" >&5
 fi
 set dummy $CC; ac_cc="`echo $2 |
 		       sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`"
@@ -1306,16 +1307,16 @@ else
 # We do the test twice because some compilers refuse to overwrite an
 # existing .o file with -o, though they will create one.
 ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5'
-if { (eval echo configure:1310: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
-   test -f conftest.o && { (eval echo configure:1311: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+if { (eval echo configure:1311: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
+   test -f conftest.o && { (eval echo configure:1312: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
 then
   eval ac_cv_prog_cc_${ac_cc}_c_o=yes
   if test "x$CC" != xcc; then
     # Test first that cc exists at all.
-    if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1316: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+    if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1317: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
       ac_try='cc -c conftest.c -o conftest.o 1>&5'
-      if { (eval echo configure:1318: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
-	 test -f conftest.o && { (eval echo configure:1319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+      if { (eval echo configure:1319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
+	 test -f conftest.o && { (eval echo configure:1320: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
       then
         # cc works too.
         :
@@ -1341,13 +1342,17 @@ EOF
 
 fi
 
+# autoconf is lame and doesn't give us any substitution variable for this.
 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
   NO_MINUS_C_MINUS_O=yes
+else
+  OUTPUT_OPTION='-o $@'
 fi
 
 
+
 echo $ac_n "checking for long double""... $ac_c" 1>&6
-echo "configure:1351: checking for long double" >&5
+echo "configure:1356: checking for long double" >&5
 if eval "test \"`echo '$''{'gcc_cv_c_long_double'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1355,7 +1360,7 @@ else
   gcc_cv_c_long_double=yes
 else
 cat > conftest.$ac_ext <<EOF
-#line 1359 "configure"
+#line 1364 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1365,7 +1370,7 @@ long double foo = 0.0;
 switch (0) case 0: case (sizeof(long double) >= sizeof(double)):;
 ; return 0; }
 EOF
-if { (eval echo configure:1369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_c_long_double=yes
 else
@@ -1388,21 +1393,21 @@ fi
 
 
 echo $ac_n "checking whether ${CC-cc} accepts -Wno-long-long""... $ac_c" 1>&6
-echo "configure:1392: checking whether ${CC-cc} accepts -Wno-long-long" >&5
+echo "configure:1397: checking whether ${CC-cc} accepts -Wno-long-long" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_no_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   save_CFLAGS="$CFLAGS"
 CFLAGS="-Wno-long-long"
 cat > conftest.$ac_ext <<EOF
-#line 1399 "configure"
+#line 1404 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1411: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_prog_cc_no_long_long=yes
 else
@@ -1416,37 +1421,37 @@ CFLAGS="$save_CFLAGS"
 fi
 
 echo "$ac_t""$ac_cv_prog_cc_no_long_long" 1>&6
+strict1_warn=
+if test $ac_cv_prog_cc_no_long_long = yes; then
+  strict1_warn="-pedantic -Wno-long-long"
+fi
+
 
 # If the native compiler is GCC, we can enable warnings even in stage1.  
 # That's useful for people building cross-compilers, or just running a
 # quick `make'.
-stage1_warn_cflags=" -W -Wall -Wtraditional -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes"
-stage2_warn_cflags="$stage1_warn_cflags -pedantic -Wno-long-long"
-if test "x$GCC" = "xyes"; then 
-  if test $ac_cv_prog_cc_no_long_long = yes; then
-    stage1_warn_cflags="$stage1_warn_cflags -pedantic -Wno-long-long"
-  fi
-else
-  stage1_warn_cflags=""
+warn_cflags=
+if test "x$GCC" = "xyes"; then
+  warn_cflags='$(GCC_WARN_CFLAGS)'
 fi
 
+
 # Stage specific cflags for build.
+stage1_cflags=
 case $build in
 vax-*-*)
   if test x$GCC = xyes
   then
-    stage1_warn_cflags="$stage1_warn_cflags -Wa,-J"
+    stage1_cflags="-Wa,-J"
   else
-    stage1_warn_cflags="$stage1_warn_cflags -J"
+    stage1_cflags="-J"
   fi
   ;;
 esac
 
 
-
-
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1450: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1455: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1474,7 +1479,7 @@ fi
 
 
 echo $ac_n "checking whether a default assembler was specified""... $ac_c" 1>&6
-echo "configure:1478: checking whether a default assembler was specified" >&5
+echo "configure:1483: checking whether a default assembler was specified" >&5
 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
     if test x"$gas_flag" = x"no"; then
     	echo "$ac_t""yes ($DEFAULT_ASSEMBLER)" 1>&6
@@ -1486,7 +1491,7 @@ else
 fi
 
 echo $ac_n "checking whether a default linker was specified""... $ac_c" 1>&6
-echo "configure:1490: checking whether a default linker was specified" >&5
+echo "configure:1495: checking whether a default linker was specified" >&5
 if test x"${DEFAULT_LINKER+set}" = x"set"; then
     if test x"$gnu_ld_flag" = x"no"; then
 	echo "$ac_t""yes ($DEFAULT_LINKER)" 1>&6
@@ -1498,12 +1503,12 @@ else
 fi
 
 echo $ac_n "checking for GNU C library""... $ac_c" 1>&6
-echo "configure:1502: checking for GNU C library" >&5
+echo "configure:1507: checking for GNU C library" >&5
 if eval "test \"`echo '$''{'gcc_cv_glibc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1507 "configure"
+#line 1512 "configure"
 #include "confdefs.h"
 #include <features.h>
 int main() {
@@ -1513,7 +1518,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1517: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1522: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_glibc=yes
 else
@@ -1534,21 +1539,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1538: checking for inline" >&5
+echo "configure:1543: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 1545 "configure"
+#line 1550 "configure"
 #include "confdefs.h"
 
 int main() {
-} $ac_kw foo() {
+} int $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:1552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -1575,12 +1580,12 @@ esac
 
 
 # Find some useful tools
-for ac_prog in gawk mawk nawk awk
+for ac_prog in mawk gawk nawk awk
 do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1584: checking for $ac_word" >&5
+echo "configure:1589: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1612,7 +1617,7 @@ done
 # Extract the first word of "flex", so it can be a program name with args.
 set dummy flex; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1616: checking for $ac_word" >&5
+echo "configure:1621: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1646,7 +1651,7 @@ then
   *) ac_lib=l ;;
   esac
   echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
-echo "configure:1650: checking for yywrap in -l$ac_lib" >&5
+echo "configure:1655: checking for yywrap in -l$ac_lib" >&5
 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1654,7 +1659,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$ac_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1658 "configure"
+#line 1663 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1665,7 +1670,7 @@ int main() {
 yywrap()
 ; return 0; }
 EOF
-if { (eval echo configure:1669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1688,7 +1693,7 @@ fi
 fi
 
 echo $ac_n "checking whether ln works""... $ac_c" 1>&6
-echo "configure:1692: checking whether ln works" >&5
+echo "configure:1697: checking whether ln works" >&5
 if eval "test \"`echo '$''{'gcc_cv_prog_LN'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1720,7 +1725,7 @@ else
 fi
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1724: checking whether ln -s works" >&5
+echo "configure:1729: checking whether ln -s works" >&5
 if eval "test \"`echo '$''{'gcc_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1752,19 +1757,19 @@ else
 fi
 
 echo $ac_n "checking for volatile""... $ac_c" 1>&6
-echo "configure:1756: checking for volatile" >&5
+echo "configure:1761: checking for volatile" >&5
 if eval "test \"`echo '$''{'gcc_cv_c_volatile'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1761 "configure"
+#line 1766 "configure"
 #include "confdefs.h"
 
 int main() {
 volatile int foo;
 ; return 0; }
 EOF
-if { (eval echo configure:1768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_c_volatile=yes
 else
@@ -1787,7 +1792,7 @@ fi
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1791: checking for $ac_word" >&5
+echo "configure:1796: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1819,7 +1824,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1823: checking for $ac_word" >&5
+echo "configure:1828: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1860,7 +1865,7 @@ test -n "$YACC" || YACC="yacc"
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1864: checking for a BSD compatible install" >&5
+echo "configure:1869: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1911,7 +1916,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1915: checking how to run the C preprocessor" >&5
+echo "configure:1920: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1926,13 +1931,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1930 "configure"
+#line 1935 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1936: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1941: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1943,13 +1948,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1947 "configure"
+#line 1952 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1953: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1958: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1960,13 +1965,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1964 "configure"
+#line 1969 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1970: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1975: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1991,12 +1996,12 @@ fi
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1995: checking for ANSI C header files" >&5
+echo "configure:2000: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2000 "configure"
+#line 2005 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -2004,7 +2009,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2008: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2013: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2021,7 +2026,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2025 "configure"
+#line 2030 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -2039,7 +2044,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2043 "configure"
+#line 2048 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -2060,7 +2065,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 2064 "configure"
+#line 2069 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2071,7 +2076,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:2075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -2095,12 +2100,12 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:2099: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:2104: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2104 "configure"
+#line 2109 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -2109,7 +2114,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:2113: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2118: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -2130,12 +2135,12 @@ EOF
 fi
 
 echo $ac_n "checking whether string.h and strings.h may both be included""... $ac_c" 1>&6
-echo "configure:2134: checking whether string.h and strings.h may both be included" >&5
+echo "configure:2139: checking whether string.h and strings.h may both be included" >&5
 if eval "test \"`echo '$''{'gcc_cv_header_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2139 "configure"
+#line 2144 "configure"
 #include "confdefs.h"
 #include <string.h>
 #include <strings.h>
@@ -2143,7 +2148,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2152: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_header_string=yes
 else
@@ -2164,12 +2169,12 @@ EOF
 fi
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:2168: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:2173: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2173 "configure"
+#line 2178 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -2185,7 +2190,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:2189: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -2212,17 +2217,17 @@ for ac_hdr in limits.h stddef.h string.h strings.h stdlib.h time.h \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2216: checking for $ac_hdr" >&5
+echo "configure:2221: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2221 "configure"
+#line 2226 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2226: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2252,17 +2257,17 @@ done
 # Check for thread headers.
 ac_safe=`echo "thread.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for thread.h""... $ac_c" 1>&6
-echo "configure:2256: checking for thread.h" >&5
+echo "configure:2261: checking for thread.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2261 "configure"
+#line 2266 "configure"
 #include "confdefs.h"
 #include <thread.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2266: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2271: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2286,17 +2291,17 @@ fi
 
 ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for pthread.h""... $ac_c" 1>&6
-echo "configure:2290: checking for pthread.h" >&5
+echo "configure:2295: checking for pthread.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2295 "configure"
+#line 2300 "configure"
 #include "confdefs.h"
 #include <pthread.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2300: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2305: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2323,7 +2328,7 @@ fi
 # Extract the first word of "gnatbind", so it can be a program name with args.
 set dummy gnatbind; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2327: checking for $ac_word" >&5
+echo "configure:2332: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gnat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2362,7 +2367,7 @@ else
   # Extract the first word of "makeinfo", so it can be a program name with args.
 set dummy makeinfo; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2366: checking for $ac_word" >&5
+echo "configure:2371: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2391,13 +2396,13 @@ fi
 if test -n "$MAKEINFO"; then
   # Found it, now check the version.
   echo $ac_n "checking for modern makeinfo""... $ac_c" 1>&6
-echo "configure:2395: checking for modern makeinfo" >&5
+echo "configure:2400: checking for modern makeinfo" >&5
 if eval "test \"`echo '$''{'gcc_cv_prog_makeinfo_modern'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     ac_prog_version=`$MAKEINFO --version 2>&1 |
                    sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
-  echo "configure:2401: version of makeinfo is $ac_prog_version" >&5
+  echo "configure:2406: version of makeinfo is $ac_prog_version" >&5
   case $ac_prog_version in
     '')     gcc_cv_prog_makeinfo_modern=no;;
     3.1[2-9] | 3.[2-9][0-9] | 4.* | 1.6[89] | 1.7[0-9])
@@ -2430,12 +2435,12 @@ fi
 
 
 echo $ac_n "checking for preprocessor stringizing operator""... $ac_c" 1>&6
-echo "configure:2434: checking for preprocessor stringizing operator" >&5
+echo "configure:2439: checking for preprocessor stringizing operator" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stringize'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2439 "configure"
+#line 2444 "configure"
 #include "confdefs.h"
 
 #define x(y) #y
@@ -2468,12 +2473,12 @@ echo "$ac_t""${ac_cv_c_stringize}" 1>&6
 # Use <inttypes.h> only if it exists,
 # doesn't clash with <sys/types.h>, and declares intmax_t.
 echo $ac_n "checking for inttypes.h""... $ac_c" 1>&6
-echo "configure:2472: checking for inttypes.h" >&5
+echo "configure:2477: checking for inttypes.h" >&5
 if eval "test \"`echo '$''{'gcc_cv_header_inttypes_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2477 "configure"
+#line 2482 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <inttypes.h>
@@ -2481,7 +2486,7 @@ int main() {
 intmax_t i = -1;
 ; return 0; }
 EOF
-if { (eval echo configure:2485: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2490: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_header_inttypes_h=yes
 else
@@ -2506,7 +2511,7 @@ fi
 # be either signed or unsigned.
 #
 echo $ac_n "checking for unsigned enumerated bitfields""... $ac_c" 1>&6
-echo "configure:2510: checking for unsigned enumerated bitfields" >&5
+echo "configure:2515: checking for unsigned enumerated bitfields" >&5
 if eval "test \"`echo '$''{'gcc_cv_enum_bf_unsigned'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2514,7 +2519,7 @@ else
   gcc_cv_enum_bf_unsigned=yes
 else
   cat > conftest.$ac_ext <<EOF
-#line 2518 "configure"
+#line 2523 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 enum t { BLAH = 128 } ;
@@ -2527,7 +2532,7 @@ int main(void)
 
 }
 EOF
-if { (eval echo configure:2531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   gcc_cv_enum_bf_unsigned=yes
 else
@@ -2555,12 +2560,12 @@ for ac_func in strtoul bsearch putenv popen bcopy bzero bcmp \
 	fputs_unlocked getrusage valloc iconv nl_langinfo
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2559: checking for $ac_func" >&5
+echo "configure:2564: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2564 "configure"
+#line 2569 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2583,7 +2588,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2609,12 +2614,12 @@ done
 
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:2613: checking for ssize_t" >&5
+echo "configure:2618: checking for ssize_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2618 "configure"
+#line 2623 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -2645,12 +2650,12 @@ fi
 # Try to determine the array type of the second argument of getgroups
 # for the target system (int or gid_t).
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:2649: checking for uid_t in sys/types.h" >&5
+echo "configure:2654: checking for uid_t in sys/types.h" >&5
 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2654 "configure"
+#line 2659 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -2679,7 +2684,7 @@ EOF
 fi
 
 echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6
-echo "configure:2683: checking type of array argument to getgroups" >&5
+echo "configure:2688: checking type of array argument to getgroups" >&5
 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2687,7 +2692,7 @@ else
   ac_cv_type_getgroups=cross
 else
   cat > conftest.$ac_ext <<EOF
-#line 2691 "configure"
+#line 2696 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Rendell for this test.  */
@@ -2712,7 +2717,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:2716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
     ac_cv_type_getgroups=gid_t
 else
@@ -2726,7 +2731,7 @@ fi
 
 if test $ac_cv_type_getgroups = cross; then
         cat > conftest.$ac_ext <<EOF
-#line 2730 "configure"
+#line 2735 "configure"
 #include "confdefs.h"
 #include <unistd.h>
 EOF
@@ -2767,12 +2772,12 @@ fi
 
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2771: checking for vprintf" >&5
+echo "configure:2776: checking for vprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2776 "configure"
+#line 2781 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -2795,7 +2800,7 @@ vprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_vprintf=yes"
 else
@@ -2819,12 +2824,12 @@ fi
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2823: checking for _doprnt" >&5
+echo "configure:2828: checking for _doprnt" >&5
 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2828 "configure"
+#line 2833 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -2847,7 +2852,7 @@ _doprnt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func__doprnt=yes"
 else
@@ -2883,7 +2888,7 @@ fi
 
 
 echo $ac_n "checking whether the printf functions support %p""... $ac_c" 1>&6
-echo "configure:2887: checking whether the printf functions support %p" >&5
+echo "configure:2892: checking whether the printf functions support %p" >&5
 if eval "test \"`echo '$''{'gcc_cv_func_printf_ptr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2891,7 +2896,7 @@ else
   gcc_cv_func_printf_ptr=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 2895 "configure"
+#line 2900 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 
@@ -2904,7 +2909,7 @@ int main()
   return (p != q);
 }
 EOF
-if { (eval echo configure:2908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   gcc_cv_func_printf_ptr=yes
 else
@@ -2937,12 +2942,12 @@ case "${host}" in
   ;;
 esac
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:2941: checking for pid_t" >&5
+echo "configure:2946: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2946 "configure"
+#line 2951 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -2971,17 +2976,17 @@ fi
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:2975: checking for vfork.h" >&5
+echo "configure:2980: checking for vfork.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2980 "configure"
+#line 2985 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2985: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2990: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3006,18 +3011,18 @@ else
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:3010: checking for working vfork" >&5
+echo "configure:3015: checking for working vfork" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test "$cross_compiling" = yes; then
   echo $ac_n "checking for vfork""... $ac_c" 1>&6
-echo "configure:3016: checking for vfork" >&5
+echo "configure:3021: checking for vfork" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3021 "configure"
+#line 3026 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vfork(); below.  */
@@ -3040,7 +3045,7 @@ vfork();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_vfork=yes"
 else
@@ -3062,7 +3067,7 @@ fi
 ac_cv_func_vfork_works=$ac_cv_func_vfork
 else
   cat > conftest.$ac_ext <<EOF
-#line 3066 "configure"
+#line 3071 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -3157,7 +3162,7 @@ main() {
   }
 }
 EOF
-if { (eval echo configure:3161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_vfork_works=yes
 else
@@ -3183,17 +3188,17 @@ for ac_hdr in unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3187: checking for $ac_hdr" >&5
+echo "configure:3192: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3192 "configure"
+#line 3197 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3197: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3202: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3222,12 +3227,12 @@ done
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3226: checking for $ac_func" >&5
+echo "configure:3231: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3231 "configure"
+#line 3236 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3250,7 +3255,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3275,7 +3280,7 @@ fi
 done
 
 echo $ac_n "checking for working mmap which provides zeroed pages anywhere""... $ac_c" 1>&6
-echo "configure:3279: checking for working mmap which provides zeroed pages anywhere" >&5
+echo "configure:3284: checking for working mmap which provides zeroed pages anywhere" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_anywhere'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3283,7 +3288,7 @@ else
   ac_cv_func_mmap_anywhere=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 3287 "configure"
+#line 3292 "configure"
 #include "confdefs.h"
 
 /* Test by Richard Henderson and Alexandre Oliva.
@@ -3366,7 +3371,7 @@ int main()
   exit(0);
 }
 EOF
-if { (eval echo configure:3370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_anywhere=yes
 else
@@ -3389,7 +3394,7 @@ EOF
 fi
 
 echo $ac_n "checking for working mmap of a file""... $ac_c" 1>&6
-echo "configure:3393: checking for working mmap of a file" >&5
+echo "configure:3398: checking for working mmap of a file" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_file'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3404,7 +3409,7 @@ if test "$cross_compiling" = yes; then
   ac_cv_func_mmap_file=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 3408 "configure"
+#line 3413 "configure"
 #include "confdefs.h"
 
 /* Test by Zack Weinberg.  Modified from MMAP_ANYWHERE test by
@@ -3441,7 +3446,7 @@ int main()
   exit(0);
 }
 EOF
-if { (eval echo configure:3445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_file=yes
 else
@@ -3474,12 +3479,12 @@ for ac_func in bcopy bzero bcmp \
 do
   ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6
-echo "configure:3478: checking whether $ac_func is declared" >&5
+echo "configure:3483: checking whether $ac_func is declared" >&5
 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3483 "configure"
+#line 3488 "configure"
 #include "confdefs.h"
 #include "gansidecl.h"
 #include "system.h"
@@ -3490,7 +3495,7 @@ char *(*pfn) = (char *(*)) $ac_func ;
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3494: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3499: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "gcc_cv_have_decl_$ac_func=yes"
 else
@@ -3595,12 +3600,12 @@ for ac_func in getrlimit setrlimit getrusage
 do
   ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6
-echo "configure:3599: checking whether $ac_func is declared" >&5
+echo "configure:3604: checking whether $ac_func is declared" >&5
 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3604 "configure"
+#line 3609 "configure"
 #include "confdefs.h"
 #include "gansidecl.h"
 #include "system.h"
@@ -3615,7 +3620,7 @@ char *(*pfn) = (char *(*)) $ac_func ;
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3619: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3624: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "gcc_cv_have_decl_$ac_func=yes"
 else
@@ -3658,12 +3663,12 @@ CFLAGS="$saved_CFLAGS"
 
 # mkdir takes a single argument on some systems. 
 echo $ac_n "checking if mkdir takes one argument""... $ac_c" 1>&6
-echo "configure:3662: checking if mkdir takes one argument" >&5
+echo "configure:3667: checking if mkdir takes one argument" >&5
 if eval "test \"`echo '$''{'gcc_cv_mkdir_takes_one_arg'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3667 "configure"
+#line 3672 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -3680,7 +3685,7 @@ int main() {
 mkdir ("foo", 0);
 ; return 0; }
 EOF
-if { (eval echo configure:3684: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3689: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_mkdir_takes_one_arg=no
 else
@@ -7202,7 +7207,7 @@ fi
 
 
         echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6
-echo "configure:7206: checking for strerror in -lcposix" >&5
+echo "configure:7211: checking for strerror in -lcposix" >&5
 ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7210,7 +7215,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7214 "configure"
+#line 7219 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7221,7 +7226,7 @@ int main() {
 strerror()
 ; return 0; }
 EOF
-if { (eval echo configure:7225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7244,18 +7249,18 @@ fi
   
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:7248: checking for working const" >&5
+echo "configure:7253: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7253 "configure"
+#line 7258 "configure"
 #include "confdefs.h"
 
 int main() {
 
 /* Ultrix mips cc rejects this.  */
-typedef int charset[2]; const charset x;
+typedef int charset[2]; const charset x = {0,0};
 /* SunOS 4.1.1 cc rejects this.  */
 char const *const *ccp;
 char **p;
@@ -7298,7 +7303,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:7302: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7307: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -7319,12 +7324,12 @@ EOF
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:7323: checking for off_t" >&5
+echo "configure:7328: checking for off_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7328 "configure"
+#line 7333 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -7352,12 +7357,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:7356: checking for size_t" >&5
+echo "configure:7361: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7361 "configure"
+#line 7366 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -7387,19 +7392,19 @@ fi
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:7391: checking for working alloca.h" >&5
+echo "configure:7396: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7396 "configure"
+#line 7401 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
-char *p = alloca(2 * sizeof(int));
+void *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:7403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -7420,12 +7425,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:7424: checking for alloca" >&5
+echo "configure:7429: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7429 "configure"
+#line 7434 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -7453,7 +7458,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:7457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -7485,12 +7490,12 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:7489: checking whether alloca needs Cray hooks" >&5
+echo "configure:7494: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7494 "configure"
+#line 7499 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -7515,12 +7520,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7519: checking for $ac_func" >&5
+echo "configure:7524: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7524 "configure"
+#line 7529 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7543,7 +7548,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7570,7 +7575,7 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:7574: checking stack direction for C alloca" >&5
+echo "configure:7579: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7578,7 +7583,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 7582 "configure"
+#line 7587 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -7597,7 +7602,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:7601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -7624,17 +7629,17 @@ unistd.h sys/param.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7628: checking for $ac_hdr" >&5
+echo "configure:7633: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7633 "configure"
+#line 7638 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7638: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7643: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7664,12 +7669,12 @@ done
 strdup __argz_count __argz_stringify __argz_next
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7668: checking for $ac_func" >&5
+echo "configure:7673: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7673 "configure"
+#line 7678 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7692,7 +7697,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7721,12 +7726,12 @@ done
      for ac_func in stpcpy
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7725: checking for $ac_func" >&5
+echo "configure:7730: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7730 "configure"
+#line 7735 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7749,7 +7754,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7783,19 +7788,19 @@ EOF
 
    if test $ac_cv_header_locale_h = yes; then
     echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:7787: checking for LC_MESSAGES" >&5
+echo "configure:7792: checking for LC_MESSAGES" >&5
 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7792 "configure"
+#line 7797 "configure"
 #include "confdefs.h"
 #include <locale.h>
 int main() {
 return LC_MESSAGES
 ; return 0; }
 EOF
-if { (eval echo configure:7799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_val_LC_MESSAGES=yes
 else
@@ -7816,7 +7821,7 @@ EOF
     fi
   fi
    echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:7820: checking whether NLS is requested" >&5
+echo "configure:7825: checking whether NLS is requested" >&5
         # Check whether --enable-nls or --disable-nls was given.
 if test "${enable_nls+set}" = set; then
   enableval="$enable_nls"
@@ -7836,7 +7841,7 @@ fi
 EOF
 
       echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:7840: checking whether included gettext is requested" >&5
+echo "configure:7845: checking whether included gettext is requested" >&5
       # Check whether --with-included-gettext or --without-included-gettext was given.
 if test "${with_included_gettext+set}" = set; then
   withval="$with_included_gettext"
@@ -7855,17 +7860,17 @@ fi
 
 	ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:7859: checking for libintl.h" >&5
+echo "configure:7864: checking for libintl.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7864 "configure"
+#line 7869 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7869: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7874: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7882,19 +7887,19 @@ fi
 if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
-echo "configure:7886: checking for gettext in libc" >&5
+echo "configure:7891: checking for gettext in libc" >&5
 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7891 "configure"
+#line 7896 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 int main() {
 return (int) gettext ("")
 ; return 0; }
 EOF
-if { (eval echo configure:7898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gt_cv_func_gettext_libc=yes
 else
@@ -7910,7 +7915,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
 
 	   if test "$gt_cv_func_gettext_libc" != "yes"; then
 	     echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:7914: checking for bindtextdomain in -lintl" >&5
+echo "configure:7919: checking for bindtextdomain in -lintl" >&5
 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7918,7 +7923,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7922 "configure"
+#line 7927 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7929,7 +7934,7 @@ int main() {
 bindtextdomain()
 ; return 0; }
 EOF
-if { (eval echo configure:7933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7945,12 +7950,12 @@ fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
-echo "configure:7949: checking for gettext in libintl" >&5
+echo "configure:7954: checking for gettext in libintl" >&5
 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:7954: checking for gettext in -lintl" >&5
+echo "configure:7959: checking for gettext in -lintl" >&5
 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7958,7 +7963,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7962 "configure"
+#line 7967 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7969,7 +7974,7 @@ int main() {
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:7973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8008,7 +8013,7 @@ EOF
 	      # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8012: checking for $ac_word" >&5
+echo "configure:8017: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'gcc_cv_path_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8042,12 +8047,12 @@ fi
 		for ac_func in dcgettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8046: checking for $ac_func" >&5
+echo "configure:8051: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8051 "configure"
+#line 8056 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8070,7 +8075,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8097,7 +8102,7 @@ done
 		# Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8101: checking for $ac_word" >&5
+echo "configure:8106: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'gcc_cv_path_GMSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8133,7 +8138,7 @@ fi
 		# Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8137: checking for $ac_word" >&5
+echo "configure:8142: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'gcc_cv_path_XGETTEXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8165,7 +8170,7 @@ else
 fi
 
 		cat > conftest.$ac_ext <<EOF
-#line 8169 "configure"
+#line 8174 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -8173,7 +8178,7 @@ extern int _nl_msg_cat_cntr;
 			       return _nl_msg_cat_cntr
 ; return 0; }
 EOF
-if { (eval echo configure:8177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   CATOBJEXT=.gmo
 		   DATADIRNAME=share
@@ -8198,7 +8203,7 @@ fi
 
         if test "$CATOBJEXT" = "NONE"; then
 	  echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6
-echo "configure:8202: checking whether catgets can be used" >&5
+echo "configure:8207: checking whether catgets can be used" >&5
 	  # Check whether --with-catgets or --without-catgets was given.
 if test "${with_catgets+set}" = set; then
   withval="$with_catgets"
@@ -8211,7 +8216,7 @@ fi
 
 	  if test "$nls_cv_use_catgets" = "yes"; then
 	    	    echo $ac_n "checking for main in -li""... $ac_c" 1>&6
-echo "configure:8215: checking for main in -li" >&5
+echo "configure:8220: checking for main in -li" >&5
 ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8219,14 +8224,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-li  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8223 "configure"
+#line 8228 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:8230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8254,12 +8259,12 @@ else
 fi
 
 	    echo $ac_n "checking for catgets""... $ac_c" 1>&6
-echo "configure:8258: checking for catgets" >&5
+echo "configure:8263: checking for catgets" >&5
 if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8263 "configure"
+#line 8268 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char catgets(); below.  */
@@ -8282,7 +8287,7 @@ catgets();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_catgets=yes"
 else
@@ -8304,7 +8309,7 @@ EOF
 	       # Extract the first word of "gencat", so it can be a program name with args.
 set dummy gencat; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8308: checking for $ac_word" >&5
+echo "configure:8313: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'gcc_cv_path_GENCAT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8340,7 +8345,7 @@ fi
 		 # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8344: checking for $ac_word" >&5
+echo "configure:8349: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'gcc_cv_path_GMSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8377,7 +8382,7 @@ fi
 		   # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8381: checking for $ac_word" >&5
+echo "configure:8386: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'gcc_cv_path_GMSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8415,7 +8420,7 @@ fi
 		 # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8419: checking for $ac_word" >&5
+echo "configure:8424: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'gcc_cv_path_XGETTEXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8473,7 +8478,7 @@ fi
         # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8477: checking for $ac_word" >&5
+echo "configure:8482: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'gcc_cv_path_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8507,7 +8512,7 @@ fi
         # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8511: checking for $ac_word" >&5
+echo "configure:8516: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'gcc_cv_path_GMSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8546,7 +8551,7 @@ fi
         # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8550: checking for $ac_word" >&5
+echo "configure:8555: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'gcc_cv_path_XGETTEXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8645,7 +8650,7 @@ fi
        LINGUAS=
      else
        echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:8649: checking for catalogs to be installed" >&5
+echo "configure:8654: checking for catalogs to be installed" >&5
        if test "x$LINGUAS" = "x"; then
 	 LINGUAS=$ALL_LINGUAS
        else
@@ -8677,17 +8682,17 @@ echo "configure:8649: checking for catalogs to be installed" >&5
    if test "$CATOBJEXT" = ".cat"; then
      ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
-echo "configure:8681: checking for linux/version.h" >&5
+echo "configure:8686: checking for linux/version.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8686 "configure"
+#line 8691 "configure"
 #include "confdefs.h"
 #include <linux/version.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8691: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8696: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8762,7 +8767,7 @@ fi
 
 
 echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6
-echo "configure:8766: checking whether windows registry support is requested" >&5
+echo "configure:8771: checking whether windows registry support is requested" >&5
 if test x$enable_win32_registry != xno; then
   cat >> confdefs.h <<\EOF
 #define ENABLE_WIN32_REGISTRY 1
@@ -8791,7 +8796,7 @@ esac
 
 if test x$enable_win32_registry != xno; then
   echo $ac_n "checking registry key on windows hosts""... $ac_c" 1>&6
-echo "configure:8795: checking registry key on windows hosts" >&5
+echo "configure:8800: checking registry key on windows hosts" >&5
   cat >> confdefs.h <<EOF
 #define WIN32_REGISTRY_KEY "$gcc_cv_win32_registry_key"
 EOF
@@ -8985,7 +8990,7 @@ fi
 
 # Figure out what assembler we will be using.
 echo $ac_n "checking what assembler to use""... $ac_c" 1>&6
-echo "configure:8989: checking what assembler to use" >&5
+echo "configure:8994: checking what assembler to use" >&5
 gcc_cv_as=
 gcc_cv_gas_major_version=
 gcc_cv_gas_minor_version=
@@ -9070,7 +9075,7 @@ fi
 
 # Figure out what nm we will be using.
 echo $ac_n "checking what nm to use""... $ac_c" 1>&6
-echo "configure:9074: checking what nm to use" >&5
+echo "configure:9079: checking what nm to use" >&5
 if test -x nm$host_exeext; then
 	gcc_cv_nm=./nm$host_exeext
 elif test x$host = x$target; then
@@ -9081,7 +9086,7 @@ echo "$ac_t""$gcc_cv_nm" 1>&6
 
 # Figure out what assembler alignment features are present.
 echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6
-echo "configure:9085: checking assembler alignment features" >&5
+echo "configure:9090: checking assembler alignment features" >&5
 gcc_cv_as_alignment_features=
 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
 	# Gas version 2.6 and later support for .balign and .p2align.
@@ -9129,7 +9134,7 @@ fi
 echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6
 
 echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6
-echo "configure:9133: checking assembler subsection support" >&5
+echo "configure:9138: checking assembler subsection support" >&5
 gcc_cv_as_subsections=
 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
   if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
@@ -9169,7 +9174,7 @@ fi
 echo "$ac_t""$gcc_cv_as_subsections" 1>&6
 
 echo $ac_n "checking assembler weak support""... $ac_c" 1>&6
-echo "configure:9173: checking assembler weak support" >&5
+echo "configure:9178: checking assembler weak support" >&5
 gcc_cv_as_weak=
 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
   if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then
@@ -9192,7 +9197,7 @@ fi
 echo "$ac_t""$gcc_cv_as_weak" 1>&6
 
 echo $ac_n "checking assembler hidden support""... $ac_c" 1>&6
-echo "configure:9196: checking assembler hidden support" >&5
+echo "configure:9201: checking assembler hidden support" >&5
 gcc_cv_as_hidden=
 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
   if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 10 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
@@ -9218,7 +9223,7 @@ echo "$ac_t""$gcc_cv_as_hidden" 1>&6
 case "$target" in 
   sparc*-*-*)
     echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6
-echo "configure:9222: checking assembler .register pseudo-op support" >&5
+echo "configure:9227: checking assembler .register pseudo-op support" >&5
 if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9246,7 +9251,7 @@ EOF
     fi
 
     echo $ac_n "checking assembler supports -relax""... $ac_c" 1>&6
-echo "configure:9250: checking assembler supports -relax" >&5
+echo "configure:9255: checking assembler supports -relax" >&5
 if eval "test \"`echo '$''{'gcc_cv_as_relax_opt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9276,7 +9281,7 @@ EOF
     case "$tm_file" in
     *64*)
 	echo $ac_n "checking for 64 bit support in assembler ($gcc_cv_as)""... $ac_c" 1>&6
-echo "configure:9280: checking for 64 bit support in assembler ($gcc_cv_as)" >&5
+echo "configure:9285: checking for 64 bit support in assembler ($gcc_cv_as)" >&5
 if eval "test \"`echo '$''{'gcc_cv_as_flags64'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9321,7 +9326,7 @@ EOF
 
     if test "x$gcc_cv_as_flags64" != xno; then
 	echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6
-echo "configure:9325: checking for assembler offsetable %lo() support" >&5
+echo "configure:9330: checking for assembler offsetable %lo() support" >&5
 if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9360,7 +9365,7 @@ EOF
 
   i[34567]86-*-*)
     echo $ac_n "checking assembler instructions""... $ac_c" 1>&6
-echo "configure:9364: checking assembler instructions" >&5
+echo "configure:9369: checking assembler instructions" >&5
     gcc_cv_as_instructions=
     if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
       if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then
@@ -9480,8 +9485,8 @@ fi
 echo "Using $GGC for garbage collection."
 
 # Use the system's zlib library.
-zlibdir=-L../../zlib
-zlibinc="-I\$(srcdir)/../../zlib"
+zlibdir=-L../zlib
+zlibinc="-I\$(srcdir)/../zlib"
 # Check whether --with-system-zlib or --without-system-zlib was given.
 if test "${with_system_zlib+set}" = set; then
   withval="$with_system_zlib"
@@ -9510,7 +9515,7 @@ fi
 
 # Build a new-libstdc++ system (ie libstdc++-v3)
 echo $ac_n "checking for libstdc++ to install""... $ac_c" 1>&6
-echo "configure:9514: checking for libstdc++ to install" >&5
+echo "configure:9519: checking for libstdc++ to install" >&5
 # Check whether --enable-libstdcxx-v3 or --disable-libstdcxx-v3 was given.
 if test "${enable_libstdcxx_v3+set}" = set; then
   enableval="$enable_libstdcxx_v3"
@@ -9537,7 +9542,7 @@ EOF
 
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:9541: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:9546: checking whether to enable maintainer-specific portions of Makefiles" >&5
     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval="$enable_maintainer_mode"
@@ -9601,7 +9606,6 @@ all_lib2funcs=
 
 language_fragments="Make-lang"
 language_hooks="Make-hooks"
-oldstyle_subdirs=
 
 for s in .. $subdirs
 do
@@ -9621,7 +9625,7 @@ do
 			echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
 			exit 1
 		fi
-		all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in ${srcdir}/$s/Makefile.in"
+		all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in $outputs"
 		all_languages="$all_languages $language"
 		if test "x$boot_language" = xyes
 		then
@@ -9632,10 +9636,6 @@ do
 		all_diff_excludes="$all_diff_excludes $diff_excludes"
 		all_headers="$all_headers $headers"
 		all_outputs="$all_outputs $outputs"
-		if test x$outputs = x
-		then
-			oldstyle_subdirs="$oldstyle_subdirs $s"
-		fi
 		all_lib2funcs="$all_lib2funcs $lib2funcs"
 	fi
 done
@@ -9789,9 +9789,6 @@ ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xma
 
 
 
-
-
-
 
 
 
@@ -9964,6 +9961,7 @@ s%@includedir@%$includedir%g
 s%@oldincludedir@%$oldincludedir%g
 s%@infodir@%$infodir%g
 s%@mandir@%$mandir%g
+s%@maybe_cpplib@%$maybe_cpplib%g
 s%@enable_shared@%$enable_shared%g
 s%@host@%$host%g
 s%@host_alias@%$host_alias%g
@@ -9982,8 +9980,10 @@ s%@build_vendor@%$build_vendor%g
 s%@build_os@%$build_os%g
 s%@CC@%$CC%g
 s%@NO_MINUS_C_MINUS_O@%$NO_MINUS_C_MINUS_O%g
-s%@stage1_warn_cflags@%$stage1_warn_cflags%g
-s%@stage2_warn_cflags@%$stage2_warn_cflags%g
+s%@OUTPUT_OPTION@%$OUTPUT_OPTION%g
+s%@strict1_warn@%$strict1_warn%g
+s%@warn_cflags@%$warn_cflags%g
+s%@stage1_cflags@%$stage1_cflags%g
 s%@SET_MAKE@%$SET_MAKE%g
 s%@AWK@%$AWK%g
 s%@LEX@%$LEX%g
@@ -10062,9 +10062,6 @@ s%@cpp_install_dir@%$cpp_install_dir%g
 s%@dep_host_xmake_file@%$dep_host_xmake_file%g
 s%@dep_tmake_file@%$dep_tmake_file%g
 s%@extra_c_flags@%$extra_c_flags%g
-s%@extra_c_objs@%$extra_c_objs%g
-s%@extra_cpp_objs@%$extra_cpp_objs%g
-s%@extra_cxx_objs@%$extra_cxx_objs%g
 s%@extra_headers_list@%$extra_headers_list%g
 s%@extra_objs@%$extra_objs%g
 s%@extra_parts@%$extra_parts%g
@@ -10362,7 +10359,6 @@ target='${target}'
 target_alias='${target_alias}'
 srcdir='${srcdir}'
 subdirs='${subdirs}'
-oldstyle_subdirs='${oldstyle_subdirs}'
 symbolic_link='${symbolic_link}'
 program_transform_set='${program_transform_set}'
 program_transform_name='${program_transform_name}'
@@ -10394,7 +10390,6 @@ case "$CONFIG_FILES" in *po/Makefile.in*)
         sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
       esac
 
-. $srcdir/configure.lang
 case x$CONFIG_HEADERS in
 xauto-host.h:config.in)
 echo > cstamp-h ;;
diff --git a/gcc/configure.in b/gcc/configure.in
index b05d5b57ad0bef57b94a06e5288b68850e252977..0a1e5224c98debdb42b016e0aa6b46bb44d113f4 100644
--- a/gcc/configure.in
+++ b/gcc/configure.in
@@ -255,16 +255,16 @@ elif test x$withval != xno; then
 fi])
 
 # Link cpplib into the compiler proper, for C/C++/ObjC.
+maybe_cpplib=
 AC_ARG_ENABLE(c-cpplib,
 [  --enable-c-cpplib       link cpplib directly into C and C++ compilers
                            (HIGHLY EXPERIMENTAL).],
 if test x$enable_c_cpplib != xno; then
-  extra_c_objs="${extra_c_objs} libcpp.a"
-  extra_cxx_objs="${extra_cxx_objs} ../libcpp.a"
+  maybe_cpplib=libcpp.a
   AC_DEFINE(USE_CPPLIB, 1,
-  [Define if you want the preprocessor merged into the C and C++ compilers.
-   This mode is not ready for production use.])
+  [Define if you want the preprocessor merged into the C and C++ compilers.])
 fi)
+AC_SUBST(maybe_cpplib)
 
 # Enable Multibyte Characters for C/C++
 AC_ARG_ENABLE(c-mbchar,
@@ -330,10 +330,14 @@ AC_CANONICAL_SYSTEM
 # Find the native compiler
 AC_PROG_CC
 AC_PROG_CC_C_O
+# autoconf is lame and doesn't give us any substitution variable for this.
 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
   NO_MINUS_C_MINUS_O=yes
+else
+  OUTPUT_OPTION='-o $@'
 fi
 AC_SUBST(NO_MINUS_C_MINUS_O)
+AC_SUBST(OUTPUT_OPTION)
 
 gcc_AC_C_LONG_DOUBLE
 
@@ -344,34 +348,34 @@ CFLAGS="-Wno-long-long"
 AC_TRY_COMPILE(,,ac_cv_prog_cc_no_long_long=yes,
 	       ac_cv_prog_cc_no_long_long=no)
 CFLAGS="$save_CFLAGS"])
+strict1_warn=
+if test $ac_cv_prog_cc_no_long_long = yes; then
+  strict1_warn="-pedantic -Wno-long-long"
+fi
+AC_SUBST(strict1_warn)
 
 # If the native compiler is GCC, we can enable warnings even in stage1.  
 # That's useful for people building cross-compilers, or just running a
 # quick `make'.
-stage1_warn_cflags=" -W -Wall -Wtraditional -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes"
-stage2_warn_cflags="$stage1_warn_cflags -pedantic -Wno-long-long"
-if test "x$GCC" = "xyes"; then 
-  if test $ac_cv_prog_cc_no_long_long = yes; then
-    stage1_warn_cflags="$stage1_warn_cflags -pedantic -Wno-long-long"
-  fi
-else
-  stage1_warn_cflags=""
+warn_cflags=
+if test "x$GCC" = "xyes"; then
+  warn_cflags='$(GCC_WARN_CFLAGS)'
 fi
+AC_SUBST(warn_cflags)
 
 # Stage specific cflags for build.
+stage1_cflags=
 case $build in
 vax-*-*)
   if test x$GCC = xyes
   then
-    stage1_warn_cflags="$stage1_warn_cflags -Wa,-J"
+    stage1_cflags="-Wa,-J"
   else
-    stage1_warn_cflags="$stage1_warn_cflags -J"
+    stage1_cflags="-J"
   fi
   ;;
 esac
-
-AC_SUBST(stage1_warn_cflags)
-AC_SUBST(stage2_warn_cflags)
+AC_SUBST(stage1_cflags)
 
 AC_PROG_MAKE_SET
 
@@ -4875,8 +4879,8 @@ AC_SUBST(GGC)
 echo "Using $GGC for garbage collection."
 
 # Use the system's zlib library.
-zlibdir=-L../../zlib
-zlibinc="-I\$(srcdir)/../../zlib"
+zlibdir=-L../zlib
+zlibinc="-I\$(srcdir)/../zlib"
 AC_ARG_WITH(system-zlib,
 [  --with-system-zlib      use installed libz],
 zlibdir=
@@ -4983,7 +4987,6 @@ all_lib2funcs=
 
 language_fragments="Make-lang"
 language_hooks="Make-hooks"
-oldstyle_subdirs=
 
 for s in .. $subdirs
 do
@@ -5003,7 +5006,7 @@ do
 			echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
 			exit 1
 		fi
-		all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in ${srcdir}/$s/Makefile.in"
+		all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in $outputs"
 		all_languages="$all_languages $language"
 		if test "x$boot_language" = xyes
 		then
@@ -5014,10 +5017,6 @@ do
 		all_diff_excludes="$all_diff_excludes $diff_excludes"
 		all_headers="$all_headers $headers"
 		all_outputs="$all_outputs $outputs"
-		if test x$outputs = x
-		then
-			oldstyle_subdirs="$oldstyle_subdirs $s"
-		fi
 		all_lib2funcs="$all_lib2funcs $lib2funcs"
 	fi
 done
@@ -5140,9 +5139,6 @@ AC_SUBST(cpp_install_dir)
 AC_SUBST(dep_host_xmake_file)
 AC_SUBST(dep_tmake_file)
 AC_SUBST(extra_c_flags)
-AC_SUBST(extra_c_objs)
-AC_SUBST(extra_cpp_objs)
-AC_SUBST(extra_cxx_objs)
 AC_SUBST(extra_headers_list)
 AC_SUBST(extra_objs)
 AC_SUBST(extra_parts)
@@ -5218,7 +5214,6 @@ fi
 # and configure language subdirectories
 AC_OUTPUT($all_outputs,
 [
-. $srcdir/configure.lang
 case x$CONFIG_HEADERS in
 xauto-host.h:config.in)
 echo > cstamp-h ;;
@@ -5256,7 +5251,6 @@ target='${target}'
 target_alias='${target_alias}'
 srcdir='${srcdir}'
 subdirs='${subdirs}'
-oldstyle_subdirs='${oldstyle_subdirs}'
 symbolic_link='${symbolic_link}'
 program_transform_set='${program_transform_set}'
 program_transform_name='${program_transform_name}'
diff --git a/gcc/configure.lang b/gcc/configure.lang
deleted file mode 100644
index d96b6d8d53147579d1a96ee885cd317a7bbc39cf..0000000000000000000000000000000000000000
--- a/gcc/configure.lang
+++ /dev/null
@@ -1,233 +0,0 @@
-# configure.lang for GNU CC
-# This script is run by configure for configuration of language
-# subdirectories which conform to the old GCC configure mechanism
-# for such subdirectories.
-
-# Copyright (C) 1997, 1998 Free Software Foundation, Inc.
-
-#This file is part of GNU CC.
-
-#GNU CC is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 2, or (at your option)
-#any later version.
-
-#GNU CC is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#GNU General Public License for more details.
-
-#You should have received a copy of the GNU General Public License
-#along with GNU CC; see the file COPYING.  If not, write to
-#the Free Software Foundation, 59 Temple Place - Suite 330,
-#Boston, MA 02111-1307, USA.
-
-savesrcdir=$srcdir
-
-for subdir in . $oldstyle_subdirs
-do
-	# We only want to do this in language subdirs, but we have to handle
-	# the case of $oldstyle_subdirs = "".
-	if [ $subdir = . ]
-	then
-		continue
-	fi
-
-	oldsrcdir=$savesrcdir
-
-	# Re-adjust the path
-	case $oldsrcdir in
-	/*)
-		srcdir=$oldsrcdir/$subdir
-		;;
-	*)
-		oldsrcdir=../${oldsrcdir}
-		srcdir=$oldsrcdir/$subdir
-		;;
-	esac
-	mainsrcdir=$oldsrcdir
-	STARTDIR=`pwd`
-	test -d $subdir || mkdir $subdir
-	cd $subdir
-
-	# Create Makefile.tem from Makefile.in.
-	# Make it set VPATH if necessary so that the sources are found.
-	# Also change its value of srcdir.
-	# Also create a .gdbinit file which runs the one in srcdir
-	# and tells GDB to look there for source files.
-	case $srcdir in
-	. | ./$subdir | .././$subdir)
-		rm -f Makefile.tem
-		cp Makefile.in Makefile.tem
-		chmod +w Makefile.tem
-		;;
-	*)
-		rm -f Makefile.tem
-		echo "VPATH = ${srcdir}" \
-		  | cat - ${srcdir}/Makefile.in \
-		  | sed "s@^srcdir = \.@srcdir = ${srcdir}@" > Makefile.tem
-		rm -f .gdbinit
-		echo "dir ." > .gdbinit
-		echo "dir ${srcdir}" >> .gdbinit
-		echo "dir ${mainsrcdir}" >> .gdbinit
-		if [ x$gdb_needs_out_file_path = xyes ]
-		then
-			echo "dir ${mainsrcdir}/config/"`dirname ${out_file}` >> .gdbinit
-		fi
-		echo "source ${mainsrcdir}/.gdbinit" >> .gdbinit
-		;;
-	esac
-
-	# Conditionalize the makefile for this host machine.
-	rm -f Makefile.xx Makefile.ll
-	merged_frags=
-	for f in .. ${host_xmake_file}
-	do
-		if [ -f ${mainsrcdir}/config/$f ]
-		then
-			cat ${mainsrcdir}/config/$f >> Makefile.ll
-			if [ x"${merged_frags}" != x ]
-			then
-				merged_frags="${merged_frags} and "
-			fi
-			merged_frags="${merged_frags}${f}"
-		fi
-	done
-	if [ x"${merged_frags}" != x ]
-	then
-		sed -e "/####host/  r Makefile.ll" Makefile.tem > Makefile.xx
-		echo "Merged ${merged_frags}."
-		rm -f Makefile.tem
-		mv Makefile.xx Makefile.tem
-		rm -f Makefile.ll
-	fi
-
-	# Add a definition for MAKE if system wants one.
-	case "$SET_MAKE" in
-	?*)
-		rm -f Makefile.xx
-		(echo "$SET_MAKE"; cat Makefile.tem) >Makefile.xx
-		rm -f Makefile.tem
-		mv Makefile.xx Makefile.tem
-	esac
-
-	# Add a definition for INSTALL if system wants one.
-	# This substitutes for lots of x-* files.
-	if [ x$build_broken_install = x ]
-	then true
-	else
-		rm -f Makefile.xx
-		abssrcdir=`cd ${srcdir}; pwd`
-		sed "s|^INSTALL = .*|${INSTALL}|" Makefile.tem > Makefile.xx
-		rm -f Makefile.tem
-		mv Makefile.xx Makefile.tem
-	fi
-
-	# If using -program-transform-name, override the installation names.
-	if [ "x${program_transform_set}" = "xyes" ] ; then
-		sed -e "s/^program_transform_name[ 	]*=.*$/program_transform_name =
-$program_transform_name/" \
-		    -e "s/^program_transform_cross_name[
-]*=.*$/program_transform_cross_name = $program_transform_name/" \
-		    Makefile.tem > Makefile.xx
-		rm -f Makefile.tem
-		mv Makefile.xx Makefile.tem
-	fi
-
-	# Conditionalize the makefile for this target machine.
-	rm -f Makefile.xx Makefile.ll
-	merged_frags=
-	for f in .. ${tmake_file}
-	do
-		if [ -f ${mainsrcdir}/config/$f ]
-		then
-			cat ${mainsrcdir}/config/$f >> Makefile.ll
-			if [ x"${merged_frags}" != x ]
-			then
-				merged_frags="${merged_frags} and "
-			fi
-			merged_frags="${merged_frags}$f"
-		fi
-	done
-	if [ x"${merged_frags}" != x ]
-	then
-		sed -e "/####target/  r Makefile.ll" Makefile.tem > Makefile.xx
-		echo "Merged ${merged_frags}."
-		rm -f Makefile.tem
-		mv Makefile.xx Makefile.tem
-		rm -f Makefile.ll
-	fi
-
-	# If the host supports
-	# symlinks, point stage[123] at ../stage[123] so bootstrapping and the
-	# installation procedure can still use CC="stage1/xgcc -Bstage1/".
-	# If the host doesn't support symlinks, FLAGS_TO_PASS has been
-	# modified to solve the problem there.
-	for t in stage1 stage2 stage3 stage4 include
-	do
-		rm -f $t
-		$symbolic_link ../$t $t 2>/dev/null
-	done
-
-	# Remove all formfeeds, since some Makes get confused by them.
-	# Also arrange to give the variables `target', `target_alias',
-	# `host_xmake_file', `tmake_file', `prefix', `local_prefix',
-	# `exec_prefix', `INSTALL_HEADERS_DIR', `exeext'
-	# values in the Makefile from the values they have in this script.
-	rm -f Makefile.xx
-	# Create an empty Makefile.sed first, to work around a Nextstep 3.3 bug.
-	echo 's|||' > Makefile.sed
-	rm Makefile.sed
-	echo 's|||' > Makefile.sed
-	echo "s|^target=.*$|target=${target}|" >> Makefile.sed
-	echo "s|^target_alias=.*$|target_alias=${target_alias}|" >> Makefile.sed
-	echo "s|^xmake_file=.*$|xmake_file=${dep_host_xmake_file}|" >> Makefile.sed
-	echo "s|^tmake_file=.*$|tmake_file=${dep_tmake_file}|" >> Makefile.sed
-	echo "s|^version=.*$|version=${version}|" >> Makefile.sed
-	echo "s|^GCC_THREAD_FILE=.*$|GCC_THREAD_FILE=${thread_file}|" >> Makefile.sed
-	echo "s|^prefix[ 	]*=.*|prefix = $prefix|" >> Makefile.sed
-	echo "s|^local_prefix[ 	]*=.*|local_prefix = $local_prefix|" >> Makefile.sed
-	echo "s|^exec_prefix[ 	]*=.*|exec_prefix = $exec_prefix|" >> Makefile.sed
-	echo "s|^INSTALL_HEADERS_DIR[ 	]*=.*$|INSTALL_HEADERS_DIR = ${build_install_headers_dir}|" >> Makefile.sed
-	echo "s|^exeext[ 	]*=.*$|exeext = ${build_exeext}|" >> Makefile.sed
-	sed -f Makefile.sed Makefile.tem > Makefile.xx
-	rm -f Makefile.tem Makefile.sed
-	mv Makefile.xx Makefile.tem
-
-	# Install Makefile for real, after making final changes.
-	# Define macro CROSS_COMPILE in compilation
-	# if this is a cross-compiler.
-	# Also use all.cross instead of all.internal
-	# and add cross-make to Makefile.
-	if [ x$host != x$target ]
-	then
-		rm -f Makefile.xx
-		echo "CROSS=-DCROSS_COMPILE" > Makefile.xx
-		sed -e "/####cross/  r ${mainsrcdir}/cross-make" Makefile.tem >> Makefile.xx
-		rm -f Makefile.tem
-		mv Makefile.xx Makefile.tem
-	fi
-
-	# When building gcc with a cross-compiler, we need to fix a few things.
-	# This must come after cross-make as we want all.build to override
-	# all.cross.
-  	if [ x$build != x$host ]
-	then
-		rm -f Makefile.xx
-		echo "build= $build" > Makefile.xx
-		echo "host= $host" >> Makefile.xx
-    		sed -e "s|objc-runtime$||" \
-		    -e "/####build/  r ${mainsrcdir}/build-make" Makefile.tem >> Makefile.xx
-		rm -f Makefile.tem
-		mv Makefile.xx Makefile.tem
-	fi
-
-	rm -f Makefile
-	mv Makefile.tem Makefile
-	echo "Created \`$subdir/Makefile'."
-
-	cd $STARTDIR
-done   # end of current-dir SUBDIRS loop
-
-# Restore this, remember we're invoked with `.'.
-srcdir=$savesrcdir
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 8e63deafb6d77717f3a7d7b9c14cde6eb70749e5..7cd501f954168ca3c725e3d03ff07035d55d3187 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,15 @@
+2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
+
+	* Make-lang.in: Move all build rules here from Makefile.in,
+	adapt to new context.  Wrap all rules that change the current
+	directory in parentheses.  Expunge all references to $(P).
+	When one command depends on another and they're run all at
+	once, use && to separate them, not ;.  Add OUTPUT_OPTION to
+	all object-file generation rules.  Delete obsolete variables.
+
+	* Makefile.in: Delete.
+	* config-lang.in: Delete outputs= line.
+
 2000-10-26  Gabriel Dos Reis  <gdr@codesourcery.com>
 
 	* error.c (dump_function_decl): Print no space between
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 2e426b6c491b4abab8dda54d388abe22f5150b13..5e03947fb11d70506729231c7d5b592dda92c79a 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -36,12 +36,6 @@
 # - making any compiler driver (eg: g++)
 # - the compiler proper (eg: cc1plus)
 # - define the names for selecting the language in LANGUAGES.
-#
-# Extra flags to pass to recursive makes.
-CXX_FLAGS_TO_PASS = \
-	"CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
-	"CXXFLAGS=$(CXXFLAGS)" \
-	"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"
 
 # Actual names to use when installing a native compiler.
 CXX_INSTALL_NAME = `t='$(program_transform_name)'; echo c++ | sed $$t`
@@ -56,12 +50,6 @@ DEMANGLER_CROSS_NAME = `t='$(program_transform_cross_name)'; echo c++filt | sed
 # The name to use for the demangler program.
 DEMANGLER_PROG = c++filt$(exeext)
 
-# Extra code to include in libgcc2.
-CXX_LIB2FUNCS = tinfo.o tinfo2.o new.o opnew.o opnewnt.o opvnew.o opvnewnt.o \
-	opdel.o opdelnt.o opvdel.o opvdelnt.o exception.o vec.o
-CXX_LIB2SRCS = $(srcdir)/cp/new.cc $(srcdir)/cp/new1.cc $(srcdir)/cp/new2.cc \
-	$(srcdir)/cp/exception.cc $(srcdir)/cp/tinfo.cc \
-	$(srcdir)/cp/tinfo2.cc $(srcdir)/cp/tinfo.h
 #
 # Define the names for selecting c++ in LANGUAGES.
 # Note that it would be nice to move the dependency on g++
@@ -76,12 +64,6 @@ g++spec.o: $(srcdir)/cp/g++spec.c system.h $(GCC_H)
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/cp/g++spec.c
 
 $(INTL_TARGETS): $(srcdir)/cp/parse.c
-$(srcdir)/cp/parse.c: $(srcdir)/cp/parse.y
-	@cp_srcdir=`sed -n 's/^srcdir[ 	]*=[	 ]*//p' cp/Makefile` && \
-	echo "cd cp && $(MAKE) $$cp_srcdir/parse.c" && \
-	cd cp && \
-	  $(MAKE) $(LANG_FLAGS_TO_PASS) $(CXX_FLAGS_TO_PASS) \
-	    $$cp_srcdir/parse.c
 
 # Create the compiler driver for g++.
 GXX_OBJS = gcc.o g++spec.o intl.o prefix.o version.o 
@@ -94,6 +76,7 @@ g++-cross$(exeext): g++$(exeext)
 	-rm -f g++-cross$(exeext)
 	cp g++$(exeext) g++-cross$(exeext)
 
+# The demangler.
 cxxmain.o: $(srcdir)/../libiberty/cplus-dem.c $(DEMANGLE_H)
 	rm -f cxxmain.c
 	$(LN_S) $(srcdir)/../libiberty/cplus-dem.c cxxmain.c
@@ -105,24 +88,36 @@ $(DEMANGLER_PROG): cxxmain.o underscore.o $(LIBDEPS)
 	$(CC) -o $@ $(ALL_CFLAGS) $(LDFLAGS) \
 	  cxxmain.o underscore.o $(LIBS)
 
-CXX_SRCS = $(srcdir)/cp/call.c $(srcdir)/cp/class.c $(srcdir)/cp/cp-tree.def \
- $(srcdir)/c-common.def \
- $(srcdir)/cp/cp-tree.h $(srcdir)/cp/cvt.c $(srcdir)/cp/decl.c \
- $(srcdir)/cp/decl.h $(srcdir)/cp/decl2.c $(srcdir)/cp/dump.c \
- $(srcdir)/cp/errfn.c $(srcdir)/cp/error.c $(srcdir)/cp/except.c \
- $(srcdir)/cp/expr.c $(srcdir)/cp/friend.c $(srcdir)/cp/init.c \
- $(srcdir)/cp/lex.c $(srcdir)/cp/lex.h \
- $(srcdir)/cp/mangle.c $(srcdir)/cp/method.c $(srcdir)/cp/optimize.c \
- $(srcdir)/cp/parse.y $(srcdir)/cp/pt.c $(srcdir)/cp/ptree.c \
- $(srcdir)/cp/repo.c $(srcdir)/cp/rtti.c $(srcdir)/cp/search.c \
- $(srcdir)/cp/semantics.c $(srcdir)/cp/spew.c $(srcdir)/cp/tree.c \
- $(srcdir)/cp/typeck.c $(srcdir)/cp/typeck2.c $(srcdir)/cp/xref.c
-
-cc1plus$(exeext): $(P) $(CXX_SRCS) $(LIBDEPS) $(BACKEND) c-common.o \
-	c-pragma.o c-semantics.o c-lex.o $(srcdir)/cp/cp-tree.h $(srcdir)/cp/cp-tree.def \
-	$(srcdir)/c-common.def $(srcdir)/cp/cfns.gperf hash.o \
-	$(srcdir)/cp/operators.def
-	cd cp; $(MAKE) $(LANG_FLAGS_TO_PASS) $(CXX_FLAGS_TO_PASS) ../cc1plus$(exeext)
+# The compiler itself.
+# Shared with C front end:
+CXX_C_OBJS = c-common.o c-pragma.o c-semantics.o c-lex.o
+
+# Language-specific object files.
+CXX_OBJS = cp/call.o cp/decl.o cp/errfn.o cp/expr.o cp/pt.o cp/typeck2.o \
+ cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parse.o cp/ptree.o cp/rtti.o \
+ cp/spew.o cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o cp/method.o \
+ cp/search.o cp/semantics.o cp/tree.o cp/xref.o cp/repo.o cp/dump.o \
+ cp/optimize.o cp/mangle.o
+
+# Use loose warnings for this front end.
+cp-warn =
+
+cc1plus$(exeext): $(CXX_OBJS) $(CXX_C_OBJS) $(BACKEND) \
+		  $(MAYBE_CPPLIB) $(LIBDEPS)
+	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
+	      $(CXX_OBJS) $(CXX_C_OBJS) $(BACKEND) $(MAYBE_CPPLIB) $(LIBS)
+
+# Special build rules.
+$(srcdir)/cp/cfns.h: $(srcdir)/cp/cfns.gperf
+	gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' \
+		$(srcdir)/cp/cfns.gperf > $(srcdir)/cp/cfns.h
+
+$(srcdir)/cp/parse.h $(srcdir)/cp/parse.c: $(srcdir)/cp/parse.y
+	@echo "Expect 33 shift/reduce conflicts and 58 reduce/reduce conflicts."
+	cd $(srcdir)/cp; $(BISON) $(BISONFLAGS) -d -o p$$$$.c parse.y ; \
+	grep '^#define[ 	]*YYEMPTY' p$$$$.c >> p$$$$.h ; \
+	mv -f p$$$$.c parse.c ; mv -f p$$$$.h parse.h
+
 #
 # Build hooks:
 
@@ -214,10 +209,10 @@ c++.mostlyclean:
 c++.clean:
 c++.distclean:
 	-rm -f cp/config.status cp/Makefile
-	-rm -f cp/parse.output
+	-rm -f $(srcdir)/cp/parse.output
 c++.extraclean:
 c++.maintainer-clean:
-	-rm -f cp/parse.c cp/parse.h
+	-rm -f $(srcdir)/cp/parse.c $(srcdir)/cp/parse.h
 #
 # Stage hooks:
 # The main makefile has already created stage?/cp.
@@ -248,3 +243,51 @@ c++.distdir:
 	  ln $$file ../../tmp/cp/inc >/dev/null 2>&1 \
 	   || cp $$file ../../tmp/cp/inc; \
 	done
+
+#
+# .o: .h dependencies.
+CXX_TREE_H = $(TREE_H) cp/cp-tree.h c-common.h cp/cp-tree.def c-common.def \
+	function.h varray.h system.h $(CONFIG_H) \
+	$(srcdir)/../include/hashtab.h $(srcdir)/../include/splay-tree.h
+
+cp/spew.o: cp/spew.c $(CXX_TREE_H) cp/parse.h flags.h cp/lex.h toplev.h
+cp/lex.o: cp/lex.c $(CXX_TREE_H) cp/parse.h flags.h cp/lex.h c-pragma.h \
+  toplev.h output.h mbchar.h $(GGC_H) input.h diagnostic.h cp/operators.def
+cp/decl.o: cp/decl.c $(CXX_TREE_H) flags.h cp/lex.h cp/decl.h stack.h \
+  output.h $(EXPR_H) except.h toplev.h hash.h $(GGC_H) $(RTL_H) cp/operators.def
+cp/decl2.o: cp/decl2.c $(CXX_TREE_H) flags.h cp/lex.h cp/decl.h $(EXPR_H) \
+  output.h except.h toplev.h dwarf2out.h dwarfout.h $(GGC_H) $(RTL_H)
+cp/typeck2.o: cp/typeck2.c $(CXX_TREE_H) flags.h toplev.h output.h
+cp/typeck.o: cp/typeck.c $(CXX_TREE_H) flags.h $(RTL_H) $(EXPR_H) toplev.h 
+cp/class.o: cp/class.c $(CXX_TREE_H) flags.h toplev.h $(RTL_H)
+cp/call.o: cp/call.c $(CXX_TREE_H) flags.h toplev.h $(RTL_H) $(EXPR_H) $(GGC_H)
+cp/friend.o: cp/friend.c $(CXX_TREE_H) flags.h $(RTL_H) toplev.h $(EXPR_H)
+cp/init.o: cp/init.c $(CXX_TREE_H) flags.h $(RTL_H) $(EXPR_H) toplev.h \
+  $(GGC_H) except.h
+cp/method.o: cp/method.c $(CXX_TREE_H) toplev.h $(GGC_H) $(RTL_H) $(EXPR_H)
+cp/cvt.o: cp/cvt.c $(CXX_TREE_H) cp/decl.h flags.h toplev.h convert.h
+cp/search.o: cp/search.c $(CXX_TREE_H) stack.h flags.h toplev.h $(RTL_H)
+cp/tree.o: cp/tree.c $(CXX_TREE_H) flags.h toplev.h $(GGC_H) $(RTL_H) \
+  insn-config.h integrate.h
+cp/ptree.o: cp/ptree.c $(CXX_TREE_H) system.h
+cp/rtti.o: cp/rtti.c $(CXX_TREE_H) flags.h toplev.h defaults.h
+cp/except.o: cp/except.c $(CXX_TREE_H) flags.h $(RTL_H) except.h toplev.h \
+  cp/cfns.h $(EXPR_H) insn-flags.h cp/decl.h $(OBSTACK_H)
+cp/expr.o: cp/expr.c $(CXX_TREE_H) $(RTL_H) flags.h $(EXPR_H) toplev.h except.h
+cp/xref.o: cp/xref.c $(CXX_TREE_H) input.h toplev.h
+cp/pt.o: cp/pt.c $(CXX_TREE_H) cp/decl.h cp/parse.h cp/lex.h toplev.h \
+  $(GGC_H) $(RTL_H) except.h
+cp/error.o: cp/error.c $(CXX_TREE_H) toplev.h diagnostic.h
+cp/errfn.o: cp/errfn.c $(CXX_TREE_H) toplev.h
+cp/repo.o: cp/repo.c $(CXX_TREE_H) toplev.h $(GGC_H)
+cp/semantics.o: cp/semantics.c $(CXX_TREE_H) cp/lex.h except.h toplev.h \
+  flags.h $(GGC_H) output.h $(RTL_H) $(TIMEVAR_H)
+cp/dump.o: cp/dump.c $(CXX_TREE_H)
+cp/optimize.o: cp/optimize.c $(CXX_TREE_H) rtl.h integrate.h insn-config.h \
+  input.h
+cp/mangle.o: cp/mangle.c $(CXX_TREE_H) toplev.h
+
+cp/parse.o: cp/parse.c $(CXX_TREE_H) flags.h cp/lex.h except.h output.h \
+	system.h toplev.h $(GGC_H)
+	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(BIG_SWITCHFLAG) \
+		$(srcdir)/cp/parse.c $(OUTPUT_OPTION)
diff --git a/gcc/cp/Makefile.in b/gcc/cp/Makefile.in
deleted file mode 100644
index 999fbcea7f91593680bddf65a70310bc8f7522a4..0000000000000000000000000000000000000000
--- a/gcc/cp/Makefile.in
+++ /dev/null
@@ -1,323 +0,0 @@
-# Makefile for GNU C++ compiler.
-#   Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1998,
-#   1999, 2000 Free Software Foundation, Inc.
-
-#This file is part of GNU CC.
-
-#GNU CC is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 2, or (at your option)
-#any later version.
-
-#GNU CC is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#GNU General Public License for more details.
-
-#You should have received a copy of the GNU General Public License
-#along with GNU CC; see the file COPYING.  If not, write to
-#the Free Software Foundation, 59 Temple Place - Suite 330,
-#Boston, MA 02111-1307, USA.
-
-# The makefile built from this file lives in the language subdirectory.
-# Its purpose is to provide support for:
-#
-# 1) recursion where necessary, and only then (building .o's), and
-# 2) building and debugging cc1 from the language subdirectory, and
-# 3) nothing else.
-#
-# The parent makefile handles all other chores, with help from the
-# language makefile fragment, of course.
-#
-# The targets for external use are:
-# all, TAGS, ???mostlyclean, ???clean.
-
-# Suppress smart makes who think they know how to automake Yacc files
-.y.c:
-
-# It defines the c++ interface name. It should be changed when the
-# c++ interface is changed.
-INTERFACE = 2
-
-# Variables that exist for you to override.
-# See below for how to change them for certain systems.
-
-# Various ways of specifying flags for compilations:  
-# CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
-# BOOT_CFLAGS is the value of CFLAGS to pass
-# to the stage2 and stage3 compilations
-# XCFLAGS is used for most compilations but not when using the GCC just built.
-XCFLAGS =
-CFLAGS = -g
-BOOT_CFLAGS = -O $(CFLAGS)
-# These exists to be overridden by the x-* and t-* files, respectively.
-X_CFLAGS =
-T_CFLAGS =
-
-X_CPPFLAGS =
-T_CPPFLAGS =
-
-CC = @CC@
-BISON = `if [ -f ../../bison/bison ] ; then echo ../../bison/bison -L $(srcdir)/../../bison/ ;  else echo bison ; fi`
-BISONFLAGS =
-LEX = `if [ -f ../../flex/flex ] ; then echo ../../flex/flex ;  else echo flex ; fi`
-LEXFLAGS =
-AR = ar
-AR_FLAGS = rc
-SHELL = /bin/sh
-MAKEINFO = makeinfo
-TEXI2DVI = texi2dvi
-
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary 
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
-
-# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
-# It omits XCFLAGS, and specifies -B./.
-# It also specifies -B$(tooldir)/ to find as and ld for a cross compiler.
-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS)
-
-# Tools to use when building a cross-compiler.
-# These are used because `configure' appends `cross-make'
-# to the makefile when making a cross-compiler.
-
-# We don't use cross-make.  Instead we use the tools
-# from the build tree, if they are available.
-# program_transform_name and objdir are set by configure.in.
-program_transform_name =
-objdir = .
-
-target=@target@
-xmake_file=@dep_host_xmake_file@
-tmake_file=@dep_tmake_file@
-#version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < $(srcdir)/version.c`
-#mainversion=`sed -e 's/.*\"\([0-9]*\.[0-9]*\).*/\1/' < $(srcdir)/version.c`
-
-# Directory where sources are, from where we are.
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-# Additional system libraries to link with.
-CLIB=
-
-# Top build directory, relative to here.
-top_builddir = ..
-
-# Internationalization library.
-INTLLIBS = @INTLLIBS@
-
-# Choose the real default target.
-ALL=all
-
-# End of variables for you to override.
-
-# Definition of `all' is here so that new rules inserted by sed
-# do not specify the default target.
-all: all.indirect
-
-# This tells GNU Make version 3 not to put all variables in the environment.
-.NOEXPORT:
-
-# sed inserts variable overrides after the following line.
-####target overrides
-@target_overrides@
-####host overrides
-@host_overrides@
-####cross overrides
-@cross_defines@
-@cross_overrides@
-####build overrides
-@build_overrides@
-#
-# Now figure out from those variables how to compile and link.
-
-all.indirect: Makefile ../cc1plus$(exeext)
-
-# IN_GCC tells obstack.h that we are using gcc's <stddef.h> file.
-INTERNAL_CFLAGS = $(CROSS) -DIN_GCC @extra_c_flags@
-
-# This is the variable actually used when we compile.
-ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS) -W -Wall
-
-# Likewise.
-ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
-
-# This is where we get libiberty.a from.
-LIBIBERTY = ../../libiberty/libiberty.a
-
-# How to link with both our special library facilities
-# and the system's installed libraries.
-LIBS = $(INTLLIBS) $(LIBIBERTY) $(CLIB)
-LIBDEPS = $(INTLLIBS) $(LIBIBERTY)
-
-# Specify the directories to be searched for header files.
-# Both . and srcdir are used, in that order,
-# so that tm.h and config.h will be found in the compilation
-# subdirectory rather than in the source directory.
-INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config -I$(srcdir)/../../include
-
-# Always use -I$(srcdir)/config when compiling.
-.c.o:
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-
-# The only suffixes we want for implicit rules are .c and .o.
-.SUFFIXES:
-.SUFFIXES: .c .o
-
-# This tells GNU make version 3 not to export all the variables
-# defined in this file into the environment.
-.NOEXPORT:
-#
-# Lists of files for various purposes.
-
-# Shared with C front end:
-C_OBJS = ../c-common.o ../c-pragma.o ../c-semantics.o ../c-lex.o
-
-# Language-specific object files for g++
-
-CXX_OBJS = call.o decl.o errfn.o expr.o pt.o typeck2.o \
- class.o decl2.o error.o lex.o parse.o ptree.o rtti.o spew.o typeck.o cvt.o \
- except.o friend.o init.o method.o search.o semantics.o tree.o xref.o \
- repo.o dump.o optimize.o mangle.o @extra_cxx_objs@
-
-# Language-independent object files.
-BACKEND = ../toplev.o ../libbackend.a
-
-compiler: ../cc1plus$(exeext)
-../cc1plus$(exeext): $(P) $(CXX_OBJS) $(C_OBJS) $(BACKEND) $(LIBDEPS)
-	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
-	      $(CXX_OBJS) $(C_OBJS) $(BACKEND) $(LIBS)
-
-Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
-	cd ..; $(SHELL) config.status
-
-native: config.status ../cc1plus$(exeext)
-#
-# Compiling object files from source files.
-
-# Note that dependencies on obstack.h are not written
-# because that file is not part of GCC.
-
-# C++ language specific files.
-
-RTL_H = $(srcdir)/../rtl.h $(srcdir)/../rtl.def \
-	$(srcdir)/../machmode.h $(srcdir)/../machmode.def
-TREE_H = $(srcdir)/../tree.h $(srcdir)/../real.h $(srcdir)/../tree.def \
-	$(srcdir)/../machmode.h $(srcdir)/../machmode.def
-CXX_TREE_H = $(TREE_H) cp-tree.h $(srcdir)/../c-common.h cp-tree.def \
-	$(srcdir)/../c-common.def $(srcdir)/../function.h $(srcdir)/../varray.h \
-	$(srcdir)/../../include/splay-tree.h \
-	$(srcdir)/../system.h $(CONFIG_H) $(HTAB_H)
-PARSE_H = $(srcdir)/parse.h
-PARSE_C = $(srcdir)/parse.c
-EXPR_H = $(srcdir)/../expr.h ../insn-codes.h
-GGC_H = $(srcdir)/../ggc.h $(srcdir)/../varray.h
-HTAB_H = $(srcdir)/../../include/hashtab.h
-TIMEVAR_H = $(srcdir)/../timevar.h $(srcdir)/../timevar.def
-
-parse.o : $(PARSE_C) $(CXX_TREE_H) $(srcdir)/../flags.h lex.h \
-	$(srcdir)/../except.h $(srcdir)/../output.h $(srcdir)/../system.h \
-	$(srcdir)/../toplev.h $(GGC_H)
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(BIG_SWITCHFLAG) \
-  `echo $(PARSE_C) | sed 's,^\./,,'`
-
-CONFLICTS = expect 33 shift/reduce conflicts and 58 reduce/reduce conflicts.
-$(PARSE_H) $(PARSE_C) : $(srcdir)/parse.y
-	@echo $(CONFLICTS)
-	cd $(srcdir); $(BISON) $(BISONFLAGS) -d -o p$$$$.c parse.y ; \
-	grep '^#define[ 	]*YYEMPTY' p$$$$.c >> p$$$$.h ; \
-	mv -f p$$$$.c parse.c ; mv -f p$$$$.h parse.h
-#$(PARSE_C) $(PARSE_H) : stamp-parse ; @true
-#stamp-parse: $(srcdir)/parse.y
-#	@echo $(CONFLICTS)
-#	$(BISON) $(BISONFLAGS) -d $(srcdir)/parse.y
-#	grep '^#define[ 	]*YYEMPTY' y.tab.c >>y.tab.h
-#	$(SHELL) $(srcdir)/../move-if-change y.tab.c $(PARSE_C)
-#	$(SHELL) $(srcdir)/../move-if-change y.tab.h $(PARSE_H)
-#	cp $(PARSE_C) y.tab.c
-#	touch stamp-parse
-
-$(srcdir)/cfns.h: $(srcdir)/cfns.gperf
-	gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' \
-		$(srcdir)/cfns.gperf > $(srcdir)/cfns.h
-
-spew.o : spew.c $(CXX_TREE_H) $(PARSE_H) $(srcdir)/../flags.h \
-  lex.h $(srcdir)/../toplev.h
-lex.o : lex.c $(CXX_TREE_H) \
-  $(PARSE_H) $(srcdir)/../flags.h lex.h \
-  $(srcdir)/../c-pragma.h $(srcdir)/../toplev.h \
-  $(srcdir)/../output.h $(srcdir)/../mbchar.h $(GGC_H) \
-  $(srcdir)/../input.h $(srcdir)/../diagnostic.h operators.def
-decl.o : decl.c $(CXX_TREE_H) $(srcdir)/../flags.h \
-  lex.h decl.h $(srcdir)/../stack.h $(srcdir)/../output.h $(srcdir)/../expr.h \
-  $(srcdir)/../except.h $(srcdir)/../toplev.h \
-  $(srcdir)/../hash.h $(GGC_H) $(RTL_H) operators.def
-decl2.o : decl2.c $(CXX_TREE_H) $(srcdir)/../flags.h \
-  lex.h decl.h $(EXPR_H) $(srcdir)/../output.h $(srcdir)/../except.h \
-  $(srcdir)/../toplev.h $(srcdir)/../dwarf2out.h $(srcdir)/../dwarfout.h \
-  $(GGC_H) $(RTL_H)
-typeck2.o : typeck2.c $(CXX_TREE_H) $(srcdir)/../flags.h \
-  $(srcdir)/../toplev.h $(srcdir)/../output.h
-typeck.o : typeck.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
-  $(EXPR_H) $(srcdir)/../toplev.h 
-class.o : class.c $(CXX_TREE_H) $(srcdir)/../flags.h \
-  $(srcdir)/../toplev.h $(RTL_H)
-call.o : call.c $(CXX_TREE_H) $(srcdir)/../flags.h \
-  $(srcdir)/../toplev.h $(RTL_H) $(EXPR_H) $(GGC_H)
-friend.o : friend.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
-  $(srcdir)/../toplev.h $(EXPR_H)
-init.o : init.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
-  $(EXPR_H) $(srcdir)/../toplev.h $(GGC_H) \
-  $(srcdir)/../except.h
-method.o : method.c $(CXX_TREE_H) \
-  $(srcdir)/../toplev.h $(GGC_H) $(RTL_H)
-cvt.o : cvt.c $(CXX_TREE_H) decl.h \
-  $(srcdir)/../flags.h $(srcdir)/../toplev.h $(srcdir)/../convert.h
-search.o : search.c $(CXX_TREE_H) $(srcdir)/../stack.h \
-  $(srcdir)/../flags.h $(srcdir)/../toplev.h $(RTL_H)
-tree.o : tree.c $(CXX_TREE_H) $(srcdir)/../flags.h \
-  $(srcdir)/../toplev.h $(GGC_H) $(RTL_H) \
-  ../insn-config.h $(srcdir)/../integrate.h
-ptree.o : ptree.c $(CXX_TREE_H) $(srcdir)/../system.h
-rtti.o : rtti.c $(CXX_TREE_H) $(srcdir)/../flags.h \
-  $(srcdir)/../toplev.h $(srcdir)/../defaults.h
-except.o : except.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
-  $(srcdir)/../except.h $(srcdir)/../toplev.h cfns.h
-expr.o : expr.c $(CXX_TREE_H) $(RTL_H) $(srcdir)/../flags.h \
-  $(EXPR_H) $(srcdir)/../toplev.h $(srcdir)/../except.h
-xref.o : xref.c $(CXX_TREE_H) $(srcdir)/../input.h \
-  $(srcdir)/../toplev.h
-pt.o : pt.c $(CXX_TREE_H) decl.h $(PARSE_H) lex.h \
-  $(srcdir)/../toplev.h $(GGC_H) $(RTL_H) \
-  $(srcdir)/../except.h
-error.o : error.c $(CXX_TREE_H) \
-  $(srcdir)/../toplev.h $(srcdir)/../diagnostic.h
-errfn.o : errfn.c $(CXX_TREE_H) \
-  $(srcdir)/../toplev.h
-repo.o : repo.c $(CXX_TREE_H) \
-  $(srcdir)/../toplev.h $(GGC_H)
-semantics.o: semantics.c $(CXX_TREE_H) lex.h \
-  $(srcdir)/../except.h $(srcdir)/../toplev.h \
-  $(srcdir)/../flags.h $(GGC_H) \
-  $(srcdir)/../output.h $(RTL_H) $(TIMEVAR_H)
-dump.o: dump.c $(CXX_TREE_H)
-optimize.o: optimize.c $(CXX_TREE_H) \
-  $(srcdir)/../rtl.h $(srcdir)/../integrate.h ../insn-config.h \
-  $(srcdir)/../input.h
-mangle.o: mangle.c $(CXX_TREE_H) $(srcdir)/../toplev.h
-
-#
-# These exist for maintenance purposes.
-
-# Update the tags table.
-TAGS: force
-	cd $(srcdir) ;				\
-	etags *.c *.h ;				\
-	echo 'l' | tr 'l' '\f' >> TAGS ;	\
-	echo 'parse.y,0' >> TAGS ; 		\
-	etags -a ../*.h ../*.c;
-
-.PHONY: TAGS
-
-force:
diff --git a/gcc/cp/config-lang.in b/gcc/cp/config-lang.in
index 5b334f148ef9f11d7bebc5e7b95af48dffa469cd..58c40d70557b64c0a3afbe7383bd575c85522c96 100644
--- a/gcc/cp/config-lang.in
+++ b/gcc/cp/config-lang.in
@@ -33,5 +33,3 @@ compilers="cc1plus\$(exeext)"
 stagestuff="g++\$(exeext) g++-cross\$(exeext) cc1plus\$(exeext)"
 
 diff_excludes="-x parse.c -x parse.h"
-
-outputs=cp/Makefile
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index e5a1e0648cfaf6790a76f26bd62ee9b73f3285f1..ec1f2a81df833a49392303415535fc47ea3b657c 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,15 @@
+2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
+
+	* Make-lang.in: Move all build rules here from Makefile.in,
+	adapt to new context.  Wrap all rules that change the current
+	directory in parentheses.  Expunge all references to $(P).
+	When one command depends on another and they're run all at
+	once, use && to separate them, not ;.  Add OUTPUT_OPTION to
+	all object-file generation rules.  Delete obsolete variables.
+
+	* Makefile.in: Delete.
+	* config-lang.in: Delete outputs= line.
+
 Sat Oct 21 18:07:48 2000  Joseph S. Myers  <jsm28@cam.ac.uk>
 
 	* Makefile.in, g77spec.c: Remove EGCS references in comments.
diff --git a/gcc/f/Make-lang.in b/gcc/f/Make-lang.in
index 33df575d7d7021427916fb7f862aa47ade3aca14..832b85457f74b0b9d34f38d55b7798191aeca9b9 100644
--- a/gcc/f/Make-lang.in
+++ b/gcc/f/Make-lang.in
@@ -65,7 +65,8 @@ g77spec.o: $(srcdir)/f/g77spec.c $(srcdir)/f/version.h system.h $(GCC_H)
 	  *) rm -f lang-f77;; \
 	esac
 	if [ -f lang-f77 ]; then \
-	  $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/f/g77spec.c; \
+	  $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+		$(srcdir)/f/g77spec.c $(OUTPUT_OPTION); \
 	else true; fi
 
 g77version.o: $(srcdir)/f/version.c
@@ -75,7 +76,7 @@ g77version.o: $(srcdir)/f/version.c
 	esac
 	if [ -f lang-f77 ]; then \
 	  $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -o g77version.o \
-	    $(srcdir)/f/version.c; \
+	    $(srcdir)/f/version.c $(OUTPUT_OPTION); \
 	else true; fi
 
 # Create the compiler driver for g77.
@@ -93,105 +94,61 @@ g77-cross$(exeext): g77$(exeext)
 	  cp g77$(exeext) g77-cross$(exeext); \
 	else true; fi
 
-F77_SRCS = \
- $(srcdir)/f/bad.c \
- $(srcdir)/f/bad.def \
- $(srcdir)/f/bad.h \
- $(srcdir)/f/bit.c \
- $(srcdir)/f/bit.h \
- $(srcdir)/f/bld-op.def \
- $(srcdir)/f/bld.c \
- $(srcdir)/f/bld.h \
- $(srcdir)/f/com-rt.def \
- $(srcdir)/f/com.c \
- $(srcdir)/f/com.h \
- $(srcdir)/f/data.c \
- $(srcdir)/f/data.h \
- $(srcdir)/f/equiv.c \
- $(srcdir)/f/equiv.h \
- $(srcdir)/f/expr.c \
- $(srcdir)/f/expr.h \
- $(srcdir)/f/fini.c \
- $(srcdir)/f/global.c \
- $(srcdir)/f/global.h \
- $(srcdir)/f/implic.c \
- $(srcdir)/f/implic.h \
- $(srcdir)/f/info-b.def \
- $(srcdir)/f/info-k.def \
- $(srcdir)/f/info-w.def \
- $(srcdir)/f/info.c \
- $(srcdir)/f/info.h \
- $(srcdir)/f/intrin.c \
- $(srcdir)/f/intrin.def \
- $(srcdir)/f/intrin.h \
- $(srcdir)/f/lab.c \
- $(srcdir)/f/lab.h \
- $(srcdir)/f/lex.c \
- $(srcdir)/f/lex.h \
- $(srcdir)/f/malloc.c \
- $(srcdir)/f/malloc.h \
- $(srcdir)/f/name.c \
- $(srcdir)/f/name.h \
- $(srcdir)/f/parse.c \
- $(srcdir)/f/proj.c \
- $(srcdir)/f/proj.h \
- $(srcdir)/f/src.c \
- $(srcdir)/f/src.h \
- $(srcdir)/f/st.c \
- $(srcdir)/f/st.h \
- $(srcdir)/f/sta.c \
- $(srcdir)/f/sta.h \
- $(srcdir)/f/stb.c \
- $(srcdir)/f/stb.h \
- $(srcdir)/f/stc.c \
- $(srcdir)/f/stc.h \
- $(srcdir)/f/std.c \
- $(srcdir)/f/std.h \
- $(srcdir)/f/ste.c \
- $(srcdir)/f/ste.h \
- $(srcdir)/f/storag.c \
- $(srcdir)/f/storag.h \
- $(srcdir)/f/stp.c \
- $(srcdir)/f/stp.h \
- $(srcdir)/f/str-1t.fin \
- $(srcdir)/f/str-2t.fin \
- $(srcdir)/f/str-fo.fin \
- $(srcdir)/f/str-io.fin \
- $(srcdir)/f/str-nq.fin \
- $(srcdir)/f/str-op.fin \
- $(srcdir)/f/str-ot.fin \
- $(srcdir)/f/str.c \
- $(srcdir)/f/str.h \
- $(srcdir)/f/sts.c \
- $(srcdir)/f/sts.h \
- $(srcdir)/f/stt.c \
- $(srcdir)/f/stt.h \
- $(srcdir)/f/stu.c \
- $(srcdir)/f/stu.h \
- $(srcdir)/f/stv.c \
- $(srcdir)/f/stv.h \
- $(srcdir)/f/stw.c \
- $(srcdir)/f/stw.h \
- $(srcdir)/f/symbol.c \
- $(srcdir)/f/symbol.def \
- $(srcdir)/f/symbol.h \
- $(srcdir)/f/target.c \
- $(srcdir)/f/target.h \
- $(srcdir)/f/top.c \
- $(srcdir)/f/top.h \
- $(srcdir)/f/type.c \
- $(srcdir)/f/type.h \
- $(srcdir)/f/version.c \
- $(srcdir)/f/version.h \
- $(srcdir)/f/where.c \
- $(srcdir)/f/where.h
-
-f771$(exeext): $(P) $(F77_SRCS) $(LIBDEPS) $(BACKEND)
-	touch lang-f77
-	cd f; $(MAKE) $(LANG_FLAGS_TO_PASS) \
-	  HOST_CC="`case '$(HOST_CC)' in stage*) echo '$(HOST_CC)' | sed -e 's|stage|../stage|g';; *) echo '$(HOST_CC)';; esac`" \
-	  HOST_CFLAGS="$(HOST_CFLAGS)" HOST_CPPFLAGS="$(HOST_CPPFLAGS)" \
-	  ../f771$(exeext)
+# The compiler itself.
+
+F77_OBJS = f/bad.o f/bit.o f/bld.o f/com.o f/data.o f/equiv.o f/expr.o \
+ f/global.o f/implic.o f/info.o f/intrin.o f/lab.o f/lex.o f/malloc.o \
+ f/name.o f/parse.o f/proj.o f/src.o f/st.o f/sta.o f/stb.o f/stc.o \
+ f/std.o f/ste.o f/storag.o f/stp.o f/str.o f/sts.o f/stt.o f/stu.o \
+ f/stv.o f/stw.o f/symbol.o f/target.o f/top.o f/type.o f/version.o f/where.o
+
+# Use loose warnings for this front end.
+f-warn =
+
+f771$(exeext): $(F77_OBJS) $(BACKEND) $(LIBDEPS)
+	rm -f f771$(exeext)
+	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(F77_OBJS) $(BACKEND) $(LIBS)
+
+# Keyword tables.
+f/stamp-str: f/str-1t.h f/str-1t.j f/str-2t.h f/str-2t.j \
+ f/str-fo.h f/str-fo.j f/str-io.h f/str-io.j f/str-nq.h  f/str-nq.j \
+ f/str-op.h f/str-op.j f/str-ot.h f/str-ot.j
+	touch f/stamp-str
+
+f/str-1t.h f/str-1t.j: f/fini$(build_exeext) f/str-1t.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-1t.fin f/str-1t.j f/str-1t.h
+
+f/str-2t.h f/str-2t.j: f/fini$(build_exeext) f/str-2t.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-2t.fin f/str-2t.j f/str-2t.h
+
+f/str-fo.h f/str-fo.j: f/fini$(build_exeext) f/str-fo.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-fo.fin f/str-fo.j f/str-fo.h
+
+f/str-io.h f/str-io.j: f/fini$(build_exeext) f/str-io.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-io.fin f/str-io.j f/str-io.h
+
+f/str-nq.h f/str-nq.j: f/fini$(build_exeext) f/str-nq.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-nq.fin f/str-nq.j f/str-nq.h
+
+f/str-op.h f/str-op.j: f/fini$(build_exeext) f/str-op.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-op.fin f/str-op.j f/str-op.h
+
+f/str-ot.h f/str-ot.j: f/fini$(build_exeext) f/str-ot.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-ot.fin f/str-ot.j f/str-ot.h
+
+f/fini: f/fini.o f/proj-h.o
+	$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o f/fini$(build_exeext) \
+		f/fini.o f/proj-h.o
+
+f/fini.o:
+	$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \
+	      `echo $(srcdir)/f/fini.c | sed 's,^\./,,'` -o $@
+
+# Like proj.o, but depends on hconfig.h instead of config.h.
+f/proj-h.o: f/proj.c f/proj.h $(HCONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(GLIMITS_H)
+	$(HOST_CC) -c -DUSE_HCONFIG \
+		$(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \
+		`echo $(srcdir)/f/proj.c | sed 's,^\./,,'` -o $@
 
 #
 # Build hooks:
@@ -256,7 +213,8 @@ f/g77.dvi: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
 # itself, which uses f/intrin.def; in fact, many bugs in f/intrin.def have
 # been found only upon reading the documentation that was automatically
 # produced from it.
-$(srcdir)/f/intdoc.texi: f/intdoc.c f/intdoc.in f/ansify.c f/intrin.def f/intrin.h
+$(srcdir)/f/intdoc.texi: f/intdoc.c f/intdoc.in f/ansify.c \
+		f/intrin.def f/intrin.h
 	case "$(LANGUAGES)" in \
 	  *[fF]77*) touch lang-f77;; \
 	  *) rm -f lang-f77;; \
@@ -264,7 +222,7 @@ $(srcdir)/f/intdoc.texi: f/intdoc.c f/intdoc.in f/ansify.c f/intrin.def f/intrin
 	if [ -f lang-f77 ]; then \
 	  $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) $(INCLUDES) \
 	   `echo $(srcdir)/f/ansify.c | sed 's,^\./,,'` -o f/ansify; \
-	  f/ansify < $(srcdir)/f/intdoc.in > f/intdoc.h0 $(srcdir)/f/intdoc.in; \
+	  f/ansify <$(srcdir)/f/intdoc.in >f/intdoc.h0 $(srcdir)/f/intdoc.in; \
 	  $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) $(INCLUDES) -I./f \
 	   `echo $(srcdir)/f/intdoc.c | sed 's,^\./,,'` -o f/intdoc; \
 	  f/intdoc > $(srcdir)/f/intdoc.texi; \
@@ -316,7 +274,7 @@ f77.install-common: installdirs
 	  echo ''; \
 	  echo 'Warning: gcc no longer installs an f77 command.'; \
 	  echo '         You must do so yourself.  For more information,'; \
-	  echo '         read "Distributing Binaries" in the egcs g77 docs.'; \
+	  echo '         read "Distributing Binaries" in the g77 docs.'; \
 	  echo '         (To turn off this warning, delete the file'; \
 	  echo '         f77-install-ok in the source or build directory.)'; \
 	  echo ''; \
@@ -447,3 +405,189 @@ f77.distdir: f77.rebuilt
 	    $(LN_S) $$file ../tmp/f; \
 	  done; \
 	fi
+
+#
+# .o: .h dependencies.
+
+f/ansify.o: f/ansify.c hconfig.h system.h
+f/bad.o: f/bad.c f/proj.h $(CONFIG_H) system.h f/bad.h f/bad.def f/where.h \
+ glimits.h f/top.h f/malloc.h flags.h f/com.h f/com-rt.def $(TREE_H) f/bld.h \
+ f/bld-op.def f/bit.h f/info.h f/info-b.def f/info-k.def f/info-w.def \
+ f/target.h f/lex.h f/type.h f/intrin.h f/intrin.def f/lab.h f/symbol.h \
+ f/symbol.def f/equiv.h f/storag.h f/global.h f/name.h toplev.h
+f/bit.o: f/bit.c f/proj.h $(CONFIG_H) system.h glimits.h f/bit.h \
+ f/malloc.h
+f/bld.o: f/bld.c f/proj.h $(CONFIG_H) system.h f/bld.h f/bld-op.def f/bit.h \
+ f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h f/top.h f/lex.h \
+ f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
+ f/name.h f/intrin.h f/intrin.def
+f/com.o: f/com.c f/proj.h $(CONFIG_H) system.h flags.h $(RTL_H) $(TREE_H) \
+ output.h convert.h f/com.h f/com-rt.def f/bld.h f/bld-op.def f/bit.h \
+ f/malloc.h f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \
+ f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/intrin.h \
+ f/intrin.def f/lab.h f/symbol.h f/symbol.def f/equiv.h f/storag.h f/global.h \
+ f/name.h f/expr.h f/implic.h f/src.h f/st.h $(GGC_H) toplev.h defaults.h
+f/data.o: f/data.c f/proj.h $(CONFIG_H) system.h f/data.h f/bld.h f/bld-op.def \
+ f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \
+ f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h \
+ f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h \
+ f/global.h f/name.h f/intrin.h f/intrin.def f/expr.h f/st.h
+f/equiv.o: f/equiv.c f/proj.h $(CONFIG_H) system.h f/equiv.h f/bld.h \
+ f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h \
+ glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def \
+ f/global.h f/name.h f/intrin.h f/intrin.def f/data.h
+f/expr.o: f/expr.c f/proj.h $(CONFIG_H) system.h f/expr.h f/bld.h f/bld-op.def \
+ f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \
+ f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h \
+ f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h \
+ f/global.h f/name.h f/intrin.h f/intrin.def f/implic.h f/src.h f/st.h \
+ f/stamp-str
+f/fini.o: f/fini.c f/proj.h hconfig.h system.h f/malloc.h
+f/global.o: f/global.c f/proj.h $(CONFIG_H) system.h f/global.h f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h $(TREE_H) f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/malloc.h f/lex.h f/type.h f/name.h f/symbol.h \
+ f/symbol.def f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def f/lab.h \
+ f/storag.h f/intrin.h f/intrin.def f/equiv.h
+f/implic.o: f/implic.c f/proj.h $(CONFIG_H) system.h f/implic.h f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h $(TREE_H) f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/malloc.h f/lex.h f/type.h f/symbol.h \
+ f/symbol.def f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def f/lab.h \
+ f/storag.h f/intrin.h f/intrin.def f/equiv.h f/global.h f/name.h f/src.h
+f/info.o: f/info.c f/proj.h $(CONFIG_H) system.h f/info.h f/info-b.def \
+ f/info-k.def f/info-w.def f/target.h $(TREE_H) f/bad.h f/bad.def f/where.h \
+ glimits.h f/top.h f/malloc.h f/lex.h f/type.h
+f/intdoc.o: f/intdoc.c hconfig.h system.h f/intrin.h f/intrin.def \
+ f/intdoc.h0 f/intdoc.h0
+f/intrin.o: f/intrin.c f/proj.h $(CONFIG_H) system.h f/intrin.h \
+ f/intrin.def f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def \
+ $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \
+ f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h \
+ f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/expr.h f/src.h
+f/lab.o: f/lab.c f/proj.h $(CONFIG_H) system.h f/lab.h f/com.h f/com-rt.def \
+ $(TREE_H) f/bld.h f/bld-op.def f/bit.h f/malloc.h f/info.h f/info-b.def \
+ f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h \
+ f/top.h f/lex.h f/type.h f/intrin.h f/intrin.def f/symbol.h f/symbol.def \
+ f/equiv.h f/storag.h f/global.h f/name.h
+f/lex.o: f/lex.c f/proj.h $(CONFIG_H) system.h f/top.h f/malloc.h f/where.h \
+ glimits.h f/bad.h f/bad.def f/com.h f/com-rt.def $(TREE_H) f/bld.h \
+ f/bld-op.def f/bit.h f/info.h f/info-b.def f/info-k.def f/info-w.def \
+ f/target.h f/lex.h f/type.h f/intrin.h f/intrin.def f/lab.h f/symbol.h \
+ f/symbol.def f/equiv.h f/storag.h f/global.h f/name.h f/src.h flags.h \
+ input.h toplev.h output.h $(GGC_H)
+f/malloc.o: f/malloc.c f/proj.h $(CONFIG_H) system.h f/malloc.h
+f/name.o: f/name.c f/proj.h $(CONFIG_H) system.h f/bad.h f/bad.def f/where.h \
+ glimits.h f/top.h f/malloc.h f/name.h f/global.h f/info.h f/info-b.def \
+ f/info-k.def f/info-w.def f/target.h $(TREE_H) f/lex.h f/type.h f/symbol.h \
+ f/symbol.def f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def f/lab.h \
+ f/storag.h f/intrin.h f/intrin.def f/equiv.h f/src.h
+f/parse.o: f/parse.c f/proj.h $(CONFIG_H) system.h f/top.h f/malloc.h \
+ f/where.h glimits.h f/com.h f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def \
+ f/bit.h f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \
+ f/bad.def f/lex.h f/type.h f/intrin.h f/intrin.def f/lab.h f/symbol.h \
+ f/symbol.def f/equiv.h f/storag.h f/global.h f/name.h f/version.h flags.h
+f/proj.o: f/proj.c f/proj.h $(CONFIG_H) system.h glimits.h
+f/src.o: f/src.c f/proj.h $(CONFIG_H) system.h f/src.h f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/malloc.h
+f/st.o: f/st.c f/proj.h $(CONFIG_H) system.h f/st.h f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/malloc.h f/lex.h f/symbol.h f/symbol.def \
+ f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def $(TREE_H) f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h f/type.h f/lab.h \
+ f/storag.h f/intrin.h f/intrin.def f/equiv.h f/global.h f/name.h f/sta.h \
+ f/stamp-str f/stb.h f/expr.h f/stp.h f/stt.h f/stc.h f/std.h \
+ f/stv.h f/stw.h f/ste.h f/sts.h f/stu.h
+f/sta.o: f/sta.c f/proj.h $(CONFIG_H) system.h f/sta.h f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/malloc.h f/lex.h f/stamp-str f/symbol.h \
+ f/symbol.def f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def $(TREE_H) \
+ f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/type.h f/lab.h \
+ f/storag.h f/intrin.h f/intrin.def f/equiv.h f/global.h f/name.h f/implic.h \
+ f/stb.h f/expr.h f/stp.h f/stt.h f/stc.h f/std.h f/stv.h f/stw.h
+f/stb.o: f/stb.c f/proj.h $(CONFIG_H) system.h f/stb.h f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/malloc.h f/expr.h f/bld.h f/bld-op.def f/bit.h \
+ f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h \
+ f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def f/stp.h \
+ f/stt.h f/stamp-str f/src.h f/sta.h f/stc.h
+f/stc.o: f/stc.c f/proj.h $(CONFIG_H) system.h f/stc.h f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/malloc.h f/bld.h f/bld-op.def f/bit.h f/com.h \
+ f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def \
+ f/target.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def \
+ f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def f/expr.h f/stp.h \
+ f/stt.h f/stamp-str f/data.h f/implic.h f/src.h f/sta.h f/std.h f/stv.h f/stw.h
+f/std.o: f/std.c f/proj.h $(CONFIG_H) system.h f/std.h f/bld.h f/bld-op.def \
+ f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \
+ f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h \
+ f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h \
+ f/global.h f/name.h f/intrin.h f/intrin.def f/stp.h f/stt.h f/stamp-str \
+ f/stv.h f/stw.h f/sta.h f/ste.h f/sts.h
+f/ste.o: f/ste.c f/proj.h $(CONFIG_H) system.h $(RTL_H) toplev.h f/ste.h \
+ f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H)	\
+ f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h \
+ f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def f/stp.h \
+ f/stt.h f/stamp-str f/sts.h f/stv.h f/stw.h f/expr.h f/sta.h $(GGC_H)
+f/storag.o: f/storag.c f/proj.h $(CONFIG_H) system.h f/storag.h f/bld.h  \
+ f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) \
+ f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \
+ f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h \
+ f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h \
+ f/intrin.def f/data.h
+f/stp.o: f/stp.c f/proj.h $(CONFIG_H) system.h f/stp.h f/bld.h f/bld-op.def \
+ f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h \
+ f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h \
+ f/intrin.def f/stt.h
+f/str.o: f/str.c f/proj.h $(CONFIG_H) system.h f/src.h f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/malloc.h f/stamp-str f/lex.h
+f/sts.o: f/sts.c f/proj.h $(CONFIG_H) system.h f/sts.h f/malloc.h f/com.h \
+ f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def f/bit.h f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/lex.h f/type.h f/intrin.h f/intrin.def \
+ f/lab.h f/symbol.h f/symbol.def f/equiv.h f/storag.h f/global.h \
+ f/name.h
+f/stt.o: f/stt.c f/proj.h $(CONFIG_H) system.h f/stt.h f/top.h f/malloc.h \
+ f/where.h glimits.h f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def \
+ $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ f/bad.h f/bad.def f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h \
+ f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def \
+ f/stp.h f/expr.h f/sta.h f/stamp-str
+f/stu.o: f/stu.c f/proj.h $(CONFIG_H) system.h f/bld.h f/bld-op.def f/bit.h \
+ f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \
+ f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h \
+ glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h \
+ f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def \
+ f/implic.h f/stu.h f/sta.h f/stamp-str
+f/stv.o: f/stv.c f/proj.h $(CONFIG_H) system.h f/stv.h f/lab.h f/com.h \
+ f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def f/bit.h f/malloc.h \
+ f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \
+ f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/intrin.h \
+ f/intrin.def f/symbol.h f/symbol.def f/equiv.h f/storag.h f/global.h \
+ f/name.h
+f/stw.o: f/stw.c f/proj.h $(CONFIG_H) system.h f/stw.h f/bld.h f/bld-op.def \
+ f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def \
+ f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h \
+ f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h \
+ f/intrin.def f/stv.h f/sta.h f/stamp-str
+f/symbol.o: f/symbol.c f/proj.h $(CONFIG_H) system.h f/symbol.h \
+ f/symbol.def f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h \
+ f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h f/top.h \
+ f/lex.h f/type.h f/lab.h f/storag.h f/intrin.h f/intrin.def f/equiv.h \
+ f/global.h f/name.h f/src.h f/st.h
+f/target.o: f/target.c f/proj.h $(CONFIG_H) system.h glimits.h f/target.h \
+ $(TREE_H) f/bad.h f/bad.def f/where.h f/top.h f/malloc.h f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/type.h f/lex.h
+f/top.o: f/top.c f/proj.h $(CONFIG_H) system.h f/top.h f/malloc.h f/where.h \
+ glimits.h f/bad.h f/bad.def f/bit.h f/bld.h f/bld-op.def f/com.h \
+ f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/lex.h f/type.h f/lab.h f/storag.h \
+ f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h \
+ f/intrin.def f/data.h f/expr.h f/implic.h f/src.h f/st.h flags.h \
+ toplev.h
+f/type.o: f/type.c f/proj.h $(CONFIG_H) system.h f/type.h f/malloc.h
+f/version.o: f/version.c
+f/where.o: f/where.c f/proj.h $(CONFIG_H) system.h f/where.h glimits.h f/top.h \
+ f/malloc.h f/lex.h $(GGC_H)
diff --git a/gcc/f/Makefile.in b/gcc/f/Makefile.in
deleted file mode 100644
index fadbef7435f990d4197a462188f0ee24ae298359..0000000000000000000000000000000000000000
--- a/gcc/f/Makefile.in
+++ /dev/null
@@ -1,472 +0,0 @@
-# Makefile for GNU F77 compiler.
-#   Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
-
-#This file is part of GNU Fortran.
-
-#GNU Fortran is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 2, or (at your option)
-#any later version.
-
-#GNU Fortran is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#GNU General Public License for more details.
-
-#You should have received a copy of the GNU General Public License
-#along with GNU Fortran; see the file COPYING.  If not, write to
-#the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-#02111-1307, USA.
-
-# The makefile built from this file lives in the language subdirectory.
-# Its purpose is to provide support for:
-#
-# 1) recursion where necessary, and only then (building .o's), and
-# 2) building and debugging f771 from the language subdirectory, and
-# 3) nothing else.
-#
-# The parent makefile handles all other chores, with help from the
-# language makefile fragment, of course.
-#
-# The targets for external use are:
-# all, TAGS, ???mostlyclean, ???clean.
-
-# Suppress smart makes who think they know how to automake Yacc files
-.y.c:
-
-# Variables that exist for you to override.
-# See below for how to change them for certain systems.
-
-# Various ways of specifying flags for compilations:
-# CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
-# BOOT_CFLAGS is the value of CFLAGS to pass
-# to the stage2 and stage3 compilations
-# XCFLAGS is used for most compilations but not when using the GCC just built.
-XCFLAGS =
-CFLAGS = -g
-BOOT_CFLAGS = -O $(CFLAGS)
-# These exists to be overridden by the x-* and t-* files, respectively.
-X_CFLAGS =
-T_CFLAGS =
-
-X_CPPFLAGS =
-T_CPPFLAGS =
-
-CC = @CC@
-BISON = bison
-BISONFLAGS =
-LEX = flex
-LEXFLAGS =
-AR = ar
-AR_FLAGS = rc
-SHELL = /bin/sh
-MAKEINFO = makeinfo
-TEXI2DVI = texi2dvi
-
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
-
-# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
-# It omits XCFLAGS, and specifies -B./.
-# It also specifies -B$(tooldir)/ to find as and ld for a cross compiler.
-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS)
-
-# Tools to use when building a cross-compiler.
-# These are used because `configure' appends `cross-make'
-# to the makefile when making a cross-compiler.
-
-target=@target@
-xmake_file=@dep_host_xmake_file@
-tmake_file=@dep_tmake_file@
-
-# Directory where sources are, from where we are.
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-# Additional system libraries to link with.
-CLIB=
-
-# Top build directory, relative to here.
-top_builddir = ..
-
-# Internationalization library.
-INTLLIBS = @INTLLIBS@
-
-# Choose the real default target.
-ALL=all
-
-# End of variables for you to override.
-
-# Definition of `all' is here so that new rules inserted by sed
-# do not specify the default target.
-all: all.indirect
-
-# This tells GNU Make version 3 not to put all variables in the environment.
-.NOEXPORT:
-
-# sed inserts variable overrides after the following line.
-####target overrides
-@target_overrides@
-####host overrides
-@host_overrides@
-####cross overrides
-@cross_defines@
-@cross_overrides@
-####build overrides
-@build_overrides@
-#
-# Now figure out from those variables how to compile and link.
-
-all.indirect: Makefile ../f771$(exeext)
-
-# IN_GCC tells obstack.h that we are using gcc's <stddef.h> file.
-INTERNAL_CFLAGS = $(CROSS) -DIN_GCC @extra_c_flags@
-
-# This is the variable actually used when we compile.
-ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS) -W -Wall
-
-# Likewise.
-ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
-
-# This is where we get libiberty.a from.
-LIBIBERTY = ../../libiberty/libiberty.a
-
-# We should be compiling with the built compiler, for which
-# BOOT_LDFLAGS is appropriate.  (Formerly we had a separate
-# F771_LDFLAGS, but the ld flags can be taken care of by the target
-# configuration files in GCC.)
-LDFLAGS=$(BOOT_LDFLAGS)
-
-# How to link with both our special library facilities
-# and the system's installed libraries.
-LIBS = $(LIBIBERTY) $(CLIB) $(INTLLIBS)
-LIBDEPS = $(INTLLIBS) $(LIBIBERTY)
-
-# Specify the directories to be searched for header files.
-# Both . and srcdir are used, in that order,
-# so that tm.h and config.h will be found in the compilation
-# subdirectory rather than in the source directory.
-INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config -I$(srcdir)/../../include
-
-# Always use -I$(srcdir)/config when compiling.
-.c.o:
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-
-#
-# Lists of files for various purposes.
-
-# Language-specific object files for g77
-
-F77_OBJS = \
- bad.o \
- bit.o \
- bld.o \
- com.o \
- data.o \
- equiv.o \
- expr.o \
- global.o \
- implic.o \
- info.o \
- intrin.o \
- lab.o \
- lex.o \
- malloc.o \
- name.o \
- parse.o \
- proj.o \
- src.o \
- st.o \
- sta.o \
- stb.o \
- stc.o \
- std.o \
- ste.o \
- storag.o \
- stp.o \
- str.o \
- sts.o \
- stt.o \
- stu.o \
- stv.o \
- stw.o \
- symbol.o \
- target.o \
- top.o \
- type.o \
- version.o \
- where.o
-
-# Language-independent object files.
-BACKEND = ../toplev.o ../libbackend.a
-
-compiler: ../f771$(exeext)
-../f771$(exeext): $(P) $(F77_OBJS) $(BACKEND) $(LIBDEPS)
-	rm -f f771$(exeext)
-	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(F77_OBJS) $(BACKEND) $(LIBS)
-
-Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
-	cd ..; $(SHELL) config.status
-
-native: config.status ../f771$(exeext)
-#
-# Compiling object files from source files.
-
-# Note that dependencies on obstack.h are not written
-# because that file is not part of GCC.
-
-# F77 language-specific files.
-
-# These macros expand to the corresponding gcc-source files involved
-# (each file itself, plus whatever files on which it depends, but
-# without including stuff resulting from configuration, since we can't
-# guess at that).  The files that live in a distclean'd gcc source
-# directory have "$(srcdir)/" prefixes, while the others don't because
-# they'll be created only in the build directory.
-ASSERT_H = $(srcdir)/../assert.h
-CONFIG_H = ../config.h
-CONVERT_H = $(srcdir)/../convert.h
-FLAGS_H = $(srcdir)/../flags.h
-GGC_H = $(srcdir)/../ggc.h $(srcdir)/../varray.h
-GLIMITS_H = $(srcdir)/../glimits.h
-HCONFIG_H = ../hconfig.h
-INPUT_H = $(srcdir)/../input.h
-OUTPUT_H = $(srcdir)/../output.h
-RTL_H = $(srcdir)/../rtl.h $(srcdir)/../rtl.def \
-	$(srcdir)/../machmode.h $(srcdir)/../machmode.def
-SYSTEM_H = $(srcdir)/../system.h
-TOPLEV_H = $(srcdir)/../toplev.h
-TREE_H = $(srcdir)/../tree.h $(srcdir)/../real.h \
-	$(srcdir)/../tree.def $(srcdir)/../machmode.h $(srcdir)/../machmode.def
-DEFAULTS_H = $(srcdir)/../defaults.h
-
-ansify.o: ansify.c $(HCONFIG_H) $(SYSTEM_H) $(ASSERT_H)
-bad.o: bad.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) bad.h bad.def where.h \
- $(GLIMITS_H) top.h malloc.h $(FLAGS_H) com.h com-rt.def $(TREE_H) bld.h \
- bld-op.def bit.h info.h info-b.def info-k.def info-w.def target.h \
- lex.h type.h intrin.h intrin.def lab.h symbol.h symbol.def equiv.h \
- storag.h global.h name.h $(TOPLEV_H)
-bit.o: bit.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(GLIMITS_H) bit.h \
- malloc.h
-bld.o: bld.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) bld.h bld-op.def bit.h \
- malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def
-com.o: com.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(FLAGS_H) $(RTL_H) \
- $(TREE_H) $(OUTPUT_H) $(CONVERT_H) com.h com-rt.def bld.h bld-op.def bit.h \
- malloc.h info.h info-b.def info-k.def info-w.def target.h bad.h \
- bad.def where.h $(GLIMITS_H) top.h lex.h type.h intrin.h intrin.def \
- lab.h symbol.h symbol.def equiv.h storag.h global.h name.h expr.h \
- implic.h src.h st.h $(GGC_H) $(TOPLEV_H) $(DEFAULTS_H)
-data.o: data.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) data.h bld.h \
- bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def \
- info-k.def info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h \
- lex.h type.h lab.h storag.h symbol.h symbol.def equiv.h global.h \
- name.h intrin.h intrin.def expr.h st.h
-equiv.o: equiv.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) equiv.h bld.h \
- bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def \
- info-k.def info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h \
- lex.h type.h lab.h storag.h symbol.h symbol.def global.h name.h \
- intrin.h intrin.def data.h
-expr.o: expr.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) expr.h bld.h \
- bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def \
- info-k.def info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h \
- lex.h type.h lab.h storag.h symbol.h symbol.def equiv.h global.h \
- name.h intrin.h intrin.def implic.h src.h st.h stamp-str
-fini.o: fini.c proj.h $(HCONFIG_H) $(SYSTEM_H) $(ASSERT_H) malloc.h
-global.o: global.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) global.h info.h \
- info-b.def info-k.def info-w.def target.h $(TREE_H) bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h lex.h type.h name.h symbol.h \
- symbol.def bld.h bld-op.def bit.h com.h com-rt.def lab.h storag.h \
- intrin.h intrin.def equiv.h
-implic.o: implic.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) implic.h info.h \
- info-b.def info-k.def info-w.def target.h $(TREE_H) bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h lex.h type.h symbol.h symbol.def \
- bld.h bld-op.def bit.h com.h com-rt.def lab.h storag.h intrin.h \
- intrin.def equiv.h global.h name.h src.h
-info.o: info.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) info.h info-b.def \
- info-k.def info-w.def target.h $(TREE_H) bad.h bad.def where.h $(GLIMITS_H) \
- top.h malloc.h lex.h type.h
-intdoc.o: intdoc.c $(HCONFIG_H) $(SYSTEM_H) $(ASSERT_H) intrin.h intrin.def \
- intdoc.h0 intdoc.h0
-intrin.o: intrin.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) intrin.h \
- intrin.def bld.h bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) \
- info.h info-b.def info-k.def info-w.def target.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h lex.h type.h lab.h storag.h symbol.h \
- symbol.def equiv.h global.h name.h expr.h src.h
-lab.o: lab.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) lab.h com.h com-rt.def \
- $(TREE_H) bld.h bld-op.def bit.h malloc.h info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h intrin.h intrin.def symbol.h symbol.def equiv.h storag.h \
- global.h name.h
-lex.o: lex.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) top.h malloc.h where.h \
- $(GLIMITS_H) bad.h bad.def com.h com-rt.def $(TREE_H) bld.h bld-op.def \
- bit.h info.h info-b.def info-k.def info-w.def target.h lex.h type.h \
- intrin.h intrin.def lab.h symbol.h symbol.def equiv.h storag.h \
- global.h name.h src.h $(FLAGS_H) $(INPUT_H) $(TOPLEV_H) $(OUTPUT_H) $(GGC_H)
-malloc.o: malloc.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) malloc.h
-name.o: name.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) bad.h bad.def where.h \
- $(GLIMITS_H) top.h malloc.h name.h global.h info.h info-b.def info-k.def \
- info-w.def target.h $(TREE_H) lex.h type.h symbol.h symbol.def bld.h \
- bld-op.def bit.h com.h com-rt.def lab.h storag.h intrin.h intrin.def \
- equiv.h src.h
-parse.o: parse.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) top.h malloc.h \
- where.h $(GLIMITS_H) com.h com-rt.def $(TREE_H) bld.h bld-op.def bit.h \
- info.h info-b.def info-k.def info-w.def target.h bad.h bad.def lex.h \
- type.h intrin.h intrin.def lab.h symbol.h symbol.def equiv.h storag.h \
- global.h name.h version.h $(FLAGS_H)
-proj.o: proj.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(GLIMITS_H)
-src.o: src.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) src.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h
-st.o: st.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) st.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h lex.h symbol.h symbol.def bld.h \
- bld-op.def bit.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h type.h lab.h storag.h intrin.h intrin.def equiv.h \
- global.h name.h sta.h stamp-str stb.h expr.h stp.h stt.h stc.h std.h \
- stv.h stw.h ste.h sts.h stu.h
-sta.o: sta.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) sta.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h lex.h stamp-str symbol.h symbol.def \
- bld.h bld-op.def bit.h com.h com-rt.def $(TREE_H) info.h info-b.def \
- info-k.def info-w.def target.h type.h lab.h storag.h intrin.h \
- intrin.def equiv.h global.h name.h implic.h stb.h expr.h stp.h stt.h \
- stc.h std.h stv.h stw.h
-stb.o: stb.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stb.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h expr.h bld.h bld-op.def bit.h com.h \
- com-rt.def $(TREE_H) info.h info-b.def info-k.def info-w.def target.h \
- lex.h type.h lab.h storag.h symbol.h symbol.def equiv.h global.h \
- name.h intrin.h intrin.def stp.h stt.h stamp-str src.h sta.h stc.h
-stc.o: stc.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stc.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h bld.h bld-op.def bit.h com.h \
- com-rt.def $(TREE_H) info.h info-b.def info-k.def info-w.def target.h \
- lex.h type.h lab.h storag.h symbol.h symbol.def equiv.h global.h \
- name.h intrin.h intrin.def expr.h stp.h stt.h stamp-str data.h implic.h \
- src.h sta.h std.h stv.h stw.h
-std.o: std.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) std.h bld.h bld-op.def \
- bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def stp.h stt.h stamp-str stv.h stw.h sta.h ste.h sts.h
-ste.o: ste.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(RTL_H) $(TOPLEV_H) ste.h \
- bld.h bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) info.h \
- info-b.def info-k.def info-w.def target.h bad.h bad.def where.h \
- $(GLIMITS_H) top.h lex.h type.h lab.h storag.h symbol.h symbol.def \
- equiv.h global.h name.h intrin.h intrin.def stp.h stt.h stamp-str sts.h \
- stv.h stw.h expr.h sta.h $(GGC_H)
-storag.o: storag.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) storag.h bld.h \
- bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def \
- info-k.def info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h \
- lex.h type.h lab.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def data.h
-stp.o: stp.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stp.h bld.h bld-op.def \
- bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def stt.h
-str.o: str.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) src.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h stamp-str lex.h
-sts.o: sts.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) sts.h malloc.h com.h \
- com-rt.def $(TREE_H) bld.h bld-op.def bit.h info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h intrin.h intrin.def lab.h symbol.h symbol.def equiv.h storag.h \
- global.h name.h
-stt.o: stt.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stt.h top.h malloc.h \
- where.h $(GLIMITS_H) bld.h bld-op.def bit.h com.h com-rt.def $(TREE_H) \
- info.h info-b.def info-k.def info-w.def target.h bad.h bad.def lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def stp.h expr.h sta.h stamp-str
-stu.o: stu.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) bld.h bld-op.def bit.h \
- malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def implic.h stu.h sta.h stamp-str
-stv.o: stv.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stv.h lab.h com.h \
- com-rt.def $(TREE_H) bld.h bld-op.def bit.h malloc.h info.h info-b.def \
- info-k.def info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h \
- lex.h type.h intrin.h intrin.def symbol.h symbol.def equiv.h storag.h \
- global.h name.h
-stw.o: stw.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stw.h bld.h bld-op.def \
- bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def stv.h sta.h stamp-str
-symbol.o: symbol.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) symbol.h \
- symbol.def bld.h bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) \
- info.h info-b.def info-k.def info-w.def target.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h lex.h type.h lab.h storag.h intrin.h \
- intrin.def equiv.h global.h name.h src.h st.h
-target.o: target.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(GLIMITS_H) \
- target.h $(TREE_H) bad.h bad.def where.h top.h malloc.h info.h \
- info-b.def info-k.def info-w.def type.h lex.h
-top.o: top.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) top.h malloc.h where.h \
- $(GLIMITS_H) bad.h bad.def bit.h bld.h bld-op.def com.h com-rt.def \
- $(TREE_H) info.h info-b.def info-k.def info-w.def target.h lex.h type.h \
- lab.h storag.h symbol.h symbol.def equiv.h global.h name.h intrin.h \
- intrin.def data.h expr.h implic.h src.h st.h $(FLAGS_H) $(TOPLEV_H)
-type.o: type.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) type.h malloc.h
-version.o: version.c
-where.o: where.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) where.h $(GLIMITS_H) \
- top.h malloc.h lex.h $(GGC_H)
-
-stamp-str: str-1t.h str-1t.j str-2t.h str-2t.j \
- str-fo.h str-fo.j str-io.h str-io.j str-nq.h  str-nq.j \
- str-op.h str-op.j str-ot.h str-ot.j
-	touch stamp-str
-
-str-1t.h str-1t.j: fini str-1t.fin
-	./fini `echo $(srcdir)/str-1t.fin | sed 's,^\./,,'` str-1t.j str-1t.h
-
-str-2t.h str-2t.j: fini str-2t.fin
-	./fini `echo $(srcdir)/str-2t.fin | sed 's,^\./,,'` str-2t.j str-2t.h
-
-str-fo.h str-fo.j: fini str-fo.fin
-	./fini `echo $(srcdir)/str-fo.fin | sed 's,^\./,,'` str-fo.j str-fo.h
-
-str-io.h str-io.j: fini str-io.fin
-	./fini `echo $(srcdir)/str-io.fin | sed 's,^\./,,'` str-io.j str-io.h
-
-str-nq.h str-nq.j: fini str-nq.fin
-	./fini `echo $(srcdir)/str-nq.fin | sed 's,^\./,,'` str-nq.j str-nq.h
-
-str-op.h str-op.j: fini str-op.fin
-	./fini `echo $(srcdir)/str-op.fin | sed 's,^\./,,'` str-op.j str-op.h
-
-str-ot.h str-ot.j: fini str-ot.fin
-	./fini `echo $(srcdir)/str-ot.fin | sed 's,^\./,,'` str-ot.j str-ot.h
-
-fini: fini.o proj-h.o
-	$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o fini fini.o proj-h.o
-
-fini.o:
-	$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \
-	      `echo $(srcdir)/fini.c | sed 's,^\./,,'` -o $@
-
-# Like proj.o, but depends on hconfig.h instead of config.h.
-proj-h.o: proj.c proj.h $(HCONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(GLIMITS_H)
-	$(HOST_CC) -c -DUSE_HCONFIG $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \
-	      `echo $(srcdir)/proj.c | sed 's,^\./,,'` -o $@
-
-# This rule is just a handy way to build the g77 derived files without
-# having the gcc source tree around.
-g77-only: force
-	if [ -f g77.texi ] ; then \
-	  (cd ..; $(MAKE) srcdir=. HOST_CC=cc HOST_CFLAGS=-g -f f/Make-lang.in f77.rebuilt); \
-	else \
-	  $(MAKE) srcdir=. HOST_CC=cc HOST_CFLAGS=-g -f f/Make-lang.in f77.rebuilt; \
-	fi
-
-#
-# These exist for maintenance purposes.
-
-# Update the tags table.
-TAGS: force
-	cd $(srcdir)/f ;			\
-	etags *.c *.h ;				\
-	echo 'l' | tr 'l' '\f' >> TAGS ;	\
-	etags -a ../*.h ../*.c;
-
-.PHONY: none all all.indirect f77.rebuilt compiler native deps-kinda g77-only TAGS force
-
-force:
diff --git a/gcc/f/config-lang.in b/gcc/f/config-lang.in
index d68334de467716bea0f9a89f5726ff947897e91d..8189641228eaba77e908650088dd17229c29ef85 100644
--- a/gcc/f/config-lang.in
+++ b/gcc/f/config-lang.in
@@ -33,5 +33,3 @@ compilers="f771\$(exeext)"
 stagestuff="g77\$(exeext) g77-cross\$(exeext) f771\$(exeext)"
 
 diff_excludes="-x f/BUGS -x f/NEWS -x f/INSTALL -x f/intdoc.texi"
-
-outputs=f/Makefile
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 53408cf3977e842ef850d870be7cfaf3c965c7db..78d2cf851b00ddec322246640f3956a426d539b5 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,15 @@
+2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
+
+	* Make-lang.in: Move all build rules here from Makefile.in,
+	adapt to new context.  Wrap all rules that change the current
+	directory in parentheses.  Expunge all references to $(P).
+	When one command depends on another and they're run all at
+	once, use && to separate them, not ;.  Add OUTPUT_OPTION to
+	all object-file generation rules.  Delete obsolete variables.
+
+	* Makefile.in: Delete.
+	* config-lang.in: Delete outputs= line.
+
 2000-10-24  Tom Tromey  <tromey@cygnus.com>
 
 	* lex.c (java_new_lexer): Initialize new fields.  Work around
diff --git a/gcc/java/Make-lang.in b/gcc/java/Make-lang.in
index 5429f127d1cce13edb088e41d347437aa7d15769..d1f794af74ad99cc0b48cc49afd0fa14eec1a13c 100644
--- a/gcc/java/Make-lang.in
+++ b/gcc/java/Make-lang.in
@@ -40,12 +40,6 @@
 # - making any compiler driver (eg: g++)
 # - the compiler proper (eg: jc1)
 # - define the names for selecting the language in LANGUAGES.
-#
-# Extra flags to pass to recursive makes.
-JAVA_FLAGS_TO_PASS = \
-	"JAVA_FOR_BUILD=$(JAVA_FOR_BUILD)" \
-	"JAVAFLAGS=$(JAVAFLAGS)" \
-	"JAVA_FOR_TARGET=$(JAVA_FOR_TARGET)"
 
 # Actual names to use when installing a native compiler.
 JAVA_INSTALL_NAME = `t='$(program_transform_name)'; echo gcj | sed $$t`
@@ -53,11 +47,11 @@ JAVA_INSTALL_NAME = `t='$(program_transform_name)'; echo gcj | sed $$t`
 # Actual names to use when installing a cross-compiler.
 JAVA_CROSS_NAME = `t='$(program_transform_cross_name)'; echo gcj | sed $$t`
 
-#
 GCJ = gcj
 
 # Define the names for selecting java in LANGUAGES.
-java: jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext)
+java: jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) \
+      gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext)
 
 # Define the name of target independant tools to be installed in $(bindir)
 # Names are subject to changes
@@ -66,21 +60,9 @@ JAVA_TARGET_INDEPENDENT_BIN_TOOLS = gcjh jv-scan jcf-dump
 # Tell GNU make to ignore these if they exist.
 .PHONY: java
 
-# Remember to keep this list in sync with JAVA_OBJS in Makefile.in!!!
-#
-JAVA_SRCS = $(srcdir)/java/parse.y $(srcdir)/java/class.c \
-  $(srcdir)/java/decl.c $(srcdir)/java/expr.c $(srcdir)/java/constants.c \
-  $(srcdir)/java/lang.c $(srcdir)/java/typeck.c $(srcdir)/java/except.c \
-  $(srcdir)/java/verify.c $(srcdir)/java/zextract.c $(srcdir)/java/jcf-io.c \
-  $(srcdir)/java/jcf-parse.c $(srcdir)/java/mangle.c \
-  $(srcdir)/java/jcf-write.c $(srcdir)/java/buffer.c \
-  $(srcdir)/java/check-init.c $(srcdir)/java/lex.c $(srcdir)/java/boehm.c \
-  $(srcdir)/java/jcf-depend.c  $(srcdir)/java/jcf-path.c \
-  $(srcdir)/java/java-tree.h
-
 jvspec.o: $(srcdir)/java/jvspec.c system.h $(GCC_H)
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
-		$(INCLUDES) $(srcdir)/java/jvspec.c
+		$(INCLUDES) $(srcdir)/java/jvspec.c $(OUTPUT_OPTION)
 
 # Create the compiler driver for $(GCJ).
 $(GCJ)$(exeext): gcc.o jvspec.o version.o \
@@ -93,64 +75,68 @@ $(GCJ)-cross$(exeext): $(GCJ)$(exeext)
 	-rm -f $(GCJ)-cross$(exeext)
 	cp $(GCJ)$(exeext) $(GCJ)-cross$(exeext)
 
-# Dependencies here must be kept in sync with dependencies in Makefile.in.
-jvgenmain$(exeext): $(srcdir)/java/jvgenmain.c $(srcdir)/java/mangle.c \
-		$(LIBDEPS) $(TREE_H)
-	cd java && $(MAKE) $(LANG_FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) ../jvgenmain$(exeext)
+$(INTL_TARGETS): $(srcdir)/java/parse.c $(srcdir)/java/parse-scan.c
 
-# This must be kept in sync with dependencies in Makefile.in.
-GCJH_SOURCES = $(srcdir)/java/gjavah.c $(srcdir)/java/jcf-io.c \
-	$(srcdir)/java/zextract.c $(srcdir)/java/jcf-reader.c \
-	$(srcdir)/java/jcf.h $(srcdir)/java/javaop.h \
-	$(srcdir)/java/javaop.def $(srcdir)/java/jcf-depend.c \
-	$(srcdir)/java/jcf-path.c
+$(srcdir)/java/parse.c: $(srcdir)/java/parse.y
+	(cd $(srcdir)/java && \
+	$(BISON) -t --name-prefix=java_ $(BISONFLAGS) -o p$$$$.c parse.y && \
+	mv -f p$$$$.c parse.c)
 
-$(INTL_TARGETS): $(srcdir)/java/parse.c $(srcdir)/java/parse-scan.c
+$(srcdir)/java/parse-scan.c:  $(srcdir)/java/parse-scan.y
+	(cd $(srcdir)/java && \
+	$(BISON) -t $(BISONFLAGS) -o ps$$$$.c parse-scan.y && \
+	mv -f ps$$$$.c parse-scan.c)
+
+$(srcdir)/java/keyword.h: $(srcdir)/java/keyword.gperf
+	(cd $(srcdir)/java || exit 1; \
+	gperf -L C -F ', 0' -p -t -j1 -i 1 -g -o -N java_keyword -k1,3,$$ \
+		keyword.gperf > k$$$$.h || {
+	echo "Please update gperf from ftp://ftp.gnu.org/pub/gnu/gperf/" >&2; \
+	rm -f k$$$$.h; \
+	exit 1; } \
+	mv -f k$$$$.h keyword.gperf)
+
+# Executables built by this Makefile:
+JAVA_OBJS = java/parse.o java/class.o java/decl.o java/expr.o \
+  java/constants.o java/lang.o java/typeck.o java/except.o java/verify.o \
+  java/zextract.o java/jcf-io.o java/jcf-parse.o java/mangle.o \
+  java/jcf-write.o java/buffer.o java/check-init.o java/jcf-depend.o \
+  java/jcf-path.o java/xref.o java/boehm.o mkdeps.o
+
+GCJH_OBJS = java/gjavah.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \
+  java/zextract.o version.o mkdeps.o errors.o
+
+JVSCAN_OBJS = java/parse-scan.o java/jv-scan.o version.o
+
+JCFDUMP_OBJS = java/jcf-dump.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \
+		java/zextract.o errors.o version.o mkdeps.o
+
+JVGENMAIN_OBJS = java/jvgenmain.o java/mangle.o
+
+# Use loose warnings for this front end.
+java-warn =
+
+jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS)
+	rm -f $@
+	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
+		$(JAVA_OBJS) $(BACKEND) $(ZLIB) $(LIBS)
+
+gcjh$(exeext): $(GCJH_OBJS) $(LIBDEPS)
+	rm -f $@
+	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GCJH_OBJS) $(ZLIB) $(LIBS)
+
+jv-scan$(exeext): $(JVSCAN_OBJS) $(LIBDEPS)
+	rm -f $@
+	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVSCAN_OBJS) $(LIBS)
+
+jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIBDEPS)
+	rm -f $@
+	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) $(ZLIB) $(LIBS)
+
+jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS)
+	rm -f $@
+	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(LIBS)
 
-# Separating PARSE_DIR from PARSE_RELDIR lets us easily change the
-# code to support building parse.c in the build directory, at some
-# expense in readability.
-# This code must be kept in sync with Makefile.in.
-PARSE_DIR = $(srcdir)/java
-PARSE_RELDIR = .
-PARSE_C = $(PARSE_DIR)/parse.c
-PARSE_SCAN_C = $(PARSE_DIR)/parse-scan.c
-
-SET_BISON = here=`pwd`; sdir=`cd $(srcdir) && pwd`; if test -f ../bison; then bison="$$here/../bison/bison -L $$sdir"; else bison=bison; fi
-BISONFLAGS =
-JAVABISONFLAGS = --name-prefix=java_
-
-$(PARSE_C):  $(srcdir)/java/parse.y
-	$(SET_BISON); \
-	cd $(PARSE_DIR) ; $$bison -t $(BISONFLAGS) $(JAVABISONFLAGS) \
-	    -o p$$$$.c $(PARSE_RELDIR)/parse.y ; \
-	mv -f p$$$$.c parse.c
-$(PARSE_SCAN_C):  $(srcdir)/java/parse-scan.y
-	$(SET_BISON); \
-	cd $(PARSE_DIR) ; $$bison -t $(BISONFLAGS) -o ps$$$$.c \
-	    $(PARSE_RELDIR)/parse-scan.y ; \
-	mv -f ps$$$$.c parse-scan.c
-
-# This must be kept in sync with dependencies in Makefile.in.
-JV_SCAN_SOURCES = $(srcdir)/java/parse-scan.y $(srcdir)/java/lex.c \
-       $(srcdir)/java/parse.h $(srcdir)/java/lex.h $(srcdir)/java/jv-scan.c
-
-# This must be kept in sync with dependencies in Makefile.in.
-JCF_DUMP_SOURCES = $(srcdir)/java/jcf-dump.c $(srcdir)/java/jcf-io.c \
-       $(srcdir)/java/zextract.c $(TREE_H)
-
-jc1$(exeext) gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext): s-java
-
-s-java: $(P) $(JAVA_SRCS) $(LIBDEPS) $(BACKEND) mkdeps.o \
-	$(GCJH_SOURCES) $(LIBDEPS) $(TREE_H) \
-	$(JV_SCAN_SOURCES) $(BACKEND) $(LIBDEPS) \
-	$(JCF_DUMP_SOURCES)
-	cd java; $(MAKE) $(LANG_FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) \
-	../jc1$(exeext) \
-	../gcjh$(exeext) \
-	../jv-scan$(exeext) \
-	../jcf-dump$(exeext)
-	touch s-java
 #
 # Build hooks:
 
@@ -228,10 +214,73 @@ java.stage4: stage4-start
 
 # This target creates the files that can be rebuilt, but go in the
 # distribution anyway.  It then copies the files to the distdir directory.
-java.distdir:
+java.distdir: java/parse.c java/hash.h
 	mkdir tmp/java
-	cd java ; $(MAKE) $(LANG_FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) parse.c hash.h
 	cd java; \
 	for file in *[0-9a-zA-Z+]; do \
 	  ln $$file ../tmp/java >/dev/null 2>&1 || cp $$file ../tmp/java; \
 	done
+
+#
+# .o:.h dependencies.
+JAVA_TREE_H = $(TREE_H) java/java-tree.h java/java-tree.def
+JAVA_LEX_C = java/lex.c java/keyword.h
+
+java/parse.o: java/parse.c java/jcf-reader.c $(CONFIG_H) system.h \
+  function.h $(JAVA_TREE_H) $(JAVA_LEX_C) java/parse.h java/lex.h $(GGC_H)
+java/jcf-dump.o: $(CONFIG_H) system.h $(JAVA_TREE_H) java/jcf-dump.c \
+  java/jcf-reader.c java/jcf.h java/javaop.h java/javaop.def version.h
+java/gjavah.o: $(CONFIG_H) system.h $(JAVA_TREE_H) java/gjavah.c \
+  java/jcf-reader.c java/jcf.h java/javaop.h version.h
+java/boehm.o: java/boehm.c $(CONFIG_H) system.h $(TREE_H) $(JAVA_TREE_H) \
+  java/parse.h
+java/buffer.o: java/buffer.c $(CONFIG_H) java/buffer.h gansidecl.h \
+  system.h toplev.h
+java/check-init.o: java/check-init.c $(CONFIG_H) gansidecl.h \
+  $(JAVA_TREE_H) system.h toplev.h
+java/class.o: java/class.c $(CONFIG_H) $(JAVA_TREE_H) $(RTL_H) java/jcf.h \
+  java/parse.h gansidecl.h toplev.h system.h output.h $(GGC_H)
+java/constants.o: java/constants.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \
+  toplev.h system.h $(GGC_H)
+java/decl.o: java/decl.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \
+  toplev.h system.h function.h defaults.h gcc.h
+java/except.o: java/except.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h real.h \
+  $(RTL_H) java/javaop.h java/java-opcodes.h except.h java/java-except.h \
+  eh-common.h toplev.h system.h function.h
+java/expr.o: java/expr.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h real.h \
+  $(RTL_H) $(EXPR_H) java/javaop.h java/java-opcodes.h except.h \
+  java/java-except.h java/java-except.h java/parse.h toplev.h \
+  system.h $(GGC_H)
+java/jcf-depend.o: java/jcf-depend.c $(CONFIG_H) system.h java/jcf.h
+java/jcf-parse.o: java/jcf-parse.c $(CONFIG_H) $(JAVA_TREE_H) flags.h \
+  input.h java/java-except.h system.h toplev.h java/parse.h $(GGC_H)
+java/jcf-write.o: java/jcf-write.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \
+  $(RTL_H) java/java-opcodes.h java/parse.h java/buffer.h system.h \
+  toplev.h $(GGC_H)
+java/jv-scan.o: java/jv-scan.c $(CONFIG_H) system.h version.h
+java/jvgenmain.o: java/jvgenmain.c $(CONFIG_H) $(JAVA_TREE_H) system.h
+java/lang.o: java/lang.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h input.h \
+  toplev.h system.h $(RTL_H) $(EXPR_H)
+java/mangle.o: java/mangle.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) system.h \
+  toplev.h $(GGC_H)
+java/parse-scan.o: $(CONFIG_H) system.h toplev.h $(JAVA_LEX_C) java/parse.h \
+  java/lex.h
+java/typeck.o: java/typeck.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \
+  java/convert.h toplev.h system.h $(GGC_H)
+java/verify.o: java/verify.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \
+  java/javaop.h java/java-opcodes.h java/java-except.h toplev.h system.h
+java/xref.o: java/xref.c java/xref.h $(CONFIG_H) $(JAVA_TREE_H) toplev.h \
+  system.h
+java/zextract.o: java/zextract.c $(CONFIG_H) system.h java/zipfile.h
+
+# jcf-io.o needs $(ZLIBINC) added to cflags.
+java/jcf-io.o: java/jcf-io.c $(CONFIG_H) system.h $(JAVA_TREE_H)
+	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(ZLIBINC) \
+		$(srcdir)/java/jcf-io.c $(OUTPUT_OPTION)
+
+# jcf-path.o needs a -D.
+java/jcf-path.o: java/jcf-path.c $(CONFIG_H) system.h java/jcf.h
+	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+	  -DLIBGCJ_ZIP_FILE='"$(libgcj_zip)"' \
+	  $(srcdir)/java/jcf-path.c $(OUTPUT_OPTION)
+
diff --git a/gcc/java/Makefile.in b/gcc/java/Makefile.in
deleted file mode 100644
index 8b57cbe830af868a655c9339906a5727610f0683..0000000000000000000000000000000000000000
--- a/gcc/java/Makefile.in
+++ /dev/null
@@ -1,329 +0,0 @@
-# Makefile for GNU compiler for the Java(TM) language.
-#   Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1998,
-#   1999 Free Software Foundation, Inc.
-
-#This file is part of GNU CC.
-
-#GNU CC is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 2, or (at your option)
-#any later version.
-
-#GNU CC is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#GNU General Public License for more details.
-
-#You should have received a copy of the GNU General Public License
-#along with GNU CC; see the file COPYING.  If not, write to
-#the Free Software Foundation, 59 Temple Place - Suite 330,
-#Boston, MA 02111-1307, USA.
-
-#Java and all Java-based marks are trademarks or registered trademarks
-#of Sun Microsystems, Inc. in the United States and other countries.
-#The Free Software Foundation is independent of Sun Microsystems, Inc.
-
-# The makefile built from this file lives in the language subdirectory.
-# Its purpose is to provide support for:
-#
-# 1) recursion where necessary, and only then (building .o's), and
-# 2) building and debugging cc1 from the language subdirectory, and
-# 3) nothing else.
-#
-# The parent makefile handles all other chores, with help from the
-# language makefile fragment, of course.
-#
-# The targets for external use are:
-# all, TAGS, ???mostlyclean, ???clean.
-
-# Suppress smart makes who think they know how to automake Yacc files
-.y.c:
-
-# Variables that exist for you to override.
-# See below for how to change them for certain systems.
-
-# Various ways of specifying flags for compilations:  
-# CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
-# BOOT_CFLAGS is the value of CFLAGS to pass
-# to the stage2 and stage3 compilations
-# XCFLAGS is used for most compilations but not when using the GCC just built.
-XCFLAGS =
-CFLAGS = -g
-BOOT_CFLAGS = -O $(CFLAGS)
-# These exists to be overridden by the x-* and t-* files, respectively.
-X_CFLAGS =
-T_CFLAGS =
-
-X_CPPFLAGS =
-T_CPPFLAGS =
-
-CC = @CC@
-SET_BISON = here=`pwd`; sdir=`cd $(srcdir) && pwd`; if test -f ../../bison; then bison="$$here/../../bison/bison -L $$sdir"; else bison=bison; fi
-BISONFLAGS =
-JAVABISONFLAGS = --name-prefix=java_
-AR = ar
-AR_FLAGS = rc
-SHELL = /bin/sh
-MAKEINFO = makeinfo
-TEXI2DVI = texi2dvi
-
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary 
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
-
-# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
-# It omits XCFLAGS, and specifies -B./.
-# It also specifies -B$(tooldir)/ to find as and ld for a cross compiler.
-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS)
-
-# Tools to use when building a cross-compiler.
-# These are used because `configure' appends `cross-make'
-# to the makefile when making a cross-compiler.
-
-# We don't use cross-make.  Instead we use the tools
-# from the build tree, if they are available.
-# program_transform_name and objdir are set by configure.in.
-program_transform_name =
-objdir = .
-
-#version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < $(srcdir)/version.c`
-#mainversion=`sed -e 's/.*\"\([0-9]*\.[0-9]*\).*/\1/' < $(srcdir)/version.c`
-
-# Directory where sources are, from where we are.
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-# Directory holding libgcj.zip.
-prefix = @prefix@
-datadir = @datadir@
-libgcj_zip = $(datadir)/libgcj.zip
-
-# Additional system libraries to link with.
-CLIB=
-
-# Top build directory, relative to here.
-top_builddir = ..
-
-# Internationalization library.
-INTLLIBS = @INTLLIBS@
-
-# Choose the real default target.
-ALL=all
-
-# End of variables for you to override.
-
-# Definition of `all' is here so that new rules inserted by sed
-# do not specify the default target.
-all: all.indirect
-
-# This tells GNU Make version 3 not to put all variables in the environment.
-.NOEXPORT:
-
-# sed inserts variable overrides after the following line.
-####target overrides
-@target_overrides@
-####host overrides
-@host_overrides@
-####cross overrides
-@cross_overrides@
-####build overrides
-@build_overrides@
-####site overrides
-#
-# Now figure out from those variables how to compile and link.
-
-all.indirect: Makefile ../jc1$(exeext) ../jcf-dump$(exeext) \
-	../jvgenmain$(exeext) ../gcjh$(exeext) ../jv-scan$(exeext)
-
-# IN_GCC tells obstack.h that we are using gcc's <stddef.h> file.
-INTERNAL_CFLAGS = $(CROSS) -DIN_GCC @extra_c_flags@
-
-# This is the variable actually used when we compile.
-ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS) -W -Wall
-
-# Likewise.
-ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
-
-# This is where we get libiberty.a from.
-LIBIBERTY = ../../libiberty/libiberty.a
-
-# This is where we get zlib from.  zlibdir is -L../../zlib by default,
-# and is nothing when configured with --enable-system-zlib.
-ZLIB = @zlibdir@ -lz
-
-# How to link with both our special library facilities
-# and the system's installed libraries.
-LIBS = $(ZLIB) $(INTLLIBS) $(LIBIBERTY) $(CLIB)
-LIBDEPS = $(INTLLIBS) $(LIBIBERTY) ../errors.o
-
-# Specify the directories to be searched for header files.
-# Both . and srcdir are used, in that order,
-# so that tm.h and config.h will be found in the compilation
-# subdirectory rather than in the source directory.
-INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config -I$(srcdir)/../../include @zlibinc@
-
-# Always use -I$(srcdir)/config when compiling.
-.c.o:
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-
-#
-# Lists of files for various purposes.
-
-# Language-specific object files for Gcc/Java:
-
-# Remember to keep this list in sync with JAVA_SRCS in Make-lang.in!!!
-#
-JAVA_OBJS = parse.o class.o decl.o expr.o constants.o lang.o typeck.o \
-  except.o verify.o zextract.o jcf-io.o jcf-parse.o mangle.o jcf-write.o \
-  buffer.o check-init.o jcf-depend.o jcf-path.o xref.o boehm.o
-
-JAVA_OBJS_LITE = parse-scan.o jv-scan.o
-
-# Language-independent object files.
-BACKEND = ../toplev.o ../mkdeps.o ../libbackend.a
-
-compiler: ../jc1$(exeext) ../jv-scan$(exeext)
-../jc1$(exeext): $(P) $(JAVA_OBJS) $(BACKEND) $(LIBDEPS)
-	rm -f ../jc1$(exeext)
-	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JAVA_OBJS) $(BACKEND) $(LIBS)
-../jv-scan$(exeext): $(P) $(JAVA_OBJS_LITE) ../version.o $(LIBDEPS)
-	rm -f ../jv-scan$(exeext)
-	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JAVA_OBJS_LITE) ../version.o $(LIBS)
-
-../jcf-dump$(exeext): jcf-dump.o jcf-io.o jcf-depend.o jcf-path.o \
-		zextract.o ../version.o ../mkdeps.o $(LIBDEPS)
-	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ jcf-dump.o jcf-io.o \
-	  jcf-depend.o jcf-path.o zextract.o ../errors.o ../version.o \
-	  ../mkdeps.o $(LIBS)
-
-# Dependencies here must be kept in sync with dependencies in Make-lang.in.
-../jvgenmain$(exeext):  jvgenmain.o mangle.o $(LIBDEPS)
-	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ jvgenmain.o mangle.o $(LIBS)
-
-../gcjh$(exeext): gjavah.o jcf-io.o jcf-depend.o jcf-path.o \
-		zextract.o ../version.o ../mkdeps.o $(LIBDEPS)
-	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ gjavah.o jcf-io.o \
-	  jcf-depend.o jcf-path.o zextract.o ../errors.o ../version.o \
-	  ../mkdeps.o $(LIBS)
-
-Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
-	cd ..; $(SHELL) config.status
-
-native: config.status ../jc1$(exeext)
-#
-# Compiling object files from source files.
-TREE_H = $(srcdir)/../tree.h $(srcdir)/../real.h $(srcdir)/../tree.def \
-        $(srcdir)/../machmode.h $(srcdir)/../machmode.def ../tree-check.h
-JAVA_TREE_H = $(TREE_H) java-tree.h java-tree.def
-RTL_H = $(srcdir)/../rtl.h $(srcdir)/../rtl.def \
-        $(srcdir)/../machmode.h $(srcdir)/../machmode.def ../genrtl.h
-EXPR_H = $(srcdir)/../expr.h ../insn-codes.h
-
-# Separating PARSE_DIR from PARSE_RELDIR lets us easily change the
-# code to support building parse.c in the build directory, at some
-# expense in readability.
-# This code must be kept in sync with Make-lang.in.
-PARSE_DIR = $(srcdir)
-PARSE_RELDIR = .
-PARSE_C = $(PARSE_DIR)/parse.c
-PARSE_SCAN_C = $(PARSE_DIR)/parse-scan.c
-PARSE_H = $(srcdir)/parse.h
-
-$(PARSE_C):  $(srcdir)/parse.y
-	$(SET_BISON); \
-	cd $(PARSE_DIR) ; $$bison -t $(BISONFLAGS) $(JAVABISONFLAGS) \
-	    -o p$$$$.c $(PARSE_RELDIR)/parse.y ; \
-	mv -f p$$$$.c parse.c
-$(PARSE_SCAN_C):  $(srcdir)/parse-scan.y
-	$(SET_BISON); \
-	cd $(PARSE_DIR) ; $$bison -t $(BISONFLAGS) -o ps$$$$.c \
-	    $(PARSE_RELDIR)/parse-scan.y ; \
-	mv -f ps$$$$.c parse-scan.c
-
-lex.c: keyword.h lex.h
-
-lang.o: $(srcdir)/java-tree.def
-
-keyword.h: keyword.gperf
-	gperf -L C -F ', 0' -p -t -j1 -i 1 -g -o -N java_keyword -k1,3,$$ \
-	keyword.gperf > keyword.h || ( \
-	echo "Please update your 'gperf' from ftp://ftp.gnu.org/pub/gnu/gperf/" >&2 ; \
-	exit 1 )
-
-jcf-path.o : jcf-path.c $(CONFIG_H) $(srcdir)/../system.h jcf.h
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-	  -DLIBGCJ_ZIP_FILE='"$(libgcj_zip)"' $(srcdir)/jcf-path.c
-
-# These exist for maintenance purposes.
-
-# Update the tags table.
-TAGS: force
-	cd $(srcdir) ;				\
-	etags *.c *.h ;				\
-	echo 'l' | tr 'l' '\f' >> TAGS ;	\
-	echo 'parse.y,0' >> TAGS ; 		\
-	etags -a ../*.h ../*.c;
-
-.PHONY: TAGS
-
-mostlyclean:
-	rm -f *.o
-
-clean:  mostlyclean
-
-force:
-
-parse.o : $(PARSE_C) jcf-reader.c $(CONFIG_H) $(srcdir)/../system.h \
-  $(srcdir)/../function.h $(JAVA_TREE_H) $(srcdir)/lex.c $(PARSE_H) \
-  $(srcdir)/lex.h $(srcdir)/../ggc.h
-jcf-dump.o : $(CONFIG_H) $(srcdir)/../system.h $(JAVA_TREE_H) jcf-dump.c \
-  jcf-reader.c jcf.h javaop.h javaop.def $(srcdir)/../version.h
-gjavah.o : $(CONFIG_H) $(srcdir)/../system.h $(JAVA_TREE_H) gjavah.c \
-  jcf-reader.c jcf.h javaop.h $(srcdir)/../version.h
-boehm.o: boehm.c $(CONFIG_H) $(srcdir)/../system.h $(TREE_H) $(JAVA_TREE_H) \
-  $(PARSE_H)
-buffer.o : buffer.c $(CONFIG_H) buffer.h $(srcdir)/../gansidecl.h \
-  $(srcdir)/../system.h $(srcdir)/../toplev.h
-check-init.o : check-init.c $(CONFIG_H) $(srcdir)/../gansidecl.h \
-  $(JAVA_TREE_H) $(srcdir)/../system.h $(srcdir)/../toplev.h
-class.o : class.c $(CONFIG_H) $(JAVA_TREE_H) $(RTL_H) jcf.h $(PARSE_H) \
-  $(srcdir)/../gansidecl.h $(srcdir)/../toplev.h $(srcdir)/../system.h \
-  $(srcdir)/../output.h $(srcdir)/../ggc.h
-constants.o : constants.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h \
-  $(srcdir)/../toplev.h $(srcdir)/../system.h $(srcdir)/../ggc.h
-decl.o : decl.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h \
-  $(srcdir)/../toplev.h $(srcdir)/../system.h $(srcdir)/../function.h \
-  $(srcdir)/../defaults.h $(srcdir)/../gcc.h
-except.o : except.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h $(srcdir)/../real.h \
-  $(RTL_H) javaop.h java-opcodes.h $(srcdir)/../except.h java-except.h \
-  $(srcdir)/../eh-common.h $(srcdir)/../toplev.h $(srcdir)/../system.h \
-  $(srcdir)/../function.h
-expr.o : expr.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h $(srcdir)/../real.h \
-  $(RTL_H) $(EXPR_H) javaop.h java-opcodes.h $(srcdir)/../except.h \
-  java-except.h java-except.h parse.h $(srcdir)/../toplev.h \
-  $(srcdir)/../system.h $(srcdir)/../ggc.h
-jcf-depend.o : jcf-depend.c $(CONFIG_H) $(srcdir)/../system.h jcf.h
-jcf-io.o : jcf-io.c $(CONFIG_H) $(srcdir)/../system.h $(JAVA_TREE_H)
-jcf-parse.o : jcf-parse.c $(CONFIG_H) $(JAVA_TREE_H) $(srcdir)/../flags.h \
-  $(srcdir)/../input.h java-except.h $(srcdir)/../system.h \
-  $(srcdir)/../toplev.h $(PARSE_H) $(srcdir)/../ggc.h
-jcf-write.o : jcf-write.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h $(RTL_H) \
-  java-opcodes.h parse.h buffer.h $(srcdir)/../system.h \
-  $(srcdir)/../toplev.h $(srcdir)/../ggc.h
-jv-scan.o : jv-scan.c $(CONFIG_H) $(srcdir)/../system.h $(srcdir)/../version.h
-jvgenmain.o : jvgenmain.c $(CONFIG_H) $(srcdir)/../system.h
-lang.o : lang.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h $(srcdir)/../input.h \
-  $(srcdir)/../toplev.h $(srcdir)/../system.h $(RTL_H) $(EXPR_H)
-mangle.o : mangle.c $(CONFIG_H) jcf.h $(JAVA_TREE_H) $(srcdir)/../system.h \
-  $(srcdir)/../toplev.h $(srcdir)/../ggc.h
-parse-scan.o : $(CONFIG_H) $(srcdir)/../system.h $(srcdir)/../toplev.h \
-  $(srcdir)/lex.c $(PARSE_H) $(srcdir)/lex.h
-typeck.o : typeck.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h convert.h \
-  $(srcdir)/../toplev.h $(srcdir)/../system.h $(srcdir)/../ggc.h
-verify.o : verify.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h javaop.h java-opcodes.h \
-  java-except.h $(srcdir)/../toplev.h $(srcdir)/../system.h
-xref.o : xref.c xref.h $(CONFIG_H) $(JAVA_TREE_H) $(srcdir)/../toplev.h \
-  $(srcdir)/../system.h
-zextract.o : zextract.c $(CONFIG_H) $(srcdir)/../system.h zipfile.h
-
diff --git a/gcc/java/config-lang.in b/gcc/java/config-lang.in
index 07f7749303792f206774e85df4fc2c95b209a789..e7c858af8a0074a302e78a26b1bd047f2ec297c5 100644
--- a/gcc/java/config-lang.in
+++ b/gcc/java/config-lang.in
@@ -36,5 +36,3 @@ language="java"
 compilers="jc1\$(exeext) jvgenmain\$(exeext)"
 
 stagestuff="jc1\$(exeext) gcj\$(exeext) jvgenmain\$(exeext) gcjh\$(exeext) jv-scan\$(exeext) jcf-dump\$(exeext)"
-
-outputs=java/Makefile
diff --git a/gcc/objc/Make-lang.in b/gcc/objc/Make-lang.in
index 049c3060aa7c4089b3107cfa5f76b4571639d262..6f19902400e5714f856b3bce57a751f8913390f8 100644
--- a/gcc/objc/Make-lang.in
+++ b/gcc/objc/Make-lang.in
@@ -35,18 +35,6 @@
 # - making any compiler driver (eg: g++)
 # - the compiler proper (eg: cc1plus)
 # - define the names for selecting the language in LANGUAGES.
-#
-# Extra flags to pass to recursive makes.
-OBJC_FLAGS_TO_PASS = \
-	"OBJC_FOR_BUILD=$(OBJC_FOR_BUILD)" \
-	"OBJCFLAGS=$(OBJCFLAGS)" \
-	"OBJC_FOR_TARGET=$(OBJC_FOR_TARGET)" \
-
-# Actual names to use when installing a native compiler.
-#OBJC_INSTALL_NAME = `t='$(program_transform_name)'; echo c++ | sed $$t`
-
-# Actual names to use when installing a cross-compiler.
-#OBJC_CROSS_NAME = `t='$(program_transform_cross_name)'; echo c++ | sed $$t`
 
 #
 # Define the names for selecting Objective-C in LANGUAGES.
@@ -56,10 +44,13 @@ OBJECTIVE-C objective-c: cc1obj$(exeext)
 # Tell GNU make to ignore these if they exist.
 .PHONY: objective-c objc ObjC
 
+# Use maximal warnings for this front end.
+objc-warn = $(STRICT_WARN)
+
 # Language-specific object files for Objective C.
 OBJC_OBJS = objc-parse.o objc-act.o $(C_AND_OBJC_OBJS)
 
-cc1obj$(exeext): $(P) $(OBJC_OBJS) $(BACKEND) $(LIBDEPS)
+cc1obj$(exeext): $(OBJC_OBJS) $(BACKEND) $(LIBDEPS)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(OBJC_OBJS) $(BACKEND) $(LIBS)
 
 # Objective C language specific files.
@@ -70,7 +61,7 @@ objc-parse.o : $(srcdir)/objc/objc-parse.c \
    $(srcdir)/input.h $(srcdir)/flags.h $(srcdir)/output.h \
    $(srcdir)/objc/objc-act.h system.h cpplib.h
 	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -I$(srcdir)/objc \
-	-c $(srcdir)/objc/objc-parse.c
+	-c $(srcdir)/objc/objc-parse.c $(OUTPUT_OPTION)
 
 $(INTL_TARGETS): $(srcdir)/objc/objc-parse.c
 $(srcdir)/objc/objc-parse.c : $(srcdir)/objc/objc-parse.y
@@ -132,8 +123,8 @@ objc.distclean:
 	-rm -f objc-parse.output
 objc.extraclean:
 objc.maintainer-clean:
-	-rm -f objc/objc-parse.y
-	-rm -f objc/objc-parse.c objc/objc-parse.output
+	-rm -f $(srcdir)/objc/objc-parse.y
+	-rm -f $(srcdir)/objc/objc-parse.c $(srcdir)/objc/objc-parse.output
 
 #
 # Stage hooks:
@@ -156,11 +147,8 @@ objc.stage4: stage4-start
 
 # This target creates the files that can be rebuilt, but go in the
 # distribution anyway.  It then copies the files to the distdir directory.
-# ??? Note that this should be fixed once the Makefile is fixed to do
-# the build in the inner directory.
 objc.distdir: $(srcdir)/objc/objc-parse.c
 	mkdir tmp/objc
-#	cd objc ; $(MAKE) $(LANG_FLAGS_TO_PASS) objc-parse.c
 	cd objc; \
 	for file in *[0-9a-zA-Z+]; do \
 	  ln $$file ../tmp/objc >/dev/null 2>&1 || cp $$file ../tmp/objc; \
diff --git a/gcc/objc/Makefile.in b/gcc/objc/Makefile.in
deleted file mode 100644
index 71c564c6c59c7bd7fc891fd7817c0111e83b674c..0000000000000000000000000000000000000000
--- a/gcc/objc/Makefile.in
+++ /dev/null
@@ -1,73 +0,0 @@
-#  GNU Objective C frontend Makefile
-#  Copyright (C) 1993, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-#
-#  This file is part of GNU CC.
-#
-#  GNU CC is free software; you can redistribute it and/or modify it under the
-#  terms of the GNU General Public License as published by the Free Software
-#  Foundation; either version 2, or (at your option) any later version.
-#
-#  GNU CC is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
-#  details.
-#
-#  You should have received a copy of the GNU General Public License along with
-#  GNU CC; see the file COPYING.  If not, write to the Free Software
-#  Foundation, 59 Temple Place - Suite 330,
-#  Boston, MA 02111-1307, USA.
-
-#  The Makefile built from this file lives in the objc language subdirectory.
-#  Its purpose is to provide support for:
-#
-#  1. recursion where necessary, and only then (building .o's), and
-#  2. building and debugging cc1objc from the language subdirectory.
-#
-#  The parent Makefile handles all other chores, with help from the language
-#  Makefile fragment.
-#
-#  The targets for external use are `all' and `mostlyclean'.
-
-SHELL=/bin/sh
-
-OPTIMIZE= -O
-
-srcdir = .
-VPATH = $(srcdir)
-
-AR = ar
-AR_FLAGS = rc
-
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary 
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
-
-# Definition of `all' is here so that new rules inserted by sed
-# do not specify the default target.
-all: all.indirect
-
-# sed inserts variable overrides after the following line.
-####target overrides
-####host overrides
-####cross overrides
-####build overrides
-#
-
-# Now figure out from those variables how to compile and link.
-all.indirect: Makefile frontend
-
-frontend:
-	cd ..; $(MAKE) cc1obj$(exeext)
-
-Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
-	cd ..; $(SHELL) config.status
-
-mostlyclean:
-	-rm -f *.o xforward fflags
-clean: mostlyclean
-distclean: mostlyclean
-extraclean: mostlyclean
-
-# For Sun VPATH.
-