Bug 12542 - bootstrap comparison failure
Summary: bootstrap comparison failure
Status: CLOSED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: bootstrap (show other bugs)
Version: 3.1
: P2 critical
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-10-08 16:46 UTC by turrisi
Modified: 2005-07-23 22:49 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description turrisi 2003-10-08 16:46:27 UTC
system: linux rh7.3 -  2.4.18-18.7.x.cernsmp #1 SMP Mon Nov 18 15:44:49 CET 2002
i686 unknown
GNU C Library stable release version 2.2.5, by Roland McGrath et al.
Compiled by GNU CC version 2.96 20000731 (Red Hat Linux 7.3 2.96-112).
Compiled on a Linux 2.4.9-9 system on 2002-10-10.
Available extensions:
	GNU libio by Per Bothner
	crypt add-on version 2.1 by Michael Glad and others
	The C stubs add-on version 2.1.2.
	linuxthreads-0.9 by Xavier Leroy
	BIND-8.2.3-T5B
	NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
	Glibc-2.0 compatibility add-on by Cristian Gafton 
	libthread_db work sponsored by Alpha Processor Inc
compiler (default): Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-113)

I tried to build both gcc 3.1 and 3.2 following standard procedure.
Configured with:
../gcc-3.x/configure --prefix/usr/local2
I obtain the same comparison failure in both cases, here I attach 
a log of the messages after a second "make bootstrap" (the last messages
are the same)

make[1]: Entering directory `/alisoft/othersoft/obj-gcc-3.1/libiberty'
make[2]: Entering directory `/alisoft/othersoft/obj-gcc-3.1/libiberty/testsuite'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/alisoft/othersoft/obj-gcc-3.1/libiberty/testsuite'
make[1]: Leaving directory `/alisoft/othersoft/obj-gcc-3.1/libiberty'
make[1]: Entering directory `/alisoft/othersoft/obj-gcc-3.1/zlib'
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-g -O2" "CXXFLAGS=-g -O2"
"CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=-g -O2" "INSTALL=/bin/sh
/alisoft/othersoft/gcc-3.1/install-sh -c" "INSTALL_DATA=/bin/sh
/alisoft/othersoft/gcc-3.1/install-sh -c -m 644" "INSTALL_PROGRAM=/bin/sh
/alisoft/othersoft/gcc-3.1/install-sh -c " "INSTALL_SCRIPT=/bin/sh
/alisoft/othersoft/gcc-3.1/install-sh -c" "LDFLAGS=" "LIBCFLAGS=-g -O2"
"LIBCFLAGS_FOR_TARGET=-g -O2" "MAKE=make" "MAKEINFO=makeinfo  " "PICFLAG="
"PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect" "RUNTEST=runtest"
"RUNTESTFLAGS=" "exec_prefix=--enable-shared" "infodir=--enable-shared/info"
"libdir=--enable-shared/lib" "prefix=--enable-shared"
"tooldir=--enable-shared/i686-pc-linux-gnu" "AR=ar" "AS=as" "CC=gcc" "CXX=c++"
"LD=ld" "LIBCFLAGS=-g -O2" "NM=nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR=" DO=all
multi-do
make[1]: Leaving directory `/alisoft/othersoft/obj-gcc-3.1/zlib'
Bootstrapping the compiler
make[1]: Entering directory `/alisoft/othersoft/obj-gcc-3.1/gcc'

Bootstrap complete - make "quickstrap" to redo last build,
"restage1" through "restage3" to rebuild specific stages,
or "cleanstrap" to redo the bootstrap from scratch.
make[1]: Leaving directory `/alisoft/othersoft/obj-gcc-3.1/gcc'
Comparing stage2 and stage3 of the compiler
make[1]: Entering directory `/alisoft/othersoft/obj-gcc-3.1/gcc'
rm -f .bad_compare
case "compare" in compare | compare-lean ) stage=2 ;; * ) stage=`echo compare |
sed -e 's,^compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
for file in *.o; do \
  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; \
done
case "compare" in compare | compare-lean ) stage=2 ;; * ) stage=`echo compare |
sed -e 's,^compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
for dir in tmp-foo intl cp f java objc; do \
  if [ "`echo $dir/*.o`" != "$dir/*.o" ] ; then \
    for file in $dir/*.o; do \
      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; \
    done; \
  else true; fi; \
done
rm -f tmp-foo*
case "compare" in compare | compare-lean ) stage=2 ;; * ) stage=`echo compare |
sed -e 's,^compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
if [ -f .bad_compare ]; then \
  echo "Bootstrap comparison failure!"; \
  cat .bad_compare; \
  exit 1; \
else \
  case "compare" in \
    *-lean ) rm -rf stage$stage ;; \
    *) ;; \
  esac; true; \
fi
Bootstrap comparison failure!
crtbeginS.o differs
crtend.o differs
g77version.o differs
mbchar.o differs
sdbout.o differs
underscore.o differs
version.o differs
vmsdbgout.o differs
f/version.o differs
make[1]: Leaving directory `/alisoft/othersoft/obj-gcc-3.1/gcc'
make[1]: *** [compare] Error 1
make: *** [bootstrap] Error 2
Comment 1 Andrew Pinski 2003-10-08 16:48:53 UTC
Most likely bad memory as people bootstrap all the time on i386-pc-linux-gnu.  Also note 3.1 is 
an old release.
Comment 2 turrisi 2003-10-09 17:04:40 UTC
I found that I was working on an NFS-mounted directory.
So I tried the same compilations on the local disk and 
it succeded. Sorry if it a well-known "feature" but I did not find
any note on this.