[comp.os.minix] Future Patches

paula@bcsaic.UUCP (Paul Allen) (06/16/87)

In article <421@psu-cs.UUCP>, mmason@psu-cs.UUCP (Mark C. Mason) writes:
>I'm using MSC as a cross-compiling environment (the compiler that came
>with MINIX is a joke).  With it I'm running graphics applications with
>floating point.  It's simply a matter of using the libraries that came with
>Microsoft C.


Is it really that simple?  I just got a copy of MINIX recently and am
starting to do just what you are doing.  Since my machine (a Z-100)
can't run MINIX as distributed, I am forced to modify and compile the
pieces required to build a boot diskette using the best tool I have: MSC
4.0.  Could you please elaborate on a few points?

a)	I assume that you compiled the routines in libsrc.a using MSC
	and built a library for linking MINIX executables.  Is that
	*all* you had to do?

b)	What did you do about crtso?  Did you use the MINIX version?
	The C86 version?  The start-up routine in the MSC library?  Did
	you make changes?  If so, please post.

c)	Did you use the MSC libraries without any changes, or did you
	extract only those modules that were needed for linking MINIX
	exectables?  If you built a special library, what order are the
	routines in?

d)	What version of the compiler are you using?  What switches do
	you use on the compile?

Those of us who are just starting down the path appreciate the fact that
pathfinders like yourself are willing to share your experience.

>					Mark Mason
>					...!tektronix!psu-cs!mmason

Paul Allen
...!uw-beaver!ssc-vax!bcsaic!paula
paula@boeing.com

mmason@psu-cs.UUCP (06/18/87)

In article <1433@bcsaic.UUCP> paula@bcsaic.UUCP (Paul Allen) writes:
>
>In article <421@psu-cs.UUCP>, mmason@psu-cs.UUCP (Mark C. Mason) writes:
>>I'm using MSC as a cross-compiling environment (the compiler that came
>>with MINIX is a joke).  With it I'm running graphics applications with
>>floating point.  It's simply a matter of using the libraries that came with
>>Microsoft C.
>
>
>Is it really that simple?  I just got a copy of MINIX recently and am

Floating point really was that simple, I did it in just a couple of
hours.   Assuming you have some C compiler cross compiling, it shouldn't
be that much trouble to make use of the compiler's floating point
libraries.

However:  setting up MSC to cross-compile was definitely not trivial.
I apologize, my statement was misleading (ok, so I exaggerated a bit :-).
It took 4 weeks of evenings and weekends to get to the point where I
could put in the hard disk fixes and boot the re-compiled kernel.

>a)	I assume that you compiled the routines in libsrc.a using MSC
>	and built a library for linking MINIX executables.  Is that
>	*all* you had to do?

Well, sort of.  Most of the work centered around the segmentation models
used by MSC and required by MINIX.  Nearly all of this work was done with
the assembly files; almost none of the C files needed work.

>
>b)	What did you do about crtso?  Did you use the MINIX version?
>	The C86 version?  The start-up routine in the MSC library?  Did
>	you make changes?  If so, please post.

BUG WARNING:  Most of the C86 assembly files are badly out of date with
the current version of MINIX.  I discovered this late in the conversion,
and still need to go back and redo some of the ones I used.  I wound up
taking the stuff in PCIX (or minix, they're the same) and converting
them by hand to MASM.

I started with the minix crtso, but rewrote much of it to interface
with MSC's segmentation model.

>	etc...

I'm using MSC 3.0, but from what I can tell there is very little
difference between 3.0 and 4.0 (most of the bugs in 3.0 are still
there  !!#@$%*^*!^%#%^!!!!!).  They added large array support and
a new medium memory model in 4.0.  The code generated seems to be
the same speed and it takes longer to compile stuff, so I switched
back to 3.0.

I plan to make a posting in the next week or so.  There is still some
clean up work to be done; re-doing the C86 assembly files, a couple
pesky bugs, documentation, etc.

After cleaning things up, I will generate a DOS batchfile which
will:
	1.  install the changes I made to the MINIX sources,

	2.  extract the needed object modules from the MSC libraries
	    (including floating point),

	3.  compile/assemble everything in sight, and

	4.  generate a directory hierarchy and set of commands 
	    from which to cross-compile.

I still have a few evenings and weekends ahead of me.

>Paul Allen
>...!uw-beaver!ssc-vax!bcsaic!paula
>paula@boeing.com


					Mark C. Mason
					...!tektronix!psu-cs!mmason


P.S. regarding my comment about the MINIX C compiler, when I compiled
     the dhrystone benchmark under both MINIX and DOS it took <1 minute
     under DOS and >20 minutes under MINIX (most of that time spent
     with the disk access lights off).  Hence when I want to compile
     something to run under MINIX it's faster to reboot DOS, do
     the compile, then reboot MINIX and dosread in the binary.
     Apart from the C compiler, I think MINIX is a very respectable
     piece of work (FOR IT'S INTENDED PURPOSE).