-# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PARTICULAR PURPOSE.
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
-# serial 12 (pkg-config-0.29.2)
-
+dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+dnl serial 11 (pkg-config-0.29)
+dnl
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
dnl
dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require.
m4_defun([PKG_PREREQ],
-[m4_define([PKG_MACROS_VERSION], [0.29.2])
+[m4_define([PKG_MACROS_VERSION], [0.29])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
pkg_failed=no
-AC_MSG_CHECKING([for $2])
+AC_MSG_CHECKING([for $1])
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
See the pkg-config man page for more details.])
if test $pkg_failed = yes; then
- AC_MSG_RESULT([no])
+ AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
- else
+ else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
_PKG_TEXT])[]dnl
])
elif test $pkg_failed = untried; then
- AC_MSG_RESULT([no])
+ AC_MSG_RESULT([no])
m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
" -\n"
" - This Source Code Form is subject to the terms of the Mozilla Public\n"
" - License, v. 2.0. If a copy of the MPL was not distributed with this\n"
- " - file, You can obtain one at http://mozilla.org/MPL/2.0/.\n"
+ " - file, you can obtain one at https://mozilla.org/MPL/2.0/.\n"
" -\n"
" - See the COPYRIGHT file distributed with this work for additional\n"
" - information regarding copyright ownership.\n"
*
* 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.
#
# 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/.
#
# -----------------------------------------------------------------------------
#
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
lt_cv_deplibs_check_method=pass_all
;;
-netbsd*)
+netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
else
test $ac_status = 0; }; then
# Now try to grab the symbols.
nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
+ $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5
+ if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
openbsd* | bitrig*)
with_gnu_ld=no
;;
+ linux* | k*bsd*-gnu | gnu*)
+ link_all_deplibs=no
+ ;;
esac
ld_shlibs=yes
fi
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
if test yes = "$lt_cv_irix_exported_symbol"; then
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
+ link_all_deplibs=no
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
esac
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
dynamic_linker='GNU/Linux ld.so'
;;
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
netbsd*)
version_type=sunos
need_lib_prefix=no
fi
# Warn if the user specified libbind, which is now deprecated
+#
+# [pairwise: skip]
# Check whether --enable-libbind was given.
if test "${enable_libbind+set}" = set; then :
enableval=$enable_libbind;
;;
esac
+# [pairwise: --enable-buffer-useinline, --disable-buffer-useinline]
# Check whether --enable-buffer_useinline was given.
if test "${enable_buffer_useinline+set}" = set; then :
enableval=$enable_buffer_useinline; if test yes = "${enable}"
fi
+# [pairwise: --enable-warn-shadow, --disable-warn-shadow]
# Check whether --enable-warn_shadow was given.
if test "${enable_warn_shadow+set}" = set; then :
enableval=$enable_warn_shadow;
fi
+# [pairwise: --enable-warn-error, --disable-warn-error]
# Check whether --enable-warn_error was given.
if test "${enable_warn_error+set}" = set; then :
enableval=$enable_warn_error;
fi
+# [pairwise: --enable-developer, --disable-developer]
# Check whether --enable-developer was given.
if test "${enable_developer+set}" = set; then :
enableval=$enable_developer;
esac
-# 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]
# Check whether --enable-afl was given.
if test "${enable_afl+set}" = set; then :
enableval=$enable_afl;
esac
-#libseccomp sandboxing
for ac_func in getrandom
do :
ac_fn_c_check_func "$LINENO" "getrandom" "ac_cv_func_getrandom"
fi
done
+
+# libseccomp sandboxing
+#
+# [pairwise: --enable-seccomp, --disable-seccomp]
# Check whether --enable-seccomp was given.
if test "${enable_seccomp+set}" = set; then :
enableval=$enable_seccomp;
+# [pairwise: --with-python, --without-python]
# Check whether --with-python was given.
if test "${with_python+set}" = set; then :
fi
+# [pairwise: skip]
+
# Check whether --with-python-install-dir was given.
if test "${with_python_install_dir+set}" = set; then :
withval=$with_python_install_dir;
#
# check if we have kqueue
#
+# [pairwise: --enable-kqueue, --disable-kqueue]
# Check whether --enable-kqueue was given.
if test "${enable_kqueue+set}" = set; then :
enableval=$enable_kqueue; want_kqueue="$enableval"
# 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]
# Check whether --enable-epoll was given.
if test "${enable_epoll+set}" = set; then :
enableval=$enable_epoll; want_epoll="$enableval"
#
# check if we support /dev/poll
#
+# [pairwise: --enable-devpoll, --disable-devpoll]
# Check whether --enable-devpoll was given.
if test "${enable_devpoll+set}" = set; then :
enableval=$enable_devpoll; want_devpoll="$enableval"
#
geoip2_default="no"
+# [pairwise: --with-geoip --without-geoip2, --without-geoip --with-geoip2=auto, --without-geoip --with-geoip2=yes, --without-geoip --without-geoip2]
+
# Check whether --with-geoip was given.
if test "${with_geoip+set}" = set; then :
withval=$with_geoip;
fi
+# [pairwise: skip]
+
# Check whether --with-geoip2 was given.
if test "${with_geoip2+set}" = set; then :
withval=$with_geoip2;
auto) :
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libmaxminddb" >&5
-$as_echo_n "checking for libmaxminddb... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAXMINDDB" >&5
+$as_echo_n "checking for MAXMINDDB... " >&6; }
if test -n "$MAXMINDDB_CFLAGS"; then
pkg_cv_MAXMINDDB_CFLAGS="$MAXMINDDB_CFLAGS"
if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
:
elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
:
else
yes) :
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libmaxminddb" >&5
-$as_echo_n "checking for libmaxminddb... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAXMINDDB" >&5
+$as_echo_n "checking for MAXMINDDB... " >&6; }
if test -n "$MAXMINDDB_CFLAGS"; then
pkg_cv_MAXMINDDB_CFLAGS="$MAXMINDDB_CFLAGS"
if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
and MAXMINDDB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSSAPI library" >&5
$as_echo_n "checking for GSSAPI library... " >&6; }
+# [pairwise: --with-gssapi=yes, --with-gssapi=auto, --without-gssapi]
+
# Check whether --with-gssapi was given.
if test "${with_gssapi+set}" = set; then :
withval=$with_gssapi; use_gssapi="$withval"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for random device" >&5
$as_echo_n "checking for random device... " >&6; }
+# [pairwise: skip]
+
# Check whether --with-randomdev was given.
if test "${with_randomdev+set}" = set; then :
withval=$with_randomdev; use_randomdev="$withval"
fi
+ # [pairwise: --with-locktype=adaptive, --with-locktype=standard]
# Check whether --with-locktype was given.
if test "${with_locktype+set}" = set; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libtool" >&5
$as_echo_n "checking for libtool... " >&6; }
+# [pairwise: --with-libtool, --without-libtool]
+
# Check whether --with-libtool was given.
if test "${with_libtool+set}" = set; then :
withval=$with_libtool; use_libtool="$withval"
# 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]
# Check whether --enable-native-pkcs11 was given.
if test "${enable_native_pkcs11+set}" = set; then :
enableval=$enable_native_pkcs11; want_native_pkcs11="$enableval"
#
# was --with-openssl specified?
#
+# [pairwise: --with-openssl --enable-openssl-hash, --with-openssl --disable-openssl-hash, --without-openssl]
# Check whether --with-openssl was given.
if test "${with_openssl+set}" = set; then :
#
# was --with-pkcs11 specified?
#
+# [pairwise: skip]
# Check whether --with-pkcs11 was given.
if test "${with_pkcs11+set}" = set; then :
# were --with-ecdsa, --with-gost, --with-eddsa, --with-aes specified
#
+# [pairwise: --with-ecdsa, --without-ecdsa]
+
# Check whether --with-ecdsa was given.
if test "${with_ecdsa+set}" = set; then :
withval=$with_ecdsa; with_ecdsa="$withval"
fi
+# GOST is not included in pairwise testing as it is not supported by the
+# OpenSSL version present in the relevant Docker image.
+#
+# [pairwise: skip]
+
# Check whether --with-gost was given.
if test "${with_gost+set}" = set; then :
withval=$with_gost; with_gost="$withval"
fi
+# EdDSA is not included in pairwise testing as it is not supported by
+# the SoftHSM version present in the relevant Docker image.
+#
+# [pairwise: skip]
+
# Check whether --with-eddsa was given.
if test "${with_eddsa+set}" = set; then :
withval=$with_eddsa; with_eddsa="$withval"
fi
+# [pairwise: --with-aes, --without-aes]
+
# Check whether --with-aes was given.
if test "${with_aes+set}" = set; then :
withval=$with_aes; with_aes="$withval"
#
# was --enable-openssl-hash specified?
#
+# [pairwise: skip]
# Check whether --enable-openssl-hash was given.
if test "${enable_openssl_hash+set}" = set; then :
enableval=$enable_openssl_hash; want_openssl_hash="$enableval"
#
# Choose Client Cookie algorithm
#
+# [pairwise: skip]
# Check whether --with-cc-alg was given.
if test "${with_cc_alg+set}" = set; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lmdb library" >&5
$as_echo_n "checking for lmdb library... " >&6; }
+# [pairwise: --with-lmdb=auto, --with-lmdb=yes, --without-lmdb]
+
# Check whether --with-lmdb was given.
if test "${with_lmdb+set}" = set; then :
withval=$with_lmdb; use_lmdb="$withval"
#
# was --with-libxml2 specified?
#
+# [pairwise: --with-libxml2=auto, --with-libxml2=yes, --without-libxml2]
# Check whether --with-libxml2 was given.
if test "${with_libxml2+set}" = set; then :
auto) :
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.6.0" >&5
-$as_echo_n "checking for libxml-2.0 >= 2.6.0... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5
+$as_echo_n "checking for LIBXML2... " >&6; }
if test -n "$LIBXML2_CFLAGS"; then
pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS"
if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
:
elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
:
else
yes) :
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.6.0" >&5
-$as_echo_n "checking for libxml-2.0 >= 2.6.0... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5
+$as_echo_n "checking for LIBXML2... " >&6; }
if test -n "$LIBXML2_CFLAGS"; then
pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS"
if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
and LIBXML2_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for json library" >&5
$as_echo_n "checking for json library... " >&6; }
+# [pairwise: --with-libjson=auto, --with-libjson=yes, --without-libjson]
+
# Check whether --with-libjson was given.
if test "${with_libjson+set}" = set; then :
withval=$with_libjson; use_libjson="$withval"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib library" >&5
$as_echo_n "checking for zlib library... " >&6; }
+# [pairwise: --with-zlib=auto, --with-zlib=yes, --without-zlib]
+
# Check whether --with-zlib was given.
if test "${with_zlib+set}" = set; then :
withval=$with_zlib; with_zlib="$withval"
#
# Large File
#
+# [pairwise: --enable-largefile, --disable-largefile]
# Check whether --enable-largefile was given.
if test "${enable_largefile+set}" = set; then :
enableval=$enable_largefile; want_largefile="yes"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use purify" >&5
$as_echo_n "checking whether to use purify... " >&6; }
+# Purify is not included in pairwise testing as that tool is not present
+# in the relevant Docker image.
+#
+# [pairwise: skip]
+
# Check whether --with-purify was given.
if test "${with_purify+set}" = set; then :
withval=$with_purify; use_purify="$withval"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use gperftools profiler" >&5
$as_echo_n "checking whether to use gperftools profiler... " >&6; }
+# 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]
+
# Check whether --with-gperftools-profiler was given.
if test "${with_gperftools_profiler+set}" = set; then :
withval=$with_gperftools_profiler; use_profiler="$withval"
# enable/disable dumping stack backtrace. Also check if the system supports
# glibc-compatible backtrace() function.
#
+# [pairwise: --enable-backtrace, --disable-backtrace]
# Check whether --enable-backtrace was given.
if test "${enable_backtrace+set}" = set; then :
enableval=$enable_backtrace; want_backtrace="$enableval"
esac
+# [pairwise: --enable-symtable, --disable-symtable]
# Check whether --enable-symtable was given.
if test "${enable_symtable+set}" = set; then :
enableval=$enable_symtable; want_symtable="$enableval"
#
# IPv6
#
+# [pairwise: --enable-ipv6, --disable-ipv6]
# Check whether --enable-ipv6 was given.
if test "${enable_ipv6+set}" = set; then :
enableval=$enable_ipv6;
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Kame IPv6 support" >&5
$as_echo_n "checking for Kame IPv6 support... " >&6; }
+# Kame is not included in pairwise testing as it is not present in the
+# relevant Docker image.
+#
+# [pairwise: skip]
+
# Check whether --with-kame was given.
if test "${with_kame+set}" = set; then :
withval=$with_kame; use_kame="$withval"
# 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]
# Check whether --enable-tcp_fastopen was given.
if test "${enable_tcp_fastopen+set}" = set; then :
enableval=$enable_tcp_fastopen;
+# [pairwise: --enable-getifaddrs, --disable-getifaddrs]
# Check whether --enable-getifaddrs was given.
if test "${enable_getifaddrs+set}" = set; then :
enableval=$enable_getifaddrs; want_getifaddrs="$enableval"
+# [pairwise: --with-readline=auto, --with-readline=yes, --without-readline]
+
# Check whether --with-readline was given.
if test "${with_readline+set}" = set; then :
withval=$with_readline; use_readline="$withval"
#
# Use our own SPNEGO implementation?
#
+# [pairwise: --enable-isc-spnego, --disable-isc-spnego]
# Check whether --enable-isc-spnego was given.
if test "${enable_isc_spnego+set}" = set; then :
enableval=$enable_isc_spnego;
#
# Note it is very recommended to *not* disable chroot(),
# this is only because chroot() was made obsolete by Posix.
+#
+# [pairwise: --enable-chroot, --disable-chroot]
# Check whether --enable-chroot was given.
if test "${enable_chroot+set}" = set; then :
enableval=$enable_chroot;
no)
;;
esac
+
+# [pairwise: --enable-linux-caps, --disable-linux-caps]
# Check whether --enable-linux-caps was given.
if test "${enable_linux_caps+set}" = set; then :
enableval=$enable_linux_caps;
if test "$cross_compiling" = yes; then :
+# [pairwise: skip]
+
# Check whether --with-rlimtype was given.
if test "${with_rlimtype+set}" = set; then :
withval=$with_rlimtype; rlimtype="$withval"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# [pairwise: --enable-atomic, --disable-atomic]
# Check whether --enable-atomic was given.
if test "${enable_atomic+set}" = set; then :
enableval=$enable_atomic; enable_atomic="$enableval"
#
# Activate "rrset-order fixed" or not?
#
+# [pairwise: --enable-fixed-rrset, --disable-fixed-rrset]
# Check whether --enable-fixed-rrset was given.
if test "${enable_fixed_rrset+set}" = set; then :
enableval=$enable_fixed_rrset; enable_fixed="$enableval"
#
# Enable response policy rewriting using NS IP addresses
#
+# [pairwise: --enable-rpz-nsip, --disable-rpz-nsip]
# Check whether --enable-rpz-nsip was given.
if test "${enable_rpz_nsip+set}" = set; then :
enableval=$enable_rpz_nsip; enable_nsip="$enableval"
#
# Enable response policy rewriting using NS name
#
+# [pairwise: --enable-rpz-nsdname, --disable-rpz-nsdname]
# Check whether --enable-rpz-nsdname was given.
if test "${enable_rpz_nsdname+set}" = set; then :
enableval=$enable_rpz_nsdname; enable_nsdname="$enableval"
#
# Activate "filter-aaaa-on-v4/v6" or not?
#
+# [pairwise: --enable-filter-aaaa, --disable-filter-aaaa]
# Check whether --enable-filter-aaaa was given.
if test "${enable_filter_aaaa+set}" = set; then :
enableval=$enable_filter_aaaa; enable_filter="$enableval"
#
# Activate dnstap?
#
+# [pairwise: --enable-dnstap, --disable-dnstap]
# Check whether --enable-dnstap was given.
if test "${enable_dnstap+set}" = set; then :
enableval=$enable_dnstap; use_dnstap=$enableval
as_fn_error $? "Dnstap requires threads." "$LINENO" 5
fi
+ # [pairwise: skip]
+
# Check whether --with-protobuf-c was given.
if test "${with_protobuf_c+set}" = set; then :
withval=$with_protobuf_c;
as_fn_error $? "The protoc-c program was not found." "$LINENO" 5
fi
+ # [pairwise: skip]
+
# Check whether --with-libfstrm was given.
if test "${with_libfstrm+set}" = set; then :
withval=$with_libfstrm;
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Docbook-XSL path" >&5
$as_echo_n "checking for Docbook-XSL path... " >&6; }
+# [pairwise: skip]
+
# Check whether --with-docbook-xsl was given.
if test "${with_docbook_xsl+set}" = set; then :
withval=$with_docbook_xsl; docbook_path="$withval"
#
# IDN support using idnkit
#
+# idnkit is not included in pairwise testing as it is not present in the
+# relevant Docker image.
+#
+# [pairwise: skip]
# Check whether --with-idnkit was given.
if test "${with_idnkit+set}" = set; then :
iconvinc=
iconvlib=
+# [pairwise: --with-libiconv, --without-libiconv]
+
# Check whether --with-libiconv was given.
if test "${with_libiconv+set}" = set; then :
withval=$with_libiconv; use_libiconv="$withval"
;;
esac
+# [pairwise: --with-iconv, --without-iconv]
# Check whether --with-iconv was given.
if test "${with_iconv+set}" = set; then :
;;
esac
+# [pairwise: skip]
# Check whether --with-idnlib was given.
if test "${with_idnlib+set}" = set; then :
LIBIDN2_LDFLAGS=
LIBIDN2_LIBS=
+# [pairwise: --with-libidn2=yes, --without-libidn2]
+
# Check whether --with-libidn2 was given.
if test "${with_libidn2+set}" = set; then :
withval=$with_libidn2; use_libidn2="$withval"
#
# Check whether to build with cmocka unit testing framework
#
-
+# [pairwise: --with-cmocka, --without-cmocka]
# Check whether --with-cmocka was given.
if test "${with_cmocka+set}" = set; then :
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cmocka >= 1.0.0" >&5
-$as_echo_n "checking for cmocka >= 1.0.0... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CMOCKA" >&5
+$as_echo_n "checking for CMOCKA... " >&6; }
if test -n "$CMOCKA_CFLAGS"; then
pkg_cv_CMOCKA_CFLAGS="$CMOCKA_CFLAGS"
if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
and CMOCKA_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
#
# was --with-tuning specified?
#
+# [pairwise: --with-tuning=large, --without-tuning]
# Check whether --with-tuning was given.
if test "${with_tuning+set}" = set; then :
#
# was --enable-querytrace specified?
#
+# [pairwise: --enable-querytrace, --disable-querytrace]
# Check whether --enable-querytrace was given.
if test "${enable_querytrace+set}" = set; then :
enableval=$enable_querytrace; want_querytrace="$enableval"
SO_TARGETS=""
SO_STRIP="cat"
+# [pairwise: skip]
# Check whether --with-dlopen was given.
if test "${with_dlopen+set}" = set; then :
cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
# Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
#
# Now that the Makefiles exist we can ensure that everything is rebuilt.
#
+# [pairwise: --with-make-clean, --without-make-clean]
# Check whether --with-make-clean was given.
if test "${with_make_clean+set}" = set; then :
;;
esac
+# [pairwise: --enable-full-report, --disable-full-report]
# Check whether --enable-full-report was given.
if test "${enable_full_report+set}" = set; then :
enableval=$enable_full_report;
valarg->fctx = fctx;
valarg->addrinfo = addrinfo;
- valarg->rmessage = rmessage;
+ dns_message_attach(rmessage, &valarg->rmessage);
if (!ISC_LIST_EMPTY(fctx->validators))
valoptions |= DNS_VALIDATOR_DEFER;
fctx->validator = validator;
}
ISC_LIST_APPEND(fctx->validators, validator, link);
- } else
+ } else {
+ dns_message_detach(&valarg->rmessage);
isc_mem_put(fctx->mctx, valarg, sizeof(*valarg));
+ }
return (result);
}
ISFORWARDER(query->addrinfo))
{
add_bad(fctx, query->rmessage,
- query->addrinfo, ISC_R_TIMEDOUT,
+ query->addrinfo, ISC_R_TIMEDOUT,
badns_forwarder);
}
}
query->rmessage = NULL;
result = dns_message_create(fctx->mctx, DNS_MESSAGE_INTENTPARSE,
- &query->rmessage);
+ &query->rmessage);
if (result != ISC_R_SUCCESS) {
goto cleanup_query;
}
uint32_t ttl;
unsigned options;
uint32_t bucketnum;
- dns_message_t *rmessage;
+ dns_message_t *rmessage = NULL;
UNUSED(task); /* for now */
res = fctx->res;
addrinfo = valarg->addrinfo;
REQUIRE(!ISC_LIST_EMPTY(fctx->validators));
- rmessage = valarg->rmessage;
+ dns_message_attach(valarg->rmessage, &rmessage);
vevent = (dns_validatorevent_t *)event;
fctx->vresult = vevent->result;
* destroy the fctx if necessary.
*/
dns_validator_destroy(&vevent->validator);
+ dns_message_detach(&valarg->rmessage);
isc_mem_put(fctx->mctx, valarg, sizeof(*valarg));
negative = (vevent->rdataset == NULL);
dns_resolver_addbadcache(res, &fctx->name,
fctx->type, &expire);
fctx_done(fctx, result, __LINE__); /* Locks bucket. */
- } else
+ } else {
fctx_try(fctx, true, true); /* Locks bucket. */
- return;
+ }
+ goto cleanup_rmessage;
}
cleanup_event:
INSIST(node == NULL);
isc_event_free(&event);
+ cleanup_rmessage:
+ dns_message_detach(&rmessage);
}
static void
}
}
- dns_message_detach(&chkarg->rmessage);
- isc_mem_put(fctx->mctx, chkarg, sizeof(*chkarg));
-
return (ISC_R_SUCCESS);
}
rdataset != NULL;
rdataset = ISC_LIST_NEXT(rdataset, link)) {
if (CHASE(rdataset)) {
- dns_chkarg_t *chkarg;
- chkarg = isc_mem_get(fctx->mctx,
- sizeof(*chkarg));
- chkarg->fctx = fctx;
- dns_message_attach(rmessage, &chkarg->rmessage);
+ dns_chkarg_t chkarg;
+ chkarg.fctx = fctx;
+ chkarg.rmessage = rmessage;
rdataset->attributes &= ~DNS_RDATASETATTR_CHASE;
(void)dns_rdataset_additionaldata(rdataset,
check_related,
- chkarg);
+ &chkarg);
rescan = true;
}
}
* we're not following a chain.)
*/
if (!negative_response && ns_name != NULL && oqname == NULL) {
- dns_chkarg_t *chkarg;
+ dns_chkarg_t chkarg;
/*
* We already know ns_name is a subdomain of fctx->domain.
* If ns_name is equal to fctx->domain, we're not making
*/
INSIST(ns_rdataset != NULL);
FCTX_ATTR_SET(fctx, FCTX_ATTR_GLUING);
- chkarg = isc_mem_get(fctx->mctx,
- sizeof(*chkarg));
- chkarg->fctx = fctx;
- dns_message_attach(message, &chkarg->rmessage);
+ chkarg.fctx = fctx;
+ chkarg.rmessage = message;
(void)dns_rdataset_additionaldata(ns_rdataset, check_related,
- chkarg);
+ &chkarg);
#if CHECK_FOR_GLUE_IN_ANSWER
/*
* Look in the answer section for "glue" that is incorrectly
if ((look_in_options & LOOK_FOR_GLUE_IN_ANSWER) != 0 &&
(fctx->type == dns_rdatatype_aaaa ||
fctx->type == dns_rdatatype_a)) {
- dns_chkarg_t *chkarg;
- chkarg = isc_mem_get(fctx->mctx, sizeof(*chkarg));
- chkarg->fctx = fctx;
- dns_message_attach(message, &chkarg->rmessage);
+ dns_chkarg_t chkarg;
+ chkarg.fcx = fctx;
+ chkarg.rmessage = message;
(void)dns_rdataset_additionaldata(ns_rdataset,
- check_answer, chkarg);
+ check_answer, &chkarg);
}
#endif
FCTX_ATTR_CLR(fctx, FCTX_ATTR_GLUING);
rdataset != NULL;
rdataset = ISC_LIST_NEXT(rdataset, link))
{
- dns_chkarg_t *chkarg;
+ dns_chkarg_t chkarg;
if (!validinanswer(rdataset, fctx)) {
return (DNS_R_FORMERR);
}
rdataset->attributes |= DNS_RDATASETATTR_CACHE;
rdataset->trust = trust;
rdataset->attributes &= ~DNS_RDATASETATTR_CHASE;
- chkarg = isc_mem_get(fctx->mctx,
- sizeof(*chkarg));
- chkarg->fctx = fctx;
- dns_message_attach(message, &chkarg->rmessage);
+ chkarg.fctx = fctx;
+ chkarg.rmessage = message;
(void)dns_rdataset_additionaldata(rdataset,
check_related,
- chkarg);
+ &chkarg);
}
} else if (aname != NULL) {
- dns_chkarg_t *chkarg;
+ dns_chkarg_t chkarg;
if (!validinanswer(ardataset, fctx))
return (DNS_R_FORMERR);
if ((ardataset->type == dns_rdatatype_a ||
ardataset->attributes |= DNS_RDATASETATTR_ANSWER;
ardataset->attributes |= DNS_RDATASETATTR_CACHE;
ardataset->trust = trust;
- chkarg = isc_mem_get(fctx->mctx,
- sizeof(*chkarg));
- chkarg->fctx = fctx;
- dns_message_attach(message, &chkarg->rmessage);
+ chkarg.fctx = fctx;
+ chkarg.rmessage = message;
(void)dns_rdataset_additionaldata(ardataset, check_related,
- chkarg);
+ &chkarg);
for (sigrdataset = ISC_LIST_HEAD(aname->list);
sigrdataset != NULL;
sigrdataset = ISC_LIST_NEXT(sigrdataset, link)) {
if (rdataset->type == dns_rdatatype_ns ||
(rdataset->type == dns_rdatatype_rrsig &&
rdataset->covers == dns_rdatatype_ns)) {
- dns_chkarg_t *chkarg;
+ dns_chkarg_t chkarg;
name->attributes |=
DNS_NAMEATTR_CACHE;
rdataset->attributes |=
* Mark any additional data related
* to this rdataset.
*/
- chkarg = isc_mem_get(fctx->mctx,
- sizeof(*chkarg));
- chkarg->fctx = fctx;
- dns_message_attach(message,
- &chkarg->rmessage);
+ chkarg.fctx = fctx;
+ chkarg.rmessage = message;
(void)dns_rdataset_additionaldata(
rdataset,
check_related,
- chkarg);
+ &chkarg);
done = true;
}
}
dns_dispatchevent_t *devent = (dns_dispatchevent_t *)event;
bool keep_trying, get_nameservers, resend, nextitem;
bool truncated;
- dns_message_t *message;
+ dns_message_t *rmessage = NULL;
dns_rdataset_t *opt;
fetchctx_t *fctx;
dns_name_t *fname;
options = query->options;
REQUIRE(VALID_FCTX(fctx));
REQUIRE(event->ev_type == DNS_EVENT_DISPATCH);
+ dns_message_attach(query->rmessage, &rmessage);
QTRACE("response");
goto done;
}
- message = query->rmessage;
-
if (query->tsig != NULL) {
- result = dns_message_setquerytsig(message, query->tsig);
+ result = dns_message_setquerytsig(rmessage, query->tsig);
if (result != ISC_R_SUCCESS) {
FCTXTRACE3("unable to set query tsig", result);
goto done;
}
if (query->tsigkey) {
- result = dns_message_settsigkey(message, query->tsigkey);
+ result = dns_message_settsigkey(rmessage, query->tsigkey);
if (result != ISC_R_SUCCESS) {
FCTXTRACE3("unable to set tsig key", result);
goto done;
}
}
- dns_message_setclass(message, res->rdclass);
+ dns_message_setclass(rmessage, res->rdclass);
if ((options & DNS_FETCHOPT_TCP) == 0) {
if ((options & DNS_FETCHOPT_NOEDNS0) == 0)
else
dns_adb_plainresponse(fctx->adb, query->addrinfo);
}
- result = dns_message_parse(message, &devent->buffer, 0);
+ result = dns_message_parse(rmessage, &devent->buffer, 0);
if (result != ISC_R_SUCCESS) {
FCTXTRACE3("message failed to parse", result);
switch (result) {
case ISC_R_UNEXPECTEDEND:
- if (!message->question_ok ||
- (message->flags & DNS_MESSAGEFLAG_TC) == 0 ||
+ if (!rmessage->question_ok ||
+ (rmessage->flags & DNS_MESSAGEFLAG_TC) == 0 ||
(options & DNS_FETCHOPT_TCP) != 0) {
/*
- * Either the message ended prematurely,
+ * Either the rmessage ended prematurely,
* and/or wasn't marked as being truncated,
* and/or this is a response to a query we
* sent over TCP. In all of these cases,
}
/*
* We defer retrying via TCP for a bit so we can
- * check out this message further.
+ * check out this rmessage further.
*/
truncated = true;
break;
/*
* Log the incoming packet.
*/
- dns_message_logfmtpacket2(message, "received packet from",
+ dns_message_logfmtpacket2(rmessage, "received packet from",
&query->addrinfo->sockaddr,
DNS_LOGCATEGORY_RESOLVER,
DNS_LOGMODULE_PACKETS,
&zr, &query->start, NULL, &devent->buffer);
#endif /* HAVE_DNSTAP */
- if (message->rdclass != res->rdclass) {
+ if (rmessage->rdclass != res->rdclass) {
resend = true;
FCTXTRACE("bad class");
goto done;
/*
* Process receive opt record.
*/
- opt = dns_message_getopt(message);
+ opt = dns_message_getopt(rmessage);
if (opt != NULL)
process_opt(query, opt);
- if (message->cc_bad && (options & DNS_FETCHOPT_TCP) == 0) {
+ if (rmessage->cc_bad && (options & DNS_FETCHOPT_TCP) == 0) {
/*
* If the COOKIE is bad, assume it is an attack and
* keep listening for a good answer.
* the same question.
* FORMERR/NOTIMP if they have a question section then it must match.
*/
- switch (message->rcode) {
+ switch (rmessage->rcode) {
case dns_rcode_notimp:
case dns_rcode_formerr:
- if (message->counts[DNS_SECTION_QUESTION] == 0)
+ if (rmessage->counts[DNS_SECTION_QUESTION] == 0)
break;
/* FALLTHROUGH */
case dns_rcode_nxrrset: /* Not expected. */
case dns_rcode_refused:
case dns_rcode_servfail:
default:
- result = same_question(fctx, message);
+ result = same_question(fctx, rmessage);
if (result != ISC_R_SUCCESS) {
FCTXTRACE3("response did not match question", result);
nextitem = true;
}
/*
- * If the message is signed, check the signature. If not, this
+ * If the rmessage is signed, check the signature. If not, this
* returns success anyway.
*/
- result = dns_message_checksig(message, res->view);
+ result = dns_message_checksig(rmessage, res->view);
if (result != ISC_R_SUCCESS) {
FCTXTRACE3("signature check failed", result);
goto done;
/*
* The dispatcher should ensure we only get responses with QR set.
*/
- INSIST((message->flags & DNS_MESSAGEFLAG_QR) != 0);
+ INSIST((rmessage->flags & DNS_MESSAGEFLAG_QR) != 0);
/*
- * INSIST() that the message comes from the place we sent it to,
+ * INSIST() that the rmessage comes from the place we sent it to,
* since the dispatch code should ensure this.
*
- * INSIST() that the message id is correct (this should also be
+ * INSIST() that the rmessage id is correct (this should also be
* ensured by the dispatch code).
*/
* EDNS support.
*/
if (opt == NULL && !EDNSOK(query->addrinfo) &&
- (message->rcode == dns_rcode_noerror ||
- message->rcode == dns_rcode_nxdomain ||
- message->rcode == dns_rcode_refused ||
- message->rcode == dns_rcode_yxdomain) &&
+ (rmessage->rcode == dns_rcode_noerror ||
+ rmessage->rcode == dns_rcode_nxdomain ||
+ rmessage->rcode == dns_rcode_refused ||
+ rmessage->rcode == dns_rcode_yxdomain) &&
bad_edns(fctx, &query->addrinfo->sockaddr)) {
- dns_message_logpacket2(message,
+ dns_message_logpacket2(rmessage,
"received packet (bad edns) from",
&query->addrinfo->sockaddr,
DNS_LOGCATEGORY_RESOLVER,
dns_adb_changeflags(fctx->adb, query->addrinfo,
DNS_FETCHOPT_NOEDNS0,
DNS_FETCHOPT_NOEDNS0);
- } else if (opt == NULL && (message->flags & DNS_MESSAGEFLAG_TC) == 0 &&
+ } else if (opt == NULL && (rmessage->flags & DNS_MESSAGEFLAG_TC) == 0 &&
!EDNSOK(query->addrinfo) &&
- (message->rcode == dns_rcode_noerror ||
- message->rcode == dns_rcode_nxdomain) &&
+ (rmessage->rcode == dns_rcode_noerror ||
+ rmessage->rcode == dns_rcode_nxdomain) &&
(query->options & DNS_FETCHOPT_NOEDNS0) == 0) {
/*
* We didn't get a OPT record in response to a EDNS query.
* should be safe to do for any rcode we limit it to NOERROR
* and NXDOMAIN.
*/
- dns_message_logpacket2(message, "received packet (no opt) from",
+ dns_message_logpacket2(rmessage, "received packet (no opt) from",
&query->addrinfo->sockaddr,
DNS_LOGCATEGORY_RESOLVER,
DNS_LOGMODULE_RESOLVER,
*/
if (opt != NULL && !EDNSOK(query->addrinfo) &&
(query->options & DNS_FETCHOPT_NOEDNS0) == 0 &&
- (message->rcode == dns_rcode_noerror ||
- message->rcode == dns_rcode_nxdomain ||
- message->rcode == dns_rcode_refused ||
- message->rcode == dns_rcode_yxdomain)) {
+ (rmessage->rcode == dns_rcode_noerror ||
+ rmessage->rcode == dns_rcode_nxdomain ||
+ rmessage->rcode == dns_rcode_refused ||
+ rmessage->rcode == dns_rcode_yxdomain)) {
dns_adb_changeflags(fctx->adb, query->addrinfo,
FCTX_ADDRINFO_EDNSOK,
FCTX_ADDRINFO_EDNSOK);
/*
* Deal with truncated responses by retrying using TCP.
*/
- if ((message->flags & DNS_MESSAGEFLAG_TC) != 0)
+ if ((rmessage->flags & DNS_MESSAGEFLAG_TC) != 0)
truncated = true;
if (truncated) {
/*
* Is it a query response?
*/
- if (message->opcode != dns_opcode_query) {
+ if (rmessage->opcode != dns_opcode_query) {
/* XXXRTH Log */
broken_server = DNS_R_UNEXPECTEDOPCODE;
keep_trying = true;
- FCTXTRACE("invalid message opcode");
+ FCTXTRACE("invalid rmessage opcode");
goto done;
}
/*
* Update statistics about erroneous responses.
*/
- if (message->rcode != dns_rcode_noerror) {
- switch (message->rcode) {
+ if (rmessage->rcode != dns_rcode_noerror) {
+ switch (rmessage->rcode) {
case dns_rcode_nxdomain:
inc_stats(res, dns_resstatscounter_nxdomain);
break;
/*
* Is the remote server broken, or does it dislike us?
*/
- if (message->rcode != dns_rcode_noerror &&
- message->rcode != dns_rcode_yxdomain &&
- message->rcode != dns_rcode_nxdomain) {
+ if (rmessage->rcode != dns_rcode_noerror &&
+ rmessage->rcode != dns_rcode_yxdomain &&
+ rmessage->rcode != dns_rcode_nxdomain) {
isc_buffer_t b;
char code[64];
unsigned char cookie[64];
* Some servers do not ignore unknown EDNS options.
*/
if (!NOCOOKIE(query->addrinfo) &&
- (message->rcode == dns_rcode_formerr ||
- message->rcode == dns_rcode_notimp ||
- message->rcode == dns_rcode_refused) &&
+ (rmessage->rcode == dns_rcode_formerr ||
+ rmessage->rcode == dns_rcode_notimp ||
+ rmessage->rcode == dns_rcode_refused) &&
dns_adb_getcookie(fctx->adb, query->addrinfo,
cookie, sizeof(cookie)) == 0U) {
dns_adb_changeflags(fctx->adb, query->addrinfo,
FCTX_ADDRINFO_NOCOOKIE,
FCTX_ADDRINFO_NOCOOKIE);
resend = true;
- } else if ((message->rcode == dns_rcode_formerr ||
- message->rcode == dns_rcode_notimp ||
- (message->rcode == dns_rcode_servfail &&
- dns_message_getopt(message) == NULL)) &&
+ } else if ((rmessage->rcode == dns_rcode_formerr ||
+ rmessage->rcode == dns_rcode_notimp ||
+ (rmessage->rcode == dns_rcode_servfail &&
+ dns_message_getopt(rmessage) == NULL)) &&
(query->options & DNS_FETCHOPT_NOEDNS0) == 0) {
/*
* It's very likely they don't like EDNS0.
*/
add_bad_edns(fctx, &query->addrinfo->sockaddr);
inc_stats(res, dns_resstatscounter_edns0fail);
- } else if (message->rcode == dns_rcode_formerr) {
+ } else if (rmessage->rcode == dns_rcode_formerr) {
if (ISFORWARDER(query->addrinfo)) {
/*
* This forwarder doesn't understand us,
log_formerr(fctx, "server sent FORMERR");
result = DNS_R_FORMERR;
}
- } else if (message->rcode == dns_rcode_badvers) {
+ } else if (rmessage->rcode == dns_rcode_badvers) {
unsigned int version;
bool setnocookie = false;
#if DNS_EDNS_VERSION > 0
keep_trying = true;
}
#endif
- } else if (message->rcode == dns_rcode_badcookie &&
- message->cc_ok) {
+ } else if (rmessage->rcode == dns_rcode_badcookie &&
+ rmessage->cc_ok) {
/*
* We have recorded the new cookie.
*/
}
isc_buffer_init(&b, code, sizeof(code) - 1);
- dns_rcode_totext(message->rcode, &b);
+ dns_rcode_totext(rmessage->rcode, &b);
code[isc_buffer_usedlength(&b)] = '\0';
FCTXTRACE2("remote server broken: returned ", code);
goto done;
* Is the server lame?
*/
if (res->lame_ttl != 0 && !ISFORWARDER(query->addrinfo) &&
- is_lame(fctx, message)) {
+ is_lame(fctx, rmessage)) {
inc_stats(res, dns_resstatscounter_lame);
log_lame(fctx, query->addrinfo);
result = dns_adb_marklame(fctx->adb, query->addrinfo,
if (!ISFORWARDER(query->addrinfo) &&
dns_view_isdelegationonly(res->view, &fctx->domain) &&
!dns_name_equal(&fctx->domain, &fctx->name) &&
- fix_mustbedelegationornxdomain(message, fctx)) {
+ fix_mustbedelegationornxdomain(rmessage, fctx)) {
char namebuf[DNS_NAME_FORMATSIZE];
char domainbuf[DNS_NAME_FORMATSIZE];
char addrbuf[ISC_SOCKADDR_FORMATSIZE];
}
if ((res->options & DNS_RESOLVER_CHECKNAMES) != 0)
- checknames(message);
+ checknames(rmessage);
/*
* Clear cache bits.
/*
* Did we get any answers?
*/
- if (message->counts[DNS_SECTION_ANSWER] > 0 &&
- (message->rcode == dns_rcode_noerror ||
- message->rcode == dns_rcode_yxdomain ||
- message->rcode == dns_rcode_nxdomain)) {
+ if (rmessage->counts[DNS_SECTION_ANSWER] > 0 &&
+ (rmessage->rcode == dns_rcode_noerror ||
+ rmessage->rcode == dns_rcode_yxdomain ||
+ rmessage->rcode == dns_rcode_nxdomain)) {
/*
* [normal case]
* We've got answers. If it has an authoritative answer or an
* answer from a forwarder, we're done.
*/
- if ((message->flags & DNS_MESSAGEFLAG_AA) != 0 ||
+ if ((rmessage->flags & DNS_MESSAGEFLAG_AA) != 0 ||
ISFORWARDER(query->addrinfo))
{
- result = answer_response(fctx, message);
+ result = answer_response(fctx, rmessage);
if (result != ISC_R_SUCCESS)
FCTXTRACE3("answer_response (AA/fwd)", result);
- } else if (iscname(fctx, message) &&
+ } else if (iscname(fctx, rmessage) &&
fctx->type != dns_rdatatype_any &&
fctx->type != dns_rdatatype_cname)
{
* answer when a CNAME is followed. We should treat
* it as a valid answer.
*/
- result = answer_response(fctx, message);
+ result = answer_response(fctx, rmessage);
if (result != ISC_R_SUCCESS)
FCTXTRACE3("answer_response (!ANY/!CNAME)",
result);
} else if (fctx->type != dns_rdatatype_ns &&
- !betterreferral(fctx, message)) {
+ !betterreferral(fctx, rmessage)) {
/*
* Lame response !!!.
*/
- result = answer_response(fctx, message);
+ result = answer_response(fctx, rmessage);
if (result != ISC_R_SUCCESS)
FCTXTRACE3("answer_response (!NS)", result);
} else {
* special kludge to treat it as a referral.
*/
result = noanswer_response(fctx,
- message,
+ rmessage,
NULL,
LOOK_FOR_NS_IN_ANSWER);
if (result != ISC_R_SUCCESS)
* such a corner case.
*/
result = noanswer_response(fctx,
- message,
+ rmessage,
NULL,
LOOK_FOR_GLUE_IN_ANSWER);
if (result != ISC_R_SUCCESS)
keep_trying = true;
goto done;
}
- } else if (message->counts[DNS_SECTION_AUTHORITY] > 0 ||
- message->rcode == dns_rcode_noerror ||
- message->rcode == dns_rcode_nxdomain) {
+ } else if (rmessage->counts[DNS_SECTION_AUTHORITY] > 0 ||
+ rmessage->rcode == dns_rcode_noerror ||
+ rmessage->rcode == dns_rcode_nxdomain) {
/*
* NXDOMAIN, NXRDATASET, or referral.
*/
- result = noanswer_response(fctx, message, NULL, 0);
+ result = noanswer_response(fctx, rmessage, NULL, 0);
switch (result) {
case ISC_R_SUCCESS:
case DNS_R_CHASEDSSERVERS:
/*
* Follow additional section data chains.
*/
- chase_additional(fctx, message);
+ chase_additional(fctx, rmessage);
/*
- * Cache the cacheable parts of the message. This may also cause
+ * Cache the cacheable parts of the rmessage. This may also cause
* work to be queued to the DNSSEC validator.
*/
if (WANTCACHE(fctx)) {
- result = cache_message(fctx, message, query->addrinfo,
+ result = cache_message(fctx, rmessage, query->addrinfo,
now);
if (result != ISC_R_SUCCESS) {
FCTXTRACE3("cache_message complete", result);
}
/*
- * Ncache the negatively cacheable parts of the message. This may
+ * Ncache the negatively cacheable parts of the rmessage. This may
* also cause work to be queued to the DNSSEC validator.
*/
if (WANTNCACHE(fctx)) {
/*
* Cache DS NXDOMAIN separately to other types.
*/
- if (message->rcode == dns_rcode_nxdomain &&
+ if (rmessage->rcode == dns_rcode_nxdomain &&
fctx->type != dns_rdatatype_ds)
covers = dns_rdatatype_any;
else
covers = fctx->type;
/*
- * Cache any negative cache entries in the message.
+ * Cache any negative cache entries in the rmessage.
*/
- result = ncache_message(fctx, message, query->addrinfo, covers, now);
+ result = ncache_message(fctx, rmessage, query->addrinfo, covers, now);
if (result != ISC_R_SUCCESS)
FCTXTRACE3("ncache_message complete", result);
}
#ifdef ENABLE_AFL
if (dns_fuzzing_resolver && (keep_trying || resend)) {
fctx_done(fctx, DNS_R_SERVFAIL, __LINE__);
- return;
+ goto cleanup_rmessage;
} else
#endif
if (keep_trying) {
* Add this server to the list of bad servers for
* this fctx.
*/
- add_bad(fctx, message, addrinfo,
+ add_bad(fctx, rmessage, addrinfo,
broken_server, broken_type);
}
fname = dns_fixedname_initname(&foundname);
if (result != ISC_R_SUCCESS) {
fctx_done(fctx, DNS_R_SERVFAIL, __LINE__);
- return;
+ goto detach_rmessage;
}
findoptions = 0;
if (dns_rdatatype_atparent(fctx->type))
if (result != ISC_R_SUCCESS) {
FCTXTRACE("couldn't find a zonecut");
fctx_done(fctx, DNS_R_SERVFAIL, __LINE__);
- return;
+ goto detach_rmessage;
}
if (!dns_name_issubdomain(fname, &fctx->domain)) {
/*
*/
FCTXTRACE("nameservers now above QDOMAIN");
fctx_done(fctx, DNS_R_SERVFAIL, __LINE__);
- return;
+ goto detach_rmessage;
}
fcount_decr(fctx);
result = dns_name_dup(fname, fctx->mctx, &fctx->domain);
if (result != ISC_R_SUCCESS) {
fctx_done(fctx, DNS_R_SERVFAIL, __LINE__);
- return;
+ goto detach_rmessage;
}
result = fcount_incr(fctx, true);
if (result != ISC_R_SUCCESS) {
fctx_done(fctx, DNS_R_SERVFAIL, __LINE__);
- return;
+ goto detach_rmessage;
}
fctx->ns_ttl = fctx->nameservers.ttl;
fctx->ns_ttl_ok = true;
fctx_done(fctx, result, __LINE__);
} else if (result == DNS_R_CHASEDSSERVERS) {
unsigned int n;
- add_bad(fctx, query->rmessage, addrinfo, result, broken_type);
+ add_bad(fctx, rmessage, addrinfo, result, broken_type);
fctx_cancelqueries(fctx, true, false);
fctx_cleanupfinds(fctx);
fctx_cleanupforwaddrs(fctx);
*/
fctx_done(fctx, result, __LINE__);
}
+detach_rmessage:
+ dns_message_detach(&rmessage);
}
/***
cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
# Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
dynamic_linker='GNU/Linux ld.so'
;;
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
netbsd*)
version_type=sunos
need_lib_prefix=no
lt_cv_deplibs_check_method=pass_all
;;
-netbsd*)
+netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
else
if AC_TRY_EVAL(ac_compile); then
# Now try to grab the symbols.
nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+ $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD
+ if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
;;
esac
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
;;
*qnx* | *nto*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
;;
esac
;;
+ linux* | k*bsd*-gnu | gnu*)
+ _LT_TAGVAR(link_all_deplibs, $1)=no
+ ;;
*)
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
;;
openbsd* | bitrig*)
with_gnu_ld=no
;;
+ linux* | k*bsd*-gnu | gnu*)
+ _LT_TAGVAR(link_all_deplibs, $1)=no
+ ;;
esac
_LT_TAGVAR(ld_shlibs, $1)=yes
fi
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
if test yes = "$lt_cv_irix_exported_symbol"; then
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
+ _LT_TAGVAR(link_all_deplibs, $1)=no
else
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
esac
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
else
GXX=no
# explicitly linking system object files so we need to strip them
# from the output so that they don't get included in the library
# dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
;;
*)
if test yes = "$GXX"; then
# explicitly linking system object files so we need to strip them
# from the output so that they don't get included in the library
# dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
;;
*)
if test yes = "$GXX"; then
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
else
# FIXME: insert proper C++ library support
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
else
# g++ 2.7 appears to require '-G' NOT '-shared' on this
# platform.
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
fi
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
PROGRAM=libtool
PACKAGE=libtool
-VERSION=2.4.6
+VERSION="2.4.6 Debian-2.4.6-9"
package_revision=2.4.6
#! /bin/sh
# Set a version string for this script.
-scriptversion=2014-01-07.03; # UTC
+scriptversion=2015-10-07.11; # UTC
# A portable, pluggable option parser for Bourne shell.
# Written by Gary V. Vaughan, 2010
{
$debug_cmd
+ _G_rc_run_hooks=false
+
case " $hookable_fns " in
*" $1 "*) ;;
*) func_fatal_error "'$1' does not support hook funcions.n" ;;
eval _G_hook_fns=\$$1_hooks; shift
for _G_hook in $_G_hook_fns; do
- eval $_G_hook '"$@"'
-
- # store returned options list back into positional
- # parameters for next 'cmd' execution.
- eval _G_hook_result=\$${_G_hook}_result
- eval set dummy "$_G_hook_result"; shift
+ if eval $_G_hook '"$@"'; then
+ # store returned options list back into positional
+ # parameters for next 'cmd' execution.
+ eval _G_hook_result=\$${_G_hook}_result
+ eval set dummy "$_G_hook_result"; shift
+ _G_rc_run_hooks=:
+ fi
done
- func_quote_for_eval ${1+"$@"}
- func_run_hooks_result=$func_quote_for_eval_result
+ $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result
}
## --------------- ##
# In order to add your own option parsing hooks, you must accept the
-# full positional parameter list in your hook function, remove any
-# options that you action, and then pass back the remaining unprocessed
+# full positional parameter list in your hook function, you may remove/edit
+# any options that you action, and then pass back the remaining unprocessed
# options in '<hooked_function_name>_result', escaped suitably for
-# 'eval'. Like this:
+# 'eval'. In this case you also must return $EXIT_SUCCESS to let the
+# hook's caller know that it should pay attention to
+# '<hooked_function_name>_result'. Returning $EXIT_FAILURE signalizes that
+# arguments are left untouched by the hook and therefore caller will ignore the
+# result variable.
+#
+# Like this:
#
# my_options_prep ()
# {
# usage_message=$usage_message'
# -s, --silent don'\''t print informational messages
# '
-#
-# func_quote_for_eval ${1+"$@"}
-# my_options_prep_result=$func_quote_for_eval_result
+# # No change in '$@' (ignored completely by this hook). There is
+# # no need to do the equivalent (but slower) action:
+# # func_quote_for_eval ${1+"$@"}
+# # my_options_prep_result=$func_quote_for_eval_result
+# false
# }
# func_add_hook func_options_prep my_options_prep
#
# {
# $debug_cmd
#
+# args_changed=false
+#
# # Note that for efficiency, we parse as many options as we can
# # recognise in a loop before passing the remainder back to the
# # caller on the first unrecognised argument we encounter.
# while test $# -gt 0; do
# opt=$1; shift
# case $opt in
-# --silent|-s) opt_silent=: ;;
+# --silent|-s) opt_silent=:
+# args_changed=:
+# ;;
# # Separate non-argument short options:
# -s*) func_split_short_opt "$_G_opt"
# set dummy "$func_split_short_opt_name" \
# "-$func_split_short_opt_arg" ${1+"$@"}
# shift
+# args_changed=:
# ;;
-# *) set dummy "$_G_opt" "$*"; shift; break ;;
+# *) # Make sure the first unrecognised option "$_G_opt"
+# # is added back to "$@", we could need that later
+# # if $args_changed is true.
+# set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
# esac
# done
#
-# func_quote_for_eval ${1+"$@"}
-# my_silent_option_result=$func_quote_for_eval_result
+# if $args_changed; then
+# func_quote_for_eval ${1+"$@"}
+# my_silent_option_result=$func_quote_for_eval_result
+# fi
+#
+# $args_changed
# }
# func_add_hook func_parse_options my_silent_option
#
# $opt_silent && $opt_verbose && func_fatal_help "\
# '--silent' and '--verbose' options are mutually exclusive."
#
-# func_quote_for_eval ${1+"$@"}
-# my_option_validation_result=$func_quote_for_eval_result
+# false
# }
# func_add_hook func_validate_options my_option_validation
#
-# You'll alse need to manually amend $usage_message to reflect the extra
+# You'll also need to manually amend $usage_message to reflect the extra
# options you parse. It's preferable to append if you can, so that
# multiple option parsing hooks can be added safely.
+# func_options_finish [ARG]...
+# ----------------------------
+# Finishing the option parse loop (call 'func_options' hooks ATM).
+func_options_finish ()
+{
+ $debug_cmd
+
+ _G_func_options_finish_exit=false
+ if func_run_hooks func_options ${1+"$@"}; then
+ func_options_finish_result=$func_run_hooks_result
+ _G_func_options_finish_exit=:
+ fi
+
+ $_G_func_options_finish_exit
+}
+
+
# func_options [ARG]...
# ---------------------
# All the functions called inside func_options are hookable. See the
{
$debug_cmd
- func_options_prep ${1+"$@"}
- eval func_parse_options \
- ${func_options_prep_result+"$func_options_prep_result"}
- eval func_validate_options \
- ${func_parse_options_result+"$func_parse_options_result"}
+ _G_rc_options=false
+
+ for my_func in options_prep parse_options validate_options options_finish
+ do
+ if eval func_$my_func '${1+"$@"}'; then
+ eval _G_res_var='$'"func_${my_func}_result"
+ eval set dummy "$_G_res_var" ; shift
+ _G_rc_options=:
+ fi
+ done
- eval func_run_hooks func_options \
- ${func_validate_options_result+"$func_validate_options_result"}
+ # Save modified positional parameters for caller. As a top-level
+ # options-parser function we always need to set the 'func_options_result'
+ # variable (regardless the $_G_rc_options value).
+ if $_G_rc_options; then
+ func_options_result=$_G_res_var
+ else
+ func_quote_for_eval ${1+"$@"}
+ func_options_result=$func_quote_for_eval_result
+ fi
- # save modified positional parameters for caller
- func_options_result=$func_run_hooks_result
+ $_G_rc_options
}
# All initialisations required before starting the option parse loop.
# Note that when calling hook functions, we pass through the list of
# positional parameters. If a hook function modifies that list, and
-# needs to propogate that back to rest of this script, then the complete
+# needs to propagate that back to rest of this script, then the complete
# modified list must be put in 'func_run_hooks_result' before
-# returning.
+# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned).
func_hookable func_options_prep
func_options_prep ()
{
opt_verbose=false
opt_warning_types=
- func_run_hooks func_options_prep ${1+"$@"}
+ _G_rc_options_prep=false
+ if func_run_hooks func_options_prep ${1+"$@"}; then
+ _G_rc_options_prep=:
+ # save modified positional parameters for caller
+ func_options_prep_result=$func_run_hooks_result
+ fi
- # save modified positional parameters for caller
- func_options_prep_result=$func_run_hooks_result
+ $_G_rc_options_prep
}
func_parse_options_result=
+ _G_rc_parse_options=false
# this just eases exit handling
while test $# -gt 0; do
# Defer to hook functions for initial option parsing, so they
# get priority in the event of reusing an option name.
- func_run_hooks func_parse_options ${1+"$@"}
-
- # Adjust func_parse_options positional parameters to match
- eval set dummy "$func_run_hooks_result"; shift
+ if func_run_hooks func_parse_options ${1+"$@"}; then
+ eval set dummy "$func_run_hooks_result"; shift
+ _G_rc_parse_options=:
+ fi
# Break out of the loop if we already parsed every option.
test $# -gt 0 || break
+ _G_match_parse_options=:
_G_opt=$1
shift
case $_G_opt in
;;
--warnings|--warning|-W)
- test $# = 0 && func_missing_arg $_G_opt && break
+ if test $# = 0 && func_missing_arg $_G_opt; then
+ _G_rc_parse_options=:
+ break
+ fi
case " $warning_categories $1" in
*" $1 "*)
# trailing space prevents matching last $1 above
shift
;;
- --) break ;;
+ --) _G_rc_parse_options=: ; break ;;
-*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+ *) set dummy "$_G_opt" ${1+"$@"}; shift
+ _G_match_parse_options=false
+ break
+ ;;
esac
+
+ $_G_match_parse_options && _G_rc_parse_options=:
done
- # save modified positional parameters for caller
- func_quote_for_eval ${1+"$@"}
- func_parse_options_result=$func_quote_for_eval_result
+
+ if $_G_rc_parse_options; then
+ # save modified positional parameters for caller
+ func_quote_for_eval ${1+"$@"}
+ func_parse_options_result=$func_quote_for_eval_result
+ fi
+
+ $_G_rc_parse_options
}
{
$debug_cmd
+ _G_rc_validate_options=false
+
# Display all warnings if -W was not given.
test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
- func_run_hooks func_validate_options ${1+"$@"}
+ if func_run_hooks func_validate_options ${1+"$@"}; then
+ # save modified positional parameters for caller
+ func_validate_options_result=$func_run_hooks_result
+ _G_rc_validate_options=:
+ fi
# Bail if the options were screwed!
$exit_cmd $EXIT_FAILURE
- # save modified positional parameters for caller
- func_validate_options_result=$func_run_hooks_result
+ $_G_rc_validate_options
}
compiler: $LTCC
compiler flags: $LTCFLAGS
linker: $LD (gnu? $with_gnu_ld)
- version: $progname (GNU libtool) 2.4.6
+ version: $progname $scriptversion Debian-2.4.6-9
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
Report bugs to <bug-libtool@gnu.org>.
-GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+GNU libtool home page: <http://www.gnu.org/s/libtool/>.
General help using GNU software: <http://www.gnu.org/gethelp/>."
exit 0
}
nonopt=
preserve_args=
+ _G_rc_lt_options_prep=:
+
# Shorthand for --mode=foo, only valid as the first argument
case $1 in
clean|clea|cle|cl)
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
shift; set dummy --mode uninstall ${1+"$@"}; shift
;;
+ *)
+ _G_rc_lt_options_prep=false
+ ;;
esac
- # Pass back the list of options.
- func_quote_for_eval ${1+"$@"}
- libtool_options_prep_result=$func_quote_for_eval_result
+ if $_G_rc_lt_options_prep; then
+ # Pass back the list of options.
+ func_quote_for_eval ${1+"$@"}
+ libtool_options_prep_result=$func_quote_for_eval_result
+ fi
+
+ $_G_rc_lt_options_prep
}
func_add_hook func_options_prep libtool_options_prep
{
$debug_cmd
+ _G_rc_lt_parse_options=false
+
# Perform our own loop to consume as many options as possible in
# each iteration.
while test $# -gt 0; do
+ _G_match_lt_parse_options=:
_G_opt=$1
shift
case $_G_opt in
func_append preserve_args " $_G_opt"
;;
- # An option not handled by this hook function:
- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+ # An option not handled by this hook function:
+ *) set dummy "$_G_opt" ${1+"$@"} ; shift
+ _G_match_lt_parse_options=false
+ break
+ ;;
esac
+ $_G_match_lt_parse_options && _G_rc_lt_parse_options=:
done
+ if $_G_rc_lt_parse_options; then
+ # save modified positional parameters for caller
+ func_quote_for_eval ${1+"$@"}
+ libtool_parse_options_result=$func_quote_for_eval_result
+ fi
- # save modified positional parameters for caller
- func_quote_for_eval ${1+"$@"}
- libtool_parse_options_result=$func_quote_for_eval_result
+ $_G_rc_lt_parse_options
}
func_add_hook func_parse_options libtool_parse_options
# -tp=* Portland pgcc target processor selection
# --sysroot=* for sysroot support
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+ # -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
+ # -fsanitize=* Clang/GCC memory and address sanitizer
+ # -fuse-ld=* Linker select flags for GCC
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
+ -specs=*|-fsanitize=*|-fuse-ld=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"
case $pass in
dlopen) libs=$dlfiles ;;
dlpreopen) libs=$dlprefiles ;;
- link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+ link)
+ libs="$deplibs %DEPLIBS%"
+ test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
+ ;;
esac
fi
if test lib,dlpreopen = "$linkmode,$pass"; then
# It is a libtool convenience library, so add in its objects.
func_append convenience " $ladir/$objdir/$old_library"
func_append old_convenience " $ladir/$objdir/$old_library"
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if $opt_preserve_dup_deps; then
+ case "$tmp_libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append tmp_libs " $deplib"
+ done
elif test prog != "$linkmode" && test lib != "$linkmode"; then
func_fatal_error "'$lib' is not a convenience library"
fi
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_preserve_dup_deps; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done
continue
fi # $pass = conv
revision=$number_minor
lt_irix_increment=no
;;
+ *)
+ func_fatal_configuration "$modename: unknown library version type '$version_type'"
+ ;;
esac
;;
no)