[comp.os.minix] Cross compiling 1.3 with Turbo-C

broman@cod.NOSC.MIL (Vincent P. Broman) (07/20/88)

I've been cross-compiling Minix v1.3 using Turbo-C v1.5 and
A86 v3.15 with very few problems.  (Nice, cheap system!)
I list some fixes below, and eventually will post a complete kit,
but first a question ---

Dos2out needs to know the text-size of the .EXE program it's converting,
and it gets the info from the program's relocation table.
Can someone explain when and why a small-model compilation
produces relocation table entries?  The crtso.asm supplied with Minix
does something like "mov ax,DGROUP" to magically create one entry
which reveals the size of the program text.  How??

Minor fixes to allow compilation of /lib ---

/include/minix/const.h line 10
is intended as a stumblingblock for the compiler if neither i8088
nor ATARI_ST are #defined.  However the line should not be
"#Either_i8088_or_ATARI_ST"...
but rather
"#error Either i8088 or ATARI_ST"...
or
"Either i8088 or ATARI_ST"...
so cpp will not complain of an invalid preprocessor command
when the necessary #define has been supplied.


/lib/fopen.c line 2
is missing a
#include "lib.h"
or else a
#include <errno.h>
extern int errno;


/lib/malloc.c line 1
should have its "#define i8088 1" protected by a
"#ifndef i8088" so as not to redefine the symbol.


/lib/regexp.c line 1002
is missing this declaration inside a function
extern char *strchr();


And a mystery appeared in connection with /lib/regexp.c line 377
when the compiler warned "code has no effect in function regbranch"
in reference to this fragment ---
	if (chain == NULL)
		(void) regnode (NOTHING);
and inspection suggests chain is often non NULL and function regnode
does do some actions with the argument NOTHING.  Have I not analysed
it closely enough?


Vincent Broman,  code 632, Naval Ocean Systems Center, San Diego, CA 92152, USA
Phone: +1 619 553 1641    Internet: broman@nosc.mil   Uucp: sdcsvax!nosc!broman

evas@eurtrx.UUCP (Eelco van Asperen) (07/25/88)

in article <1163@cod.NOSC.MIL>, broman@cod.NOSC.MIL (Vincent P. Broman) says:
> 
> Dos2out needs to know the text-size of the .EXE program it's converting,
> and it gets the info from the program's relocation table.
> Can someone explain when and why a small-model compilation
> produces relocation table entries?

When I cross-compiled Minix v1.1 and v1.2 with Turbo C 1.1, I used
the _tiny_ model to avoid this kind of problems. You can still have
separate I&D programs under Minix so you don't lose anything by
using the tiny rather than the small model. I'm still working on
entering the v1.3a and v1.3b diffs into SCCS so I haven't really
started to compile v1.3 yet. How do other Minix-users maintain
their versions ?

-- 
Eelco van Asperen
uucp:        evas@eurtrx / mcvax!eurtrx!evas   #include <inewsfiller.h>
earn/bitnet: asperen@hroeur5                   #include <stdjunk.h>
"We'ld like to know a little bit about you for our files",				-Simon & Garfunkel, Mrs. Robinson.