[comp.os.minix] Gnu GCC V1.30 available for Minix ST

bammi@dsrgsun.ces.cwru.edu (Jwahar R. Bammi) (11/13/88)

Gnu CC V1.30 and associated tools (gcc-as, gcc-ld,
gcc-ar, gcc-nm) are running under MINIX on the AtariSt. Also, i have
ported the minix library, the library/kernel interface (st*.s files)
to this environment. Gnu CC may be used in two modes - producing code
in which integers are 16 bit quantities or producing code in which
integers are 32 bit quantities. I have done the approriate things in
the library/kernel interface to facilitate the two modes. The front
end driver (gcc) picks the correct start files/libraries according to
the mode (specified by the presence/absence of the -mshort flag). I
also upgraded the lib source before starting on this, with the relevant
diffs from the Ibm V1.2-V1.3 upgrade. Also incorporated quite a
few fixes that have appeared here lately, and found some more, that i
will post. This port has all the basic floating point support in it.
Hopefully, with the help of the net, we will build up a libm.a, building
on the basic floating support (which is the same as what was provided
in the TOS port thanks to John Denning). The same source is
appropriately #ifdef'ed to produce a Unix hosted (only SunOS V3.5
tested) cross-gcc (and the tools) for minixSt.

No changes are required to the kernel/fs/mm. I intend at some point to
do the appropriate things to compile the kernel with Gcc. It runs on a
1Meg ST, provided you cut way back on the ram disk (i am currently
using a 150K ramdisk). It certainly will not run on a 520ST. How big a
program you can compile basically depends upon how well modularized
your source code is. Under TOS i have compiled some pretty large
programs that consisted of many small to medium sized source files.

If there is sufficient interest i can package up the diffs from the
Gnu distribution and make it available for FTP and/or post it. Mail me
if you are interested.
--
usenet: {decvax,sun}!cwjcc!dsrgsun!bammi	jwahar r. bammi
csnet:       bammi@dsrgsun.ces.CWRU.edu
arpa:        bammi@dsrgsun.ces.CWRU.edu
compuServe:  71515,155

PS:
Here are some interesting figures:
	source: /usr/src/test/dhry.c
NOTE
  gdry   gcc compiled 16 bit integers mode no register
  gdryr  gcc compiled 16 bit integers mode with register
  gdryo	 gcc compiled 16 bit integers mode no register and more optimize
  gdryro gcc compiled 16 bit integers mode with register and more optimize
  gdryoo gcc compiled 16 bit integers mode with register and max optimize

the same for 32 bit integers mode files, they have '32' suffix.

normal optimization = -O
more   optimization = -O -fomit-frame-pointer -fcombine-regs -fforce-mem \
		      -fforce-addr
max    optimization = -O -fomit-frame-pointer -fcombine-regs -fforce-mem \
		      -fforce-addr -fstrength-reduce

Script started at Thu Nov 10 09:33:20 1988
% for i in gdry*
> do echo $i
> size $i
> ls -l $i
> $i
> echo "------------------------"
> echo
> done
gdry
  text	  data	   bss	 stack	memory
  4716	   164	  7400	 53256	 65536	gdry
-rwxr-xr-x  1  bammi     5048 Nov 10 04:24 gdry*
Dhrystone(1.1) time for 50000 passes = 60
This machine benchmarks at 833 dhrystones/second
------------------------

gdry32
  text	  data	   bss	 stack	memory
  4480	   180	 12700	 48176	 65536	gdry32
-rwxr-xr-x  1  bammi     4831 Nov 10 04:24 gdry32*
Dhrystone(1.1) time for 50000 passes = 65
This machine benchmarks at 769 dhrystones/second
------------------------

gdryo
  text	  data	   bss	 stack	memory
  4644	   164	  7400	 53328	 65536	gdryo
-rwxr-xr-x  1  bammi     4971 Nov 10 04:24 gdryo*
Dhrystone(1.1) time for 50000 passes = 57
This machine benchmarks at 877 dhrystones/second
------------------------

gdryo32
  text	  data	   bss	 stack	memory
  4412	   180	 12700	 48244	 65536	gdryo32
-rwxr-xr-x  1  bammi     4758 Nov 10 04:24 gdryo32*
Dhrystone(1.1) time for 50000 passes = 61
This machine benchmarks at 819 dhrystones/second
------------------------

gdryr
  text	  data	   bss	 stack	memory
  4716	   164	  7400	 53256	 65536	gdryr
-rwxr-xr-x  1  bammi     5048 Nov 10 04:24 gdryr*
Dhrystone(1.1) time for 50000 passes = 60
This machine benchmarks at 833 dhrystones/second <= not suprising! same as gdry
------------------------

gdryr32
  text	  data	   bss	 stack	memory
  4480	   180	 12700	 48176	 65536	gdryr32
-rwxr-xr-x  1  bammi     4831 Nov 10 04:24 gdryr32*
Dhrystone(1.1) time for 50000 passes = 65
This machine benchmarks at 769 dhrystones/second
------------------------

gdryro
  text	  data	   bss	 stack	memory
  4644	   164	  7400	 53328	 65536	gdryro
-rwxr-xr-x  1  bammi     4971 Nov 10 04:24 gdryro*
Dhrystone(1.1) time for 50000 passes = 57
This machine benchmarks at 877 dhrystones/second
------------------------

gdryro32
  text	  data	   bss	 stack	memory
  4412	   180	 12700	 48244	 65536	gdryro32
-rwxr-xr-x  1  bammi     4758 Nov 10 04:25 gdryro32*
Dhrystone(1.1) time for 50000 passes = 63
This machine benchmarks at 793 dhrystones/second
------------------------

gdryroo
  text	  data	   bss	 stack	memory
  4644	   164	  7400	 53328	 65536	gdryroo
-rwxr-xr-x  1  bammi     4971 Nov 10 09:22 gdryroo*
Dhrystone(1.1) time for 50000 passes = 57
This machine benchmarks at 877 dhrystones/second
------------------------

gdryroo32
  text	  data	   bss	 stack	memory
  4412	   180	 12700	 48244	 65536	gdryroo32
-rwxr-xr-x  1  bammi     4758 Nov 10 09:23 gdryroo32*
Dhrystone(1.1) time for 50000 passes = 59
This machine benchmarks at 847 dhrystones/second
------------------------

% 
Script done at Thu Nov 10 09:50:36 1988

NOTE:
	dhry: ACK compiled dhry.c no registers
	dhryr : ACK compiled dhry.c with registers

Script started at Thu Nov 10 09:57:55 1988
% for i in dhry*
> do
> echo $i
> size $i
> ls -l $i
> $i
> echo "-----------------------"
> echo
> done
dhry
  text	  data	   bss	 stack	memory
  5112	   362	  7386	 52676	 65536	dhry
-rwxr-xr-x  1  bammi     5682 Nov  3 02:10 dhry*
Dhrystone(1.1) time for 50000 passes = 96
This machine benchmarks at 520 dhrystones/second
-----------------------

dhryr
  text	  data	   bss	 stack	memory
  5118	   362	  7386	 52670	 65536	dhryr
-rwxr-xr-x  1  bammi     5688 Nov 10 09:50 dhryr*
Dhrystone(1.1) time for 50000 passes = 95
This machine benchmarks at 526 dhrystones/second
-----------------------

% 
Script done at Thu Nov 10 10:02:41 1988
usenet: {decvax,sun}!cwjcc!dsrgsun!bammi	jwahar r. bammi
csnet:       bammi@dsrgsun.ces.CWRU.edu
arpa:        bammi@dsrgsun.ces.CWRU.edu
compuServe:  71515,155