The following problems have been reported by readers building the source code. I am just collecting these and making them available: I do not have access to all the systems to try and duplicate the problems and/or fix them. Please let me know of any additional problems.
An alternate fix is to change the configure script, as noted here:
echo $ac_n "checking for timespec{}""... $ac_c" 1>&6 echo "configure:3077: checking for timespec{}" >&5 if eval "test \"`echo '$''{'ac_cv_have_timespec_struct'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF #line 3082 "configure" #include "confdefs.h" #include <time.h> #include <sys/time.h> /* <== added for FreeBSD 2.2.5 */ EOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "timespec" >/dev/null 2>&1; then rm -rf conftest* ac_cv_have_timespec_struct=yes else rm -rf conftest* ac_cv_have_timespec_struct=no fi rm -f conftest* fi echo "$ac_t""$ac_cv_have_timespec_struct" 1>&6 if test $ac_cv_have_timespec_struct = yes ; then cat >> confdefs.h <<\EOF #define HAVE_TIMESPEC_STRUCT 1 EOF fi
# System = hppa1.1-hp-hpux10.2 CC = cc # I added -Aa flag (Ansi Mode Compilation) in CFLAGS variable CFLAGS = -g -D_HPUX_SOURCE -Aa LIBS = ../libunp.a LIBS_XTI = ../libunpxti.a ../libunp.a -lxtiTo build libgai I had problems with the h_errno variable undefined, so I found the definition of this variable in /usr/include/netdb.h, the code fragment in netdb.h is:
#ifdef _XOPEN_SOURCE_EXTENDED extern int h_errno; #endifSo I just added the -D_XOPEN_SOURCE_EXTENDED directive in CFLAGS in Make.defines but this didn't work so I did a dirty modification to the libgai/addrinfo.h file, I included the next line at the begining of addrinfo.h file:
extern int h_errno;
Another problem has been reported with glibc2: the configure script assumes that the presence of the addrinfo structure in <netdb.h> means that the NI_xxx names are defined in that header, which is not the case for these systems. You will need to define these constants yourself.
RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;;They should be located near the SINIX section and the SINIX section should stay in place, as many older systems are still around.
The configure script seems to work OK, but it does enable the HAVE_MSGHDR_MSG_CONTROL constant in config.h. This causes the code in lib/read_fd.c to fail on line 34 of page 387 in UNP. The constant SCM_RIGHTS on that line is not known on the SGI apparently. I removed the define in config.h and the code compiles OK.
The config.h file correctly attempts to substitute socklen_t with unsigned int, but for some reason the compilation in lib doesn't actually do the substitution properly, this is probably an SGI idiosyncrasy, I have seen many others. I think SGI is probably behind in their implementation of Posix.1g. The code compiles with warning messages.
The strangest error is that SGI haven't prototyped the pthread_create function properly. In their code and man page, the second argument is prototyped as pthread_attr_t *, i.e. without the const modifier. I have been chasing around all morning to see if I have missed something on this. I have the latest patch installed, but no dice. I have opened a case with tech support, and will let you know what happens.
Compiling in intro/ generates many warning errors saying that the weak definitions of xdr_* functions in /usr/lib/libnsl.so are preempted by weak definitions in /usr/lib/libc.so. So now we know!