[comp.os.minix] 386 Minix with GCC, and what it can do.

dbrown%ece@ucsd.edu (David L. Brown) (09/14/90)

I am posting to inform the minix community that I have a stable
version of gcc running under Bruce Evans 386 Kernel.

I have recompiled all of the library, and utilities, and fs, mm, and init.
The kernel could probably be done with some work.

The biggest problem I have encountered is the need for an 80387.
This chip is expensive.  The compiler currently performs a small
floating point operation in the optimizer.  This supposedly can be
faked without using floating point routines.  The compiler will
still crash the machine if it encounters a floating point constant
in a program.

I can post patches to the compiler, but most people will have a very
difficult time cross compiling it.  I can place a binary of my version
of the compiler somewhere, if someone is willing to hold it.  No
other compiler for minix will compile the compiler.

Using gcc, I have also brought up the following programs:
TeX:  This works but the broken line printer driver makes it
nearly useless to me.
GNU Emacs:  This is large, but is a very nice editor.  Some of
the features of the program are not present, because I have not
bothered figuring out how to make them work under Minix.

I have replaced several of the utilities with other GNU or pd programs.
Most things can be downloaded and compiled and run.  The biggest problem
seems to be the library.

I have not made stdio support floating point (more than %e to make
the compier work), because I am waiting for a better stdio (the current
one will probably change a lot for POSIX).

Please let me know how I can make gcc for Minix 386 available.

David Brown
dbrown@ucsd.edu
dbrown%ece@ucsd.edu   (If their mail program breaks again)

ast@cs.vu.nl (Andy Tanenbaum) (09/14/90)

In article <12653@sdcc6.ucsd.edu> dbrown%ece@ucsd.edu (David L. Brown) writes:
>Please let me know how I can make gcc for Minix 386 available.

How about sending it to the various MINIX archives, and posting an
announcement of this?

Andy Tanenbaum (ast@cs.vu.nl)

cechew@bruce.cs.monash.OZ.AU (Earl Chew) (09/16/90)

In <12653@sdcc6.ucsd.edu> dbrown%ece@ucsd.edu (David L. Brown) writes:

>I have not made stdio support floating point (more than %e to make
>the compier work), because I am waiting for a better stdio (the current
>one will probably change a lot for POSIX).

Try estdio. I posted it some time ago and it is also available from the
archives. I supports Posix and floating point. It is better than the Minix
version.

Earl
-- 
Earl Chew, Dept of Computer Science, Monash University, Australia 3168
EMAIL: cechew@bruce.cs.monash.edu.au PHONE: 03 5655447 FAX: 03 5655146
----------------------------------------------------------------------

richard@aiai.ed.ac.uk (Richard Tobin) (09/20/90)

In article <12653@sdcc6.ucsd.edu> dbrown%ece@ucsd.edu (David L. Brown) writes:
>The biggest problem I have encountered is the need for an 80387.
>This chip is expensive.  The compiler currently performs a small
>floating point operation in the optimizer.  This supposedly can be
>faked without using floating point routines.  The compiler will
>still crash the machine if it encounters a floating point constant
>in a program.

I have also been looking at gcc for 386 Minix.  Cross-compiling was
*very* tedious.

Unfortunately, the gcc machine description for the 386 uses floating-
point instructions even if -msoft-float is used, so it's not enough
to find the usual floating-point routines.  I suspect it wouldn't be
hard to change the machine description to fix this (it may be just
that it expects to receive floating function return values in an fp
register).

Of course, this shouldn't crash the machine.  The reason it does is
that Minix doesn't set the EM bit to indicate that 387 instructions
should be trapped.  If it did, you would just get a core dump.  This
is easily fixed - perhaps someone more familiar with the kernel code
could decide just where it should be done.  The 387 programmer's
reference provides a routine for detecting whether a 387 is present.

More ambitiously, has anyone written 387 emulation routines for
Minix so that programs can just pretend the 387 is present?

-- Richard
-- 
Richard Tobin,                       JANET: R.Tobin@uk.ac.ed             
AI Applications Institute,           ARPA:  R.Tobin%uk.ac.ed@nsfnet-relay.ac.uk
Edinburgh University.                UUCP:  ...!ukc!ed.ac.uk!R.Tobin