Announcing gcc 1.37.1 and Gnu emacs 18.55 for MINIX 1.5.10 386 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. 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. And others that I have forgotten about Alan W Black awb@ed.ac.uk Richard Tobin richard@aiai.ed.ac.uk Oct 1990