Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!cs.utexas.edu!uunet!ncrlnk!ncr-sd!crash!pnet01!jca From: jca@pnet01.cts.com (John C. Archambeau) Newsgroups: comp.os.minix Subject: Re: C compiler for MINIX/286 Message-ID: <107@crash.cts.com> Date: 29 Jul 89 18:16:07 GMT Sender: root@crash.cts.com Organization: People-Net [pnet01], El Cajon CA Lines: 27 It's a bit more than simple hacking of mm... The problem is that the Minix kernel doesn't support large model programs. The memory management task needs to be rewritten as well. Also the a.out header needs to be modified and not to mention the function load_seg needs to be rewritten. It's all all in the compiler. You also have to make Minix aware of the fact that you can have these huge programs from hell that can be forked, execed, et. al. And yes, it is faster the compile under the MesS-DOS C compilers, but then there's that problem, how does the MesS-DOS world keep track of large programs? And under 286 protect mode, that's another ball game entirely, DOS doesn't want to have a thing to do with 286 protect mode and none of the DOS C compilers generate 286 protect mode code. Certainly they generate 286 protect mode instructions (at least TC does), but where's the protect mode? It ain't there. Another side note, MS-DOS C compilers also optimize a helluva lot better than Minix C...especially if you compile to the 186/286 instruction set. This is a very viable thing to do since you chop 20K off the size of the image. Note to you NEC V20/V30 people, you have the 186/286 instruction set, so if you want to save 20K on your image size, do it. It works with Turbo C 1.5. /*--------------------------------------------------------------------------* * Flames: /dev/null (on my Minix partition) *--------------------------------------------------------------------------* * ARPA : crash!pnet01!jca@nosc.mil * INET : jca@pnet01.cts.com * UUCP : {nosc ucsd hplabs!hd-sdd}!crash!pnet01!jca *--------------------------------------------------------------------------*/