Hi, I'm trying to compile GCC 3.4.0 on my work computer (a SPARC running Solaris 2.8) and my home computer (an Athlon running Debian 3.0r2). On both machines I'm trying to bootstrap from GCC 3.3.3 (which compiled on both computers without problems). On the SPARC/Solaris computer, I ran the following sequence: # unpack and make directories tar -xzf gcc-3.4.0.tar.gz mkdir obj cd obj # run configure script bash ../gcc-3.4.0/configure --prefix=${HOME}/Local8/Gcc34 \ --with-local-prefix=${HOME}/Local8 --with-cpu=ultrasparc \ --enable-languages=c++,f77 --disable-libgcj --disable-shared \ --disable-nls --disable-debug # build compiler, but don't install yet make bootstrap On the Athlon/Debian computer, I ran the following sequence: # unpack and make directories tar -xzf gcc-3.4.0.tar.gz mkdir obj cd obj # run configure script ../gcc-3.4.0/configure --prefix=/usr/local/gcc34 --enable-languages=c++,f77 \ --disable-libgcj # build compiler, but don't install make bootstrap The SPARC/Solaris build failed with a stage comparison error: make[1]: Entering directory `/data1/acsl/lindhobe/Temp/obj/libiberty' make[2]: Entering directory `/data1/acsl/lindhobe/Temp/obj/libiberty/testsuite' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/data1/acsl/lindhobe/Temp/obj/libiberty/testsuite' make[1]: Leaving directory `/data1/acsl/lindhobe/Temp/obj/libiberty' make[1]: Entering directory `/data1/acsl/lindhobe/Temp/obj/intl' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/data1/acsl/lindhobe/Temp/obj/intl' Bootstrapping the compiler make[1]: Entering directory `/data1/acsl/lindhobe/Temp/obj/gcc' Bootstrap complete - make "quickstrap" to redo last build, "restage1" through "restage3" to rebuild specific stages, "restrap" to redo the bootstrap from stage1, or "cleanstrap" to redo the bootstrap from scratch. make[1]: Leaving directory `/data1/acsl/lindhobe/Temp/obj/gcc' Comparing stage2 and stage3 of the compiler make[1]: Entering directory `/data1/acsl/lindhobe/Temp/obj/gcc' rm -f .bad_compare case "gnucompare" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo gnucompare | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \ for dir in . cp f; do \ if [ "`echo $dir/*.o`" != "$dir/*.o" ] ; then \ for file in $dir/*.o; do \ case "gnucompare" 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 ; \ done; \ else true; fi; \ done rm -f tmp-foo* case "gnucompare" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo gnucompare | 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 "gnucompare" in \ *-lean ) rm -rf stage$stage ;; \ *) ;; \ esac; true; \ fi Bootstrap comparison failure! ./reload1.o differs make[1]: *** [gnucompare] Error 1 make[1]: Leaving directory `/data1/acsl/lindhobe/Temp/obj/gcc' make: *** [bootstrap] Error 2 The Athlon/Debian build failed with a strange declaration error that makes it appear that I don't have stdlib.h installed (which I most certainly do). make[1]: Entering directory `/scratch/compile/Temp/obj/libiberty' make[2]: Entering directory `/scratch/compile/Temp/obj/libiberty/testsuite' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/scratch/compile/Temp/obj/libiberty/testsuite' make[1]: Leaving directory `/scratch/compile/Temp/obj/libiberty' make[1]: Entering directory `/scratch/compile/Temp/obj/intl' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/scratch/compile/Temp/obj/intl' Bootstrapping the compiler make[1]: Entering directory `/scratch/compile/Temp/obj/gcc' Bootstrap complete - make "quickstrap" to redo last build, "restage1" through "restage3" to rebuild specific stages, "restrap" to redo the bootstrap from stage1, or "cleanstrap" to redo the bootstrap from scratch. make[1]: Leaving directory `/scratch/compile/Temp/obj/gcc' Comparing stage2 and stage3 of the compiler make[1]: Entering directory `/scratch/compile/Temp/obj/gcc' rm -f .bad_compare case "gnucompare" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo gnucompare | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \ for dir in . cp f; do \ if [ "`echo $dir/*.o`" != "$dir/*.o" ] ; then \ for file in $dir/*.o; do \ case "gnucompare" 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 ; \ done; \ else true; fi; \ done rm -f tmp-foo* case "gnucompare" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo gnucompare | 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 "gnucompare" in \ *-lean ) rm -rf stage$stage ;; \ *) ;; \ esac; true; \ fi make[1]: Leaving directory `/scratch/compile/Temp/obj/gcc' Building runtime libraries make[1]: Entering directory `/scratch/compile/Temp/obj' make[2]: Entering directory `/scratch/compile/Temp/obj/libiberty' make[3]: Entering directory `/scratch/compile/Temp/obj/libiberty/testsuite' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/scratch/compile/Temp/obj/libiberty/testsuite' make[2]: Leaving directory `/scratch/compile/Temp/obj/libiberty' make[2]: Entering directory `/scratch/compile/Temp/obj/intl' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/scratch/compile/Temp/obj/intl' make[2]: Entering directory `/scratch/compile/Temp/obj/gcc' if test -f stage_last ; then \ LAST=`cat stage_last`; rm $LAST; make LANGUAGES="c gcov gcov-dump c++ f77" BOOT_CFLAGS="-g -O2" $LAST; \ else \ make LANGUAGES="c gcov gcov-dump c++ f77" BOOT_CFLAGS="-g -O2" stage1_build; \ fi make[3]: Entering directory `/scratch/compile/Temp/obj/gcc' make CC=" stage2/xgcc -Bstage2/ -B/usr/local/gcc34/i686-pc-linux-gnu/bin/" CC_FOR_BUILD=" stage2/xgcc -Bstage2/ -B/usr/local/gcc34/i686-pc-linux-gnu/bin/" \ STAGE_PREFIX=stage2/ \ ADAFLAGS="" CFLAGS="-g -O2" LDFLAGS="" WARN_CFLAGS="\$(GCC_WARN_CFLAGS)" STRICT_WARN="-pedantic -Wno-long-long -Wold-style-definition " libdir=/usr/local/gcc34/lib LANGUAGES="c gcov gcov-dump c++ f77" MAKEINFO="makeinfo" MAKEINFOFLAGS="--no-split" MAKEOVERRIDES= OUTPUT_OPTION="-o \$@" \ CFLAGS="-g -O2" WERROR="" make[4]: Entering directory `/scratch/compile/Temp/obj/gcc' if [ -f specs.ready ] ; then \ true; \ else \ echo timestamp > specs.ready; \ fi make \ CFLAGS="-g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-protot ypes -pedantic -Wno-long-long -Wold-style-definition " \ CONFIG_H="tconfig.h ../../gcc-3.4.0/gcc/../include/ansidecl.h" TM_H="tm.h ../../gcc-3.4.0/gcc/config/i386/i386.h ../../gcc-3.4.0/gcc/config/i386/unix.h ../../gcc-3.4.0/gcc/config/i386/att.h ../../gcc-3.4.0/gcc/config/dbxelf.h ../../gcc-3.4.0/gcc/config/elfos.h ../../gcc-3.4.0/gcc/config/svr4.h ../../gcc-3.4.0/gcc/config/linux.h ../../gcc-3.4.0/gcc/config/i386/linux.h ../../gcc-3.4.0/gcc/defaults.h insn-constants.h insn-flags.h" \ INCLUDES="-I. -I. -I../../gcc-3.4.0/gcc -I../../gcc-3.4.0/gcc/. -I../../gcc- 3.4.0/gcc/../include " \ MAKEOVERRIDES= \ -f libgcc.mk all make[5]: Entering directory `/scratch/compile/Temp/obj/gcc' for d in libgcc; do \ if [ -d $d ]; then true; else /usr/local/bin/bash ../../gcc-3.4.0/gcc/mkinstalldirs $d; fi; \ done if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi make[5]: Leaving directory `/scratch/compile/Temp/obj/gcc' make[4]: Leaving directory `/scratch/compile/Temp/obj/gcc' echo timestamp > stage3_build echo stage3_build > stage_last make[3]: Leaving directory `/scratch/compile/Temp/obj/gcc' make[2]: Leaving directory `/scratch/compile/Temp/obj/gcc' Checking multilib configuration... multilib.out is unchanged make[2]: Entering directory `/scratch/compile/Temp/obj/i686-pc-linux-gnu/libiberty' if [ x"" != x ]; then \ /scratch/compile/Temp/obj/gcc/xgcc -B/scratch/compile/Temp/obj/gcc/ -B/usr/l ocal/gcc34/i686-pc-linux-gnu/bin/ -B/usr/local/gcc34/i686-pc-linux-gnu/lib/ -isystem /usr/local/gcc34/i686-pc-linux-gnu/include -isystem /usr/local/gcc34/i686-pc-linux-gnu/sys-include -c -DHAVE_CONFIG_H -O2 -O2 -f omit-frame-pointer -march=i486 -mcpu=athlon-xp -I. -I../../../gcc-3.4.0/libi berty/../include -W -Wall -Wtraditional -pedantic ../../../gcc-3.4.0/libiberty/cplus-dem.c -o pic/cplus-dem.o; \ else true; fi /scratch/compile/Temp/obj/gcc/xgcc -B/scratch/compile/Temp/obj/gcc/ -B/usr/l ocal/gcc34/i686-pc-linux-gnu/bin/ -B/usr/local/gcc34/i686-pc-linux-gnu/lib/ -isystem /usr/local/gcc34/i686-pc-linux-gnu/include -isystem /usr/local/gcc34/i686-pc-linux-gnu/sys-include -c -DHAVE_CONFIG_H -O2 -O2 -f omit-frame-pointer -march=i486 -mcpu=athlon-xp -I. -I../../../gcc-3.4.0/libi berty/../include -W -Wall -Wtraditional -pedantic ../../../gcc-3.4.0/libiberty/cplus-dem.c -o cplus-dem.o `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. ../../../gcc-3.4.0/libiberty/cplus-dem.c:55: error: conflicting types for 'malloc' ../../../gcc-3.4.0/libiberty/cplus-dem.c:55: error: conflicting types for 'malloc' ../../../gcc-3.4.0/libiberty/cplus-dem.c: In function `code_for_qualifier': ../../../gcc-3.4.0/libiberty/cplus-dem.c:630: warning: implicit declaration of function `abort' ../../../gcc-3.4.0/libiberty/cplus-dem.c: In function `squangle_mop_up': ../../../gcc-3.4.0/libiberty/cplus-dem.c:1154: warning: implicit declaration of function `free' ../../../gcc-3.4.0/libiberty/cplus-dem.c: In function `demangle_qualified': ../../../gcc-3.4.0/libiberty/cplus-dem.c:3310: warning: implicit declaration of function `atoi' make[2]: *** [cplus-dem.o] Error 1 make[2]: Leaving directory `/scratch/compile/Temp/obj/i686-pc-linux-gnu/libiberty' make[1]: *** [all-target-libiberty] Error 2 make[1]: Leaving directory `/scratch/compile/Temp/obj' make: *** [bootstrap] Error 2 I'm baffled. Does anyone out there have any idea what I've done wrong? I've been able to compile GCC myself from version 2.7.2 all the way to 3.3.3. This is the first time I've been stuck! :-( Brian