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