[gnu.gcc.bug] Differences noted after stage2 on SUN4

BAUM@gmr.com ("ALAN BAUM ", 313-986-1435) (02/05/90)

I have attempted to install the GNU C compiler (version 1.35) on my SUN4/330
(SPARCstation) running SunOS 4.0.3 and I have encountered some differences
after generating the stage2 files as recommended.  It is quite possible that
one or more of the solutions I implemented to various problems I had with the
Makefile caused these differences, so I am including the problems and my
actions to circumvent them.  I assume I should not see any differences (since
COFF format is only for 386 systems?), and the differences occur later in the
files than byte 8 anyway.

First I ran 'config.gcc sun4-os4' which created the following links:
	aux-output.c -> config/out-sparc.c
	config.h -> config/xm-sunos4.h
	md -> config/sparc.md
	tm.h -> config/tm-sparc.h
Then I ran 'make' and proceeded to 'fix' things as described below.
Finally, I checked the stage2 files and found 14 files with differences as
listed at the end.

Can I use the compiler with any confidence?  I appreciate any light you may
shed on this situation.
Thanks.

Alan Baum
Computer Science Department
GM Research Labs
Warren, MI 48090
(313) 986-1435
baum@gmr.com

#######################
#####  Problem 1  #####
#######################
COMMAND > make
mkdir libtemp
mkdir: libtemp: File exists
*** Error code 1 (ignored)
cd libtemp; \
rm -f gnulib; \
for name in _eprintf _builtin_new _builtin_New _builtin_del  _umulsi3
_mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3  _lshrsi3 _lshlsi3 _ashrsi3
_ashlsi3 _cmpdi2 _ucmpdi2  _divdf3 _muldf3 _negdf2 _adddf3 _subdf3 _cmpdf2
_fixunsdfsi _fixunsdfdi _fixdfsi _fixdfdi  _floatsidf _floatdidf
_truncdfsf2 _extendsfdf2  _addsf3 _negsf2 _subsf3 _cmpsf2 _mulsf3 _divsf3
_varargs; \
do \
  echo ${name}; \
  rm -f ${name}.c; \
  cp ../gnulib.c ${name}.c; \
  cc  -O -I.. -I../config -c -DL${name} ${name}.c; \
  ar qc gnulib ${name}.o; \
done
sh: libtemp: bad directory
*** Error code 1
make: Fatal error: Command failed for target `gnulib'

########################
#####  Solution 1  #####
########################
Change 'cd libtemp' to 'cd ./libtemp' in Makefile.


#######################
#####  Problem 2  #####
#######################
COMMAND > make
cc -O  -I./config \
  -DSTANDARD_STARTFILE_PREFIX=\"/usr/local/lib/\" \
  -DSTANDARD_EXEC_PREFIX=\"/usr/local/lib/gcc-\" -c gcc.c
./config/xm-sparc.h: 39: Can't find include file tm.h
*** Error code 2
make: Fatal error: Command failed for target `gcc.o'

########################
#####  Solution 2  #####
########################
COMMAND > cd config
COMMAND > ln -s tm-sparc.h tm.h
COMMAND > cd ..


#######################
#####  Problem 3  #####
#######################
COMMAND > make
cc -O  -I./config -I. \
  -DSTANDARD_STARTFILE_PREFIX=\"/usr/local/lib/\" \
  -DSTANDARD_EXEC_PREFIX=\"/usr/local/lib/gcc-\" -c gcc.c
./varargs.h: 4: Unreasonable include nesting
*** Error code 2
make: Fatal error: Command failed for target `gcc.o'

########################
#####  Solution 3  #####
########################
COMMAND > mv ./varargs.h ./varargs.hsav.
COMMAND > make


#####################
#####  Results  #####
#####################
# After make completed:
COMMAND > mv ./varargs.hsav ./varargs.h
COMMAND > make stage1
COMMAND > make CC=stage1/gcc CFLAGS="-O -Bstage1/"
COMMAND > make stage2
COMMAND > make CC=stage2/gcc CFLAGS="-O -Bstage2/"

# Files which differ when tested with 'cmp $file stage2/$file':
caller-save.o stage2/caller-save.o differ: char 8, line 2
cccp.o stage2/cccp.o differ: char 7, line 1
cexp.o stage2/cexp.o differ: char 8, line 1
cse.o stage2/cse.o differ: char 7, line 1
explow.o stage2/explow.o differ: char 8, line 1
expmed.o stage2/expmed.o differ: char 8, line 1
expr.o stage2/expr.o differ: char 8, line 1
fold-const.o stage2/fold-const.o differ: char 7, line 1
loop.o stage2/loop.o differ: char 8, line 1
stmt.o stage2/stmt.o differ: char 8, line 1
stor-layout.o stage2/stor-layout.o differ: char 7, line 1
toplev.o stage2/toplev.o differ: char 8, line 1
tree.o stage2/tree.o differ: char 8, line 1
varasm.o stage2/varasm.o differ: char 7, line 1

# Files which differ when tested with 'cmp foo1 foo2' after
# 'tail +10 $file > foo1' and 'tail +10 stage2/$file > foo2':
caller-save.o
foo1 foo2 differ: char 163, line 3
cccp.o
foo1 foo2 differ: char 1, line 1
cexp.o
foo1 foo2 differ: char 48, line 2
cse.o
foo1 foo2 differ: char 1465, line 12
explow.o
foo1 foo2 differ: char 55, line 1
expmed.o
foo1 foo2 differ: char 474, line 6
expr.o
foo1 foo2 differ: char 660, line 2
fold-const.o
foo1 foo2 differ: char 1540, line 22
loop.o
foo1 foo2 differ: char 14217, line 88
stmt.o
foo1 foo2 differ: char 15636, line 73
stor-layout.o
foo1 foo2 differ: char 5, line 1
toplev.o
foo1 foo2 differ: char 3904, line 14
tree.o
foo1 foo2 differ: char 1676, line 10
varasm.o
foo1 foo2 differ: char 2217, line 27