Beebe@SCIENCE.UTAH.EDU ("Nelson H.F. Beebe") (04/29/89)
I've just installed gcc 1.35 on our Sun 3 and 386i systems under SunOS4.0.1. On both architectures, the stage[12] regression tests passed (but see below). ======================================================================== PROBLEM: "make clean" does not remove gnulib; it should, because otherwise it breaks multi-architecture makes where e.g. the Sun 386i source tree is a symbolic link into the Sun 3 tree. ======================================================================== PROBLEM: Unlike gcc 1.34 and earlier versions, which were silent on the matter, gcc 1.35 now issues a warning message when Sun make generates the -sun3 compile-time option; note that gnumake doesn't generate the -sun3 option, which might break CC=cc compilations. make CC=gcc foo gcc -sun3 -o foo foo.c gcc: unrecognized option `-sun3' make foo cc -sun3 -o foo foo.c gnumake -v foo GNU Make version 3.45, by Richard Stallman and Roland McGrath. Copyright (C) 1988, 1989 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. cc foo.c -o foo ======================================================================== SUGGESTION: Since the stage[12] regression test is very reassuring, I like to run it during installation of each version of gcc (which I've done about 20 times now). It would be nice if there were a make target to do it automatically. On Sun 386i systems, there appears to be a time stamp in the .o files which makes all the cmp's fail. I get around the problem with this little script (which could be put in the Makefile, with suitable adjustment of the cmp offsets): #!/bin/csh # Run regression tests for GNU gcc installation (e.g. on Sun 386i) # Note that a change is implemented in the cmp step below make stage1 make CC=stage1/gcc CFLAGS="-g -O -Bstage1/" make stage2 make CC=stage2/gcc CFLAGS="-g -O -Bstage2/" # .o files have uniform difference in bytes at offsets 4,5; # start comparisons beyond that; bug-gnu-gcc suggests it may be a # timestamp echo "Begin .o file comparisons -- any output indicates ERRORS" foreach file (*.o) cmp $file stage2/$file 6 6 end -------
news@sun.Eng.Sun.COM (news) (05/02/89)
In article <12490025278.16.BEEBE@SCIENCE.UTAH.EDU> Beebe@SCIENCE.UTAH.EDU ("Nelson H.F. Beebe") writes: >======================================================================== >SUGGESTION: Since the stage[12] regression test is very reassuring, I >like to run it during installation of each version of gcc (which I've >done about 20 times now). It would be nice if there were a make target >to do it automatically. On Sun 386i systems, there appears to be a time >stamp in the .o files which makes all the cmp's fail. I get around the >problem with this little script (which could be put in the Makefile, >with suitable adjustment of the cmp offsets): What you see is in fact a timestamp. The Sun 386i uses COFF format object files. From /usr/include/filehdr.h: struct filehdr { unsigned short f_magic; /* magic number */ unsigned short f_nscns; /* number of sections */ NOTE -> long f_timdat; /* time & date stamp */ long f_symptr; /* file pointer to symtab */ long f_nsyms; /* number of symtab entries */ unsigned short f_opthdr; /* sizeof(optional hdr) */ unsigned short f_flags; /* flags */ }; ># .o files have uniform difference in bytes at offsets 4,5; ># start comparisons beyond that; bug-gnu-gcc suggests it may be a ># timestamp >echo "Begin .o file comparisons -- any output indicates ERRORS" >foreach file (*.o) > cmp $file stage2/$file 6 6 >end Given the structure definition above, you should start the comparisons at offset 8 rather than 6: 2 byte short + 2 byte short + 4 byte timestamp == 8 bytes to ignore. -------------------------------------------- James Buster Mad Hacker Extraordinaire bitbug@lonewolf.sun.com --------------------------------------------
ado@elsie.UUCP (Arthur David Olson) (05/07/89)
Here's the shell script I run after receiving each new version of gcc. -- Space: Canada, 0 tries ever. Arthur David Olson ado@ncifcrf.gov ADO is a trademark of Ampex. unset FLOAT_OPTION make clean rm -f -r stage1 stage2 gnulib make make stage1 make CC=stage1/gcc CFLAGS="-g -O -Bstage1/" make stage2 make CC=stage2/gcc CFLAGS="-g -O -Bstage2/" for file in *.o do cmp -l $file stage2/$file | awk '$1 > 6 { print "'"$file stage2/$file differ"'" ; exit }' done echo $0 done!