System: 200MHz Pentium Pro PC, Windows 2k, Cygwin. GCC Version: 4.1.0, from cvs 2005-06-02.
Before the bug appeared: I had downloaded a fresh copy of the CVS tree, and was attempting to build a copy of gfortran using the following commands (yes, I now know that trying to build _in_ the source directory was a bad idea, but that doesn't affect this bug). setenv CFLAGS '-O2 -g' setenv BOOT_CFLAGS '-O2' cd gcc/gcc ../configure --enable-threads=posix --enable-sjlj-exceptions \ --disable-libmudflap --enable-languages=f95 I then ran "make bootstrap-lean", and waited. After some time (about 26 hours), the compilation crashed, due to what we think is bug 21766 (compiler ICE on valid code). This is not the bug that I am reporting. :) The bug that I am reporting is what happened when I immediately re-ran "make- bootstrap-lean" to see if this was repeatable. What happened instead was a string of "tail: cannot open" errors, followed by make exiting with errors. Apparently, the make process has gotten wedged into a state from which it can't recover. Some detailed output, to help track down what's happening. First, the output of make bootstrap-lean: make[1]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/build-i686-pc-cygwin/ libiberty' make[2]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/build-i686-pc-cygwin/ libiberty/testsuite' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/build-i686-pc-cygwin/ libiberty/testsuite' make[1]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/build-i686-pc-cygwin/ libiberty' make[1]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/build-i686-pc-cygwin/ fixincludes' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/build-i686-pc-cygwin/ fixincludes' make[1]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/intl' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/intl' make[1]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/libiberty' make[2]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/libiberty/testsuite' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/libiberty/testsuite' make[1]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/libiberty' make[1]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/libcpp' test -f config.h || (rm -f stamp-h1 && make stamp-h1) test -d po || mkdir po : --statistics -o po/be.gmo ../../libcpp/po/be.po test -d po || mkdir po : --statistics -o po/ca.gmo ../../libcpp/po/ca.po test -d po || mkdir po : --statistics -o po/da.gmo ../../libcpp/po/da.po test -d po || mkdir po : --statistics -o po/de.gmo ../../libcpp/po/de.po test -d po || mkdir po : --statistics -o po/el.gmo ../../libcpp/po/el.po test -d po || mkdir po : --statistics -o po/es.gmo ../../libcpp/po/es.po test -d po || mkdir po : --statistics -o po/fr.gmo ../../libcpp/po/fr.po test -d po || mkdir po : --statistics -o po/ja.gmo ../../libcpp/po/ja.po test -d po || mkdir po : --statistics -o po/nl.gmo ../../libcpp/po/nl.po test -d po || mkdir po : --statistics -o po/rw.gmo ../../libcpp/po/rw.po test -d po || mkdir po : --statistics -o po/sv.gmo ../../libcpp/po/sv.po test -d po || mkdir po : --statistics -o po/tr.gmo ../../libcpp/po/tr.po test -d po || mkdir po : --statistics -o po/vi.gmo ../../libcpp/po/vi.po make[1]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/libcpp' Bootstrapping the compiler make[1]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/gcc' Bootstrap complete - make "quickstrap" to redo last build, or "cleanstrap" to redo the bootstrap from scratch. make[1]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/gcc' Comparing stage2 and stage3 of the compiler make[1]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/gcc' rm -f .bad_compare case "gnucompare-lean" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo gnucompare-lean | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \ for dir in . fortran build libgcc; do \ if [ "`echo $dir/*.o`" != "$dir/*.o" ] ; then \ for file in $dir/*.o; do \ case $file in \ ./cc*-checksum.o | libgcc/* ) \ tail +16c ./$file > tmp-foo1 \ && tail +16c stage$stage/$file > tmp-foo2 \ && ( cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 \ || echo warning: $file differs || true ) \ ;; \ *) case "gnucompare-lean" in \ slowcompare* ) \ tail +16c ./$file > tmp-foo1; \ tail +16c stage$stage/$file > tmp-foo2 \ && (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 \ || echo $file differs >> .bad_compare) || true; \ ;; \ fastcompare* ) \ cmp $file stage$stage/$file 16 16 > /dev/null 2>&1; \ test $? -eq 1 && echo $file differs >> .bad_compare || true; \ ;; \ gnucompare* ) \ cmp --ignore-initial=16 $file stage$stage/$file > /dev/null 2>&1; \ test $? -eq 1 && echo $file differs >> .bad_compare || true; \ ;; \ esac ; \ esac ; \ done; \ else true; fi; \ done tail: cannot open `stage2/./cc1-checksum.o' for reading: No such file or directory make[1]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/gcc' tail: cannot open `stage2/libgcc/__gcc_bcmp.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/__main.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_absvdi2.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_absvsi2.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_addvdi3.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_addvsi3.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_ashldi3.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_ashrdi3.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_chkstk.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_clear_cache.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_clz.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_clzdi2.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_clzsi2.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_cmpdi2.o' for reading: No such file or directory [...] tail: cannot open `stage2/libgcc/_udivmoddi4.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/_umoddi3.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/gthr-gnat.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/unwind-c.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/unwind-dw2-fde.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/unwind-dw2.o' for reading: No such file or directory tail: cannot open `stage2/libgcc/unwind-sjlj.o' for reading: No such file or directory make[1]: *** [gnucompare-lean] Error 1 make: *** [bootstrap-lean] Error 2 A check of the build directory finds that the entire "stage2" directory has already been deleted at this point, which would explain why tail can't find the files. FWIW, the various "stage" files that exist are "stage1_build", "stage1_copy", "stage2_build", "stage2_copy", and "stage3_build". Second, the tail end of the output from the first failed make (to help indicate where in the process it crashed): Adding multilib support to Makefile in ../../../libgfortran multidirs= with_multisubdir= make[2]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/i686-pc-cygwin/ libgfortran' /bin/sh ../../../libgfortran/mk-sik-inc.sh '/cygdrive/e/gfortran/gcc/gcc/./gcc/ gfortran -B/cygdrive/ e/gfortran/gcc/gcc/./gcc/ -B/usr/local/i686-pc-cygwin/bin/ -B/usr/local/i686-pc- cygwin/lib/ -isystem /usr/local/i686-pc-cygwin/include -isystem /usr/local/i686-pc-cygwin/sys- include -Wall -g -O2 -Wall -fno-repack-arrays -fno-underscoring' > selected_int_kind.inc /bin/sh ../../../libgfortran/mk-srk-inc.sh '/cygdrive/e/gfortran/gcc/gcc/./gcc/ gfortran -B/cygdrive/ e/gfortran/gcc/gcc/./gcc/ -B/usr/local/i686-pc-cygwin/bin/ -B/usr/local/i686-pc- cygwin/lib/ -isystem /usr/local/i686-pc-cygwin/include -isystem /usr/local/i686-pc-cygwin/sys- include -Wall -g -O2 -Wall -fno-repack-arrays -fno-underscoring' > selected_real_kind.inc make all-am make[3]: Entering directory `/cygdrive/e/gfortran/gcc/gcc/i686-pc-cygwin/ libgfortran' /bin/sh ./libtool --mode=compile /cygdrive/e/gfortran/gcc/gcc/./gcc/xgcc -B/ cygdrive/e/gfortran/gcc/ gcc/./gcc/ -B/usr/local/i686-pc-cygwin/bin/ -B/usr/local/i686-pc-cygwin/lib/ - isystem /usr/local/i68 6-pc-cygwin/include -isystem /usr/local/i686-pc-cygwin/sys-include - DHAVE_CONFIG_H -I. -I../../../li bgfortran -I. -iquote../../../libgfortran/io -std=gnu99 -Wall -Wstrict- prototypes -Wmissing-protot ypes -Wold-style-definition -Wextra -Wwrite-strings -O2 -g -O2 -c -o environ.lo `test -f 'runtime/en viron.c' || echo '../../../libgfortran/'`runtime/environ.c /cygdrive/e/gfortran/gcc/gcc/./gcc/xgcc -B/cygdrive/e/gfortran/gcc/gcc/./gcc/ - B/usr/local/i686-pc-c ygwin/bin/ -B/usr/local/i686-pc-cygwin/lib/ -isystem /usr/local/i686-pc-cygwin/ include -isystem /usr /local/i686-pc-cygwin/sys-include -DHAVE_CONFIG_H -I. -I../../../libgfortran -I. -iquote../../../lib gfortran/io -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wold- style-definition -Wextra -Wwrite-strings -O2 -g -O2 -c ../../../libgfortran/runtime/environ.c -o environ.o ../../../libgfortran/runtime/environ.c: In function 'init_integer': ../../../libgfortran/runtime/environ.c:104: error: invariant not recomputed when ADDR_EXPR changed &_ctype_D.1970[1]; ../../../libgfortran/runtime/environ.c:104: internal compiler error: verify_stmts failed. Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. make[3]: *** [environ.lo] Error 1 make[3]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/i686-pc-cygwin/ libgfortran' make[2]: *** [all] Error 2 make[2]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc/i686-pc-cygwin/ libgfortran' make[1]: *** [all-target-libgfortran] Error 2 make[1]: Leaving directory `/cygdrive/e/gfortran/gcc/gcc' make: *** [bootstrap-lean] Error 2 Finally, I'll note that I'll leave the build directory untouched for a few days, in case there are other files in it that would be useful to look at. -- Summary: make bootstrap-lean gets stuck after between-stages crash. Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bmoses-nospam at cits1 dot stanford dot edu CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-pc-cygwin GCC host triplet: i686-pc-cygwin GCC target triplet: i686-pc-cygwin http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21919