[Bug bootstrap/21919] New: make bootstrap-lean gets stuck after between-stages crash.
bmoses-nospam at cits1 dot stanford dot edu
gcc-bugzilla@gcc.gnu.org
Sat Jun 4 23:45:00 GMT 2005
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
More information about the Gcc-bugs
mailing list