GCC 3.4.0 bootstrap problems on i386/Debian 3.0r2 and SPARC/Solaris 2.8
Brian Lindholm
blindholm@adelphia.net
Sun Apr 25 20:18:00 GMT 2004
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
More information about the Gcc-help
mailing list