Trying a resend here as the first attempt via email didn't seem to post.
Hello Everyone,
I'm trying to compile milter-greylist 3.0.0 on a VERY old Linx machine
and I'm having some problems with IPv6. Sendmail 8.14.1 compiles fine.
I've tried following the various archive recommendations of adding
"#undef AF_INET6" in various places but only changes the errors. I've
shown a few of the INET6 changes and their respected results below as
well if that helps.
Is there no way to cleanly disable IPv6?
I've also included the machine's various specs (don't laugh!), configure
output and config.h output for clarity.
--David
-------------------------------------------------------------------------------
Here is the error I see with a stock compile with no "#undef AF_INET6"
modifications:
tar xzvf milter-greylist-3.0.tgz
cd milter-greylist-3.0
make
gcc -g -O2 -Wall -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -c -o
milter-greylist.o milter-greylist.c
In file included from dump.h:67,
from milter-greylist.c:80:
milter-greylist.h:62: field `in6' has incomplete type
milter-greylist.h:70: field `sin6' has incomplete type
In file included from acl.h:51,
from milter-greylist.c:81:
pending.h:85: parse error before `pending_lock'
pending.h:85: warning: data definition has no type or storage class
In file included from milter-greylist.c:81:
acl.h:110: parse error before `acl_lock'
acl.h:110: warning: data definition has no type or storage class
In file included from milter-greylist.c:83:
conf.h:82: field `c_match_mask6' has incomplete type
conf.h:140: parse error before `conf_lock'
conf.h:140: warning: data definition has no type or storage class
In file included from milter-greylist.c:87:
autowhite.h:66: parse error before `autowhite_lock'
autowhite.h:66: warning: data definition has no type or storage class
milter-greylist.c: In function `mlfi_connect':
milter-greylist.c:146: sizeof applied to an incomplete type
milter-greylist.c: In function `main':
milter-greylist.c:817: `INET6_ADDRSTRLEN' undeclared (first use this
function)
milter-greylist.c:817: (Each undeclared identifier is reported only once
milter-greylist.c:817: for each function it appears in.)
milter-greylist.c:817: size of array `maskstr' has non-integer type
milter-greylist.c: In function `prefix2mask6':
milter-greylist.c:1211: `uint32_t' undeclared (first use this function)
milter-greylist.c:1211: parse error before `m'
milter-greylist.c:1214: dereferencing pointer to incomplete type
milter-greylist.c:1218: `m' undeclared (first use this function)
milter-greylist.c:1221: parse error before `)'
milter-greylist.c:1221: dereferencing pointer to incomplete type
milter-greylist.c: In function `unmappedaddr':
milter-greylist.c:1241: dereferencing pointer to incomplete type
milter-greylist.c:1242: warning: implicit declaration of function
`IN6_IS_ADDR_V4MAPPED'
milter-greylist.c:1242: dereferencing pointer to incomplete type
milter-greylist.c:1244: `uint32_t' undeclared (first use this function)
milter-greylist.c:1244: parse error before `)'
milter-greylist.c:1244: dereferencing pointer to incomplete type
milter-greylist.c:1245: dereferencing pointer to incomplete type
make: *** [milter-greylist.o] Error 1
-------------------------------------------------------------------------------
As a few tests, I add "#undef AF_INET6" to milter-greylist.c line 94 and
here are the results
--
make
gcc -g -O2 -Wall -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -c -o
milter-greylist.o milter-greylist.c
In file included from dump.h:67,
from milter-greylist.c:80:
milter-greylist.h:62: field `in6' has incomplete type
milter-greylist.h:70: field `sin6' has incomplete type
In file included from acl.h:51,
from milter-greylist.c:81:
pending.h:85: parse error before `pending_lock'
pending.h:85: warning: data definition has no type or storage class
In file included from milter-greylist.c:81:
acl.h:110: parse error before `acl_lock'
acl.h:110: warning: data definition has no type or storage class
In file included from milter-greylist.c:83:
conf.h:82: field `c_match_mask6' has incomplete type
conf.h:140: parse error before `conf_lock'
conf.h:140: warning: data definition has no type or storage class
In file included from milter-greylist.c:87:
autowhite.h:66: parse error before `autowhite_lock'
autowhite.h:66: warning: data definition has no type or storage class
make: *** [milter-greylist.o] Error 1
-------------------------------------------------------------------------------
add "#undef AF_INET6" to milter-greylist.h line 50 and here are the
results
--
make
gcc -g -O2 -Wall -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -c -o
milter-greylist.o milter-greylist.c
In file included from acl.h:51,
from milter-greylist.c:81:
pending.h:85: parse error before `pending_lock'
pending.h:85: warning: data definition has no type or storage class
In file included from milter-greylist.c:81:
acl.h:110: parse error before `acl_lock'
acl.h:110: warning: data definition has no type or storage class
In file included from milter-greylist.c:83:
conf.h:140: parse error before `conf_lock'
conf.h:140: warning: data definition has no type or storage class
In file included from milter-greylist.c:87:
autowhite.h:66: parse error before `autowhite_lock'
autowhite.h:66: warning: data definition has no type or storage class
make: *** [milter-greylist.o] Error 1
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Linux 2.0.38 #2 Tue Jan 25 11:36:36 PST 2000 i586 unknown
gcc-2.7.2.3-14
glibc-devel-2.0.7-29.4
glibc-profile-2.0.7-29.4
glibc-debug-2.0.7-29.4
glibc-2.0.7-29.4
-------------------------------------------------------------------------------
[(root) rocko:greylisting]> cd milter-greylist-3.0
[(root) rocko:milter-greylist-3.0]> ./configure --prefix=/usr
--sysconfdir=/etc
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for flex... flex
checking for yywrap in -lfl... yes
checking lex output file root... lex.yy
checking whether yytext is a pointer... yes
checking for bison... bison -y
checking for a BSD-compatible install... /usr/bin/install -c
checking for mkdep... no
checking for rm... rm
checking for mv... mv
checking for test... test
checking for sed... sed
checking for true... true
checking if compiler accepts -Wall... yes
checking if ld accepts --rpath... yes
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... no
checking for stdint.h... no
checking for unistd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking sys/cdefs.h usability... yes
checking sys/cdefs.h presence... yes
checking for sys/cdefs.h... yes
checking for pid_t... yes
checking for size_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking for unistd.h... (cached) yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for strftime... yes
checking for working memcmp... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking for sys/socket.h... (cached) yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking for function prototypes... yes
checking whether setvbuf arguments are reversed... no
checking whether lstat dereferences a symlink specified with a trailing
slash... yes
checking whether stat accepts an empty string... no
checking for bzero... yes
checking for gettimeofday... yes
checking for malloc... yes
checking for inet_ntoa... yes
checking for strerror... yes
checking for select... yes
checking for socket... yes
checking for initgroups... yes
checking for strlcat... no
checking for vsyslog... yes
checking for pthread_create in -lpthread... yes
checking for socket in -lsocket... no
checking for socket in -lsocket -lnsl... no
checking for inet_aton in -lresolv... yes
checking for inet_pton in -lnsl... yes
checking for getaddrinfo... yes
checking for getnameinfo... no
checking for getnameinfo in -lsocket... no
checking whether your system has IPv6 directory... no
checking if <time.h> defines timeradd... yes
checking if -D_REENTRANT is needed to use localtime_r... no
checking if -D__EXTENSIONS__ is needed to use snprintf... no
checking for smfi_register in -lmilter... yes
checking if -lpthread is needed after -lmilter... no
checking if <sys/queue.h> is outdated... yes
checking if __RCSID can be used twice in the same source... yes
checking whether <pthreads.h> wants -pthread... no
checking whether you need -D_XOPEN_SOURCE to use libpthread... yes
checking whether you need -D_SGI_SOURCE to use <stdio.h> with -ansi... no
checking whether you need -D_XOPEN_SOURCE to use <stdio.h> with
-ansi... no
checking if -D_OSF_SOURCE is needed for IPV6 support... no
checking for struct sockaddr.sa_len... no
checking for struct sockaddr_in6.sin6_scope_id... no
checking if socklen_t is missing... no
checking for broken rwlock in libpthread... yes
checking if DNS resolver is re-entrant... no
configure: creating ./config.status
-------------------------------------------------------------------------------
cat config.h
/* config.h. Generated by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */
/* Build environnement */
#define BUILD_ENV
"dranch@rocko:/usr/src/archive/email/greylisting/milter-greylist-3.0 Sat
Sep 1 12:05:21 PDT 2007"
/* Define to 1 if you have the <arpa/inet.h> header file. */
#define HAVE_ARPA_INET_H 1
/* __RCSID cannot be used twice */
/* #undef HAVE_BROKEN_RCSID */
/* broken rwlock in libpthread */
#define HAVE_BROKEN_RWLOCK
/* Define to 1 if you have the `bzero' function. */
#define HAVE_BZERO 1
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
/* Define to 1 if you have the `fork' function. */
#define HAVE_FORK 1
/* Define to 1 if you have the `getaddrinfo' function. */
#define HAVE_GETADDRINFO 1
/* Define to 1 if you have the `getnameinfo' function. */
/* #undef HAVE_GETNAMEINFO */
/* Define to 1 if you have the <getopt.h> header file. */
#define HAVE_GETOPT_H 1
/* Define to 1 if you have the `gettimeofday' function. */
#define HAVE_GETTIMEOFDAY 1
/* Define to 1 if you have the `inet_ntoa' function. */
#define HAVE_INET_NTOA 1
/* Define to 1 if you have the `initgroups' function. */
#define HAVE_INITGROUPS 1
/* Define to 1 if you have the <inttypes.h> header file. */
/* #undef HAVE_INTTYPES_H */
/* Define to 1 if you have the `malloc' function. */
#define HAVE_MALLOC 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* missing socklen_t definition */
/* #undef HAVE_MISSING_SOCKLEN_T */
/* <time.h> defines timeradd */
/* #undef HAVE_MISSING_TIMERADD */
/* Define to 1 if you have the <netdb.h> header file. */
#define HAVE_NETDB_H 1
/* Define to 1 if you have the <netinet/in.h> header file. */
#define HAVE_NETINET_IN_H 1
/* old <sys/queue.h> */
#define HAVE_OLD_QUEUE_H
/* sa_len field in struct sockaddr */
/* #undef HAVE_SA_LEN */
/* Define to 1 if you have the `select' function. */
#define HAVE_SELECT 1
/* sin6_scope_id field in struct sockaddr_in6 */
/* #undef HAVE_SIN6_SCOPE_ID */
/* Define to 1 if you have the `socket' function. */
#define HAVE_SOCKET 1
/* we use libspf */
/* #undef HAVE_SPF */
/* we use libspf2 */
/* #undef HAVE_SPF2 */
/* we use libspf2 1.0 */
/* #undef HAVE_SPF2_10 */
/* we use libspf_alt */
/* #undef HAVE_SPF_ALT */
/* Define to 1 if `stat' has the bug that it succeeds when given the
zero-length file name argument. */
/* #undef HAVE_STAT_EMPTY_STRING_BUG */
/* Define to 1 if you have the <stdint.h> header file. */
/* #undef HAVE_STDINT_H */
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1
/* Define to 1 if you have the `strftime' function. */
#define HAVE_STRFTIME 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strlcat' function. */
/* #undef HAVE_STRLCAT */
/* Define to 1 if you have the <syslog.h> header file. */
#define HAVE_SYSLOG_H 1
/* Define to 1 if you have the <sys/cdefs.h> header file. */
#define HAVE_SYS_CDEFS_H 1
/* Define to 1 if you have the <sys/param.h> header file. */
#define HAVE_SYS_PARAM_H 1
/* Define to 1 if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
#define HAVE_SYS_TIME_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to 1 if you have the `vfork' function. */
#define HAVE_VFORK 1
/* Define to 1 if you have the <vfork.h> header file. */
/* #undef HAVE_VFORK_H */
/* Define to 1 if you have the `vsyslog' function. */
#define HAVE_VSYSLOG 1
/* Define to 1 if `fork' works. */
#define HAVE_WORKING_FORK 1
/* Define to 1 if `vfork' works. */
#define HAVE_WORKING_VFORK 1
/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
slash. */
#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
/* Define to the address where bug reports for this package should be
sent. */
#define PACKAGE_BUGREPORT "manu@..."
/* Define to the full name of this package. */
#define PACKAGE_NAME "milter-greylist"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "milter-greylist 3.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "milter-greylist"
/* Define to the version of this package. */
#define PACKAGE_VERSION "3.0"
/* Define to 1 if the C compiler supports function prototypes. */
#define PROTOTYPES 1
/* Define to the type of arg 1 for `select'. */
#define SELECT_TYPE_ARG1 int
/* Define to the type of args 2, 3 and 4 for `select'. */
#define SELECT_TYPE_ARG234 (fd_set *)
/* Define to the type of arg 5 for `select'. */
#define SELECT_TYPE_ARG5 (struct timeval *)
/* Define to 1 if the `setvbuf' function takes the buffering type as its
second argument and the buffer pointer as the third, as on System V
before
release 3. */
/* #undef SETVBUF_REVERSED */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define to 1 if you can safely include both <sys/time.h> and
<time.h>. */
#define TIME_WITH_SYS_TIME 1
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
`char[]'. */
#define YYTEXT_POINTER 1
/* Define like PROTOTYPES; this can be used by system headers. */
#define __PROTOTYPES 1
/* Define to `int' if <sys/types.h> does not define. */
/* #undef pid_t */
/* Define to `unsigned' if <sys/types.h> does not define. */
/* #undef size_t */
/* Define as `fork' if `vfork' does not work. */
/* #undef vfork */Message
Compiling milter-greylist 3.0.0 fails on old 2.0.x Linux kernel
2007-09-06 by dranchula
Attachments
- No local attachments were found for this message.