egcs-1.1b bootstrap comparison failure, i386-pc-solaris2.7

Blake Jones blakej@junta.Eng.Sun.COM
Sun Oct 11 21:20:00 GMT 1998

I tried compiling egcs 1.1b on a local Intel machine here.  I used the
following script to configure:




	LIBCFLAGS='-g -O2' 
	LIBCXXFLAGS='-g -O2 -fno-implicit-templates'

	# 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/
	  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                                \


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:

	<       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.


More information about the Gcc-bugs mailing list