./configure error with Samba 3.2

David Michaels dragon at raytheon.com
Thu Jul 24 16:29:05 GMT 2008


Compiling Samba 3.2

    * Solaris 8
    * OpenSSL 0.9.8h
    * Berkeley DB 4.3.28 NC
    * OpenLDAP 2.3.39
    * MIT Kerberos 1.6.3
    * gcc 3.4.6
    * ./configure --with-acl-support --with-winbind --with-included-popt \
                  --with-pam --with-libsmbclient --with-ads --with-ldap \
                  --with-krb5=${destdir}/kerberos \
                  --prefix=${destdir}/samba


checking netinet/ip.h usability... no
checking netinet/ip.h presence... yes
configure: WARNING: netinet/ip.h: present but cannot be compiled
configure: WARNING: netinet/ip.h:     check for missing prerequisite 
headers?
configure: WARNING: netinet/ip.h: see the Autoconf documentation
configure: WARNING: netinet/ip.h:     section "Present But Cannot Be 
Compiled"
configure: WARNING: netinet/ip.h: proceeding with the preprocessor's result
configure: WARNING: netinet/ip.h: in the future, the compiler will take 
precedence
configure: WARNING:     ## ---------------------------------------- ##
configure: WARNING:     ## Report this to samba-technical at samba.org ##
configure: WARNING:     ## ---------------------------------------- ##
checking for netinet/ip.h... yes


 From the config.log:

