It appears that sockaddr_storage check is failing. From ./configure : ... checking for struct in6_addr... yes checking for struct sockaddr_storage... no checking for struct sockaddr_in6... yes checking for struct addrinfo... yes ... So it gets included in 'missing.h'. Subsequent make now chokes with: gcc -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DOPENSSL_NO_KRB5 - D_LIBRADIUS -I../include -DHMAC_SHA1_DATA_PROBLEMS -c dict.c -fPIC - DPIC -o .libs/dict.o In file included from ../include/libradius.h:37, from dict.c:42: /usr/include/sys/socket.h:239: redefinition of `struct sockaddr_storage' gmake[4]: *** [dict.lo] Error 1 gmake[4]: Leaving directory `/work/working-code/radiusd/src/lib' gmake[3]: *** [common] Error 2 gmake[3]: Leaving directory `/work/working-code/radiusd/src' gmake[2]: *** [all] Error 2 gmake[2]: Leaving directory `/work/working-code/radiusd/src' gmake[1]: *** [common] Error 2 gmake[1]: Leaving directory `/work/working-code/radiusd' *** Error code 2 make: Fatal error: Command failed for target `all' config.log shows: .... configure:23179: checking for struct sockaddr_storage configure:23208: gcc -c -g -O2 -D_REENTRANT - D_POSIX_PTHREAD_SEMANTICS -DOPENSSL_NO_KRB5 conftest.c
&5 conftest.c: In function `main': conftest.c:69: sizeof applied to an incomplete type configure:23214: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #ifdef __cplusplus | extern "C" void std::exit (int) throw (); using std::exit; | #endif | #define _FILE_OFFSET_BITS 64 | #define WORDS_BIGENDIAN 1 | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_DLFCN_H 1 | #define ASCEND_BINARY | #define HAVE_PTHREAD_H 1 | #define HAVE_LIBSOCKET 1 | #define HAVE_LIBRESOLV 1 | #define HAVE_LIBNSL 1 | #define HAVE_DIRENT_H 1 | #define STDC_HEADERS 1 | #define TIME_WITH_SYS_TIME 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_CRYPT_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_MALLOC_H 1 | #define HAVE_UTMP_H 1 | #define HAVE_UTMPX_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYSLOG_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDIO_H 1 | #define HAVE_NETDB_H 1 | #define HAVE_SEMAPHORE_H 1 | #define HAVE_ARPA_INET_H 1 | #define HAVE_NETINET_IN_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_SOCKET_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_SYS_FCNTL_H 1 | #define HAVE_NET_IF_H 1 | #define HAVE_REGEX_H | #define HAVE_REG_EXTENDED | #define HAVE_STRUCT_IN6_ADDR 1 | /* end confdefs.h. */ | | #ifdef HAVE_NETINET_IN_H | #include <netinet/in.h> | #endif | | | int | main () | { | if ((struct sockaddr_storage *) 0) | return 0; | if (sizeof (struct sockaddr_storage)) | return 0; | ; | return 0; | } configure:23237: result: no .....
Adding an '#include <sys/socket.h>' to the conftest file passes the test. Possible patch: Index: configure.in =================================================================== RCS file: /source/radiusd/configure.in,v retrieving revision 1.222 diff -p -r1.222 configure.in *** configure.in 1 Nov 2005 19:04:49 -0000 1.222 --- configure.in 4 Nov 2005 17:01:57 -0000 *************** AC_CHECK_TYPE(struct sockaddr_storage, A *** 662,667 **** --- 662,670 ---- #ifdef HAVE_NETINET_IN_H #include <netinet/in.h> #endif + #ifdef HAVE_SYS_SOCKET_H + #include <sys/socket.h> + #endif ]) AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE (HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [ -Chris -- Chris Parker Director, Engineering StarNet A Service of US LEC (888)212-0099 Fax (847)963-1302 Wholesale Internet Services http://www.megapop.net VoiceEclipse, The Fresh Alternative http://www.voiceeclipse.com NOTICE: Message is sent IN CONFIDENCE to addressees. It may contain information that is privileged, proprietary or confidential.