www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/11/14/06:59:33

Date: 14-NOV-1994 10:59:29 +0100
From: TAUPIN AT rsovax DOT lps DOT u-psud DOT fr
Subj: Compiling MicroEmacs
To: djgpp AT sun DOT soe DOT clarkson DOT edu

Reply to: Stephen Turnbull <turnbull AT shako DOT sk DOT tsukuba DOT ac DOT jp>

>   Date:  10-NOV-1994 10:36:27 +0100
>   From: TAUPIN AT rsovax DOT lps DOT u-psud DOT fr
>   Subj:  Compiling MIcroEmacs
>
>   Subject: compiling MicroEmacs.
>
>   PLEEEAAASE ! Do not send me advices you have not tested, 99.999%
>   of them fail.
>
>If the precision of the above statistic is justified, you have
>received 100,000 pieces of advice.  You would be doing us all a favor
>if you list them up and explain how they failed.
>
If I modify estruct.h with
#define UNIX	1	/* a random UNIX compiler (instead of 0)*/  
#define TURBO	0	/* Turbo C/MSDOS (instead of 1) */

Then "gcc -c msdos.c" gives the following diags (hand written due to lack
of > piping with gcc):

msdos.c: In function `doschar':
msdos.c:279: `rg' undeclared (first use this function)
...
msdos.c: In function `typeahead':
msdos.c:279: `rg' undeclared (first use this function)
...
msdos.c: In function `shellprog':
msdos.c:279: storage size of `regs' is not known
msdos.c: In function `execprog':
msdos.c:279: storage size of `regs' is not known
msdos.c:279: storage size of `segreg' is not known
...

On the other hand, if I keep "#define TURBO 1" and "#define UNIX 0" and try
to compile the "msdos.c" (the hardest) routine, then
I have to comment out some lines in "eproto.h", namely:

/* extern int setkey(KEYTAB *key, short type, char *name); */
/* char *strcat(char *, char *); */
/* char *strcpy(char *, char *); */
/* char *malloc(int); */

but, in fine, I get the diagnostic:

msdos.c:898 `_doserrno' undeclared (first use this function)

and the source was:

#if	(TURBO | MSC | DTL) && (NOVELL == 0)
	intdosx(&regs, &regs, &segreg);
	if (regs.x.cflag == 0) {
		regs.h.ah = 0x4d;	/* get child process return code */
		intdos(&regs, &regs);	/* go do it */
		rval = regs.x.ax;	/* save child's return code */
	} else
		rval = -_doserrno;	/* failed child call */
#endif

---> a solution or a bypass?
Thanks
D. Taupin


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019