[comp.unix.xenix] xenix header file problems

ray@madnix.UUCP (Ray P. Hill) (11/21/87)

I'm having problems compiling "umoria" on my SCO 2.2.1 XENIX. 

My most current problem seems to be related to the XENIX system include files.
"umoria" wants to use the include file <sys/file.h>, however the "file"
structure in file.h needs the structure "inode" defined. No problem, I'll
include <sys/inode.h>. But wait, the "inode" structure uses the "iisem"
structure which in turn uses the "file" structure. Is there anyway to get the
file structure defined?

		file		structure name	uses
		-------------	--------------	-----
		<sys/file.h>	file		inode
		<sys/inode.h>	inode		iisem
		<sys/inode.h>	iisem		file

(I ran into this same problem with "month")

If I'm doing something wrong make sure and tell me.

						Thanks
						Ray Hill
-- 
UUCP: {harvard,rutgers}!uwvax!nicmad!madnix!ray
      {ihnp4,decvax,terminus}/

chapman@sco.COM (Brian Chapman) (11/28/87)

In article <166@madnix.UUCP> ray@madnix.UUCP (Ray P. Hill) writes:
< 
< I'm having problems compiling "umoria" on my SCO 2.2.1 XENIX. 
< 
< My most current problem seems to be related to the XENIX system include files.
< "umoria" wants to use the include file <sys/file.h>, however the "file"
< structure in file.h needs the structure "inode" defined. No problem, I'll
< include <sys/inode.h>. But wait, the "inode" structure uses the "iisem"
< structure which in turn uses the "file" structure. Is there anyway to get the
< file structure defined?
< (I ran into this same problem with "month")
< If I'm doing something wrong make sure and tell me.
< 						Thanks
< 						Ray Hill

I complied umoria on SCO 286 2.2.1 (almost) straight off the net.
 1) Declared "cave" to be huge and padded cave_type to 16 bytes.
 2) fixed some very bad code in (misc2.c)insert_str()
 3) fixed function pointer usage by changing
	"destroy(arg)" to "(*destroy)(arg)"
	as described in an earlier posting.
 3) changed calls to cbreak(), nocbreak(), setterm() and resetterm()
       into calls to crmode(), nocrmode(), setty() and resetty()
 4) Messed with the Makefile a little
	[ started with Makefile.USG ]
	[ use -LARGE -Mle ]
	[ use -ND <otherdataseg> for monsters.c, treasure1.c treasure2.c ]
	[ and variables.c ]

*But*, I had no problem with the include files.
<sys/file.h> does not require the "inode" structure definition.
It needs the definition of "inodep_t" which the moria source
includes from <sys/types.h> which is #define'ed "struct inode far *"
so you do need the -Me complier switch.  You don't need the
definition of "struct inode" because that type is not used anywhere
in moria.

There may be 16 problems.  The first time
I kill a monsters my experience goes negative.
--------
		ihnp4!--\
Brian Chapman	microsof!sco!chapman
		uunet!--/