porting from bds to sys V

Andrew Davidson aed at netcom.UUCP
Sat Jan 5 08:55:50 AEST 1991


hi

I am currently trying to port tcl ( a public domain command line interperter, 
it is designed to be embeded in applications) from the BSD universe to 
System 5.3. (it runs on a SUN work station but won`t compile on SCO unix)


The first set of errors are related to the  following line

#include <stdio.h>
#include <errno.h>
#include <pwd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/dir.h>
#include <sys/stat.h>
#include <tcl.h>

	DIR *d;				line 263
	struct direct *entryPtr;

	entryPtr = readdir(d);  	line 292


	cc -g -I.  -DTCL_VERSION=\"3.3\" -c tclGlob.c
tclGlob.c
tclGlob.c(263) : error C2065: 'DIR' : undefined
tclGlob.c(263) : error C2065: 'd' : undefined

I discovered that DIR was defined in /usr/include/dirent.h. Adding this header
file and recompiling got me


	cc -g -I. -DSCO -DTCL_VERSION=\"3.3\" -c tclGlob.c
tclGlob.c
tclGlob.c(292) : warning C4049: '=' : indirection to different types
tclGlob.c(308) : error C2038: 'd_namlen' : not struct/union member
tclGlob.c(310) : error C2038: 'd_namlen' : not struct/union member
tclGlob.c(313) : error C2038: 'd_namlen' : not struct/union member


so I took a look at my man pages for readdir() and found it to be defined as

	struct dirent *readdir( dirp )
	DIR *dirp

I did a little snooping around and found the following in 
/usr/include/sys/ndir.h

	extern	struct direct *readdir();

I though this would do the trick but including this header file go me 

	cc -g -I. -DSCO -DTCL_VERSION=\"3.3\" -c tclGlob.c
tclGlob.c
/usr/include/sys/ndir.h(45) : warning C4005: 'MAXNAMLEN' : redefinition
/usr/include/sys/ndir.h(47) : error C2025: 'direct' : enum/struct/union type redefinition
/usr/include/sys/ndir.h(73) : error C2122: typedef specifies different struct
/usr/include/sys/ndir.h(78) : error C2086: 'readdir' : redefinition
/usr/include/sys/ndir.h(81) : warning C4005: 'rewinddir' : redefinition


I tried compiling with just the ndir.h file (not dirent.h) and got


	cc -g -I. -DSCO -DTCL_VERSION=\"3.3\" -c tclGlob.c
tclGlob.c
/usr/include/sys/ndir.h(47) : error C2025: 'direct' : enum/struct/union type redefinition


I am also having trouble with wait(), but it is in a non-essential cunk of code
Any Ideas?

andy

-- 
-----------------------------------------------------------------
                  "bede-bede-bede Thats all Folks"
				Porky Pig
Andy Davidson
Woodside CA.
aed at netcom
-----------------------------------------------------------------



More information about the Comp.unix.wizards mailing list