awb@aipna.ed.ac.uk (Alan W Black) (11/13/90)
Announcing gcc 1.37.1 and Gnu emacs 18.55 for MINIX 1.5.10 386 for beta testing [to UK people this has been updated to use gas-1.37 and Earl's estdio2.1] After some time of playing with the source we think it is in a state suitable for other people to use. Our distribution includes binaries for gcc (gcc gcc-ld gcc-cc1 gcc-cpp) 1.37.1 gas (gcc-as) 1.37 make 3.57 utilities, ar nm size libraries - libc.a (minix) libm.a (pml) gnulib gcc include files GNUemacs 18.55, (including sub-processes and dumping) Patches to recompile all the above You will need the following to run the binaries: MINIX 1.5.10 Bruce Evans' 386 Patches A 386 with at least 4M of memory (emacs alone should work in 2M) A 2-line patch to klib386.x (included) If you want to recompile you will also need the following sources gcc.1.37.1.tar.Z gas1.37.tar.Z estdio21.tar.Z emacs-18.55.tar.Z make-3.57.tar.Z pml.tar.Z These are not included in this distribution but are available from a number of different archives. GNU software is available by anonymous ftp from a number of sites including prep.ai.mit.edu (18.71.0.38 in u2/emacs). estdio is available from plains.nodak.edu (134.129.111.64 in pub/Minix/oz) and sirius.ucs.adelaide (129.127.40.3 in pub/minix/local). And pml is available from the atari archive (formerly terminator) atari.archive.umich.edu (141.211.164.8 in atari/gnustuff/minix). Please only use ftp sites during off-peak hours. It is interesting to note that gcc and gas effectively require no patches at all to compile under MINIX. Gas requires a change to the make file while the gcc diffs simply include a modified config file for the 386. Our problem was bootstraping the first copy of gcc. Availability ------------ The following files are available on plains.nodak.ed (134.129.111.64 in pub/Minix/uk). Also they are available for anonymous hhcp over JANET the uk X25 network contact me (awb@ed.ac.uk) for more details. Note the dates etc may by different on archive machines. -rwxr-xr-x 1 awb 17676 Oct 30 10:07 16bcompress -rw-r--r-- 1 awb 2906 Nov 10 15:51 README -rw-r--r-- 1 awb 98089 Oct 28 17:22 binutils.tar.Z -rw-r--r-- 1 awb 477002 Nov 10 16:28 emacs.tar.Z -rw-r--r-- 1 awb 23183 Nov 10 16:29 emacsdif.tar.Z -rw-r--r-- 1 awb 1803 Nov 10 16:30 gasdiff.tar.Z -rw-r--r-- 1 awb 407 Oct 30 10:17 gcc.test -rw-r--r-- 1 awb 628027 Nov 10 16:31 gccbin.tar.Z -rw-r--r-- 1 awb 17806 Nov 10 16:34 gccdiff.tar.Z -rw-r--r-- 1 awb 16915 Oct 28 17:26 gccinc.tar.Z -rw-r--r-- 1 awb 80923 Nov 10 14:05 gcclib.tar.Z -rw-r--r-- 1 awb 39305 Nov 10 16:35 libdiff.tar.Z -rw-r--r-- 1 awb 6590 Oct 30 10:08 makediff.tar.Z -rw-r--r-- 1 awb 3578 Nov 10 14:08 pmldiff.tar.Z These are compressed (16bit) tar files. The binary 16bcompress is a 16 bit compress for MINIX-386, if you are still using a 13 bit compress. Comment about gcc implementation -------------------------------- The a.out format produced by gcc is not understood by MINIX and so has to be converted using the program gcc2minix (which is provided) It was considered that ld could do this conversion but that would require fairly major changes to ld and would stop other programs like size, nm, dumping and undumping from working so we decided on a special conversion program. Ideally we should modify the MINIX kernel to recognised gcc a.out format. Floating point is done in an interesting though inefficient way. The loader adds a floating point signal handler to the output file so that when floating point instructions occur the signal is caught and that instruction is decoded in software. This is inefficient but without a gcc machine description that does not depend on a 387 it is unclear what to do. Note that when soft-float is used (as it is by default) very few 387 instructions are actually generated. This method of fp does require a minor change to you kernel to note that there is no 387 processor. --------- Much of this code is copywritten. Please read the the appropriate copyright messages. It however the case that all the copyright's allow these files to be copied with few restrictions. The GNU licence is probably the strictest. Basically you can copy these files and give them to whoever you want, but you can't restrict them from passing the files on to others. No guarantee is given with these patches, but I hope you find them useful. If you find any bugs please let us know but we don't guarantee we'll have the time to fix them. I call this release beta test as I have not yet had many confirmations that it works yet. If you use this I would be grateful to know how you got on and any comments on it. Thanks go to: Richard Stallman and FSF for the GNU software Andy Tanenbaum for MINIX Bruce Evans for his 386 patches Earl Chew for estdio Fred Fish for pml Richard Tobin for doing the difficult bits Dept of AI and AIAI, University of Edinburgh for providing machines used in bootstraping this software. Glen Overby at North Dakota for disk space. And others that I have forgotten about -- sorry Alan W Black awb@ed.ac.uk Richard Tobin richard@aiai.ed.ac.uk Oct 1990 -------------------------------------------------------------------------- Alan W Black 80 South Bridge, Edinburgh, UK Dept of Artificial Intelligence tel: (+44) -31 225 7774 x228 or x223 University of Edinburgh email: awb@ed.ac.uk
duncan@spectre.vlsi.sgi.com (Donald Duncan) (11/30/90)
In article <3469@aipna.ed.ac.uk>, awb@aipna.ed.ac.uk (Alan W Black) writes: > > Announcing gcc 1.37.1 and Gnu emacs 18.55 > for MINIX 1.5.10 386 > for beta testing >... Thank you very much! Merry Christmas to you too! This was one of the last missing pieces of the puzzle. >... > It is interesting to note that gcc and gas effectively require > no patches at all to compile under MINIX. Gas requires a change to > the make file while the gcc diffs simply include a modified config file > for the 386. Our problem was bootstraping the first copy of gcc. No kidding. I pulled most of my remaining hair out trying to get gcc bootstrapped. I set it aside about two months ago when classes resumed. I installed the bin, lib, and include files (late) last night. So far I have found one error in your instructions. In gcclib/README you say: > Libraries for gcc minix implementation > > These libraries should go in the following places > > cp libc.a /usr/lib/libc.a > cp libm.a /usr/lib/libm.a > cp gnulib /usr/local/lib/gcc/gnulib > cp crt0.o /usr/local/lib/gcc/gnulib The last line should read: > cp crt0.o /usr/local/lib/gcc/crt0.o The only substantial things I have compiled so far are bison and flex. Flex had minor problems in the prototype declaration for unlink (trivial fix) and bison compiled and loaded on the first attempt. I did have to modify the Makefiles to search /usr/local/lib/gcc/gcc-include before /usr/include. This may be due to the particular installation state that I have - I'm not certain yet. I'm having difficulties with the floating point library but I'm sure it is a case of operator error. If it isn't I'll post bugs/fixes. Again, Many Thanks to all involved. duncan@sgi.com (Donald Duncan)
paradis@crater.zk3.dec.com (Jim Paradis) (11/30/90)
In article <3469@aipna.ed.ac.uk>, awb@aipna.ed.ac.uk (Alan W Black) writes: >> >> Announcing gcc 1.37.1 and Gnu emacs 18.55 >> for MINIX 1.5.10 386 >> for beta testing I just brought ftp'ed this gcc and brought it up on my machine running MINIX 1.5/386, and it seems to work like a champ! My only question is: is is possible to get this thing to generate 8088-only code? Otherwise, recompiling the MINIX kernel is going to be impossible for me (there are a few modules that have to be compiled this way because they run in real mode...) Thanks! Jim Paradis, working at but not employed by DEC. (603)881-1221 paradis@decvax.dec.com "All I got was a rock!"