diff options
Diffstat (limited to 'bind/bind9/configure.ac')
-rw-r--r-- | bind/bind9/configure.ac | 302 |
1 files changed, 198 insertions, 104 deletions
diff --git a/bind/bind9/configure.ac b/bind/bind9/configure.ac index 4ab10a05..030c4d79 100644 --- a/bind/bind9/configure.ac +++ b/bind/bind9/configure.ac @@ -2,7 +2,7 @@ # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# file, you can obtain one at https://mozilla.org/MPL/2.0/. # # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. @@ -60,6 +60,8 @@ AC_SUBST(BACKTRACECFLAGS) PKG_PROG_PKG_CONFIG # Warn if the user specified libbind, which is now deprecated +# +# [pairwise: skip] AC_ARG_ENABLE(libbind, AS_HELP_STRING([--enable-libbind], [deprecated])) case "$enable_libbind" in @@ -71,6 +73,7 @@ It is available from http://www.isc.org as a separate download.]) ;; esac +# [pairwise: --enable-buffer-useinline, --disable-buffer-useinline] AC_ARG_ENABLE(buffer_useinline, AS_HELP_STRING([--enable-buffer-useinline], [define ISC_BUFFER_USEINLINE when compiling [[default=yes]]]), if test yes = "${enable}" @@ -80,14 +83,17 @@ AC_ARG_ENABLE(buffer_useinline, AS_HELP_STRING([--enable-buffer-useinline], fi, AC_DEFINE([ISC_BUFFER_USEINLINE], [1])) +# [pairwise: --enable-warn-shadow, --disable-warn-shadow] AC_ARG_ENABLE(warn_shadow, AS_HELP_STRING([--enable-warn-shadow], [turn on -Wshadow when compiling])) +# [pairwise: --enable-warn-error, --disable-warn-error] AC_ARG_ENABLE(warn_error, AS_HELP_STRING([--enable-warn-error], [turn on -Werror when compiling])) +# [pairwise: --enable-developer, --disable-developer] AC_ARG_ENABLE(developer, AS_HELP_STRING([--enable-developer], [enable developer build settings])) @@ -109,7 +115,10 @@ yes) esac AC_SUBST(XTARGETS) -# American Fuzzy Lop +# American Fuzzy Lop is not included in pairwise testing as fuzzing +# tools are not present in the relevant Docker image. +# +# [pairwise: skip] AC_ARG_ENABLE(afl, AS_HELP_STRING([--enable-afl], [enable American Fuzzy Lop test harness @@ -123,8 +132,11 @@ yes) esac -#libseccomp sandboxing AC_CHECK_FUNCS(getrandom) + +# libseccomp sandboxing +# +# [pairwise: --enable-seccomp, --disable-seccomp] AC_ARG_ENABLE(seccomp, AS_HELP_STRING([--enable-seccomp], [enable support for libseccomp system call @@ -260,14 +272,17 @@ except: exit(1)' testsetup='try: from distutils.core import setup except: exit(1)' -default_with_python="python python3 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python2 python2.7" +default_with_python="python python3 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python2 python2.7" AC_ARG_VAR([PYTHON], [path to python executable]) +# [pairwise: --with-python, --without-python] AC_ARG_WITH([python], AS_HELP_STRING([--with-python=PATH], [specify path to Python interpreter]), [], [with_python=$default_with_python]) + +# [pairwise: skip] AC_ARG_WITH([python-install-dir], AS_HELP_STRING([--with-python-install-dir=PATH], [installation directory for Python modules]), @@ -609,6 +624,7 @@ AC_SUBST(ISC_PLATFORM_HAVELIFCONF) # # check if we have kqueue # +# [pairwise: --enable-kqueue, --disable-kqueue] AC_ARG_ENABLE(kqueue, AS_HELP_STRING([--enable-kqueue], [use BSD kqueue when available [default=yes]]), @@ -635,6 +651,7 @@ AC_SUBST(ISC_PLATFORM_HAVEKQUEUE) # check if we have epoll. Linux kernel 2.4 has epoll_create() which fails, # so we need to try running the code, not just test its existence. # +# [pairwise: --enable-epoll, --disable-epoll] AC_ARG_ENABLE(epoll, AS_HELP_STRING([--enable-epoll], [use Linux epoll when available [default=auto]]), @@ -669,6 +686,7 @@ AC_SUBST(ISC_PLATFORM_HAVEEPOLL) # # check if we support /dev/poll # +# [pairwise: --enable-devpoll, --disable-devpoll] AC_ARG_ENABLE(devpoll, AS_HELP_STRING([--enable-devpoll], [use /dev/poll when available [default=yes]]), @@ -736,6 +754,8 @@ AC_C_BIGENDIAN # GeoIP support? # geoip2_default="no" + +# [pairwise: --with-geoip --without-geoip2, --without-geoip --with-geoip2=auto, --without-geoip --with-geoip2=yes, --without-geoip --without-geoip2] AC_ARG_WITH(geoip, AS_HELP_STRING([--with-geoip=PATH], [Build with legacy GeoIP support (yes|no|path)]), @@ -744,6 +764,8 @@ AC_ARG_WITH(geoip, geoip2_default="no" ], [use_geoip="no"]) + +# [pairwise: skip] AC_ARG_WITH([geoip2], [AS_HELP_STRING([--with-geoip2=PATH], [Build with MaxMind GeoIP2 support (auto|yes|no|path) [default=no]])], @@ -779,7 +801,7 @@ AS_CASE([$with_geoip2], [AC_DEFINE([HAVE_GEOIP2], [1], [Build with GeoIP2 support]) GEOIP2LINKSRCS='${GEOIP2LINKSRCS}' GEOIP2LINKOBJS='${GEOIP2LINKOBJS}' - MAXMINDDB_LIBS="$MAXMINDDB_LIBS $ac_cv_search_mmdb_open" + MAXMINDDB_LIBS="$MAXMINDDB_LIBS $ac_cv_search_MMDB_open" AC_MSG_NOTICE([GeoIP2 default database path set to $with_geoip2/share/GeoIP]) AS_VAR_COPY([MAXMINDDB_PREFIX], [$with_geoip2]) ], @@ -880,6 +902,8 @@ AC_SUBST(GEOIPLINKSRCS) AC_SUBST(GEOIPLINKOBJS) AC_MSG_CHECKING(for GSSAPI library) + +# [pairwise: --with-gssapi=yes, --with-gssapi=auto, --without-gssapi] AC_ARG_WITH(gssapi, AS_HELP_STRING([--with-gssapi=[PATH|[/path/]krb5-config]], [Specify path for system-supplied GSSAPI @@ -899,8 +923,10 @@ case "$use_gssapi" in fi gssapi_cflags=`$KRB5_CONFIG --cflags gssapi` gssapi_libs=`$KRB5_CONFIG --libs gssapi` + krb5_cflags=`$KRB5_CONFIG --cflags krb5` + krb5_libs=`$KRB5_CONFIG --libs krb5` saved_cppflags="$CPPFLAGS" - CPPFLAGS="$gssapi_cflags $CPPFLAGS" + CPPFLAGS="$gssapi_cflags $krb5_cflags $CPPFLAGS" AC_CHECK_HEADERS(gssapi.h gssapi/gssapi.h, [ISC_PLATFORM_GSSAPIHEADER="#define ISC_PLATFORM_GSSAPIHEADER <$ac_header>"]) if test "" = "$ISC_PLATFORM_GSSAPIHEADER"; then @@ -917,7 +943,7 @@ case "$use_gssapi" in else CPPFLAGS="$saved_cppflags" saved_libs="$LIBS" - LIBS=$gssapi_libs + LIBS="$gssapi_libs $krb5_libs $LIBS" AC_MSG_CHECKING([krb5-config linking as $LIBS]) AC_TRY_LINK( , [gss_acquire_cred();krb5_init_context()], gssapi_linked=yes, gssapi_linked=no) @@ -993,8 +1019,8 @@ case "$use_gssapi" in ;; */krb5-config|krb5-config) USE_GSSAPI='-DGSSAPI' - DST_GSSAPI_INC="$gssapi_cflags" - DNS_GSSAPI_LIBS="$gssapi_libs" + DST_GSSAPI_INC="$gssapi_cflags $krb5_cflags" + DNS_GSSAPI_LIBS="$gssapi_libs $krb5_libs" ;; framework) USE_GSSAPI='-DGSSAPI' @@ -1163,6 +1189,8 @@ AC_SUBST(DNS_CRYPTO_LIBS) # was --with-randomdev specified? # AC_MSG_CHECKING(for random device) + +# [pairwise: skip] AC_ARG_WITH(randomdev, AS_HELP_STRING([--with-randomdev=PATH], [Specify path for random device]), @@ -1256,7 +1284,7 @@ then CCNOOPT="$CCNOOPT -pthread" ;; *-solaris*) - CC="$CC -mt" + CC="$CC" CCOPT="$CCOPT -mt" CCNOOPT="$CCNOOPT -mt" ;; @@ -1298,6 +1326,7 @@ then AC_CHECK_FUNC(pthread_attr_setstacksize, AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE),) + # [pairwise: --with-locktype=adaptive, --with-locktype=standard] AC_ARG_WITH(locktype, AS_HELP_STRING([--with-locktype=ARG], [Specify mutex lock type @@ -1415,6 +1444,8 @@ ISC_THREAD_DIR=$thread_dir AC_SUBST(ISC_THREAD_DIR) AC_MSG_CHECKING(for libtool) + +# [pairwise: --with-libtool, --without-libtool] AC_ARG_WITH(libtool, AS_HELP_STRING([--with-libtool], [use GNU libtool]), use_libtool="$withval", use_libtool="no") @@ -1460,6 +1491,7 @@ AC_SUBST(INSTALL_LIBRARY) # was --enable-native-pkcs11 specified? # (note it implies both --without-openssl and --with-pkcs11) # +# [pairwise: --enable-native-pkcs11 --with-dlopen, --disable-native-pkcs11 --with-dlopen, --disable-native-pkcs11 --without-dlopen] AC_ARG_ENABLE(native-pkcs11, AS_HELP_STRING([--enable-native-pkcs11], [use native PKCS11 for all crypto [default=no]]), @@ -1468,6 +1500,7 @@ AC_ARG_ENABLE(native-pkcs11, # # was --with-openssl specified? # +# [pairwise: --with-openssl --enable-openssl-hash, --with-openssl --disable-openssl-hash, --without-openssl] AC_ARG_WITH(openssl, AS_HELP_STRING([--with-openssl[=PATH]], [Build with OpenSSL [yes|no|path]. @@ -1477,6 +1510,7 @@ AC_ARG_WITH(openssl, # # was --with-pkcs11 specified? # +# [pairwise: skip] AC_ARG_WITH(pkcs11, AS_HELP_STRING([--with-pkcs11[=PATH]], [Build with PKCS11 support [yes|no|path] @@ -1486,19 +1520,34 @@ AC_ARG_WITH(pkcs11, # # were --with-ecdsa, --with-gost, --with-eddsa, --with-aes specified # + +# [pairwise: --with-ecdsa, --without-ecdsa] AC_ARG_WITH(ecdsa, AS_HELP_STRING([--with-ecdsa], [Crypto ECDSA]), with_ecdsa="$withval", with_ecdsa="auto") + +# GOST is not included in pairwise testing as it is not supported by the +# OpenSSL version present in the relevant Docker image. +# +# [pairwise: skip] AC_ARG_WITH(gost, AS_HELP_STRING([--with-gost], [Crypto GOST [yes|no|raw|asn1].]), with_gost="$withval", with_gost="auto") + +# EdDSA is not included in pairwise testing as it is not supported by +# the SoftHSM version present in the relevant Docker image. +# +# [pairwise: skip] AC_ARG_WITH(eddsa, AS_HELP_STRING([--with-eddsa], [Crypto EDDSA [yes|all|no].]), with_eddsa="$withval", with_eddsa="auto") + +# [pairwise: --with-aes, --without-aes] AC_ARG_WITH(aes, AS_HELP_STRING([--with-aes], [Crypto AES]), with_aes="$withval", with_aes="yes") # # was --enable-openssl-hash specified? # +# [pairwise: skip] AC_ARG_ENABLE(openssl-hash, AS_HELP_STRING([--enable-openssl-hash], [use OpenSSL for hash functions [default=no]]), @@ -1510,6 +1559,7 @@ openssldirs="/usr /usr/local /usr/local/ssl /opt/local /usr/pkg /usr/sfw" if test "yes" = "$want_native_pkcs11" then use_openssl="native_pkcs11" + want_openssl_hash="no" AC_MSG_RESULT(use of native PKCS11 instead) fi @@ -1758,6 +1808,10 @@ int main() { ec384 = EC_KEY_new_by_curve_name(NID_secp384r1); if (ec256 == NULL || ec384 == NULL) return (2); + if (ec256 != NULL) + EC_KEY_free(ec256); + if (ec384 != NULL) + EC_KEY_free(ec384); return (0); } ], @@ -1870,8 +1924,10 @@ int main() { EVP_PKEY_CTX *ctx; ctx = EVP_PKEY_CTX_new_id(NID_ED25519, NULL); - if (ctx == NULL) + if (ctx == NULL) { return (2); + } + EVP_PKEY_CTX_free(ctx); return (0); } ], @@ -1911,8 +1967,10 @@ int main() { EVP_PKEY_CTX *ctx; ctx = EVP_PKEY_CTX_new_id(NID_ED448, NULL); - if (ctx == NULL) + if (ctx == NULL) { return (2); + } + EVP_PKEY_CTX_free(ctx); return (0); } ], @@ -2033,6 +2091,7 @@ AC_SUBST(ISC_PLATFORM_WANTAES) # # Choose Client Cookie algorithm # +# [pairwise: skip] AC_ARG_WITH([cc-alg], [AS_HELP_STRING([--with-cc-alg=ALG], [deprecated])], [:], [with_cc_alg="siphash24"]) @@ -2326,6 +2385,8 @@ fi # was --with-lmdb specified? # AC_MSG_CHECKING(for lmdb library) + +# [pairwise: --with-lmdb=auto, --with-lmdb=yes, --without-lmdb] AC_ARG_WITH(lmdb, AS_HELP_STRING([--with-lmdb[=PATH]], [build with LMDB library [yes|no|path]]), @@ -2393,63 +2454,46 @@ AC_SUBST(NZDTARGETS) # # was --with-libxml2 specified? # -AC_MSG_CHECKING(for libxml2 library) -AC_ARG_WITH(libxml2, - AS_HELP_STRING([--with-libxml2[=PATH]], - [build with libxml2 library [yes|no|path]]), - use_libxml2="$withval", use_libxml2="auto") - -case "$use_libxml2" in - no) - DST_LIBXML2_INC="" - ;; - auto|yes) - case X`(xml2-config --version) 2>/dev/null` in - X2.[[6789]].*) - libxml2_libs=`xml2-config --libs` - libxml2_cflags=`xml2-config --cflags` - ;; - *) - if test "yes" = "$use_libxml2" ; then - AC_MSG_RESULT(no) - AC_MSG_ERROR(required libxml2 version not available) - else - libxml2_libs= - libxml2_cflags= - fi - ;; - esac - ;; - *) - if test -f "$use_libxml2/bin/xml2-config" ; then - libxml2_libs=`$use_libxml2/bin/xml2-config --libs` - libxml2_cflags=`$use_libxml2/bin/xml2-config --cflags` - fi - ;; -esac +# [pairwise: --with-libxml2=auto, --with-libxml2=yes, --without-libxml2] +AC_ARG_WITH([libxml2], + [AS_HELP_STRING([--with-libxml2[=PATH]], + [build with libxml2 library (auto|yes|no|path) [default=auto]])], + [:], [with_libxml2="auto"]) -if test "X$libxml2_libs" != "X" -then - CFLAGS="$CFLAGS $libxml2_cflags" - LIBS="$LIBS $libxml2_libs" - # - # Sanity check xml2-config output. - # - AC_TRY_LINK([#include <libxml/xmlwriter.h>], - [return(xmlTextWriterStartElement(NULL, NULL));], - AC_MSG_RESULT(yes), - AC_MSG_ERROR(xml2-config returns badness)) - AC_DEFINE(HAVE_LIBXML2, 1, [Define if libxml2 was found]) - XMLSTATS=1 -else - AC_MSG_RESULT(no) -fi -AC_SUBST(XMLSTATS) +LIBXML2_CFLAGS= +LIBXML2_LIBS= +AS_CASE([$with_libxml2], + [no],[:], + [auto],[PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.0], [:], [:])], + [yes],[PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.0])], + [AC_MSG_CHECKING([for libxml2 library in $with_libxml2]) + AS_IF([test -x "$with_libxml2/bin/xml2-config"], + [AC_MSG_RESULT([yes]) + LIBXML2_LIBS=`$with_libxml2/bin/xml2-config --libs` + LIBXML2_CFLAGS=`$with_libxml2/bin/xml2-config --cflags`], + [AC_MSG_ERROR([not found])])]) + +AS_IF([test -n "$LIBXML2_LIBS"], + [AC_MSG_CHECKING([whether linking with libxml2 works]) + CFLAGS="$CFLAGS $LIBXML2_CFLAGS" + LIBS="$LIBS $LIBXML2_LIBS" + # + # Sanity check xml2-config output. + # + AC_TRY_LINK([#include <libxml/xmlwriter.h>], + [return(xmlTextWriterStartElement(NULL, NULL));], + [AC_MSG_RESULT([yes])], + [AC_MSG_ERROR([no])]) + AC_DEFINE([HAVE_LIBXML2], [1], [Define if libxml2 was found]) + XMLSTATS=1]) +AC_SUBST([XMLSTATS]) # # was --with-libjson specified? # AC_MSG_CHECKING(for json library) + +# [pairwise: --with-libjson=auto, --with-libjson=yes, --without-libjson] AC_ARG_WITH(libjson, AS_HELP_STRING([--with-libjson[=PATH]], [build with libjson0 library [yes|no|path]]), @@ -2531,6 +2575,8 @@ AC_SUBST(JSONSTATS) # was --with-zlib specified? # AC_MSG_CHECKING(for zlib library) + +# [pairwise: --with-zlib=auto, --with-zlib=yes, --without-zlib] AC_ARG_WITH(zlib, AS_HELP_STRING([--with-zlib[=PATH]], [build with zlib for HTTP compression @@ -2621,6 +2667,7 @@ fi # # Large File # +# [pairwise: --enable-largefile, --disable-largefile] AC_ARG_ENABLE(largefile, AS_HELP_STRING([--enable-largefile], [64-bit file support]), want_largefile="yes", want_largefile="no") @@ -2773,6 +2820,11 @@ esac # Purify support # AC_MSG_CHECKING(whether to use purify) + +# Purify is not included in pairwise testing as that tool is not present +# in the relevant Docker image. +# +# [pairwise: skip] AC_ARG_WITH(purify, AS_HELP_STRING([--with-purify[=PATH]], [use Rational purify]), use_purify="$withval", use_purify="no") @@ -2815,6 +2867,12 @@ AC_SUBST(PURIFY) # Google/Great Performance Tools CPU Profiler # AC_MSG_CHECKING(whether to use gperftools profiler) + +# Google/Great Performance Tools CPU Profiler is not included in +# pairwise testing as that tool is not present in the relevant Docker +# image. +# +# [pairwise: skip] AC_ARG_WITH(gperftools-profiler, AS_HELP_STRING([--with-gperftools-profiler], [use gperftools CPU profiler]), @@ -2836,6 +2894,7 @@ esac # enable/disable dumping stack backtrace. Also check if the system supports # glibc-compatible backtrace() function. # +# [pairwise: --enable-backtrace, --disable-backtrace] AC_ARG_ENABLE(backtrace, AS_HELP_STRING([--enable-backtrace], [log stack backtrace on abort [default=yes]]), @@ -2845,7 +2904,10 @@ yes) ISC_PLATFORM_USEBACKTRACE="#define ISC_PLATFORM_USEBACKTRACE 1" AC_TRY_LINK([#include <execinfo.h>], [return (backtrace((void **)0, 0));], - [AC_DEFINE([HAVE_LIBCTRACE], [], [if system have backtrace function])],) + [AC_DEFINE([HAVE_LIBCTRACE], [], [if system have backtrace function])], + [AC_TRY_LINK([#include <stddef.h>], + [return _Unwind_Backtrace(NULL, NULL);], + [AC_DEFINE([HAVE_UNWIND_BACKTRACE], [1], [define if the compiler supports _Unwind_Backtrace()])])]) ;; *) ISC_PLATFORM_USEBACKTRACE="#undef ISC_PLATFORM_USEBACKTRACE" @@ -2853,6 +2915,7 @@ yes) esac AC_SUBST(ISC_PLATFORM_USEBACKTRACE) +# [pairwise: --enable-symtable, --disable-symtable] AC_ARG_ENABLE(symtable, AS_HELP_STRING([--enable-symtable], [use internal symbol table for backtrace @@ -2921,6 +2984,7 @@ AC_SUBST(BIND9_CO_RULE) # # IPv6 # +# [pairwise: --enable-ipv6, --disable-ipv6] AC_ARG_ENABLE(ipv6, AS_HELP_STRING([--enable-ipv6], [use IPv6 [default=autodetect]])) @@ -2952,6 +3016,11 @@ AC_TRY_COMPILE([ # This is done before other IPv6 linking tests to LIBS is properly set. # AC_MSG_CHECKING(for Kame IPv6 support) + +# Kame is not included in pairwise testing as it is not present in the +# relevant Docker image. +# +# [pairwise: skip] AC_ARG_WITH(kame, AS_HELP_STRING([--with-kame[=PATH]], [use Kame IPv6 [default path /usr/local/v6]]), @@ -3302,7 +3371,7 @@ AC_SUBST(ISC_PLATFORM_NEEDPORTT) # confusing results on some systems (e.g. FreeBSD; see set_tcp_fastopen() # comment in lib/isc/unix/socket.c). # - +# [pairwise: --enable-tcp-fastopen, --disable-tcp-fastopen] AC_ARG_ENABLE(tcp_fastopen, AS_HELP_STRING([--disable-tcp-fastopen], [disable TCP Fast Open support [default=autodetect]])) @@ -3511,6 +3580,7 @@ AC_SUBST(ISC_LWRES_GETADDRINFOPROTO) AC_SUBST(ISC_LWRES_GETNAMEINFOPROTO) AC_SUBST(ISC_IRS_GETNAMEINFOSOCKLEN) +# [pairwise: --enable-getifaddrs, --disable-getifaddrs] AC_ARG_ENABLE(getifaddrs, AS_HELP_STRING([--enable-getifaddrs], [enable the use of getifaddrs() [yes|no].]), @@ -3604,6 +3674,8 @@ AC_CHECK_FUNC(strcasestr, AC_SUBST(ISC_PLATFORM_NEEDSTRCASESTR) AC_SUBST(READLINE_LIB) + +# [pairwise: --with-readline=auto, --with-readline=yes, --without-readline] AC_ARG_WITH(readline, AS_HELP_STRING([--with-readline[=LIBSPEC]], [specify readline library [default auto]]), @@ -3727,29 +3799,6 @@ AC_SUBST(ISC_EXTRA_OBJS) AC_SUBST(ISC_EXTRA_SRCS) AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR)) -# -# Use our own SPNEGO implementation? -# -AC_ARG_ENABLE(isc-spnego, - AS_HELP_STRING([--disable-isc-spnego], - [use SPNEGO from GSSAPI library])) - -if test -n "$USE_GSSAPI" -then - case "$enable_isc_spnego" in - yes|'') - USE_ISC_SPNEGO='-DUSE_ISC_SPNEGO' - DST_EXTRA_OBJS="$DST_EXTRA_OBJS spnego.$O" - DST_EXTRA_SRCS="$DST_EXTRA_SRCS spnego.c" - AC_MSG_RESULT(using SPNEGO from lib/dns) - ;; - no) - AC_MSG_RESULT(using SPNEGO from GSSAPI library) - ;; - esac -fi - -AC_SUBST(USE_ISC_SPNEGO) AC_SUBST(DST_EXTRA_OBJS) AC_SUBST(DST_EXTRA_SRCS) @@ -3759,6 +3808,8 @@ AC_SUBST(DST_EXTRA_SRCS) # # Note it is very recommended to *not* disable chroot(), # this is only because chroot() was made obsolete by Posix. +# +# [pairwise: --enable-chroot, --disable-chroot] AC_ARG_ENABLE(chroot, AS_HELP_STRING([--disable-chroot], [disable chroot])) case "$enable_chroot" in yes|'') @@ -3767,6 +3818,8 @@ case "$enable_chroot" in no) ;; esac + +# [pairwise: --enable-linux-caps, --disable-linux-caps] AC_ARG_ENABLE(linux-caps, AS_HELP_STRING([--disable-linux-caps], [disable linux capabilities])) @@ -3871,6 +3924,8 @@ ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE long long int"], ],[AC_MSG_ERROR(this cannot happen)]) ],[AC_MSG_ERROR(this cannot happen)]) ],[ + +# [pairwise: skip] AC_ARG_WITH(rlimtype, , rlimtype="$withval", rlimtype="long long int") ISC_PLATFORM_RLIMITTYPE="#define ISC_PLATFORM_RLIMITTYPE $rlimtype" AC_MSG_RESULT(cannot determine type of rlim_cur when cross compiling - assuming $rlimtype)]) @@ -4049,6 +4104,7 @@ AC_TRY_COMPILE([ have_stdatomic=no ISC_PLATFORM_HAVESTDATOMIC="#undef ISC_PLATFORM_HAVESTDATOMIC"]) +# [pairwise: --enable-atomic, --disable-atomic] AC_ARG_ENABLE(atomic, AS_HELP_STRING([--enable-atomic], [enable machine specific atomic operations [default=autodetect]]), @@ -4143,7 +4199,7 @@ if test "yes" = "$use_atomic"; then alpha*-*) arch=alpha ;; - powerpc-*|powerpc64-*) + powerpc-*|powerpc64*-*|powerpc64el-*) arch=powerpc ;; mips-*|mipsel-*|mips64-*|mips64el-*) @@ -4370,6 +4426,7 @@ AC_SUBST(ISC_PLATFORM_BUSYWAITNOP) # # Activate "rrset-order fixed" or not? # +# [pairwise: --enable-fixed-rrset, --disable-fixed-rrset] AC_ARG_ENABLE(fixed-rrset, AS_HELP_STRING([--enable-fixed-rrset], [enable fixed rrset ordering [default=no]]), @@ -4388,6 +4445,7 @@ esac # # Enable response policy rewriting using NS IP addresses # +# [pairwise: --enable-rpz-nsip, --disable-rpz-nsip] AC_ARG_ENABLE(rpz-nsip, AS_HELP_STRING([--disable-rpz-nsip], [disable rpz nsip rules [default=enabled]]), @@ -4406,6 +4464,7 @@ esac # # Enable response policy rewriting using NS name # +# [pairwise: --enable-rpz-nsdname, --disable-rpz-nsdname] AC_ARG_ENABLE(rpz-nsdname, AS_HELP_STRING([--disable-rpz-nsdname], [disable rpz nsdname rules [default=enabled]]), @@ -4424,6 +4483,7 @@ esac # # Activate "filter-aaaa-on-v4/v6" or not? # +# [pairwise: --enable-filter-aaaa, --disable-filter-aaaa] AC_ARG_ENABLE(filter-aaaa, [ --enable-filter-aaaa enable filtering of AAAA records [[default=no]]], enable_filter="$enableval", @@ -4442,6 +4502,7 @@ esac # # Activate dnstap? # +# [pairwise: --enable-dnstap, --disable-dnstap] AC_ARG_ENABLE(dnstap, AS_HELP_STRING([--enable-dnstap], [enable dnstap support @@ -4456,6 +4517,8 @@ if test "x$use_dnstap" != "xno"; then if ! $use_threads; then AC_MSG_ERROR([Dnstap requires threads.]) fi + + # [pairwise: skip] AC_ARG_WITH([protobuf-c], AS_HELP_STRING([--with-protobuf-c=path], [Path where protobuf-c is installed, @@ -4489,6 +4552,8 @@ if test "x$use_dnstap" != "xno"; then if test -z "$PROTOC_C"; then AC_MSG_ERROR([The protoc-c program was not found.]) fi + + # [pairwise: skip] AC_ARG_WITH([libfstrm], AS_HELP_STRING([--with-libfstrm=path], [Path where libfstrm is installed, for dnstap]), [ CFLAGS="$CFLAGS -I$withval/include" @@ -4642,6 +4707,8 @@ AC_SUBST($1) # of at the moment). # AC_MSG_CHECKING(for Docbook-XSL path) + +# [pairwise: skip] AC_ARG_WITH(docbook-xsl, AS_HELP_STRING([--with-docbook-xsl[=PATH]], [specify path for Docbook-XSL stylesheets]), @@ -4674,6 +4741,10 @@ NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_XHTML, xhtml/maketoc.xsl, $docbook_xsl_trees) # # IDN support using idnkit # +# idnkit is not included in pairwise testing as it is not present in the +# relevant Docker image. +# +# [pairwise: skip] AC_ARG_WITH(idnkit, AS_HELP_STRING([--with-idnkit[=PATH]], [enable IDN support using idnkit [yes|no|path]]), @@ -4695,6 +4766,8 @@ esac iconvinc= iconvlib= + +# [pairwise: --with-libiconv, --without-libiconv] AC_ARG_WITH(libiconv, AS_HELP_STRING([--with-libiconv[=IPREFIX]], [GNU libiconv are in IPREFIX [default PREFIX]]), @@ -4715,6 +4788,7 @@ no) ;; esac +# [pairwise: --with-iconv, --without-iconv] AC_ARG_WITH(iconv, AS_HELP_STRING([--with-iconv[=LIBSPEC]], [specify iconv library [default -liconv]]), @@ -4728,6 +4802,7 @@ yes) ;; esac +# [pairwise: skip] AC_ARG_WITH(idnlib, AS_HELP_STRING([--with-idnlib=ARG], [specify libidnkit]), idnlib="$withval", idnlib="no") @@ -4754,6 +4829,8 @@ AC_SUBST(IDNKIT_LIBS) LIBIDN2_CFLAGS= LIBIDN2_LDFLAGS= LIBIDN2_LIBS= + +# [pairwise: --with-libidn2=yes, --without-libidn2] AC_ARG_WITH(libidn2, AS_HELP_STRING([--with-libidn2[=PATH]], [enable IDN support using GNU libidn2 [yes|no|path]]), use_libidn2="$withval", use_libidn2="no") @@ -4807,7 +4884,7 @@ fi # # Check whether to build with cmocka unit testing framework # - +# [pairwise: --with-cmocka, --without-cmocka] AC_ARG_WITH([cmocka], [AS_HELP_STRING([--with-cmocka=no],[enable cmocka based tests (default is no)])], [:],[with_cmocka=no]) @@ -4817,7 +4894,6 @@ AS_CASE([$with_cmocka], [yes],[ PKG_CHECK_MODULES([CMOCKA], [cmocka >= 1.0.0], [AC_DEFINE([HAVE_CMOCKA], [1], [Use cmocka])]) - UNITTESTS=tests ], [*],[ save_CFLAGS="$CFLAGS" @@ -4836,14 +4912,12 @@ AS_CASE([$with_cmocka], [ CMOCKA_CFLAGS="-Iwith_cmocka/include" CMOCKA_LIBS="-L$with_cmocka/lib -lcmocka" - UNITTESTS=tests AC_DEFINE([HAVE_CMOCKA], [1], [Use cmocka]) ], [AC_MSG_ERROR([cmocka unit testing framework not found in $with_cmocka path])]) ]) AC_SUBST([CMOCKA_CFLAGS]) AC_SUBST([CMOCKA_LIBS]) -AC_SUBST(UNITTESTS) # # Check for kyua execution engine if CMocka was requested @@ -4853,9 +4927,10 @@ AC_ARG_VAR([KYUA], [path to kyua execution engine]) AS_IF([test "$with_cmocka" != "no"], [AC_PATH_PROGS([KYUA], [kyua], []) AS_IF([test -z "$KYUA"], - [AC_MSG_WARN([kyua test execution engine not found])])]) - + [AC_MSG_WARN([kyua test execution engine not found])], + [UNITTESTS=tests])]) AC_SUBST([KYUA]) +AC_SUBST([UNITTESTS]) # # Check for -Wl,--wrap= support @@ -4888,6 +4963,7 @@ AC_CHECK_FUNCS(setlocale) # # was --with-tuning specified? # +# [pairwise: --with-tuning=large, --without-tuning] AC_ARG_WITH(tuning, AS_HELP_STRING([--with-tuning=ARG], [Specify server tuning (large or default)]), @@ -4912,6 +4988,7 @@ esac # # was --enable-querytrace specified? # +# [pairwise: --enable-querytrace, --disable-querytrace] AC_ARG_ENABLE(querytrace, AS_HELP_STRING([--enable-querytrace], [enable very verbose query trace logging @@ -5064,6 +5141,7 @@ SO_LD="" SO_TARGETS="" SO_STRIP="cat" +# [pairwise: skip] AC_ARG_WITH([dlopen], AS_HELP_STRING([--with-dlopen=ARG], [support dynamically loadable DLZ drivers]), @@ -5084,7 +5162,8 @@ AS_IF([test "$pic_mode" = "no"], AS_CASE([$with_dlopen], [auto|yes],[ - AC_SEARCH_LIBS([dlopen],[dl]) + # -fsanitize=thread hijacks dlopen and dlclose so use dlsym. + AC_SEARCH_LIBS([dlsym],[dl]) AC_CHECK_FUNCS([dlopen dlclose dlsym], [with_dlopen="yes"], [with_dlopen="no"]) @@ -5157,6 +5236,9 @@ AS_IF([test "$with_dlopen" = "yes"], ]) ]) +AS_IF([test "$with_dlopen" = "no" -a "$want_native_pkcs11" = "yes"], + [AC_MSG_ERROR([PKCS11 requires dlopen() support])]) + CFLAGS="$CFLAGS $SO_CFLAGS" AC_SUBST(SO) @@ -5345,8 +5427,6 @@ AC_CONFIG_COMMANDS( # AC_CONFIG_FILES([ - make/Makefile - make/mkdep Makefile bin/Makefile bin/check/Makefile @@ -5360,12 +5440,10 @@ AC_CONFIG_FILES([ bin/nsupdate/Makefile bin/pkcs11/Makefile bin/python/Makefile - bin/python/isc/Makefile - bin/python/isc/utils.py - bin/python/isc/tests/Makefile bin/python/dnssec-checkds.py bin/python/dnssec-coverage.py bin/python/dnssec-keymgr.py + bin/python/isc/Makefile bin/python/isc/__init__.py bin/python/isc/checkds.py bin/python/isc/coverage.py @@ -5378,8 +5456,10 @@ AC_CONFIG_FILES([ bin/python/isc/keyzone.py bin/python/isc/policy.py bin/python/isc/rndc.py + bin/python/isc/tests/Makefile bin/python/isc/tests/dnskey_test.py bin/python/isc/tests/policy_test.py + bin/python/isc/utils.py bin/rndc/Makefile bin/tests/Makefile bin/tests/headerdep_test.sh @@ -5447,8 +5527,8 @@ AC_CONFIG_FILES([ lib/isc/include/isc/platform.h lib/isc/include/pk11/Makefile lib/isc/include/pkcs11/Makefile - lib/isc/tests/Makefile lib/isc/nls/Makefile + lib/isc/tests/Makefile lib/isc/unix/Makefile lib/isc/unix/include/Makefile lib/isc/unix/include/isc/Makefile @@ -5473,7 +5553,10 @@ AC_CONFIG_FILES([ lib/lwres/unix/include/lwres/Makefile lib/samples/Makefile lib/samples/Makefile-postinstall + make/Makefile + make/mkdep unit/unittest.sh + util/check-make-install ]) # @@ -5485,6 +5568,7 @@ AC_OUTPUT # # Now that the Makefiles exist we can ensure that everything is rebuilt. # +# [pairwise: --with-make-clean, --without-make-clean] AC_ARG_WITH(make-clean, AS_HELP_STRING([--with-make-clean], [run "make clean" at end of configure [yes|no]]), @@ -5503,6 +5587,7 @@ yes) ;; esac +# [pairwise: --enable-full-report, --disable-full-report] AC_ARG_ENABLE(full-report, AS_HELP_STRING([--enable-full-report], [report values of all configure options])) @@ -5643,8 +5728,17 @@ report() { echo " localstatedir: $localstatedir" echo "-------------------------------------------------------------------------------" echo "Compiler: $CC" - $CC --version 2>&1 | sed 's/^/ /' - + if test "yes" = "$GCC"; then + $CC --version 2>&1 | sed 's/^/ /' + else + case "$host_os" in + solaris*) + $CC -V 2>&1 | sed 's/^/ /' + ;; + *) + $CC --version 2>&1 | sed 's/^/ /' + esac + fi if test "X$ac_unrecognized_opts" != "X"; then echo "Unrecognized options:" echo " $ac_unrecognized_opts" |