diff --git a/ChangeLog b/ChangeLog index f9e684197ea..57d088df5ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2004-03-22 Nathanael Nerode + * Makefile.tpl (experimental top level bootstrap) Move stage1 + language setting from all- target to configure- target; disable + intermodule optimization in stage 1; prevent gratuitous rebuilds + of stage 1. + * Makefile.in: Regenerate. + * configure.in: Comma-separate stage 1 language list for top + level bootstrap. + * configure: Regenerate. + * Makefile.tpl: Clean up experimental top level bootstrap support: note known problems; set CONFIG_SHELL; don't set BUILD_CC; relocate prev-gcc in configure- targets as well as all- targets. diff --git a/Makefile.in b/Makefile.in index dff7fde6237..7e2cf55501f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -23777,7 +23777,11 @@ STAMP = echo timestamp > STAGE1_CFLAGS=@stage1_cflags@ STAGE1_LANGUAGES=@stage1_languages@ -# TODO: deal with OBJS-onestep +# For stage 1: +# * we force-disable intermodule optimizations, even if +# --enable-intermodule was passed. Luckily, autoconf always accepts +# the last* argument when conflicting --enable arguments are passed. +# * we build only C (and possibly Ada). configure-stage1-gcc: echo configure-stage1-gcc > stage_last ; \ if [ -f stage1-gcc/Makefile ] ; then \ @@ -23820,19 +23824,26 @@ configure-stage1-gcc: libsrcdir="$$s/gcc";; \ esac; \ $(SHELL) $${libsrcdir}/configure \ - $(HOST_CONFIGARGS) $${srcdiroption} ; \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + --disable-intermodule \ + --enable-languages="$(STAGE1_LANGUAGES)"; \ cd .. ; \ mv gcc stage1-gcc ; \ $(STAMP) configure-stage1-gcc -all-stage1-gcc: configure-stage1-gcc all-bootstrap +# Real targets act phony if they depend on phony targets; this hack +# prevents gratuitous rebuilding of stage 1. +prebootstrap: + $(MAKE) all-bootstrap + $(STAMP) prebootstrap + +all-stage1-gcc: configure-stage1-gcc prebootstrap echo all-stage1-gcc > stage_last ; \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ mv stage1-gcc gcc ; \ cd gcc && \ $(MAKE) $(GCC_FLAGS_TO_PASS) \ - LANGUAGES="$(STAGE1_LANGUAGES)" \ CFLAGS="$(STAGE1_CFLAGS)" \ COVERAGE_FLAGS= || exit 1 ; \ cd .. ; \ diff --git a/Makefile.tpl b/Makefile.tpl index a44cc401134..de8559446a6 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -1294,7 +1294,11 @@ STAMP = echo timestamp > STAGE1_CFLAGS=@stage1_cflags@ STAGE1_LANGUAGES=@stage1_languages@ -# TODO: deal with OBJS-onestep +# For stage 1: +# * we force-disable intermodule optimizations, even if +# --enable-intermodule was passed. Luckily, autoconf always accepts +# the last* argument when conflicting --enable arguments are passed. +# * we build only C (and possibly Ada). configure-stage1-gcc: echo configure-stage1-gcc > stage_last ; \ if [ -f stage1-gcc/Makefile ] ; then \ @@ -1337,19 +1341,26 @@ configure-stage1-gcc: libsrcdir="$$s/gcc";; \ esac; \ $(SHELL) $${libsrcdir}/configure \ - $(HOST_CONFIGARGS) $${srcdiroption} ; \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + --disable-intermodule \ + --enable-languages="$(STAGE1_LANGUAGES)"; \ cd .. ; \ mv gcc stage1-gcc ; \ $(STAMP) configure-stage1-gcc -all-stage1-gcc: configure-stage1-gcc all-bootstrap +# Real targets act phony if they depend on phony targets; this hack +# prevents gratuitous rebuilding of stage 1. +prebootstrap: + $(MAKE) all-bootstrap + $(STAMP) prebootstrap + +all-stage1-gcc: configure-stage1-gcc prebootstrap echo all-stage1-gcc > stage_last ; \ r=`${PWD_COMMAND}`; export r; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ mv stage1-gcc gcc ; \ cd gcc && \ $(MAKE) $(GCC_FLAGS_TO_PASS) \ - LANGUAGES="$(STAGE1_LANGUAGES)" \ CFLAGS="$(STAGE1_CFLAGS)" \ COVERAGE_FLAGS= || exit 1 ; \ cd .. ; \ diff --git a/configure b/configure index fc897117ef3..a884c3281bf 100755 --- a/configure +++ b/configure @@ -2283,8 +2283,8 @@ if test -d ${srcdir}/gcc; then missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"` case ${boot_language} in yes) - # Add to (space-separated) list of stage 1 languages. - stage1_languages="${stage1_languages} ${language}" + # Add to (comma-separated) list of stage 1 languages. + stage1_languages="${stage1_languages},${language}" ;; esac ;; diff --git a/configure.in b/configure.in index d94a11da3c5..0a9f05fd8fc 100644 --- a/configure.in +++ b/configure.in @@ -1180,8 +1180,8 @@ if test -d ${srcdir}/gcc; then missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"` case ${boot_language} in yes) - # Add to (space-separated) list of stage 1 languages. - stage1_languages="${stage1_languages} ${language}" + # Add to (comma-separated) list of stage 1 languages. + stage1_languages="${stage1_languages},${language}" ;; esac ;;