This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] garbage collect bootstrap-related rules in gcc
- From: Paolo Bonzini <paolo dot bonzini at lu dot unisi dot ch>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 04 Jan 2007 09:46:08 +0100
- Subject: [PATCH] garbage collect bootstrap-related rules in gcc
These are useless since the libgcc patch went in.
Bootstrapped/regtested powerpc-darwin before the libgcc merge, will
commit after some more testing.
Paolo
2007-01-04 Paolo Bonzini <bonzini@gnu.org>
* configure.ac (strict1_warn): Rename to strict_warn.
(WERROR, --enable-werror, symlink hacks, stage1_cflags,
cc_set_by_configure, quoted_cc_set_by_configure,
stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
all_boot_languages, all_stagestuff): Remove.
(target_list): Remove bootstrap targets.
* Makefile.in (quickstrap): Unconditionally make a synonym of all.
(BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
stage1_copy, stage2_build, stage2_copy, stageprofile_build,
stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
*compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
(ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
(STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
(mostlyclean): Adjust.
(clean, distclean): Don't mention bootstrap stuff.
* ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
treelang/config-lang.in (stagestuff): Remove.
* doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
stageprofile, stagefeedback, stagestuff): Remove mention.
Index: configure.ac
===================================================================
--- configure.ac (revision 120429)
+++ configure.ac (working copy)
@@ -349,11 +349,11 @@ AC_CACHE_CHECK(
CFLAGS="$save_CFLAGS"
])
-strict1_warn=
+strict_warn=
if test $ac_cv_prog_cc_w_no_long_long = yes \
&& test $ac_cv_prog_cc_w_no_variadic_macros = yes \
&& test $ac_cv_prog_cc_w_no_overlength_strings = yes ; then
- strict1_warn="-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings"
+ strict_warn="-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings"
fi
# Add -Wold-style-definition if it's accepted
@@ -368,7 +368,7 @@ AC_CACHE_CHECK(
CFLAGS="$save_CFLAGS"
])
if test $ac_cv_prog_cc_w_old_style_definition = yes ; then
- strict1_warn="${strict1_warn} -Wold-style-definition"
+ strict_warn="${strict_warn} -Wold-style-definition"
fi
# Add -Wmissing-format-attribute if it's accepted
@@ -383,7 +383,7 @@ AC_CACHE_CHECK(
CFLAGS="$save_CFLAGS"
])
if test $ac_cv_prog_cc_w_missing_format_attribute = yes ; then
- strict1_warn="${strict1_warn} -Wmissing-format-attribute"
+ strict_warn="${strict_warn} -Wmissing-format-attribute"
fi
# Enable -Werror, period.
@@ -391,11 +391,9 @@ AC_ARG_ENABLE(werror_always,
[ --enable-werror-always enable -Werror always], [],
[enable_werror_always=no])
if test x${enable_werror_always} = xyes ; then
- strict1_warn="${strict1_warn} -Werror"
- WERROR=-Werror
+ strict_warn="${strict_warn} -Werror"
fi
-
-AC_SUBST(strict1_warn)
+AC_SUBST(strict_warn)
# Get C++ compatibility warning flag, if supported.
AC_CACHE_CHECK(
@@ -423,26 +421,12 @@ if test "x$GCC" = "xyes"; then
fi
AC_SUBST(warn_cflags)
-# Enable -Werror in bootstrap stage2 and later.
+# Enable expensive internal checks
is_release=
if test x"`cat $srcdir/DEV-PHASE`" != xexperimental; then
is_release=yes
fi
-AC_ARG_ENABLE(werror,
-[ --enable-werror enable -Werror in bootstrap stage2 and later], [],
-[if test x$is_release = x ; then
- # Default to "yes" on development branches.
- enable_werror=yes
-else
- # Default to "no" on release branches.
- enable_werror=no
-fi])
-if test x$enable_werror = xyes ; then
- WERROR=-Werror
-fi
-AC_SUBST(WERROR)
-# Enable expensive internal checks
AC_ARG_ENABLE(checking,
[ --enable-checking[=LIST]
enable expensive run-time checks. With LIST,
@@ -972,19 +956,6 @@ AC_C_BIGENDIAN
# UNSORTED
# --------
-# Stage specific cflags for build.
-stage1_cflags=
-case $build in
-vax-*-*)
- if test x$GCC = xyes
- then
- stage1_cflags="-Wa,-J"
- else
- stage1_cflags="-J"
- fi
- ;;
-esac
-AC_SUBST(stage1_cflags)
# These libraries may be used by collect2.
# We may need a special search path to get them linked.
@@ -1628,25 +1599,6 @@ do
done
tmake_file="${tmake_file_}"
-# If the host doesn't support symlinks, modify CC in
-# FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
-# Otherwise, we can use "CC=$(CC)".
-rm -f symtest.tem
-case "$LN_S" in
- *-s*)
- cc_set_by_configure="\$(CC)"
- quoted_cc_set_by_configure="\$(CC)"
- stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
- quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
- ;;
- *)
- cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
- quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
- stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
- quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`"
- ;;
-esac
-
# This is a terrible hack which will go away some day.
host_cc_for_libada=${CC}
AC_SUBST(host_cc_for_libada)
@@ -3467,9 +3419,7 @@ lang_tree_files=
# These (without "all_") are set in each config-lang.in.
# `language' must be a single word so is spelled singularly.
all_languages=
-all_boot_languages=
all_compilers=
-all_stagestuff=
all_outputs='Makefile gccbug libada-mk'
# List of language makefile fragments.
all_lang_makefrags=
@@ -3520,7 +3470,6 @@ changequote([,])dnl
language=
boot_language=
compilers=
- stagestuff=
outputs=
gtfiles=
subdir_requires=
@@ -3555,12 +3504,7 @@ changequote([,])dnl
then all_lang_makefiles="$subdir/Makefile"
fi
all_languages="$all_languages $language"
- if test "x$boot_language" = xyes
- then
- all_boot_languages="$all_boot_languages $language"
- fi
all_compilers="$all_compilers $compilers"
- all_stagestuff="$all_stagestuff $stagestuff"
all_outputs="$all_outputs $outputs"
all_gtfiles="$all_gtfiles $gtfiles"
for f in $gtfiles
@@ -3595,8 +3539,7 @@ touch Make-hooks
target_list="all.cross start.encap rest.encap tags \
install-common install-man install-info dvi pdf html \
uninstall info man srcextra srcman srcinfo \
- mostlyclean clean distclean maintainer-clean \
- stage1 stage2 stage3 stage4 stageprofile stagefeedback"
+ mostlyclean clean distclean maintainer-clean"
for t in $target_list
do
@@ -3710,7 +3653,6 @@ AC_SUBST(htmldir)
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
-AC_SUBST(all_boot_languages)
AC_SUBST(all_compilers)
AC_SUBST(all_gtfiles)
AC_SUBST(all_gtfiles_files_langs)
@@ -3719,15 +3661,12 @@ AC_SUBST(all_lang_makefrags)
AC_SUBST(all_lang_makefiles)
AC_SUBST(all_languages)
AC_SUBST(all_selected_languages)
-AC_SUBST(all_stagestuff)
AC_SUBST(build_exeext)
AC_SUBST(build_install_headers_dir)
AC_SUBST(build_xm_file_list)
AC_SUBST(build_xm_include_list)
AC_SUBST(build_xm_defines)
AC_SUBST(check_languages)
-AC_SUBST(cc_set_by_configure)
-AC_SUBST(quoted_cc_set_by_configure)
AC_SUBST(cpp_install_dir)
AC_SUBST(xmake_file)
AC_SUBST(tmake_file)
@@ -3754,8 +3693,6 @@ AC_SUBST(md_file)
AC_SUBST(objc_boehm_gc)
AC_SUBST(out_file)
AC_SUBST(out_object_file)
-AC_SUBST(stage_prefix_set_by_configure)
-AC_SUBST(quoted_stage_prefix_set_by_configure)
AC_SUBST(thread_file)
AC_SUBST(tm_file_list)
AC_SUBST(tm_include_list)
@@ -3810,26 +3747,6 @@ for d in $subdirs doc build
do
test -d $d || mkdir $d
done
-# If the host supports symlinks, point stage[1234] at ../stage[1234] 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.
-# This is virtually a duplicate of what happens in configure.lang; we do
-# an extra check to make sure this only happens if ln -s can be used.
-case "$LN_S" in
- *-s*)
- for d in ${subdirs} ; do
- STARTDIR=`${PWDCMD-pwd}`
- cd $d
- for t in stage1 stage2 stage3 stage4 stageprofile stagefeedback include
- do
- rm -f $t
- $LN_S ../$t $t 2>/dev/null
- done
- cd $STARTDIR
- done
- ;;
-esac
],
[subdirs='$subdirs'])
AC_OUTPUT
Index: Makefile.in
===================================================================
--- Makefile.in (revision 120429)
+++ Makefile.in (working copy)
@@ -24,14 +24,17 @@
# The targets for external use include:
# all, doc, proto, install, install-cross, install-cross-rest,
-# uninstall, TAGS, mostlyclean, clean, distclean, maintainer-clean,
-# stage1, stage2, stage3, stage4.
+# uninstall, TAGS, mostlyclean, clean, distclean, maintainer-clean.
# This is the default target.
# Set by autoconf to "all.internal" for a native build, or
# "all.cross" to build a cross compiler.
all: @ALL@
+# Provide quickstrap as a target that people can type into the gcc directory,
+# and that fails if you're not into it.
+quickstrap: all
+
# Depend on this to specify a phony target portably.
force:
@@ -136,27 +139,14 @@ SUBDIRS =@subdirs@ build
CONFIG_LANGUAGES = @all_selected_languages@
LANGUAGES = c gcov$(exeext) gcov-dump$(exeext) $(CONFIG_LANGUAGES)
-# Selection of languages to be made during stage1 build.
-BOOT_LANGUAGES = c @all_boot_languages@
-
# Various ways of specifying flags for compilations:
# CFLAGS is for the user to override to, e.g., do a cross build with -O2.
-# For recursive bootstrap builds CFLAGS is used to pass in STAGE1_CFLAGS
-# or BOOT_CFLAGS
-# STAGE1_CFLAGS is set by configure on some targets or passed from toplevel
-# and sets the CFLAGS passed to stage1 of a bootstrap compilation.
-# STAGE1_CHECKING enables checking for the stage1 compiler
-# BOOT_CFLAGS is the value of CFLAGS to pass to the stage2, stage3 and stage4
-# bootstrap compilations.
# 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 = @CFLAGS@
LDFLAGS = @LDFLAGS@
-STAGE1_CFLAGS = -g @stage1_cflags@
-STAGE1_CHECKING_CFLAGS = -DENABLE_CHECKING -DENABLE_ASSERT_CHECKING
-BOOT_CFLAGS = -g -O2
# Flags to determine code coverage. When coverage is disabled, this will
# contain the optimization flags, as you normally want code coverage
@@ -164,7 +154,7 @@ BOOT_CFLAGS = -g -O2
COVERAGE_FLAGS = @coverage_flags@
coverageexts = .{gcda,gcno}
-# The warning flags are separate from BOOT_CFLAGS because people tend to
+# The warning flags are separate from 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
@@ -172,18 +162,12 @@ coverageexts = .{gcda,gcno}
# 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
+# STRICT_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 or
-# -Wno-variadic-macros.
+# with other compilers.
# CXX_COMPAT_WARN are C++ source compatibility warnings.
LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-STRICT_WARN = @strict1_warn@
-WERROR_FLAGS = @WERROR@
-STRICT2_WARN = -pedantic -Wno-long-long -Wno-variadic-macros \
- -Wno-overlength-strings -Wold-style-definition -Wmissing-format-attribute \
- $(WERROR_FLAGS)
+STRICT_WARN = @strict_warn@
CXX_COMPAT_WARN = @cxx_compat_warn@
# This is set by --enable-checking. The idea is to catch forgotten
@@ -279,7 +263,6 @@ STAMP = echo timestamp >
# Make sure the $(MAKE) variable is defined.
@SET_MAKE@
-REMAKEFLAGS=LANGUAGES="$(LANGUAGES)" BOOT_CFLAGS="$(BOOT_CFLAGS)"
# Locate mkinstalldirs.
mkinstalldirs=$(SHELL) $(srcdir)/../mkinstalldirs
@@ -874,12 +857,9 @@ INCLUDES = -I. -I$(@D) -I$(srcdir) -I$(s
LANG_MAKEFRAGS = @all_lang_makefrags@
LANG_MAKEFILES = @all_lang_makefiles@
-LANG_STAGESTUFF = @all_stagestuff@
# Flags to pass to recursive makes.
-# CC is set by configure. Hosts without symlinks need special handling
-# because we need CC="stage1/xgcc -Bstage1/" to work in the language
-# subdirectories.
+# CC is set by configure.
# ??? The choices here will need some experimenting with.
export AR_FOR_TARGET
@@ -901,7 +881,7 @@ export RANLIB_FOR_TARGET
export libsubdir
export slibdir
-ORDINARY_FLAGS_TO_PASS = \
+FLAGS_TO_PASS = \
"BISON=$(BISON)" \
"BISONFLAGS=$(BISONFLAGS)" \
"CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
@@ -927,17 +907,6 @@ ORDINARY_FLAGS_TO_PASS = \
"libexecsubdir=$(libsubdir)" \
"datadir=$(datadir)" \
"localedir=$(localedir)"
-FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) "CC=@cc_set_by_configure@" \
- "STAGE_PREFIX=@stage_prefix_set_by_configure@"
-PREPEND_DOTDOT_TO_RELATIVE_PATHS = sed \
- -e 's|^ *[^ /][^ /]*/|%&|' \
- -e 's| -B| -B%|g' \
- -e 's|% *[^- /]|%&|g' \
- -e 's|%% *|../|g' \
- -e 's|%||g'
-SUBDIR_FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) \
- "CC=`echo @quoted_cc_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`" \
- "STAGE_PREFIX=`echo @quoted_stage_prefix_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`"
#
# Lists of files for various purposes.
@@ -1024,23 +993,18 @@ OBJS-onestep = libbackend.o $(OBJS-archi
BACKEND = main.o @TREEBROWSER@ libbackend.a $(CPPLIB) $(LIBDECNUMBER)
-# Files to be copied after each stage in building.
-STAGECOPYSTUFF = insn-flags.h insn-config.h insn-codes.h \
+MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \
insn-output.c insn-recog.c insn-emit.c insn-extract.c insn-peep.c \
insn-attr.h insn-attrtab.c insn-opinit.c insn-preds.c insn-constants.h \
tm-preds.h tm-constrs.h \
tree-check.h min-insn-modes.c insn-modes.c insn-modes.h \
- genrtl.c genrtl.h gt-*.h gtype-*.h gtype-desc.c gtyp-gen.h
-
-# Files to be moved away after each stage in building.
-STAGEMOVESTUFF = *$(objext) s-* \
+ genrtl.c genrtl.h gt-*.h gtype-*.h gtype-desc.c gtyp-gen.h \
xgcc$(exeext) cpp$(exeext) cc1$(exeext) cc1*-dummy$(exeext) $(EXTRA_PASSES) \
$(EXTRA_PARTS) $(EXTRA_PROGRAMS) gcc-cross$(exeext) \
protoize$(exeext) unprotoize$(exeext) \
$(SPECS) collect2$(exeext) \
gcov-iov$(build_exeext) gcov$(exeext) gcov-dump$(exeext) \
- *.[0-9][0-9].* *.[si] *-checksum.c libbackend.a libgcc.mk \
- $(LANG_STAGESTUFF)
+ *.[0-9][0-9].* *.[si] *-checksum.c libbackend.a libgcc.mk
# Defined in libgcc2.c, included only in the static library.
LIB2FUNCS_ST = _eprintf __gcc_bcmp
@@ -1102,7 +1066,6 @@ LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udi
# install-common, install-info, install-man,
# uninstall,
# mostlyclean, clean, distclean, maintainer-clean,
-# stage1, stage2, stage3, stage4
#
# Each language is linked in with a series of hooks. The name of each
# hooked is "lang.${target_name}" (eg: lang.info). Configure computes
@@ -3522,7 +3485,7 @@ fsf-funding.pod: funding.texi
# (less duplicated code).
mostlyclean: lang.mostlyclean
- -rm -f $(STAGECOPYSTUFF) $(STAGEMOVESTUFF)
+ -rm -f $(MOSTLYCLEANFILES)
-rm -f *$(coverageexts)
-rm -rf libgcc
# Delete build programs
@@ -3580,11 +3543,6 @@ clean: mostlyclean lang.clean
else if [ "x$(MULTILIB_OPTIONS)" != x ] ; then \
rm -rf `echo $(MULTILIB_OPTIONS) | sed -e 's/\// /g'`; \
fi ; fi
- -rm -fr stage1 stage2 stage3 stage4 stageprofile stagefeedback
-# Delete stamps of bootstrap stages
- -rm -f stage?_*
- -rm -f clean?_*
- -rm -f stage_last
# Delete all files that users would normally create
# while building and installing GCC.
@@ -3595,7 +3553,6 @@ distclean: clean lang.distclean
-rm -f Make-lang Make-hooks Make-host Make-target
-rm -f Makefile *.oaux
-rm -f gthr-default.h
- -rm -f */stage1 */stage2 */stage3 */stage4 */include */stageprofile */stagefeedback
-rm -f TAGS */TAGS
-rm -f *.asm
-rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak
@@ -4102,547 +4059,6 @@ TAGS: lang.tags
etags -o TAGS.sub *.y *.h *.c; \
etags --include TAGS.sub $$incs)
-# ------------------------------------------------------
-# Bootstrap-related targets (not used during 'make all')
-# ------------------------------------------------------
-
-# A list of files to be destroyed during "lean" builds.
-VOL_FILES=`echo $(BACKEND) $(OBJS) $(C_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.
-
-POSTSTAGE1_FLAGS_TO_PASS = \
- ADAFLAGS="$(BOOT_ADAFLAGS)" \
- CFLAGS="$(BOOT_CFLAGS)" \
- LDFLAGS="$(BOOT_LDFLAGS)" \
- WARN_CFLAGS="\$$(GCC_WARN_CFLAGS)" \
- STRICT_WARN="$(STRICT2_WARN)" \
- libdir=$(libdir) \
- LANGUAGES="$(LANGUAGES)" \
- MAKEINFO="$(MAKEINFO)" \
- MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \
- MAKEOVERRIDES= \
- OUTPUT_OPTION="-o \$$@"
-
-STAGE2_FLAGS_TO_PASS = \
- CFLAGS="$(BOOT_CFLAGS)" \
- WERROR="$(WERROR_FLAGS)" \
-
-STAGEPROFILE_FLAGS_TO_PASS = \
- CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"
-
-# Files never linked into the final executable produces warnings about missing
-# profile.
-STAGEFEEDBACK_FLAGS_TO_PASS = \
- CFLAGS="$(BOOT_CFLAGS) -fprofile-use -freorder-blocks-and-partition"
-
-# 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. STAGE1_CFLAGS (via CFLAGS),
-# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
-# overrideable (for a bootstrap build stage1 also builds gcc.info).
-# The stage1 compiler is always built with checking enabled.
-stage1_build:
- $(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" \
- CFLAGS="$(STAGE1_CFLAGS) $(STAGE1_CHECKING_CFLAGS)" \
- MAKEINFO="$(MAKEINFO)" MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \
- COVERAGE_FLAGS= OBJS-onestep="$(OBJS)"
- $(STAMP) stage1_build
- echo stage1_build > stage_last
-
-stage1_copy: stage1_build
- $(MAKE) stage1
- $(STAMP) stage1_copy
- echo stage2_build > stage_last
-
-stage2_build: stage1_copy
- $(MAKE) CC="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \
- STAGE_PREFIX=stage1/ \
- $(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGE2_FLAGS_TO_PASS)
- $(STAMP) stage2_build
- echo stage2_build > stage_last
-
-stage2_copy: stage2_build
- $(MAKE) stage2
- $(STAMP) stage2_copy
- echo stage3_build > stage_last
-
-stageprofile_build: stage1_copy
- $(MAKE) CC="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \
- STAGE_PREFIX=stage1/ \
- $(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGEPROFILE_FLAGS_TO_PASS)
- $(STAMP) stageprofile_build
- echo stageprofile_build > stage_last
-
-stageprofile_copy: stageprofile_build
- $(MAKE) stageprofile
- $(STAMP) stageprofile_copy
- echo stagefeedback_build > stage_last
-
-stage3_build: stage2_copy
- $(MAKE) CC="$(STAGE_CC_WRAPPER) stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" \
- STAGE_PREFIX=stage2/ \
- $(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGE2_FLAGS_TO_PASS)
- $(STAMP) stage3_build
- echo stage3_build > stage_last
-
-stagefeedback_build: stageprofile_copy stage1_copy
- $(MAKE) CC="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \
- STAGE_PREFIX=stage1/ \
- $(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGEFEEDBACK_FLAGS_TO_PASS)
- $(STAMP) stagefeedback_build
- echo stagefeedback_build > stage_last
-
-stagefeedback_copy: stagefeedback_build
- $(MAKE) stagefeedback
- $(STAMP) stagefeedback_copy
- echo stagefeedback2_build > stage_last
-
-# For bootstrap4:
-stage3_copy: stage3_build
- $(MAKE) stage3
- $(STAMP) stage3_copy
- echo stage4_build > stage_last
-
-stage4_build: stage3_copy
- $(MAKE) CC="$(STAGE_CC_WRAPPER) stage3/xgcc$(exeext) -Bstage3/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage3/xgcc$(exeext) -Bstage3/ -B$(build_tooldir)/bin/" \
- STAGE_PREFIX=stage3/ \
- $(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGE2_FLAGS_TO_PASS)
- $(STAMP) stage4_build
- echo stage4_build > stage_last
-
-# Additional steps for *-lean targets:
-clean_s1: stage1_copy
- -(cd stage1 && rm -f $(VOL_FILES))
- $(STAMP) clean_s1
-
-clean_s2: stage2_copy
- -rm -rf stage1
- $(STAMP) clean_s2
-
-# The various entry points for bootstrapping.
-
-bootstrap: stage3_build
- @echo
- @echo Bootstrap complete - make \"quickstrap\" to redo last build,
- @echo \"restage1\" through \"restage3\" to rebuild specific stages,
- @echo \"restrap\" to redo the bootstrap from stage1, or
- @echo \"cleanstrap\" to redo the bootstrap from scratch.
-
-bootstrap-lean : clean_s1 clean_s2 stage3_build
- @echo
- @echo Bootstrap complete - make \"quickstrap\" to redo last build,
- @echo or \"cleanstrap\" to redo the bootstrap from scratch.
-
-bootstrap2: bootstrap
-
-bootstrap2-lean : bootstrap-lean
-
-bootstrap3 bootstrap3-lean: bootstrap
-
-bootstrap4 bootstrap4-lean: stage4_build
-
-unstage1 unstage2 unstage3 unstage4 unstageprofile unstagefeedback:
- -set -vx; stage=`echo $@ | sed -e 's/un//'`; \
- rm -f $$stage/as$(exeext); \
- rm -f $$stage/nm$(exeext); \
- rm -f $$stage/collect-ld$(exeext); \
- if test -d $$stage; then \
- mv $$stage/specs $(SPECS) 2>/dev/null || :; \
- mv $$stage/* . 2>/dev/null; \
- for i in `cd $$stage; echo *` ; do \
- if test -d $$stage/$$i; then \
- mv $$stage/$$i/* $$i/. 2>/dev/null; \
- else \
- mv $$stage/$$i .; \
- fi; \
- done \
- fi ; \
- rm -f $${stage}_build $${stage}_copy ;\
- echo $${stage}_build > stage_last
-
-restage1: unstage1
- $(MAKE) $(REMAKEFLAGS) stage1_build
-
-restage2: unstage2
- $(MAKE) $(REMAKEFLAGS) stage2_build
-
-restage3: unstage3
- $(MAKE) $(REMAKEFLAGS) stage3_build
-
-restage4: unstage4
- $(MAKE) $(REMAKEFLAGS) stage4_build
-
-restageprofile: unstageprofile
- $(MAKE) $(REMAKEFLAGS) stageprofile_build
-
-restagefeedback: unstagefeedback
- $(MAKE) $(REMAKEFLAGS) stagefeedback_build
-
-# Bubble up a bugfix through all the stages. Primarily useful for fixing
-# bugs that cause the compiler to crash while building stage 2.
-bubblestrap:
- if test -f stage_last; then \
- LAST=`sed -e 's/_build//' < stage_last`; \
- if test "$$LAST" != "stage1"; then \
- $(MAKE) $(REMAKEFLAGS) $$LAST; \
- $(STAMP) $${LAST}_copy; \
- fi; \
- fi
- if test -f stage1_copy; then $(MAKE) unstage1; fi
- $(MAKE) $(REMAKEFLAGS) stage1_copy
- if test -f stage2_copy; then $(MAKE) unstage2; fi
- $(MAKE) $(REMAKEFLAGS) stage2_copy
- if test -f stage3_copy; then $(MAKE) unstage3; fi
- $(MAKE) $(REMAKEFLAGS) stage3_build
- if test -f stage4_copy; then \
- $(MAKE) $(REMAKEFLAGS) stage3_copy; $(MAKE) unstage4; \
- $(MAKE) $(REMAKEFLAGS) stage4_build || exit 1; \
- fi
-
-BOOTSTRAPPING := $(shell if test -f ../stage_last; then echo yes; else echo no; fi)
-ifeq ($(BOOTSTRAPPING),yes)
-# Provide quickstrap as a target that people can type into the gcc directory,
-# and that fails if you're not into it.
-quickstrap: all
-else
-quickstrap:
- if test -f stage_last ; then \
- LAST=`cat stage_last`; rm $$LAST; $(MAKE) $(REMAKEFLAGS) $$LAST; \
- else \
- $(MAKE) $(REMAKEFLAGS) stage1_build; \
- fi
-endif
-
-cleanstrap:
- -$(MAKE) clean
- $(MAKE) $(REMAKEFLAGS) bootstrap
-
-unstrap:
- -rm -rf stage[234]*
- $(MAKE) unstage1
- -rm -f stage_last
-
-# Differs from cleanstrap in that it starts from the earlier stage1 build,
-# not from scratch.
-restrap:
- $(MAKE) unstrap
- $(MAKE) $(REMAKEFLAGS) bootstrap
-
-# These targets compare the object files in the current directory with
-# those in a stage directory. We need to skip the first N bytes of
-# each object file. The "slow" mechanism assumes nothing special
-# about cmp and uses the tail command to skip. ./ avoids a bug in
-# some versions of tail. The "gnu" targets use gnu cmp (diffutils
-# v2.4 or later), to avoid running tail and the overhead of twice
-# copying each object file. Likewise, the "fast" targets use the skip
-# parameter of cmp available on some systems to accomplish the same
-# thing. An exit status of 1 is precisely the result we're looking
-# for (other values mean other problems).
-slowcompare slowcompare3 slowcompare4 slowcompare-lean slowcompare3-lean slowcompare4-lean \
-fastcompare fastcompare3 fastcompare4 fastcompare-lean fastcompare3-lean fastcompare4-lean \
- gnucompare gnucompare3 gnucompare4 gnucompare-lean gnucompare3-lean gnucompare4-lean: force
- -rm -f .bad_compare
- case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
- for dir in . $(SUBDIRS) libgcc; do \
- if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
- for file in $$dir/*$(objext); do \
- case "$@" in \
- slowcompare* ) \
- if tail -c +1 </dev/null >/dev/null 2>&1; then \
- skip16='-c +17'; \
- else \
- skip16='+17c'; \
- fi; \
- tail $$skip16 ./$$file > tmp-foo1; \
- tail $$skip16 stage$$stage/$$file > tmp-foo2; \
- cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1; \
- cmpret=$$?; \
- ;; \
- fastcompare* ) \
- cmp $$file stage$$stage/$$file 16 16 > /dev/null 2>&1; \
- cmpret=$$?; \
- ;; \
- gnucompare* ) \
- cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1; \
- cmpret=$$?; \
- ;; \
- esac ; \
- if test $$cmpret -eq 1; then \
- case $$file in \
- ./cc*-checksum$(objext) | libgcc/* ) \
- echo warning: $$file differs;; \
- *) \
- echo $$file differs >> .bad_compare;; \
- esac ; \
- fi; \
- done; \
- else true; fi; \
- done
- -rm -f tmp-foo*
- case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
- if [ -f .bad_compare ]; then \
- echo "Bootstrap comparison failure!"; \
- cat .bad_compare; \
- exit 1; \
- else \
- case "$@" in \
- *-lean ) rm -rf stage$$stage ;; \
- *) ;; \
- esac; true; \
- fi
-
-# Forwarding wrappers to the most appropriate version.
-compare: @make_compare_target@
-compare3: @make_compare_target@3
-compare4: @make_compare_target@4
-compare-lean: @make_compare_target@-lean
-compare3-lean: @make_compare_target@3-lean
-compare4-lean: @make_compare_target@4-lean
-
-# Copy the object files from a particular stage into a subdirectory.
-stage1-start:
- -if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage1
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stage1/$$dir ] ; then true ; else mkdir stage1/$$dir ; fi ; \
- done
- -rm -f stage1/libgcc.a stage1/libgcc_eh.a stage1/libgcov.a
- -rm -f stage1/libgcc_s*$(SHLIB_EXT)
- -rm -f stage1/libunwind.a stage1/libunwind*$(SHLIB_EXT)
-# If SPECS is overridden, make sure it is `installed' as specs.
- -mv $(SPECS) stage1/specs
- -mv $(STAGEMOVESTUFF) stage1
- -mv build/* stage1/build
- -cp -p $(STAGECOPYSTUFF) stage1
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stage1 && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -cp libgcc.a stage1
- -$(RANLIB_FOR_TARGET) stage1/libgcc.a
- -cp libgcov.a stage1
- -$(RANLIB_FOR_TARGET) stage1/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage1; \
- $(RANLIB_FOR_TARGET) stage1/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stage1
- -cp libunwind.a libunwind*$(SHLIB_EXT) stage1
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stage1/$${f} . ; \
- else true; \
- fi; done
-stage1: force stage1-start lang.stage1
- -for dir in . $(SUBDIRS) ; \
- do \
- rm -f $$dir/*$(coverageexts) ; \
- done
-
-stage2-start:
- -if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage2
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stage2/$$dir ] ; then true ; else mkdir stage2/$$dir ; fi ; \
- done
- -rm -f stage2/libgcc.a stage2/libgcov.a stage2/libgcc_eh.a
- -rm -f stage2/libgcc_s*$(SHLIB_EXT)
- -rm -f stage2/libunwind.a stage2/libunwind*$(SHLIB_EXT)
-# If SPECS is overridden, make sure it is `installed' as specs.
- -mv $(SPECS) stage2/specs
- -mv $(STAGEMOVESTUFF) stage2
- -mv build/* stage2/build
- -cp -p $(STAGECOPYSTUFF) stage2
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stage2 && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -cp libgcc.a stage2
- -$(RANLIB_FOR_TARGET) stage2/libgcc.a
- -cp libgcov.a stage2
- -$(RANLIB_FOR_TARGET) stage2/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage2; \
- $(RANLIB_FOR_TARGET) stage2/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stage2
- -cp libunwind.a libunwind*$(SHLIB_EXT) stage2
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stage2/$${f} . ; \
- else true; \
- fi; done
-stage2: force stage2-start lang.stage2
-
-stage3-start:
- -if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage3
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stage3/$$dir ] ; then true ; else mkdir stage3/$$dir ; fi ; \
- done
- -rm -f stage3/libgcc.a stage3/libgcov.a stage3/libgcc_eh.a
- -rm -f stage3/libgcc_s*$(SHLIB_EXT)
- -rm -f stage3/libunwind.a stage3/libunwind*$(SHLIB_EXT)
-# If SPECS is overridden, make sure it is `installed' as specs.
- -mv $(SPECS) stage3/specs
- -mv $(STAGEMOVESTUFF) stage3
- -mv build/* stage3/build
- -cp -p $(STAGECOPYSTUFF) stage3
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stage3 && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -cp libgcc.a stage3
- -$(RANLIB_FOR_TARGET) stage3/libgcc.a
- -cp libgcov.a stage3
- -$(RANLIB_FOR_TARGET) stage3/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage3; \
- $(RANLIB_FOR_TARGET) stage3/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stage3
- -cp libunwind.a libunwind*$(SHLIB_EXT) stage3
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stage3/$${f} . ; \
- else true; \
- fi; done
-stage3: force stage3-start lang.stage3
-
-stage4-start:
- -if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage4
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stage4/$$dir ] ; then true ; else mkdir stage4/$$dir ; fi ; \
- done
- -rm -f stage4/libgcc.a stage4/libgcov.a stage4/libgcc_eh.a
- -rm -f stage4/libgcc_s*$(SHLIB_EXT)
- -rm -f stage4/libunwind.a stage4/libunwind*$(SHLIB_EXT)
-# If SPECS is overridden, make sure it is `installed' as specs.
- -mv $(SPECS) stage4/specs
- -mv $(STAGEMOVESTUFF) stage4
- -mv build/* stage4/build
- -cp -p $(STAGECOPYSTUFF) stage4
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stage4 && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -cp libgcc.a stage4
- -$(RANLIB_FOR_TARGET) stage4/libgcc.a
- -cp libgcov.a stage4
- -$(RANLIB_FOR_TARGET) stage4/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage4; \
- $(RANLIB_FOR_TARGET) stage4/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stage4
- -cp libunwind.a libunwind*$(SHLIB_EXT) stage4
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stage4/$${f} . ; \
- else true; \
- fi; done
-stage4: force stage4-start lang.stage4
-
-stageprofile-start:
- -if [ -d stageprofile ] ; then true ; else mkdir stageprofile ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stageprofile
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stageprofile/$$dir ] ; then true ; else mkdir stageprofile/$$dir ; fi ; \
- done
- -rm -f stageprofile/libgcc.a stageprofile/libgcov.a stageprofile/libgcc_eh.a
- -rm -f stageprofile/libgcc_s*$(SHLIB_EXT)
- -rm -f stageprofile/libunwind.a stageprofile/libunwind*$(SHLIB_EXT)
- -mv $(STAGEMOVESTUFF) stageprofile
- -mv build/* stageprofile/build
- -cp -p $(STAGECOPYSTUFF) stageprofile
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stageprofile && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stageprofile && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stageprofile && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -cp libgcc.a stageprofile
- -$(RANLIB_FOR_TARGET) stageprofile/libgcc.a
- -cp libgcov.a stageprofile
- -$(RANLIB_FOR_TARGET) stageprofile/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stageprofile; \
- $(RANLIB_FOR_TARGET) stageprofile/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stageprofile
- -cp libunwind.a libunwind*$(SHLIB_EXT) stageprofile
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stageprofile/$${f} . ; \
- else true; \
- fi; done
-stageprofile: force stageprofile-start lang.stageprofile
-
-stagefeedback-start:
- -if [ -d stagefeedback ] ; then true ; else mkdir stagefeedback ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stagefeedback
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stagefeedback/$$dir ] ; then true ; else mkdir stagefeedback/$$dir ; fi ; \
- done
- -rm -f stagefeedback/libgcc.a stagefeedback/libgcov.a stagefeedback/libgcc_eh.a
- -rm -f stagefeedback/libgcc_s*$(SHLIB_EXT)
- -rm -f stagefeedback/libunwind.a stagefeedback/libunwind*$(SHLIB_EXT)
- -rm -f *.da
- -mv $(STAGEMOVESTUFF) stagefeedback
- -mv build/* stagefeedback/build
- -cp -p $(STAGECOPYSTUFF) stagefeedback
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -for dir in fixinc po testsuite $(SUBDIRS); \
- do \
- rm -f $$dir/*.da ; \
- done
- -cp libgcc.a stagefeedback
- -$(RANLIB_FOR_TARGET) stagefeedback/libgcc.a
- -cp libgcov.a stagefeedback
- -$(RANLIB_FOR_TARGET) stagefeedback/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stagefeedback; \
- $(RANLIB_FOR_TARGET) stagefeedback/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stagefeedback
- -cp libunwind.a libunwind*$(SHLIB_EXT) stagefeedback
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stagefeedback/$${f} . ; \
- else true; \
- fi; done
-stagefeedback: force stagefeedback-start lang.stagefeedback
-
-# Copy just the executable files from a particular stage into a subdirectory,
-# and delete the object files. Use this if you're just verifying a version
-# that is pretty sure to work, and you are short of disk space.
-risky-stage1: stage1
- -$(MAKE) clean
-
-risky-stage2: stage2
- -$(MAKE) clean
-
-risky-stage3: stage3
- -$(MAKE) clean
-
-risky-stage4: stage4
- -$(MAKE) clean
-
-#In GNU Make, ignore whether `stage*' exists.
-.PHONY: stage1 stage2 stage3 stage4 clean maintainer-clean TAGS bootstrap
-.PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4
-.PHONY: stagefeedback stageprofile
-
# -----------------------------------------------------
# Rules for generating translated message descriptions.
# Disabled by autoconf if the tools are not available.
Index: ada/config-lang.in
===================================================================
--- ada/config-lang.in (revision 120429)
+++ ada/config-lang.in (working copy)
@@ -24,7 +24,6 @@
# language - name of language as it would appear in $(LANGUAGES)
# boot_language - "yes" if we need to build this language in stage1
# compilers - value to add to $(COMPILERS)
-# stagestuff - files to add to $(STAGESTUFF)
language="ada"
boot_language=yes
@@ -32,8 +31,6 @@ boot_language_boot_flags='ADAFLAGS="$(BO
compilers="gnat1\$(exeext)"
-stagestuff="gnatbind\$(exeext) gnat1\$(exeext)"
-
gtfiles="\$(srcdir)/ada/ada-tree.h \$(srcdir)/ada/gigi.h \$(srcdir)/ada/decl.c \$(srcdir)/ada/trans.c \$(srcdir)/ada/utils.c"
outputs=ada/Makefile
Index: cp/config-lang.in
===================================================================
--- cp/config-lang.in (revision 120429)
+++ cp/config-lang.in (working copy)
@@ -24,14 +24,11 @@
#
# language - name of language as it would appear in $(LANGUAGES)
# compilers - value to add to $(COMPILERS)
-# stagestuff - files to add to $(STAGESTUFF)
language="c++"
compilers="cc1plus\$(exeext)"
-stagestuff="g++\$(exeext) g++-cross\$(exeext) cc1plus\$(exeext)"
-
target_libs="target-libstdc++-v3"
gtfiles="\$(srcdir)/cp/rtti.c \$(srcdir)/cp/mangle.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-common.c \$(srcdir)/c-common.h \$(srcdir)/c-lex.c \$(srcdir)/c-pragma.c \$(srcdir)/cp/class.c \$(srcdir)/cp/cp-objcp-common.c"
Index: fortran/config-lang.in
===================================================================
--- fortran/config-lang.in (revision 120429)
+++ fortran/config-lang.in (working copy)
@@ -3,15 +3,12 @@
#
# language - name of language as it would appear in $(LANGUAGES)
# compilers - value to add to $(COMPILERS)
-# stagestuff - files to add to $(STAGESTUFF)
# diff_excludes - files to ignore when building diffs between two versions.
language="fortran"
compilers="f951\$(exeext)"
-stagestuff="gfortran\$(exeext) f951\$(exeext)"
-
target_libs=target-libgfortran
gtfiles="\$(srcdir)/fortran/f95-lang.c \$(srcdir)/fortran/trans-decl.c \$(srcdir)/fortran/trans-intrinsic.c \$(srcdir)/fortran/trans-io.c \$(srcdir)/fortran/trans-types.c \$(srcdir)/fortran/trans-types.h \$(srcdir)/fortran/trans.h \$(srcdir)/fortran/trans-const.h"
Index: java/config-lang.in
===================================================================
--- java/config-lang.in (revision 120429)
+++ java/config-lang.in (working copy)
@@ -28,14 +28,11 @@
#
# language - name of language as it would appear in $(LANGUAGES)
# compilers - value to add to $(COMPILERS)
-# stagestuff - files to add to $(STAGESTUFF)
language="java"
compilers="jc1\$(exeext) jvgenmain\$(exeext)"
-stagestuff="jc1\$(exeext) gcj\$(exeext) jvgenmain\$(exeext) gcjh\$(exeext) gjnih\$(exeext) jv-scan\$(exeext) jcf-dump\$(exeext)"
-
gtfiles="\$(srcdir)/java/java-tree.h \$(srcdir)/java/jcf.h \$(srcdir)/java/lex.h \$(srcdir)/java/parse.h \$(srcdir)/java/builtins.c \$(srcdir)/java/class.c \$(srcdir)/java/constants.c \$(srcdir)/java/decl.c \$(srcdir)/java/expr.c \$(srcdir)/java/jcf-parse.c \$(srcdir)/java/jcf-write.c \$(srcdir)/java/lang.c \$(srcdir)/java/mangle.c \$(srcdir)/java/parse.y \$(srcdir)/java/resource.c"
target_libs=${libgcj_saved}
Index: objc/config-lang.in
===================================================================
--- objc/config-lang.in (revision 120429)
+++ objc/config-lang.in (working copy)
@@ -24,14 +24,11 @@
#
# language - name of language as it would appear in $(LANGUAGES)
# compilers - value to add to $(COMPILERS)
-# stagestuff - files to add to $(STAGESTUFF)
language="objc"
compilers="cc1obj\$(exeext)"
-stagestuff="cc1obj\$(exeext)"
-
target_libs=target-libobjc
# Most of the object files for cc1obj actually come from C.
Index: objcp/config-lang.in
===================================================================
--- objcp/config-lang.in (revision 120429)
+++ objcp/config-lang.in (working copy)
@@ -24,14 +24,11 @@
#
# language - name of language as it would appear in $(LANGUAGES)
# compilers - value to add to $(COMPILERS)
-# stagestuff - files to add to $(STAGESTUFF)
language="obj-c++"
compilers="cc1objplus\$(exeext)"
-stagestuff=""
-
# Per GCC Steering Committee.
build_by_default="no"
Index: treelang/config-lang.in
===================================================================
--- treelang/config-lang.in (revision 120429)
+++ treelang/config-lang.in (working copy)
@@ -23,15 +23,12 @@
#
# language - name of language as it would appear in $(LANGUAGES)
# compilers - value to add to $(COMPILERS)
-# stagestuff - files to add to $(STAGESTUFF)
# diff_excludes - files to ignore when building diffs between two versions.
language="treelang"
compilers="tree1\$(exeext)"
-stagestuff=
-
diff_excludes="-x lex.c -x parse.c -x parse.h"
headers=
build_by_default="no"
Index: doc/sourcebuild.texi
===================================================================
--- doc/sourcebuild.texi (revision 120429)
+++ doc/sourcebuild.texi (working copy)
@@ -640,14 +640,6 @@ Users, standards, GNU Coding Standards},
targets. For GCC, @code{maintainer-clean} should delete
all generated files in the source directory that are not checked into
CVS, but should not delete anything checked into CVS@.
-@item stage1
-@itemx stage2
-@itemx stage3
-@itemx stage4
-@itemx stageprofile
-@itemx stagefeedback
-Move to the stage directory files not included in @code{stagestuff} in
-@file{config-lang.in} or otherwise moved by the main @file{Makefile}.
@end table
@item lang.opt
@@ -707,9 +699,6 @@ languages.
If defined, a space-separated list of compiler executables that will
be run by the driver. The names here will each end
with @samp{\$(exeext)}.
-@item stagestuff
-If defined, a space-separated list of files that should be moved to
-the @file{stage@var{n}} directories in each stage of bootstrap.
@item outputs
If defined, a space-separated list of files that should be generated
by @file{configure} substituting values in them. This mechanism can