configure:22902: checking netinet/ip.h usability
configure:22919: /usr/local.samba/bin/gcc -c -O -D_SAMBA_BUILD_=3 
-I/usr/local.samba/include -I/usr/local.samba/ssl/incl
ude -I/usr/local.samba/ldap/include -I/usr/local.samba/kerberos/include 
-D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_
BITS=64 -Iinclude -I./include  -I. -I. -I./lib/replace -I./lib/talloc 
-I./lib/tdb/include -I./libaddns -I./librpc -I./po
pt conftest.c >&5
In file included from conftest.c:197:
/usr/include/netinet/ip.h:61: error: field `ip_src' has incomplete type
/usr/include/netinet/ip.h:61: error: field `ip_dst' has incomplete type
/usr/include/netinet/ip.h:130: error: syntax error before "n_long"
/usr/include/netinet/ip.h:132: error: field `ipt_addr' has incomplete type
/usr/include/netinet/ip.h:133: error: syntax error before "n_long"
/usr/include/netinet/ip.h:135: error: syntax error before '}' token
/usr/include/netinet/ip.h:136: error: syntax error before '}' token
configure:22925: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "Samba"
| #define PACKAGE_TARNAME "samba"
| #define PACKAGE_VERSION "3"
| #define PACKAGE_STRING "Samba 3"
| #define PACKAGE_BUGREPORT "samba-technical at samba.org"
| #define CONFIG_H_IS_FROM_SAMBA 1
| #define _GNU_SOURCE 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 __EXTENSIONS__ 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define WORDS_BIGENDIAN 1
| #ifndef _XOPEN_SOURCE_EXTENDED
| #define _XOPEN_SOURCE_EXTENDED 1
| #endif
| #define _FILE_OFFSET_BITS 64
| #define HAVE_LONG_LONG 1
| #define SIZEOF_INT 4
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_LONG 4
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_OFF_T 8
| #define SIZEOF_SIZE_T 4
| #define SIZEOF_SSIZE_T 4
| #define HAVE_IMMEDIATE_STRUCTURES 1
| #define SIZEOF_SIZE_T 4
| #define SIZEOF_VOID_P 4
| #define HAVE_VOLATILE 1
| #define SYSV 1
| #define _LARGEFILE64_SOURCE 1
| #define _FILE_OFFSET_BITS 64
| #define RETSIGTYPE void
| #define HAVE_STRUCT_STAT_ST_RDEV 1
| #define HAVE_ST_RDEV 1
| #define loff_t off_t
| #define HAVE_PIPE 1
| #define HAVE_STRFTIME 1
| #define HAVE_SRANDOM 1
| #define HAVE_RANDOM 1
| #define HAVE_SRAND 1
| #define HAVE_RAND 1
| #define HAVE_USLEEP 1
| #define HAVE_SETBUFFER 1
| #define HAVE_LSTAT 1
| #define HAVE_GETPGRP 1
| #define HAVE_STDBOOL_H 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SETJMP_H 1
| #define HAVE_BOOL 1
| #define HAVE__Bool 1
| #define HAVE_MMAP 1
| #define HAVE_SYS_SYSLOG_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_TIME_H 1
| #define HAVE_STDARG_H 1
| #define HAVE_SYS_MOUNT_H 1
| #define HAVE_STROPTS_H 1
| #define HAVE_SETEUID 1
| #define HAVE_SETEGID 1
| #define HAVE_CHROOT 1
| #define HAVE_BZERO 1
| #define HAVE_STRERROR 1
| #define HAVE_VSYSLOG 1
| #define HAVE_SETLINEBUF 1
| #define HAVE_MKTIME 1
| #define HAVE_FTRUNCATE 1
| #define HAVE_RENAME 1
| #define HAVE_WAITPID 1
| #define HAVE_STRLCPY 1
| #define HAVE_STRLCAT 1
| #define HAVE_INITGROUPS 1
| #define HAVE_MEMMOVE 1
| #define HAVE_STRDUP 1
| #define HAVE_PREAD 1
| #define HAVE_PWRITE 1
| #define HAVE_STRTOK_R 1
| #define HAVE_ISATTY 1
| #define HAVE_ERRNO_DECL 1
| #define HAVE_SECURE_MKSTEMP 1
| #define HAVE_STDIO_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_DECL_SNPRINTF 1
| #define HAVE_DECL_VSNPRINTF 1
| #define HAVE_DECL_ASPRINTF 0
| #define HAVE_DECL_VASPRINTF 0
| #define HAVE_SNPRINTF 1
| #define HAVE_VSNPRINTF 1
| #define HAVE_VA_COPY 1
| #define HAVE_FUNCTION_MACRO 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_LIMITS_H 1
| #define HAVE_STRTOULL 1
| #define HAVE_STRTOLL 1
| #define HAVE__VA_ARGS__MACRO 1
| #define HAVE_SIG_ATOMIC_T_TYPE 1
| #define HAVE_VOLATILE 1
| #define HAVE_DIRENT_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_SYS_FCNTL_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_IOCTL_H 1
| #define HAVE_SYS_MODE_H 1
| #define HAVE_SYS_FILIO_H 1
| #define HAVE_SYS_ACL_H 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_UTIME_H 1
| #define TIME_WITH_SYS_TIME 1
| #define HAVE_UTIME 1
| #define HAVE_UTIMES 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_GRP_H 1
| #define HAVE_SHADOW_H 1
| #define HAVE_PWD_H 1
| #define HAVE_GETPWNAM_R 1
| #define HAVE_GETPWUID_R 1
| #define HAVE_GETPWENT_R 1
| #define HAVE_GETPWENT_R_DECL 1
| #define SOLARIS_GETPWENT_R 1
| #define HAVE_GETGRNAM_R 1
| #define HAVE_GETGRGID_R 1
| #define HAVE_GETGRENT_R 1
| #define HAVE_GETGRENT_R_DECL 1
| #define SOLARIS_GETGRENT_R 1
| #define HAVE_CTYPE_H 1
| #define HAVE_LOCALE_H 1
| #define HAVE_FNMATCH_H 1
| #define HAVE_SYS_IPC_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_SYS_TERMIO_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_DLOPEN 1
| #define HAVE_DLSYM 1
| #define HAVE_DLERROR 1
| #define HAVE_DLCLOSE 1
| #define REPLACE_GETPASS_BY_GETPASSPHRASE 1
| #define REPLACE_GETPASS 1
| #define REPLACE_STRPTIME 1
| #define HAVE_MKDIR_MODE 1
| #define HAVE_SYSLOG 1
| #define HAVE_PRINTF 1
| #define HAVE_MEMSET 1
| #define HAVE_MEMCPY 1
| #define LIBREPLACE_NETWORK_CHECKS 1
| #define HAVE_SYS_SOCKET_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NETDB_H 1
| #define HAVE_ARPA_INET_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <netinet/ip.h>
configure:22939: result: no
configure:22943: checking netinet/ip.h presence
configure:22958: /usr/local.samba/bin/gcc -E -I/usr/local.samba/include 
-I/usr/local.samba/ssl/include -I/usr/local.samb
a/ldap/include -I/usr/local.samba/kerberos/include -D_LARGEFILE_SOURCE 
-D_REENTRANT -D_FILE_OFFSET_BITS=64 -Iinclude -I.
/include  -I. -I. -I./lib/replace -I./lib/talloc -I./lib/tdb/include 
-I./libaddns -I./librpc -I./popt conftest.c
configure:22978: result: yes
configure:22991: WARNING: netinet/ip.h: present but cannot be compiled
configure:22993: WARNING: netinet/ip.h:     check for missing 
prerequisite headers?
configure:22995: WARNING: netinet/ip.h: see the Autoconf documentation
configure:22997: WARNING: netinet/ip.h:     section "Present But Cannot 
Be Compiled"
configure:22999: WARNING: netinet/ip.h: proceeding with the 
preprocessor's result
configure:23001: WARNING: netinet/ip.h: in the future, the compiler will 
take precedence
configure:23011: checking for netinet/ip.h
configure:23019: result: yes



Relevant bit from netinet/ip.h:

struct ip {
#ifdef _BIT_FIELDS_LTOH
        uchar_t ip_hl:4,                /* header length */
                ip_v:4;                 /* version */
#else
        uchar_t ip_v:4,                 /* version */
                ip_hl:4;                /* header length */
#endif
        uchar_t ip_tos;                 /* type of service */
        short   ip_len;                 /* total length */
        ushort_t ip_id;                 /* identification */
        short   ip_off;                 /* fragment offset field */
#define IP_DF 0x4000                    /* dont fragment flag */
#define IP_MF 0x2000                    /* more fragments flag */
        uchar_t ip_ttl;                 /* time to live */
        uchar_t ip_p;                   /* protocol */
        ushort_t ip_sum;                /* checksum */
        struct  in_addr ip_src, ip_dst; /* source and dest address */
};


And from in.h:
/*
 * Note: IPv4 address data structures usage conventions.
 * The "in_addr_t" type below (required by Unix standards)
 * is NOT a typedef of "struct in_addr" and violates the usual
 * conventions where "struct <name>" and <name>_t are corresponding
 * typedefs.
 * To minimize confusion, kernel data structures/usage prefers use
 * of "ipaddr_t" as atomic uint32_t type and avoid using "in_addr_t"
 * The user level APIs continue to follow the historic popular
 * practice of using "struct in_addr".
 */
[....]
struct in_addr {
    union {
        struct { uint8_t s_b1, s_b2, s_b3, s_b4; } _S_un_b;
        struct { uint16_t s_w1, s_w2; } _S_un_w;
#if !defined(_XPG4_2) || defined(__EXTENSIONS__)
        uint32_t _S_addr;
#else
        in_addr_t _S_addr;
#endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */
    } _S_un;
#define    s_addr    _S_un._S_addr        /* should be used for all code */
#define    s_host    _S_un._S_un_b.s_b2    /* OBSOLETE: host on imp */
#define    s_net    _S_un._S_un_b.s_b1    /* OBSOLETE: network */
#define    s_imp    _S_un._S_un_w.s_w2    /* OBSOLETE: imp */
#define    s_impno    _S_un._S_un_b.s_b4    /* OBSOLETE: imp # */
#define    s_lh    _S_un._S_un_b.s_b3    /* OBSOLETE: logical host */
};


Cheers,
--Dragon




More information about the samba-technical mailing list