This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
egcs-1.1b bootstrap comparison failure, i386-pc-solaris2.7
- To: egcs-bugs at cygnus dot com
- Subject: egcs-1.1b bootstrap comparison failure, i386-pc-solaris2.7
- From: Blake Jones <blakej at junta dot Eng dot Sun dot COM>
- Date: Sun, 11 Oct 1998 21:20:18 -0700
I tried compiling egcs 1.1b on a local Intel machine here. I used the
following script to configure:
------------------------------------------------------------------
#!/bin/sh
ARCH=i386
CC=cc
CFLAGS='-O'
LIBCFLAGS='-g -O2'
LIBCXXFLAGS='-g -O2 -fno-implicit-templates'
export CC CFLAGS LIBCFLAGS LIBCXXFLAGS
# workaround for "make install" problem, see below
(
mkdir -p gcc/f
cd gcc/f
ln -s ../../../dist/gcc/f/ansify.c ansify.c
ln -s ../../../dist/gcc/f/intdoc.c intdoc.c
ln -s ../../../dist/gcc/f/intdoc.in intdoc.in
ln -s ../../../dist/gcc/f/intdoc.texi intdoc.texi
ln -s ../../../dist/gcc/f/intrin.c intrin.c
ln -s ../../../dist/gcc/f/intrin.def intrin.def
ln -s ../../../dist/gcc/f/intrin.h intrin.h
)
/home/kg/src/egcs-1.1b/dist/configure \
--prefix=/home/kg/share/egcs-1.1b \
--exec-prefix=/home/kg/$ARCH/egcs-1.1b \
--enable-shared \
--without-gnu-as \
--without-gnu-ld \
--enable-version-specific-runtime-libs
------------------------------------------------------------------
and did a "make bootstrap". It went along okay until the bootstrap
comparison phase, when I got:
Bootstrap comparison failure!
g++.o differs
g77.o differs
gcc.o differs
f/data.o differs
f/target.o differs
I disassembled the object files, and diff'ed them, and most of them were
quite similar. The only difference in g++.o, for example, is:
2691,2693c2690,2692
< 2360: 66 0f b6 5d bf movzbw -0x41(%ebp),%bx
< 2365: 66 0f b6 05 00 00 00 00 movzbw 0x0,%ax
< 236d: 66 89 85 64 ff ff ff movw %ax,-0x9c(%ebp)
---
> 2360: 66 0f b6 05 00 00 00 00 movzbw 0x0,%ax
> 2368: 66 89 85 64 ff ff ff movw %ax,-0x9c(%ebp)
> 236f: 66 0f b6 5d bf movzbw -0x41(%ebp),%bx
"f/data.o" had a couple more things, and "f/target.o" had a large number
of differences. I haven't pored over the disassembly of "f/target.o" to
see if any of the differences are meaningful, nor would I like to. If
it would be helpful, I can put up the object files, or the disassembled
object files, to look at.
The "cc" I used for the initial bootstrap is
cc: WorkShop Compilers 4.2 26 Jun 1997 C 4.2 patch 105062-01
I did a bootstrap on sparc-sun-solaris2.7, with the
cc: WorkShop Compilers 4.2 30 Oct 1996 C 4.2
compiler and a similar "do-configure" script, and it built fine.
Any suggestions? Should I just assume that the differences are
harmless, and that any further differences are harmless? (I hope that's
not the answer.) Is there a way to make a fourth stage, and do a
comparison with the third stage?
Also, on the SPARC build, I had to make a bunch of symlinks to make
"make install" work; I was building in a separate object directory, as
the compilation directions told me to. That's the "workaround" section
in the "do-configure" script, above. Without these links, it was
failing with errors such as:
make: Fatal error: Don't know how to make target `f/intdoc.c'
If there's a fix for this, or if I have something wrong in my
environment, I'd appreciate learning about it.
Thanks for any suggestions.
Blake