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).