Ralf Wildenhues cited Daniel Richard G. and wrote: > > However, I'm running into a more tricky issue during the build... > > > > source='sig2str.c' object='sig2str.o' libtool=no DEPDIR=.deps > > depmode=tru64 > > /bin/ksh ../build-aux/depcomp cc -std -std -I. -ieee -g -c -o > > sig2str.o > > sig2str.c > > cc: Error: /usr/include/sys/timers.h, line 107: The member "it_interval" > > has > > an incomplete type. (incompmem) > > struct timespec it_interval; /* timer interval */ > > ---------------------------------^ > > Yes, this is where I got stuck, too, on OSF/Tru64 4.0D. I haven't been > able to get to the bottom of it yet, but it seems that there is some > impedance mismatch between the replacement header lib/time.h and the > headers included by /usr/include/time.h. struct timespec is defined in > /usr/include/sys/sysmisc.h, but somehow the inclusion tree ends up > expanding use before definition.
The usual way to debug this kind of things is 1) to look at the preprocessor output. Here: $ cc -std -std -I. -ieee -g -E sig2str.c > i Does this output contain the typedef for 'struct timespec' or not? If so, does it use the definition from <sys/sysmisc.h> or from gnulib? 2) to try different compiler standard flags. What does "cc -std" mean, according to the manual pages? What effect does it have to compile without the "-std" option? Bruno