merge unbound 1.17.0
authorsthen <sthen@openbsd.org>
Thu, 20 Oct 2022 08:26:14 +0000 (08:26 +0000)
committersthen <sthen@openbsd.org>
Thu, 20 Oct 2022 08:26:14 +0000 (08:26 +0000)
60 files changed:
usr.sbin/unbound/Makefile.in
usr.sbin/unbound/acx_nlnetlabs.m4
usr.sbin/unbound/config.guess
usr.sbin/unbound/config.h.in
usr.sbin/unbound/config.sub
usr.sbin/unbound/configure
usr.sbin/unbound/configure.ac
usr.sbin/unbound/daemon/acl_list.c
usr.sbin/unbound/daemon/acl_list.h
usr.sbin/unbound/daemon/daemon.c
usr.sbin/unbound/daemon/daemon.h
usr.sbin/unbound/daemon/remote.c
usr.sbin/unbound/daemon/stats.c
usr.sbin/unbound/daemon/worker.c
usr.sbin/unbound/daemon/worker.h
usr.sbin/unbound/doc/Changelog
usr.sbin/unbound/doc/README
usr.sbin/unbound/doc/example.conf.in
usr.sbin/unbound/doc/libunbound.3.in
usr.sbin/unbound/doc/unbound-anchor.8.in
usr.sbin/unbound/doc/unbound-checkconf.8.in
usr.sbin/unbound/doc/unbound-control.8.in
usr.sbin/unbound/doc/unbound-host.1.in
usr.sbin/unbound/doc/unbound.8.in
usr.sbin/unbound/doc/unbound.conf.5.in
usr.sbin/unbound/edns-subnet/addrtree.c
usr.sbin/unbound/edns-subnet/addrtree.h
usr.sbin/unbound/edns-subnet/subnetmod.c
usr.sbin/unbound/iterator/iter_hints.c
usr.sbin/unbound/iterator/iter_resptype.c
usr.sbin/unbound/iterator/iterator.c
usr.sbin/unbound/iterator/iterator.h
usr.sbin/unbound/libunbound/libunbound.c
usr.sbin/unbound/respip/respip.c
usr.sbin/unbound/respip/respip.h
usr.sbin/unbound/services/authzone.c
usr.sbin/unbound/services/cache/infra.c
usr.sbin/unbound/services/cache/infra.h
usr.sbin/unbound/services/listen_dnsport.c
usr.sbin/unbound/services/listen_dnsport.h
usr.sbin/unbound/services/localzone.c
usr.sbin/unbound/services/mesh.c
usr.sbin/unbound/services/outside_network.c
usr.sbin/unbound/services/outside_network.h
usr.sbin/unbound/services/view.c
usr.sbin/unbound/smallapp/unbound-checkconf.c
usr.sbin/unbound/smallapp/unbound-control.c
usr.sbin/unbound/util/config_file.c
usr.sbin/unbound/util/config_file.h
usr.sbin/unbound/util/configlexer.lex
usr.sbin/unbound/util/configparser.y
usr.sbin/unbound/util/fptr_wlist.c
usr.sbin/unbound/util/net_help.c
usr.sbin/unbound/util/net_help.h
usr.sbin/unbound/util/netevent.c
usr.sbin/unbound/util/netevent.h
usr.sbin/unbound/util/storage/dnstree.c
usr.sbin/unbound/util/storage/dnstree.h
usr.sbin/unbound/util/tube.c
usr.sbin/unbound/util/tube.h

index cf907eb..babbe42 100644 (file)
@@ -130,7 +130,7 @@ util/fptr_wlist.c util/locks.c util/log.c util/mini_event.c util/module.c \
 util/netevent.c util/net_help.c util/random.c util/rbtree.c util/regional.c \
 util/rtt.c util/edns.c util/storage/dnstree.c util/storage/lookup3.c \
 util/storage/lruhash.c util/storage/slabhash.c util/tcp_conn_limit.c \
-util/timehist.c util/tube.c \
+util/timehist.c util/tube.c util/proxy_protocol.c \
 util/ub_event.c util/ub_event_pluggable.c util/winsock_event.c \
 validator/autotrust.c validator/val_anchor.c validator/validator.c \
 validator/val_kcache.c validator/val_kentry.c validator/val_neg.c \
@@ -148,7 +148,7 @@ outbound_list.lo alloc.lo config_file.lo configlexer.lo configparser.lo \
 fptr_wlist.lo edns.lo locks.lo log.lo mini_event.lo module.lo net_help.lo \
 random.lo rbtree.lo regional.lo rtt.lo dnstree.lo lookup3.lo lruhash.lo \
 slabhash.lo tcp_conn_limit.lo timehist.lo tube.lo winsock_event.lo \
-autotrust.lo val_anchor.lo rpz.lo \
+autotrust.lo val_anchor.lo rpz.lo proxy_protocol.lo \
 validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo val_nsec.lo \
 val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo $(CACHEDB_OBJ) authzone.lo \
 $(SUBNET_OBJ) $(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) $(DNSCRYPT_OBJ) \
@@ -985,6 +985,8 @@ netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/neteve
  $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h $(srcdir)/services/authzone.h $(srcdir)/daemon/stats.h \
  $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/respip/respip.h $(srcdir)/sldns/str2wire.h \
  $(srcdir)/dnstap/dnstap.h  $(srcdir)/services/listen_dnsport.h
+proxy_protocol.lo proxy_protocol.o: $(srcdir)/util/proxy_protocol.c config.h \
+ $(srcdir)/util/proxy_protocol.h $(srcdir)/sldns/sbuffer.h
 net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \
  $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \
  $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
@@ -1513,7 +1515,7 @@ asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libu
  $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound-event.h $(srcdir)/util/data/packed_rrset.h \
  $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/rrdef.h
 streamtcp.lo streamtcp.o: $(srcdir)/testcode/streamtcp.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
- $(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgparse.h \
+ $(srcdir)/util/net_help.h $(srcdir)/util/proxy_protocol.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgparse.h \
  $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \
  $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/dname.h $(srcdir)/sldns/sbuffer.h \
  $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h
index 1574f97..cf436ec 100644 (file)
@@ -2,7 +2,8 @@
 # Copyright 2009, Wouter Wijngaards, NLnet Labs.   
 # BSD licensed.
 #
-# Version 43
+# Version 44
+# 2022-09-01 fix checking if nonblocking sockets work on OpenBSD.
 # 2021-08-17 fix sed script in ssldir split handling.
 # 2021-08-17 fix for openssl to detect split version, with ssldir_include
 #           and ssldir_lib output directories.
@@ -963,6 +964,9 @@ AC_LANG_SOURCE([[
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
index a419d86..980b020 100644 (file)
@@ -4,7 +4,7 @@
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2022-08-01'
+timestamp='2022-09-17'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -966,6 +966,12 @@ EOF
        GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
        GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
        ;;
+    x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
+       GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
+       ;;
+    *:[Mm]anagarm:*:*)
+       GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
+       ;;
     *:Minix:*:*)
        GUESS=$UNAME_MACHINE-unknown-minix
        ;;
index 07d47a8..1f1d87b 100644 (file)
 /* Define to 1 if you have the `getrlimit' function. */
 #undef HAVE_GETRLIMIT
 
+/* Define to 1 if you have the `gettid' function. */
+#undef HAVE_GETTID
+
 /* Define to 1 if you have the `glob' function. */
 #undef HAVE_GLOB
 
 /* Define to 1 if you have the `OSSL_PARAM_BLD_new' function. */
 #undef HAVE_OSSL_PARAM_BLD_NEW
 
+/* Define to 1 if you have the `poll' function. */
+#undef HAVE_POLL
+
+/* Define to 1 if you have the <poll.h> header file. */
+#undef HAVE_POLL_H
+
 /* Define if you have POSIX threads libraries and header files. */
 #undef HAVE_PTHREAD
 
 /* Shared data */
 #undef SHARE_DIR
 
+/* The size of `pthread_t', as computed by sizeof. */
+#undef SIZEOF_PTHREAD_T
+
 /* The size of `size_t', as computed by sizeof. */
 #undef SIZEOF_SIZE_T
 
 /* The size of `time_t', as computed by sizeof. */
 #undef SIZEOF_TIME_T
 
+/* The size of `unsigned long', as computed by sizeof. */
+#undef SIZEOF_UNSIGNED_LONG
+
 /* define if (v)snprintf does not return length needed, (but length used) */
 #undef SNPRINTF_RET_BROKEN
 
index fbaa37f..baf1512 100644 (file)
@@ -4,7 +4,7 @@
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2022-08-01'
+timestamp='2022-09-17'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -145,7 +145,7 @@ case $1 in
                        nto-qnx* | linux-* | uclinux-uclibc* \
                        | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
                        | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
-                       | storm-chaos* | os2-emx* | rtmk-nova*)
+                       | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
                                basic_machine=$field1
                                basic_os=$maybe_os
                                ;;
@@ -1341,6 +1341,10 @@ EOF
                kernel=linux
                os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
                ;;
+       managarm*)
+               kernel=managarm
+               os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
+               ;;
        *)
                kernel=
                os=$basic_os
@@ -1754,7 +1758,7 @@ case $os in
             | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
             | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
             | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
-            | fiwix* )
+            | fiwix* | mlibc* )
                ;;
        # This one is extra strict with allowed versions
        sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@@ -1762,6 +1766,9 @@ case $os in
                ;;
        none)
                ;;
+       kernel* )
+               # Restricted further below
+               ;;
        *)
                echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
                exit 1
@@ -1772,16 +1779,26 @@ esac
 # (given a valid OS), if there is a kernel.
 case $kernel-$os in
        linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
-                  | linux-musl* | linux-relibc* | linux-uclibc* )
+                  | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
                ;;
        uclinux-uclibc* )
                ;;
-       -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
+       managarm-mlibc* | managarm-kernel* )
+               ;;
+       -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
                # These are just libc implementations, not actual OSes, and thus
                # require a kernel.
                echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
                exit 1
                ;;
+       -kernel* )
+               echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
+               exit 1
+               ;;
+       *-kernel* )
+               echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
+               exit 1
+               ;;
        kfreebsd*-gnu* | kopensolaris*-gnu*)
                ;;
        vxworks-simlinux | vxworks-simwindows | vxworks-spe)
index ed0518f..4caf4f8 100644 (file)
@@ -1,12 +1,11 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for unbound 1.16.3.
+# Generated by GNU Autoconf 2.69 for unbound 1.17.0.
 #
 # Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>.
 #
 #
-# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
-# Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
-if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
-then :
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else $as_nop
+else
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -36,46 +33,46 @@ esac
 fi
 
 
-
-# Reset variables that may have inherited troublesome values from
-# the environment.
-
-# IFS needs to be set, to space, tab, and newline, in precisely that order.
-# (If _AS_PATH_WALK were called with IFS unset, it would have the
-# side effect of setting IFS to empty, thus disabling word splitting.)
-# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-IFS=" ""       $as_nl"
-
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# Ensure predictable behavior from utilities with locale-dependent output.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# We cannot yet rely on "unset" to work, but we need these variables
-# to be unset--not just set to an empty or harmless value--now, to
-# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
-# also avoids known problems related to "unset" and subshell syntax
-# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
-for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
-do eval test \${$as_var+y} \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-
-# Ensure that fds 0, 1, and 2 are open.
-if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
-if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
-if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+       expr "X$arg" : "X\\(.*\\)$as_nl";
+       arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
 
 # The user is always right.
-if ${PATH_SEPARATOR+false} :; then
+if test "${PATH_SEPARATOR+set}" != set; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -84,6 +81,13 @@ if ${PATH_SEPARATOR+false} :; then
 fi
 
 
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""       $as_nl"
+
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -92,12 +96,8 @@ case $0 in #((
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
   done
 IFS=$as_save_IFS
 
@@ -109,10 +109,30 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 # Use a proper internal environment variable to ensure we don't fall
   # into an infinite loop, continuously re-executing ourselves.
@@ -134,22 +154,20 @@ esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
   fi
   # We don't want this to propagate to other subprocesses.
           { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="as_nop=:
-if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
-then :
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '\${1+\"\$@\"}'='\"\$@\"'
   setopt NO_GLOB_SUBST
-else \$as_nop
+else
   case \`(set -o) 2>/dev/null\` in #(
   *posix*) :
     set -o posix ;; #(
@@ -169,20 +187,18 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; }
 as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
 as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
 as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" )
-then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
 
-else \$as_nop
+else
   exitcode=1; echo positional parameters were not saved.
 fi
 test x\$exitcode = x0 || exit 1
-blah=\$(echo \$(echo blah))
-test x\"\$blah\" = xblah || exit 1
 test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1
 
   test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
     ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
@@ -190,40 +206,31 @@ test -x / || exit 1"
     ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
     PATH=/empty FPATH=/empty; export PATH FPATH
     test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
-      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null
-then :
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
   as_have_required=yes
-else $as_nop
+else
   as_have_required=no
 fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
-then :
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
 
-else $as_nop
+else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
   as_found=:
   case $as_dir in #(
         /*)
           for as_base in sh bash ksh sh5; do
             # Try only shells that exist, to save several forks.
-            as_shell=$as_dir$as_base
+            as_shell=$as_dir/$as_base
             if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-                   as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
-then :
+                   { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
   CONFIG_SHELL=$as_shell as_have_required=yes
-                  if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
-then :
+                  if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
   break 2
 fi
 fi
@@ -231,21 +238,14 @@ fi
        esac
   as_found=false
 done
-IFS=$as_save_IFS
-if $as_found
-then :
-
-else $as_nop
-  if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-             as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
-then :
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+             { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
   CONFIG_SHELL=$SHELL as_have_required=yes
-fi
-fi
+fi; }
+IFS=$as_save_IFS
 
 
-      if test "x$CONFIG_SHELL" != x
-then :
+      if test "x$CONFIG_SHELL" != x; then :
   export CONFIG_SHELL
              # We cannot yet assume a decent shell, so we have to provide a
 # neutralization value for shells without unset; and this also
@@ -263,19 +263,18 @@ esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
 fi
 
-    if test x$as_have_required = xno
-then :
-  printf "%s\n" "$0: This script requires a shell more modern than all"
-  printf "%s\n" "$0: the shells that I found on your system."
-  if test ${ZSH_VERSION+y} ; then
-    printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
   else
-    printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
+    $as_echo "$0: Please tell bug-autoconf@gnu.org and
 $0: unbound-bugs@nlnetlabs.nl or
 $0: https://github.com/NLnetLabs/unbound/issues about your
 $0: system, including any error possibly output before this
@@ -304,7 +303,6 @@ as_fn_unset ()
 }
 as_unset=as_fn_unset
 
-
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -322,14 +320,6 @@ as_fn_exit ()
   as_fn_set_status $1
   exit $1
 } # as_fn_exit
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
-  return $?
-}
-as_nop=as_fn_nop
 
 # as_fn_mkdir_p
 # -------------
@@ -344,7 +334,7 @@ as_fn_mkdir_p ()
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -353,7 +343,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$as_dir" : 'X\(//\)[^/]' \| \
         X"$as_dir" : 'X\(//\)$' \| \
         X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_dir" |
+$as_echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
            s//\1/
            q
@@ -392,13 +382,12 @@ as_fn_executable_p ()
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
-then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else $as_nop
+else
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -410,27 +399,18 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
-then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else $as_nop
+else
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
   }
 fi # as_fn_arith
 
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
-  return $?
-}
-as_nop=as_fn_nop
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
 # ----------------------------------------
@@ -442,9 +422,9 @@ as_fn_error ()
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  printf "%s\n" "$as_me: error: $2" >&2
+  $as_echo "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -471,7 +451,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
         X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X/"$0" |
+$as_echo X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
            s//\1/
            q
@@ -515,7 +495,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
   # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
   # already done that, so ensure we don't try to do so again and fall
@@ -529,10 +509,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
   exit
 }
 
-
-# Determine whether it's possible to make 'echo' print without a newline.
-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
-# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -546,13 +522,6 @@ case `echo -n x` in #(((((
   ECHO_N='-n';;
 esac
 
-# For backward compatibility with old third-party macros, we provide
-# the shell variables $as_echo and $as_echo_n.  New code should use
-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
-as_echo='printf %s\n'
-as_echo_n='printf %s'
-
-
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -622,44 +591,47 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='unbound'
 PACKAGE_TARNAME='unbound'
-PACKAGE_VERSION='1.16.3'
-PACKAGE_STRING='unbound 1.16.3'
+PACKAGE_VERSION='1.17.0'
+PACKAGE_STRING='unbound 1.17.0'
 PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues'
 PACKAGE_URL=''
 
 # Factoring default headers for most tests.
 ac_includes_default="\
-#include <stddef.h>
-#ifdef HAVE_STDIO_H
-# include <stdio.h>
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
 #endif
-#ifdef HAVE_STDLIB_H
+#ifdef STDC_HEADERS
 # include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
 #endif
 #ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
 # include <string.h>
 #endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
 #ifdef HAVE_INTTYPES_H
 # include <inttypes.h>
 #endif
 #ifdef HAVE_STDINT_H
 # include <stdint.h>
 #endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
 #ifdef HAVE_UNISTD_H
 # include <unistd.h>
 #endif"
 
-ac_header_c_list=
-ac_func_c_list=
 ac_subst_vars='LTLIBOBJS
 date
 version
@@ -752,7 +724,6 @@ SYSTEMD_LIBS
 SYSTEMD_CFLAGS
 RUNTIME_PATH
 LIBOBJS
-CPP
 PKG_CONFIG_LIBDIR
 PKG_CONFIG_PATH
 PKG_CONFIG
@@ -774,8 +745,6 @@ ac_ct_DUMPBIN
 DUMPBIN
 LD
 FGREP
-EGREP
-GREP
 SED
 LIBTOOL
 AR
@@ -809,6 +778,9 @@ ub_conf_file
 UNBOUND_LOCALSTATE_DIR
 UNBOUND_SYSCONF_DIR
 UNBOUND_SBIN_DIR
+EGREP
+GREP
+CPP
 OBJEXT
 EXEEXT
 ac_ct_CC
@@ -943,13 +915,13 @@ CFLAGS
 LDFLAGS
 LIBS
 CPPFLAGS
+CPP
 YACC
 YFLAGS
 LT_SYS_LIBRARY_PATH
 PKG_CONFIG
 PKG_CONFIG_PATH
 PKG_CONFIG_LIBDIR
-CPP
 SYSTEMD_CFLAGS
 SYSTEMD_LIBS
 SYSTEMD_DAEMON_CFLAGS
@@ -1023,6 +995,8 @@ do
   *)    ac_optarg=yes ;;
   esac
 
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
   case $ac_dashdash$ac_option in
   --)
     ac_dashdash=yes ;;
@@ -1063,9 +1037,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: \`$ac_useropt'"
+      as_fn_error $? "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -1089,9 +1063,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: \`$ac_useropt'"
+      as_fn_error $? "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -1302,9 +1276,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: \`$ac_useropt'"
+      as_fn_error $? "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1318,9 +1292,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: \`$ac_useropt'"
+      as_fn_error $? "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1364,9 +1338,9 @@ Try \`$0 --help' for more information"
 
   *)
     # FIXME: should be removed in autoconf 3.0.
-    printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
     : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
@@ -1382,7 +1356,7 @@ if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
     fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
 
@@ -1446,7 +1420,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$as_myself" : 'X\(//\)[^/]' \| \
         X"$as_myself" : 'X\(//\)$' \| \
         X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_myself" |
+$as_echo X"$as_myself" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
            s//\1/
            q
@@ -1503,7 +1477,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures unbound 1.16.3 to adapt to many kinds of systems.
+\`configure' configures unbound 1.17.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1569,7 +1543,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of unbound 1.16.3:";;
+     short | recursive ) echo "Configuration of unbound 1.17.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1718,6 +1692,7 @@ Some influential environment variables:
   LIBS        libraries to pass to the linker, e.g. -l<library>
   CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
               you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
   YACC        The `Yet Another Compiler Compiler' implementation to use.
               Defaults to the first program found out of: `bison -y', `byacc',
               `yacc'.
@@ -1731,7 +1706,6 @@ Some influential environment variables:
               directories to add to pkg-config's search path
   PKG_CONFIG_LIBDIR
               path overriding pkg-config's built-in search path
-  CPP         C preprocessor
   SYSTEMD_CFLAGS
               C compiler flags for SYSTEMD, overriding pkg-config
   SYSTEMD_LIBS
@@ -1764,9 +1738,9 @@ if test "$ac_init_help" = "recursive"; then
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1794,8 +1768,7 @@ esac
 ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
     cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for configure.gnu first; this name is used for a wrapper for
-    # Metaconfig's "Configure" on case-insensitive file systems.
+    # Check for guested configure.
     if test -f "$ac_srcdir/configure.gnu"; then
       echo &&
       $SHELL "$ac_srcdir/configure.gnu" --help=recursive
@@ -1803,7 +1776,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
       echo &&
       $SHELL "$ac_srcdir/configure" --help=recursive
     else
-      printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi || ac_status=$?
     cd "$ac_pwd" || { ac_status=$?; break; }
   done
@@ -1812,10 +1785,10 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-unbound configure 1.16.3
-generated by GNU Autoconf 2.71
+unbound configure 1.17.0
+generated by GNU Autoconf 2.69
 
-Copyright (C) 2021 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1832,14 +1805,14 @@ fi
 ac_fn_c_try_compile ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest.beam
+  rm -f conftest.$ac_objext
   if { { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -1847,15 +1820,14 @@ printf "%s\n" "$ac_try_echo"; } >&5
     cat conftest.er1 >&5
     mv -f conftest.er1 conftest.err
   fi
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && {
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
-       } && test -s conftest.$ac_objext
-then :
+       } && test -s conftest.$ac_objext; then :
   ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
+else
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
        ac_retval=1
@@ -1865,6 +1837,176 @@ fi
 
 } # ac_fn_c_try_compile
 
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## --------------------------------------------------------------------------------------- ##
+## Report this to unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues ##
+## --------------------------------------------------------------------------------------- ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
 # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
 # -------------------------------------------------------
 # Tests whether HEADER exists and can be compiled using the include files in
@@ -1872,28 +2014,26 @@ fi
 ac_fn_c_check_header_compile ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-printf %s "checking for $2... " >&6; }
-if eval test \${$3+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 #include <$2>
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   eval "$3=yes"
-else $as_nop
+else
   eval "$3=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 eval ac_res=\$$3
-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_compile
@@ -1904,14 +2044,14 @@ printf "%s\n" "$ac_res" >&6; }
 ac_fn_c_try_link ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
+  rm -f conftest.$ac_objext conftest$ac_exeext
   if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -1919,18 +2059,17 @@ printf "%s\n" "$ac_try_echo"; } >&5
     cat conftest.er1 >&5
     mv -f conftest.er1 conftest.err
   fi
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && {
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
         test "$cross_compiling" = yes ||
         test -x conftest$ac_exeext
-       }
-then :
+       }; then :
   ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
+else
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
        ac_retval=1
@@ -1951,12 +2090,11 @@ fi
 ac_fn_c_check_func ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-printf %s "checking for $2... " >&6; }
-if eval test \${$3+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Define $2 to an innocuous variant, in case <limits.h> declares $2.
@@ -1964,9 +2102,16 @@ else $as_nop
 #define $2 innocuous_$2
 
 /* System header to define __stub macros and hopefully few prototypes,
-   which can conflict with char $2 (); below.  */
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-#include <limits.h>
 #undef $2
 
 /* Override any GCC internal prototype to avoid an error.
@@ -1984,25 +2129,24 @@ choke me
 #endif
 
 int
-main (void)
+main ()
 {
 return $2 ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   eval "$3=yes"
-else $as_nop
+else
   eval "$3=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 fi
 eval ac_res=\$$3
-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_func
@@ -2014,18 +2158,17 @@ printf "%s\n" "$ac_res" >&6; }
 ac_fn_c_check_type ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-printf %s "checking for $2... " >&6; }
-if eval test \${$3+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   eval "$3=no"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main (void)
+main ()
 {
 if (sizeof ($2))
         return 0;
@@ -2033,13 +2176,12 @@ if (sizeof ($2))
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main (void)
+main ()
 {
 if (sizeof (($2)))
            return 0;
@@ -2047,119 +2189,37 @@ if (sizeof (($2)))
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
 
-else $as_nop
+else
   eval "$3=yes"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 eval ac_res=\$$3
-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_type
 
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }
-then :
-  ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
-# executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then :
-  ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: program exited with status $ac_status" >&5
-       printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if test "$cross_compiling" = yes; then
-    # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main (void)
+  if test "$cross_compiling" = yes; then
+    # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
 {
 static int test_array [1 - 2 * !(($2) >= 0)];
 test_array [0] = 0;
@@ -2169,15 +2229,14 @@ return test_array [0];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_lo=0 ac_mid=0
   while :; do
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main (void)
+main ()
 {
 static int test_array [1 - 2 * !(($2) <= $ac_mid)];
 test_array [0] = 0;
@@ -2187,10 +2246,9 @@ return test_array [0];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_hi=$ac_mid; break
-else $as_nop
+else
   as_fn_arith $ac_mid + 1 && ac_lo=$as_val
                        if test $ac_lo -le $ac_mid; then
                          ac_lo= ac_hi=
@@ -2198,14 +2256,14 @@ else $as_nop
                        fi
                        as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   done
-else $as_nop
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main (void)
+main ()
 {
 static int test_array [1 - 2 * !(($2) < 0)];
 test_array [0] = 0;
@@ -2215,15 +2273,14 @@ return test_array [0];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_hi=-1 ac_mid=-1
   while :; do
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main (void)
+main ()
 {
 static int test_array [1 - 2 * !(($2) >= $ac_mid)];
 test_array [0] = 0;
@@ -2233,10 +2290,9 @@ return test_array [0];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_lo=$ac_mid; break
-else $as_nop
+else
   as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
                        if test $ac_mid -le $ac_hi; then
                          ac_lo= ac_hi=
@@ -2244,14 +2300,14 @@ else $as_nop
                        fi
                        as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   done
-else $as_nop
+else
   ac_lo= ac_hi=
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 # Binary search between lo and hi bounds.
 while test "x$ac_lo" != "x$ac_hi"; do
   as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
@@ -2259,7 +2315,7 @@ while test "x$ac_lo" != "x$ac_hi"; do
 /* end confdefs.h.  */
 $4
 int
-main (void)
+main ()
 {
 static int test_array [1 - 2 * !(($2) <= $ac_mid)];
 test_array [0] = 0;
@@ -2269,13 +2325,12 @@ return test_array [0];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_hi=$ac_mid
-else $as_nop
+else
   as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 done
 case $ac_lo in #((
 ?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
@@ -2285,12 +2340,12 @@ esac
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
-static long int longval (void) { return $2; }
-static unsigned long int ulongval (void) { return $2; }
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
 #include <stdio.h>
 #include <stdlib.h>
 int
-main (void)
+main ()
 {
 
   FILE *f = fopen ("conftest.val", "w");
@@ -2318,10 +2373,9 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
+if ac_fn_c_try_run "$LINENO"; then :
   echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else $as_nop
+else
   ac_retval=1
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -2334,28 +2388,25 @@ rm -f conftest.val
 
 } # ac_fn_c_compute_int
 
-# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
-# ------------------------------------------------------------------
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+# ---------------------------------------------
 # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
-ac_fn_check_decl ()
+# accordingly.
+ac_fn_c_check_decl ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   as_decl_name=`echo $2|sed 's/ *(.*//'`
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-printf %s "checking whether $as_decl_name is declared... " >&6; }
-if eval test \${$3+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
   as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
-  eval ac_save_FLAGS=\$$6
-  as_fn_append $6 " $5"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main (void)
+main ()
 {
 #ifndef $as_decl_name
 #ifdef __cplusplus
@@ -2369,22 +2420,19 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   eval "$3=yes"
-else $as_nop
+else
   eval "$3=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  eval $6=\$ac_save_FLAGS
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 eval ac_res=\$$3
-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
-} # ac_fn_check_decl
+} # ac_fn_c_check_decl
 
 # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
 # ----------------------------------------------------
@@ -2393,17 +2441,16 @@ printf "%s\n" "$ac_res" >&6; }
 ac_fn_c_check_member ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-printf %s "checking for $2.$3... " >&6; }
-if eval test \${$4+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $5
 int
-main (void)
+main ()
 {
 static $2 ac_aggr;
 if (ac_aggr.$3)
@@ -2412,15 +2459,14 @@ return 0;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   eval "$4=yes"
-else $as_nop
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $5
 int
-main (void)
+main ()
 {
 static $2 ac_aggr;
 if (sizeof ac_aggr.$3)
@@ -2429,50 +2475,29 @@ return 0;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   eval "$4=yes"
-else $as_nop
+else
   eval "$4=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 eval ac_res=\$$4
-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_member
-ac_configure_args_raw=
-for ac_arg
-do
-  case $ac_arg in
-  *\'*)
-    ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-  esac
-  as_fn_append ac_configure_args_raw " '$ac_arg'"
-done
-
-case $ac_configure_args_raw in
-  *$as_nl*)
-    ac_safe_unquote= ;;
-  *)
-    ac_unsafe_z='|&;<>()$`\\"*?[ ''    ' # This string ends in space, tab.
-    ac_unsafe_a="$ac_unsafe_z#~"
-    ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
-    ac_configure_args_raw=`      printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
-esac
-
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by unbound $as_me 1.16.3, which was
-generated by GNU Autoconf 2.71.  Invocation command line was
+It was created by unbound $as_me 1.17.0, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
-  $ $0$ac_configure_args_raw
+  $ $0 $@
 
 _ACEOF
 exec 5>>config.log
@@ -2505,12 +2530,8 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    printf "%s\n" "PATH: $as_dir"
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
   done
 IFS=$as_save_IFS
 
@@ -2545,7 +2566,7 @@ do
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
     *\'*)
-      ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
     1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -2580,13 +2601,11 @@ done
 # WARNING: Use '\'' to represent an apostrophe within the trap.
 # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 trap 'exit_status=$?
-  # Sanitize IFS.
-  IFS=" ""     $as_nl"
   # Save into config.log some information that might help in debugging.
   {
     echo
 
-    printf "%s\n" "## ---------------- ##
+    $as_echo "## ---------------- ##
 ## Cache variables. ##
 ## ---------------- ##"
     echo
@@ -2597,8 +2616,8 @@ trap 'exit_status=$?
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -2622,7 +2641,7 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;}
 )
     echo
 
-    printf "%s\n" "## ----------------- ##
+    $as_echo "## ----------------- ##
 ## Output variables. ##
 ## ----------------- ##"
     echo
@@ -2630,14 +2649,14 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;}
     do
       eval ac_val=\$$ac_var
       case $ac_val in
-      *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
       esac
-      printf "%s\n" "$ac_var='\''$ac_val'\''"
+      $as_echo "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
     if test -n "$ac_subst_files"; then
-      printf "%s\n" "## ------------------- ##
+      $as_echo "## ------------------- ##
 ## File substitutions. ##
 ## ------------------- ##"
       echo
@@ -2645,15 +2664,15 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;}
       do
        eval ac_val=\$$ac_var
        case $ac_val in
-       *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+       *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
        esac
-       printf "%s\n" "$ac_var='\''$ac_val'\''"
+       $as_echo "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
 
     if test -s confdefs.h; then
-      printf "%s\n" "## ----------- ##
+      $as_echo "## ----------- ##
 ## confdefs.h. ##
 ## ----------- ##"
       echo
@@ -2661,8 +2680,8 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;}
       echo
     fi
     test "$ac_signal" != 0 &&
-      printf "%s\n" "$as_me: caught signal $ac_signal"
-    printf "%s\n" "$as_me: exit $exit_status"
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
   } >&5
   rm -f core *.core core.conftest.* &&
     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -2676,48 +2695,63 @@ ac_signal=0
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -f -r conftest* confdefs.h
 
-printf "%s\n" "/* confdefs.h */" > confdefs.h
+$as_echo "/* confdefs.h */" > confdefs.h
 
 # Predefined preprocessor variables.
 
-printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
 
-printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
 
-printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
 
-printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
 
-printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
 
-printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
 
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  ac_site_files="$CONFIG_SITE"
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
 elif test "x$prefix" != xNONE; then
-  ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
 else
-  ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
 fi
-
-for ac_site_file in $ac_site_files
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
 do
-  case $ac_site_file in #(
-  */*) :
-     ;; #(
-  *) :
-    ac_site_file=./$ac_site_file ;;
-esac
-  if test -f "$ac_site_file" && test -r "$ac_site_file"; then
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file" \
-      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
 See \`config.log' for more details" "$LINENO" 5; }
   fi
@@ -2727,439 +2761,19 @@ if test -r "$cache_file"; then
   # Some versions of bash will fail to source /dev/null (special files
   # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
   if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
       *)                      . "./$cache_file";;
     esac
   fi
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
-as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
-# Test code for whether the C compiler supports C89 (global declarations)
-ac_c_conftest_c89_globals='
-/* Does the compiler advertise C89 conformance?
-   Do not test the value of __STDC__, because some compilers set it to 0
-   while being otherwise adequately conformant. */
-#if !defined __STDC__
-# error "Compiler does not advertise C89 conformance"
-#endif
-
-#include <stddef.h>
-#include <stdarg.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7 src/conf.sh.  */
-struct buf { int x; };
-struct buf * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not \xHH hex character constants.
-   These do not provoke an error unfortunately, instead are silently treated
-   as an "x".  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously \x00 != x always comes out true, for an
-   array size at least.  It is necessary to write \x00 == 0 to get something
-   that is true only with -std.  */
-int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) '\''x'\''
-int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
-               int, int);'
-
-# Test code for whether the C compiler supports C89 (body of main).
-ac_c_conftest_c89_main='
-ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
-'
-
-# Test code for whether the C compiler supports C99 (global declarations)
-ac_c_conftest_c99_globals='
-// Does the compiler advertise C99 conformance?
-#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
-# error "Compiler does not advertise C99 conformance"
-#endif
-
-#include <stdbool.h>
-extern int puts (const char *);
-extern int printf (const char *, ...);
-extern int dprintf (int, const char *, ...);
-extern void *malloc (size_t);
-
-// Check varargs macros.  These examples are taken from C99 6.10.3.5.
-// dprintf is used instead of fprintf to avoid needing to declare
-// FILE and stderr.
-#define debug(...) dprintf (2, __VA_ARGS__)
-#define showlist(...) puts (#__VA_ARGS__)
-#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
-static void
-test_varargs_macros (void)
-{
-  int x = 1234;
-  int y = 5678;
-  debug ("Flag");
-  debug ("X = %d\n", x);
-  showlist (The first, second, and third items.);
-  report (x>y, "x is %d but y is %d", x, y);
-}
-
-// Check long long types.
-#define BIG64 18446744073709551615ull
-#define BIG32 4294967295ul
-#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
-#if !BIG_OK
-  #error "your preprocessor is broken"
-#endif
-#if BIG_OK
-#else
-  #error "your preprocessor is broken"
-#endif
-static long long int bignum = -9223372036854775807LL;
-static unsigned long long int ubignum = BIG64;
-
-struct incomplete_array
-{
-  int datasize;
-  double data[];
-};
-
-struct named_init {
-  int number;
-  const wchar_t *name;
-  double average;
-};
-
-typedef const char *ccp;
-
-static inline int
-test_restrict (ccp restrict text)
-{
-  // See if C++-style comments work.
-  // Iterate through items via the restricted pointer.
-  // Also check for declarations in for loops.
-  for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
-    continue;
-  return 0;
-}
-
-// Check varargs and va_copy.
-static bool
-test_varargs (const char *format, ...)
-{
-  va_list args;
-  va_start (args, format);
-  va_list args_copy;
-  va_copy (args_copy, args);
-
-  const char *str = "";
-  int number = 0;
-  float fnumber = 0;
-
-  while (*format)
-    {
-      switch (*format++)
-       {
-       case '\''s'\'': // string
-         str = va_arg (args_copy, const char *);
-         break;
-       case '\''d'\'': // int
-         number = va_arg (args_copy, int);
-         break;
-       case '\''f'\'': // float
-         fnumber = va_arg (args_copy, double);
-         break;
-       default:
-         break;
-       }
-    }
-  va_end (args_copy);
-  va_end (args);
-
-  return *str && number && fnumber;
-}
-'
-
-# Test code for whether the C compiler supports C99 (body of main).
-ac_c_conftest_c99_main='
-  // Check bool.
-  _Bool success = false;
-  success |= (argc != 0);
-
-  // Check restrict.
-  if (test_restrict ("String literal") == 0)
-    success = true;
-  char *restrict newvar = "Another string";
-
-  // Check varargs.
-  success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
-  test_varargs_macros ();
-
-  // Check flexible array members.
-  struct incomplete_array *ia =
-    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
-  ia->datasize = 10;
-  for (int i = 0; i < ia->datasize; ++i)
-    ia->data[i] = i * 1.234;
-
-  // Check named initializers.
-  struct named_init ni = {
-    .number = 34,
-    .name = L"Test wide string",
-    .average = 543.34343,
-  };
-
-  ni.number = 58;
-
-  int dynamic_array[ni.number];
-  dynamic_array[0] = argv[0][0];
-  dynamic_array[ni.number - 1] = 543;
-
-  // work around unused variable warnings
-  ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
-        || dynamic_array[ni.number - 1] != 543);
-'
-
-# Test code for whether the C compiler supports C11 (global declarations)
-ac_c_conftest_c11_globals='
-// Does the compiler advertise C11 conformance?
-#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
-# error "Compiler does not advertise C11 conformance"
-#endif
-
-// Check _Alignas.
-char _Alignas (double) aligned_as_double;
-char _Alignas (0) no_special_alignment;
-extern char aligned_as_int;
-char _Alignas (0) _Alignas (int) aligned_as_int;
-
-// Check _Alignof.
-enum
-{
-  int_alignment = _Alignof (int),
-  int_array_alignment = _Alignof (int[100]),
-  char_alignment = _Alignof (char)
-};
-_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
-
-// Check _Noreturn.
-int _Noreturn does_not_return (void) { for (;;) continue; }
-
-// Check _Static_assert.
-struct test_static_assert
-{
-  int x;
-  _Static_assert (sizeof (int) <= sizeof (long int),
-                  "_Static_assert does not work in struct");
-  long int y;
-};
-
-// Check UTF-8 literals.
-#define u8 syntax error!
-char const utf8_literal[] = u8"happens to be ASCII" "another string";
-
-// Check duplicate typedefs.
-typedef long *long_ptr;
-typedef long int *long_ptr;
-typedef long_ptr long_ptr;
-
-// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
-struct anonymous
-{
-  union {
-    struct { int i; int j; };
-    struct { int k; long int l; } w;
-  };
-  int m;
-} v1;
-'
-
-# Test code for whether the C compiler supports C11 (body of main).
-ac_c_conftest_c11_main='
-  _Static_assert ((offsetof (struct anonymous, i)
-                  == offsetof (struct anonymous, w.k)),
-                 "Anonymous union alignment botch");
-  v1.i = 2;
-  v1.w.k = 5;
-  ok |= v1.i != 5;
-'
-
-# Test code for whether the C compiler supports C11 (complete).
-ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
-${ac_c_conftest_c99_globals}
-${ac_c_conftest_c11_globals}
-
-int
-main (int argc, char **argv)
-{
-  int ok = 0;
-  ${ac_c_conftest_c89_main}
-  ${ac_c_conftest_c99_main}
-  ${ac_c_conftest_c11_main}
-  return ok;
-}
-"
-
-# Test code for whether the C compiler supports C99 (complete).
-ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
-${ac_c_conftest_c99_globals}
-
-int
-main (int argc, char **argv)
-{
-  int ok = 0;
-  ${ac_c_conftest_c89_main}
-  ${ac_c_conftest_c99_main}
-  return ok;
-}
-"
-
-# Test code for whether the C compiler supports C89 (complete).
-ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
-
-int
-main (int argc, char **argv)
-{
-  int ok = 0;
-  ${ac_c_conftest_c89_main}
-  return ok;
-}
-"
-
-as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
-as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
-as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
-as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
-as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
-as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
-as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
-as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
-as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
-as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
-as_fn_append ac_header_c_list " vfork.h vfork_h HAVE_VFORK_H"
-as_fn_append ac_func_c_list " fork HAVE_FORK"
-as_fn_append ac_func_c_list " vfork HAVE_VFORK"
-
-# Auxiliary files required by this configure script.
-ac_aux_files="ltmain.sh config.guess config.sub"
-
-# Locations in which to look for auxiliary files.
-ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."
-
-# Search for a directory containing all of the required auxiliary files,
-# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
-# If we don't find one directory that contains all the files we need,
-# we report the set of missing files from the *first* directory in
-# $ac_aux_dir_candidates and give up.
-ac_missing_aux_files=""
-ac_first_candidate=:
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in $ac_aux_dir_candidates
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-  as_found=:
-
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}:  trying $as_dir" >&5
-  ac_aux_dir_found=yes
-  ac_install_sh=
-  for ac_aux in $ac_aux_files
-  do
-    # As a special case, if "install-sh" is required, that requirement
-    # can be satisfied by any of "install-sh", "install.sh", or "shtool",
-    # and $ac_install_sh is set appropriately for whichever one is found.
-    if test x"$ac_aux" = x"install-sh"
-    then
-      if test -f "${as_dir}install-sh"; then
-        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install-sh found" >&5
-        ac_install_sh="${as_dir}install-sh -c"
-      elif test -f "${as_dir}install.sh"; then
-        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install.sh found" >&5
-        ac_install_sh="${as_dir}install.sh -c"
-      elif test -f "${as_dir}shtool"; then
-        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}shtool found" >&5
-        ac_install_sh="${as_dir}shtool install -c"
-      else
-        ac_aux_dir_found=no
-        if $ac_first_candidate; then
-          ac_missing_aux_files="${ac_missing_aux_files} install-sh"
-        else
-          break
-        fi
-      fi
-    else
-      if test -f "${as_dir}${ac_aux}"; then
-        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}${ac_aux} found" >&5
-      else
-        ac_aux_dir_found=no
-        if $ac_first_candidate; then
-          ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
-        else
-          break
-        fi
-      fi
-    fi
-  done
-  if test "$ac_aux_dir_found" = yes; then
-    ac_aux_dir="$as_dir"
-    break
-  fi
-  ac_first_candidate=false
-
-  as_found=false
-done
-IFS=$as_save_IFS
-if $as_found
-then :
-
-else $as_nop
-  as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
-fi
-
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-if test -f "${ac_aux_dir}config.guess"; then
-  ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
-fi
-if test -f "${ac_aux_dir}config.sub"; then
-  ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
-fi
-if test -f "$ac_aux_dir/configure"; then
-  ac_configure="$SHELL ${ac_aux_dir}configure"
-fi
-
 # Check that the precious variables saved in the cache have kept the same
 # value.
 ac_cache_corrupted=false
@@ -3170,12 +2784,12 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
@@ -3184,24 +2798,24 @@ printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
        ac_old_val_w=`echo x $ac_old_val`
        ac_new_val_w=`echo x $ac_new_val`
        if test "$ac_old_val_w" != "$ac_new_val_w"; then
-         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+         { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
          ac_cache_corrupted=:
        else
-         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+         { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
          eval $ac_var=\$ac_old_val
        fi
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-printf "%s\n" "$as_me:   former value:  \`$ac_old_val'" >&2;}
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
   # Pass precious variables to config.status.
   if test "$ac_new_set" = set; then
     case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
     *) ac_arg=$ac_var=$ac_new_val ;;
     esac
     case " $ac_configure_args " in
@@ -3211,12 +2825,11 @@ printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
   fi
 done
 if $ac_cache_corrupted; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
-           and start over" "$LINENO" 5
+  { $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}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
 fi
 ## -------------------- ##
 ## Main body of script. ##
@@ -3231,13 +2844,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 UNBOUND_VERSION_MAJOR=1
 
-UNBOUND_VERSION_MINOR=16
+UNBOUND_VERSION_MINOR=17
 
-UNBOUND_VERSION_MICRO=3
+UNBOUND_VERSION_MICRO=0
 
 
 LIBUNBOUND_CURRENT=9
-LIBUNBOUND_REVISION=19
+LIBUNBOUND_REVISION=20
 LIBUNBOUND_AGE=1
 # 1.0.0 had 0:12:0
 # 1.0.1 had 0:13:0
@@ -3324,6 +2937,7 @@ LIBUNBOUND_AGE=1
 # 1.16.1 had 9:17:1
 # 1.16.2 had 9:18:1
 # 1.16.3 had 9:19:1
+# 1.17.0 had 9:20:1
 
 #   Current  -- the number of the binary API that we're implementing
 #   Revision -- which iteration of the implementation of the binary
@@ -3350,19 +2964,12 @@ LIBUNBOUND_AGE=1
 
 cmdln="`echo $@ | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/"/\\\\"/'g`"
 
-printf "%s\n" "#define CONFCMDLINE \"$cmdln\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define CONFCMDLINE "$cmdln"
+_ACEOF
 
 
 CFLAGS="$CFLAGS"
-
-
-
-
-
-
-
-
-
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3371,12 +2978,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -3384,15 +2990,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3403,11 +3005,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -3416,12 +3018,11 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -3429,15 +3030,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3448,11 +3045,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_CC" = x; then
@@ -3460,8 +3057,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -3474,12 +3071,11 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -3487,15 +3083,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3506,11 +3098,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -3519,12 +3111,11 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -3533,19 +3124,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3561,18 +3148,18 @@ if test $ac_prog_rejected = yes; then
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
   fi
 fi
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -3583,12 +3170,11 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -3596,15 +3182,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3615,11 +3197,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -3632,12 +3214,11 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -3645,15 +3226,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3664,11 +3241,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -3680,8 +3257,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -3689,129 +3266,25 @@ esac
 fi
 
 fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
-set dummy ${ac_tool_prefix}clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}clang"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
 
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "clang", so it can be a program name with args.
-set dummy clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="clang"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-fi
-
-
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
 See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-for ac_option in --version -v -V -qversion -version; do
+for ac_option in --version -v -V -qversion; do
   { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -3821,7 +3294,7 @@ printf "%s\n" "$ac_try_echo"; } >&5
     cat conftest.er1 >&5
   fi
   rm -f conftest.er1 conftest.err
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 done
 
@@ -3829,7 +3302,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
@@ -3841,9 +3314,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-printf %s "checking whether the C compiler works... " >&6; }
-ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 
 # The possible output files:
 ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
@@ -3864,12 +3337,11 @@ case "(($ac_try" in
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-then :
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
@@ -3886,7 +3358,7 @@ do
        # certainly right.
        break;;
     *.* )
-       if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
+       if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
        then :; else
           ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
        fi
@@ -3902,46 +3374,44 @@ do
 done
 test "$ac_cv_exeext" = no && ac_cv_exeext=
 
-else $as_nop
+else
   ac_file=''
 fi
-if test -z "$ac_file"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-printf "%s\n" "$as_me: failed program was:" >&5
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
 See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-printf %s "checking for C compiler default output file name... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-printf "%s\n" "$ac_file" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
 ac_exeext=$ac_cv_exeext
 
 rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-printf %s "checking for suffix of executables... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
 if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-then :
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -3955,15 +3425,15 @@ for ac_file in conftest.exe conftest conftest.*; do
     * ) break;;
   esac
 done
-else $as_nop
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-printf "%s\n" "$ac_cv_exeext" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
@@ -3972,7 +3442,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdio.h>
 int
-main (void)
+main ()
 {
 FILE *f = fopen ("conftest.out", "w");
  return ferror (f) || fclose (f) != 0;
@@ -3984,8 +3454,8 @@ _ACEOF
 ac_clean_files="$ac_clean_files conftest.out"
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-printf %s "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
 if test "$cross_compiling" != yes; then
   { { ac_try="$ac_link"
 case "(($ac_try" in
@@ -3993,10 +3463,10 @@ case "(($ac_try" in
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
   if { ac_try='./conftest$ac_cv_exeext'
   { { case "(($ac_try" in
@@ -4004,40 +3474,39 @@ printf "%s\n" "$ac_try_echo"; } >&5
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
        cross_compiling=yes
     else
-       { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot run C compiled programs.
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-printf "%s\n" "$cross_compiling" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
 
 rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
 ac_clean_files=$ac_clean_files_save
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-printf %s "checking for suffix of object files... " >&6; }
-if test ${ac_cv_objext+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
@@ -4051,12 +3520,11 @@ case "(($ac_try" in
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-then :
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
@@ -4065,32 +3533,31 @@ then :
        break;;
   esac
 done
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
+else
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
 See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-printf "%s\n" "$ac_cv_objext" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
-printf %s "checking whether the compiler supports GNU C... " >&6; }
-if test ${ac_cv_c_compiler_gnu+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 #ifndef __GNUC__
        choke me
@@ -4100,33 +3567,29 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
-else $as_nop
+else
   ac_compiler_gnu=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GCC=yes
 else
   GCC=
 fi
-ac_test_CFLAGS=${CFLAGS+y}
+ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-printf %s "checking whether $CC accepts -g... " >&6; }
-if test ${ac_cv_prog_cc_g+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
@@ -4135,60 +3598,57 @@ else $as_nop
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
-else $as_nop
+else
   CFLAGS=""
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
 
-else $as_nop
+else
   ac_c_werror_flag=$ac_save_c_werror_flag
         CFLAGS="-g"
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
-if test $ac_test_CFLAGS; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
@@ -4203,144 +3663,232 @@ else
     CFLAGS=
   fi
 fi
-ac_prog_cc_stdc=no
-if test x$ac_prog_cc_stdc = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
-printf %s "checking for $CC option to enable C11 features... " >&6; }
-if test ${ac_cv_prog_cc_c11+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c11=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_c_conftest_c11_program
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
 _ACEOF
-for ac_arg in '' -std=gnu11
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_prog_cc_c11=$ac_arg
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
-  test "x$ac_cv_prog_cc_c11" != "xno" && break
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
 rm -f conftest.$ac_ext
 CC=$ac_save_CC
+
 fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
 
-if test "x$ac_cv_prog_cc_c11" = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c11" = x
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
-     CC="$CC $ac_cv_prog_cc_c11"
-fi
-  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
-  ac_prog_cc_stdc=c11
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
-printf %s "checking for $CC option to enable C99 features... " >&6; }
-if test ${ac_cv_prog_cc_c99+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c99=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_c_conftest_c99_program
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
 _ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_prog_cc_c99=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
-  test "x$ac_cv_prog_cc_c99" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
 fi
+rm -f conftest.err conftest.i conftest.$ac_ext
 
-if test "x$ac_cv_prog_cc_c99" = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c99" = x
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
-     CC="$CC $ac_cv_prog_cc_c99"
-fi
-  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
-  ac_prog_cc_stdc=c99
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
-printf %s "checking for $CC option to enable C89 features... " >&6; }
-if test ${ac_cv_prog_cc_c89+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_c_conftest_c89_program
+#include <ac_nonexistent.h>
 _ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_prog_cc_c89=$ac_arg
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
+rm -f conftest.err conftest.i conftest.$ac_ext
+
 done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
 fi
 
-if test "x$ac_cv_prog_cc_c89" = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c89" = x
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
-     CC="$CC $ac_cv_prog_cc_c89"
+    done
+    ac_cv_prog_CPP=$CPP
+
 fi
-  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
-  ac_prog_cc_stdc=c89
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -4350,179 +3898,329 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-ac_header= ac_cache=
-for ac_item in $ac_header_c_list
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
-  if test $ac_cache; then
-    ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
-    if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
-      printf "%s\n" "#define $ac_item 1" >> confdefs.h
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
     fi
-    ac_header= ac_cache=
-  elif test $ac_header; then
-    ac_cache=$ac_item
-  else
-    ac_header=$ac_item
-  fi
-done
-
-
-
-
-
-
-
-
-if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
-then :
-
-printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
 
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
 fi
 
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
 
 
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if test ${ac_cv_safe_to_define___extensions__+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
 
-#         define __EXTENSIONS__ 1
-          $ac_includes_default
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_safe_to_define___extensions__=yes
-else $as_nop
-  ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
-printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
-if test ${ac_cv_should_define__xopen_source+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_should_define__xopen_source=no
-    if test $ac_cv_header_wchar_h = yes
-then :
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <string.h>
 
-          #include <wchar.h>
-          mbstate_t x;
-int
-main (void)
-{
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
 
-  ;
-  return 0;
-}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
 
-else $as_nop
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+                  (('a' <= (c) && (c) <= 'i') \
+                    || ('j' <= (c) && (c) <= 'r') \
+                    || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
 
-            #define _XOPEN_SOURCE 500
-            #include <wchar.h>
-            mbstate_t x;
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
 int
-main (void)
+main ()
 {
-
-  ;
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+       || toupper (i) != TOUPPER (i))
+      return 2;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_should_define__xopen_source=yes
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
 fi
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
-printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
-  printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
+fi
 
-  printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                 inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
-  printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
+fi
 
-  printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
+done
 
-  printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
 
-  printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
 
-  printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
+  MINIX=yes
+else
+  MINIX=
+fi
 
-  printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
 
-  printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
+  if test "$MINIX" = yes; then
 
-  printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
 
-  printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
 
-  printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
 
-  printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
 
-  printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
+$as_echo "#define _MINIX 1" >>confdefs.h
 
-  printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
+  fi
 
-  if test $ac_cv_header_minix_config_h = yes
-then :
-  MINIX=yes
-    printf "%s\n" "#define _MINIX 1" >>confdefs.h
 
-    printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-    printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
+#         define __EXTENSIONS__ 1
+          $ac_includes_default
+int
+main ()
+{
 
-else $as_nop
-  MINIX=
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_safe_to_define___extensions__=yes
+else
+  ac_cv_safe_to_define___extensions__=no
 fi
-  if test $ac_cv_safe_to_define___extensions__ = yes
-then :
-  printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-  if test $ac_cv_should_define__xopen_source = yes
-then :
-  printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+
+  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
 
-fi
 
 if test "$ac_cv_header_minix_config_h" = "yes"; then
 
-printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
+$as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h
 
 fi
 
@@ -4560,8 +4258,7 @@ else
 fi
 
 # Check whether --with-conf_file was given.
-if test ${with_conf_file+y}
-then :
+if test "${with_conf_file+set}" = set; then :
   withval=$with_conf_file; ub_conf_file="$withval"
 fi
 
@@ -4569,14 +4266,16 @@ fi
 hdr_config="`echo $ub_conf_file | sed -e 's/\\\\/\\\\\\\\/g'`"
 
 
-printf "%s\n" "#define CONFIGFILE \"$hdr_config\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define CONFIGFILE "$hdr_config"
+_ACEOF
 
 ub_conf_dir=`$as_dirname -- "$ub_conf_file" ||
 $as_expr X"$ub_conf_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$ub_conf_file" : 'X\(//\)[^/]' \| \
         X"$ub_conf_file" : 'X\(//\)$' \| \
         X"$ub_conf_file" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$ub_conf_file" |
+$as_echo X"$ub_conf_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
            s//\1/
            q
@@ -4599,10 +4298,9 @@ printf "%s\n" X"$ub_conf_file" |
 # Determine run, chroot directory and pidfile locations
 
 # Check whether --with-run-dir was given.
-if test ${with_run_dir+y}
-then :
+if test "${with_run_dir+set}" = set; then :
   withval=$with_run_dir; UNBOUND_RUN_DIR="$withval"
-else $as_nop
+else
   if test $on_mingw = no; then
     UNBOUND_RUN_DIR=`dirname "$ub_conf_file"`
 else
@@ -4615,15 +4313,16 @@ fi
 hdr_run="`echo $UNBOUND_RUN_DIR | sed -e 's/\\\\/\\\\\\\\/g'`"
 
 
-printf "%s\n" "#define RUN_DIR \"$hdr_run\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define RUN_DIR "$hdr_run"
+_ACEOF
 
 
 
 # Check whether --with-chroot-dir was given.
-if test ${with_chroot_dir+y}
-then :
+if test "${with_chroot_dir+set}" = set; then :
   withval=$with_chroot_dir; UNBOUND_CHROOT_DIR="$withval"
-else $as_nop
+else
   if test $on_mingw = no; then
     UNBOUND_CHROOT_DIR="$UNBOUND_RUN_DIR"
 else
@@ -4636,29 +4335,31 @@ fi
 hdr_chroot="`echo $UNBOUND_CHROOT_DIR | sed -e 's/\\\\/\\\\\\\\/g'`"
 
 
-printf "%s\n" "#define CHROOT_DIR \"$hdr_chroot\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define CHROOT_DIR "$hdr_chroot"
+_ACEOF
 
 
 
 # Check whether --with-share-dir was given.
-if test ${with_share_dir+y}
-then :
+if test "${with_share_dir+set}" = set; then :
   withval=$with_share_dir; UNBOUND_SHARE_DIR="$withval"
-else $as_nop
+else
   UNBOUND_SHARE_DIR="$UNBOUND_RUN_DIR"
 fi
 
 
 
-printf "%s\n" "#define SHARE_DIR \"$UNBOUND_SHARE_DIR\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define SHARE_DIR "$UNBOUND_SHARE_DIR"
+_ACEOF
 
 
 
 # Check whether --with-pidfile was given.
-if test ${with_pidfile+y}
-then :
+if test "${with_pidfile+set}" = set; then :
   withval=$with_pidfile; UNBOUND_PIDFILE="$withval"
-else $as_nop
+else
   if test $on_mingw = no; then
     UNBOUND_PIDFILE="$UNBOUND_RUN_DIR/unbound.pid"
 else
@@ -4671,15 +4372,16 @@ fi
 hdr_pid="`echo $UNBOUND_PIDFILE | sed -e 's/\\\\/\\\\\\\\/g'`"
 
 
-printf "%s\n" "#define PIDFILE \"$hdr_pid\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define PIDFILE "$hdr_pid"
+_ACEOF
 
 
 
 # Check whether --with-rootkey-file was given.
-if test ${with_rootkey_file+y}
-then :
+if test "${with_rootkey_file+set}" = set; then :
   withval=$with_rootkey_file; UNBOUND_ROOTKEY_FILE="$withval"
-else $as_nop
+else
   if test $on_mingw = no; then
     UNBOUND_ROOTKEY_FILE="$UNBOUND_RUN_DIR/root.key"
 else
@@ -4692,15 +4394,16 @@ fi
 hdr_rkey="`echo $UNBOUND_ROOTKEY_FILE | sed -e 's/\\\\/\\\\\\\\/g'`"
 
 
-printf "%s\n" "#define ROOT_ANCHOR_FILE \"$hdr_rkey\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define ROOT_ANCHOR_FILE "$hdr_rkey"
+_ACEOF
 
 
 
 # Check whether --with-rootcert-file was given.
-if test ${with_rootcert_file+y}
-then :
+if test "${with_rootcert_file+set}" = set; then :
   withval=$with_rootcert_file; UNBOUND_ROOTCERT_FILE="$withval"
-else $as_nop
+else
   if test $on_mingw = no; then
     UNBOUND_ROOTCERT_FILE="$UNBOUND_RUN_DIR/icannbundle.pem"
 else
@@ -4713,44 +4416,48 @@ fi
 hdr_rpem="`echo $UNBOUND_ROOTCERT_FILE | sed -e 's/\\\\/\\\\\\\\/g'`"
 
 
-printf "%s\n" "#define ROOT_CERT_FILE \"$hdr_rpem\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define ROOT_CERT_FILE "$hdr_rpem"
+_ACEOF
 
 
 
 # Check whether --with-username was given.
-if test ${with_username+y}
-then :
+if test "${with_username+set}" = set; then :
   withval=$with_username; UNBOUND_USERNAME="$withval"
-else $as_nop
+else
   UNBOUND_USERNAME="unbound"
 fi
 
 
 
-printf "%s\n" "#define UB_USERNAME \"$UNBOUND_USERNAME\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define UB_USERNAME "$UNBOUND_USERNAME"
+_ACEOF
 
 
 
-printf "%s\n" "#define WINVER 0x0502" >>confdefs.h
+$as_echo "#define WINVER 0x0502" >>confdefs.h
 
 wnvs=`echo $PACKAGE_VERSION | sed -e 's/^[^0-9]*\([0-9][0-9]*\)[^0-9][^0-9]*\([0-9][0-9]*\)[^0-9][^0-9]*\([0-9][0-9]*\)[^0-9][^0-9]*\([0-9][0-9]*\).*$/\1,\2,\3,\4/' -e 's/^[^0-9]*\([0-9][0-9]*\)[^0-9][^0-9]*\([0-9][0-9]*\)[^0-9][^0-9]*\([0-9][0-9]*\)[^0-9]*$/\1,\2,\3,0/' `
 
 
-printf "%s\n" "#define RSRC_PACKAGE_VERSION $wnvs" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define RSRC_PACKAGE_VERSION $wnvs
+_ACEOF
 
 
 # Checks for typedefs, structures, and compiler characteristics.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-printf %s "checking for an ANSI C-conforming const... " >&6; }
-if test ${ac_cv_c_const+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+if ${ac_cv_c_const+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
 #ifndef __cplusplus
@@ -4763,7 +4470,7 @@ main (void)
   /* NEC SVR4.0.2 mips cc rejects this.  */
   struct point {int x, y;};
   static struct point const zero = {0,0};
-  /* IBM XL C 1.02.0.0 rejects this.
+  /* AIX XL C 1.02.0.0 rejects this.
      It does not let you subtract one const X* pointer from another in
      an arm of an if-expression whose if-part is not a constant
      expression */
@@ -4791,7 +4498,7 @@ main (void)
     iptr p = 0;
     ++p;
   }
-  { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
+  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
        "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
     struct s { int j; const int *ap[3]; } bx;
     struct s *b = &bx; b->j = 5;
@@ -4807,19 +4514,18 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_const=yes
-else $as_nop
+else
   ac_cv_c_const=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-printf "%s\n" "$ac_cv_c_const" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
 if test $ac_cv_c_const = no; then
 
-printf "%s\n" "#define const /**/" >>confdefs.h
+$as_echo "#define const /**/" >>confdefs.h
 
 fi
 
@@ -4834,13 +4540,12 @@ default_cflags=no
 if test "x$CFLAGS" = "x" ; then
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -g" >&5
-printf %s "checking whether $CC supports -g... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -g" >&5
+$as_echo_n "checking whether $CC supports -g... " >&6; }
 cache=`echo g | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -g -c conftest.c 2>&1`"; then
@@ -4853,26 +4558,25 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -g"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 
 fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O2" >&5
-printf %s "checking whether $CC supports -O2... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O2" >&5
+$as_echo_n "checking whether $CC supports -O2... " >&6; }
 cache=`echo O2 | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -O2 -c conftest.c 2>&1`"; then
@@ -4885,13 +4589,13 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -O2"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 
 fi
@@ -4906,12 +4610,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -4919,15 +4622,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4938,11 +4637,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -4951,12 +4650,11 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -4964,15 +4662,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4983,11 +4677,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_CC" = x; then
@@ -4995,8 +4689,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -5009,12 +4703,11 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -5022,15 +4715,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5041,11 +4730,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5054,12 +4743,11 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -5068,19 +4756,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5096,18 +4780,18 @@ if test $ac_prog_rejected = yes; then
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
   fi
 fi
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5118,12 +4802,11 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -5131,15 +4814,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5150,11 +4829,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5167,12 +4846,11 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -5180,15 +4858,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5199,11 +4873,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5215,138 +4889,34 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
-set dummy ${ac_tool_prefix}clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}clang"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "clang", so it can be a program name with args.
-set dummy clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="clang"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
   fi
-else
-  CC="$ac_cv_prog_CC"
 fi
 
 fi
 
 
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
 See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-for ac_option in --version -v -V -qversion -version; do
+for ac_option in --version -v -V -qversion; do
   { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -5356,21 +4926,20 @@ printf "%s\n" "$ac_try_echo"; } >&5
     cat conftest.er1 >&5
   fi
   rm -f conftest.er1 conftest.err
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 done
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
-printf %s "checking whether the compiler supports GNU C... " >&6; }
-if test ${ac_cv_c_compiler_gnu+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 #ifndef __GNUC__
        choke me
@@ -5380,33 +4949,29 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
-else $as_nop
+else
   ac_compiler_gnu=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GCC=yes
 else
   GCC=
 fi
-ac_test_CFLAGS=${CFLAGS+y}
+ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-printf %s "checking whether $CC accepts -g... " >&6; }
-if test ${ac_cv_prog_cc_g+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
@@ -5415,60 +4980,57 @@ else $as_nop
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
-else $as_nop
+else
   CFLAGS=""
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
 
-else $as_nop
+else
   ac_c_werror_flag=$ac_save_c_werror_flag
         CFLAGS="-g"
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
-if test $ac_test_CFLAGS; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
@@ -5478,149 +5040,99 @@ elif test $ac_cv_prog_cc_g = yes; then
   fi
 else
   if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-ac_prog_cc_stdc=no
-if test x$ac_prog_cc_stdc = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
-printf %s "checking for $CC option to enable C11 features... " >&6; }
-if test ${ac_cv_prog_cc_c11+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c11=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_c_conftest_c11_program
-_ACEOF
-for ac_arg in '' -std=gnu11
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_prog_cc_c11=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
-  test "x$ac_cv_prog_cc_c11" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c11" = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c11" = x
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
-     CC="$CC $ac_cv_prog_cc_c11"
-fi
-  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
-  ac_prog_cc_stdc=c11
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
-printf %s "checking for $CC option to enable C99 features... " >&6; }
-if test ${ac_cv_prog_cc_c99+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c99=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_c_conftest_c99_program
-_ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_prog_cc_c99=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
-  test "x$ac_cv_prog_cc_c99" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
 fi
-
-if test "x$ac_cv_prog_cc_c99" = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c99" = x
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
-     CC="$CC $ac_cv_prog_cc_c99"
-fi
-  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
-  ac_prog_cc_stdc=c99
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
-printf %s "checking for $CC option to enable C89 features... " >&6; }
-if test ${ac_cv_prog_cc_c89+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_c_conftest_c89_program
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
 _ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"
-then :
+  if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_c89=$ac_arg
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
+rm -f core conftest.err conftest.$ac_objext
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
 rm -f conftest.$ac_ext
 CC=$ac_save_CC
-fi
 
-if test "x$ac_cv_prog_cc_c89" = xno
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c89" = x
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
-     CC="$CC $ac_cv_prog_cc_c89"
-fi
-  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
-  ac_prog_cc_stdc=c89
 fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
 fi
 
 ac_ext=c
@@ -5630,8 +5142,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking $CC dependency flag" >&5
-printf %s "checking $CC dependency flag... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $CC dependency flag" >&5
+$as_echo_n "checking $CC dependency flag... " >&6; }
 echo 'void f(){}' >conftest.c
 if test "`$CC -MM conftest.c 2>&1`" = "conftest.o: conftest.c"; then
        DEPFLAG="-MM"
@@ -5642,21 +5154,20 @@ else
        DEPFLAG="-MM"  # dunno do something
   fi
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DEPFLAG" >&5
-printf "%s\n" "$DEPFLAG" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEPFLAG" >&5
+$as_echo "$DEPFLAG" >&6; }
 rm -f conftest.c
 
 
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Werror" >&5
-printf %s "checking whether $CC supports -Werror... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Werror" >&5
+$as_echo_n "checking whether $CC supports -Werror... " >&6; }
 cache=`echo Werror | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -Werror -c conftest.c 2>&1`"; then
@@ -5669,26 +5180,25 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 ERRFLAG="-Werror"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 ERRFLAG="-errwarn"
 fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
-printf %s "checking whether $CC supports -Wall... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
+$as_echo_n "checking whether $CC supports -Wall... " >&6; }
 cache=`echo Wall | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -Wall -c conftest.c 2>&1`"; then
@@ -5701,13 +5211,13 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 ERRFLAG="$ERRFLAG -Wall"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 ERRFLAG="$ERRFLAG -errfmt"
 fi
@@ -5716,13 +5226,12 @@ fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
-printf %s "checking whether $CC supports -std=c99... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
+$as_echo_n "checking whether $CC supports -std=c99... " >&6; }
 cache=`echo std=c99 | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -std=c99 -c conftest.c 2>&1`"; then
@@ -5735,26 +5244,25 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 C99FLAG="-std=c99"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 
 fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -xc99" >&5
-printf %s "checking whether $CC supports -xc99... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -xc99" >&5
+$as_echo_n "checking whether $CC supports -xc99... " >&6; }
 cache=`echo xc99 | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -xc99 -c conftest.c 2>&1`"; then
@@ -5767,44 +5275,42 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 C99FLAG="-xc99"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 
 fi
 
 
-ac_fn_c_check_header_compile "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default
+for ac_header in getopt.h time.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 "
-if test "x$ac_cv_header_getopt_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_GETOPT_H 1" >>confdefs.h
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
 fi
-ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_time_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h
 
-fi
+done
 
 
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC" >&5
-printf %s "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC... " >&6; }
-cache=`printf "%s\n" "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE" | $as_tr_sh`
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC" >&5
+$as_echo_n "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC... " >&6; }
+cache=`$as_echo "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE" | $as_tr_sh`
+if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo '
 #include "confdefs.h"
@@ -5863,14 +5369,14 @@ rm -f conftest conftest.c conftest.o
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE"
 else
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 #echo 'Test with flag is no!'
 #cat conftest.c
 #echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1"
@@ -5879,8 +5385,8 @@ printf "%s\n" "no" >&6; }
 :
 
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
 :
 
 fi
@@ -5890,13 +5396,12 @@ fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC" >&5
-printf %s "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC... " >&6; }
-cache=`printf "%s\n" "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE" | $as_tr_sh`
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC" >&5
+$as_echo_n "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC... " >&6; }
+cache=`$as_echo "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE" | $as_tr_sh`
+if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo '
 #include "confdefs.h"
@@ -5955,14 +5460,14 @@ rm -f conftest conftest.c conftest.o
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE"
 else
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 #echo 'Test with flag is no!'
 #cat conftest.c
 #echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1"
@@ -5971,8 +5476,8 @@ printf "%s\n" "no" >&6; }
 :
 
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
 :
 
 fi
@@ -5982,13 +5487,12 @@ fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG as a flag for $CC" >&5
-printf %s "checking whether we need $C99FLAG as a flag for $CC... " >&6; }
-cache=`printf "%s\n" "$C99FLAG" | $as_tr_sh`
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG as a flag for $CC" >&5
+$as_echo_n "checking whether we need $C99FLAG as a flag for $CC... " >&6; }
+cache=`$as_echo "$C99FLAG" | $as_tr_sh`
+if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo '
 #include <stdbool.h>
@@ -6020,14 +5524,14 @@ rm -f conftest conftest.c conftest.o
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS $C99FLAG"
 else
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 #echo 'Test with flag is no!'
 #cat conftest.c
 #echo "$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1"
@@ -6036,8 +5540,8 @@ printf "%s\n" "no" >&6; }
 :
 
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
 :
 
 fi
@@ -6047,13 +5551,12 @@ fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_BSD_SOURCE -D_DEFAULT_SOURCE as a flag for $CC" >&5
-printf %s "checking whether we need -D_BSD_SOURCE -D_DEFAULT_SOURCE as a flag for $CC... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_BSD_SOURCE -D_DEFAULT_SOURCE as a flag for $CC" >&5
+$as_echo_n "checking whether we need -D_BSD_SOURCE -D_DEFAULT_SOURCE as a flag for $CC... " >&6; }
 cache=_D_BSD_SOURCE__D_DEFAULT_SOURCE
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo '
 #include <ctype.h>
@@ -6086,14 +5589,14 @@ rm -f conftest conftest.c conftest.o
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -D_BSD_SOURCE -D_DEFAULT_SOURCE"
 else
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 #echo 'Test with flag is no!'
 #cat conftest.c
 #echo "$CC $CPPFLAGS $CFLAGS -D_BSD_SOURCE -D_DEFAULT_SOURCE $ERRFLAG -c conftest.c 2>&1"
@@ -6102,8 +5605,8 @@ printf "%s\n" "no" >&6; }
 :
 
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
 :
 
 fi
@@ -6113,13 +5616,12 @@ fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE as a flag for $CC" >&5
-printf %s "checking whether we need -D_GNU_SOURCE as a flag for $CC... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE as a flag for $CC" >&5
+$as_echo_n "checking whether we need -D_GNU_SOURCE as a flag for $CC... " >&6; }
 cache=_D_GNU_SOURCE
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo '
 #include <netinet/in.h>
@@ -6152,14 +5654,14 @@ rm -f conftest conftest.c conftest.o
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -D_GNU_SOURCE"
 else
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 #echo 'Test with flag is no!'
 #cat conftest.c
 #echo "$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE $ERRFLAG -c conftest.c 2>&1"
@@ -6168,8 +5670,8 @@ printf "%s\n" "no" >&6; }
 :
 
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
 :
 
 fi
@@ -6182,13 +5684,12 @@ fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC" >&5
-printf %s "checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC" >&5
+$as_echo_n "checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC... " >&6; }
 cache=_D_GNU_SOURCE__D_FRSRESGID
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo '
 #include <unistd.h>
@@ -6221,14 +5722,14 @@ rm -f conftest conftest.c conftest.o
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -D_GNU_SOURCE"
 else
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 #echo 'Test with flag is no!'
 #cat conftest.c
 #echo "$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE -D_FRSRESGID $ERRFLAG -c conftest.c 2>&1"
@@ -6237,8 +5738,8 @@ printf "%s\n" "no" >&6; }
 :
 
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
 :
 
 fi
@@ -6248,13 +5749,12 @@ fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC" >&5
-printf %s "checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC" >&5
+$as_echo_n "checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC... " >&6; }
 cache=_D_POSIX_C_SOURCE_200112
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo '
 #include "confdefs.h"
@@ -6298,14 +5798,14 @@ rm -f conftest conftest.c conftest.o
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=200112"
 else
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 #echo 'Test with flag is no!'
 #cat conftest.c
 #echo "$CC $CPPFLAGS $CFLAGS -D_POSIX_C_SOURCE=200112 $ERRFLAG -c conftest.c 2>&1"
@@ -6314,8 +5814,8 @@ printf "%s\n" "no" >&6; }
 :
 
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
 :
 
 fi
@@ -6325,13 +5825,12 @@ fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D__EXTENSIONS__ as a flag for $CC" >&5
-printf %s "checking whether we need -D__EXTENSIONS__ as a flag for $CC... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D__EXTENSIONS__ as a flag for $CC" >&5
+$as_echo_n "checking whether we need -D__EXTENSIONS__ as a flag for $CC... " >&6; }
 cache=_D__EXTENSIONS__
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo '
 #include "confdefs.h"
@@ -6381,14 +5880,14 @@ rm -f conftest conftest.c conftest.o
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -D__EXTENSIONS__"
 else
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 #echo 'Test with flag is no!'
 #cat conftest.c
 #echo "$CC $CPPFLAGS $CFLAGS -D__EXTENSIONS__ $ERRFLAG -c conftest.c 2>&1"
@@ -6397,8 +5896,8 @@ printf "%s\n" "no" >&6; }
 :
 
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
 :
 
 fi
@@ -6409,14 +5908,12 @@ fi
 
 # debug mode flags warnings
 # Check whether --enable-checking was given.
-if test ${enable_checking+y}
-then :
+if test "${enable_checking+set}" = set; then :
   enableval=$enable_checking;
 fi
 
 # Check whether --enable-debug was given.
-if test ${enable_debug+y}
-then :
+if test "${enable_debug+set}" = set; then :
   enableval=$enable_debug;
 fi
 
@@ -6427,13 +5924,12 @@ case "$debug_enabled" in
         yes)
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -W" >&5
-printf %s "checking whether $CC supports -W... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -W" >&5
+$as_echo_n "checking whether $CC supports -W... " >&6; }
 cache=`echo W | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -W -c conftest.c 2>&1`"; then
@@ -6446,26 +5942,25 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -W"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 
 fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
-printf %s "checking whether $CC supports -Wall... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
+$as_echo_n "checking whether $CC supports -Wall... " >&6; }
 cache=`echo Wall | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -Wall -c conftest.c 2>&1`"; then
@@ -6478,26 +5973,25 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -Wall"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 
 fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wextra" >&5
-printf %s "checking whether $CC supports -Wextra... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wextra" >&5
+$as_echo_n "checking whether $CC supports -Wextra... " >&6; }
 cache=`echo Wextra | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -Wextra -c conftest.c 2>&1`"; then
@@ -6510,26 +6004,25 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -Wextra"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 
 fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wdeclaration-after-statement" >&5
-printf %s "checking whether $CC supports -Wdeclaration-after-statement... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wdeclaration-after-statement" >&5
+$as_echo_n "checking whether $CC supports -Wdeclaration-after-statement... " >&6; }
 cache=`echo Wdeclaration-after-statement | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -Wdeclaration-after-statement -c conftest.c 2>&1`"; then
@@ -6542,19 +6035,19 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -Wdeclaration-after-statement"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 
 fi
 
 
-printf "%s\n" "#define UNBOUND_DEBUG /**/" >>confdefs.h
+$as_echo "#define UNBOUND_DEBUG /**/" >>confdefs.h
 
                ;;
        no|*)
@@ -6567,63 +6060,58 @@ if test "$default_cflags" = "yes"; then
        # be able to turn off these options and set the CFLAGS wanted.
 
     # Check whether --enable-flto was given.
-if test ${enable_flto+y}
-then :
+if test "${enable_flto+set}" = set; then :
   enableval=$enable_flto;
 fi
 
-    if test "x$enable_flto" != "xno"
-then :
+    if test "x$enable_flto" != "xno"; then :
 
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports -flto" >&5
-printf %s "checking if $CC supports -flto... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -flto" >&5
+$as_echo_n "checking if $CC supports -flto... " >&6; }
         BAKCFLAGS="$CFLAGS"
         CFLAGS="$CFLAGS -flto"
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
             if $CC $CFLAGS -o conftest conftest.c 2>&1 | $GREP -e "warning: no debug symbols in executable" -e "warning: object" >/dev/null; then
                 CFLAGS="$BAKCFLAGS"
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
             else
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
             fi
             rm -f conftest conftest.c conftest.o
 
-else $as_nop
-  CFLAGS="$BAKCFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+else
+  CFLAGS="$BAKCFLAGS" ; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
 
 
     # Check whether --enable-pie was given.
-if test ${enable_pie+y}
-then :
+if test "${enable_pie+set}" = set; then :
   enableval=$enable_pie;
 fi
 
-    if test "x$enable_pie" = "xyes"
-then :
+    if test "x$enable_pie" = "xyes"; then :
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports PIE" >&5
-printf %s "checking if $CC supports PIE... " >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports PIE" >&5
+$as_echo_n "checking if $CC supports PIE... " >&6; }
        BAKLDFLAGS="$LDFLAGS"
        BAKCFLAGS="$CFLAGS"
        LDFLAGS="$LDFLAGS -pie"
@@ -6632,112 +6120,106 @@ printf %s "checking if $CC supports PIE... " >&6; }
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
            if $CC $CFLAGS $LDFLAGS -o conftest conftest.c 2>&1 | grep "warning: no debug symbols in executable" >/dev/null; then
                LDFLAGS="$BAKLDFLAGS"
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
            else
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
            fi
            rm -f conftest conftest.c conftest.o
 
-else $as_nop
-  LDFLAGS="$BAKLDFLAGS" ; CFLAGS="$BAKCFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+else
+  LDFLAGS="$BAKLDFLAGS" ; CFLAGS="$BAKCFLAGS" ; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
 
 
     # Check whether --enable-relro_now was given.
-if test ${enable_relro_now+y}
-then :
+if test "${enable_relro_now+set}" = set; then :
   enableval=$enable_relro_now;
 fi
 
-    if test "x$enable_relro_now" = "xyes"
-then :
+    if test "x$enable_relro_now" = "xyes"; then :
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wl,-z,relro,-z,now" >&5
-printf %s "checking if $CC supports -Wl,-z,relro,-z,now... " >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wl,-z,relro,-z,now" >&5
+$as_echo_n "checking if $CC supports -Wl,-z,relro,-z,now... " >&6; }
        BAKLDFLAGS="$LDFLAGS"
        LDFLAGS="$LDFLAGS -Wl,-z,relro,-z,now"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
            if $CC $CFLAGS $LDFLAGS -o conftest conftest.c 2>&1 | grep "warning: no debug symbols in executable" >/dev/null; then
                LDFLAGS="$BAKLDFLAGS"
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
            else
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
            fi
            rm -f conftest conftest.c conftest.o
 
-else $as_nop
-  LDFLAGS="$BAKLDFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+else
+  LDFLAGS="$BAKLDFLAGS" ; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
 
 fi
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-printf %s "checking for inline... " >&6; }
-if test ${ac_cv_c_inline+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+$as_echo_n "checking for inline... " >&6; }
+if ${ac_cv_c_inline+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifndef __cplusplus
 typedef int foo_t;
-static $ac_kw foo_t static_foo (void) {return 0; }
-$ac_kw foo_t foo (void) {return 0; }
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
 #endif
 
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_inline=$ac_kw
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   test "$ac_cv_c_inline" != no && break
 done
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-printf "%s\n" "$ac_cv_c_inline" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+$as_echo "$ac_cv_c_inline" >&6; }
 
 case $ac_cv_c_inline in
   inline | yes) ;;
@@ -6755,12 +6237,11 @@ _ACEOF
 esac
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute" >&5
-printf %s "checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute... " >&6; }
-if test ${ac_cv_c_format_attribute+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute" >&5
+$as_echo_n "checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute... " >&6; }
+if ${ac_cv_c_format_attribute+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_cv_c_format_attribute=no
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -6769,7 +6250,7 @@ void f (char *format, ...) __attribute__ ((format (printf, 1, 2)));
 void (*pf) (char *format, ...) __attribute__ ((format (printf, 1, 2)));
 
 int
-main (void)
+main ()
 {
 
    f ("%s", "str");
@@ -6778,32 +6259,30 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_format_attribute="yes"
-else $as_nop
+else
   ac_cv_c_format_attribute="no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_format_attribute" >&5
-printf "%s\n" "$ac_cv_c_format_attribute" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_format_attribute" >&5
+$as_echo "$ac_cv_c_format_attribute" >&6; }
 if test $ac_cv_c_format_attribute = yes; then
 
-printf "%s\n" "#define HAVE_ATTR_FORMAT 1" >>confdefs.h
+$as_echo "#define HAVE_ATTR_FORMAT 1" >>confdefs.h
 
 fi
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute" >&5
-printf %s "checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute... " >&6; }
-if test ${ac_cv_c_unused_attribute+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute" >&5
+$as_echo_n "checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute... " >&6; }
+if ${ac_cv_c_unused_attribute+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_cv_c_unused_attribute=no
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -6811,7 +6290,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 void f (char *u __attribute__((unused)));
 
 int
-main (void)
+main ()
 {
 
    f ("x");
@@ -6820,36 +6299,34 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_unused_attribute="yes"
-else $as_nop
+else
   ac_cv_c_unused_attribute="no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_unused_attribute" >&5
-printf "%s\n" "$ac_cv_c_unused_attribute" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_unused_attribute" >&5
+$as_echo "$ac_cv_c_unused_attribute" >&6; }
 if test $ac_cv_c_unused_attribute = yes; then
 
-printf "%s\n" "#define HAVE_ATTR_UNUSED 1" >>confdefs.h
+$as_echo "#define HAVE_ATTR_UNUSED 1" >>confdefs.h
 
 fi
 
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"weak\" attribute" >&5
-printf %s "checking whether the C compiler (${CC-cc}) accepts the \"weak\" attribute... " >&6; }
-if test ${ac_cv_c_weak_attribute+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"weak\" attribute" >&5
+$as_echo_n "checking whether the C compiler (${CC-cc}) accepts the \"weak\" attribute... " >&6; }
+if ${ac_cv_c_weak_attribute+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_cv_c_weak_attribute=no
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -6857,7 +6334,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 __attribute__((weak)) void f(int x) { printf("%d", x); }
 
 int
-main (void)
+main ()
 {
 
    f(1);
@@ -6866,37 +6343,35 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_weak_attribute="yes"
-else $as_nop
+else
   ac_cv_c_weak_attribute="no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_weak_attribute" >&5
-printf "%s\n" "$ac_cv_c_weak_attribute" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_weak_attribute" >&5
+$as_echo "$ac_cv_c_weak_attribute" >&6; }
 if test $ac_cv_c_weak_attribute = yes; then
 
-printf "%s\n" "#define HAVE_ATTR_WEAK 1" >>confdefs.h
+$as_echo "#define HAVE_ATTR_WEAK 1" >>confdefs.h
 
 
-printf "%s\n" "#define ATTR_WEAK __attribute__((weak))" >>confdefs.h
+$as_echo "#define ATTR_WEAK __attribute__((weak))" >>confdefs.h
 
 fi
 
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"noreturn\" attribute" >&5
-printf %s "checking whether the C compiler (${CC-cc}) accepts the \"noreturn\" attribute... " >&6; }
-if test ${ac_cv_c_noreturn_attribute+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"noreturn\" attribute" >&5
+$as_echo_n "checking whether the C compiler (${CC-cc}) accepts the \"noreturn\" attribute... " >&6; }
+if ${ac_cv_c_noreturn_attribute+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_cv_c_noreturn_attribute=no
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -6904,7 +6379,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 __attribute__((noreturn)) void f(int x) { printf("%d", x); }
 
 int
-main (void)
+main ()
 {
 
    f(1);
@@ -6913,25 +6388,24 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_noreturn_attribute="yes"
-else $as_nop
+else
   ac_cv_c_noreturn_attribute="no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_noreturn_attribute" >&5
-printf "%s\n" "$ac_cv_c_noreturn_attribute" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_noreturn_attribute" >&5
+$as_echo "$ac_cv_c_noreturn_attribute" >&6; }
 if test $ac_cv_c_noreturn_attribute = yes; then
 
-printf "%s\n" "#define HAVE_ATTR_NORETURN 1" >>confdefs.h
+$as_echo "#define HAVE_ATTR_NORETURN 1" >>confdefs.h
 
 
-printf "%s\n" "#define ATTR_NORETURN __attribute__((__noreturn__))" >>confdefs.h
+$as_echo "#define ATTR_NORETURN __attribute__((__noreturn__))" >>confdefs.h
 
 fi
 
@@ -6948,12 +6422,11 @@ for ac_prog in flex lex
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_LEX+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LEX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$LEX"; then
   ac_cv_prog_LEX="$LEX" # Let the user override the test.
 else
@@ -6961,15 +6434,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_LEX="$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6980,11 +6449,11 @@ fi
 fi
 LEX=$ac_cv_prog_LEX
 if test -n "$LEX"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
-printf "%s\n" "$LEX" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
+$as_echo "$LEX" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -6992,26 +6461,15 @@ fi
 done
 test -n "$LEX" || LEX=":"
 
-  if test "x$LEX" != "x:"; then
-    cat >conftest.l <<_ACEOF
-%{
-#ifdef __cplusplus
-extern "C"
-#endif
-int yywrap(void);
-%}
+if test "x$LEX" != "x:"; then
+  cat >conftest.l <<_ACEOF
 %%
 a { ECHO; }
 b { REJECT; }
 c { yymore (); }
 d { yyless (1); }
 e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument.  */
-#ifdef __cplusplus
-    yyless ((yyinput () != 0));
-#else
-    yyless ((input () != 0));
-#endif
-  }
+    yyless ((input () != 0)); }
 f { unput (yytext[0]); }
 . { BEGIN INITIAL; }
 %%
@@ -7019,144 +6477,101 @@ f { unput (yytext[0]); }
 extern char *yytext;
 #endif
 int
-yywrap (void)
-{
-  return 1;
-}
-int
 main (void)
 {
-  return ! yylex ();
+  return ! yylex () + ! yywrap ();
 }
 _ACEOF
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex output file root" >&5
-printf %s "checking for lex output file root... " >&6; }
-if test ${ac_cv_prog_lex_root+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-ac_cv_prog_lex_root=unknown
 { { ac_try="$LEX conftest.l"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+$as_echo "$ac_try_echo"; } >&5
   (eval "$LEX conftest.l") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5
+$as_echo_n "checking lex output file root... " >&6; }
+if ${ac_cv_prog_lex_root+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
 if test -f lex.yy.c; then
   ac_cv_prog_lex_root=lex.yy
 elif test -f lexyy.c; then
   ac_cv_prog_lex_root=lexyy
+else
+  as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5
 fi
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
-printf "%s\n" "$ac_cv_prog_lex_root" >&6; }
-if test "$ac_cv_prog_lex_root" = unknown
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find output from $LEX; giving up on $LEX" >&5
-printf "%s\n" "$as_me: WARNING: cannot find output from $LEX; giving up on $LEX" >&2;}
-   LEX=: LEXLIB=
-fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
+$as_echo "$ac_cv_prog_lex_root" >&6; }
 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
 
-if test ${LEXLIB+y}
-then :
-
-else $as_nop
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex library" >&5
-printf %s "checking for lex library... " >&6; }
-if test ${ac_cv_lib_lex+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    ac_save_LIBS="$LIBS"
-    ac_found=false
-    for ac_cv_lib_lex in 'none needed' -lfl -ll 'not found'; do
-      case $ac_cv_lib_lex in #(
-  'none needed') :
-     ;; #(
-  'not found') :
-    break ;; #(
-  *) :
-    LIBS="$ac_cv_lib_lex $ac_save_LIBS" ;; #(
-  *) :
-     ;;
-esac
+if test -z "${LEXLIB+set}"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5
+$as_echo_n "checking lex library... " >&6; }
+if ${ac_cv_lib_lex+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+    ac_save_LIBS=$LIBS
+    ac_cv_lib_lex='none needed'
+    for ac_lib in '' -lfl -ll; do
+      LIBS="$ac_lib $ac_save_LIBS"
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 `cat $LEX_OUTPUT_ROOT.c`
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  ac_found=:
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_lex=$ac_lib
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-      if $ac_found; then
-        break
-      fi
+      test "$ac_cv_lib_lex" != 'none needed' && break
     done
-    LIBS="$ac_save_LIBS"
+    LIBS=$ac_save_LIBS
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
-printf "%s\n" "$ac_cv_lib_lex" >&6; }
-  if test "$ac_cv_lib_lex" = 'not found'
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: required lex library not found; giving up on $LEX" >&5
-printf "%s\n" "$as_me: WARNING: required lex library not found; giving up on $LEX" >&2;}
-        LEX=: LEXLIB=
-elif test "$ac_cv_lib_lex" = 'none needed'
-then :
-  LEXLIB=''
-else $as_nop
-  LEXLIB=$ac_cv_lib_lex
-fi
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
+$as_echo "$ac_cv_lib_lex" >&6; }
+  test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
 fi
 
 
-if test "$LEX" != :
-then :
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
-printf %s "checking whether yytext is a pointer... " >&6; }
-if test ${ac_cv_prog_lex_yytext_pointer+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
+$as_echo_n "checking whether yytext is a pointer... " >&6; }
+if ${ac_cv_prog_lex_yytext_pointer+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   # POSIX says lex can declare yytext either as a pointer or an array; the
 # default is implementation-dependent.  Figure out which it is, since
 # not all implementations provide the %pointer and %array declarations.
 ac_cv_prog_lex_yytext_pointer=no
+ac_save_LIBS=$LIBS
+LIBS="$LEXLIB $ac_save_LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
   #define YYTEXT_POINTER 1
 `cat $LEX_OUTPUT_ROOT.c`
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_prog_lex_yytext_pointer=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_save_LIBS
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
-printf "%s\n" "$ac_cv_prog_lex_yytext_pointer" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
+$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; }
 if test $ac_cv_prog_lex_yytext_pointer = yes; then
 
-printf "%s\n" "#define YYTEXT_POINTER 1" >>confdefs.h
-
-fi
+$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h
 
 fi
 rm -f conftest.l $LEX_OUTPUT_ROOT.c
@@ -7164,32 +6579,32 @@ rm -f conftest.l $LEX_OUTPUT_ROOT.c
 fi
 if test "$LEX" != "" -a "$LEX" != ":"; then
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yylex_destroy" >&5
-printf %s "checking for yylex_destroy... " >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yylex_destroy" >&5
+$as_echo_n "checking for yylex_destroy... " >&6; }
        if echo %% | $LEX -t 2>&1 | grep yylex_destroy >/dev/null 2>&1; then
 
-printf "%s\n" "#define LEX_HAS_YYLEX_DESTROY 1" >>confdefs.h
+$as_echo "#define LEX_HAS_YYLEX_DESTROY 1" >>confdefs.h
 
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-       else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; };
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; };
                LEX=":"
        fi
 
 fi
 if test "$LEX" != "" -a "$LEX" != ":"; then
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex %option" >&5
-printf %s "checking for lex %option... " >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lex %option" >&5
+$as_echo_n "checking for lex %option... " >&6; }
        if cat <<EOF | $LEX -t 2>&1 | grep yy_delete_buffer >/dev/null 2>&1; then
 %option nounput
 %%
 EOF
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-       else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; };
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; };
                LEX=":"
        fi
 
@@ -7198,12 +6613,11 @@ for ac_prog in 'bison -y' byacc
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_YACC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_YACC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
 else
@@ -7211,15 +6625,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_YACC="$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7230,11 +6640,11 @@ fi
 fi
 YACC=$ac_cv_prog_YACC
 if test -n "$YACC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
-printf "%s\n" "$YACC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
+$as_echo "$YACC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -7244,12 +6654,11 @@ test -n "$YACC" || YACC="yacc"
 
 # Extract the first word of "doxygen", so it can be a program name with args.
 set dummy doxygen; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_doxygen+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_doxygen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$doxygen"; then
   ac_cv_prog_doxygen="$doxygen" # Let the user override the test.
 else
@@ -7257,15 +6666,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_doxygen="doxygen"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7276,23 +6681,22 @@ fi
 fi
 doxygen=$ac_cv_prog_doxygen
 if test -n "$doxygen"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $doxygen" >&5
-printf "%s\n" "$doxygen" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $doxygen" >&5
+$as_echo "$doxygen" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_STRIP+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$STRIP"; then
   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
 else
@@ -7300,15 +6704,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7319,11 +6719,11 @@ fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-printf "%s\n" "$STRIP" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -7332,12 +6732,11 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_STRIP+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_STRIP"; then
   ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
 else
@@ -7345,15 +6744,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7364,11 +6759,11 @@ fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-printf "%s\n" "$ac_ct_STRIP" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_STRIP" = x; then
@@ -7376,8 +6771,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     STRIP=$ac_ct_STRIP
@@ -7386,30 +6781,55 @@ else
   STRIP="$ac_cv_prog_STRIP"
 fi
 
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
 
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
-  # Make sure we can run config.sub.
-$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-printf %s "checking build system type... " >&6; }
-if test ${ac_cv_build+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 test "x$ac_build_alias" = x &&
   as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-printf "%s\n" "$ac_cv_build" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
@@ -7428,22 +6848,21 @@ IFS=$ac_save_IFS
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-printf %s "checking host system type... " >&6; }
-if test ${ac_cv_host+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
-  ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-printf "%s\n" "$ac_cv_host" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
@@ -7485,12 +6904,11 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_AR+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $AR in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_AR="$AR" # Let the user override the test with a path.
@@ -7500,15 +6918,11 @@ else $as_nop
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_AR="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7520,11 +6934,11 @@ esac
 fi
 AR=$ac_cv_path_AR
 if test -n "$AR"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-printf "%s\n" "$AR" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -7533,12 +6947,11 @@ if test -z "$ac_cv_path_AR"; then
   ac_pt_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_ac_pt_AR+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $ac_pt_AR in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_ac_pt_AR="$ac_pt_AR" # Let the user override the test with a path.
@@ -7548,15 +6961,11 @@ else $as_nop
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_ac_pt_AR="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_AR="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7568,11 +6977,11 @@ esac
 fi
 ac_pt_AR=$ac_cv_path_ac_pt_AR
 if test -n "$ac_pt_AR"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_AR" >&5
-printf "%s\n" "$ac_pt_AR" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_AR" >&5
+$as_echo "$ac_pt_AR" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_pt_AR" = x; then
@@ -7580,8 +6989,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     AR=$ac_pt_AR
@@ -7594,11 +7003,10 @@ if test $AR = false; then
        as_fn_error $? "Cannot find 'ar', please extend PATH to include it" "$LINENO" 5
 fi
 
-
 case `pwd` in
   *\ * | *\    *)
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
 esac
 
 
@@ -7618,7 +7026,6 @@ macro_revision='2.4.6'
 
 
 
-
 ltmain=$ac_aux_dir/ltmain.sh
 
 # Backslashify metacharacters that are still active within
@@ -7642,8 +7049,8 @@ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-printf %s "checking how to print strings... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
 # Test print first, because it will be a builtin if present.
 if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
    test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
@@ -7669,12 +7076,12 @@ func_echo_all ()
 }
 
 case $ECHO in
-  printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-printf "%s\n" "printf" >&6; } ;;
-  print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-printf "%s\n" "print -r" >&6; } ;;
-  *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-printf "%s\n" "cat" >&6; } ;;
+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
 esac
 
 
@@ -7690,12 +7097,11 @@ esac
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-printf %s "checking for a sed that does not truncate output... " >&6; }
-if test ${ac_cv_path_SED+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
      for ac_i in 1 2 3 4 5 6 7; do
        ac_script="$ac_script$as_nl$ac_script"
@@ -7709,15 +7115,10 @@ else $as_nop
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_prog in sed gsed
-   do
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
       as_fn_executable_p "$ac_path_SED" || continue
 # Check for GNU ac_path_SED and select it if it is found.
   # Check for GNU $ac_path_SED
@@ -7726,13 +7127,13 @@ case `"$ac_path_SED" --version 2>&1` in
   ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
 *)
   ac_count=0
-  printf %s 0123456789 >"conftest.in"
+  $as_echo_n 0123456789 >"conftest.in"
   while :
   do
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    printf "%s\n" '' >> "conftest.nl"
+    $as_echo '' >> "conftest.nl"
     "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -7760,8 +7161,8 @@ else
 fi
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-printf "%s\n" "$ac_cv_path_SED" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
  SED="$ac_cv_path_SED"
   rm -f conftest.sed
 
@@ -7770,162 +7171,19 @@ Xsed="$SED -e 1s/^X//"
 
 
 
-
-
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-printf %s "checking for grep that handles long lines and -e... " >&6; }
-if test ${ac_cv_path_GREP+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_prog in grep ggrep
-   do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  printf %s 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    printf "%s\n" 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-printf "%s\n" "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-printf %s "checking for egrep... " >&6; }
-if test ${ac_cv_path_EGREP+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_prog in egrep
-   do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  printf %s 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    printf "%s\n" 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-printf "%s\n" "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-printf %s "checking for fgrep... " >&6; }
-if test ${ac_cv_path_FGREP+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
    then ac_cv_path_FGREP="$GREP -F"
    else
@@ -7936,15 +7194,10 @@ else $as_nop
 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_prog in fgrep
-   do
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in fgrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"
+      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
       as_fn_executable_p "$ac_path_FGREP" || continue
 # Check for GNU ac_path_FGREP and select it if it is found.
   # Check for GNU $ac_path_FGREP
@@ -7953,13 +7206,13 @@ case `"$ac_path_FGREP" --version 2>&1` in
   ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
 *)
   ac_count=0
-  printf %s 0123456789 >"conftest.in"
+  $as_echo_n 0123456789 >"conftest.in"
   while :
   do
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    printf "%s\n" 'FGREP' >> "conftest.nl"
+    $as_echo 'FGREP' >> "conftest.nl"
     "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -7988,8 +7241,8 @@ fi
 
    fi
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-printf "%s\n" "$ac_cv_path_FGREP" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
  FGREP="$ac_cv_path_FGREP"
 
 
@@ -8014,18 +7267,17 @@ test -z "$GREP" && GREP=grep
 
 
 # Check whether --with-gnu-ld was given.
-if test ${with_gnu_ld+y}
-then :
+if test "${with_gnu_ld+set}" = set; then :
   withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else $as_nop
+else
   with_gnu_ld=no
 fi
 
 ac_prog=ld
 if test yes = "$GCC"; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-printf %s "checking for ld used by $CC... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
     # gcc leaves a trailing carriage return, which upsets mingw
@@ -8054,16 +7306,15 @@ printf %s "checking for ld used by $CC... " >&6; }
     ;;
   esac
 elif test yes = "$with_gnu_ld"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-printf %s "checking for GNU ld... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-printf %s "checking for non-GNU ld... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test ${lt_cv_path_LD+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if ${lt_cv_path_LD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -z "$LD"; then
   lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
@@ -8092,19 +7343,18 @@ fi
 
 LD=$lt_cv_path_LD
 if test -n "$LD"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-printf "%s\n" "$LD" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
-if test ${lt_cv_prog_gnu_ld+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
 case `$LD -v 2>&1 </dev/null` in
 *GNU* | *'with BFD'*)
@@ -8115,8 +7365,8 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
@@ -8127,12 +7377,11 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test ${lt_cv_path_NM+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$NM"; then
   # Let the user override the test.
   lt_cv_path_NM=$NM
@@ -8182,8 +7431,8 @@ else
   : ${lt_cv_path_NM=no}
 fi
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-printf "%s\n" "$lt_cv_path_NM" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
 if test no != "$lt_cv_path_NM"; then
   NM=$lt_cv_path_NM
 else
@@ -8196,12 +7445,11 @@ else
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_DUMPBIN+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$DUMPBIN"; then
   ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
 else
@@ -8209,15 +7457,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -8228,11 +7472,11 @@ fi
 fi
 DUMPBIN=$ac_cv_prog_DUMPBIN
 if test -n "$DUMPBIN"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-printf "%s\n" "$DUMPBIN" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -8245,12 +7489,11 @@ if test -z "$DUMPBIN"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_DUMPBIN"; then
   ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
 else
@@ -8258,15 +7501,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -8277,11 +7516,11 @@ fi
 fi
 ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
 if test -n "$ac_ct_DUMPBIN"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-printf "%s\n" "$ac_ct_DUMPBIN" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -8293,8 +7532,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     DUMPBIN=$ac_ct_DUMPBIN
@@ -8322,12 +7561,11 @@ test -z "$NM" && NM=nm
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-printf %s "checking the name lister ($NM) interface... " >&6; }
-if test ${lt_cv_nm_interface+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
   (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
@@ -8343,27 +7581,26 @@ else $as_nop
   fi
   rm -f conftest*
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-printf "%s\n" "$lt_cv_nm_interface" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-printf %s "checking whether ln -s works... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-printf "%s\n" "no, using $LN_S" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
 fi
 
 # find the maximum length of command line arguments
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-printf %s "checking the maximum length of command line arguments... " >&6; }
-if test ${lt_cv_sys_max_cmd_len+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
     i=0
   teststring=ABCD
 
@@ -8490,11 +7727,11 @@ else $as_nop
 fi
 
 if test -n "$lt_cv_sys_max_cmd_len"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
-printf "%s\n" "none" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
 fi
 max_cmd_len=$lt_cv_sys_max_cmd_len
 
@@ -8538,12 +7775,11 @@ esac
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-printf %s "checking how to convert $build file names to $host format... " >&6; }
-if test ${lt_cv_to_host_file_cmd+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $host in
   *-*-mingw* )
     case $build in
@@ -8579,19 +7815,18 @@ esac
 fi
 
 to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
 
 
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-printf %s "checking how to convert $build file names to toolchain format... " >&6; }
-if test ${lt_cv_to_tool_file_cmd+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   #assume ordinary cross tools, or native build.
 lt_cv_to_tool_file_cmd=func_convert_file_noop
 case $host in
@@ -8607,23 +7842,22 @@ esac
 fi
 
 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
 
 
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-printf %s "checking for $LD option to reload object files... " >&6; }
-if test ${lt_cv_ld_reload_flag+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_ld_reload_flag='-r'
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
 reload_flag=$lt_cv_ld_reload_flag
 case $reload_flag in
 "" | " "*) ;;
@@ -8656,12 +7890,11 @@ esac
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_OBJDUMP+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$OBJDUMP"; then
   ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
 else
@@ -8669,15 +7902,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -8688,11 +7917,11 @@ fi
 fi
 OBJDUMP=$ac_cv_prog_OBJDUMP
 if test -n "$OBJDUMP"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-printf "%s\n" "$OBJDUMP" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -8701,12 +7930,11 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
   ac_ct_OBJDUMP=$OBJDUMP
   # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_OBJDUMP"; then
   ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
 else
@@ -8714,15 +7942,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -8733,11 +7957,11 @@ fi
 fi
 ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 if test -n "$ac_ct_OBJDUMP"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_OBJDUMP" = x; then
@@ -8745,8 +7969,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OBJDUMP=$ac_ct_OBJDUMP
@@ -8765,12 +7989,11 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-printf %s "checking how to recognize dependent libraries... " >&6; }
-if test ${lt_cv_deplibs_check_method+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
 lt_cv_file_magic_test_file=
 lt_cv_deplibs_check_method='unknown'
@@ -8966,8 +8189,8 @@ os2*)
 esac
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
 
 file_magic_glob=
 want_nocaseglob=no
@@ -9011,12 +8234,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_DLLTOOL+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$DLLTOOL"; then
   ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
 else
@@ -9024,15 +8246,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9043,11 +8261,11 @@ fi
 fi
 DLLTOOL=$ac_cv_prog_DLLTOOL
 if test -n "$DLLTOOL"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-printf "%s\n" "$DLLTOOL" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -9056,12 +8274,11 @@ if test -z "$ac_cv_prog_DLLTOOL"; then
   ac_ct_DLLTOOL=$DLLTOOL
   # Extract the first word of "dlltool", so it can be a program name with args.
 set dummy dlltool; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_DLLTOOL"; then
   ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
 else
@@ -9069,15 +8286,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9088,11 +8301,11 @@ fi
 fi
 ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
 if test -n "$ac_ct_DLLTOOL"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_DLLTOOL" = x; then
@@ -9100,8 +8313,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     DLLTOOL=$ac_ct_DLLTOOL
@@ -9121,12 +8334,11 @@ test -z "$DLLTOOL" && DLLTOOL=dlltool
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-printf %s "checking how to associate runtime and link libraries... " >&6; }
-if test ${lt_cv_sharedlib_from_linklib_cmd+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_sharedlib_from_linklib_cmd='unknown'
 
 case $host_os in
@@ -9149,8 +8361,8 @@ cygwin* | mingw* | pw32* | cegcc*)
 esac
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
 sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
 test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
 
@@ -9165,12 +8377,11 @@ if test -n "$ac_tool_prefix"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_AR+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$AR"; then
   ac_cv_prog_AR="$AR" # Let the user override the test.
 else
@@ -9178,15 +8389,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9197,11 +8404,11 @@ fi
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-printf "%s\n" "$AR" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -9214,12 +8421,11 @@ if test -z "$AR"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_AR+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_AR"; then
   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
 else
@@ -9227,15 +8433,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_AR="$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9246,11 +8448,11 @@ fi
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-printf "%s\n" "$ac_ct_AR" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -9262,8 +8464,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     AR=$ac_ct_AR
@@ -9283,32 +8485,30 @@ fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-printf %s "checking for archiver @FILE support... " >&6; }
-if test ${lt_cv_ar_at_file+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_ar_at_file=no
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   echo conftest.$ac_objext > conftest.lst
       lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
       { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
   (eval $lt_ar_try) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
       if test 0 -eq "$ac_status"; then
        # Ensure the archiver fails upon bogus file names.
@@ -9316,7 +8516,7 @@ then :
        { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
   (eval $lt_ar_try) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
        if test 0 -ne "$ac_status"; then
           lt_cv_ar_at_file=@
@@ -9325,11 +8525,11 @@ then :
       rm -f conftest.* libconftest.a
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-printf "%s\n" "$lt_cv_ar_at_file" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
 
 if test no = "$lt_cv_ar_at_file"; then
   archiver_list_spec=
@@ -9346,12 +8546,11 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_STRIP+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$STRIP"; then
   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
 else
@@ -9359,15 +8558,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9378,11 +8573,11 @@ fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-printf "%s\n" "$STRIP" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -9391,12 +8586,11 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_STRIP+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_STRIP"; then
   ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
 else
@@ -9404,15 +8598,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9423,11 +8613,11 @@ fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-printf "%s\n" "$ac_ct_STRIP" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_STRIP" = x; then
@@ -9435,8 +8625,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     STRIP=$ac_ct_STRIP
@@ -9455,12 +8645,11 @@ test -z "$STRIP" && STRIP=:
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_RANLIB+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
@@ -9468,15 +8657,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9487,11 +8672,11 @@ fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-printf "%s\n" "$RANLIB" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -9500,12 +8685,11 @@ if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_RANLIB+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_RANLIB"; then
   ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 else
@@ -9513,15 +8697,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9532,11 +8712,11 @@ fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-printf "%s\n" "$ac_ct_RANLIB" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_RANLIB" = x; then
@@ -9544,8 +8724,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     RANLIB=$ac_ct_RANLIB
@@ -9609,12 +8789,11 @@ for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_AWK+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$AWK"; then
   ac_cv_prog_AWK="$AWK" # Let the user override the test.
 else
@@ -9622,15 +8801,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AWK="$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -9641,11 +8816,11 @@ fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-printf "%s\n" "$AWK" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -9681,12 +8856,11 @@ compiler=$CC
 
 
 # Check for command to grab the raw symbol name followed by C symbol from nm.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-printf %s "checking command to parse $NM output from $compiler object... " >&6; }
-if test ${lt_cv_sys_global_symbol_pipe+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 # These are sane defaults that work on at least a few old systems.
 # [They come from Ultrix.  What could be older than Ultrix?!! ;)]
@@ -9838,14 +9012,14 @@ _LT_EOF
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   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=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
@@ -9914,7 +9088,7 @@ _LT_EOF
          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s conftest$ac_exeext; then
            pipe_works=yes
          fi
@@ -9949,11 +9123,11 @@ if test -z "$lt_cv_sys_global_symbol_pipe"; then
   lt_cv_sys_global_symbol_to_cdecl=
 fi
 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-printf "%s\n" "ok" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
 fi
 
 # Response file support.
@@ -9999,14 +9173,13 @@ fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-printf %s "checking for sysroot... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
 
 # Check whether --with-sysroot was given.
-if test ${with_sysroot+y}
-then :
+if test "${with_sysroot+set}" = set; then :
   withval=$with_sysroot;
-else $as_nop
+else
   with_sysroot=no
 fi
 
@@ -10024,25 +9197,24 @@ case $with_sysroot in #(
  no|'')
    ;; #(
  *)
-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
-printf "%s\n" "$with_sysroot" >&6; }
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
    as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
    ;;
 esac
 
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-printf "%s\n" "${lt_sysroot:-no}" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
 
 
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
-printf %s "checking for a working dd... " >&6; }
-if test ${ac_cv_path_lt_DD+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   printf 0123456789abcdef0123456789abcdef >conftest.i
 cat conftest.i conftest.i >conftest2.i
 : ${lt_DD:=$DD}
@@ -10053,15 +9225,10 @@ if test -z "$lt_DD"; then
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_prog in dd
-   do
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in dd; do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"
+      ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
       as_fn_executable_p "$ac_path_lt_DD" || continue
 if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
   cmp -s conftest.i conftest.out \
 
 rm -f conftest.i conftest2.i conftest.out
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
-printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
-printf %s "checking how to truncate binary pipes... " >&6; }
-if test ${lt_cv_truncate_bin+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   printf 0123456789abcdef0123456789abcdef >conftest.i
 cat conftest.i conftest.i >conftest2.i
 lt_cv_truncate_bin=
@@ -10101,8 +9267,8 @@ fi
 rm -f conftest.i conftest2.i conftest.out
 test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
-printf "%s\n" "$lt_cv_truncate_bin" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
 
 
 
@@ -10125,8 +9291,7 @@ func_cc_basename ()
 }
 
 # Check whether --enable-libtool-lock was given.
-if test ${enable_libtool_lock+y}
-then :
+if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
 fi
 
@@ -10142,7 +9307,7 @@ ia64-*-hpux*)
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
@@ -10162,7 +9327,7 @@ ia64-*-hpux*)
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     if test yes = "$lt_cv_prog_gnu_ld"; then
       case `/usr/bin/file conftest.$ac_objext` in
@@ -10200,7 +9365,7 @@ mips64*-*linux*)
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     emul=elf
     case `/usr/bin/file conftest.$ac_objext` in
@@ -10241,7 +9406,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
       *32-bit*)
@@ -10304,12 +9469,11 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   SAVE_CFLAGS=$CFLAGS
   CFLAGS="$CFLAGS -belf"
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-printf %s "checking whether the C compiler needs -belf... " >&6; }
-if test ${lt_cv_cc_needs_belf+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -10320,20 +9484,19 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_cc_needs_belf=yes
-else $as_nop
+else
   lt_cv_cc_needs_belf=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
      ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -10342,8 +9505,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
   if test yes != "$lt_cv_cc_needs_belf"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
     CFLAGS=$SAVE_CFLAGS
@@ -10356,7 +9519,7 @@ printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
@@ -10393,12 +9556,11 @@ need_locks=$enable_libtool_lock
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
 set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_MANIFEST_TOOL+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$MANIFEST_TOOL"; then
   ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
 else
@@ -10406,15 +9568,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
 if test -n "$MANIFEST_TOOL"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-printf "%s\n" "$MANIFEST_TOOL" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -10438,12 +9596,11 @@ if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
   ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
   # Extract the first word of "mt", so it can be a program name with args.
 set dummy mt; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_MANIFEST_TOOL"; then
   ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
 else
@@ -10451,15 +9608,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
 if test -n "$ac_ct_MANIFEST_TOOL"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_MANIFEST_TOOL" = x; then
@@ -10482,8 +9635,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
@@ -10493,12 +9646,11 @@ else
 fi
 
 test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if test ${lt_cv_path_mainfest_tool+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_path_mainfest_tool=no
   echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
   $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
@@ -10508,8 +9660,8 @@ else $as_nop
   fi
   rm -f conftest*
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
 if test yes != "$lt_cv_path_mainfest_tool"; then
   MANIFEST_TOOL=:
 fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_DSYMUTIL+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$DSYMUTIL"; then
   ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
 else
@@ -10537,15 +9688,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 DSYMUTIL=$ac_cv_prog_DSYMUTIL
 if test -n "$DSYMUTIL"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-printf "%s\n" "$DSYMUTIL" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -10569,12 +9716,11 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then
   ac_ct_DSYMUTIL=$DSYMUTIL
   # Extract the first word of "dsymutil", so it can be a program name with args.
 set dummy dsymutil; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_DSYMUTIL"; then
   ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
 else
@@ -10582,15 +9728,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
 if test -n "$ac_ct_DSYMUTIL"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_DSYMUTIL" = x; then
@@ -10613,8 +9755,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     DSYMUTIL=$ac_ct_DSYMUTIL
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_NMEDIT+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$NMEDIT"; then
   ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
 else
@@ -10639,15 +9780,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 NMEDIT=$ac_cv_prog_NMEDIT
 if test -n "$NMEDIT"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-printf "%s\n" "$NMEDIT" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -10671,12 +9808,11 @@ if test -z "$ac_cv_prog_NMEDIT"; then
   ac_ct_NMEDIT=$NMEDIT
   # Extract the first word of "nmedit", so it can be a program name with args.
 set dummy nmedit; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_NMEDIT+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_NMEDIT"; then
   ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
 else
@@ -10684,15 +9820,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
 if test -n "$ac_ct_NMEDIT"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-printf "%s\n" "$ac_ct_NMEDIT" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_NMEDIT" = x; then
@@ -10715,8 +9847,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     NMEDIT=$ac_ct_NMEDIT
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
 set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_LIPO+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$LIPO"; then
   ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
 else
@@ -10741,15 +9872,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 LIPO=$ac_cv_prog_LIPO
 if test -n "$LIPO"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-printf "%s\n" "$LIPO" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -10773,12 +9900,11 @@ if test -z "$ac_cv_prog_LIPO"; then
   ac_ct_LIPO=$LIPO
   # Extract the first word of "lipo", so it can be a program name with args.
 set dummy lipo; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_LIPO+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_LIPO"; then
   ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
 else
@@ -10786,15 +9912,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_LIPO="lipo"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
 if test -n "$ac_ct_LIPO"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-printf "%s\n" "$ac_ct_LIPO" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_LIPO" = x; then
@@ -10817,8 +9939,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     LIPO=$ac_ct_LIPO
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_OTOOL+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$OTOOL"; then
   ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
 else
@@ -10843,15 +9964,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 OTOOL=$ac_cv_prog_OTOOL
 if test -n "$OTOOL"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-printf "%s\n" "$OTOOL" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -10875,12 +9992,11 @@ if test -z "$ac_cv_prog_OTOOL"; then
   ac_ct_OTOOL=$OTOOL
   # Extract the first word of "otool", so it can be a program name with args.
 set dummy otool; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_OTOOL+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_OTOOL"; then
   ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
 else
@@ -10888,15 +10004,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OTOOL="otool"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
 if test -n "$ac_ct_OTOOL"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-printf "%s\n" "$ac_ct_OTOOL" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_OTOOL" = x; then
@@ -10919,8 +10031,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OTOOL=$ac_ct_OTOOL
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_OTOOL64+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$OTOOL64"; then
   ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
 else
@@ -10945,15 +10056,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 OTOOL64=$ac_cv_prog_OTOOL64
 if test -n "$OTOOL64"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-printf "%s\n" "$OTOOL64" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -10977,12 +10084,11 @@ if test -z "$ac_cv_prog_OTOOL64"; then
   ac_ct_OTOOL64=$OTOOL64
   # Extract the first word of "otool64", so it can be a program name with args.
 set dummy otool64; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_OTOOL64+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_OTOOL64"; then
   ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
 else
@@ -10990,15 +10096,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OTOOL64="otool64"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
 if test -n "$ac_ct_OTOOL64"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-printf "%s\n" "$ac_ct_OTOOL64" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_OTOOL64" = x; then
@@ -11021,8 +10123,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OTOOL64=$ac_ct_OTOOL64
 
 
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-printf %s "checking for -single_module linker flag... " >&6; }
-if test ${lt_cv_apple_cc_single_mod+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_apple_cc_single_mod=no
       if test -z "$LT_MULTI_MODULE"; then
        # By default we will add the -single_module flag. You can override
@@ -11091,15 +10192,14 @@ else $as_nop
        rm -f conftest.*
       fi
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-printf %s "checking for -exported_symbols_list linker flag... " >&6; }
-if test ${lt_cv_ld_exported_symbols_list+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_ld_exported_symbols_list=no
       save_LDFLAGS=$LDFLAGS
       echo "_main" > conftest.sym
@@ -11108,33 +10208,31 @@ else $as_nop
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_ld_exported_symbols_list=yes
-else $as_nop
+else
   lt_cv_ld_exported_symbols_list=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
        LDFLAGS=$save_LDFLAGS
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-printf %s "checking for -force_load linker flag... " >&6; }
-if test ${lt_cv_ld_force_load+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_ld_force_load=no
       cat > conftest.c << _LT_EOF
 int forced_loaded() { return 2;}
@@ -11162,8 +10260,8 @@ _LT_EOF
         rm -rf conftest.dSYM
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-printf "%s\n" "$lt_cv_ld_force_load" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
       _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
@@ -11234,14 +10332,19 @@ func_munge_path_list ()
     esac
 }
 
-ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+for ac_header in dlfcn.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_dlfcn_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
 
 fi
 
+done
+
 
 
 
@@ -11259,8 +10362,7 @@ fi
 
 
             # Check whether --enable-shared was given.
-if test ${enable_shared+y}
-then :
+if test "${enable_shared+set}" = set; then :
   enableval=$enable_shared; p=${PACKAGE-default}
     case $enableval in
     yes) enable_shared=yes ;;
@@ -11278,7 +10380,7 @@ then :
       IFS=$lt_save_ifs
       ;;
     esac
-else $as_nop
+else
   enable_shared=yes
 fi
 
@@ -11291,8 +10393,7 @@ fi
 
 
   # Check whether --enable-static was given.
-if test ${enable_static+y}
-then :
+if test "${enable_static+set}" = set; then :
   enableval=$enable_static; p=${PACKAGE-default}
     case $enableval in
     yes) enable_static=yes ;;
@@ -11310,7 +10411,7 @@ then :
       IFS=$lt_save_ifs
       ;;
     esac
-else $as_nop
+else
   enable_static=yes
 fi
 
@@ -11324,8 +10425,7 @@ fi
 
 
 # Check whether --with-pic was given.
-if test ${with_pic+y}
-then :
+if test "${with_pic+set}" = set; then :
   withval=$with_pic; lt_p=${PACKAGE-default}
     case $withval in
     yes|no) pic_mode=$withval ;;
@@ -11342,7 +10442,7 @@ then :
       IFS=$lt_save_ifs
       ;;
     esac
-else $as_nop
+else
   pic_mode=default
 fi
 
@@ -11354,8 +10454,7 @@ fi
 
 
   # Check whether --enable-fast-install was given.
-if test ${enable_fast_install+y}
-then :
+if test "${enable_fast_install+set}" = set; then :
   enableval=$enable_fast_install; p=${PACKAGE-default}
     case $enableval in
     yes) enable_fast_install=yes ;;
@@ -11373,7 +10472,7 @@ then :
       IFS=$lt_save_ifs
       ;;
     esac
-else $as_nop
+else
   enable_fast_install=yes
 fi
 
   shared_archive_member_spec=
 case $host,$enable_shared in
 power*-*-aix[5-9]*,yes)
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
-printf %s "checking which variant of shared library versioning to provide... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
 
 # Check whether --with-aix-soname was given.
-if test ${with_aix_soname+y}
-then :
+if test "${with_aix_soname+set}" = set; then :
   withval=$with_aix_soname; case $withval in
     aix|svr4|both)
       ;;
@@ -11401,19 +10499,18 @@ then :
       ;;
     esac
     lt_cv_with_aix_soname=$with_aix_soname
-else $as_nop
-  if test ${lt_cv_with_aix_soname+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+else
+  if ${lt_cv_with_aix_soname+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_with_aix_soname=aix
 fi
 
     with_aix_soname=$lt_cv_with_aix_soname
 fi
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
-printf "%s\n" "$with_aix_soname" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
   if test aix != "$with_aix_soname"; then
     # For the AIX way of multilib, we name the shared archive member
     # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
@@ -11495,12 +10592,11 @@ if test -n "${ZSH_VERSION+set}"; then
    setopt NO_GLOB_SUBST
 fi
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-printf %s "checking for objdir... " >&6; }
-if test ${lt_cv_objdir+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   rm -f .libs 2>/dev/null
 mkdir .libs 2>/dev/null
 if test -d .libs; then
@@ -11511,15 +10607,17 @@ else
 fi
 rmdir .libs 2>/dev/null
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-printf "%s\n" "$lt_cv_objdir" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
 objdir=$lt_cv_objdir
 
 
 
 
 
-printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
 
 
 
@@ -11565,12 +10663,11 @@ test -z "$MAGIC_CMD" && MAGIC_CMD=file
 case $deplibs_check_method in
 file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-printf %s "checking for ${ac_tool_prefix}file... " >&6; }
-if test ${lt_cv_path_MAGIC_CMD+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
   lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
 
 MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-printf "%s\n" "$MAGIC_CMD" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
 
 if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-printf %s "checking for file... " >&6; }
-if test ${lt_cv_path_MAGIC_CMD+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
   lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
 
 MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-printf "%s\n" "$MAGIC_CMD" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -11771,12 +10867,11 @@ if test yes = "$GCC"; then
     lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
   esac
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test ${lt_cv_prog_compiler_rtti_exceptions+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_prog_compiler_rtti_exceptions=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -11807,8 +10902,8 @@ else $as_nop
    $RM conftest*
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
     lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
@@ -12165,28 +11260,26 @@ case $host_os in
     ;;
 esac
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-printf %s "checking for $compiler option to produce PIC... " >&6; }
-if test ${lt_cv_prog_compiler_pic+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
 lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test ${lt_cv_prog_compiler_pic_works+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_prog_compiler_pic_works=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -12217,8 +11310,8 @@ else $as_nop
    $RM conftest*
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
 
 if test yes = "$lt_cv_prog_compiler_pic_works"; then
     case $lt_prog_compiler_pic in
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test ${lt_cv_prog_compiler_static_works+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_prog_compiler_static_works=no
    save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
@@ -12275,8 +11367,8 @@ else $as_nop
    LDFLAGS=$save_LDFLAGS
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
 
 if test yes = "$lt_cv_prog_compiler_static_works"; then
     :
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test ${lt_cv_prog_compiler_c_o+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_prog_compiler_c_o=no
    $RM -r conftest 2>/dev/null
    mkdir conftest
@@ -12338,20 +11429,19 @@ else $as_nop
    $RM conftest*
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test ${lt_cv_prog_compiler_c_o+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_prog_compiler_c_o=no
    $RM -r conftest 2>/dev/null
    mkdir conftest
@@ -12394,8 +11484,8 @@ else $as_nop
    $RM conftest*
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 
@@ -12403,19 +11493,19 @@ printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
 hard_links=nottested
 if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
   # do not overwrite the value of need_locks provided by the user
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-printf %s "checking if we can lock with hard links... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $RM conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-printf "%s\n" "$hard_links" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
   if test no = "$hard_links"; then
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
@@ -12427,8 +11517,8 @@ fi
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
   allow_undefined_flag=
@@ -12983,23 +12073,21 @@ _LT_EOF
         if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
-  if test ${lt_cv_aix_libpath_+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
   lt_aix_libpath_sed='
       /Import File Strings/,/^$/ {
@@ -13014,7 +12102,7 @@ then :
     lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
   fi
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath_"; then
     lt_cv_aix_libpath_=/usr/lib:/lib
         if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
-  if test ${lt_cv_aix_libpath_+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
   lt_aix_libpath_sed='
       /Import File Strings/,/^$/ {
@@ -13069,7 +12155,7 @@ then :
     lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
   fi
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath_"; then
     lt_cv_aix_libpath_=/usr/lib:/lib
 
          # Older versions of the 11.00 compiler do not understand -b yet
          # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-printf %s "checking if $CC understands -b... " >&6; }
-if test ${lt_cv_prog_compiler__b+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_prog_compiler__b=no
    save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS -b"
@@ -13349,8 +12434,8 @@ else $as_nop
    LDFLAGS=$save_LDFLAGS
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
 
 if test yes = "$lt_cv_prog_compiler__b"; then
     archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
        # This should be the same for all languages, so no per-tag cache variable.
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if test ${lt_cv_irix_exported_symbol+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   save_LDFLAGS=$LDFLAGS
           LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 int foo (void) { return 0; }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_irix_exported_symbol=yes
-else $as_nop
+else
   lt_cv_irix_exported_symbol=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
            LDFLAGS=$save_LDFLAGS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
        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
@@ -13693,8 +12776,8 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
     fi
   fi
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-printf "%s\n" "$ld_shlibs" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
 test no = "$ld_shlibs" && can_build_shared=no
 
 with_gnu_ld=$with_gnu_ld
@@ -13730,19 +12813,18 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-printf %s "checking whether -lc should be explicitly linked in... " >&6; }
-if test ${lt_cv_archive_cmds_need_lc+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   $RM conftest*
        echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } 2>conftest.err; then
          soname=conftest
          lib=conftest
@@ -13760,7 +12842,7 @@ else $as_nop
          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
          then
            lt_cv_archive_cmds_need_lc=no
@@ -13774,8 +12856,8 @@ else $as_nop
        $RM conftest*
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
       archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
       ;;
     esac
@@ -13934,8 +13016,8 @@ esac
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-printf %s "checking dynamic linker characteristics... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
 
 if test yes = "$GCC"; then
   case $host_os in
@@ -14496,10 +13578,9 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   shlibpath_overrides_runpath=no
 
   # Some binutils ld are patched to set DT_RUNPATH
-  if test ${lt_cv_shlibpath_overrides_runpath+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   lt_cv_shlibpath_overrides_runpath=no
     save_LDFLAGS=$LDFLAGS
     save_libdir=$libdir
@@ -14509,21 +13590,19 @@ else $as_nop
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null
-then :
+if ac_fn_c_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
   lt_cv_shlibpath_overrides_runpath=yes
 fi
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
     LDFLAGS=$save_LDFLAGS
     libdir=$save_libdir
@@ -14758,8 +13837,8 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-printf "%s\n" "$dynamic_linker" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
 test no = "$dynamic_linker" && can_build_shared=no
 
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
@@ -14880,8 +13959,8 @@ configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-printf %s "checking how to hardcode library paths into programs... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" ||
    test -n "$runpath_var" ||
@@ -14905,8 +13984,8 @@ else
   # directories.
   hardcode_action=unsupported
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-printf "%s\n" "$hardcode_action" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
 
 if test relink = "$hardcode_action" ||
    test yes = "$inherit_rpath"; then
@@ -14950,12 +14029,11 @@ else
 
   darwin*)
     # if libdl is installed we need to link against it
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-printf %s "checking for dlopen in -ldl... " >&6; }
-if test ${ac_cv_lib_dl_dlopen+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14964,31 +14042,32 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char dlopen ();
 int
-main (void)
+main ()
 {
 return dlopen ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
-else $as_nop
+else
   ac_cv_lib_dl_dlopen=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes
-then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else $as_nop
+else
 
     lt_cv_dlopen=dyld
     lt_cv_dlopen_libs=
 
   *)
     ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes
-then :
+if test "x$ac_cv_func_shl_load" = xyes; then :
   lt_cv_dlopen=shl_load
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-printf %s "checking for shl_load in -ldld... " >&6; }
-if test ${ac_cv_lib_dld_shl_load+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15026,42 +14103,41 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char shl_load ();
 int
-main (void)
+main ()
 {
 return shl_load ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dld_shl_load=yes
-else $as_nop
+else
   ac_cv_lib_dld_shl_load=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes
-then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
   lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
-else $as_nop
+else
   ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes
-then :
+if test "x$ac_cv_func_dlopen" = xyes; then :
   lt_cv_dlopen=dlopen
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-printf %s "checking for dlopen in -ldl... " >&6; }
-if test ${ac_cv_lib_dl_dlopen+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15070,37 +14146,37 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char dlopen ();
 int
-main (void)
+main ()
 {
 return dlopen ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
-else $as_nop
+else
   ac_cv_lib_dl_dlopen=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes
-then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-printf %s "checking for dlopen in -lsvld... " >&6; }
-if test ${ac_cv_lib_svld_dlopen+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsvld  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15109,37 +14185,37 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char dlopen ();
 int
-main (void)
+main ()
 {
 return dlopen ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_svld_dlopen=yes
-else $as_nop
+else
   ac_cv_lib_svld_dlopen=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes
-then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
   lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-printf %s "checking for dld_link in -ldld... " >&6; }
-if test ${ac_cv_lib_dld_dld_link+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15148,29 +14224,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char dld_link ();
 int
-main (void)
+main ()
 {
 return dld_link ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dld_dld_link=yes
-else $as_nop
+else
   ac_cv_lib_dld_dld_link=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes
-then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
   lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
 fi
 
     save_LIBS=$LIBS
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-printf %s "checking whether a program can dlopen itself... " >&6; }
-if test ${lt_cv_dlopen_self+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
          if test yes = "$cross_compiling"; then :
   lt_cv_dlopen_self=cross
 else
@@ -15293,7 +14369,7 @@ _LT_EOF
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
@@ -15311,17 +14387,16 @@ rm -fr conftest*
 
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-printf "%s\n" "$lt_cv_dlopen_self" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
 
     if test yes = "$lt_cv_dlopen_self"; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
-if test ${lt_cv_dlopen_self_static+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
          if test yes = "$cross_compiling"; then :
   lt_cv_dlopen_self_static=cross
 else
@@ -15400,7 +14475,7 @@ _LT_EOF
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
@@ -15418,8 +14493,8 @@ rm -fr conftest*
 
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
     fi
 
     CPPFLAGS=$save_CPPFLAGS
 
 striplib=
 old_striplib=
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-printf %s "checking whether stripping libraries is possible... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
 if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 else
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
@@ -15471,16 +14546,16 @@ else
     if test -n "$STRIP"; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
     else
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
     fi
     ;;
   *)
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
     ;;
   esac
 fi
 
 
   # Report what library types will actually be built
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-printf %s "checking if libtool supports shared libraries... " >&6; }
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-printf "%s\n" "$can_build_shared" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-printf %s "checking whether to build shared libraries... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
   test no = "$can_build_shared" && enable_shared=no
 
   # On AIX, shared libraries and static libraries use the same namespace, and
@@ -15527,15 +14602,15 @@ printf %s "checking whether to build shared libraries... " >&6; }
     fi
     ;;
   esac
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-printf "%s\n" "$enable_shared" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-printf %s "checking whether to build static libraries... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
   # Make sure either enable_shared or enable_static is yes.
   test yes = "$enable_shared" || enable_static=yes
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-printf "%s\n" "$enable_static" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
 
 
 
@@ -15586,12 +14661,11 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
        if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_PKG_CONFIG+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
@@ -15601,15 +14675,11 @@ else $as_nop
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -15621,11 +14691,11 @@ esac
 fi
 PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 if test -n "$PKG_CONFIG"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-printf "%s\n" "$PKG_CONFIG" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -15634,12 +14704,11 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
   ac_pt_PKG_CONFIG=$PKG_CONFIG
   # Extract the first word of "pkg-config", so it can be a program name with args.
 set dummy pkg-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $ac_pt_PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
@@ -15649,15 +14718,11 @@ else $as_nop
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -15669,11 +14734,11 @@ esac
 fi
 ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
 if test -n "$ac_pt_PKG_CONFIG"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_pt_PKG_CONFIG" = x; then
@@ -15681,8 +14746,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     PKG_CONFIG=$ac_pt_PKG_CONFIG
 fi
 if test -n "$PKG_CONFIG"; then
        _pkg_min_version=0.9.0
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
        if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
        else
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
                PKG_CONFIG=""
        fi
 fi
 fi
 
 # Checks for header files.
-ac_fn_c_check_header_compile "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_stdarg_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_STDARG_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_stdbool_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_netinet_in_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "netinet/tcp.h" "ac_cv_header_netinet_tcp_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_netinet_tcp_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_NETINET_TCP_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_param_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_select_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_socket_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/un.h" "ac_cv_header_sys_un_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_un_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_UN_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/uio.h" "ac_cv_header_sys_uio_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_uio_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_UIO_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_resource_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_RESOURCE_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_arpa_inet_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_ARPA_INET_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "syslog.h" "ac_cv_header_syslog_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_syslog_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYSLOG_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_netdb_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_wait_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "pwd.h" "ac_cv_header_pwd_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_pwd_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_PWD_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_glob_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_GLOB_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "grp.h" "ac_cv_header_grp_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_grp_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_GRP_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "login_cap.h" "ac_cv_header_login_cap_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_login_cap_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_LOGIN_CAP_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_winsock2_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_ws2tcpip_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "endian.h" "ac_cv_header_endian_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_endian_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_ENDIAN_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/endian.h" "ac_cv_header_sys_endian_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_endian_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_ENDIAN_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "libkern/OSByteOrder.h" "ac_cv_header_libkern_OSByteOrder_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_libkern_OSByteOrder_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_LIBKERN_OSBYTEORDER_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/ipc.h" "ac_cv_header_sys_ipc_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_ipc_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_IPC_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/shm.h" "ac_cv_header_sys_shm_h" "$ac_includes_default
+for ac_header in stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/select.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h sys/endian.h libkern/OSByteOrder.h sys/ipc.h sys/shm.h ifaddrs.h poll.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 "
-if test "x$ac_cv_header_sys_shm_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_SHM_H 1" >>confdefs.h
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
 fi
-ac_fn_c_check_header_compile "$LINENO" "ifaddrs.h" "ac_cv_header_ifaddrs_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_ifaddrs_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_IFADDRS_H 1" >>confdefs.h
 
-fi
+done
 
 # net/if.h portability for Darwin see:
 # https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Header-Portability.html
-ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "
+for ac_header in net/if.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "
 #include <stdio.h>
 #ifdef STDC_HEADERS
 # include <stdlib.h>
@@ -15908,23 +14806,33 @@ ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "
 #endif
 
 "
-if test "x$ac_cv_header_net_if_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h
+if test "x$ac_cv_header_net_if_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NET_IF_H 1
+_ACEOF
 
 fi
 
+done
+
 
 # Check for Apple header. This uncovers TARGET_OS_IPHONE, TARGET_OS_TV or TARGET_OS_WATCH
-ac_fn_c_check_header_compile "$LINENO" "TargetConditionals.h" "ac_cv_header_TargetConditionals_h" "$ac_includes_default
+for ac_header in TargetConditionals.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "TargetConditionals.h" "ac_cv_header_TargetConditionals_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_TargetConditionals_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_TARGETCONDITIONALS_H 1" >>confdefs.h
+if test "x$ac_cv_header_TargetConditionals_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TARGETCONDITIONALS_H 1
+_ACEOF
 
 fi
 
-ac_fn_c_check_header_compile "$LINENO" "netioapi.h" "ac_cv_header_netioapi_h" "$ac_includes_default
+done
+
+for ac_header in netioapi.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "netioapi.h" "ac_cv_header_netioapi_h" "$ac_includes_default
 #if HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #endif
@@ -15958,324 +14866,177 @@ ac_fn_c_check_header_compile "$LINENO" "netioapi.h" "ac_cv_header_netioapi_h" "$
 #endif
 
 "
-if test "x$ac_cv_header_netioapi_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_NETIOAPI_H 1" >>confdefs.h
+if test "x$ac_cv_header_netioapi_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NETIOAPI_H 1
+_ACEOF
 
 fi
 
+done
+
 
 # check for types.
 # Using own tests for int64* because autoconf builtin only give 32bit.
 ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default"
-if test "x$ac_cv_type_int8_t" = xyes
-then :
+if test "x$ac_cv_type_int8_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define int8_t signed char" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define int8_t signed char
+_ACEOF
 
 fi
 
 ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
-if test "x$ac_cv_type_int16_t" = xyes
-then :
+if test "x$ac_cv_type_int16_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define int16_t short" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define int16_t short
+_ACEOF
 
 fi
 
 ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
-if test "x$ac_cv_type_int32_t" = xyes
-then :
+if test "x$ac_cv_type_int32_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define int32_t int" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define int32_t int
+_ACEOF
 
 fi
 
 ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default"
-if test "x$ac_cv_type_int64_t" = xyes
-then :
+if test "x$ac_cv_type_int64_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define int64_t long long" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define int64_t long long
+_ACEOF
 
 fi
 
 ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint8_t" = xyes
-then :
+if test "x$ac_cv_type_uint8_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define uint8_t unsigned char" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define uint8_t unsigned char
+_ACEOF
 
 fi
 
 ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint16_t" = xyes
-then :
+if test "x$ac_cv_type_uint16_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define uint16_t unsigned short" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define uint16_t unsigned short
+_ACEOF
 
 fi
 
 ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint32_t" = xyes
-then :
+if test "x$ac_cv_type_uint32_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define uint32_t unsigned int" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define uint32_t unsigned int
+_ACEOF
 
 fi
 
 ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint64_t" = xyes
-then :
+if test "x$ac_cv_type_uint64_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define uint64_t unsigned long long" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define uint64_t unsigned long long
+_ACEOF
 
 fi
 
 ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define size_t unsigned int" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
-if test "x$ac_cv_type_ssize_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define ssize_t int" >>confdefs.h
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-printf %s "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test ${ac_cv_prog_CPP+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-      # Double quotes because $CC needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-                    Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
+if test "x$ac_cv_type_size_t" = xyes; then :
 
-else $as_nop
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+else
 
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
-  # Broken: success on invalid input.
-continue
-else $as_nop
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
 
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok
-then :
-  break
 fi
 
-    done
-    ac_cv_prog_CPP=$CPP
+ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
+if test "x$ac_cv_type_ssize_t" = xyes; then :
 
-fi
-  CPP=$ac_cv_prog_CPP
 else
-  ac_cv_prog_CPP=$CPP
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-printf "%s\n" "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-                    Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
-
-else $as_nop
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
+cat >>confdefs.h <<_ACEOF
+#define ssize_t int
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
-  # Broken: success on invalid input.
-continue
-else $as_nop
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok
-then :
 
-else $as_nop
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
 fi
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
-printf %s "checking for uid_t in sys/types.h... " >&6; }
-if test ${ac_cv_type_uid_t+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
+if ${ac_cv_type_uid_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "uid_t" >/dev/null 2>&1
-then :
+  $EGREP "uid_t" >/dev/null 2>&1; then :
   ac_cv_type_uid_t=yes
-else $as_nop
+else
   ac_cv_type_uid_t=no
 fi
-rm -rf conftest*
+rm -f conftest*
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
-printf "%s\n" "$ac_cv_type_uid_t" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
+$as_echo "$ac_cv_type_uid_t" >&6; }
 if test $ac_cv_type_uid_t = no; then
 
-printf "%s\n" "#define uid_t int" >>confdefs.h
+$as_echo "#define uid_t int" >>confdefs.h
 
 
-printf "%s\n" "#define gid_t int" >>confdefs.h
+$as_echo "#define gid_t int" >>confdefs.h
 
 fi
 
+ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
+if test "x$ac_cv_type_pid_t" = xyes; then :
 
-  ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default
-"
-if test "x$ac_cv_type_pid_t" = xyes
-then :
-
-else $as_nop
-                                          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-          #if defined _WIN64 && !defined __CYGWIN__
-          LLP64
-          #endif
-
-int
-main (void)
-{
-
-  ;
-  return 0;
-}
+else
 
+cat >>confdefs.h <<_ACEOF
+#define pid_t int
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_pid_type='int'
-else $as_nop
-  ac_pid_type='__int64'
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
-
 
 fi
 
-
 ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
-if test "x$ac_cv_type_off_t" = xyes
-then :
+if test "x$ac_cv_type_off_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define off_t long int" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define off_t long int
+_ACEOF
 
 fi
 
@@ -16286,12 +15047,11 @@ $ac_includes_default
 #endif
 
 "
-if test "x$ac_cv_type_u_char" = xyes
-then :
+if test "x$ac_cv_type_u_char" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define u_char unsigned char" >>confdefs.h
+$as_echo "#define u_char unsigned char" >>confdefs.h
 
 fi
 
@@ -16302,12 +15062,11 @@ $ac_includes_default
 #endif
 
 "
-if test "x$ac_cv_type_rlim_t" = xyes
-then :
+if test "x$ac_cv_type_rlim_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define rlim_t unsigned long" >>confdefs.h
+$as_echo "#define rlim_t unsigned long" >>confdefs.h
 
 fi
 
@@ -16322,12 +15081,11 @@ $ac_includes_default
 #endif
 
 "
-if test "x$ac_cv_type_socklen_t" = xyes
-then :
+if test "x$ac_cv_type_socklen_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define socklen_t int" >>confdefs.h
+$as_echo "#define socklen_t int" >>confdefs.h
 
 fi
 
@@ -16341,12 +15099,11 @@ $ac_includes_default
 #endif
 
 "
-if test "x$ac_cv_type_in_addr_t" = xyes
-then :
+if test "x$ac_cv_type_in_addr_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define in_addr_t uint32_t" >>confdefs.h
+$as_echo "#define in_addr_t uint32_t" >>confdefs.h
 
 fi
 
@@ -16360,23 +15117,21 @@ $ac_includes_default
 #endif
 
 "
-if test "x$ac_cv_type_in_port_t" = xyes
-then :
+if test "x$ac_cv_type_in_port_t" = xyes; then :
 
-else $as_nop
+else
 
-printf "%s\n" "#define in_port_t uint16_t" >>confdefs.h
+$as_echo "#define in_port_t uint16_t" >>confdefs.h
 
 fi
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if memcmp compares unsigned" >&5
-printf %s "checking if memcmp compares unsigned... " >&6; }
-if test "$cross_compiling" = yes
-then :
-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cross-compile no" >&5
-printf "%s\n" "cross-compile no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if memcmp compares unsigned" >&5
+$as_echo_n "checking if memcmp compares unsigned... " >&6; }
+if test "$cross_compiling" = yes; then :
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: cross-compile no" >&5
+$as_echo "cross-compile no" >&6; }
 
-printf "%s\n" "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
+$as_echo "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
 
   case " $LIBOBJS " in
   *" memcmp.$ac_objext "* ) ;;
@@ -16385,7 +15140,7 @@ printf "%s\n" "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
 esac
 
 
-else $as_nop
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -16401,15 +15156,14 @@ int main(void)
 }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-else $as_nop
-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+if ac_fn_c_try_run "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
-printf "%s\n" "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
+$as_echo "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
 
   case " $LIBOBJS " in
   *" memcmp.$ac_objext "* ) ;;
 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
 # This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
-printf %s "checking size of time_t... " >&6; }
-if test ${ac_cv_sizeof_time_t+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
+$as_echo_n "checking size of time_t... " >&6; }
+if ${ac_cv_sizeof_time_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t"        "
 $ac_includes_default
 #ifdef TIME_WITH_SYS_TIME
@@ -16447,13 +15200,12 @@ $ac_includes_default
 # endif
 #endif
 
-"
-then :
+"; then :
 
-else $as_nop
+else
   if test "$ac_cv_type_time_t" = yes; then
-     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (time_t)
 See \`config.log' for more details" "$LINENO" 5; }
    else
@@ -16462,31 +15214,31 @@ See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
-printf "%s\n" "$ac_cv_sizeof_time_t" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
+$as_echo "$ac_cv_sizeof_time_t" >&6; }
 
 
 
-printf "%s\n" "#define SIZEOF_TIME_T $ac_cv_sizeof_time_t" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_TIME_T $ac_cv_sizeof_time_t
+_ACEOF
 
 
 # The cast to long int works around a bug in the HP C Compiler
 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
 # This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
-printf %s "checking size of size_t... " >&6; }
-if test ${ac_cv_sizeof_size_t+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t"        "$ac_includes_default"
-then :
-
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
+$as_echo_n "checking size of size_t... " >&6; }
+if ${ac_cv_sizeof_size_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t"        "$ac_includes_default"; then :
+
+else
   if test "$ac_cv_type_size_t" = yes; then
-     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (size_t)
 See \`config.log' for more details" "$LINENO" 5; }
    else
@@ -16495,22 +15247,23 @@ See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
-printf "%s\n" "$ac_cv_sizeof_size_t" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
+$as_echo "$ac_cv_sizeof_size_t" >&6; }
 
 
 
-printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
+_ACEOF
 
 
 
 # add option to disable the evil rpath
 
 # Check whether --enable-rpath was given.
-if test ${enable_rpath+y}
-then :
+if test "${enable_rpath+set}" = set; then :
   enableval=$enable_rpath; enable_rpath=$enableval
-else $as_nop
+else
   enable_rpath=yes
 fi
 
 
 
 # check to see if libraries are needed for these functions.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
-printf %s "checking for library containing inet_pton... " >&6; }
-if test ${ac_cv_search_inet_pton+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
+$as_echo_n "checking for library containing inet_pton... " >&6; }
+if ${ac_cv_search_inet_pton+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -16535,58 +15287,55 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char inet_pton ();
 int
-main (void)
+main ()
 {
 return inet_pton ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' nsl
-do
+for ac_lib in '' nsl; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_inet_pton=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_inet_pton+y}
-then :
+  if ${ac_cv_search_inet_pton+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_inet_pton+y}
-then :
+if ${ac_cv_search_inet_pton+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_inet_pton=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
-printf "%s\n" "$ac_cv_search_inet_pton" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
+$as_echo "$ac_cv_search_inet_pton" >&6; }
 ac_res=$ac_cv_search_inet_pton
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
-printf %s "checking for library containing socket... " >&6; }
-if test ${ac_cv_search_socket+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
+$as_echo_n "checking for library containing socket... " >&6; }
+if ${ac_cv_search_socket+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -16594,48 +15343,46 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char socket ();
 int
-main (void)
+main ()
 {
 return socket ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' socket
-do
+for ac_lib in '' socket; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_socket=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_socket+y}
-then :
+  if ${ac_cv_search_socket+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_socket+y}
-then :
+if ${ac_cv_search_socket+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_socket=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
-printf "%s\n" "$ac_cv_search_socket" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
+$as_echo "$ac_cv_search_socket" >&6; }
 ac_res=$ac_cv_search_socket
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 # check whether strptime also works
 
 # check some functions of the OS before linking libs (while still runnable).
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5
-printf %s "checking for working chown... " >&6; }
-if test ${ac_cv_func_chown_works+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
-then :
-  case "$host_os" in # ((
-                         # Guess yes on glibc systems.
-                 *-gnu*) ac_cv_func_chown_works=yes ;;
-                         # If we don't know, assume the worst.
-                 *)      ac_cv_func_chown_works=no ;;
-               esac
-else $as_nop
+for ac_header in unistd.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_UNISTD_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5
+$as_echo_n "checking for working chown... " >&6; }
+if ${ac_cv_func_chown_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  ac_cv_func_chown_works=no
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 #include <fcntl.h>
 
 int
-main (void)
+main ()
 {
   char *f = "conftest.chown";
   struct stat before, after;
@@ -16684,10 +15436,9 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
+if ac_fn_c_try_run "$LINENO"; then :
   ac_cv_func_chown_works=yes
-else $as_nop
+else
   ac_cv_func_chown_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 rm -f conftest.chown
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5
-printf "%s\n" "$ac_cv_func_chown_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5
+$as_echo "$ac_cv_func_chown_works" >&6; }
 if test $ac_cv_func_chown_works = yes; then
 
-printf "%s\n" "#define HAVE_CHOWN 1" >>confdefs.h
+$as_echo "#define HAVE_CHOWN 1" >>confdefs.h
 
 fi
 
+for ac_header in vfork.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default"
+if test "x$ac_cv_header_vfork_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_VFORK_H 1
+_ACEOF
+
+fi
 
-ac_func=
-for ac_item in $ac_func_c_list
-do
-  if test $ac_func; then
-    ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func
-    if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then
-      echo "#define $ac_item 1" >> confdefs.h
-    fi
-    ac_func=
-  else
-    ac_func=$ac_item
-  fi
 done
 
+for ac_func in fork vfork
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
+fi
+done
 
 if test "x$ac_cv_func_fork" = xyes; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
-printf %s "checking for working fork... " >&6; }
-if test ${ac_cv_func_fork_works+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
-then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
+$as_echo_n "checking for working fork... " >&6; }
+if ${ac_cv_func_fork_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
   ac_cv_func_fork_works=cross
-else $as_nop
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
-main (void)
+main ()
 {
 
          /* By Ruediger Kuhlmann. */
@@ -16747,10 +15503,9 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
+if ac_fn_c_try_run "$LINENO"; then :
   ac_cv_func_fork_works=yes
-else $as_nop
+else
   ac_cv_func_fork_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -16758,8 +15513,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 fi
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
-printf "%s\n" "$ac_cv_func_fork_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
+$as_echo "$ac_cv_func_fork_works" >&6; }
 
 else
   ac_cv_func_fork_works=$ac_cv_func_fork
@@ -16774,37 +15529,27 @@ if test "x$ac_cv_func_fork_works" = xcross; then
       ac_cv_func_fork_works=yes
       ;;
   esac
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
-printf "%s\n" "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
+$as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
 fi
 ac_cv_func_vfork_works=$ac_cv_func_vfork
 if test "x$ac_cv_func_vfork" = xyes; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
-printf %s "checking for working vfork... " >&6; }
-if test ${ac_cv_func_vfork_works+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
-then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
+$as_echo_n "checking for working vfork... " >&6; }
+if ${ac_cv_func_vfork_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
   ac_cv_func_vfork_works=cross
-else $as_nop
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Thanks to Paul Eggert for this test.  */
 $ac_includes_default
-#include <signal.h>
 #include <sys/wait.h>
 #ifdef HAVE_VFORK_H
 # include <vfork.h>
 #endif
-
-static void
-do_nothing (int sig)
-{
-  (void) sig;
-}
-
 /* On some sparc systems, changes by the child to local and incoming
    argument registers are propagated back to the parent.  The compiler
    is told about this with #include <vfork.h>, but some compilers
@@ -16812,7 +15557,11 @@ do_nothing (int sig)
    static variable whose address is put into a register that is
    clobbered by the vfork.  */
 static void
+#ifdef __cplusplus
 sparc_address_test (int arg)
+# else
+sparc_address_test (arg) int arg;
+#endif
 {
   static pid_t child;
   if (!child) {
@@ -16830,18 +15579,13 @@ sparc_address_test (int arg)
 }
 
 int
-main (void)
+main ()
 {
   pid_t parent = getpid ();
   pid_t child;
 
   sparc_address_test (0);
 
-  /* On Solaris 2.4, changes by the child to the signal handler
-     also munge signal handlers in the parent.  To detect this,
-     start by putting the parent's handler in a known state.  */
-  signal (SIGTERM, SIG_DFL);
-
   child = vfork ();
 
   if (child == 0) {
@@ -16863,10 +15607,6 @@ main (void)
        || p != p5 || p != p6 || p != p7)
       _exit(1);
 
-    /* Alter the child's signal handler.  */
-    if (signal (SIGTERM, do_nothing) != SIG_DFL)
-      _exit(1);
-
     /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
        from child file descriptors.  If the child closes a descriptor
        before it execs or exits, this munges the parent's descriptor
@@ -16882,9 +15622,6 @@ main (void)
         /* Was there some problem with vforking?  */
         child < 0
 
-        /* Did the child munge the parent's signal handler?  */
-        || signal (SIGTERM, SIG_DFL) != SIG_DFL
-
         /* Did the child fail?  (This shouldn't happen.)  */
         || status
 
@@ -16897,10 +15634,9 @@ main (void)
   }
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
+if ac_fn_c_try_run "$LINENO"; then :
   ac_cv_func_vfork_works=yes
-else $as_nop
+else
   ac_cv_func_vfork_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -16908,47 +15644,46 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 fi
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
-printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
+$as_echo "$ac_cv_func_vfork_works" >&6; }
 
 fi;
 if test "x$ac_cv_func_fork_works" = xcross; then
   ac_cv_func_vfork_works=$ac_cv_func_vfork
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
-printf "%s\n" "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
+$as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
 fi
 
 if test "x$ac_cv_func_vfork_works" = xyes; then
 
-printf "%s\n" "#define HAVE_WORKING_VFORK 1" >>confdefs.h
+$as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h
 
 else
 
-printf "%s\n" "#define vfork fork" >>confdefs.h
+$as_echo "#define vfork fork" >>confdefs.h
 
 fi
 if test "x$ac_cv_func_fork_works" = xyes; then
 
-printf "%s\n" "#define HAVE_WORKING_FORK 1" >>confdefs.h
+$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h
 
 fi
 
 
-printf "%s\n" "#define RETSIGTYPE void" >>confdefs.h
+$as_echo "#define RETSIGTYPE void" >>confdefs.h
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-printf %s "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if test ${ac_cv_sys_largefile_source+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_source+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   while :; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h> /* for off_t */
      #include <stdio.h>
 int
-main (void)
+main ()
 {
 int (*fp) (FILE *, off_t, int) = fseeko;
      return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
@@ -16956,11 +15691,10 @@ int (*fp) (FILE *, off_t, int) = fseeko;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_sys_largefile_source=no; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -16968,7 +15702,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
 #include <sys/types.h> /* for off_t */
      #include <stdio.h>
 int
-main (void)
+main ()
 {
 int (*fp) (FILE *, off_t, int) = fseeko;
      return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
@@ -16976,22 +15710,23 @@ int (*fp) (FILE *, off_t, int) = fseeko;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_sys_largefile_source=1; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
   ac_cv_sys_largefile_source=unknown
   break
 done
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
-printf "%s\n" "$ac_cv_sys_largefile_source" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
+$as_echo "$ac_cv_sys_largefile_source" >&6; }
 case $ac_cv_sys_largefile_source in #(
   no | unknown) ;;
   *)
-printf "%s\n" "#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
+_ACEOF
 ;;
 esac
 rm -rf conftest*
@@ -17001,25 +15736,23 @@ rm -rf conftest*
 # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
 if test $ac_cv_sys_largefile_source != unknown; then
 
-printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h
+$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
 
 fi
 
 
 # Check whether --enable-largefile was given.
-if test ${enable_largefile+y}
-then :
+if test "${enable_largefile+set}" = set; then :
   enableval=$enable_largefile;
 fi
 
 if test "$enable_largefile" != no; then
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-printf %s "checking for special C compiler options needed for large files... " >&6; }
-if test ${ac_cv_sys_largefile_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_cv_sys_largefile_CC=no
      if test "$GCC" != yes; then
        ac_save_CC=$CC
@@ -17033,47 +15766,44 @@ else $as_nop
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-        if ac_fn_c_try_compile "$LINENO"
-then :
+        if ac_fn_c_try_compile "$LINENO"; then :
   break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
+rm -f core conftest.err conftest.$ac_objext
         CC="$CC -n32"
-        if ac_fn_c_try_compile "$LINENO"
-then :
+        if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_largefile_CC=' -n32'; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
+rm -f core conftest.err conftest.$ac_objext
         break
        done
        CC=$ac_save_CC
        rm -f conftest.$ac_ext
     fi
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
   if test "$ac_cv_sys_largefile_CC" != no; then
     CC=$CC$ac_cv_sys_largefile_CC
   fi
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test ${ac_cv_sys_file_offset_bits+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if ${ac_cv_sys_file_offset_bits+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   while :; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -17082,23 +15812,22 @@ else $as_nop
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_file_offset_bits=no; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #define _FILE_OFFSET_BITS 64
@@ -17107,43 +15836,43 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_file_offset_bits=64; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   ac_cv_sys_file_offset_bits=unknown
   break
 done
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
 case $ac_cv_sys_file_offset_bits in #(
   no | unknown) ;;
   *)
-printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
 ;;
 esac
 rm -rf conftest*
   if test $ac_cv_sys_file_offset_bits = unknown; then
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test ${ac_cv_sys_large_files+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if ${ac_cv_sys_large_files+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   while :; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -17152,23 +15881,22 @@ else $as_nop
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_large_files=no; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #define _LARGE_FILES 1
@@ -17177,49 +15905,51 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
 int
-main (void)
+main ()
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_large_files=1; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   ac_cv_sys_large_files=unknown
   break
 done
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-printf "%s\n" "$ac_cv_sys_large_files" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
 case $ac_cv_sys_large_files in #(
   no | unknown) ;;
   *)
-printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
 ;;
 esac
 rm -rf conftest*
   fi
+
+
 fi
 
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_LARGEFILE_SOURCE=1 as a flag for $CC" >&5
-printf %s "checking whether we need -D_LARGEFILE_SOURCE=1 as a flag for $CC... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_LARGEFILE_SOURCE=1 as a flag for $CC" >&5
+$as_echo_n "checking whether we need -D_LARGEFILE_SOURCE=1 as a flag for $CC... " >&6; }
 cache=_D_LARGEFILE_SOURCE_1
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo '
 #include <stdio.h>
@@ -17250,14 +15980,14 @@ rm -f conftest conftest.c conftest.o
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE=1"
 else
 if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 #echo 'Test with flag is no!'
 #cat conftest.c
 #echo "$CC $CPPFLAGS $CFLAGS -D_LARGEFILE_SOURCE=1 $ERRFLAG -c conftest.c 2>&1"
@@ -17266,8 +15996,8 @@ printf "%s\n" "no" >&6; }
 :
 
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
 :
 
 fi
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if nonblocking sockets work" >&5
-printf %s "checking if nonblocking sockets work... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if nonblocking sockets work" >&5
+$as_echo_n "checking if nonblocking sockets work... " >&6; }
 if echo $host | grep mingw >/dev/null; then
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no (windows)" >&5
-printf "%s\n" "no (windows)" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (windows)" >&5
+$as_echo "no (windows)" >&6; }
 
-printf "%s\n" "#define NONBLOCKING_IS_BROKEN 1" >>confdefs.h
+$as_echo "#define NONBLOCKING_IS_BROKEN 1" >>confdefs.h
 
 else
-if test "$cross_compiling" = yes
-then :
+if test "$cross_compiling" = yes; then :
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: crosscompile(yes)" >&5
-printf "%s\n" "crosscompile(yes)" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: crosscompile(yes)" >&5
+$as_echo "crosscompile(yes)" >&6; }
 
-else $as_nop
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -17303,6 +16032,9 @@ else $as_nop
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
@@ -17417,18 +16149,17 @@ int main(void)
 }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
+if ac_fn_c_try_run "$LINENO"; then :
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-else $as_nop
+else
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
-printf "%s\n" "#define NONBLOCKING_IS_BROKEN 1" >>confdefs.h
+$as_echo "#define NONBLOCKING_IS_BROKEN 1" >>confdefs.h
 
 
 fi
@@ -17439,8 +16170,8 @@ fi
 fi
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mkdir has one arg" >&5
-printf %s "checking whether mkdir has one arg... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir has one arg" >&5
+$as_echo_n "checking whether mkdir has one arg... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -17454,7 +16185,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 #endif
 
 int
-main (void)
+main ()
 {
 
        (void)mkdir("directory");
@@ -17463,39 +16194,37 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+if ac_fn_c_try_compile "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-printf "%s\n" "#define MKDIR_HAS_ONE_ARG 1" >>confdefs.h
+$as_echo "#define MKDIR_HAS_ONE_ARG 1" >>confdefs.h
 
 
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-
-  for ac_func in strptime
+for ac_func in strptime
 do :
   ac_fn_c_check_func "$LINENO" "strptime" "ac_cv_func_strptime"
-if test "x$ac_cv_func_strptime" = xyes
-then :
-  printf "%s\n" "#define HAVE_STRPTIME 1" >>confdefs.h
+if test "x$ac_cv_func_strptime" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STRPTIME 1
+_ACEOF
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strptime works" >&5
-printf %s "checking whether strptime works... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strptime works" >&5
+$as_echo_n "checking whether strptime works... " >&6; }
 if test c${cross_compiling} = cno; then
-if test "$cross_compiling" = yes
-then :
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run test program while cross compiling
 See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -17508,10 +16237,9 @@ res = strptime("20070207111842", "%Y%m%d%H%M%S", &tm);
 if (!res) return 1; return 0; }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
+if ac_fn_c_try_run "$LINENO"; then :
   eval "ac_cv_c_strptime_works=yes"
-else $as_nop
+else
   eval "ac_cv_c_strptime_works=no"
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -17521,8 +16249,8 @@ fi
 else
 eval "ac_cv_c_strptime_works=maybe"
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_strptime_works" >&5
-printf "%s\n" "$ac_cv_c_strptime_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_strptime_works" >&5
+$as_echo "$ac_cv_c_strptime_works" >&6; }
 if test $ac_cv_c_strptime_works = no; then
 case " $LIBOBJS " in
   *" strptime.$ac_objext "* ) ;;
@@ -17532,11 +16260,13 @@ esac
 
 else
 
-printf "%s\n" "#define STRPTIME_WORKS 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define STRPTIME_WORKS 1
+_ACEOF
 
 fi
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" strptime.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS strptime.$ac_objext"
@@ -17544,21 +16274,21 @@ else $as_nop
 esac
 
 fi
-
 done
 
 
+
 # check if we can use SO_REUSEPORT
 reuseport_default=0
 if echo "$host" | $GREP -i -e linux >/dev/null; then reuseport_default=1; fi
 if echo "$host" | $GREP -i -e dragonfly >/dev/null; then reuseport_default=1; fi
 if test "$reuseport_default" = 1; then
 
-printf "%s\n" "#define REUSEPORT_DEFAULT 1" >>confdefs.h
+$as_echo "#define REUSEPORT_DEFAULT 1" >>confdefs.h
 
 else
 
-printf "%s\n" "#define REUSEPORT_DEFAULT 0" >>confdefs.h
+$as_echo "#define REUSEPORT_DEFAULT 0" >>confdefs.h
 
 fi
 
 #   Copyright 2015, Sami Kerola, CloudFlare.
 #   BSD licensed.
 # Check whether --enable-systemd was given.
-if test ${enable_systemd+y}
-then :
+if test "${enable_systemd+set}" = set; then :
   enableval=$enable_systemd;
-else $as_nop
+else
   enable_systemd=no
 fi
 
 have_systemd=no
-if test "x$enable_systemd" != xno
-then :
+if test "x$enable_systemd" != xno; then :
 
 
 
 pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD" >&5
-printf %s "checking for SYSTEMD... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD" >&5
+$as_echo_n "checking for SYSTEMD... " >&6; }
 
 if test -n "$SYSTEMD_CFLAGS"; then
     pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
   ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_SYSTEMD_CFLAGS=`$PKG_CONFIG --cflags "libsystemd" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
@@ -17605,10 +16333,10 @@ if test -n "$SYSTEMD_LIBS"; then
     pkg_cv_SYSTEMD_LIBS="$SYSTEMD_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
   ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_SYSTEMD_LIBS=`$PKG_CONFIG --libs "libsystemd" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
@@ -17622,8 +16350,8 @@ fi
 
 
 if test $pkg_failed = yes; then
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
 
        have_systemd=no
 elif test $pkg_failed = untried; then
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
        have_systemd=no
 else
        SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
        SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
        have_systemd=yes
 fi
-               if test "x$have_systemd" != "xyes"
-then :
+               if test "x$have_systemd" != "xyes"; then :
 
 
 pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD_DAEMON" >&5
-printf %s "checking for SYSTEMD_DAEMON... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD_DAEMON" >&5
+$as_echo_n "checking for SYSTEMD_DAEMON... " >&6; }
 
 if test -n "$SYSTEMD_DAEMON_CFLAGS"; then
     pkg_cv_SYSTEMD_DAEMON_CFLAGS="$SYSTEMD_DAEMON_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5
   ($PKG_CONFIG --exists --print-errors "libsystemd-daemon") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_SYSTEMD_DAEMON_CFLAGS=`$PKG_CONFIG --cflags "libsystemd-daemon" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
@@ -17679,10 +16406,10 @@ if test -n "$SYSTEMD_DAEMON_LIBS"; then
     pkg_cv_SYSTEMD_DAEMON_LIBS="$SYSTEMD_DAEMON_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5
   ($PKG_CONFIG --exists --print-errors "libsystemd-daemon") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_SYSTEMD_DAEMON_LIBS=`$PKG_CONFIG --libs "libsystemd-daemon" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
@@ -17696,8 +16423,8 @@ fi
 
 
 if test $pkg_failed = yes; then
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
 
        have_systemd_daemon=no
 elif test $pkg_failed = untried; then
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
        have_systemd_daemon=no
 else
        SYSTEMD_DAEMON_CFLAGS=$pkg_cv_SYSTEMD_DAEMON_CFLAGS
        SYSTEMD_DAEMON_LIBS=$pkg_cv_SYSTEMD_DAEMON_LIBS
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
        have_systemd_daemon=yes
 fi
-               if test "x$have_systemd_daemon" = "xyes"
-then :
+               if test "x$have_systemd_daemon" = "xyes"; then :
   have_systemd=yes
 fi
 
@@ -17735,7 +16461,7 @@ fi
     as_fn_error $? "systemd enabled but libsystemd not found" "$LINENO" 5 ;; #(
   *:yes) :
 
-printf "%s\n" "#define HAVE_SYSTEMD 1" >>confdefs.h
+$as_echo "#define HAVE_SYSTEMD 1" >>confdefs.h
 
                LIBS="$LIBS $SYSTEMD_LIBS"
 
 
 # set memory allocation checking if requested
 # Check whether --enable-alloc-checks was given.
-if test ${enable_alloc_checks+y}
-then :
+if test "${enable_alloc_checks+set}" = set; then :
   enableval=$enable_alloc_checks;
 fi
 
 # Check whether --enable-alloc-lite was given.
-if test ${enable_alloc_lite+y}
-then :
+if test "${enable_alloc_lite+set}" = set; then :
   enableval=$enable_alloc_lite;
 fi
 
 # Check whether --enable-alloc-nonregional was given.
-if test ${enable_alloc_nonregional+y}
-then :
+if test "${enable_alloc_nonregional+set}" = set; then :
   enableval=$enable_alloc_nonregional;
 fi
 
 if test x_$enable_alloc_nonregional = x_yes; then
 
-printf "%s\n" "#define UNBOUND_ALLOC_NONREGIONAL 1" >>confdefs.h
+$as_echo "#define UNBOUND_ALLOC_NONREGIONAL 1" >>confdefs.h
 
 fi
 if test x_$enable_alloc_checks = x_yes; then
 
-printf "%s\n" "#define UNBOUND_ALLOC_STATS 1" >>confdefs.h
+$as_echo "#define UNBOUND_ALLOC_STATS 1" >>confdefs.h
 
        SLDNS_ALLOCCHECK_EXTRA_OBJ="alloc.lo log.lo"
 
@@ -17792,16 +16515,15 @@ printf "%s\n" "#define UNBOUND_ALLOC_STATS 1" >>confdefs.h
 else
        if test x_$enable_alloc_lite = x_yes; then
 
-printf "%s\n" "#define UNBOUND_ALLOC_LITE 1" >>confdefs.h
+$as_echo "#define UNBOUND_ALLOC_LITE 1" >>confdefs.h
 
        else
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
-printf %s "checking for GNU libc compatible malloc... " >&6; }
-       if test "$cross_compiling" = yes
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no (crosscompile)" >&5
-printf "%s\n" "no (crosscompile)" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
+       if test "$cross_compiling" = yes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (crosscompile)" >&5
+$as_echo "no (crosscompile)" >&6; }
        case " $LIBOBJS " in
   *" malloc.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
@@ -17809,9 +16531,11 @@ printf "%s\n" "no (crosscompile)" >&6; }
 esac
 
 
-printf "%s\n" "#define malloc rpl_malloc_unbound" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define malloc rpl_malloc_unbound
+_ACEOF
 
-else $as_nop
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #if defined STDC_HEADERS || defined HAVE_STDLIB_H
@@ -17821,7 +16545,7 @@ char *malloc ();
 #endif
 
 int
-main (void)
+main ()
 {
  if(malloc(0) != 0) return 1;
   ;
@@ -17829,10 +16553,9 @@ main (void)
 }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+if ac_fn_c_try_run "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
        case " $LIBOBJS " in
   *" malloc.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
@@ -17840,13 +16563,15 @@ printf "%s\n" "no" >&6; }
 esac
 
 
-printf "%s\n" "#define malloc rpl_malloc_unbound" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define malloc rpl_malloc_unbound
+_ACEOF
 
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-printf "%s\n" "#define HAVE_MALLOC 1" >>confdefs.h
+$as_echo "#define HAVE_MALLOC 1" >>confdefs.h
 
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 # check windows threads (we use them, not pthreads, on windows).
 if test "$on_mingw" = "yes"; then
 # check windows threads
-       ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default
+       for ac_header in windows.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_windows_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_WINDOWS_H 1" >>confdefs.h
+if test "x$ac_cv_header_windows_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINDOWS_H 1
+_ACEOF
 
 fi
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CreateThread" >&5
-printf %s "checking for CreateThread... " >&6; }
+done
+
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CreateThread" >&5
+$as_echo_n "checking for CreateThread... " >&6; }
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -17878,7 +16608,7 @@ printf %s "checking for CreateThread... " >&6; }
 #endif
 
 int
-main (void)
+main ()
 {
 
        HANDLE t = CreateThread(NULL, 0, NULL, NULL, 0, NULL);
@@ -17887,20 +16617,19 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+if ac_fn_c_try_compile "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-printf "%s\n" "#define HAVE_WINDOWS_THREADS 1" >>confdefs.h
+$as_echo "#define HAVE_WINDOWS_THREADS 1" >>confdefs.h
 
 
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 else
 # not on mingw, check thread libraries.
@@ -17911,10 +16640,9 @@ else
 # the non-threadsafe C libraries.
 
 # Check whether --with-pthreads was given.
-if test ${with_pthreads+y}
-then :
+if test "${with_pthreads+set}" = set; then :
   withval=$with_pthreads;
-else $as_nop
+else
    withval="yes"
 fi
 
@@ -17942,31 +16670,33 @@ if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
         save_LIBS="$LIBS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
-printf %s "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
+$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; }
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char pthread_join ();
 int
-main (void)
+main ()
 {
 return pthread_join ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ax_pthread_ok=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
-printf "%s\n" "$ax_pthread_ok" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
+$as_echo "$ax_pthread_ok" >&6; }
         if test x"$ax_pthread_ok" = xno; then
                 PTHREAD_LIBS=""
                 PTHREAD_CFLAGS=""
@@ -18030,8 +16760,8 @@ esac
 # -Werror. We throw in some extra Clang-specific options to ensure that
 # this doesn't happen for GCC, which also accepts -Werror.
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler needs -Werror to reject unknown flags" >&5
-printf %s "checking if compiler needs -Werror to reject unknown flags... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler needs -Werror to reject unknown flags" >&5
+$as_echo_n "checking if compiler needs -Werror to reject unknown flags... " >&6; }
 save_CFLAGS="$CFLAGS"
 ax_pthread_extra_flags="-Werror"
 CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
@@ -18039,23 +16769,22 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 int foo(void);
 int
-main (void)
+main ()
 {
 foo()
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-else $as_nop
+if ac_fn_c_try_compile "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
   ax_pthread_extra_flags=
-                   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 CFLAGS="$save_CFLAGS"
 
 if test x"$ax_pthread_ok" = xno; then
@@ -18063,25 +16792,24 @@ for flag in $ax_pthread_flags; do
 
         case $flag in
                 none)
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
-printf %s "checking whether pthreads work without any flags... " >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
+$as_echo_n "checking whether pthreads work without any flags... " >&6; }
                 ;;
 
                 -*)
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5
-printf %s "checking whether pthreads work with $flag... " >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5
+$as_echo_n "checking whether pthreads work with $flag... " >&6; }
                 PTHREAD_CFLAGS="$flag"
                 ;;
 
                 pthread-config)
                 # Extract the first word of "pthread-config", so it can be a program name with args.
 set dummy pthread-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ax_pthread_config+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ax_pthread_config+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ax_pthread_config"; then
   ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test.
 else
@@ -18089,15 +16817,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ax_pthread_config="yes"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 ax_pthread_config=$ac_cv_prog_ax_pthread_config
 if test -n "$ax_pthread_config"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
-printf "%s\n" "$ax_pthread_config" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
+$as_echo "$ax_pthread_config" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -18123,8 +16847,8 @@ fi
                 ;;
 
                 *)
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5
-printf %s "checking for the pthreads library -l$flag... " >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5
+$as_echo_n "checking for the pthreads library -l$flag... " >&6; }
                 PTHREAD_LIBS="-l$flag"
                 ;;
         esac
@@ -18149,7 +16873,7 @@ printf %s "checking for the pthreads library -l$flag... " >&6; }
                         static void routine(void *a) { *((int*)a) = 0; }
                         static void *start_routine(void *a) { return a; }
 int
-main (void)
+main ()
 {
 pthread_t th; pthread_attr_t attr;
                         pthread_create(&th, 0, start_routine, 0);
@@ -18161,18 +16885,17 @@ pthread_t th; pthread_attr_t attr;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ax_pthread_ok=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
         LIBS="$save_LIBS"
         CFLAGS="$save_CFLAGS"
 
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
-printf "%s\n" "$ax_pthread_ok" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
+$as_echo "$ax_pthread_ok" >&6; }
         if test "x$ax_pthread_ok" = xyes; then
                 break;
         fi
@@ -18190,38 +16913,39 @@ if test "x$ax_pthread_ok" = xyes; then
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
 
         # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
-printf %s "checking for joinable pthread attribute... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
+$as_echo_n "checking for joinable pthread attribute... " >&6; }
         attr_name=unknown
         for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
 int
-main (void)
+main ()
 {
 int attr = $attr; return attr /* ; */
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   attr_name=$attr; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
         done
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5
-printf "%s\n" "$attr_name" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5
+$as_echo "$attr_name" >&6; }
         if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
 
-printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $attr_name" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define PTHREAD_CREATE_JOINABLE $attr_name
+_ACEOF
 
         fi
 
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5
-printf %s "checking if more special flags are required for pthreads... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5
+$as_echo_n "checking if more special flags are required for pthreads... " >&6; }
         flag=no
         case ${host_os} in
             aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
@@ -18235,46 +16959,43 @@ printf %s "checking if more special flags are required for pthreads... " >&6; }
             fi
             ;;
         esac
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $flag" >&5
-printf "%s\n" "$flag" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag" >&5
+$as_echo "$flag" >&6; }
         if test "x$flag" != xno; then
             PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
         fi
 
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
-printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; }
-if test ${ax_cv_PTHREAD_PRIO_INHERIT+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
+$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; }
+if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
                 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
 int
-main (void)
+main ()
 {
 int i = PTHREAD_PRIO_INHERIT;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ax_cv_PTHREAD_PRIO_INHERIT=yes
-else $as_nop
+else
   ax_cv_PTHREAD_PRIO_INHERIT=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
-printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
-        if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"
-then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
+$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
+        if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"; then :
 
-printf "%s\n" "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
+$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
 
 fi
 
@@ -18290,8 +17011,7 @@ fi
     #handle absolute path differently from PATH based program lookup
                    case "x$CC" in #(
   x/*) :
-    if as_fn_executable_p ${CC}_r
-then :
+    if as_fn_executable_p ${CC}_r; then :
   PTHREAD_CC="${CC}_r"
 fi ;; #(
   *) :
@@ -18299,12 +17019,11 @@ fi ;; #(
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_PTHREAD_CC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PTHREAD_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$PTHREAD_CC"; then
   ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
 else
@@ -18312,15 +17031,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_PTHREAD_CC="$ac_prog"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
 if test -n "$PTHREAD_CC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
-printf "%s\n" "$PTHREAD_CC" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
+$as_echo "$PTHREAD_CC" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -18362,7 +17077,7 @@ test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
 if test x"$ax_pthread_ok" = xyes; then
 
 
-printf "%s\n" "#define HAVE_PTHREAD 1" >>confdefs.h
+$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h
 
                if test -n "$PTHREAD_LIBS"; then
                  LIBS="$PTHREAD_LIBS $LIBS"
@@ -18372,27 +17087,95 @@ printf "%s\n" "#define HAVE_PTHREAD 1" >>confdefs.h
                ub_have_pthreads=yes
                ac_fn_c_check_type "$LINENO" "pthread_spinlock_t" "ac_cv_type_pthread_spinlock_t" "#include <pthread.h>
 "
-if test "x$ac_cv_type_pthread_spinlock_t" = xyes
-then :
+if test "x$ac_cv_type_pthread_spinlock_t" = xyes; then :
 
-printf "%s\n" "#define HAVE_PTHREAD_SPINLOCK_T 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define HAVE_PTHREAD_SPINLOCK_T 1
+_ACEOF
 
 
 fi
 ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include <pthread.h>
 "
-if test "x$ac_cv_type_pthread_rwlock_t" = xyes
-then :
+if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_PTHREAD_RWLOCK_T 1
+_ACEOF
+
+
+fi
+
+               # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long" >&5
+$as_echo_n "checking size of unsigned long... " >&6; }
+if ${ac_cv_sizeof_unsigned_long+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_unsigned_long" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (unsigned long)
+See \`config.log' for more details" "$LINENO" 5; }
+   else
+     ac_cv_sizeof_unsigned_long=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long" >&5
+$as_echo "$ac_cv_sizeof_unsigned_long" >&6; }
 
-printf "%s\n" "#define HAVE_PTHREAD_RWLOCK_T 1" >>confdefs.h
 
 
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long
+_ACEOF
+
+
+               # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of pthread_t" >&5
+$as_echo_n "checking size of pthread_t... " >&6; }
+if ${ac_cv_sizeof_pthread_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pthread_t))" "ac_cv_sizeof_pthread_t"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_pthread_t" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (pthread_t)
+See \`config.log' for more details" "$LINENO" 5; }
+   else
+     ac_cv_sizeof_pthread_t=0
+   fi
 fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pthread_t" >&5
+$as_echo "$ac_cv_sizeof_pthread_t" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_PTHREAD_T $ac_cv_sizeof_pthread_t
+_ACEOF
+
+
 
                if echo "$CFLAGS" | $GREP -e "-pthread" >/dev/null; then
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -pthread unused during linking" >&5
-printf %s "checking if -pthread unused during linking... " >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread unused during linking" >&5
+$as_echo_n "checking if -pthread unused during linking... " >&6; }
                # catch clang warning 'argument unused during compilation'
                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -18410,18 +17193,18 @@ _ACEOF
                        echo "$CC $CFLAGS -Werror $LDFLAGS $LIBS -o conftest contest.o" >&5
                        $CC $CFLAGS -Werror $LDFLAGS $LIBS -o conftest conftest.o 2>&5 >&5
                        if test $? -ne 0; then
-                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+                               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
                                CFLAGS=`echo "$CFLAGS" | sed -e 's/-pthread//'`
                                PTHREAD_CFLAGS_ONLY="-pthread"
 
                        else
-                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
                        fi
                else
-                       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
                fi # endif cc successful
                rm -f conftest conftest.c conftest.o
                fi # endif -pthread in CFLAGS
 # check solaris thread library
 
 # Check whether --with-solaris-threads was given.
-if test ${with_solaris_threads+y}
-then :
+if test "${with_solaris_threads+set}" = set; then :
   withval=$with_solaris_threads;
-else $as_nop
+else
    withval="no"
 fi
 
 ub_have_sol_threads=no
 if test x_$withval != x_no; then
        if test x_$ub_have_pthreads != x_no; then
-           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Have pthreads already, ignoring --with-solaris-threads" >&5
-printf "%s\n" "$as_me: WARNING: Have pthreads already, ignoring --with-solaris-threads" >&2;}
+           { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Have pthreads already, ignoring --with-solaris-threads" >&5
+$as_echo "$as_me: WARNING: Have pthreads already, ignoring --with-solaris-threads" >&2;}
        else
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing thr_create" >&5
-printf %s "checking for library containing thr_create... " >&6; }
-if test ${ac_cv_search_thr_create+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing thr_create" >&5
+$as_echo_n "checking for library containing thr_create... " >&6; }
+if ${ac_cv_search_thr_create+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -18470,63 +17251,60 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char thr_create ();
 int
-main (void)
+main ()
 {
 return thr_create ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' thread
-do
+for ac_lib in '' thread; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_thr_create=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_thr_create+y}
-then :
+  if ${ac_cv_search_thr_create+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_thr_create+y}
-then :
+if ${ac_cv_search_thr_create+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_thr_create=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_thr_create" >&5
-printf "%s\n" "$ac_cv_search_thr_create" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_thr_create" >&5
+$as_echo "$ac_cv_search_thr_create" >&6; }
 ac_res=$ac_cv_search_thr_create
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 
-printf "%s\n" "#define HAVE_SOLARIS_THREADS 1" >>confdefs.h
+$as_echo "#define HAVE_SOLARIS_THREADS 1" >>confdefs.h
 
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -mt" >&5
-printf %s "checking whether $CC supports -mt... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -mt" >&5
+$as_echo_n "checking whether $CC supports -mt... " >&6; }
 cache=`echo mt | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_prog_cc_flag_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo 'void f(void){}' >conftest.c
 if test -z "`$CC $CPPFLAGS $CFLAGS -mt -c conftest.c 2>&1`"; then
@@ -18539,20 +17317,20 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 :
 CFLAGS="$CFLAGS -mt"
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 CFLAGS="$CFLAGS -D_REENTRANT"
 fi
 
                ub_have_sol_threads=yes
 
-else $as_nop
+else
 
                as_fn_error $? "no solaris threads found." "$LINENO" 5
 
@@ -18566,8 +17344,7 @@ fi # end of non-mingw check of thread libraries
 # Check for SYSLOG_FACILITY
 
 # Check whether --with-syslog-facility was given.
-if test ${with_syslog_facility+y}
-then :
+if test "${with_syslog_facility+set}" = set; then :
   withval=$with_syslog_facility;  UNBOUND_SYSLOG_FACILITY="$withval"
 fi
 
@@ -18579,23 +17356,24 @@ case "${UNBOUND_SYSLOG_FACILITY}" in
 
 esac
 
-printf "%s\n" "#define UB_SYSLOG_FACILITY ${UNBOUND_SYSLOG_FACILITY}" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define UB_SYSLOG_FACILITY ${UNBOUND_SYSLOG_FACILITY}
+_ACEOF
 
 
 # Check for dynamic library module
 
 # Check whether --with-dynlibmodule was given.
-if test ${with_dynlibmodule+y}
-then :
+if test "${with_dynlibmodule+set}" = set; then :
   withval=$with_dynlibmodule;
-else $as_nop
+else
    withval="no"
 fi
 
 
 if test x_$withval != x_no; then
 
-printf "%s\n" "#define WITH_DYNLIBMODULE 1" >>confdefs.h
+$as_echo "#define WITH_DYNLIBMODULE 1" >>confdefs.h
 
   WITH_DYNLIBMODULE=yes
 
@@ -18607,12 +17385,11 @@ printf "%s\n" "#define WITH_DYNLIBMODULE 1" >>confdefs.h
     # link with -ldl if not already there, for all executables because
     # dlopen call is in the dynlib module.  For unbound executable, also
     # export symbols.
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
-printf %s "checking for library containing dlopen... " >&6; }
-if test ${ac_cv_search_dlopen+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+$as_echo_n "checking for library containing dlopen... " >&6; }
+if ${ac_cv_search_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -18620,48 +17397,46 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char dlopen ();
 int
-main (void)
+main ()
 {
 return dlopen ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' dl
-do
+for ac_lib in '' dl; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_dlopen=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_dlopen+y}
-then :
+  if ${ac_cv_search_dlopen+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_dlopen+y}
-then :
+if ${ac_cv_search_dlopen+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_dlopen=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
-printf "%s\n" "$ac_cv_search_dlopen" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
+$as_echo "$ac_cv_search_dlopen" >&6; }
 ac_res=$ac_cv_search_dlopen
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 # Check for PyUnbound
 
 # Check whether --with-pyunbound was given.
-if test ${with_pyunbound+y}
-then :
+if test "${with_pyunbound+set}" = set; then :
   withval=$with_pyunbound;
-else $as_nop
+else
    withval="no"
 fi
 
 # Check for Python module
 
 # Check whether --with-pythonmodule was given.
-if test ${with_pythonmodule+y}
-then :
+if test "${with_pythonmodule+set}" = set; then :
   withval=$with_pythonmodule;
-else $as_nop
+else
    withval="no"
 fi
 
@@ -18721,12 +17494,11 @@ if test x_$ub_test_python != x_no; then
 
         # Extract the first word of "python[$PYTHON_VERSION]", so it can be a program name with args.
 set dummy python$PYTHON_VERSION; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_PYTHON+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PYTHON+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $PYTHON in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
@@ -18736,15 +17508,11 @@ else $as_nop
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_PYTHON="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -18756,11 +17524,11 @@ esac
 fi
 PYTHON=$ac_cv_path_PYTHON
 if test -n "$PYTHON"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-printf "%s\n" "$PYTHON" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
        fi
 
        # Check if you have sysconfig
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the sysconfig Python module" >&5
-printf %s "checking for the sysconfig Python module... " >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the sysconfig Python module" >&5
+$as_echo_n "checking for the sysconfig Python module... " >&6; }
         if ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1`; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
                sysconfig_module="sysconfig"
                # if yes, use sysconfig, because distutils is deprecated.
        else
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
                # if no, try to use distutils
 
                #
                # Check if you have distutils, else fail
                #
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5
-printf %s "checking for the distutils Python package... " >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5
+$as_echo_n "checking for the distutils Python package... " >&6; }
                if ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`; then
-                       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+                       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
                else
-                       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
                        as_fn_error $? "cannot import Python module \"distutils\".
        Please check your Python installation. The error was:
        $ac_distutils_result" "$LINENO" 5
@@ -18810,8 +17578,8 @@ printf "%s\n" "no" >&6; }
         #
         # Check for Python include path
         #
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
-printf %s "checking for Python include path... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+$as_echo_n "checking for Python include path... " >&6; }
         if test -z "$PYTHON_CPPFLAGS"; then
                if test "$sysconfig_module" = "sysconfig"; then
                        python_path=`$PYTHON -c 'import sysconfig; \
@@ -18825,21 +17593,21 @@ printf %s "checking for Python include path... " >&6; }
                 fi
                 PYTHON_CPPFLAGS=$python_path
         fi
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CPPFLAGS" >&5
-printf "%s\n" "$PYTHON_CPPFLAGS" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CPPFLAGS" >&5
+$as_echo "$PYTHON_CPPFLAGS" >&6; }
 
 
         #
         # Check for Python library path
         #
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5
-printf %s "checking for Python library path... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5
+$as_echo_n "checking for Python library path... " >&6; }
         if test -z "$PYTHON_LDFLAGS"; then
                 PYTHON_LDFLAGS=`$PYTHON -c "from $sysconfig_module import *; \
                         print('-L'+get_config_var('LIBDIR')+' -L'+get_config_var('LIBDEST')+' '+get_config_var('BLDLIBRARY'));"`
         fi
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_LDFLAGS" >&5
-printf "%s\n" "$PYTHON_LDFLAGS" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_LDFLAGS" >&5
+$as_echo "$PYTHON_LDFLAGS" >&6; }
 
 
         if test -z "$PYTHON_LIBDIR"; then
@@ -18850,8 +17618,8 @@ printf "%s\n" "$PYTHON_LDFLAGS" >&6; }
         #
         # Check for site packages
         #
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5
-printf %s "checking for Python site-packages path... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5
+$as_echo_n "checking for Python site-packages path... " >&6; }
         if test -z "$PYTHON_SITE_PKG"; then
                if test "$sysconfig_module" = "sysconfig"; then
                        PYTHON_SITE_PKG=`$PYTHON -c 'import sysconfig; \
@@ -18861,15 +17629,15 @@ printf %s "checking for Python site-packages path... " >&6; }
                                print(distutils.sysconfig.get_python_lib(1,0));"`
                fi
         fi
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5
-printf "%s\n" "$PYTHON_SITE_PKG" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5
+$as_echo "$PYTHON_SITE_PKG" >&6; }
 
 
         #
         # final check to see if everything compiles alright
         #
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking consistency of all components of python development environment" >&5
-printf %s "checking consistency of all components of python development environment... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking consistency of all components of python development environment" >&5
+$as_echo_n "checking consistency of all components of python development environment... " >&6; }
         ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -18888,7 +17656,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
                 #include <Python.h>
 
 int
-main (void)
+main ()
 {
 
                 Py_Initialize();
@@ -18897,17 +17665,16 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   pythonexists=yes
-else $as_nop
+else
   pythonexists=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pythonexists" >&5
-printf "%s\n" "$pythonexists" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pythonexists" >&5
+$as_echo "$pythonexists" >&6; }
 
         if test ! "$pythonexists" = "yes"; then
            as_fn_error $? "
@@ -18946,7 +17713,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
       # Have Python
 
-printf "%s\n" "#define HAVE_PYTHON 1" >>confdefs.h
+$as_echo "#define HAVE_PYTHON 1" >>confdefs.h
 
       if test x_$ub_with_pythonmod != x_no; then
         if test -n "$LIBS"; then
@@ -18973,10 +17740,10 @@ printf "%s\n" "#define HAVE_PYTHON 1" >>confdefs.h
       fi
       ub_have_python=yes
       if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"python\${PY_MAJOR_VERSION}\"\""; } >&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"python\${PY_MAJOR_VERSION}\"\""; } >&5
   ($PKG_CONFIG --exists --print-errors ""python${PY_MAJOR_VERSION}"") 2>&5
   ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   PC_PY_DEPENDENCY="python${PY_MAJOR_VERSION}"
 else
@@ -18987,8 +17754,7 @@ fi
       # Check for SWIG
       ub_have_swig=no
       # Check whether --enable-swig-version-check was given.
-if test ${enable_swig_version_check+y}
-then :
+if test "${enable_swig_version_check+set}" = set; then :
   enableval=$enable_swig_version_check;
 fi
 
 
         # Extract the first word of "swig", so it can be a program name with args.
 set dummy swig; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_SWIG+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_SWIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $SWIG in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path.
@@ -19011,15 +17776,11 @@ else $as_nop
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_SWIG="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -19031,24 +17792,24 @@ esac
 fi
 SWIG=$ac_cv_path_SWIG
 if test -n "$SWIG"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
-printf "%s\n" "$SWIG" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
+$as_echo "$SWIG" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
         if test -z "$SWIG" ; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find 'swig' program. You should look at http://www.swig.org" >&5
-printf "%s\n" "$as_me: WARNING: cannot find 'swig' program. You should look at http://www.swig.org" >&2;}
+                { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot find 'swig' program. You should look at http://www.swig.org" >&5
+$as_echo "$as_me: WARNING: cannot find 'swig' program. You should look at http://www.swig.org" >&2;}
                 SWIG='echo "Error: SWIG is not installed. You should look at http://www.swig.org" ; false'
         elif test -n "2.0.1" ; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SWIG version" >&5
-printf %s "checking for SWIG version... " >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SWIG version" >&5
+$as_echo_n "checking for SWIG version... " >&6; }
                 swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
-printf "%s\n" "$swig_version" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
+$as_echo "$swig_version" >&6; }
                 if test -n "$swig_version" ; then
                         # Calculate the required version number components
                         required=2.0.1
@@ -19096,19 +17857,19 @@ printf "%s\n" "$swig_version" >&6; }
                                badversion=1
                        fi
                        if test $badversion -eq 1 ; then
-                                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 2.0.1 is required.  You have $swig_version.  You should look at http://www.swig.org" >&5
-printf "%s\n" "$as_me: WARNING: SWIG version >= 2.0.1 is required.  You have $swig_version.  You should look at http://www.swig.org" >&2;}
+                                { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 2.0.1 is required.  You have $swig_version.  You should look at http://www.swig.org" >&5
+$as_echo "$as_me: WARNING: SWIG version >= 2.0.1 is required.  You have $swig_version.  You should look at http://www.swig.org" >&2;}
                                 SWIG='echo "Error: SWIG version >= 2.0.1 is required.  You have '"$swig_version"'.  You should look at http://www.swig.org" ; false'
                         else
-                                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: SWIG executable is '$SWIG'" >&5
-printf "%s\n" "$as_me: SWIG executable is '$SWIG'" >&6;}
+                                { $as_echo "$as_me:${as_lineno-$LINENO}: SWIG executable is '$SWIG'" >&5
+$as_echo "$as_me: SWIG executable is '$SWIG'" >&6;}
                                 SWIG_LIB=`$SWIG -swiglib`
-                                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: SWIG library directory is '$SWIG_LIB'" >&5
-printf "%s\n" "$as_me: SWIG library directory is '$SWIG_LIB'" >&6;}
+                                { $as_echo "$as_me:${as_lineno-$LINENO}: SWIG library directory is '$SWIG_LIB'" >&5
+$as_echo "$as_me: SWIG library directory is '$SWIG_LIB'" >&6;}
                         fi
                 else
-                        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
-printf "%s\n" "$as_me: WARNING: cannot determine SWIG version" >&2;}
+                        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
+$as_echo "$as_me: WARNING: cannot determine SWIG version" >&2;}
                         SWIG='echo "Error: Cannot determine SWIG version.  You should look at http://www.swig.org" ; false'
                 fi
         fi
@@ -19118,12 +17879,11 @@ printf "%s\n" "$as_me: WARNING: cannot determine SWIG version" >&2;}
 
         # Extract the first word of "swig", so it can be a program name with args.
 set dummy swig; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_SWIG+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_SWIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $SWIG in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path.
@@ -19133,15 +17893,11 @@ else $as_nop
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_SWIG="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -19153,24 +17909,24 @@ esac
 fi
 SWIG=$ac_cv_path_SWIG
 if test -n "$SWIG"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
-printf "%s\n" "$SWIG" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
+$as_echo "$SWIG" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
         if test -z "$SWIG" ; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find 'swig' program. You should look at http://www.swig.org" >&5
-printf "%s\n" "$as_me: WARNING: cannot find 'swig' program. You should look at http://www.swig.org" >&2;}
+                { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot find 'swig' program. You should look at http://www.swig.org" >&5
+$as_echo "$as_me: WARNING: cannot find 'swig' program. You should look at http://www.swig.org" >&2;}
                 SWIG='echo "Error: SWIG is not installed. You should look at http://www.swig.org" ; false'
         elif test -n "" ; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SWIG version" >&5
-printf %s "checking for SWIG version... " >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SWIG version" >&5
+$as_echo_n "checking for SWIG version... " >&6; }
                 swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
-printf "%s\n" "$swig_version" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
+$as_echo "$swig_version" >&6; }
                 if test -n "$swig_version" ; then
                         # Calculate the required version number components
                         required=
@@ -19218,43 +17974,43 @@ printf "%s\n" "$swig_version" >&6; }
                                badversion=1
                        fi
                        if test $badversion -eq 1 ; then
-                                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >=  is required.  You have $swig_version.  You should look at http://www.swig.org" >&5
-printf "%s\n" "$as_me: WARNING: SWIG version >=  is required.  You have $swig_version.  You should look at http://www.swig.org" >&2;}
+                                { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >=  is required.  You have $swig_version.  You should look at http://www.swig.org" >&5
+$as_echo "$as_me: WARNING: SWIG version >=  is required.  You have $swig_version.  You should look at http://www.swig.org" >&2;}
                                 SWIG='echo "Error: SWIG version >=  is required.  You have '"$swig_version"'.  You should look at http://www.swig.org" ; false'
                         else
-                                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: SWIG executable is '$SWIG'" >&5
-printf "%s\n" "$as_me: SWIG executable is '$SWIG'" >&6;}
+                                { $as_echo "$as_me:${as_lineno-$LINENO}: SWIG executable is '$SWIG'" >&5
+$as_echo "$as_me: SWIG executable is '$SWIG'" >&6;}
                                 SWIG_LIB=`$SWIG -swiglib`
-                                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: SWIG library directory is '$SWIG_LIB'" >&5
-printf "%s\n" "$as_me: SWIG library directory is '$SWIG_LIB'" >&6;}
+                                { $as_echo "$as_me:${as_lineno-$LINENO}: SWIG library directory is '$SWIG_LIB'" >&5
+$as_echo "$as_me: SWIG library directory is '$SWIG_LIB'" >&6;}
                         fi
                 else
-                        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
-printf "%s\n" "$as_me: WARNING: cannot determine SWIG version" >&2;}
+                        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
+$as_echo "$as_me: WARNING: cannot determine SWIG version" >&2;}
                         SWIG='echo "Error: Cannot determine SWIG version.  You should look at http://www.swig.org" ; false'
                 fi
         fi
 
 
       fi
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SWIG" >&5
-printf %s "checking SWIG... " >&6; }
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking SWIG" >&5
+$as_echo_n "checking SWIG... " >&6; }
       if test ! -x "$SWIG"; then
          as_fn_error $? "failed to find swig tool, install it, or do not build Python module and PyUnbound" "$LINENO" 5
       else
 
-printf "%s\n" "#define HAVE_SWIG 1" >>confdefs.h
+$as_echo "#define HAVE_SWIG 1" >>confdefs.h
 
          swig="$SWIG"
 
-         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: present" >&5
-printf "%s\n" "present" >&6; }
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: present" >&5
+$as_echo "present" >&6; }
 
          # If have Python & SWIG
          # Declare PythonMod
          if test x_$ub_with_pythonmod != x_no; then
 
-printf "%s\n" "#define WITH_PYTHONMODULE 1" >>confdefs.h
+$as_echo "#define WITH_PYTHONMODULE 1" >>confdefs.h
 
             WITH_PYTHONMODULE=yes
 
@@ -19271,7 +18027,7 @@ printf "%s\n" "#define WITH_PYTHONMODULE 1" >>confdefs.h
          # Declare PyUnbound
          if test x_$ub_with_pyunbound != x_no; then
 
-printf "%s\n" "#define WITH_PYUNBOUND 1" >>confdefs.h
+$as_echo "#define WITH_PYUNBOUND 1" >>confdefs.h
 
             WITH_PYUNBOUND=yes
 
@@ -19286,8 +18042,8 @@ printf "%s\n" "#define WITH_PYUNBOUND 1" >>confdefs.h
          fi
       fi
    else
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** Python libraries not found, won't build PythonMod or PyUnbound ***" >&5
-printf "%s\n" "*** Python libraries not found, won't build PythonMod or PyUnbound ***" >&6; }
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: *** Python libraries not found, won't build PythonMod or PyUnbound ***" >&5
+$as_echo "*** Python libraries not found, won't build PythonMod or PyUnbound ***" >&6; }
       ub_with_pyunbound=no
       ub_with_pythonmod=no
    fi
@@ -19312,12 +18068,11 @@ CONFIG_DATE=`date +%Y%m%d`
 USE_NSS="no"
 
 # Check whether --with-nss was given.
-if test ${with_nss+y}
-then :
+if test "${with_nss+set}" = set; then :
   withval=$with_nss;
        USE_NSS="yes"
 
-printf "%s\n" "#define HAVE_NSS 1" >>confdefs.h
+$as_echo "#define HAVE_NSS 1" >>confdefs.h
 
        if test "$withval" != "" -a "$withval" != "yes"; then
                CPPFLAGS="$CPPFLAGS -I$withval/include/nss3"
 USE_NETTLE="no"
 
 # Check whether --with-nettle was given.
-if test ${with_nettle+y}
-then :
+if test "${with_nettle+set}" = set; then :
   withval=$with_nettle;
        USE_NETTLE="yes"
 
-printf "%s\n" "#define HAVE_NETTLE 1" >>confdefs.h
+$as_echo "#define HAVE_NETTLE 1" >>confdefs.h
 
-       ac_fn_c_check_header_compile "$LINENO" "nettle/dsa-compat.h" "ac_cv_header_nettle_dsa_compat_h" "$ac_includes_default
+       for ac_header in nettle/dsa-compat.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "nettle/dsa-compat.h" "ac_cv_header_nettle_dsa_compat_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_nettle_dsa_compat_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_NETTLE_DSA_COMPAT_H 1" >>confdefs.h
+if test "x$ac_cv_header_nettle_dsa_compat_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NETTLE_DSA_COMPAT_H 1
+_ACEOF
 
 fi
 
+done
+
        if test "$withval" != "" -a "$withval" != "yes"; then
                CPPFLAGS="$CPPFLAGS -I$withval/include/nettle"
                LDFLAGS="$LDFLAGS -L$withval/lib"
@@ -19389,11 +18148,10 @@ if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
 
 
 # Check whether --with-ssl was given.
-if test ${with_ssl+y}
-then :
+if test "${with_ssl+set}" = set; then :
   withval=$with_ssl;
 
-else $as_nop
+else
 
             withval="yes"
 
@@ -19405,8 +18163,8 @@ fi
 
     withval=$withval
     if test x_$withval != x_no; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5
-printf %s "checking for SSL... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5
+$as_echo_n "checking for SSL... " >&6; }
        if test -n "$withval"; then
                                                                                if test ! -f "$withval/include/openssl/ssl.h" -a -f "$withval/openssl/ssl.h"; then
                        ssldir="$withval"
@@ -19445,10 +18203,12 @@ printf %s "checking for SSL... " >&6; }
         if test x_$found_ssl != x_yes; then
             as_fn_error $? "Cannot find the SSL libraries in $withval" "$LINENO" 5
         else
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $ssldir" >&5
-printf "%s\n" "found in $ssldir" >&6; }
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $ssldir" >&5
+$as_echo "found in $ssldir" >&6; }
 
-printf "%s\n" "#define HAVE_SSL /**/" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SSL /**/
+_ACEOF
 
             HAVE_SSL=yes
                        if test "$ssldir" != "/usr"; then
@@ -19465,15 +18225,15 @@ printf "%s\n" "#define HAVE_SSL /**/" >>confdefs.h
 
            fi
 
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EVP_sha256 in -lcrypto" >&5
-printf %s "checking for EVP_sha256 in -lcrypto... " >&6; }
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_sha256 in -lcrypto" >&5
+$as_echo_n "checking for EVP_sha256 in -lcrypto... " >&6; }
             LIBS="$LIBS -lcrypto"
             LIBSSL_LIBS="$LIBSSL_LIBS -lcrypto"
             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
                 int EVP_sha256(void);
@@ -19483,31 +18243,30 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
+$as_echo "#define HAVE_EVP_SHA256 1" >>confdefs.h
 
 
-else $as_nop
+else
 
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
                 # check if -lwsock32 or -lgdi32 are needed.
                 BAKLIBS="$LIBS"
                 BAKSSLLIBS="$LIBSSL_LIBS"
                LIBS="$LIBS -lgdi32 -lws2_32"
                LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32"
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32" >&5
-printf %s "checking if -lcrypto needs -lgdi32... " >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32" >&5
+$as_echo_n "checking if -lcrypto needs -lgdi32... " >&6; }
                 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
                     int EVP_sha256(void);
@@ -19517,30 +18276,29 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
 
-printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
+$as_echo "#define HAVE_EVP_SHA256 1" >>confdefs.h
 
-                    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+                    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-else $as_nop
+else
 
-                    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
                     LIBS="$BAKLIBS"
                     LIBSSL_LIBS="$BAKSSLLIBS"
                     LIBS="$LIBS -ldl"
                     LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
-                    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl" >&5
-printf %s "checking if -lcrypto needs -ldl... " >&6; }
+                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl" >&5
+$as_echo_n "checking if -lcrypto needs -ldl... " >&6; }
                     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
                         int EVP_sha256(void);
@@ -19550,30 +18308,29 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
 
-printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
+$as_echo "#define HAVE_EVP_SHA256 1" >>confdefs.h
 
-                        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+                        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-else $as_nop
+else
 
-                        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
                         LIBS="$BAKLIBS"
                         LIBSSL_LIBS="$BAKSSLLIBS"
                         LIBS="$LIBS -ldl -pthread"
                         LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
-                        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl -pthread" >&5
-printf %s "checking if -lcrypto needs -ldl -pthread... " >&6; }
+                        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl -pthread" >&5
+$as_echo_n "checking if -lcrypto needs -ldl -pthread... " >&6; }
                         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main (void)
+main ()
 {
 
                             int EVP_sha256(void);
@@ -19583,105 +18340,120 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
 
-printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
+$as_echo "#define HAVE_EVP_SHA256 1" >>confdefs.h
 
-                            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+                            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-else $as_nop
+else
 
-                            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
                             as_fn_error $? "OpenSSL found in $ssldir, but version 0.9.7 or higher is required" "$LINENO" 5
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
         fi
 
 
     fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default
+for ac_header in openssl/ssl.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_openssl_ssl_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_SSL_H 1" >>confdefs.h
+if test "x$ac_cv_header_openssl_ssl_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_OPENSSL_SSL_H 1
+_ACEOF
 
 fi
 
-ac_fn_c_check_header_compile "$LINENO" "openssl/err.h" "ac_cv_header_openssl_err_h" "$ac_includes_default
+done
+
+for ac_header in openssl/err.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "openssl/err.h" "ac_cv_header_openssl_err_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_openssl_err_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_ERR_H 1" >>confdefs.h
+if test "x$ac_cv_header_openssl_err_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_OPENSSL_ERR_H 1
+_ACEOF
 
 fi
 
-ac_fn_c_check_header_compile "$LINENO" "openssl/rand.h" "ac_cv_header_openssl_rand_h" "$ac_includes_default
+done
+
+for ac_header in openssl/rand.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "openssl/rand.h" "ac_cv_header_openssl_rand_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_openssl_rand_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_RAND_H 1" >>confdefs.h
+if test "x$ac_cv_header_openssl_rand_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_OPENSSL_RAND_H 1
+_ACEOF
 
 fi
 
+done
+
 
 
 
 # check if libssl needs libdl
 BAKLIBS="$LIBS"
 LIBS="-lssl $LIBS"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libssl needs libdl" >&5
-printf %s "checking if libssl needs libdl... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if libssl needs libdl" >&5
+$as_echo_n "checking if libssl needs libdl... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char SSL_CTX_new ();
 int
-main (void)
+main ()
 {
 return SSL_CTX_new ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
        LIBS="$BAKLIBS"
 
-else $as_nop
+else
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
        LIBS="$BAKLIBS"
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
-printf %s "checking for library containing dlopen... " >&6; }
-if test ${ac_cv_search_dlopen+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+$as_echo_n "checking for library containing dlopen... " >&6; }
+if ${ac_cv_search_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -19689,507 +18461,195 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char dlopen ();
 int
-main (void)
+main ()
 {
 return dlopen ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' dl
-do
+for ac_lib in '' dl; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_dlopen=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_dlopen+y}
-then :
+  if ${ac_cv_search_dlopen+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_dlopen+y}
-then :
+if ${ac_cv_search_dlopen+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_dlopen=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
-printf "%s\n" "$ac_cv_search_dlopen" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
+$as_echo "$ac_cv_search_dlopen" >&6; }
 ac_res=$ac_cv_search_dlopen
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-SSLLIB="-lssl"
-
-PC_CRYPTO_DEPENDENCY=""
-
-
-# check if -lcrypt32 is needed because CAPIENG needs that. (on windows)
-BAKLIBS="$LIBS"
-LIBS="-lssl $LIBS"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libssl needs -lcrypt32" >&5
-printf %s "checking if libssl needs -lcrypt32... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main (void)
-{
-
-       int EVP_sha256(void);
-       (void)EVP_sha256();
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-       LIBS="$BAKLIBS"
-
-else $as_nop
-
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-       LIBS="$BAKLIBS"
-       LIBS="$LIBS -lcrypt32"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LibreSSL" >&5
-printf %s "checking for LibreSSL... " >&6; }
-if grep VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_LIBRESSL 1" >>confdefs.h
-
-       # libressl provides these compat functions, but they may also be
-       # declared by the OS in libc.  See if they have been declared.
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
-printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
-if test ${ac_cv_c_undeclared_builtin_options+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_save_CFLAGS=$CFLAGS
-   ac_cv_c_undeclared_builtin_options='cannot detect'
-   for ac_arg in '' -fno-builtin; do
-     CFLAGS="$ac_save_CFLAGS $ac_arg"
-     # This test program should *not* compile successfully.
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main (void)
-{
-(void) strchr;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
-else $as_nop
-  # This test program should compile successfully.
-        # No library function is consistently available on
-        # freestanding implementations, so test against a dummy
-        # declaration.  Include always-available headers on the
-        # off chance that they somehow elicit warnings.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <float.h>
-#include <limits.h>
-#include <stdarg.h>
-#include <stddef.h>
-extern void ac_decl (int, char *);
-
-int
-main (void)
-{
-(void) ac_decl (0, (char *) 0);
-  (void) ac_decl;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  if test x"$ac_arg" = x
-then :
-  ac_cv_c_undeclared_builtin_options='none needed'
-else $as_nop
-  ac_cv_c_undeclared_builtin_options=$ac_arg
-fi
-          break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-    done
-    CFLAGS=$ac_save_CFLAGS
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
-printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
-  case $ac_cv_c_undeclared_builtin_options in #(
-  'cannot detect') :
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot make $CC report undeclared builtins
-See \`config.log' for more details" "$LINENO" 5; } ;; #(
-  'none needed') :
-    ac_c_undeclared_builtin_options='' ;; #(
-  *) :
-    ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
-esac
-
-ac_fn_check_decl "$LINENO" "strlcpy" "ac_cv_have_decl_strlcpy" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_strlcpy" = xyes
-then :
-  ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_STRLCPY $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "strlcat" "ac_cv_have_decl_strlcat" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_strlcat" = xyes
-then :
-  ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_STRLCAT $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "arc4random" "ac_cv_have_decl_arc4random" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_arc4random" = xyes
-then :
-  ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_ARC4RANDOM $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "arc4random_uniform" "ac_cv_have_decl_arc4random_uniform" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_arc4random_uniform" = xyes
-then :
-  ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_ARC4RANDOM_UNIFORM $ac_have_decl" >>confdefs.h
-
-else
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/conf.h" "ac_cv_header_openssl_conf_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_conf_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_CONF_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/engine.h" "ac_cv_header_openssl_engine_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_engine_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_ENGINE_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/bn.h" "ac_cv_header_openssl_bn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_bn_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_BN_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/dh.h" "ac_cv_header_openssl_dh_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_dh_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_DH_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/dsa.h" "ac_cv_header_openssl_dsa_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_dsa_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_DSA_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/rsa.h" "ac_cv_header_openssl_rsa_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_rsa_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_RSA_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/core_names.h" "ac_cv_header_openssl_core_names_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_core_names_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_CORE_NAMES_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/param_build.h" "ac_cv_header_openssl_param_build_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_param_build_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_PARAM_BUILD_H 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_func "$LINENO" "OPENSSL_config" "ac_cv_func_OPENSSL_config"
-if test "x$ac_cv_func_OPENSSL_config" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_CONFIG 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_sha1" "ac_cv_func_EVP_sha1"
-if test "x$ac_cv_func_EVP_sha1" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_SHA1 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_sha256" "ac_cv_func_EVP_sha256"
-if test "x$ac_cv_func_EVP_sha256" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_sha512" "ac_cv_func_EVP_sha512"
-if test "x$ac_cv_func_EVP_sha512" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_SHA512 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "FIPS_mode" "ac_cv_func_FIPS_mode"
-if test "x$ac_cv_func_FIPS_mode" = xyes
-then :
-  printf "%s\n" "#define HAVE_FIPS_MODE 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_default_properties_is_fips_enabled" "ac_cv_func_EVP_default_properties_is_fips_enabled"
-if test "x$ac_cv_func_EVP_default_properties_is_fips_enabled" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_DEFAULT_PROPERTIES_IS_FIPS_ENABLED 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_MD_CTX_new" "ac_cv_func_EVP_MD_CTX_new"
-if test "x$ac_cv_func_EVP_MD_CTX_new" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_MD_CTX_NEW 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "OpenSSL_add_all_digests" "ac_cv_func_OpenSSL_add_all_digests"
-if test "x$ac_cv_func_OpenSSL_add_all_digests" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_ADD_ALL_DIGESTS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "OPENSSL_init_crypto" "ac_cv_func_OPENSSL_init_crypto"
-if test "x$ac_cv_func_OPENSSL_init_crypto" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_INIT_CRYPTO 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_cleanup" "ac_cv_func_EVP_cleanup"
-if test "x$ac_cv_func_EVP_cleanup" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_CLEANUP 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ENGINE_cleanup" "ac_cv_func_ENGINE_cleanup"
-if test "x$ac_cv_func_ENGINE_cleanup" = xyes
-then :
-  printf "%s\n" "#define HAVE_ENGINE_CLEANUP 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ERR_load_crypto_strings" "ac_cv_func_ERR_load_crypto_strings"
-if test "x$ac_cv_func_ERR_load_crypto_strings" = xyes
-then :
-  printf "%s\n" "#define HAVE_ERR_LOAD_CRYPTO_STRINGS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "CRYPTO_cleanup_all_ex_data" "ac_cv_func_CRYPTO_cleanup_all_ex_data"
-if test "x$ac_cv_func_CRYPTO_cleanup_all_ex_data" = xyes
-then :
-  printf "%s\n" "#define HAVE_CRYPTO_CLEANUP_ALL_EX_DATA 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ERR_free_strings" "ac_cv_func_ERR_free_strings"
-if test "x$ac_cv_func_ERR_free_strings" = xyes
-then :
-  printf "%s\n" "#define HAVE_ERR_FREE_STRINGS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "RAND_cleanup" "ac_cv_func_RAND_cleanup"
-if test "x$ac_cv_func_RAND_cleanup" = xyes
-then :
-  printf "%s\n" "#define HAVE_RAND_CLEANUP 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "DSA_SIG_set0" "ac_cv_func_DSA_SIG_set0"
-if test "x$ac_cv_func_DSA_SIG_set0" = xyes
-then :
-  printf "%s\n" "#define HAVE_DSA_SIG_SET0 1" >>confdefs.h
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+SSLLIB="-lssl"
 
-fi
-ac_fn_c_check_func "$LINENO" "EVP_dss1" "ac_cv_func_EVP_dss1"
-if test "x$ac_cv_func_EVP_dss1" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_DSS1 1" >>confdefs.h
+PC_CRYPTO_DEPENDENCY=""
 
-fi
-ac_fn_c_check_func "$LINENO" "EVP_DigestVerify" "ac_cv_func_EVP_DigestVerify"
-if test "x$ac_cv_func_EVP_DigestVerify" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_DIGESTVERIFY 1" >>confdefs.h
 
-fi
-ac_fn_c_check_func "$LINENO" "EVP_aes_256_cbc" "ac_cv_func_EVP_aes_256_cbc"
-if test "x$ac_cv_func_EVP_aes_256_cbc" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_AES_256_CBC 1" >>confdefs.h
+# check if -lcrypt32 is needed because CAPIENG needs that. (on windows)
+BAKLIBS="$LIBS"
+LIBS="-lssl $LIBS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if libssl needs -lcrypt32" >&5
+$as_echo_n "checking if libssl needs -lcrypt32... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-fi
-ac_fn_c_check_func "$LINENO" "EVP_EncryptInit_ex" "ac_cv_func_EVP_EncryptInit_ex"
-if test "x$ac_cv_func_EVP_EncryptInit_ex" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_ENCRYPTINIT_EX 1" >>confdefs.h
+int
+main ()
+{
 
-fi
-ac_fn_c_check_func "$LINENO" "HMAC_Init_ex" "ac_cv_func_HMAC_Init_ex"
-if test "x$ac_cv_func_HMAC_Init_ex" = xyes
-then :
-  printf "%s\n" "#define HAVE_HMAC_INIT_EX 1" >>confdefs.h
+       int EVP_sha256(void);
+       (void)EVP_sha256();
 
-fi
-ac_fn_c_check_func "$LINENO" "CRYPTO_THREADID_set_callback" "ac_cv_func_CRYPTO_THREADID_set_callback"
-if test "x$ac_cv_func_CRYPTO_THREADID_set_callback" = xyes
-then :
-  printf "%s\n" "#define HAVE_CRYPTO_THREADID_SET_CALLBACK 1" >>confdefs.h
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
 
-fi
-ac_fn_c_check_func "$LINENO" "EVP_MAC_CTX_set_params" "ac_cv_func_EVP_MAC_CTX_set_params"
-if test "x$ac_cv_func_EVP_MAC_CTX_set_params" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVP_MAC_CTX_SET_PARAMS 1" >>confdefs.h
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       LIBS="$BAKLIBS"
 
-fi
-ac_fn_c_check_func "$LINENO" "OSSL_PARAM_BLD_new" "ac_cv_func_OSSL_PARAM_BLD_new"
-if test "x$ac_cv_func_OSSL_PARAM_BLD_new" = xyes
-then :
-  printf "%s\n" "#define HAVE_OSSL_PARAM_BLD_NEW 1" >>confdefs.h
+else
 
-fi
-ac_fn_c_check_func "$LINENO" "BIO_set_callback_ex" "ac_cv_func_BIO_set_callback_ex"
-if test "x$ac_cv_func_BIO_set_callback_ex" = xyes
-then :
-  printf "%s\n" "#define HAVE_BIO_SET_CALLBACK_EX 1" >>confdefs.h
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       LIBS="$BAKLIBS"
+       LIBS="$LIBS -lcrypt32"
 
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LibreSSL" >&5
+$as_echo_n "checking for LibreSSL... " >&6; }
+if grep VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-# these check_funcs need -lssl
-BAKLIBS="$LIBS"
-LIBS="-lssl $LIBS"
-ac_fn_c_check_func "$LINENO" "OPENSSL_init_ssl" "ac_cv_func_OPENSSL_init_ssl"
-if test "x$ac_cv_func_OPENSSL_init_ssl" = xyes
-then :
-  printf "%s\n" "#define HAVE_OPENSSL_INIT_SSL 1" >>confdefs.h
+$as_echo "#define HAVE_LIBRESSL 1" >>confdefs.h
 
+       # libressl provides these compat functions, but they may also be
+       # declared by the OS in libc.  See if they have been declared.
+       ac_fn_c_check_decl "$LINENO" "strlcpy" "ac_cv_have_decl_strlcpy" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strlcpy" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
-ac_fn_c_check_func "$LINENO" "SSL_CTX_set_security_level" "ac_cv_func_SSL_CTX_set_security_level"
-if test "x$ac_cv_func_SSL_CTX_set_security_level" = xyes
-then :
-  printf "%s\n" "#define HAVE_SSL_CTX_SET_SECURITY_LEVEL 1" >>confdefs.h
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRLCPY $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "strlcat" "ac_cv_have_decl_strlcat" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strlcat" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
-ac_fn_c_check_func "$LINENO" "SSL_set1_host" "ac_cv_func_SSL_set1_host"
-if test "x$ac_cv_func_SSL_set1_host" = xyes
-then :
-  printf "%s\n" "#define HAVE_SSL_SET1_HOST 1" >>confdefs.h
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRLCAT $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "arc4random" "ac_cv_have_decl_arc4random" "$ac_includes_default"
+if test "x$ac_cv_have_decl_arc4random" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
-ac_fn_c_check_func "$LINENO" "SSL_get0_peername" "ac_cv_func_SSL_get0_peername"
-if test "x$ac_cv_func_SSL_get0_peername" = xyes
-then :
-  printf "%s\n" "#define HAVE_SSL_GET0_PEERNAME 1" >>confdefs.h
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ARC4RANDOM $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "arc4random_uniform" "ac_cv_have_decl_arc4random_uniform" "$ac_includes_default"
+if test "x$ac_cv_have_decl_arc4random_uniform" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
-ac_fn_c_check_func "$LINENO" "X509_VERIFY_PARAM_set1_host" "ac_cv_func_X509_VERIFY_PARAM_set1_host"
-if test "x$ac_cv_func_X509_VERIFY_PARAM_set1_host" = xyes
-then :
-  printf "%s\n" "#define HAVE_X509_VERIFY_PARAM_SET1_HOST 1" >>confdefs.h
 
-fi
-ac_fn_c_check_func "$LINENO" "SSL_CTX_set_ciphersuites" "ac_cv_func_SSL_CTX_set_ciphersuites"
-if test "x$ac_cv_func_SSL_CTX_set_ciphersuites" = xyes
-then :
-  printf "%s\n" "#define HAVE_SSL_CTX_SET_CIPHERSUITES 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ARC4RANDOM_UNIFORM $ac_have_decl
+_ACEOF
 
+else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-ac_fn_c_check_func "$LINENO" "SSL_CTX_set_tlsext_ticket_key_evp_cb" "ac_cv_func_SSL_CTX_set_tlsext_ticket_key_evp_cb"
-if test "x$ac_cv_func_SSL_CTX_set_tlsext_ticket_key_evp_cb" = xyes
-then :
-  printf "%s\n" "#define HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_EVP_CB 1" >>confdefs.h
+for ac_header in openssl/conf.h openssl/engine.h openssl/bn.h openssl/dh.h openssl/dsa.h openssl/rsa.h openssl/core_names.h openssl/param_build.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
 fi
-ac_fn_c_check_func "$LINENO" "SSL_CTX_set_alpn_select_cb" "ac_cv_func_SSL_CTX_set_alpn_select_cb"
-if test "x$ac_cv_func_SSL_CTX_set_alpn_select_cb" = xyes
-then :
-  printf "%s\n" "#define HAVE_SSL_CTX_SET_ALPN_SELECT_CB 1" >>confdefs.h
 
-fi
-ac_fn_c_check_func "$LINENO" "SSL_get0_alpn_selected" "ac_cv_func_SSL_get0_alpn_selected"
-if test "x$ac_cv_func_SSL_get0_alpn_selected" = xyes
-then :
-  printf "%s\n" "#define HAVE_SSL_GET0_ALPN_SELECTED 1" >>confdefs.h
+done
 
-fi
-ac_fn_c_check_func "$LINENO" "SSL_CTX_set_alpn_protos" "ac_cv_func_SSL_CTX_set_alpn_protos"
-if test "x$ac_cv_func_SSL_CTX_set_alpn_protos" = xyes
-then :
-  printf "%s\n" "#define HAVE_SSL_CTX_SET_ALPN_PROTOS 1" >>confdefs.h
+for ac_func in OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_default_properties_is_fips_enabled EVP_MD_CTX_new OpenSSL_add_all_digests OPENSSL_init_crypto EVP_cleanup ENGINE_cleanup ERR_load_crypto_strings CRYPTO_cleanup_all_ex_data ERR_free_strings RAND_cleanup DSA_SIG_set0 EVP_dss1 EVP_DigestVerify EVP_aes_256_cbc EVP_EncryptInit_ex HMAC_Init_ex CRYPTO_THREADID_set_callback EVP_MAC_CTX_set_params OSSL_PARAM_BLD_new BIO_set_callback_ex
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
 fi
-ac_fn_c_check_func "$LINENO" "SSL_get1_peer_certificate" "ac_cv_func_SSL_get1_peer_certificate"
-if test "x$ac_cv_func_SSL_get1_peer_certificate" = xyes
-then :
-  printf "%s\n" "#define HAVE_SSL_GET1_PEER_CERTIFICATE 1" >>confdefs.h
+done
+
+
+# these check_funcs need -lssl
+BAKLIBS="$LIBS"
+LIBS="-lssl $LIBS"
+for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb SSL_get0_alpn_selected SSL_CTX_set_alpn_protos SSL_get1_peer_certificate
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
 fi
+done
 
 LIBS="$BAKLIBS"
 
-ac_fn_check_decl "$LINENO" "SSL_COMP_get_compression_methods" "ac_cv_have_decl_SSL_COMP_get_compression_methods" "
+ac_fn_c_check_decl "$LINENO" "SSL_COMP_get_compression_methods" "ac_cv_have_decl_SSL_COMP_get_compression_methods" "
 $ac_includes_default
 #ifdef HAVE_OPENSSL_ERR_H
 #include <openssl/err.h>
@@ -20209,15 +18669,17 @@ $ac_includes_default
 #include <openssl/ssl.h>
 #include <openssl/evp.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_SSL_COMP_get_compression_methods" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_SSL_COMP_get_compression_methods" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "sk_SSL_COMP_pop_free" "ac_cv_have_decl_sk_SSL_COMP_pop_free" "
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "sk_SSL_COMP_pop_free" "ac_cv_have_decl_sk_SSL_COMP_pop_free" "
 $ac_includes_default
 #ifdef HAVE_OPENSSL_ERR_H
 #include <openssl/err.h>
@@ -20237,15 +18699,17 @@ $ac_includes_default
 #include <openssl/ssl.h>
 #include <openssl/evp.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_sk_SSL_COMP_pop_free" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_sk_SSL_COMP_pop_free" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_SK_SSL_COMP_POP_FREE $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "SSL_CTX_set_ecdh_auto" "ac_cv_have_decl_SSL_CTX_set_ecdh_auto" "
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SK_SSL_COMP_POP_FREE $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "SSL_CTX_set_ecdh_auto" "ac_cv_have_decl_SSL_CTX_set_ecdh_auto" "
 $ac_includes_default
 #ifdef HAVE_OPENSSL_ERR_H
 #include <openssl/err.h>
@@ -20265,20 +18729,22 @@ $ac_includes_default
 #include <openssl/ssl.h>
 #include <openssl/evp.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_SSL_CTX_set_ecdh_auto" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_SSL_CTX_set_ecdh_auto" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_SSL_CTX_SET_ECDH_AUTO $ac_have_decl" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SSL_CTX_SET_ECDH_AUTO $ac_have_decl
+_ACEOF
 
 
 if test "$ac_cv_func_HMAC_Init_ex" = "yes"; then
 # check function return type.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the return type of HMAC_Init_ex" >&5
-printf %s "checking the return type of HMAC_Init_ex... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the return type of HMAC_Init_ex" >&5
+$as_echo_n "checking the return type of HMAC_Init_ex... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -20301,7 +18767,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 #include <openssl/evp.h>
 
 int
-main (void)
+main ()
 {
 
        HMAC_CTX* hmac_ctx = NULL;
@@ -20314,22 +18780,21 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
+if ac_fn_c_try_compile "$LINENO"; then :
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: int" >&5
-printf "%s\n" "int" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: int" >&5
+$as_echo "int" >&6; }
 
-else $as_nop
+else
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: void" >&5
-printf "%s\n" "void" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: void" >&5
+$as_echo "void" >&6; }
 
-printf "%s\n" "#define HMAC_INIT_EX_RETURNS_VOID 1" >>confdefs.h
+$as_echo "#define HMAC_INIT_EX_RETURNS_VOID 1" >>confdefs.h
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
 # libbsd
 
 # Check whether --with-libbsd was given.
-if test ${with_libbsd+y}
-then :
+if test "${with_libbsd+set}" = set; then :
   withval=$with_libbsd;
-       ac_fn_c_check_header_compile "$LINENO" "bsd/string.h" "ac_cv_header_bsd_string_h" "$ac_includes_default
+       for ac_header in bsd/string.h bsd/stdlib.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 "
-if test "x$ac_cv_header_bsd_string_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_BSD_STRING_H 1" >>confdefs.h
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
 fi
-ac_fn_c_check_header_compile "$LINENO" "bsd/stdlib.h" "ac_cv_header_bsd_stdlib_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_bsd_stdlib_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_BSD_STDLIB_H 1" >>confdefs.h
 
-fi
+done
 
        if test "x$ac_cv_header_bsd_string_h" = xyes -a "x$ac_cv_header_bsd_stdlib_h" = xyes; then
                for func in strlcpy strlcat arc4random arc4random_uniform reallocarray; do
-                       as_ac_Search=`printf "%s\n" "ac_cv_search_$func" | $as_tr_sh`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing $func" >&5
-printf %s "checking for library containing $func... " >&6; }
-if eval test \${$as_ac_Search+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+                       as_ac_Search=`$as_echo "ac_cv_search_$func" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing $func" >&5
+$as_echo_n "checking for library containing $func... " >&6; }
+if eval \${$as_ac_Search+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -20372,53 +18834,51 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char $func ();
 int
-main (void)
+main ()
 {
 return $func ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' bsd
-do
+for ac_lib in '' bsd; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   eval "$as_ac_Search=\$ac_res"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if eval test \${$as_ac_Search+y}
-then :
+  if eval \${$as_ac_Search+:} false; then :
   break
 fi
 done
-if eval test \${$as_ac_Search+y}
-then :
+if eval \${$as_ac_Search+:} false; then :
 
-else $as_nop
+else
   eval "$as_ac_Search=no"
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
 eval ac_res=\$$as_ac_Search
-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 eval ac_res=\$$as_ac_Search
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 
-printf "%s\n" "#define HAVE_LIBBSD 1" >>confdefs.h
+$as_echo "#define HAVE_LIBBSD 1" >>confdefs.h
 
                                PC_LIBBSD_DEPENDENCY=libbsd
 
@@ -20432,8 +18892,7 @@ fi
 
 
 # Check whether --enable-sha1 was given.
-if test ${enable_sha1+y}
-then :
+if test "${enable_sha1+set}" = set; then :
   enableval=$enable_sha1;
 fi
 
@@ -20442,15 +18901,14 @@ case "$enable_sha1" in
        ;;
        yes|*)
 
-printf "%s\n" "#define USE_SHA1 1" >>confdefs.h
+$as_echo "#define USE_SHA1 1" >>confdefs.h
 
        ;;
 esac
 
 
 # Check whether --enable-sha2 was given.
-if test ${enable_sha2+y}
-then :
+if test "${enable_sha2+set}" = set; then :
   enableval=$enable_sha2;
 fi
 
@@ -20459,21 +18917,20 @@ case "$enable_sha2" in
        ;;
        yes|*)
 
-printf "%s\n" "#define USE_SHA2 1" >>confdefs.h
+$as_echo "#define USE_SHA2 1" >>confdefs.h
 
        ;;
 esac
 
 # Check whether --enable-subnet was given.
-if test ${enable_subnet+y}
-then :
+if test "${enable_subnet+set}" = set; then :
   enableval=$enable_subnet;
 fi
 
 case "$enable_subnet" in
        yes)
 
-printf "%s\n" "#define CLIENT_SUBNET 1" >>confdefs.h
+$as_echo "#define CLIENT_SUBNET 1" >>confdefs.h
 
        SUBNET_OBJ="edns-subnet.lo subnetmod.lo addrtree.lo subnet-whitelist.lo"
 
@@ -20487,8 +18944,7 @@ esac
 # check whether gost also works
 
 # Check whether --enable-gost was given.
-if test ${enable_gost+y}
-then :
+if test "${enable_gost+set}" = set; then :
   enableval=$enable_gost;
 fi
 
@@ -20499,36 +18955,33 @@ case "$enable_gost" in
        ;;
        *)
        ac_fn_c_check_func "$LINENO" "EVP_PKEY_set_type_str" "ac_cv_func_EVP_PKEY_set_type_str"
-if test "x$ac_cv_func_EVP_PKEY_set_type_str" = xyes
-then :
+if test "x$ac_cv_func_EVP_PKEY_set_type_str" = xyes; then :
   :
-else $as_nop
+else
   as_fn_error $? "OpenSSL 1.0.0 is needed for GOST support" "$LINENO" 5
 fi
 
        ac_fn_c_check_func "$LINENO" "EC_KEY_new" "ac_cv_func_EC_KEY_new"
-if test "x$ac_cv_func_EC_KEY_new" = xyes
-then :
+if test "x$ac_cv_func_EC_KEY_new" = xyes; then :
 
-else $as_nop
+else
   as_fn_error $? "OpenSSL does not support ECC, needed for GOST support" "$LINENO" 5
 fi
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if GOST works" >&5
-printf %s "checking if GOST works... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if GOST works" >&5
+$as_echo_n "checking if GOST works... " >&6; }
 if test c${cross_compiling} = cno; then
 BAKCFLAGS="$CFLAGS"
 if test -n "$ssldir"; then
        CFLAGS="$CFLAGS -Wl,-rpath,$ssldir_lib"
 fi
-if test "$cross_compiling" = yes
-then :
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run test program while cross compiling
 See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -20614,10 +19067,9 @@ int main(void) {
 }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
+if ac_fn_c_try_run "$LINENO"; then :
   eval "ac_cv_c_gost_works=yes"
-else $as_nop
+else
   eval "ac_cv_c_gost_works=no"
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -20628,21 +19080,20 @@ CFLAGS="$BAKCFLAGS"
 else
 eval "ac_cv_c_gost_works=maybe"
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_gost_works" >&5
-printf "%s\n" "$ac_cv_c_gost_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_gost_works" >&5
+$as_echo "$ac_cv_c_gost_works" >&6; }
 
        if test "$ac_cv_c_gost_works" != no; then
                use_gost="yes"
 
-printf "%s\n" "#define USE_GOST 1" >>confdefs.h
+$as_echo "#define USE_GOST 1" >>confdefs.h
 
        fi
        ;;
 esac
 fi
 # Check whether --enable-ecdsa was given.
-if test ${enable_ecdsa+y}
-then :
+if test "${enable_ecdsa+set}" = set; then :
   enableval=$enable_ecdsa;
 fi
 
@@ -20653,87 +19104,90 @@ case "$enable_ecdsa" in
     *)
       if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
              ac_fn_c_check_func "$LINENO" "ECDSA_sign" "ac_cv_func_ECDSA_sign"
-if test "x$ac_cv_func_ECDSA_sign" = xyes
-then :
+if test "x$ac_cv_func_ECDSA_sign" = xyes; then :
 
-else $as_nop
+else
   as_fn_error $? "OpenSSL does not support ECDSA: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
 fi
 
              ac_fn_c_check_func "$LINENO" "SHA384_Init" "ac_cv_func_SHA384_Init"
-if test "x$ac_cv_func_SHA384_Init" = xyes
-then :
+if test "x$ac_cv_func_SHA384_Init" = xyes; then :
 
-else $as_nop
+else
   as_fn_error $? "OpenSSL does not support SHA384: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
 fi
 
-             ac_fn_check_decl "$LINENO" "NID_X9_62_prime256v1" "ac_cv_have_decl_NID_X9_62_prime256v1" "$ac_includes_default
+             ac_fn_c_check_decl "$LINENO" "NID_X9_62_prime256v1" "ac_cv_have_decl_NID_X9_62_prime256v1" "$ac_includes_default
 #include <openssl/evp.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_NID_X9_62_prime256v1" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_NID_X9_62_prime256v1" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_NID_X9_62_PRIME256V1 $ac_have_decl" >>confdefs.h
-if test $ac_have_decl = 1
-then :
 
-else $as_nop
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_NID_X9_62_PRIME256V1 $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
+
+else
   as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
 fi
-ac_fn_check_decl "$LINENO" "NID_secp384r1" "ac_cv_have_decl_NID_secp384r1" "$ac_includes_default
+ac_fn_c_check_decl "$LINENO" "NID_secp384r1" "ac_cv_have_decl_NID_secp384r1" "$ac_includes_default
 #include <openssl/evp.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_NID_secp384r1" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_NID_secp384r1" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_NID_SECP384R1 $ac_have_decl" >>confdefs.h
-if test $ac_have_decl = 1
-then :
 
-else $as_nop
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_NID_SECP384R1 $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
+
+else
   as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
 fi
 
              # see if OPENSSL 1.0.0 or later (has EVP MD and Verify independency)
-             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if openssl supports SHA2 and ECDSA with EVP" >&5
-printf %s "checking if openssl supports SHA2 and ECDSA with EVP... " >&6; }
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking if openssl supports SHA2 and ECDSA with EVP" >&5
+$as_echo_n "checking if openssl supports SHA2 and ECDSA with EVP... " >&6; }
              if grep OPENSSL_VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then
                if grep OPENSSL_VERSION_NUMBER $ssldir_include/openssl/opensslv.h | grep 0x0 >/dev/null; then
-                 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+                 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
-printf "%s\n" "#define USE_ECDSA_EVP_WORKAROUND 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define USE_ECDSA_EVP_WORKAROUND 1
+_ACEOF
 
                else
-                 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+                 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
                fi
              else
                # not OpenSSL, thus likely LibreSSL, which supports it
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
              fi
       fi
       # we now know we have ECDSA and the required curves.
 
-printf "%s\n" "#define USE_ECDSA 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define USE_ECDSA 1
+_ACEOF
 
       use_ecdsa="yes"
       ;;
 esac
 
 # Check whether --enable-dsa was given.
-if test ${enable_dsa+y}
-then :
+if test "${enable_dsa+set}" = set; then :
   enableval=$enable_dsa;
 fi
 
@@ -20743,10 +19197,9 @@ case "$enable_dsa" in
       # detect if DSA is supported, and turn it off if not.
       if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
       ac_fn_c_check_func "$LINENO" "DSA_SIG_new" "ac_cv_func_DSA_SIG_new"
-if test "x$ac_cv_func_DSA_SIG_new" = xyes
-then :
+if test "x$ac_cv_func_DSA_SIG_new" = xyes; then :
 
-      as_ac_Type=`printf "%s\n" "ac_cv_type_DSA_SIG*" | $as_tr_sh`
+      as_ac_Type=`$as_echo "ac_cv_type_DSA_SIG*" | $as_tr_sh`
 ac_fn_c_check_type "$LINENO" "DSA_SIG*" "$as_ac_Type" "
 $ac_includes_default
 #ifdef HAVE_OPENSSL_ERR_H
@@ -20766,27 +19219,30 @@ $ac_includes_default
 #endif
 
 "
-if eval test \"x\$"$as_ac_Type"\" = x"yes"
-then :
+if eval test \"x\$"$as_ac_Type"\" = x"yes"; then :
 
 
-printf "%s\n" "#define USE_DSA 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define USE_DSA 1
+_ACEOF
 
 
-else $as_nop
+else
   if test "x$enable_dsa" = "xyes"; then as_fn_error $? "OpenSSL does not support DSA and you used --enable-dsa." "$LINENO" 5
                fi
 fi
 
 
-else $as_nop
+else
   if test "x$enable_dsa" = "xyes"; then as_fn_error $? "OpenSSL does not support DSA and you used --enable-dsa." "$LINENO" 5
                fi
 fi
 
       else
 
-printf "%s\n" "#define USE_DSA 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define USE_DSA 1
+_ACEOF
 
       fi
       ;;
@@ -20798,20 +19254,18 @@ esac
 
 
 # Check whether --with-deprecate-rsa-1024 was given.
-if test ${with_deprecate_rsa_1024+y}
-then :
+if test "${with_deprecate_rsa_1024+set}" = set; then :
   withval=$with_deprecate_rsa_1024;
 fi
 
 if test "$with_deprecate_rsa_1024" = "yes"; then
 
-printf "%s\n" "#define DEPRECATE_RSA_1024 1" >>confdefs.h
+$as_echo "#define DEPRECATE_RSA_1024 1" >>confdefs.h
 
 fi
 
 # Check whether --enable-ed25519 was given.
-if test ${enable_ed25519+y}
-then :
+if test "${enable_ed25519+set}" = set; then :
   enableval=$enable_ed25519;
 fi
 
@@ -20821,52 +19275,56 @@ case "$enable_ed25519" in
       ;;
     *)
       if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
-             ac_fn_check_decl "$LINENO" "NID_ED25519" "ac_cv_have_decl_NID_ED25519" "$ac_includes_default
+             ac_fn_c_check_decl "$LINENO" "NID_ED25519" "ac_cv_have_decl_NID_ED25519" "$ac_includes_default
 #include <openssl/evp.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_NID_ED25519" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_NID_ED25519" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_NID_ED25519 $ac_have_decl" >>confdefs.h
-if test $ac_have_decl = 1
-then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_NID_ED25519 $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
 
                use_ed25519="yes"
 
-else $as_nop
+else
    if test "x$enable_ed25519" = "xyes"; then as_fn_error $? "OpenSSL does not support ED25519 and you used --enable-ed25519." "$LINENO" 5
                fi
 fi
 
       fi
       if test $USE_NETTLE = "yes"; then
-                      for ac_header in nettle/eddsa.h
+               for ac_header in nettle/eddsa.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "nettle/eddsa.h" "ac_cv_header_nettle_eddsa_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_nettle_eddsa_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_NETTLE_EDDSA_H 1" >>confdefs.h
+if test "x$ac_cv_header_nettle_eddsa_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NETTLE_EDDSA_H 1
+_ACEOF
  use_ed25519="yes"
 fi
 
 done
+
       fi
       if test $use_ed25519 = "yes"; then
 
-printf "%s\n" "#define USE_ED25519 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define USE_ED25519 1
+_ACEOF
 
       fi
       ;;
 esac
 
 # Check whether --enable-ed448 was given.
-if test ${enable_ed448+y}
-then :
+if test "${enable_ed448+set}" = set; then :
   enableval=$enable_ed448;
 fi
 
@@ -20876,23 +19334,24 @@ case "$enable_ed448" in
       ;;
     *)
       if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
-             ac_fn_check_decl "$LINENO" "NID_ED448" "ac_cv_have_decl_NID_ED448" "$ac_includes_default
+             ac_fn_c_check_decl "$LINENO" "NID_ED448" "ac_cv_have_decl_NID_ED448" "$ac_includes_default
 #include <openssl/evp.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_NID_ED448" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_NID_ED448" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_NID_ED448 $ac_have_decl" >>confdefs.h
-if test $ac_have_decl = 1
-then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_NID_ED448 $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
 
                use_ed448="yes"
 
-else $as_nop
+else
    if test "x$enable_ed448" = "xyes"; then as_fn_error $? "OpenSSL does not support ED448 and you used --enable-ed448." "$LINENO" 5
                fi
 fi
       fi
       if test $use_ed448 = "yes"; then
 
-printf "%s\n" "#define USE_ED448 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define USE_ED448 1
+_ACEOF
 
       fi
       ;;
 esac
 
 # Check whether --enable-event-api was given.
-if test ${enable_event_api+y}
-then :
+if test "${enable_event_api+set}" = set; then :
   enableval=$enable_event_api;
 fi
 
@@ -20924,42 +19384,45 @@ case "$enable_event_api" in
 esac
 
 # Check whether --enable-tfo-client was given.
-if test ${enable_tfo_client+y}
-then :
+if test "${enable_tfo_client+set}" = set; then :
   enableval=$enable_tfo_client;
 fi
 
 case "$enable_tfo_client" in
        yes)
                case "$host_os" in
-                       linux*) ac_fn_check_decl "$LINENO" "MSG_FASTOPEN" "ac_cv_have_decl_MSG_FASTOPEN" "$ac_includes_default
+                       linux*) ac_fn_c_check_decl "$LINENO" "MSG_FASTOPEN" "ac_cv_have_decl_MSG_FASTOPEN" "$ac_includes_default
 #include <netinet/tcp.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_MSG_FASTOPEN" = xyes
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&5
-printf "%s\n" "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&2;}
-else $as_nop
+"
+if test "x$ac_cv_have_decl_MSG_FASTOPEN" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&5
+$as_echo "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&2;}
+else
   as_fn_error $? "TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client" "$LINENO" 5
 fi
 
-printf "%s\n" "#define USE_MSG_FASTOPEN 1" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define USE_MSG_FASTOPEN 1
+_ACEOF
 
                                ;;
-                       darwin*) ac_fn_check_decl "$LINENO" "CONNECT_RESUME_ON_READ_WRITE" "ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" "$ac_includes_default
+                       darwin*) ac_fn_c_check_decl "$LINENO" "CONNECT_RESUME_ON_READ_WRITE" "ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" "$ac_includes_default
 #include <sys/socket.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" = xyes
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&5
-printf "%s\n" "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&2;}
-else $as_nop
+"
+if test "x$ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&5
+$as_echo "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&2;}
+else
   as_fn_error $? "TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client" "$LINENO" 5
 fi
 
-printf "%s\n" "#define USE_OSX_MSG_FASTOPEN 1" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define USE_OSX_MSG_FASTOPEN 1
+_ACEOF
 
                                ;;
                esac
@@ -20969,26 +19432,27 @@ printf "%s\n" "#define USE_OSX_MSG_FASTOPEN 1" >>confdefs.h
 esac
 
 # Check whether --enable-tfo-server was given.
-if test ${enable_tfo_server+y}
-then :
+if test "${enable_tfo_server+set}" = set; then :
   enableval=$enable_tfo_server;
 fi
 
 case "$enable_tfo_server" in
        yes)
-             ac_fn_check_decl "$LINENO" "TCP_FASTOPEN" "ac_cv_have_decl_TCP_FASTOPEN" "$ac_includes_default
+             ac_fn_c_check_decl "$LINENO" "TCP_FASTOPEN" "ac_cv_have_decl_TCP_FASTOPEN" "$ac_includes_default
 #include <netinet/tcp.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_TCP_FASTOPEN" = xyes
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support server mode TFO" >&5
-printf "%s\n" "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support server mode TFO" >&2;}
-else $as_nop
+"
+if test "x$ac_cv_have_decl_TCP_FASTOPEN" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support server mode TFO" >&5
+$as_echo "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support server mode TFO" >&2;}
+else
   as_fn_error $? "TCP Fast Open is not available for server mode: please rerun without --enable-tfo-server" "$LINENO" 5
 fi
 
-printf "%s\n" "#define USE_TCP_FASTOPEN 1" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define USE_TCP_FASTOPEN 1
+_ACEOF
 
                ;;
        no|*)
@@ -20998,19 +19462,18 @@ esac
 # check for libevent
 
 # Check whether --with-libevent was given.
-if test ${with_libevent+y}
-then :
+if test "${with_libevent+set}" = set; then :
   withval=$with_libevent;
-else $as_nop
+else
    with_libevent="no"
 fi
 
 if test "x_$with_libevent" != x_no; then
 
-printf "%s\n" "#define USE_LIBEVENT 1" >>confdefs.h
+$as_echo "#define USE_LIBEVENT 1" >>confdefs.h
 
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libevent" >&5
-printf %s "checking for libevent... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent" >&5
+$as_echo_n "checking for libevent... " >&6; }
         if test "x_$with_libevent" = x_ -o "x_$with_libevent" = x_yes; then
             with_libevent="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
         fi
@@ -21027,8 +19490,8 @@ printf %s "checking for libevent... " >&6; }
         if test x_$found_libevent != x_yes; then
                if test -f "$dir/event.h" -a \( -f "$dir/libevent.la" -o -f "$dir/libev.la" \) ; then
                        # libevent source directory
-                       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $thedir" >&5
-printf "%s\n" "found in $thedir" >&6; }
+                       { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $thedir" >&5
+$as_echo "found in $thedir" >&6; }
                        CPPFLAGS="$CPPFLAGS -I$thedir -I$thedir/include"
                        BAK_LDFLAGS_SET="1"
                        BAK_LDFLAGS="$LDFLAGS"
@@ -21051,8 +19514,8 @@ Please note that this alternative is not as capable as libevent when using
 large outgoing port ranges.  " "$LINENO" 5
                fi
         else
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $thedir" >&5
-printf "%s\n" "found in $thedir" >&6; }
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $thedir" >&5
+$as_echo "found in $thedir" >&6; }
                    if test ! -f $thedir/lib/libevent.a -a ! -f $thedir/lib/libevent.so -a -d "$thedir/lib/event2"; then
                    LDFLAGS="$LDFLAGS -L$thedir/lib/event2"
 
@@ -21076,12 +19539,11 @@ printf "%s\n" "found in $thedir" >&6; }
            fi
         fi
        # check for library used by libevent after 1.3c
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-printf %s "checking for library containing clock_gettime... " >&6; }
-if test ${ac_cv_search_clock_gettime+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if ${ac_cv_search_clock_gettime+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -21089,75 +19551,76 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char clock_gettime ();
 int
-main (void)
+main ()
 {
 return clock_gettime ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' rt
-do
+for ac_lib in '' rt; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_clock_gettime=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_clock_gettime+y}
-then :
+  if ${ac_cv_search_clock_gettime+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_clock_gettime+y}
-then :
+if ${ac_cv_search_clock_gettime+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_clock_gettime=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
+$as_echo "$ac_cv_search_clock_gettime" >&6; }
 ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 
        # is the event.h header libev or libevent?
-       ac_fn_c_check_header_compile "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default
+       for ac_header in event.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_event_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVENT_H 1" >>confdefs.h
+if test "x$ac_cv_header_event_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EVENT_H 1
+_ACEOF
 
 fi
 
-       ac_fn_check_decl "$LINENO" "EV_VERSION_MAJOR" "ac_cv_have_decl_EV_VERSION_MAJOR" "$ac_includes_default
+done
+
+       ac_fn_c_check_decl "$LINENO" "EV_VERSION_MAJOR" "ac_cv_have_decl_EV_VERSION_MAJOR" "$ac_includes_default
 #include <event.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_EV_VERSION_MAJOR" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_EV_VERSION_MAJOR" = xyes; then :
 
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
-printf %s "checking for library containing event_set... " >&6; }
-if test ${ac_cv_search_event_set+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+               { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
+$as_echo_n "checking for library containing event_set... " >&6; }
+if ${ac_cv_search_event_set+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -21165,61 +19628,58 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char event_set ();
 int
-main (void)
+main ()
 {
 return event_set ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' ev
-do
+for ac_lib in '' ev; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_event_set=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_event_set+y}
-then :
+  if ${ac_cv_search_event_set+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_event_set+y}
-then :
+if ${ac_cv_search_event_set+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_event_set=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_set" >&5
-printf "%s\n" "$ac_cv_search_event_set" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_set" >&5
+$as_echo "$ac_cv_search_event_set" >&6; }
 ac_res=$ac_cv_search_event_set
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 
-else $as_nop
+else
 
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
-printf %s "checking for library containing event_set... " >&6; }
-if test ${ac_cv_search_event_set+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+               { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
+$as_echo_n "checking for library containing event_set... " >&6; }
+if ${ac_cv_search_event_set+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -21227,118 +19687,147 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char event_set ();
 int
-main (void)
+main ()
 {
 return event_set ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' event
-do
+for ac_lib in '' event; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_event_set=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_event_set+y}
-then :
+  if ${ac_cv_search_event_set+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_event_set+y}
-then :
+if ${ac_cv_search_event_set+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_event_set=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_set" >&5
-printf "%s\n" "$ac_cv_search_event_set" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_set" >&5
+$as_echo "$ac_cv_search_event_set" >&6; }
 ac_res=$ac_cv_search_event_set
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 
 fi
-       ac_fn_c_check_func "$LINENO" "event_base_free" "ac_cv_func_event_base_free"
-if test "x$ac_cv_func_event_base_free" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVENT_BASE_FREE 1" >>confdefs.h
+
+       for ac_func in event_base_free
+do :
+  ac_fn_c_check_func "$LINENO" "event_base_free" "ac_cv_func_event_base_free"
+if test "x$ac_cv_func_event_base_free" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EVENT_BASE_FREE 1
+_ACEOF
 
 fi
+done
  # only in libevent 1.2 and later
-       ac_fn_c_check_func "$LINENO" "event_base_once" "ac_cv_func_event_base_once"
-if test "x$ac_cv_func_event_base_once" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVENT_BASE_ONCE 1" >>confdefs.h
+       for ac_func in event_base_once
+do :
+  ac_fn_c_check_func "$LINENO" "event_base_once" "ac_cv_func_event_base_once"
+if test "x$ac_cv_func_event_base_once" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EVENT_BASE_ONCE 1
+_ACEOF
 
 fi
+done
  # only in libevent 1.4.1 and later
-       ac_fn_c_check_func "$LINENO" "event_base_new" "ac_cv_func_event_base_new"
-if test "x$ac_cv_func_event_base_new" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVENT_BASE_NEW 1" >>confdefs.h
+       for ac_func in event_base_new
+do :
+  ac_fn_c_check_func "$LINENO" "event_base_new" "ac_cv_func_event_base_new"
+if test "x$ac_cv_func_event_base_new" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EVENT_BASE_NEW 1
+_ACEOF
 
 fi
+done
  # only in libevent 1.4.1 and later
-       ac_fn_c_check_func "$LINENO" "event_base_get_method" "ac_cv_func_event_base_get_method"
-if test "x$ac_cv_func_event_base_get_method" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVENT_BASE_GET_METHOD 1" >>confdefs.h
+       for ac_func in event_base_get_method
+do :
+  ac_fn_c_check_func "$LINENO" "event_base_get_method" "ac_cv_func_event_base_get_method"
+if test "x$ac_cv_func_event_base_get_method" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EVENT_BASE_GET_METHOD 1
+_ACEOF
 
 fi
+done
  # only in libevent 1.4.3 and later
-       ac_fn_c_check_func "$LINENO" "ev_loop" "ac_cv_func_ev_loop"
-if test "x$ac_cv_func_ev_loop" = xyes
-then :
-  printf "%s\n" "#define HAVE_EV_LOOP 1" >>confdefs.h
+       for ac_func in ev_loop
+do :
+  ac_fn_c_check_func "$LINENO" "ev_loop" "ac_cv_func_ev_loop"
+if test "x$ac_cv_func_ev_loop" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EV_LOOP 1
+_ACEOF
 
 fi
+done
  # only in libev. (tested on 3.51)
-       ac_fn_c_check_func "$LINENO" "ev_default_loop" "ac_cv_func_ev_default_loop"
-if test "x$ac_cv_func_ev_default_loop" = xyes
-then :
-  printf "%s\n" "#define HAVE_EV_DEFAULT_LOOP 1" >>confdefs.h
+       for ac_func in ev_default_loop
+do :
+  ac_fn_c_check_func "$LINENO" "ev_default_loop" "ac_cv_func_ev_default_loop"
+if test "x$ac_cv_func_ev_default_loop" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EV_DEFAULT_LOOP 1
+_ACEOF
 
 fi
+done
  # only in libev. (tested on 4.00)
-       ac_fn_c_check_func "$LINENO" "event_assign" "ac_cv_func_event_assign"
-if test "x$ac_cv_func_event_assign" = xyes
-then :
-  printf "%s\n" "#define HAVE_EVENT_ASSIGN 1" >>confdefs.h
+       for ac_func in event_assign
+do :
+  ac_fn_c_check_func "$LINENO" "event_assign" "ac_cv_func_event_assign"
+if test "x$ac_cv_func_event_assign" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EVENT_ASSIGN 1
+_ACEOF
 
 fi
+done
  # in libevent, for thread-safety
-       ac_fn_check_decl "$LINENO" "evsignal_assign" "ac_cv_have_decl_evsignal_assign" "$ac_includes_default
+       ac_fn_c_check_decl "$LINENO" "evsignal_assign" "ac_cv_have_decl_evsignal_assign" "$ac_includes_default
 #ifdef HAVE_EVENT_H
 #  include <event.h>
 #else
 #  include \"event2/event.h\"
 #endif
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_evsignal_assign" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_evsignal_assign" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_EVSIGNAL_ASSIGN $ac_have_decl" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_EVSIGNAL_ASSIGN $ac_have_decl
+_ACEOF
 
         PC_LIBEVENT_DEPENDENCY="libevent"
 
@@ -21347,22 +19836,21 @@ printf "%s\n" "#define HAVE_DECL_EVSIGNAL_ASSIGN $ac_have_decl" >>confdefs.h
        fi
 else
 
-printf "%s\n" "#define USE_MINI_EVENT 1" >>confdefs.h
+$as_echo "#define USE_MINI_EVENT 1" >>confdefs.h
 
 fi
 
 # check for libexpat
 
 # Check whether --with-libexpat was given.
-if test ${with_libexpat+y}
-then :
+if test "${with_libexpat+set}" = set; then :
   withval=$with_libexpat;
-else $as_nop
+else
    withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
 fi
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libexpat" >&5
-printf %s "checking for libexpat... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libexpat" >&5
+$as_echo_n "checking for libexpat... " >&6; }
 found_libexpat="no"
 for dir in $withval ; do
             if test -f "$dir/include/expat.h"; then
@@ -21371,49 +19859,55 @@ for dir in $withval ; do
                     CPPFLAGS="$CPPFLAGS -I$dir/include"
                    LDFLAGS="$LDFLAGS -L$dir/lib"
                fi
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
-printf "%s\n" "found in $dir" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
+$as_echo "found in $dir" >&6; }
                 break;
             fi
 done
 if test x_$found_libexpat != x_yes; then
        as_fn_error $? "Could not find libexpat, expat.h" "$LINENO" 5
 fi
-ac_fn_c_check_header_compile "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default
+for ac_header in expat.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_expat_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_EXPAT_H 1" >>confdefs.h
+if test "x$ac_cv_header_expat_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EXPAT_H 1
+_ACEOF
 
 fi
 
-ac_fn_check_decl "$LINENO" "XML_StopParser" "ac_cv_have_decl_XML_StopParser" "$ac_includes_default
+done
+
+ac_fn_c_check_decl "$LINENO" "XML_StopParser" "ac_cv_have_decl_XML_StopParser" "$ac_includes_default
 #include <expat.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_XML_StopParser" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_XML_StopParser" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_XML_STOPPARSER $ac_have_decl" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_XML_STOPPARSER $ac_have_decl
+_ACEOF
 
 
 # hiredis (redis C client for cachedb)
 
 # Check whether --with-libhiredis was given.
-if test ${with_libhiredis+y}
-then :
+if test "${with_libhiredis+set}" = set; then :
   withval=$with_libhiredis;
-else $as_nop
+else
    withval="no"
 fi
 
 found_libhiredis="no"
 if test x_$withval = x_yes -o x_$withval != x_no; then
-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libhiredis" >&5
-printf %s "checking for libhiredis... " >&6; }
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libhiredis" >&5
+$as_echo_n "checking for libhiredis... " >&6; }
    if test x_$withval = x_ -o x_$withval = x_yes; then
             withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
    fi
@@ -21424,10 +19918,10 @@ printf %s "checking for libhiredis... " >&6; }
                     CPPFLAGS="$CPPFLAGS -I$dir/include"
                    LDFLAGS="$LDFLAGS -L$dir/lib"
                fi
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
-printf "%s\n" "found in $dir" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
+$as_echo "found in $dir" >&6; }
 
-printf "%s\n" "#define USE_REDIS 1" >>confdefs.h
+$as_echo "#define USE_REDIS 1" >>confdefs.h
 
                LIBS="$LIBS -lhiredis"
                 break;
@@ -21436,42 +19930,48 @@ printf "%s\n" "#define USE_REDIS 1" >>confdefs.h
     if test x_$found_libhiredis != x_yes; then
        as_fn_error $? "Could not find libhiredis, hiredis.h" "$LINENO" 5
     fi
-    ac_fn_c_check_header_compile "$LINENO" "hiredis/hiredis.h" "ac_cv_header_hiredis_hiredis_h" "$ac_includes_default
+    for ac_header in hiredis/hiredis.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "hiredis/hiredis.h" "ac_cv_header_hiredis_hiredis_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_hiredis_hiredis_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_HIREDIS_HIREDIS_H 1" >>confdefs.h
+if test "x$ac_cv_header_hiredis_hiredis_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_HIREDIS_HIREDIS_H 1
+_ACEOF
 
 fi
 
-    ac_fn_check_decl "$LINENO" "redisConnect" "ac_cv_have_decl_redisConnect" "$ac_includes_default
+done
+
+    ac_fn_c_check_decl "$LINENO" "redisConnect" "ac_cv_have_decl_redisConnect" "$ac_includes_default
     #include <hiredis/hiredis.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_redisConnect" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_redisConnect" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_REDISCONNECT $ac_have_decl" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_REDISCONNECT $ac_have_decl
+_ACEOF
 
 fi
 
 # nghttp2
 
 # Check whether --with-libnghttp2 was given.
-if test ${with_libnghttp2+y}
-then :
+if test "${with_libnghttp2+set}" = set; then :
   withval=$with_libnghttp2;
-else $as_nop
+else
    withval="no"
 fi
 
 found_libnghttp2="no"
 if test x_$withval = x_yes -o x_$withval != x_no; then
-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libnghttp2" >&5
-printf %s "checking for libnghttp2... " >&6; }
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnghttp2" >&5
+$as_echo_n "checking for libnghttp2... " >&6; }
    if test x_$withval = x_ -o x_$withval = x_yes; then
             withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
    fi
@@ -21482,10 +19982,10 @@ printf %s "checking for libnghttp2... " >&6; }
                     CPPFLAGS="$CPPFLAGS -I$dir/include"
                    LDFLAGS="$LDFLAGS -L$dir/lib"
                fi
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
-printf "%s\n" "found in $dir" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
+$as_echo "found in $dir" >&6; }
 
-printf "%s\n" "#define HAVE_NGHTTP2 1" >>confdefs.h
+$as_echo "#define HAVE_NGHTTP2 1" >>confdefs.h
 
                LIBS="$LIBS -lnghttp2"
                 break;
@@ -21494,25 +19994,32 @@ printf "%s\n" "#define HAVE_NGHTTP2 1" >>confdefs.h
     if test x_$found_libnghttp2 != x_yes; then
        as_fn_error $? "Could not find libnghttp2, nghttp2.h" "$LINENO" 5
     fi
-    ac_fn_c_check_header_compile "$LINENO" "nghttp2/nghttp2.h" "ac_cv_header_nghttp2_nghttp2_h" "$ac_includes_default
+    for ac_header in nghttp2/nghttp2.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "nghttp2/nghttp2.h" "ac_cv_header_nghttp2_nghttp2_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_nghttp2_nghttp2_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_NGHTTP2_NGHTTP2_H 1" >>confdefs.h
+if test "x$ac_cv_header_nghttp2_nghttp2_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NGHTTP2_NGHTTP2_H 1
+_ACEOF
 
 fi
 
-    ac_fn_check_decl "$LINENO" "nghttp2_session_server_new" "ac_cv_have_decl_nghttp2_session_server_new" "$ac_includes_default
+done
+
+    ac_fn_c_check_decl "$LINENO" "nghttp2_session_server_new" "ac_cv_have_decl_nghttp2_session_server_new" "$ac_includes_default
     #include <nghttp2/nghttp2.h>
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_nghttp2_session_server_new" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_nghttp2_session_server_new" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_NGHTTP2_SESSION_SERVER_NEW $ac_have_decl" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_NGHTTP2_SESSION_SERVER_NEW $ac_have_decl
+_ACEOF
 
 fi
 
@@ -21520,8 +20027,7 @@ fi
 
 staticexe=""
 # Check whether --enable-static-exe was given.
-if test ${enable_static_exe+y}
-then :
+if test "${enable_static_exe+set}" = set; then :
   enableval=$enable_static_exe;
 fi
 
@@ -21535,12 +20041,11 @@ if test x_$enable_static_exe = x_yes; then
                else
                        LIBS="$LIBS -lgdi32"
                fi
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5
-printf %s "checking for compress in -lz... " >&6; }
-if test ${ac_cv_lib_z_compress+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+               { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5
+$as_echo_n "checking for compress in -lz... " >&6; }
+if ${ac_cv_lib_z_compress+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lz  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21549,29 +20054,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char compress ();
 int
-main (void)
+main ()
 {
 return compress ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_z_compress=yes
-else $as_nop
+else
   ac_cv_lib_z_compress=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
-printf "%s\n" "$ac_cv_lib_z_compress" >&6; }
-if test "x$ac_cv_lib_z_compress" = xyes
-then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
+$as_echo "$ac_cv_lib_z_compress" >&6; }
+if test "x$ac_cv_lib_z_compress" = xyes; then :
    LIBS="$LIBS -lz"
 fi
 
@@ -21581,8 +20087,7 @@ fi
 
 # set full static linking if requested
 # Check whether --enable-fully-static was given.
-if test ${enable_fully_static+y}
-then :
+if test "${enable_fully_static+set}" = set; then :
   enableval=$enable_fully_static;
 fi
 
@@ -21595,12 +20100,11 @@ if test x_$enable_fully_static = x_yes; then
                else
                        LIBS="$LIBS -lgdi32"
                fi
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5
-printf %s "checking for compress in -lz... " >&6; }
-if test ${ac_cv_lib_z_compress+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+               { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5
+$as_echo_n "checking for compress in -lz... " >&6; }
+if ${ac_cv_lib_z_compress+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lz  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21609,29 +20113,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char compress ();
 int
-main (void)
+main ()
 {
 return compress ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_z_compress=yes
-else $as_nop
+else
   ac_cv_lib_z_compress=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
-printf "%s\n" "$ac_cv_lib_z_compress" >&6; }
-if test "x$ac_cv_lib_z_compress" = xyes
-then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
+$as_echo "$ac_cv_lib_z_compress" >&6; }
+if test "x$ac_cv_lib_z_compress" = xyes; then :
    LIBS="$LIBS -lz"
 fi
 
 
 # set lock checking if requested
 # Check whether --enable-lock_checks was given.
-if test ${enable_lock_checks+y}
-then :
+if test "${enable_lock_checks+set}" = set; then :
   enableval=$enable_lock_checks;
 fi
 
 if test x_$enable_lock_checks = x_yes; then
 
-printf "%s\n" "#define ENABLE_LOCK_CHECKS 1" >>confdefs.h
+$as_echo "#define ENABLE_LOCK_CHECKS 1" >>confdefs.h
 
        CHECKLOCK_OBJ="checklocks.lo"
 
 fi
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5
-printf %s "checking for getaddrinfo... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5
+$as_echo_n "checking for getaddrinfo... " >&6; }
 ac_cv_func_getaddrinfo=no
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -21676,12 +20180,11 @@ int main() {
 }
 
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_func_getaddrinfo="yes"
 if test "$ac_cv_header_windows_h" = "yes"; then
 
-printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
+$as_echo "#define USE_WINSOCK 1" >>confdefs.h
 
        USE_WINSOCK="1"
        if echo $LIBS | grep 'lws2_32' >/dev/null; then
@@ -21691,7 +20194,7 @@ printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
        fi
 fi
 
-else $as_nop
+else
   ORIGLIBS="$LIBS"
 LIBS="$LIBS -lws2_32"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21702,7 +20205,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 #endif
 
 int
-main (void)
+main ()
 {
 
         (void)getaddrinfo(NULL, NULL, NULL, NULL);
@@ -21712,59 +20215,62 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
 ac_cv_func_getaddrinfo="yes"
 
-printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
+$as_echo "#define USE_WINSOCK 1" >>confdefs.h
 
 USE_WINSOCK="1"
 
-else $as_nop
+else
 
 ac_cv_func_getaddrinfo="no"
 LIBS="$ORIGLIBS"
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5
-printf "%s\n" "$ac_cv_func_getaddrinfo" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5
+$as_echo "$ac_cv_func_getaddrinfo" >&6; }
 if test $ac_cv_func_getaddrinfo = yes; then
 
-printf "%s\n" "#define HAVE_GETADDRINFO 1" >>confdefs.h
+$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h
 
 fi
 
 if test "$USE_WINSOCK" = 1; then
 
-printf "%s\n" "#define UB_ON_WINDOWS 1" >>confdefs.h
+$as_echo "#define UB_ON_WINDOWS 1" >>confdefs.h
 
-       ac_fn_c_check_header_compile "$LINENO" "iphlpapi.h" "ac_cv_header_iphlpapi_h" "$ac_includes_default
+       for ac_header in iphlpapi.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "iphlpapi.h" "ac_cv_header_iphlpapi_h" "$ac_includes_default
 #include <windows.h>
 
 "
-if test "x$ac_cv_header_iphlpapi_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_IPHLPAPI_H 1" >>confdefs.h
+if test "x$ac_cv_header_iphlpapi_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_IPHLPAPI_H 1
+_ACEOF
 
 fi
 
+done
+
        if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args.
 set dummy ${ac_tool_prefix}windres; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_WINDRES+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_WINDRES+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$WINDRES"; then
   ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test.
 else
@@ -21772,15 +20278,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_WINDRES="${ac_tool_prefix}windres"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 WINDRES=$ac_cv_prog_WINDRES
 if test -n "$WINDRES"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5
-printf "%s\n" "$WINDRES" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5
+$as_echo "$WINDRES" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -21804,12 +20306,11 @@ if test -z "$ac_cv_prog_WINDRES"; then
   ac_ct_WINDRES=$WINDRES
   # Extract the first word of "windres", so it can be a program name with args.
 set dummy windres; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_WINDRES+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_WINDRES+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   if test -n "$ac_ct_WINDRES"; then
   ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test.
 else
@@ -21817,15 +20318,11 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_WINDRES="windres"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 fi
 ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES
 if test -n "$ac_ct_WINDRES"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5
-printf "%s\n" "$ac_ct_WINDRES" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5
+$as_echo "$ac_ct_WINDRES" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_WINDRES" = x; then
@@ -21848,8 +20345,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     WINDRES=$ac_ct_WINDRES
@@ -21876,7 +20373,7 @@ fi
        WIN_CHECKCONF_OBJ_LINK="rsrc_unbound_checkconf.o"
 
 
-printf "%s\n" "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h
+$as_echo "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h
 
 fi
 if test $ac_cv_func_getaddrinfo = no; then
@@ -21890,8 +20387,8 @@ fi
 # check after getaddrinfo for its libraries
 
 # check ioctlsocket
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ioctlsocket" >&5
-printf %s "checking for ioctlsocket... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ioctlsocket" >&5
+$as_echo_n "checking for ioctlsocket... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -21900,7 +20397,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 #endif
 
 int
-main (void)
+main ()
 {
 
        (void)ioctlsocket(0, 0, NULL);
@@ -21909,41 +20406,43 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
+if ac_fn_c_try_link "$LINENO"; then :
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-printf "%s\n" "#define HAVE_IOCTLSOCKET 1" >>confdefs.h
+$as_echo "#define HAVE_IOCTLSOCKET 1" >>confdefs.h
 
 
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 
 # see if daemon(3) exists, and if it is deprecated.
-ac_fn_c_check_func "$LINENO" "daemon" "ac_cv_func_daemon"
-if test "x$ac_cv_func_daemon" = xyes
-then :
-  printf "%s\n" "#define HAVE_DAEMON 1" >>confdefs.h
+for ac_func in daemon
+do :
+  ac_fn_c_check_func "$LINENO" "daemon" "ac_cv_func_daemon"
+if test "x$ac_cv_func_daemon" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DAEMON 1
+_ACEOF
 
 fi
+done
 
 if test $ac_cv_func_daemon = yes; then
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if daemon is deprecated" >&5
-printf %s "checking if daemon is deprecated... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if daemon is deprecated" >&5
+$as_echo_n "checking if daemon is deprecated... " >&6; }
 cache=`echo daemon | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_cc_deprecated_$cache+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+if eval \${cv_cc_deprecated_$cache+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
 echo '
 #include <stdlib.h>
@@ -21960,16 +20459,18 @@ rm -f conftest conftest.o conftest.c
 fi
 
 if eval "test \"`echo '$cv_cc_deprecated_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-printf "%s\n" "#define DEPRECATED_DAEMON 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define DEPRECATED_DAEMON 1
+_ACEOF
 
 :
 
 else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 :
 
 fi
@@ -21983,10 +20484,11 @@ $ac_includes_default
 #endif
 
 "
-if test "x$ac_cv_member_struct_sockaddr_un_sun_len" = xyes
-then :
+if test "x$ac_cv_member_struct_sockaddr_un_sun_len" = xyes; then :
 
-printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_UN_SUN_LEN 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_SOCKADDR_UN_SUN_LEN 1
+_ACEOF
 
 
 fi
@@ -22026,17 +20528,18 @@ $ac_includes_default
 #endif
 
 "
-if test "x$ac_cv_member_struct_in_pktinfo_ipi_spec_dst" = xyes
-then :
+if test "x$ac_cv_member_struct_in_pktinfo_ipi_spec_dst" = xyes; then :
 
-printf "%s\n" "#define HAVE_STRUCT_IN_PKTINFO_IPI_SPEC_DST 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_IN_PKTINFO_IPI_SPEC_DST 1
+_ACEOF
 
 
 fi
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for htobe64" >&5
-printf %s "checking for htobe64... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for htobe64" >&5
+$as_echo_n "checking for htobe64... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -22049,29 +20552,28 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 #endif
 
 int
-main (void)
+main ()
 {
 unsigned long long x = htobe64(0); printf("%u", (unsigned)x);
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+if ac_fn_c_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-printf "%s\n" "#define HAVE_HTOBE64 1" >>confdefs.h
+$as_echo "#define HAVE_HTOBE64 1" >>confdefs.h
 
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for be64toh" >&5
-printf %s "checking for be64toh... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for be64toh" >&5
+$as_echo_n "checking for be64toh... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -22084,33 +20586,31 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 #endif
 
 int
-main (void)
+main ()
 {
 unsigned long long x = be64toh(0); printf("%u", (unsigned)x);
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+if ac_fn_c_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-printf "%s\n" "#define HAVE_BE64TOH 1" >>confdefs.h
+$as_echo "#define HAVE_BE64TOH 1" >>confdefs.h
 
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setusercontext" >&5
-printf %s "checking for library containing setusercontext... " >&6; }
-if test ${ac_cv_search_setusercontext+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setusercontext" >&5
+$as_echo_n "checking for library containing setusercontext... " >&6; }
+if ${ac_cv_search_setusercontext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -22118,291 +20618,116 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char setusercontext ();
 int
-main (void)
+main ()
 {
 return setusercontext ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' util
-do
+for ac_lib in '' util; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_setusercontext=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_setusercontext+y}
-then :
+  if ${ac_cv_search_setusercontext+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_setusercontext+y}
-then :
+if ${ac_cv_search_setusercontext+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_setusercontext=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setusercontext" >&5
-printf "%s\n" "$ac_cv_search_setusercontext" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setusercontext" >&5
+$as_echo "$ac_cv_search_setusercontext" >&6; }
 ac_res=$ac_cv_search_setusercontext
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
-ac_fn_c_check_func "$LINENO" "tzset" "ac_cv_func_tzset"
-if test "x$ac_cv_func_tzset" = xyes
-then :
-  printf "%s\n" "#define HAVE_TZSET 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask"
-if test "x$ac_cv_func_sigprocmask" = xyes
-then :
-  printf "%s\n" "#define HAVE_SIGPROCMASK 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "fcntl" "ac_cv_func_fcntl"
-if test "x$ac_cv_func_fcntl" = xyes
-then :
-  printf "%s\n" "#define HAVE_FCNTL 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "getpwnam" "ac_cv_func_getpwnam"
-if test "x$ac_cv_func_getpwnam" = xyes
-then :
-  printf "%s\n" "#define HAVE_GETPWNAM 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "endpwent" "ac_cv_func_endpwent"
-if test "x$ac_cv_func_endpwent" = xyes
-then :
-  printf "%s\n" "#define HAVE_ENDPWENT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit"
-if test "x$ac_cv_func_getrlimit" = xyes
-then :
-  printf "%s\n" "#define HAVE_GETRLIMIT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit"
-if test "x$ac_cv_func_setrlimit" = xyes
-then :
-  printf "%s\n" "#define HAVE_SETRLIMIT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "setsid" "ac_cv_func_setsid"
-if test "x$ac_cv_func_setsid" = xyes
-then :
-  printf "%s\n" "#define HAVE_SETSID 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "chroot" "ac_cv_func_chroot"
-if test "x$ac_cv_func_chroot" = xyes
-then :
-  printf "%s\n" "#define HAVE_CHROOT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "kill" "ac_cv_func_kill"
-if test "x$ac_cv_func_kill" = xyes
-then :
-  printf "%s\n" "#define HAVE_KILL 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "chown" "ac_cv_func_chown"
-if test "x$ac_cv_func_chown" = xyes
-then :
-  printf "%s\n" "#define HAVE_CHOWN 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "sleep" "ac_cv_func_sleep"
-if test "x$ac_cv_func_sleep" = xyes
-then :
-  printf "%s\n" "#define HAVE_SLEEP 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "usleep" "ac_cv_func_usleep"
-if test "x$ac_cv_func_usleep" = xyes
-then :
-  printf "%s\n" "#define HAVE_USLEEP 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "random" "ac_cv_func_random"
-if test "x$ac_cv_func_random" = xyes
-then :
-  printf "%s\n" "#define HAVE_RANDOM 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "srandom" "ac_cv_func_srandom"
-if test "x$ac_cv_func_srandom" = xyes
-then :
-  printf "%s\n" "#define HAVE_SRANDOM 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "recvmsg" "ac_cv_func_recvmsg"
-if test "x$ac_cv_func_recvmsg" = xyes
-then :
-  printf "%s\n" "#define HAVE_RECVMSG 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "sendmsg" "ac_cv_func_sendmsg"
-if test "x$ac_cv_func_sendmsg" = xyes
-then :
-  printf "%s\n" "#define HAVE_SENDMSG 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "writev" "ac_cv_func_writev"
-if test "x$ac_cv_func_writev" = xyes
-then :
-  printf "%s\n" "#define HAVE_WRITEV 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "socketpair" "ac_cv_func_socketpair"
-if test "x$ac_cv_func_socketpair" = xyes
-then :
-  printf "%s\n" "#define HAVE_SOCKETPAIR 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "glob" "ac_cv_func_glob"
-if test "x$ac_cv_func_glob" = xyes
-then :
-  printf "%s\n" "#define HAVE_GLOB 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "initgroups" "ac_cv_func_initgroups"
-if test "x$ac_cv_func_initgroups" = xyes
-then :
-  printf "%s\n" "#define HAVE_INITGROUPS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
-if test "x$ac_cv_func_strftime" = xyes
-then :
-  printf "%s\n" "#define HAVE_STRFTIME 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "localtime_r" "ac_cv_func_localtime_r"
-if test "x$ac_cv_func_localtime_r" = xyes
-then :
-  printf "%s\n" "#define HAVE_LOCALTIME_R 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "setusercontext" "ac_cv_func_setusercontext"
-if test "x$ac_cv_func_setusercontext" = xyes
-then :
-  printf "%s\n" "#define HAVE_SETUSERCONTEXT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "_beginthreadex" "ac_cv_func__beginthreadex"
-if test "x$ac_cv_func__beginthreadex" = xyes
-then :
-  printf "%s\n" "#define HAVE__BEGINTHREADEX 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "endservent" "ac_cv_func_endservent"
-if test "x$ac_cv_func_endservent" = xyes
-then :
-  printf "%s\n" "#define HAVE_ENDSERVENT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "endprotoent" "ac_cv_func_endprotoent"
-if test "x$ac_cv_func_endprotoent" = xyes
-then :
-  printf "%s\n" "#define HAVE_ENDPROTOENT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "fsync" "ac_cv_func_fsync"
-if test "x$ac_cv_func_fsync" = xyes
-then :
-  printf "%s\n" "#define HAVE_FSYNC 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "shmget" "ac_cv_func_shmget"
-if test "x$ac_cv_func_shmget" = xyes
-then :
-  printf "%s\n" "#define HAVE_SHMGET 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "accept4" "ac_cv_func_accept4"
-if test "x$ac_cv_func_accept4" = xyes
-then :
-  printf "%s\n" "#define HAVE_ACCEPT4 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "getifaddrs" "ac_cv_func_getifaddrs"
-if test "x$ac_cv_func_getifaddrs" = xyes
-then :
-  printf "%s\n" "#define HAVE_GETIFADDRS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "if_nametoindex" "ac_cv_func_if_nametoindex"
-if test "x$ac_cv_func_if_nametoindex" = xyes
-then :
-  printf "%s\n" "#define HAVE_IF_NAMETOINDEX 1" >>confdefs.h
+for ac_func in tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget accept4 getifaddrs if_nametoindex poll gettid
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
 fi
+done
 
-
-  for ac_func in setresuid
+for ac_func in setresuid
 do :
   ac_fn_c_check_func "$LINENO" "setresuid" "ac_cv_func_setresuid"
-if test "x$ac_cv_func_setresuid" = xyes
-then :
-  printf "%s\n" "#define HAVE_SETRESUID 1" >>confdefs.h
+if test "x$ac_cv_func_setresuid" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SETRESUID 1
+_ACEOF
 
-else $as_nop
+else
+  for ac_func in setreuid
+do :
   ac_fn_c_check_func "$LINENO" "setreuid" "ac_cv_func_setreuid"
-if test "x$ac_cv_func_setreuid" = xyes
-then :
-  printf "%s\n" "#define HAVE_SETREUID 1" >>confdefs.h
+if test "x$ac_cv_func_setreuid" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SETREUID 1
+_ACEOF
 
 fi
+done
 
 fi
-
 done
 
-  for ac_func in setresgid
+for ac_func in setresgid
 do :
   ac_fn_c_check_func "$LINENO" "setresgid" "ac_cv_func_setresgid"
-if test "x$ac_cv_func_setresgid" = xyes
-then :
-  printf "%s\n" "#define HAVE_SETRESGID 1" >>confdefs.h
+if test "x$ac_cv_func_setresgid" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SETRESGID 1
+_ACEOF
 
-else $as_nop
+else
+  for ac_func in setregid
+do :
   ac_fn_c_check_func "$LINENO" "setregid" "ac_cv_func_setregid"
-if test "x$ac_cv_func_setregid" = xyes
-then :
-  printf "%s\n" "#define HAVE_SETREGID 1" >>confdefs.h
+if test "x$ac_cv_func_setregid" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SETREGID 1
+_ACEOF
 
 fi
+done
 
 fi
-
 done
 
+
 # check if setreuid en setregid fail, on MacOSX10.4(darwin8).
 if echo $host_os | grep darwin8 > /dev/null; then
 
-printf "%s\n" "#define DARWIN_BROKEN_SETREUID 1" >>confdefs.h
+$as_echo "#define DARWIN_BROKEN_SETREUID 1" >>confdefs.h
 
 fi
-ac_fn_check_decl "$LINENO" "inet_pton" "ac_cv_have_decl_inet_pton" "
+ac_fn_c_check_decl "$LINENO" "inet_pton" "ac_cv_have_decl_inet_pton" "
 $ac_includes_default
 #ifdef HAVE_NETINET_IN_H
 #include <netinet/in.h>
@@ -22424,15 +20749,17 @@ $ac_includes_default
 #include <ws2tcpip.h>
 #endif
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_inet_pton" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_inet_pton" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_INET_PTON $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_INET_PTON $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "
 $ac_includes_default
 #ifdef HAVE_NETINET_IN_H
 #include <netinet/in.h>
@@ -22454,21 +20781,22 @@ $ac_includes_default
 #include <ws2tcpip.h>
 #endif
 
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_inet_ntop" = xyes
-then :
+"
+if test "x$ac_cv_have_decl_inet_ntop" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_INET_NTOP $ac_have_decl" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_INET_NTOP $ac_have_decl
+_ACEOF
 
 ac_fn_c_check_func "$LINENO" "inet_aton" "ac_cv_func_inet_aton"
-if test "x$ac_cv_func_inet_aton" = xyes
-then :
-  printf "%s\n" "#define HAVE_INET_ATON 1" >>confdefs.h
+if test "x$ac_cv_func_inet_aton" = xyes; then :
+  $as_echo "#define HAVE_INET_ATON 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" inet_aton.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS inet_aton.$ac_objext"
@@ -22477,12 +20805,12 @@ esac
 
 fi
 
+
 ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
-if test "x$ac_cv_func_inet_pton" = xyes
-then :
-  printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h
+if test "x$ac_cv_func_inet_pton" = xyes; then :
+  $as_echo "#define HAVE_INET_PTON 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" inet_pton.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS inet_pton.$ac_objext"
@@ -22491,12 +20819,12 @@ esac
 
 fi
 
+
 ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
-if test "x$ac_cv_func_inet_ntop" = xyes
-then :
-  printf "%s\n" "#define HAVE_INET_NTOP 1" >>confdefs.h
+if test "x$ac_cv_func_inet_ntop" = xyes; then :
+  $as_echo "#define HAVE_INET_NTOP 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" inet_ntop.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS inet_ntop.$ac_objext"
@@ -22505,12 +20833,12 @@ esac
 
 fi
 
+
 ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
-if test "x$ac_cv_func_snprintf" = xyes
-then :
-  printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
+if test "x$ac_cv_func_snprintf" = xyes; then :
+  $as_echo "#define HAVE_SNPRINTF 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" snprintf.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
@@ -22519,18 +20847,18 @@ esac
 
 fi
 
+
 # test if snprintf return the proper length
 if test "x$ac_cv_func_snprintf" = xyes; then
     if test c${cross_compiling} = cno; then
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for correct snprintf return value" >&5
-printf %s "checking for correct snprintf return value... " >&6; }
-       if test "$cross_compiling" = yes
-then :
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for correct snprintf return value" >&5
+$as_echo_n "checking for correct snprintf return value... " >&6; }
+       if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run test program while cross compiling
 See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
@@ -22538,16 +20866,15 @@ $ac_includes_default
 int main(void) { return !(snprintf(NULL, 0, "test") == 4); }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-else $as_nop
+if ac_fn_c_try_run "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
 
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
-printf "%s\n" "#define SNPRINTF_RET_BROKEN /**/" >>confdefs.h
+$as_echo "#define SNPRINTF_RET_BROKEN /**/" >>confdefs.h
 
                case " $LIBOBJS " in
   *" snprintf.$ac_objext "* ) ;;
     fi
 fi
 ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat"
-if test "x$ac_cv_func_strlcat" = xyes
-then :
-  printf "%s\n" "#define HAVE_STRLCAT 1" >>confdefs.h
+if test "x$ac_cv_func_strlcat" = xyes; then :
+  $as_echo "#define HAVE_STRLCAT 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" strlcat.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS strlcat.$ac_objext"
@@ -22577,12 +20903,12 @@ esac
 
 fi
 
+
 ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
-if test "x$ac_cv_func_strlcpy" = xyes
-then :
-  printf "%s\n" "#define HAVE_STRLCPY 1" >>confdefs.h
+if test "x$ac_cv_func_strlcpy" = xyes; then :
+  $as_echo "#define HAVE_STRLCPY 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" strlcpy.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS strlcpy.$ac_objext"
@@ -22591,12 +20917,12 @@ esac
 
 fi
 
+
 ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove"
-if test "x$ac_cv_func_memmove" = xyes
-then :
-  printf "%s\n" "#define HAVE_MEMMOVE 1" >>confdefs.h
+if test "x$ac_cv_func_memmove" = xyes; then :
+  $as_echo "#define HAVE_MEMMOVE 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" memmove.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS memmove.$ac_objext"
@@ -22605,12 +20931,12 @@ esac
 
 fi
 
+
 ac_fn_c_check_func "$LINENO" "gmtime_r" "ac_cv_func_gmtime_r"
-if test "x$ac_cv_func_gmtime_r" = xyes
-then :
-  printf "%s\n" "#define HAVE_GMTIME_R 1" >>confdefs.h
+if test "x$ac_cv_func_gmtime_r" = xyes; then :
+  $as_echo "#define HAVE_GMTIME_R 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" gmtime_r.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS gmtime_r.$ac_objext"
@@ -22619,12 +20945,12 @@ esac
 
 fi
 
+
 ac_fn_c_check_func "$LINENO" "isblank" "ac_cv_func_isblank"
-if test "x$ac_cv_func_isblank" = xyes
-then :
-  printf "%s\n" "#define HAVE_ISBLANK 1" >>confdefs.h
+if test "x$ac_cv_func_isblank" = xyes; then :
+  $as_echo "#define HAVE_ISBLANK 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" isblank.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS isblank.$ac_objext"
@@ -22633,12 +20959,12 @@ esac
 
 fi
 
+
 ac_fn_c_check_func "$LINENO" "explicit_bzero" "ac_cv_func_explicit_bzero"
-if test "x$ac_cv_func_explicit_bzero" = xyes
-then :
-  printf "%s\n" "#define HAVE_EXPLICIT_BZERO 1" >>confdefs.h
+if test "x$ac_cv_func_explicit_bzero" = xyes; then :
+  $as_echo "#define HAVE_EXPLICIT_BZERO 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" explicit_bzero.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS explicit_bzero.$ac_objext"
@@ -22647,10 +20973,11 @@ esac
 
 fi
 
+
 LIBOBJ_WITHOUT_CTIMEARC4="$LIBOBJS"
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for reallocarray" >&5
-printf %s "checking for reallocarray... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for reallocarray" >&5
+$as_echo_n "checking for reallocarray... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
@@ -22666,18 +20993,17 @@ int main(void) {
 }
 
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+if ac_fn_c_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-printf "%s\n" "#define HAVE_REALLOCARRAY 1" >>confdefs.h
+$as_echo "#define HAVE_REALLOCARRAY 1" >>confdefs.h
 
 
-else $as_nop
+else
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
        case " $LIBOBJS " in
   *" reallocarray.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS reallocarray.$ac_objext"
@@ -22686,24 +21012,25 @@ esac
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-ac_fn_check_decl "$LINENO" "reallocarray" "ac_cv_have_decl_reallocarray" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_reallocarray" = xyes
-then :
+ac_fn_c_check_decl "$LINENO" "reallocarray" "ac_cv_have_decl_reallocarray" "$ac_includes_default"
+if test "x$ac_cv_have_decl_reallocarray" = xyes; then :
   ac_have_decl=1
-else $as_nop
+else
   ac_have_decl=0
 fi
-printf "%s\n" "#define HAVE_DECL_REALLOCARRAY $ac_have_decl" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_REALLOCARRAY $ac_have_decl
+_ACEOF
 
 if test "$USE_NSS" = "no"; then
        ac_fn_c_check_func "$LINENO" "arc4random" "ac_cv_func_arc4random"
-if test "x$ac_cv_func_arc4random" = xyes
-then :
-  printf "%s\n" "#define HAVE_ARC4RANDOM 1" >>confdefs.h
+if test "x$ac_cv_func_arc4random" = xyes; then :
+  $as_echo "#define HAVE_ARC4RANDOM 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" arc4random.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS arc4random.$ac_objext"
@@ -22712,12 +21039,12 @@ esac
 
 fi
 
+
        ac_fn_c_check_func "$LINENO" "arc4random_uniform" "ac_cv_func_arc4random_uniform"
-if test "x$ac_cv_func_arc4random_uniform" = xyes
-then :
-  printf "%s\n" "#define HAVE_ARC4RANDOM_UNIFORM 1" >>confdefs.h
+if test "x$ac_cv_func_arc4random_uniform" = xyes; then :
+  $as_echo "#define HAVE_ARC4RANDOM_UNIFORM 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" arc4random_uniform.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS arc4random_uniform.$ac_objext"
@@ -22726,6 +21053,7 @@ esac
 
 fi
 
+
        if test "$ac_cv_func_arc4random" = "no"; then
                case " $LIBOBJS " in
   *" arc4_lock.$ac_objext "* ) ;;
  ;;
 esac
 
-
-  for ac_func in getentropy
+               for ac_func in getentropy
 do :
   ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy"
-if test "x$ac_cv_func_getentropy" = xyes
-then :
-  printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h
+if test "x$ac_cv_func_getentropy" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GETENTROPY 1
+_ACEOF
 
-else $as_nop
+else
 
                    if test "$USE_WINSOCK" = 1; then
                        case " $LIBOBJS " in
@@ -22767,25 +21095,26 @@ esac
  ;;
 esac
 
-                                      for ac_header in sys/sha2.h
+                               for ac_header in sys/sha2.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "sys/sha2.h" "ac_cv_header_sys_sha2_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_sys_sha2_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_SHA2_H 1" >>confdefs.h
-
-else $as_nop
+if test "x$ac_cv_header_sys_sha2_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_SHA2_H 1
+_ACEOF
 
+else
 
-  for ac_func in SHA512_Update
+                                       for ac_func in SHA512_Update
 do :
   ac_fn_c_check_func "$LINENO" "SHA512_Update" "ac_cv_func_SHA512_Update"
-if test "x$ac_cv_func_SHA512_Update" = xyes
-then :
-  printf "%s\n" "#define HAVE_SHA512_UPDATE 1" >>confdefs.h
+if test "x$ac_cv_func_SHA512_Update" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SHA512_UPDATE 1
+_ACEOF
 
-else $as_nop
+else
 
                                                case " $LIBOBJS " in
   *" sha512.$ac_objext "* ) ;;
@@ -22795,22 +21124,22 @@ esac
 
 
 fi
-
 done
 
+
 fi
 
 done
+
                                if test "$ac_cv_header_sys_sha2_h" = "yes"; then
                                        # this lib needed for sha2 on solaris
                                        LIBS="$LIBS -lmd"
                                fi
-                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-printf %s "checking for library containing clock_gettime... " >&6; }
-if test ${ac_cv_search_clock_gettime+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+                               { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if ${ac_cv_search_clock_gettime+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -22818,48 +21147,46 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char clock_gettime ();
 int
-main (void)
+main ()
 {
 return clock_gettime ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' rt
-do
+for ac_lib in '' rt; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_clock_gettime=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_clock_gettime+y}
-then :
+  if ${ac_cv_search_clock_gettime+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_clock_gettime+y}
-then :
+if ${ac_cv_search_clock_gettime+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_clock_gettime=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
+$as_echo "$ac_cv_search_clock_gettime" >&6; }
 ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
@@ -22880,18 +21207,18 @@ esac
  ;;
 esac
 
-
-  for ac_func in SHA512_Update
+                               for ac_func in SHA512_Update
 do :
   ac_fn_c_check_func "$LINENO" "SHA512_Update" "ac_cv_func_SHA512_Update"
-if test "x$ac_cv_func_SHA512_Update" = xyes
-then :
-  printf "%s\n" "#define HAVE_SHA512_UPDATE 1" >>confdefs.h
+if test "x$ac_cv_func_SHA512_Update" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SHA512_UPDATE 1
+_ACEOF
 
-else $as_nop
+else
 
 
-printf "%s\n" "#define COMPAT_SHA512 1" >>confdefs.h
+$as_echo "#define COMPAT_SHA512 1" >>confdefs.h
 
                                        case " $LIBOBJS " in
   *" sha512.$ac_objext "* ) ;;
@@ -22901,29 +21228,37 @@ esac
 
 
 fi
-
 done
-                               ac_fn_c_check_header_compile "$LINENO" "sys/sysctl.h" "ac_cv_header_sys_sysctl_h" "$ac_includes_default
+
+                               for ac_header in sys/sysctl.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "sys/sysctl.h" "ac_cv_header_sys_sysctl_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_sys_sysctl_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_SYS_SYSCTL_H 1" >>confdefs.h
+if test "x$ac_cv_header_sys_sysctl_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_SYSCTL_H 1
+_ACEOF
 
 fi
 
-                               ac_fn_c_check_func "$LINENO" "getauxval" "ac_cv_func_getauxval"
-if test "x$ac_cv_func_getauxval" = xyes
-then :
-  printf "%s\n" "#define HAVE_GETAUXVAL 1" >>confdefs.h
+done
+
+                               for ac_func in getauxval
+do :
+  ac_fn_c_check_func "$LINENO" "getauxval" "ac_cv_func_getauxval"
+if test "x$ac_cv_func_getauxval" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GETAUXVAL 1
+_ACEOF
 
 fi
+done
 
-                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-printf %s "checking for library containing clock_gettime... " >&6; }
-if test ${ac_cv_search_clock_gettime+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+                               { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if ${ac_cv_search_clock_gettime+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -22931,48 +21266,46 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char clock_gettime ();
 int
-main (void)
+main ()
 {
 return clock_gettime ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' rt
-do
+for ac_lib in '' rt; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_clock_gettime=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_clock_gettime+y}
-then :
+  if ${ac_cv_search_clock_gettime+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_clock_gettime+y}
-then :
+if ${ac_cv_search_clock_gettime+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_clock_gettime=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
+$as_echo "$ac_cv_search_clock_gettime" >&6; }
 ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
                    fi
 
 fi
-
 done
+
        fi
 fi
 LIBOBJ_WITHOUT_CTIME="$LIBOBJS"
 
 ac_fn_c_check_func "$LINENO" "ctime_r" "ac_cv_func_ctime_r"
-if test "x$ac_cv_func_ctime_r" = xyes
-then :
-  printf "%s\n" "#define HAVE_CTIME_R 1" >>confdefs.h
+if test "x$ac_cv_func_ctime_r" = xyes; then :
+  $as_echo "#define HAVE_CTIME_R 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" ctime_r.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS ctime_r.$ac_objext"
@@ -23002,12 +21334,12 @@ esac
 
 fi
 
+
 ac_fn_c_check_func "$LINENO" "strsep" "ac_cv_func_strsep"
-if test "x$ac_cv_func_strsep" = xyes
-then :
-  printf "%s\n" "#define HAVE_STRSEP 1" >>confdefs.h
+if test "x$ac_cv_func_strsep" = xyes; then :
+  $as_echo "#define HAVE_STRSEP 1" >>confdefs.h
 
-else $as_nop
+else
   case " $LIBOBJS " in
   *" strsep.$ac_objext "* ) ;;
   *) LIBOBJS="$LIBOBJS strsep.$ac_objext"
@@ -23017,9 +21349,9 @@ esac
 fi
 
 
+
 # Check whether --enable-allsymbols was given.
-if test ${enable_allsymbols+y}
-then :
+if test "${enable_allsymbols+set}" = set; then :
   enableval=$enable_allsymbols;
 fi
 
@@ -23029,7 +21361,7 @@ case "$enable_allsymbols" in
        UBSYMS=""
        EXTRALINK="libunbound.la"
 
-printf "%s\n" "#define EXPORT_ALL_SYMBOLS 1" >>confdefs.h
+$as_echo "#define EXPORT_ALL_SYMBOLS 1" >>confdefs.h
 
        ;;
        no|*)
 # check for dnstap if requested
 
   # Check whether --enable-dnstap was given.
-if test ${enable_dnstap+y}
-then :
+if test "${enable_dnstap+set}" = set; then :
   enableval=$enable_dnstap; opt_dnstap=$enableval
-else $as_nop
+else
   opt_dnstap=no
 fi
 
 
 
 # Check whether --with-dnstap-socket-path was given.
-if test ${with_dnstap_socket_path+y}
-then :
+if test "${with_dnstap_socket_path+set}" = set; then :
   withval=$with_dnstap_socket_path; opt_dnstap_socket_path=$withval
-else $as_nop
+else
   opt_dnstap_socket_path="$UNBOUND_RUN_DIR/dnstap.sock"
 fi
 
   if test "x$opt_dnstap" != "xno"; then
     # Extract the first word of "protoc-c", so it can be a program name with args.
 set dummy protoc-c; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_PROTOC_C+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PROTOC_C+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   case $PROTOC_C in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PROTOC_C="$PROTOC_C" # Let the user override the test with a path.
@@ -23095,15 +21424,11 @@ else $as_nop
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
+  test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_PROTOC_C="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PROTOC_C="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -23115,11 +21440,11 @@ esac
 fi
 PROTOC_C=$ac_cv_path_PROTOC_C
 if test -n "$PROTOC_C"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PROTOC_C" >&5
-printf "%s\n" "$PROTOC_C" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PROTOC_C" >&5
+$as_echo "$PROTOC_C" >&6; }
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -23128,8 +21453,7 @@ fi
     fi
 
 # Check whether --with-protobuf-c was given.
-if test ${with_protobuf_c+y}
-then :
+if test "${with_protobuf_c+set}" = set; then :
   withval=$with_protobuf_c;
          # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
          if test -f $withval/include/google/protobuf-c/protobuf-c.h; then
@@ -23139,7 +21463,7 @@ then :
          fi
          LDFLAGS="$LDFLAGS -L$withval/lib"
 
-else $as_nop
+else
 
          # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
          if test -f /usr/include/google/protobuf-c/protobuf-c.h; then
@@ -23153,12 +21477,11 @@ else $as_nop
 
 fi
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing protobuf_c_message_pack" >&5
-printf %s "checking for library containing protobuf_c_message_pack... " >&6; }
-if test ${ac_cv_search_protobuf_c_message_pack+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing protobuf_c_message_pack" >&5
+$as_echo_n "checking for library containing protobuf_c_message_pack... " >&6; }
+if ${ac_cv_search_protobuf_c_message_pack+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -23166,57 +21489,55 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char protobuf_c_message_pack ();
 int
-main (void)
+main ()
 {
 return protobuf_c_message_pack ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' protobuf-c
-do
+for ac_lib in '' protobuf-c; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_protobuf_c_message_pack=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_protobuf_c_message_pack+y}
-then :
+  if ${ac_cv_search_protobuf_c_message_pack+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_protobuf_c_message_pack+y}
-then :
+if ${ac_cv_search_protobuf_c_message_pack+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_protobuf_c_message_pack=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_protobuf_c_message_pack" >&5
-printf "%s\n" "$ac_cv_search_protobuf_c_message_pack" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_protobuf_c_message_pack" >&5
+$as_echo "$ac_cv_search_protobuf_c_message_pack" >&6; }
 ac_res=$ac_cv_search_protobuf_c_message_pack
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
-else $as_nop
+else
   as_fn_error $? "The protobuf-c library was not found. Please install protobuf-c!" "$LINENO" 5
 fi
 
 
 
-printf "%s\n" "#define USE_DNSTAP 1" >>confdefs.h
+$as_echo "#define USE_DNSTAP 1" >>confdefs.h
 
         ENABLE_DNSTAP=1
 
@@ -23225,7 +21546,9 @@ printf "%s\n" "#define USE_DNSTAP 1" >>confdefs.h
         hdr_dnstap_socket_path="`echo $opt_dnstap_socket_path | sed -e 's/\\\\/\\\\\\\\/g'`"
 
 
-printf "%s\n" "#define DNSTAP_SOCKET_PATH \"$hdr_dnstap_socket_path\"" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define DNSTAP_SOCKET_PATH "$hdr_dnstap_socket_path"
+_ACEOF
 
        DNSTAP_SOCKET_PATH="$hdr_dnstap_socket_path"
 
@@ -23248,10 +21571,9 @@ printf "%s\n" "#define DNSTAP_SOCKET_PATH \"$hdr_dnstap_socket_path\"" >>confdef
 # check for dnscrypt if requested
 
   # Check whether --enable-dnscrypt was given.
-if test ${enable_dnscrypt+y}
-then :
+if test "${enable_dnscrypt+set}" = set; then :
   enableval=$enable_dnscrypt; opt_dnscrypt=$enableval
-else $as_nop
+else
   opt_dnscrypt=no
 fi
 
   if test "x$opt_dnscrypt" != "xno"; then
 
 # Check whether --with-libsodium was given.
-if test ${with_libsodium+y}
-then :
+if test "${with_libsodium+set}" = set; then :
   withval=$with_libsodium;
        CFLAGS="$CFLAGS -I$withval/include"
        LDFLAGS="$LDFLAGS -L$withval/lib"
 
 fi
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing sodium_init" >&5
-printf %s "checking for library containing sodium_init... " >&6; }
-if test ${ac_cv_search_sodium_init+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sodium_init" >&5
+$as_echo_n "checking for library containing sodium_init... " >&6; }
+if ${ac_cv_search_sodium_init+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -23280,60 +21600,57 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char sodium_init ();
 int
-main (void)
+main ()
 {
 return sodium_init ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' sodium
-do
+for ac_lib in '' sodium; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_sodium_init=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_sodium_init+y}
-then :
+  if ${ac_cv_search_sodium_init+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_sodium_init+y}
-then :
+if ${ac_cv_search_sodium_init+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_sodium_init=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sodium_init" >&5
-printf "%s\n" "$ac_cv_search_sodium_init" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sodium_init" >&5
+$as_echo "$ac_cv_search_sodium_init" >&6; }
 ac_res=$ac_cv_search_sodium_init
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
-else $as_nop
+else
   as_fn_error $? "The sodium library was not found. Please install sodium!" "$LINENO" 5
 fi
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing crypto_box_curve25519xchacha20poly1305_beforenm" >&5
-printf %s "checking for library containing crypto_box_curve25519xchacha20poly1305_beforenm... " >&6; }
-if test ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypto_box_curve25519xchacha20poly1305_beforenm" >&5
+$as_echo_n "checking for library containing crypto_box_curve25519xchacha20poly1305_beforenm... " >&6; }
+if ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -23341,69 +21658,66 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char crypto_box_curve25519xchacha20poly1305_beforenm ();
 int
-main (void)
+main ()
 {
 return crypto_box_curve25519xchacha20poly1305_beforenm ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' sodium
-do
+for ac_lib in '' sodium; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+y}
-then :
+  if ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+y}
-then :
+if ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm" >&5
-printf "%s\n" "$ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm" >&5
+$as_echo "$ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm" >&6; }
 ac_res=$ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
             ENABLE_DNSCRYPT_XCHACHA20=1
 
 
-printf "%s\n" "#define USE_DNSCRYPT_XCHACHA20 1" >>confdefs.h
+$as_echo "#define USE_DNSCRYPT_XCHACHA20 1" >>confdefs.h
 
 
-else $as_nop
+else
 
             ENABLE_DNSCRYPT_XCHACHA20=0
 
 
 fi
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing sodium_set_misuse_handler" >&5
-printf %s "checking for library containing sodium_set_misuse_handler... " >&6; }
-if test ${ac_cv_search_sodium_set_misuse_handler+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sodium_set_misuse_handler" >&5
+$as_echo_n "checking for library containing sodium_set_misuse_handler... " >&6; }
+if ${ac_cv_search_sodium_set_misuse_handler+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -23411,59 +21725,57 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 char sodium_set_misuse_handler ();
 int
-main (void)
+main ()
 {
 return sodium_set_misuse_handler ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' sodium
-do
+for ac_lib in '' sodium; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"
-then :
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_sodium_set_misuse_handler=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test ${ac_cv_search_sodium_set_misuse_handler+y}
-then :
+  if ${ac_cv_search_sodium_set_misuse_handler+:} false; then :
   break
 fi
 done
-if test ${ac_cv_search_sodium_set_misuse_handler+y}
-then :
+if ${ac_cv_search_sodium_set_misuse_handler+:} false; then :
 
-else $as_nop
+else
   ac_cv_search_sodium_set_misuse_handler=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sodium_set_misuse_handler" >&5
-printf "%s\n" "$ac_cv_search_sodium_set_misuse_handler" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sodium_set_misuse_handler" >&5
+$as_echo "$ac_cv_search_sodium_set_misuse_handler" >&6; }
 ac_res=$ac_cv_search_sodium_set_misuse_handler
-if test "$ac_res" != no
-then :
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 
-printf "%s\n" "#define SODIUM_MISUSE_HANDLER 1" >>confdefs.h
+$as_echo "#define SODIUM_MISUSE_HANDLER 1" >>confdefs.h
 
 
 fi
 
 
 
-printf "%s\n" "#define USE_DNSCRYPT 1" >>confdefs.h
+$as_echo "#define USE_DNSCRYPT 1" >>confdefs.h
 
         ENABLE_DNSCRYPT=1
 
@@ -23486,8 +21798,7 @@ printf "%s\n" "#define USE_DNSCRYPT 1" >>confdefs.h
 
 # check for cachedb if requested
 # Check whether --enable-cachedb was given.
-if test ${enable_cachedb+y}
-then :
+if test "${enable_cachedb+set}" = set; then :
   enableval=$enable_cachedb;
 fi
 
@@ -23496,7 +21807,7 @@ if test "$found_libhiredis" = "yes"; then enable_cachedb="yes"; fi
 case "$enable_cachedb" in
     yes)
 
-printf "%s\n" "#define USE_CACHEDB 1" >>confdefs.h
+$as_echo "#define USE_CACHEDB 1" >>confdefs.h
 
        CACHEDB_SRC="cachedb/cachedb.c cachedb/redis.c"
 
@@ -23510,15 +21821,14 @@ esac
 
 # check for ipsecmod if requested
 # Check whether --enable-ipsecmod was given.
-if test ${enable_ipsecmod+y}
-then :
+if test "${enable_ipsecmod+set}" = set; then :
   enableval=$enable_ipsecmod;
 fi
 
 case "$enable_ipsecmod" in
        yes)
 
-printf "%s\n" "#define USE_IPSECMOD 1" >>confdefs.h
+$as_echo "#define USE_IPSECMOD 1" >>confdefs.h
 
                IPSECMOD_OBJ="ipsecmod.lo ipsecmod-whitelist.lo"
 
@@ -23532,15 +21842,14 @@ esac
 
 # check for ipset if requested
 # Check whether --enable-ipset was given.
-if test ${enable_ipset+y}
-then :
+if test "${enable_ipset+set}" = set; then :
   enableval=$enable_ipset;
 fi
 
 case "$enable_ipset" in
     yes)
 
-printf "%s\n" "#define USE_IPSET 1" >>confdefs.h
+$as_echo "#define USE_IPSET 1" >>confdefs.h
 
                IPSET_SRC="ipset/ipset.c"
 
@@ -23550,16 +21859,15 @@ printf "%s\n" "#define USE_IPSET 1" >>confdefs.h
                # mnl
 
 # Check whether --with-libmnl was given.
-if test ${with_libmnl+y}
-then :
+if test "${with_libmnl+set}" = set; then :
   withval=$with_libmnl;
-else $as_nop
+else
    withval="yes"
 fi
 
                found_libmnl="no"
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libmnl" >&5
-printf %s "checking for libmnl... " >&6; }
+               { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libmnl" >&5
+$as_echo_n "checking for libmnl... " >&6; }
                if test x_$withval = x_ -o x_$withval = x_yes; then
                        withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
                fi
@@ -23576,8 +21884,8 @@ printf %s "checking for libmnl... " >&6; }
                                if test "$dir" != "/usr"; then
                                        LDFLAGS="$LDFLAGS -L$dir/lib"
                                fi
-                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
-printf "%s\n" "found in $dir" >&6; }
+                               { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
+$as_echo "found in $dir" >&6; }
                                LIBS="$LIBS -lmnl"
                                break;
                        fi
@@ -23591,15 +21899,14 @@ printf "%s\n" "found in $dir" >&6; }
                ;;
 esac
 # Check whether --enable-explicit-port-randomisation was given.
-if test ${enable_explicit_port_randomisation+y}
-then :
+if test "${enable_explicit_port_randomisation+set}" = set; then :
   enableval=$enable_explicit_port_randomisation;
 fi
 
 case "$enable_explicit_port_randomisation" in
        no)
 
-printf "%s\n" "#define DISABLE_EXPLICIT_PORT_RANDOMISATION 1" >>confdefs.h
+$as_echo "#define DISABLE_EXPLICIT_PORT_RANDOMISATION 1" >>confdefs.h
 
                ;;
        yes|*)
@@ -23608,15 +21915,14 @@ esac
 
 if echo "$host" | $GREP -i -e linux >/dev/null; then
        # Check whether --enable-linux-ip-local-port-range was given.
-if test ${enable_linux_ip_local_port_range+y}
-then :
+if test "${enable_linux_ip_local_port_range+set}" = set; then :
   enableval=$enable_linux_ip_local_port_range;
 fi
 
        case "$enable_linux_ip_local_port_range" in
                yes)
 
-printf "%s\n" "#define USE_LINUX_IP_LOCAL_PORT_RANGE 1" >>confdefs.h
+$as_echo "#define USE_LINUX_IP_LOCAL_PORT_RANGE 1" >>confdefs.h
 
                        ;;
                no|*)
@@ -23625,8 +21931,8 @@ printf "%s\n" "#define USE_LINUX_IP_LOCAL_PORT_RANGE 1" >>confdefs.h
 fi
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ${MAKE:-make} supports $< with implicit rule in scope" >&5
-printf %s "checking if ${MAKE:-make} supports $< with implicit rule in scope... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if ${MAKE:-make} supports $< with implicit rule in scope" >&5
+$as_echo_n "checking if ${MAKE:-make} supports $< with implicit rule in scope... " >&6; }
 # on openBSD, the implicit rule make $< work.
 # on Solaris, it does not work ($? is changed sources, $^ lists dependencies).
 # gmake works.
@@ -23649,13 +21955,13 @@ ${MAKE:-make} -f conftest.make >/dev/null
 rm -f conftest.make conftest.c conftest.dir/conftest.c
 rm -rf conftest.dir
 if test ! -f conftest.lo; then
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
        SOURCEDETERMINE='echo "$^" | awk "-F " "{print \$$1;}" > .source'
        SOURCEFILE='`cat .source`'
 else
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
        SOURCEDETERMINE=':'
        SOURCEFILE='$<'
 fi
@@ -23668,8 +21974,7 @@ ALLTARGET="alltargets"
 INSTALLTARGET="install-all"
 
 # Check whether --with-libunbound-only was given.
-if test ${with_libunbound_only+y}
-then :
+if test "${with_libunbound_only+set}" = set; then :
   withval=$with_libunbound_only;
        if test "$withval" = "yes"; then
                ALLTARGET="lib"
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Stripping extension flags..." >&5
-printf "%s\n" "$as_me: Stripping extension flags..." >&6;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: Stripping extension flags..." >&5
+$as_echo "$as_me: Stripping extension flags..." >&6;}
 
   if echo $CFLAGS | grep " -D_GNU_SOURCE" >/dev/null 2>&1; then
     CFLAGS="`echo $CFLAGS | sed -e 's/ -D_GNU_SOURCE//g'`"
 
-printf "%s\n" "#define OMITTED__D_GNU_SOURCE 1" >>confdefs.h
+$as_echo "#define OMITTED__D_GNU_SOURCE 1" >>confdefs.h
 
   fi
 
@@ -23705,7 +22010,7 @@ printf "%s\n" "#define OMITTED__D_GNU_SOURCE 1" >>confdefs.h
   if echo $CFLAGS | grep " -D_BSD_SOURCE" >/dev/null 2>&1; then
     CFLAGS="`echo $CFLAGS | sed -e 's/ -D_BSD_SOURCE//g'`"
 
-printf "%s\n" "#define OMITTED__D_BSD_SOURCE 1" >>confdefs.h
+$as_echo "#define OMITTED__D_BSD_SOURCE 1" >>confdefs.h
 
   fi
 
@@ -23713,7 +22018,7 @@ printf "%s\n" "#define OMITTED__D_BSD_SOURCE 1" >>confdefs.h
   if echo $CFLAGS | grep " -D_DEFAULT_SOURCE" >/dev/null 2>&1; then
     CFLAGS="`echo $CFLAGS | sed -e 's/ -D_DEFAULT_SOURCE//g'`"
 
-printf "%s\n" "#define OMITTED__D_DEFAULT_SOURCE 1" >>confdefs.h
+$as_echo "#define OMITTED__D_DEFAULT_SOURCE 1" >>confdefs.h
 
   fi
 
@@ -23721,7 +22026,7 @@ printf "%s\n" "#define OMITTED__D_DEFAULT_SOURCE 1" >>confdefs.h
   if echo $CFLAGS | grep " -D__EXTENSIONS__" >/dev/null 2>&1; then
     CFLAGS="`echo $CFLAGS | sed -e 's/ -D__EXTENSIONS__//g'`"
 
-printf "%s\n" "#define OMITTED__D__EXTENSIONS__ 1" >>confdefs.h
+$as_echo "#define OMITTED__D__EXTENSIONS__ 1" >>confdefs.h
 
   fi
 
@@ -23729,7 +22034,7 @@ printf "%s\n" "#define OMITTED__D__EXTENSIONS__ 1" >>confdefs.h
   if echo $CFLAGS | grep " -D_POSIX_C_SOURCE=200112" >/dev/null 2>&1; then
     CFLAGS="`echo $CFLAGS | sed -e 's/ -D_POSIX_C_SOURCE=200112//g'`"
 
-printf "%s\n" "#define OMITTED__D_POSIX_C_SOURCE_200112 1" >>confdefs.h
+$as_echo "#define OMITTED__D_POSIX_C_SOURCE_200112 1" >>confdefs.h
 
   fi
 
@@ -23737,7 +22042,7 @@ printf "%s\n" "#define OMITTED__D_POSIX_C_SOURCE_200112 1" >>confdefs.h
   if echo $CFLAGS | grep " -D_XOPEN_SOURCE=600" >/dev/null 2>&1; then
     CFLAGS="`echo $CFLAGS | sed -e 's/ -D_XOPEN_SOURCE=600//g'`"
 
-printf "%s\n" "#define OMITTED__D_XOPEN_SOURCE_600 1" >>confdefs.h
+$as_echo "#define OMITTED__D_XOPEN_SOURCE_600 1" >>confdefs.h
 
   fi
 
@@ -23745,7 +22050,7 @@ printf "%s\n" "#define OMITTED__D_XOPEN_SOURCE_600 1" >>confdefs.h
   if echo $CFLAGS | grep " -D_XOPEN_SOURCE_EXTENDED=1" >/dev/null 2>&1; then
     CFLAGS="`echo $CFLAGS | sed -e 's/ -D_XOPEN_SOURCE_EXTENDED=1//g'`"
 
-printf "%s\n" "#define OMITTED__D_XOPEN_SOURCE_EXTENDED_1 1" >>confdefs.h
+$as_echo "#define OMITTED__D_XOPEN_SOURCE_EXTENDED_1 1" >>confdefs.h
 
   fi
 
@@ -23753,7 +22058,7 @@ printf "%s\n" "#define OMITTED__D_XOPEN_SOURCE_EXTENDED_1 1" >>confdefs.h
   if echo $CFLAGS | grep " -D_ALL_SOURCE" >/dev/null 2>&1; then
     CFLAGS="`echo $CFLAGS | sed -e 's/ -D_ALL_SOURCE//g'`"
 
-printf "%s\n" "#define OMITTED__D_ALL_SOURCE 1" >>confdefs.h
+$as_echo "#define OMITTED__D_ALL_SOURCE 1" >>confdefs.h
 
   fi
 
@@ -23761,7 +22066,7 @@ printf "%s\n" "#define OMITTED__D_ALL_SOURCE 1" >>confdefs.h
   if echo $CFLAGS | grep " -D_LARGEFILE_SOURCE=1" >/dev/null 2>&1; then
     CFLAGS="`echo $CFLAGS | sed -e 's/ -D_LARGEFILE_SOURCE=1//g'`"
 
-printf "%s\n" "#define OMITTED__D_LARGEFILE_SOURCE_1 1" >>confdefs.h
+$as_echo "#define OMITTED__D_LARGEFILE_SOURCE_1 1" >>confdefs.h
 
   fi
 
@@ -23774,12 +22079,14 @@ LDFLAGS=`echo "$LDFLAGS"|sed -e 's/^ *//'`
 LIBS=`echo "$LIBS"|sed -e 's/^ *//'`
 
 
-printf "%s\n" "#define MAXSYSLOGMSGLEN 10240" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define MAXSYSLOGMSGLEN 10240
+_ACEOF
 
 
 
 
-version=1.16.3
+version=1.17.0
 
 date=`date +'%b %e, %Y'`
 
@@ -23815,8 +22122,8 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -23846,15 +22153,15 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;}
      /^ac_cv_env_/b end
      t clear
      :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
      t end
      s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     if test "x$cache_file" != "x/dev/null"; then
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
       if test ! -f "$cache_file" || test -h "$cache_file"; then
        cat confcache >"$cache_file"
       else
@@ -23868,8 +22175,8 @@ printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
       fi
     fi
   else
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -23886,7 +22193,7 @@ U=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
   as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -23906,8 +22213,8 @@ fi
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
 as_write_fail=0
 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
@@ -23930,16 +22237,14 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
-if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
-then :
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else $as_nop
+else
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -23949,46 +22254,46 @@ esac
 fi
 
 
-
-# Reset variables that may have inherited troublesome values from
-# the environment.
-
-# IFS needs to be set, to space, tab, and newline, in precisely that order.
-# (If _AS_PATH_WALK were called with IFS unset, it would have the
-# side effect of setting IFS to empty, thus disabling word splitting.)
-# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-IFS=" ""       $as_nl"
-
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# Ensure predictable behavior from utilities with locale-dependent output.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# We cannot yet rely on "unset" to work, but we need these variables
-# to be unset--not just set to an empty or harmless value--now, to
-# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
-# also avoids known problems related to "unset" and subshell syntax
-# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
-for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
-do eval test \${$as_var+y} \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-
-# Ensure that fds 0, 1, and 2 are open.
-if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
-if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
-if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+       expr "X$arg" : "X\\(.*\\)$as_nl";
+       arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
 
 # The user is always right.
-if ${PATH_SEPARATOR+false} :; then
+if test "${PATH_SEPARATOR+set}" != set; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -23997,6 +22302,13 @@ if ${PATH_SEPARATOR+false} :; then
 fi
 
 
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""       $as_nl"
+
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -24005,12 +22317,8 @@ case $0 in #((
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
   done
 IFS=$as_save_IFS
 
@@ -24022,10 +22330,30 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
@@ -24038,14 +22366,13 @@ as_fn_error ()
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  printf "%s\n" "$as_me: error: $2" >&2
+  $as_echo "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
 
-
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -24072,20 +22399,18 @@ as_fn_unset ()
   { eval $1=; unset $1;}
 }
 as_unset=as_fn_unset
-
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
-then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else $as_nop
+else
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -24097,13 +22422,12 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
-then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else $as_nop
+else
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
@@ -24134,7 +22458,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
         X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X/"$0" |
+$as_echo X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
            s//\1/
            q
@@ -24156,10 +22480,6 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-
-# Determine whether it's possible to make 'echo' print without a newline.
-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
-# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -24173,12 +22493,6 @@ case `echo -n x` in #(((((
   ECHO_N='-n';;
 esac
 
-# For backward compatibility with old third-party macros, we provide
-# the shell variables $as_echo and $as_echo_n.  New code should use
-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
-as_echo='printf %s\n'
-as_echo_n='printf %s'
-
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -24220,7 +22534,7 @@ as_fn_mkdir_p ()
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -24229,7 +22543,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$as_dir" : 'X\(//\)[^/]' \| \
         X"$as_dir" : 'X\(//\)$' \| \
         X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_dir" |
+$as_echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
            s//\1/
            q
@@ -24291,8 +22605,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by unbound $as_me 1.16.3, which was
-generated by GNU Autoconf 2.71.  Invocation command line was
+This file was extended by unbound $as_me 1.17.0, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -24354,16 +22668,14 @@ $config_commands
 Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>."
 
 _ACEOF
-ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
-ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config='$ac_cs_config_escaped'
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-unbound config.status 1.16.3
-configured by $0, generated by GNU Autoconf 2.71,
+unbound config.status 1.17.0
+configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2021 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    printf "%s\n" "$ac_cs_version"; exit ;;
+    $as_echo "$ac_cs_version"; exit ;;
   --config | --confi | --conf | --con | --co | --c )
-    printf "%s\n" "$ac_cs_config"; exit ;;
+    $as_echo "$ac_cs_config"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
     case $ac_optarg in
-    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
@@ -24417,7 +22729,7 @@ do
   --header | --heade | --head | --hea )
     $ac_shift
     case $ac_optarg in
-    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     as_fn_append CONFIG_HEADERS " '$ac_optarg'"
     ac_need_defaults=false;;
@@ -24426,7 +22738,7 @@ do
     as_fn_error $? "ambiguous option: \`$1'
 Try \`$0 --help' for more information.";;
   --help | --hel | -h )
-    printf "%s\n" "$ac_cs_usage"; exit ;;
+    $as_echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
@@ -24454,7 +22766,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
   set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
-  \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
   export CONFIG_SHELL
   exec "\$@"
@@ -24468,7 +22780,7 @@ exec 5>>config.log
   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 ## Running $as_me. ##
 _ASBOX
-  printf "%s\n" "$ac_log"
+  $as_echo "$ac_log"
 } >&5
 
 _ACEOF
@@ -24794,9 +23106,9 @@ done
 # We use the long form for the default assignment because of an extremely
 # bizarre bug on SunOS 4.1.3.
 if $ac_need_defaults; then
-  test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
-  test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
-  test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
@@ -25132,7 +23444,7 @@ do
           esac ||
           as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
-      case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
     done
 
     # use $as_me), people would be surprised to read:
     #    /* config.h.  Generated by config.status.  */
     configure_input='Generated from '`
-         printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+         $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
        `' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-printf "%s\n" "$as_me: creating $ac_file" >&6;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
     case $configure_input in #(
     *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`printf "%s\n" "$configure_input" |
+       ac_sed_conf_input=`$as_echo "$configure_input" |
        sed 's/[\\\\&|]/\\\\&/g'`;; #(
     *) ac_sed_conf_input=$configure_input;;
     esac
@@ -25167,7 +23479,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$ac_file" : 'X\(//\)[^/]' \| \
         X"$ac_file" : 'X\(//\)$' \| \
         X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$ac_file" |
+$as_echo X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
            s//\1/
            q
@@ -25191,9 +23503,9 @@ printf "%s\n" X"$ac_file" |
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -25246,8 +23558,8 @@ ac_sed_dataroot='
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   ac_datarootdir_hack='
@@ -25289,9 +23601,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' \
       "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
   rm -f "$ac_tmp/stdin"
@@ -25307,27 +23619,27 @@ which seems to be undefined.  Please make sure it is defined" >&2;}
   #
   if test x"$ac_file" != x-; then
     {
-      printf "%s\n" "/* $configure_input  */" >&1 \
+      $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
     } >"$ac_tmp/config.h" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
       mv "$ac_tmp/config.h" "$ac_file" \
        || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
-    printf "%s\n" "/* $configure_input  */" >&1 \
+    $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
       || as_fn_error $? "could not create -" "$LINENO" 5
   fi
  ;;
 
-  :C)  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
 
@@ -25861,7 +24173,6 @@ _LT_EOF
   esac
 
 
-
 ltmain=$ac_aux_dir/ltmain.sh
 
 
@@ -25918,7 +24229,7 @@ if test "$no_create" != yes; then
   $ac_cs_success || as_fn_exit 1
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
index df7d8ef..102a7ec 100644 (file)
@@ -10,15 +10,15 @@ sinclude(dnscrypt/dnscrypt.m4)
 
 # must be numbers. ac_defun because of later processing
 m4_define([VERSION_MAJOR],[1])
-m4_define([VERSION_MINOR],[16])
-m4_define([VERSION_MICRO],[3])
+m4_define([VERSION_MINOR],[17])
+m4_define([VERSION_MICRO],[0])
 AC_INIT([unbound],m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]),[unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues],[unbound])
 AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR])
 AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR])
 AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO])
 
 LIBUNBOUND_CURRENT=9
-LIBUNBOUND_REVISION=19
+LIBUNBOUND_REVISION=20
 LIBUNBOUND_AGE=1
 # 1.0.0 had 0:12:0
 # 1.0.1 had 0:13:0
@@ -105,6 +105,7 @@ LIBUNBOUND_AGE=1
 # 1.16.1 had 9:17:1
 # 1.16.2 had 9:18:1
 # 1.16.3 had 9:19:1
+# 1.17.0 had 9:20:1
 
 #   Current  -- the number of the binary API that we're implementing
 #   Revision -- which iteration of the implementation of the binary
@@ -397,7 +398,7 @@ PKG_PROG_PKG_CONFIG
 fi
 
 # Checks for header files.
-AC_CHECK_HEADERS([stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/select.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h sys/endian.h libkern/OSByteOrder.h sys/ipc.h sys/shm.h ifaddrs.h],,, [AC_INCLUDES_DEFAULT])
+AC_CHECK_HEADERS([stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/select.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h sys/endian.h libkern/OSByteOrder.h sys/ipc.h sys/shm.h ifaddrs.h poll.h],,, [AC_INCLUDES_DEFAULT])
 # net/if.h portability for Darwin see:
 # https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Header-Portability.html
 AC_CHECK_HEADERS([net/if.h],,, [
@@ -608,6 +609,8 @@ if test x_$withval != x_no; then
                CC="$PTHREAD_CC"
                ub_have_pthreads=yes
                AC_CHECK_TYPES([pthread_spinlock_t, pthread_rwlock_t],,,[#include <pthread.h>])
+               AC_CHECK_SIZEOF([unsigned long])
+               AC_CHECK_SIZEOF(pthread_t)
 
                if echo "$CFLAGS" | $GREP -e "-pthread" >/dev/null; then
                AC_MSG_CHECKING([if -pthread unused during linking])
@@ -1645,7 +1648,7 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([
   AC_MSG_RESULT(no))
 
 AC_SEARCH_LIBS([setusercontext], [util])
-AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget accept4 getifaddrs if_nametoindex])
+AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget accept4 getifaddrs if_nametoindex poll gettid])
 AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])])
 AC_CHECK_FUNCS([setresgid],,[AC_CHECK_FUNCS([setregid])])
 
index aecb3e0..f3961db 100644 (file)
 #include "util/config_file.h"
 #include "util/net_help.h"
 #include "services/localzone.h"
+#include "services/listen_dnsport.h"
 #include "sldns/str2wire.h"
 
-struct acl_list* 
+struct acl_list*
 acl_list_create(void)
 {
        struct acl_list* acl = (struct acl_list*)calloc(1,
@@ -63,10 +64,10 @@ acl_list_create(void)
        return acl;
 }
 
-void 
+void
 acl_list_delete(struct acl_list* acl)
 {
-       if(!acl) 
+       if(!acl)
                return;
        regional_destroy(acl->region);
        free(acl);
@@ -74,8 +75,8 @@ acl_list_delete(struct acl_list* acl)
 
 /** insert new address into acl_list structure */
 static struct acl_addr*
-acl_list_insert(struct acl_list* acl, struct sockaddr_storage* addr, 
-       socklen_t addrlen, int net, enum acl_access control, 
+acl_list_insert(struct acl_list* acl, struct sockaddr_storage* addr,
+       socklen_t addrlen, int net, enum acl_access control,
        int complain_duplicates)
 {
        struct acl_addr* node = regional_alloc_zero(acl->region,
@@ -90,6 +91,31 @@ acl_list_insert(struct acl_list* acl, struct sockaddr_storage* addr,
        return node;
 }
 
+/** parse str to acl_access enum */
+static int
+parse_acl_access(const char* str, enum acl_access* control)
+{
+       if(strcmp(str, "allow") == 0)
+               *control = acl_allow;
+       else if(strcmp(str, "deny") == 0)
+               *control = acl_deny;
+       else if(strcmp(str, "refuse") == 0)
+               *control = acl_refuse;
+       else if(strcmp(str, "deny_non_local") == 0)
+               *control = acl_deny_non_local;
+       else if(strcmp(str, "refuse_non_local") == 0)
+               *control = acl_refuse_non_local;
+       else if(strcmp(str, "allow_snoop") == 0)
+               *control = acl_allow_snoop;
+       else if(strcmp(str, "allow_setrd") == 0)
+               *control = acl_allow_setrd;
+       else {
+               log_err("access control type %s unknown", str);
+               return 0;
+       }
+       return 1;
+}
+
 /** apply acl_list string */
 static int
 acl_list_str_cfg(struct acl_list* acl, const char* str, const char* s2,
@@ -99,29 +125,14 @@ acl_list_str_cfg(struct acl_list* acl, const char* str, const char* s2,
        int net;
        socklen_t addrlen;
        enum acl_access control;
-       if(strcmp(s2, "allow") == 0)
-               control = acl_allow;
-       else if(strcmp(s2, "deny") == 0)
-               control = acl_deny;
-       else if(strcmp(s2, "refuse") == 0)
-               control = acl_refuse;
-       else if(strcmp(s2, "deny_non_local") == 0)
-               control = acl_deny_non_local;
-       else if(strcmp(s2, "refuse_non_local") == 0)
-               control = acl_refuse_non_local;
-       else if(strcmp(s2, "allow_snoop") == 0)
-               control = acl_allow_snoop;
-       else if(strcmp(s2, "allow_setrd") == 0)
-               control = acl_allow_setrd;
-       else {
-               log_err("access control type %s unknown", str);
+       if(!parse_acl_access(s2, &control)) {
                return 0;
        }
        if(!netblockstrtoaddr(str, UNBOUND_DNS_PORT, &addr, &addrlen, &net)) {
                log_err("cannot parse access control: %s %s", str, s2);
                return 0;
        }
-       if(!acl_list_insert(acl, &addr, addrlen, net, control, 
+       if(!acl_list_insert(acl, &addr, addrlen, net, control,
                complain_duplicates)) {
                log_err("out of memory");
                return 0;
@@ -131,19 +142,27 @@ acl_list_str_cfg(struct acl_list* acl, const char* str, const char* s2,
 
 /** find or create node (NULL on parse or error) */
 static struct acl_addr*
-acl_find_or_create(struct acl_list* acl, const char* str)
+acl_find_or_create_str2addr(struct acl_list* acl, const char* str,
+       int is_interface, int port)
 {
        struct acl_addr* node;
        struct sockaddr_storage addr;
-       int net;
        socklen_t addrlen;
-       if(!netblockstrtoaddr(str, UNBOUND_DNS_PORT, &addr, &addrlen, &net)) {
-               log_err("cannot parse netblock: %s", str);
-               return NULL;
+       int net = (str_is_ip6(str)?128:32);
+       if(is_interface) {
+               if(!extstrtoaddr(str, &addr, &addrlen, port)) {
+                       log_err("cannot parse interface: %s", str);
+                       return NULL;
+               }
+       } else {
+               if(!netblockstrtoaddr(str, UNBOUND_DNS_PORT, &addr, &addrlen, &net)) {
+                       log_err("cannot parse netblock: %s", str);
+                       return NULL;
+               }
        }
        /* find or create node */
        if(!(node=(struct acl_addr*)addr_tree_find(&acl->tree, &addr,
-               addrlen, net))) {
+               addrlen, net)) && !is_interface) {
                /* create node, type 'allow' since otherwise tags are
                 * pointless, can override with specific access-control: cfg */
                if(!(node=(struct acl_addr*)acl_list_insert(acl, &addr,
@@ -155,14 +174,65 @@ acl_find_or_create(struct acl_list* acl, const char* str)
        return node;
 }
 
+/** find or create node (NULL on error) */
+static struct acl_addr*
+acl_find_or_create(struct acl_list* acl, struct sockaddr_storage* addr,
+       socklen_t addrlen, enum acl_access control)
+{
+       struct acl_addr* node;
+       int net = (addr_is_ip6(addr, addrlen)?128:32);
+       /* find or create node */
+       if(!(node=(struct acl_addr*)addr_tree_find(&acl->tree, addr,
+               addrlen, net))) {
+               /* create node;
+                * can override with specific access-control: cfg */
+               if(!(node=(struct acl_addr*)acl_list_insert(acl, addr,
+                       addrlen, net, control, 1))) {
+                       log_err("out of memory");
+                       return NULL;
+               }
+       }
+       return node;
+}
+
+/** apply acl_interface string */
+static int
+acl_interface_str_cfg(struct acl_list* acl_interface, const char* iface,
+       const char* s2, int port)
+{
+       struct acl_addr* node;
+       enum acl_access control;
+       if(!parse_acl_access(s2, &control)) {
+               return 0;
+       }
+       if(!(node=acl_find_or_create_str2addr(acl_interface, iface, 1, port))) {
+               log_err("cannot update ACL on non-configured interface: %s %d",
+                       iface, port);
+               return 0;
+       }
+       node->control = control;
+       return 1;
+}
+
+struct acl_addr*
+acl_interface_insert(struct acl_list* acl_interface,
+       struct sockaddr_storage* addr, socklen_t addrlen,
+       enum acl_access control)
+{
+       return acl_find_or_create(acl_interface, addr, addrlen, control);
+}
+
 /** apply acl_tag string */
 static int
 acl_list_tags_cfg(struct acl_list* acl, const char* str, uint8_t* bitmap,
-       size_t bitmaplen)
+       size_t bitmaplen, int is_interface, int port)
 {
        struct acl_addr* node;
-       if(!(node=acl_find_or_create(acl, str)))
+       if(!(node=acl_find_or_create_str2addr(acl, str, is_interface, port))) {
+               if(is_interface)
+                       log_err("non-configured interface: %s", str);
                return 0;
+       }
        node->taglen = bitmaplen;
        node->taglist = regional_alloc_init(acl->region, bitmap, bitmaplen);
        if(!node->taglist) {
@@ -175,11 +245,14 @@ acl_list_tags_cfg(struct acl_list* acl, const char* str, uint8_t* bitmap,
 /** apply acl_view string */
 static int
 acl_list_view_cfg(struct acl_list* acl, const char* str, const char* str2,
-       struct views* vs)
+       struct views* vs, int is_interface, int port)
 {
        struct acl_addr* node;
-       if(!(node=acl_find_or_create(acl, str)))
+       if(!(node=acl_find_or_create_str2addr(acl, str, is_interface, port))) {
+               if(is_interface)
+                       log_err("non-configured interface: %s", str);
                return 0;
+       }
        node->view = views_find_view(vs, str2, 0 /* get read lock*/);
        if(!node->view) {
                log_err("no view with name: %s", str2);
@@ -192,13 +265,17 @@ acl_list_view_cfg(struct acl_list* acl, const char* str, const char* str2,
 /** apply acl_tag_action string */
 static int
 acl_list_tag_action_cfg(struct acl_list* acl, struct config_file* cfg,
-       const char* str, const char* tag, const char* action)
+       const char* str, const char* tag, const char* action,
+       int is_interface, int port)
 {
        struct acl_addr* node;
        int tagid;
        enum localzone_type t;
-       if(!(node=acl_find_or_create(acl, str)))
+       if(!(node=acl_find_or_create_str2addr(acl, str, is_interface, port))) {
+               if(is_interface)
+                       log_err("non-configured interface: %s", str);
                return 0;
+       }
        /* allocate array if not yet */
        if(!node->tag_actions) {
                node->tag_actions = (uint8_t*)regional_alloc_zero(acl->region,
@@ -281,13 +358,17 @@ check_data(const char* data, const struct config_strlist* head)
 /** apply acl_tag_data string */
 static int
 acl_list_tag_data_cfg(struct acl_list* acl, struct config_file* cfg,
-       const char* str, const char* tag, const char* data)
+       const char* str, const char* tag, const char* data,
+       int is_interface, int port)
 {
        struct acl_addr* node;
        int tagid;
        char* dupdata;
-       if(!(node=acl_find_or_create(acl, str)))
+       if(!(node=acl_find_or_create_str2addr(acl, str, is_interface, port))) {
+               if(is_interface)
+                       log_err("non-configured interface: %s", str);
                return 0;
+       }
        /* allocate array if not yet */
        if(!node->tag_datas) {
                node->tag_datas = (struct config_strlist**)regional_alloc_zero(
@@ -329,11 +410,11 @@ acl_list_tag_data_cfg(struct acl_list* acl, struct config_file* cfg,
 }
 
 /** read acl_list config */
-static int 
-read_acl_list(struct acl_list* acl, struct config_file* cfg)
+static int
+read_acl_list(struct acl_list* acl, struct config_str2list* acls)
 {
        struct config_str2list* p;
-       for(p = cfg->acls; p; p = p->next) {
+       for(p = acls; p; p = p->next) {
                log_assert(p->str && p->str2);
                if(!acl_list_str_cfg(acl, p->str, p->str2, 1))
                        return 0;
@@ -341,16 +422,17 @@ read_acl_list(struct acl_list* acl, struct config_file* cfg)
        return 1;
 }
 
-/** read acl tags config */
-static int 
-read_acl_tags(struct acl_list* acl, struct config_file* cfg)
+/** read acl view config */
+static int
+read_acl_view(struct acl_list* acl, struct config_str2list** acl_view,
+       struct views* v)
 {
-       struct config_strbytelist* np, *p = cfg->acl_tags;
-       cfg->acl_tags = NULL;
+       struct config_str2list* np, *p = *acl_view;
+       *acl_view = NULL;
        while(p) {
                log_assert(p->str && p->str2);
-               if(!acl_list_tags_cfg(acl, p->str, p->str2, p->str2len)) {
-                       config_del_strbytelist(p);
+               if(!acl_list_view_cfg(acl, p->str, p->str2, v, 0, 0)) {
+                       config_deldblstrlist(p);
                        return 0;
                }
                /* free the items as we go to free up memory */
@@ -363,15 +445,16 @@ read_acl_tags(struct acl_list* acl, struct config_file* cfg)
        return 1;
 }
 
-/** read acl view config */
-static int 
-read_acl_view(struct acl_list* acl, struct config_file* cfg, struct views* v)
+/** read acl tags config */
+static int
+read_acl_tags(struct acl_list* acl, struct config_strbytelist** acl_tags)
 {
-       struct config_str2list* np, *p = cfg->acl_view;
-       cfg->acl_view = NULL;
+       struct config_strbytelist* np, *p = *acl_tags;
+       *acl_tags = NULL;
        while(p) {
                log_assert(p->str && p->str2);
-               if(!acl_list_view_cfg(acl, p->str, p->str2, v)) {
+               if(!acl_list_tags_cfg(acl, p->str, p->str2, p->str2len, 0, 0)) {
+                       config_del_strbytelist(p);
                        return 0;
                }
                /* free the items as we go to free up memory */
@@ -385,16 +468,17 @@ read_acl_view(struct acl_list* acl, struct config_file* cfg, struct views* v)
 }
 
 /** read acl tag actions config */
-static int 
-read_acl_tag_actions(struct acl_list* acl, struct config_file* cfg)
+static int
+read_acl_tag_actions(struct acl_list* acl, struct config_file* cfg,
+       struct config_str3list** acl_tag_actions)
 {
        struct config_str3list* p, *np;
-       p = cfg->acl_tag_actions;
-       cfg->acl_tag_actions = NULL;
+       p = *acl_tag_actions;
+       *acl_tag_actions = NULL;
        while(p) {
                log_assert(p->str && p->str2 && p->str3);
                if(!acl_list_tag_action_cfg(acl, cfg, p->str, p->str2,
-                       p->str3)) {
+                       p->str3, 0, 0)) {
                        config_deltrplstrlist(p);
                        return 0;
                }
@@ -410,15 +494,17 @@ read_acl_tag_actions(struct acl_list* acl, struct config_file* cfg)
 }
 
 /** read acl tag datas config */
-static int 
-read_acl_tag_datas(struct acl_list* acl, struct config_file* cfg)
+static int
+read_acl_tag_datas(struct acl_list* acl, struct config_file* cfg,
+       struct config_str3list** acl_tag_datas)
 {
        struct config_str3list* p, *np;
-       p = cfg->acl_tag_datas;
-       cfg->acl_tag_datas = NULL;
+       p = *acl_tag_datas;
+       *acl_tag_datas = NULL;
        while(p) {
                log_assert(p->str && p->str2 && p->str3);
-               if(!acl_list_tag_data_cfg(acl, cfg, p->str, p->str2, p->str3)) {
+               if(!acl_list_tag_data_cfg(acl, cfg, p->str, p->str2, p->str3,
+                       0, 0)) {
                        config_deltrplstrlist(p);
                        return 0;
                }
@@ -433,30 +519,27 @@ read_acl_tag_datas(struct acl_list* acl, struct config_file* cfg)
        return 1;
 }
 
-int 
+int
 acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg,
        struct views* v)
 {
        regional_free_all(acl->region);
        addr_tree_init(&acl->tree);
-       if(!read_acl_list(acl, cfg))
+       if(!read_acl_list(acl, cfg->acls))
                return 0;
-       if(!read_acl_view(acl, cfg, v))
+       if(!read_acl_view(acl, &cfg->acl_view, v))
                return 0;
-       if(!read_acl_tags(acl, cfg))
+       if(!read_acl_tags(acl, &cfg->acl_tags))
                return 0;
-       if(!read_acl_tag_actions(acl, cfg))
+       if(!read_acl_tag_actions(acl, cfg, &cfg->acl_tag_actions))
                return 0;
-       if(!read_acl_tag_datas(acl, cfg))
+       if(!read_acl_tag_datas(acl, cfg, &cfg->acl_tag_datas))
                return 0;
        /* insert defaults, with '0' to ignore them if they are duplicates */
-       if(!acl_list_str_cfg(acl, "0.0.0.0/0", "refuse", 0))
-               return 0;
+       /* the 'refuse' defaults for /0 are now done per interface instead */
        if(!acl_list_str_cfg(acl, "127.0.0.0/8", "allow", 0))
                return 0;
        if(cfg->do_ip6) {
-               if(!acl_list_str_cfg(acl, "::0/0", "refuse", 0))
-                       return 0;
                if(!acl_list_str_cfg(acl, "::1", "allow", 0))
                        return 0;
                if(!acl_list_str_cfg(acl, "::ffff:127.0.0.1", "allow", 0))
@@ -466,7 +549,223 @@ acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg,
        return 1;
 }
 
-enum acl_access 
+int
+acl_interface_compare(const void* k1, const void* k2)
+{
+       struct addr_tree_node* n1 = (struct addr_tree_node*)k1;
+       struct addr_tree_node* n2 = (struct addr_tree_node*)k2;
+       return sockaddr_cmp(&n1->addr, n1->addrlen, &n2->addr,
+               n2->addrlen);
+       /* We don't care about comparing node->net. All addresses in the
+        * acl_interface tree have either 32 (ipv4) or 128 (ipv6). */
+}
+
+void
+acl_interface_init(struct acl_list* acl_interface)
+{
+       regional_free_all(acl_interface->region);
+       /* We want comparison in the tree to include only address and port.
+        * We don't care about comparing node->net. All addresses in the
+        * acl_interface->tree should have either 32 (ipv4) or 128 (ipv6).
+        * Initialise with the appropriate compare function but keep treating
+        * it as an addr_tree. */
+       addr_tree_addrport_init(&acl_interface->tree);
+}
+
+static int
+read_acl_interface_action(struct acl_list* acl_interface,
+       struct config_str2list* acls, int port)
+{
+       struct config_str2list* p;
+       for(p = acls; p; p = p->next) {
+               char** resif = NULL;
+               int num_resif = 0;
+               int i;
+               log_assert(p->str && p->str2);
+               if(!resolve_interface_names(&p->str, 1, NULL, &resif, &num_resif))
+                       return 0;
+               for(i = 0; i<num_resif; i++) {
+                       if(!acl_interface_str_cfg(acl_interface, resif[i], p->str2, port)){
+                               config_del_strarray(resif, num_resif);
+                               return 0;
+                       }
+               }
+               config_del_strarray(resif, num_resif);
+       }
+       return 1;
+}
+
+/** read acl view config for interface */
+static int
+read_acl_interface_view(struct acl_list* acl_interface,
+       struct config_str2list** acl_view,
+       struct views* v, int port)
+{
+       struct config_str2list* np, *p = *acl_view;
+       *acl_view = NULL;
+       while(p) {
+               char** resif = NULL;
+               int num_resif = 0;
+               int i;
+               log_assert(p->str && p->str2);
+               if(!resolve_interface_names(&p->str, 1, NULL, &resif, &num_resif)) {
+                       config_deldblstrlist(p);
+                       return 0;
+               }
+               for(i = 0; i<num_resif; i++) {
+                       if(!acl_list_view_cfg(acl_interface, resif[i], p->str2,
+                               v, 1, port)) {
+                               config_del_strarray(resif, num_resif);
+                               config_deldblstrlist(p);
+                               return 0;
+                       }
+               }
+               config_del_strarray(resif, num_resif);
+               /* free the items as we go to free up memory */
+               np = p->next;
+               free(p->str);
+               free(p->str2);
+               free(p);
+               p = np;
+       }
+       return 1;
+}
+
+/** read acl tags config for interface */
+static int
+read_acl_interface_tags(struct acl_list* acl_interface,
+       struct config_strbytelist** acl_tags, int port)
+{
+       struct config_strbytelist* np, *p = *acl_tags;
+       *acl_tags = NULL;
+       while(p) {
+               char** resif = NULL;
+               int num_resif = 0;
+               int i;
+               log_assert(p->str && p->str2);
+               if(!resolve_interface_names(&p->str, 1, NULL, &resif, &num_resif)) {
+                       config_del_strbytelist(p);
+                       return 0;
+               }
+               for(i = 0; i<num_resif; i++) {
+                       if(!acl_list_tags_cfg(acl_interface, resif[i], p->str2,
+                               p->str2len, 1, port)) {
+                               config_del_strbytelist(p);
+                               config_del_strarray(resif, num_resif);
+                               return 0;
+                       }
+               }
+               config_del_strarray(resif, num_resif);
+               /* free the items as we go to free up memory */
+               np = p->next;
+               free(p->str);
+               free(p->str2);
+               free(p);
+               p = np;
+       }
+       return 1;
+}
+
+/** read acl tag actions config for interface*/
+static int
+read_acl_interface_tag_actions(struct acl_list* acl_interface,
+       struct config_file* cfg,
+       struct config_str3list** acl_tag_actions, int port)
+{
+       struct config_str3list* p, *np;
+       p = *acl_tag_actions;
+       *acl_tag_actions = NULL;
+       while(p) {
+               char** resif = NULL;
+               int num_resif = 0;
+               int i;
+               log_assert(p->str && p->str2 && p->str3);
+               if(!resolve_interface_names(&p->str, 1, NULL, &resif, &num_resif)) {
+                       config_deltrplstrlist(p);
+                       return 0;
+               }
+               for(i = 0; i<num_resif; i++) {
+                       if(!acl_list_tag_action_cfg(acl_interface, cfg,
+                               resif[i], p->str2, p->str3, 1, port)) {
+                               config_deltrplstrlist(p);
+                               config_del_strarray(resif, num_resif);
+                               return 0;
+                       }
+               }
+               config_del_strarray(resif, num_resif);
+               /* free the items as we go to free up memory */
+               np = p->next;
+               free(p->str);
+               free(p->str2);
+               free(p->str3);
+               free(p);
+               p = np;
+       }
+       return 1;
+}
+
+/** read acl tag datas config for interface */
+static int
+read_acl_interface_tag_datas(struct acl_list* acl_interface,
+       struct config_file* cfg,
+       struct config_str3list** acl_tag_datas, int port)
+{
+       struct config_str3list* p, *np;
+       p = *acl_tag_datas;
+       *acl_tag_datas = NULL;
+       while(p) {
+               char** resif = NULL;
+               int num_resif = 0;
+               int i;
+               log_assert(p->str && p->str2 && p->str3);
+               if(!resolve_interface_names(&p->str, 1, NULL, &resif, &num_resif)) {
+                       config_deltrplstrlist(p);
+                       return 0;
+               }
+               for(i = 0; i<num_resif; i++) {
+                       if(!acl_list_tag_data_cfg(acl_interface, cfg,
+                               resif[i], p->str2, p->str3, 1, port)) {
+                               config_deltrplstrlist(p);
+                               config_del_strarray(resif, num_resif);
+                               return 0;
+                       }
+               }
+               config_del_strarray(resif, num_resif);
+               /* free the items as we go to free up memory */
+               np = p->next;
+               free(p->str);
+               free(p->str2);
+               free(p->str3);
+               free(p);
+               p = np;
+       }
+       return 1;
+}
+
+int
+acl_interface_apply_cfg(struct acl_list* acl_interface, struct config_file* cfg,
+       struct views* v)
+{
+       if(!read_acl_interface_action(acl_interface, cfg->interface_actions,
+               cfg->port))
+               return 0;
+       if(!read_acl_interface_view(acl_interface, &cfg->interface_view, v,
+               cfg->port))
+               return 0;
+       if(!read_acl_interface_tags(acl_interface, &cfg->interface_tags,
+               cfg->port))
+               return 0;
+       if(!read_acl_interface_tag_actions(acl_interface, cfg,
+               &cfg->interface_tag_actions, cfg->port))
+               return 0;
+       if(!read_acl_interface_tag_datas(acl_interface, cfg,
+               &cfg->interface_tag_datas, cfg->port))
+               return 0;
+       addr_tree_init_parents(&acl_interface->tree);
+       return 1;
+}
+
+enum acl_access
 acl_get_control(struct acl_addr* acl)
 {
        if(acl) return acl->control;
@@ -481,7 +780,7 @@ acl_addr_lookup(struct acl_list* acl, struct sockaddr_storage* addr,
                addr, addrlen);
 }
 
-size_t 
+size_t
 acl_list_get_mem(struct acl_list* acl)
 {
        if(!acl) return 0;
index c09e832..c717179 100644 (file)
@@ -36,7 +36,7 @@
 /**
  * \file
  *
- * This file keeps track of the list of clients that are allowed to 
+ * This file keeps track of the list of clients that are allowed to
  * access the server.
  */
 
@@ -74,7 +74,7 @@ enum acl_access {
 struct acl_list {
        /** regional for allocation */
        struct regional* region;
-       /** 
+       /**
         * Tree of the addresses that are allowed/blocked.
         * contents of type acl_addr.
         */
@@ -108,7 +108,7 @@ struct acl_addr {
 };
 
 /**
- * Create acl structure 
+ * Create acl structure
  * @return new structure or NULL on error.
  */
 struct acl_list* acl_list_create(void);
@@ -119,6 +119,20 @@ struct acl_list* acl_list_create(void);
  */
 void acl_list_delete(struct acl_list* acl);
 
+/**
+ * Insert interface in the acl_list. This should happen when the listening
+ * interface is setup.
+ * @param acl_interface: acl_list to insert to.
+ * @param addr: interface IP.
+ * @param addrlen: length of the interface IP.
+ * @param control: acl_access.
+ * @return new structure or NULL on error.
+ */
+struct acl_addr*
+acl_interface_insert(struct acl_list* acl_interface,
+       struct sockaddr_storage* addr, socklen_t addrlen,
+       enum acl_access control);
+
 /**
  * Process access control config.
  * @param acl: where to store.
@@ -129,6 +143,25 @@ void acl_list_delete(struct acl_list* acl);
 int acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg,
        struct views* v);
 
+/** compare ACL interface "addr_tree" nodes (+port) */
+int acl_interface_compare(const void* k1, const void* k2);
+
+/**
+ * Initialise (also clean) the acl_interface struct.
+ * @param acl_interface: where to store.
+ */
+void acl_interface_init(struct acl_list* acl_interface);
+
+/**
+ * Process interface control config.
+ * @param acl_interface: where to store.
+ * @param cfg: config options.
+ * @param v: views structure
+ * @return 0 on error.
+ */
+int acl_interface_apply_cfg(struct acl_list* acl_interface, struct config_file* cfg,
+       struct views* v);
+
 /**
  * Lookup access control status for acl structure.
  * @param acl: structure for acl storage.
index 4ed5318..7109113 100644 (file)
@@ -96,6 +96,9 @@
 #ifdef HAVE_SYSTEMD
 #include <systemd/sd-daemon.h>
 #endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
 
 /** How many quit requests happened. */
 static int sig_record_quit = 0;
@@ -271,8 +274,17 @@ daemon_init(void)
                free(daemon);
                return NULL;
        }
+       daemon->acl_interface = acl_list_create();
+       if(!daemon->acl_interface) {
+               acl_list_delete(daemon->acl);
+               edns_known_options_delete(daemon->env);
+               free(daemon->env);
+               free(daemon);
+               return NULL;
+       }
        daemon->tcl = tcl_list_create();
        if(!daemon->tcl) {
+               acl_list_delete(daemon->acl_interface);
                acl_list_delete(daemon->acl);
                edns_known_options_delete(daemon->env);
                free(daemon->env);
@@ -284,6 +296,7 @@ daemon_init(void)
                log_err("gettimeofday: %s", strerror(errno));
        daemon->time_last_stat = daemon->time_boot;
        if((daemon->env->auth_zones = auth_zones_create()) == 0) {
+               acl_list_delete(daemon->acl_interface);
                acl_list_delete(daemon->acl);
                tcl_list_delete(daemon->tcl);
                edns_known_options_delete(daemon->env);
@@ -293,6 +306,7 @@ daemon_init(void)
        }
        if(!(daemon->env->edns_strings = edns_strings_create())) {
                auth_zones_delete(daemon->env->auth_zones);
+               acl_list_delete(daemon->acl_interface);
                acl_list_delete(daemon->acl);
                tcl_list_delete(daemon->tcl);
                edns_known_options_delete(daemon->env);
@@ -303,6 +317,29 @@ daemon_init(void)
        return daemon;  
 }
 
+static int setup_acl_for_ports(struct acl_list* list,
+       struct listen_port* port_list)
+{
+       struct acl_addr* acl_node;
+       struct addrinfo* addr;
+       for(; port_list; port_list=port_list->next) {
+               if(!port_list->socket) {
+                       /* This is mainly for testbound where port_list is
+                        * empty. */
+                       continue;
+               }
+               addr = port_list->socket->addr;
+               if(!(acl_node = acl_interface_insert(list,
+                       (struct sockaddr_storage*)addr->ai_addr,
+                       (socklen_t)addr->ai_addrlen,
+                       acl_refuse))) {
+                       return 0;
+               }
+               port_list->socket->acl = acl_node;
+       }
+       return 1;
+}
+
 int 
 daemon_open_shared_ports(struct daemon* daemon)
 {
@@ -320,6 +357,8 @@ daemon_open_shared_ports(struct daemon* daemon)
                        free(daemon->ports);
                        daemon->ports = NULL;
                }
+               /* clean acl_interface */
+               acl_interface_init(daemon->acl_interface);
                if(!resolve_interface_names(daemon->cfg->ifs,
                        daemon->cfg->num_ifs, NULL, &resif, &num_resif))
                        return 0;
@@ -329,7 +368,8 @@ daemon_open_shared_ports(struct daemon* daemon)
                        daemon->reuseport = 1;
 #endif
                /* try to use reuseport */
-               p0 = listening_ports_open(daemon->cfg, resif, num_resif, &daemon->reuseport);
+               p0 = listening_ports_open(daemon->cfg, resif, num_resif,
+                       &daemon->reuseport);
                if(!p0) {
                        listening_ports_free(p0);
                        config_del_strarray(resif, num_resif);
@@ -350,6 +390,12 @@ daemon_open_shared_ports(struct daemon* daemon)
                        return 0;
                }
                daemon->ports[0] = p0;
+               if(!setup_acl_for_ports(daemon->acl_interface,
+                   daemon->ports[0])) {
+                       listening_ports_free(p0);
+                       config_del_strarray(resif, num_resif);
+                       return 0;
+               }
                if(daemon->reuseport) {
                        /* continue to use reuseport */
                        for(i=1; i<daemon->num_ports; i++) {
@@ -365,6 +411,15 @@ daemon_open_shared_ports(struct daemon* daemon)
                                        config_del_strarray(resif, num_resif);
                                        return 0;
                                }
+                               if(!setup_acl_for_ports(daemon->acl_interface,
+                                       daemon->ports[i])) {
+                                       for(i=0; i<daemon->num_ports; i++)
+                                               listening_ports_free(daemon->ports[i]);
+                                       free(daemon->ports);
+                                       daemon->ports = NULL;
+                                       config_del_strarray(resif, num_resif);
+                                       return 0;
+                               }
                        }
                }
                config_del_strarray(resif, num_resif);
@@ -604,6 +659,9 @@ daemon_fork(struct daemon* daemon)
 
        if(!acl_list_apply_cfg(daemon->acl, daemon->cfg, daemon->views))
                fatal_exit("Could not setup access control list");
+       if(!acl_interface_apply_cfg(daemon->acl_interface, daemon->cfg,
+               daemon->views))
+               fatal_exit("Could not setup interface control list");
        if(!tcl_list_apply_cfg(daemon->tcl, daemon->cfg))
                fatal_exit("Could not setup TCP connection limits");
        if(daemon->cfg->dnscrypt) {
@@ -780,6 +838,7 @@ daemon_delete(struct daemon* daemon)
        ub_randfree(daemon->rand);
        alloc_clear(&daemon->superalloc);
        acl_list_delete(daemon->acl);
+       acl_list_delete(daemon->acl_interface);
        tcl_list_delete(daemon->tcl);
        listen_desetup_locks();
        free(daemon->chroot);
index 3effbaf..58713e9 100644 (file)
@@ -113,6 +113,8 @@ struct daemon {
        struct module_stack mods;
        /** access control, which client IPs are allowed to connect */
        struct acl_list* acl;
+       /** access control, which interfaces are allowed to connect */
+       struct acl_list* acl_interface;
        /** TCP connection limit, limit connections from client IPs */
        struct tcl_list* tcl;
        /** local authority zones */
index ec7a4d5..7d4a414 100644 (file)
@@ -494,8 +494,8 @@ int remote_accept_callback(struct comm_point* c, void* arg, int err,
        n->c->do_not_close = 0;
        comm_point_stop_listening(n->c);
        comm_point_start_listening(n->c, -1, REMOTE_CONTROL_TCP_TIMEOUT);
-       memcpy(&n->c->repinfo.addr, &addr, addrlen);
-       n->c->repinfo.addrlen = addrlen;
+       memcpy(&n->c->repinfo.remote_addr, &addr, addrlen);
+       n->c->repinfo.remote_addrlen = addrlen;
        if(rc->use_cert) {
                n->shake_state = rc_hs_read;
                n->ssl = SSL_new(rc->ctx);
@@ -3304,7 +3304,7 @@ remote_handshake_later(struct daemon_remote* rc, struct rc_state* s,
                if(r == 0)
                        log_err("remote control connection closed prematurely");
                log_addr(VERB_OPS, "failed connection from",
-                       &s->c->repinfo.addr, s->c->repinfo.addrlen);
+                       &s->c->repinfo.remote_addr, s->c->repinfo.remote_addrlen);
                log_crypto_err("remote control failed ssl");
                clean_point(rc, s);
        }
index 57c4282..6b38349 100644 (file)
@@ -70,6 +70,9 @@
 #include <openssl/ssl.h>
 #endif
 
+/** How long to wait for threads to transmit statistics, in msec. */
+#define STATS_THREAD_WAIT 60000
+
 /** add timers and the values do not overflow or become negative */
 static void
 stats_timeval_add(long long* d_sec, long long* d_usec, long long add_sec, long long add_usec)
@@ -380,6 +383,28 @@ void server_stats_obtain(struct worker* worker, struct worker* who,
                worker_send_cmd(who, worker_cmd_stats);
        else    worker_send_cmd(who, worker_cmd_stats_noreset);
        verbose(VERB_ALGO, "wait for stats reply");
+       if(tube_wait_timeout(worker->cmd, STATS_THREAD_WAIT) == 0) {
+               verbose(VERB_OPS, "no response from thread %d"
+#ifdef HAVE_GETTID
+                       " LWP %u"
+#endif
+#if defined(HAVE_PTHREAD) && defined(SIZEOF_PTHREAD_T) && defined(SIZEOF_UNSIGNED_LONG)
+#  if SIZEOF_PTHREAD_T == SIZEOF_UNSIGNED_LONG
+                       " pthread 0x%lx"
+#  endif
+#endif
+                       ,
+                       who->thread_num
+#ifdef HAVE_GETTID
+                       , (unsigned)who->thread_tid
+#endif
+#if defined(HAVE_PTHREAD) && defined(SIZEOF_PTHREAD_T) && defined(SIZEOF_UNSIGNED_LONG)
+#  if SIZEOF_PTHREAD_T == SIZEOF_UNSIGNED_LONG
+                       , (unsigned long)*((unsigned long*)&who->thr_id)
+#  endif
+#endif
+                       );
+       }
        if(!tube_read_msg(worker->cmd, &reply, &len, 0))
                fatal_exit("failed to read stats over cmd channel");
        if(len != (uint32_t)sizeof(*s))
@@ -496,7 +521,7 @@ void server_stats_insquery(struct ub_server_stats* stats, struct comm_point* c,
                                stats->qhttps++;
                }
        }
-       if(repinfo && addr_is_ip6(&repinfo->addr, repinfo->addrlen))
+       if(repinfo && addr_is_ip6(&repinfo->remote_addr, repinfo->remote_addrlen))
                stats->qipv6++;
        if( (flags&BIT_QR) )
                stats->qbit_QR++;
index 010c4dc..caefad6 100644 (file)
@@ -547,7 +547,8 @@ answer_norec_from_cache(struct worker* worker, struct query_info* qinfo,
 static int
 apply_respip_action(struct worker* worker, const struct query_info* qinfo,
        struct respip_client_info* cinfo, struct reply_info* rep,
-       struct comm_reply* repinfo, struct ub_packed_rrset_key** alias_rrset,
+       struct sockaddr_storage* addr, socklen_t addrlen,
+       struct ub_packed_rrset_key** alias_rrset,
        struct reply_info** encode_repp, struct auth_zones* az)
 {
        struct respip_action_info actinfo = {0, 0, 0, 0, NULL, 0, NULL};
@@ -574,7 +575,7 @@ apply_respip_action(struct worker* worker, const struct query_info* qinfo,
        if(actinfo.addrinfo) {
                respip_inform_print(&actinfo, qinfo->qname,
                        qinfo->qtype, qinfo->qclass, qinfo->local_alias,
-                       repinfo);
+                       addr, addrlen);
 
                if(worker->stats.extended && actinfo.rpz_used) {
                        if(actinfo.rpz_disabled)
@@ -703,7 +704,7 @@ answer_from_cache(struct worker* worker, struct query_info* qinfo,
        *alias_rrset = NULL; /* avoid confusion if caller set it to non-NULL */
        if((worker->daemon->use_response_ip || worker->daemon->use_rpz) &&
                !partial_rep && !apply_respip_action(worker, qinfo, cinfo, rep,
-               repinfo, alias_rrset,
+               &repinfo->client_addr, repinfo->client_addrlen, alias_rrset,
                &encode_rep, worker->env.auth_zones)) {
                goto bail_out;
        } else if(partial_rep &&
@@ -991,12 +992,14 @@ answer_chaos(struct worker* w, struct query_info* qinfo,
  * @param w: worker
  * @param qinfo: query info. Pointer into packet buffer.
  * @param edns: edns info from query.
- * @param repinfo: reply info with source address.
+ * @param addr: client address.
+ * @param addrlen: client address length.
  * @param pkt: packet buffer.
  */
 static void
-answer_notify(struct worker* w, struct query_info* qinfo, 
-       struct edns_data* edns, sldns_buffer* pkt, struct comm_reply* repinfo)
+answer_notify(struct worker* w, struct query_info* qinfo,
+       struct edns_data* edns, sldns_buffer* pkt,
+       struct sockaddr_storage* addr, socklen_t addrlen)
 {
        int refused = 0;
        int rcode = LDNS_RCODE_NOERROR;
@@ -1005,8 +1008,8 @@ answer_notify(struct worker* w, struct query_info* qinfo,
        if(!w->env.auth_zones) return;
        has_serial = auth_zone_parse_notify_serial(pkt, &serial);
        if(auth_zones_notify(w->env.auth_zones, &w->env, qinfo->qname,
-               qinfo->qname_len, qinfo->qclass, &repinfo->addr,
-               repinfo->addrlen, has_serial, serial, &refused)) {
+               qinfo->qname_len, qinfo->qclass, addr,
+               addrlen, has_serial, serial, &refused)) {
                rcode = LDNS_RCODE_NOERROR;
        } else {
                if(refused)
@@ -1031,7 +1034,7 @@ answer_notify(struct worker* w, struct query_info* qinfo,
                                "servfail for NOTIFY %sfor %s from", sr, zname);
                else    snprintf(buf, sizeof(buf),
                                "received NOTIFY %sfor %s from", sr, zname);
-               log_addr(VERB_DETAIL, buf, &repinfo->addr, repinfo->addrlen);
+               log_addr(VERB_DETAIL, buf, addr, addrlen);
        }
        edns->edns_version = EDNS_ADVERTISED_VERSION;
        edns->udp_size = EDNS_ADVERTISED_SIZE;
@@ -1051,8 +1054,8 @@ deny_refuse(struct comm_point* c, enum acl_access acl,
 {
        if(acl == deny) {
                if(verbosity >= VERB_ALGO) {
-                       log_acl_action("dropped", &repinfo->addr,
-                               repinfo->addrlen, acl, acladdr);
+                       log_acl_action("dropped", &repinfo->client_addr,
+                               repinfo->client_addrlen, acl, acladdr);
                        log_buf(VERB_ALGO, "dropped", c->buffer);
                }
                comm_point_drop_reply(repinfo);
@@ -1063,8 +1066,8 @@ deny_refuse(struct comm_point* c, enum acl_access acl,
                size_t opt_rr_mark;
 
                if(verbosity >= VERB_ALGO) {
-                       log_acl_action("refused", &repinfo->addr,
-                               repinfo->addrlen, acl, acladdr);
+                       log_acl_action("refused", &repinfo->client_addr,
+                               repinfo->client_addrlen, acl, acladdr);
                        log_buf(VERB_ALGO, "refuse", c->buffer);
                }
 
@@ -1224,12 +1227,24 @@ deny_refuse(struct comm_point* c, enum acl_access acl,
 }
 
 static int
-deny_refuse_all(struct comm_point* c, enum acl_access acl,
+deny_refuse_all(struct comm_point* c, enum acl_access* acl,
        struct worker* worker, struct comm_reply* repinfo,
-       struct acl_addr* acladdr, int ede)
+       struct acl_addr** acladdr, int ede, int check_proxy)
 {
-       return deny_refuse(c, acl, acl_deny, acl_refuse, worker, repinfo,
-               acladdr, ede);
+       if(check_proxy) {
+               *acladdr = acl_addr_lookup(worker->daemon->acl,
+                       &repinfo->remote_addr, repinfo->remote_addrlen);
+       } else {
+               *acladdr = acl_addr_lookup(worker->daemon->acl,
+                       &repinfo->client_addr, repinfo->client_addrlen);
+       }
+       /* If there is no ACL based on client IP use the interface ACL. */
+       if(!(*acladdr) && c->socket) {
+               *acladdr = c->socket->acl;
+       }
+       *acl = acl_get_control(*acladdr);
+       return deny_refuse(c, *acl, acl_deny, acl_refuse, worker, repinfo,
+               *acladdr, ede);
 }
 
 static int
@@ -1241,7 +1256,7 @@ deny_refuse_non_local(struct comm_point* c, enum acl_access acl,
                worker, repinfo, acladdr, ede);
 }
 
-int 
+int
 worker_handle_request(struct comm_point* c, void* arg, int error,
        struct comm_reply* repinfo)
 {
@@ -1286,16 +1301,16 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
                if(worker_check_request(c->buffer, worker) != 0) {
                        verbose(VERB_ALGO,
                                "dnscrypt: worker check request: bad query.");
-                       log_addr(VERB_CLIENT,"from",&repinfo->addr,
-                               repinfo->addrlen);
+                       log_addr(VERB_CLIENT,"from",&repinfo->client_addr,
+                               repinfo->client_addrlen);
                        comm_point_drop_reply(repinfo);
                        return 0;
                }
                if(!query_info_parse(&qinfo, c->buffer)) {
                        verbose(VERB_ALGO,
                                "dnscrypt: worker parse request: formerror.");
-                       log_addr(VERB_CLIENT, "from", &repinfo->addr,
-                               repinfo->addrlen);
+                       log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
+                               repinfo->client_addrlen);
                        comm_point_drop_reply(repinfo);
                        return 0;
                }
@@ -1323,25 +1338,30 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
         * sending src (client)/dst (local service) addresses over DNSTAP from incoming request handler
         */
        if(worker->dtenv.log_client_query_messages) {
-               log_addr(VERB_ALGO, "request from client", &repinfo->addr, repinfo->addrlen);
+               log_addr(VERB_ALGO, "request from client", &repinfo->client_addr, repinfo->client_addrlen);
                log_addr(VERB_ALGO, "to local addr", (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->socket->addr->ai_addrlen);
-               dt_msg_send_client_query(&worker->dtenv, &repinfo->addr, (void*)repinfo->c->socket->addr->ai_addr, c->type, c->buffer);
+               dt_msg_send_client_query(&worker->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, c->type, c->buffer);
        }
 #endif
-       acladdr = acl_addr_lookup(worker->daemon->acl, &repinfo->addr, 
-               repinfo->addrlen);
-       acl = acl_get_control(acladdr);
-
-       if((ret=deny_refuse_all(c, acl, worker, repinfo, acladdr,
-               worker->env.cfg->ede)) != -1)
-       {
+       /* Check deny/refuse ACLs */
+       if(repinfo->is_proxied) {
+               if((ret=deny_refuse_all(c, &acl, worker, repinfo, &acladdr,
+                       worker->env.cfg->ede, 1)) != -1) {
+                       if(ret == 1)
+                               goto send_reply;
+                       return ret;
+               }
+       }
+       if((ret=deny_refuse_all(c, &acl, worker, repinfo, &acladdr,
+               worker->env.cfg->ede, 0)) != -1) {
                if(ret == 1)
                        goto send_reply;
                return ret;
        }
+
        if((ret=worker_check_request(c->buffer, worker)) != 0) {
                verbose(VERB_ALGO, "worker check request: bad query.");
-               log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+               log_addr(VERB_CLIENT,"from",&repinfo->client_addr, repinfo->client_addrlen);
                if(ret != -1) {
                        LDNS_QR_SET(sldns_buffer_begin(c->buffer));
                        LDNS_RCODE_SET(sldns_buffer_begin(c->buffer), ret);
@@ -1353,20 +1373,24 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
 
        worker->stats.num_queries++;
 
-       /* check if this query should be dropped based on source ip rate limiting */
-       if(!infra_ip_ratelimit_inc(worker->env.infra_cache, repinfo,
+       /* check if this query should be dropped based on source ip rate limiting
+        * NOTE: we always check the repinfo->client_address. IP ratelimiting is
+        *       implicitly disabled for proxies. */
+       if(!infra_ip_ratelimit_inc(worker->env.infra_cache,
+                       &repinfo->client_addr, repinfo->client_addrlen,
                        *worker->env.now,
                        worker->env.cfg->ip_ratelimit_backoff, c->buffer)) {
                /* See if we are passed through with slip factor */
                if(worker->env.cfg->ip_ratelimit_factor != 0 &&
                        ub_random_max(worker->env.rnd,
-                                                 worker->env.cfg->ip_ratelimit_factor) == 0) {
-
+                       worker->env.cfg->ip_ratelimit_factor) == 0) {
                        char addrbuf[128];
-                       addr_to_str(&repinfo->addr, repinfo->addrlen,
-                                               addrbuf, sizeof(addrbuf));
-                 verbose(VERB_QUERY, "ip_ratelimit allowed through for ip address %s because of slip in ip_ratelimit_factor",
-                                 addrbuf);
+                       addr_to_str(&repinfo->client_addr,
+                               repinfo->client_addrlen, addrbuf,
+                               sizeof(addrbuf));
+                       verbose(VERB_QUERY, "ip_ratelimit allowed through for "
+                               "ip address %s because of slip in "
+                               "ip_ratelimit_factor", addrbuf);
                } else {
                        worker->stats.num_queries_ip_ratelimited++;
                        comm_point_drop_reply(repinfo);
@@ -1377,7 +1401,8 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
        /* see if query is in the cache */
        if(!query_info_parse(&qinfo, c->buffer)) {
                verbose(VERB_ALGO, "worker parse request: formerror.");
-               log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+               log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
+                       repinfo->client_addrlen);
                memset(&qinfo, 0, sizeof(qinfo)); /* zero qinfo.qname */
                if(worker_err_ratelimit(worker, LDNS_RCODE_FORMERR) == -1) {
                        comm_point_drop_reply(repinfo);
@@ -1391,13 +1416,14 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
        }
        if(worker->env.cfg->log_queries) {
                char ip[128];
-               addr_to_str(&repinfo->addr, repinfo->addrlen, ip, sizeof(ip));
+               addr_to_str(&repinfo->client_addr, repinfo->client_addrlen, ip, sizeof(ip));
                log_query_in(ip, qinfo.qname, qinfo.qtype, qinfo.qclass);
        }
        if(qinfo.qtype == LDNS_RR_TYPE_AXFR || 
                qinfo.qtype == LDNS_RR_TYPE_IXFR) {
                verbose(VERB_ALGO, "worker request: refused zone transfer.");
-               log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+               log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
+                       repinfo->client_addrlen);
                sldns_buffer_rewind(c->buffer);
                LDNS_QR_SET(sldns_buffer_begin(c->buffer));
                LDNS_RCODE_SET(sldns_buffer_begin(c->buffer), 
@@ -1414,7 +1440,8 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
                qinfo.qtype == LDNS_RR_TYPE_MAILB ||
                (qinfo.qtype >= 128 && qinfo.qtype <= 248)) {
                verbose(VERB_ALGO, "worker request: formerror for meta-type.");
-               log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+               log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
+                       repinfo->client_addrlen);
                if(worker_err_ratelimit(worker, LDNS_RCODE_FORMERR) == -1) {
                        comm_point_drop_reply(repinfo);
                        return 0;
@@ -1432,7 +1459,8 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
                                        worker->scratchpad)) != 0) {
                struct edns_data reply_edns;
                verbose(VERB_ALGO, "worker parse edns: formerror.");
-               log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+               log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
+                       repinfo->client_addrlen);
                memset(&reply_edns, 0, sizeof(reply_edns));
                reply_edns.edns_present = 1;
                reply_edns.udp_size = EDNS_ADVERTISED_SIZE;
@@ -1454,7 +1482,8 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
                        edns.opt_list_inplace_cb_out = NULL;
                        edns.padding_block_size = 0;
                        verbose(VERB_ALGO, "query with bad edns version.");
-                       log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+                       log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
+                               repinfo->client_addrlen);
                        error_encode(c->buffer, EDNS_RCODE_BADVERS&0xf, &qinfo,
                                *(uint16_t*)(void *)sldns_buffer_begin(c->buffer),
                                sldns_buffer_read_u16_at(c->buffer, 2), NULL);
@@ -1468,7 +1497,8 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
                   worker->daemon->cfg->harden_short_bufsize) {
                        verbose(VERB_QUERY, "worker request: EDNS bufsize %d ignored",
                                (int)edns.udp_size);
-                       log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+                       log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
+                               repinfo->client_addrlen);
                        edns.udp_size = NORMAL_UDP_SIZE;
                }
        }
@@ -1477,12 +1507,14 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
                verbose(VERB_QUERY,
                        "worker request: max UDP reply size modified"
                        " (%d to max-udp-size)", (int)edns.udp_size);
-               log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+               log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
+                       repinfo->client_addrlen);
                edns.udp_size = worker->daemon->cfg->max_udp_size;
        }
        if(edns.udp_size < LDNS_HEADER_SIZE) {
                verbose(VERB_ALGO, "worker request: edns is too small.");
-               log_addr(VERB_CLIENT, "from", &repinfo->addr, repinfo->addrlen);
+               log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
+                       repinfo->client_addrlen);
                LDNS_QR_SET(sldns_buffer_begin(c->buffer));
                LDNS_TC_SET(sldns_buffer_begin(c->buffer));
                LDNS_RCODE_SET(sldns_buffer_begin(c->buffer), 
@@ -1506,7 +1538,8 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
        }
        if(LDNS_OPCODE_WIRE(sldns_buffer_begin(c->buffer)) ==
                LDNS_PACKET_NOTIFY) {
-               answer_notify(worker, &qinfo, &edns, c->buffer, repinfo);
+               answer_notify(worker, &qinfo, &edns, c->buffer,
+                       &repinfo->client_addr, repinfo->client_addrlen);
                regional_free_all(worker->scratchpad);
                goto send_reply;
        }
@@ -1582,7 +1615,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
                        sldns_buffer_read_u16_at(c->buffer, 2), &edns);
                regional_free_all(worker->scratchpad);
                log_addr(VERB_ALGO, "refused nonrec (cache snoop) query from",
-                       &repinfo->addr, repinfo->addrlen);
+                       &repinfo->client_addr, repinfo->client_addrlen);
 
                goto send_reply;
        }
@@ -1722,9 +1755,9 @@ lookup_cache:
        if(verbosity >= VERB_CLIENT) {
                if(c->type == comm_udp)
                        log_addr(VERB_CLIENT, "udp request from",
-                               &repinfo->addr, repinfo->addrlen);
+                               &repinfo->client_addr, repinfo->client_addrlen);
                else    log_addr(VERB_CLIENT, "tcp request from",
-                               &repinfo->addr, repinfo->addrlen);
+                               &repinfo->client_addr, repinfo->client_addrlen);
        }
 
        /* grab a work request structure for this new request */
@@ -1756,8 +1789,8 @@ send_reply_rc:
         */
        if(worker->dtenv.log_client_response_messages) {
                log_addr(VERB_ALGO, "from local addr", (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->socket->addr->ai_addrlen);
-                log_addr(VERB_ALGO, "response to client", &repinfo->addr, repinfo->addrlen);
-               dt_msg_send_client_response(&worker->dtenv, &repinfo->addr, (void*)repinfo->c->socket->addr->ai_addr, c->type, c->buffer);
+               log_addr(VERB_ALGO, "response to client", &repinfo->client_addr, repinfo->client_addrlen);
+               dt_msg_send_client_response(&worker->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, c->type, c->buffer);
        }
 #endif
        if(worker->env.cfg->log_replies)
@@ -1769,10 +1802,12 @@ send_reply_rc:
                        /* log original qname, before the local alias was
                         * used to resolve that CNAME to something else */
                        qinfo.qname = qinfo.local_alias->rrset->rk.dname;
-                       log_reply_info(NO_VERBOSE, &qinfo, &repinfo->addr, repinfo->addrlen,
+                       log_reply_info(NO_VERBOSE, &qinfo,
+                               &repinfo->client_addr, repinfo->client_addrlen,
                                tv, 1, c->buffer);
                } else {
-                       log_reply_info(NO_VERBOSE, &qinfo, &repinfo->addr, repinfo->addrlen,
+                       log_reply_info(NO_VERBOSE, &qinfo,
+                               &repinfo->client_addr, repinfo->client_addrlen,
                                tv, 1, c->buffer);
                }
        }
@@ -1903,6 +1938,9 @@ worker_init(struct worker* worker, struct config_file *cfg,
        struct dt_env* dtenv = &worker->dtenv;
 #else
        void* dtenv = NULL;
+#endif
+#ifdef HAVE_GETTID
+       worker->thread_tid = gettid();
 #endif
        worker->need_to_exit = 0;
        worker->base = comm_base_create(do_sigs);
index 3887d04..3fb52ab 100644 (file)
@@ -86,6 +86,10 @@ struct worker {
        struct daemon* daemon;
        /** thread id */
        ub_thread_type thr_id;
+#ifdef HAVE_GETTID
+       /** thread tid, the LWP id. */
+       pid_t thread_tid;
+#endif
        /** pipe, for commands for this worker */
        struct tube* cmd;
        /** the event base this worker works with */
index 78f6c7a..727d154 100644 (file)
@@ -1,9 +1,116 @@
+11 October 2022: George
+       - Fix PROXYv2 header read for TCP connections when no proxied addresses
+         are provided.
+
+7 October 2022: George
+       - Fix to stop possible loops in the tcp reuse code (write_wait list
+         and tcp_wait list). Based on analysis and patch from Prad Seniappan
+         and Karthik Umashankar.
+       - Fix unit test to properly test the reuse_write_wait_pop function.
+
+6 October 2022: Wouter
+       - Fix to stop responses with TC flag from resulting in partial
+         responses. It retries to fetch the data elsewhere, or fails the
+         query and in depth fix removes the TC flag from the cached item.
+       - Fix proxy length debug output printout typecasts.
+
+5 October 2022: Wouter
+       - Fix dnscrypt compile for proxy protocol code changes.
+
+5 October 2022: George
+       - Use DEBUG_TDIR from environment in mini_tdir.sh for debugging.
+       - Fix string comparison in mini_tdir.sh.
+       - Make ede.tdir test more predictable by using static data.
+       - Fix checkconf test for dnscrypt and proxy port.
+
+4 October 2022: George
+       - Merge #764: Leniency for target discovery when under load (for
+         NRDelegation changes).
+
+4 October 2022: Wouter
+       - Fix static analysis report to remove dead code from the
+         rpz_callback_from_iterator_module function.
+       - Fix to clean up after the acl_interface unit test.
+
+3 October 2022: George
+       - Merge #760: PROXYv2 downstream support. (New proxy-protocol-port
+         configuration option).
+
+3 October 2022: Wouter
+       - Fix to remove erroneous TC flag from TCP upstream.
+       - Fix test tdir skip report printout.
+       - Fix windows compile, the identifier interface is defined in headers.
+       - Fix to close errno block in comm_point_tcp_handle_read outside of
+         ifdef.
+
+26 September 2022: George
+       - Better output for skipped tdir tests.
+
 21 September 2022: Wouter
        - Patch for CVE-2022-3204 Non-Responsive Delegation Attack.
+       - This patch was released in 1.16.3, the code repository continues
+         with the previous features and fixes for 1.17.0.
+       - Fix doxygen warning in respip.h.
+
+20 September 2022: George
+       - Convert tdir tests to use the new skip_test functionality.
+       - Remove unused testcode/mini_tpkg.sh file.
+
+16 September 2022: George
+       - Merge #753: ACL per interface. (New interface-* configuration
+         options).
+
+2 September 2022: Wouter
+       - Remove include that was there for debug purposes.
+       - Fix to check pthread_t size after pthread has been detected.
+
+1 September 2022: Wouter
+       - Fix to update config tests to fix checking if nonblocking sockets
+         work on OpenBSD.
+       - Slow down log frequency of write wait failures.
+       - Fix to set out of file descriptor warning to operational verbosity.
+       - Fix to log a verbose message at operational notice level if a
+         thread is not responding, to stats requests. It is logged with
+         thread identifiers.
+
+31 August 2022: Wouter
+       - Fix to avoid process wide fcntl calls mixed with nonblocking
+         operations after a blocked write.
+       - Patch from Vadim Fedorenko that adds MSG_DONTWAIT to receive
+         operations, so that instruction reordering does not cause mistakenly
+         blocking socket operations.
+       - Fix to wait for blocked write on UDP sockets, with a timeout if it
+         takes too long the packet is dropped.
+       - Fix for wait for udp send to stop when packet is successfully sent.
+
+22 August 2022: Wouter
+       - Fix #741: systemd socket activation fails on IPv6.
+
+12 August 2022: Wouter
+       - Fix to log accept error ENFILE and EMFILE errno, but slowly, once
+         per 10 seconds. Also log accept failures when no slow down is used.
+
+5 August 2022: Wouter
+       - Fix #734 [FR] enable unbound-checkconf to detect more (basic)
+         errors.
+
+4 August 2022: Wouter
+       - Fix ratelimit inconsistency, for ip-ratelimits the value is the
+         amount allowed, like for ratelimits.
+
+2 August 2022: Wouter
+       - Fix edns subnet so that scope 0 answers only match sourcemask 0
+         queries for answers from cache if from a query with sourcemask 0.
+       - Fix unittest for edns subnet change.
+       - Merge #730 from luisdallos: Fix startup failure on Windows 8.1 due
+         to unsupported IPV6_USER_MTU socket option being set.
 
 1 August 2022: Wouter
        - Fix the novel ghost domain issues CVE-2022-30698 and CVE-2022-30699.
        - Tests for ghost domain fixes.
+       - Tag for 1.16.2 release. The code repo continues with 1.16.3.
+       - Fix #728: alloc_reg_obtain() core dump. Stop double
+         alloc_reg_release when serviced_create fails.
 
 19 July 2022: George
        - Update documentation for 'outbound-msg-retry:'.
index 92a6e88..88444a5 100644 (file)
@@ -1,4 +1,4 @@
-README for Unbound 1.16.3
+README for Unbound 1.17.0
 Copyright 2007 NLnet Labs
 http://unbound.net
 
index 0960a5a..611a316 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Example configuration file.
 #
-# See unbound.conf(5) man page, version 1.16.3.
+# See unbound.conf(5) man page, version 1.17.0.
 #
 # this is a comment.
 
@@ -17,7 +17,7 @@ server:
        # whitespace is not necessary, but looks cleaner.
 
        # verbosity number, 0 is least verbose. 1 is default.
-       verbosity: 1
+       verbosity: 1
 
        # print statistics to the log (for every thread) every N seconds.
        # Set to "" or 0 to disable. Default is disabled.
@@ -50,6 +50,7 @@ server:
        # interface: 192.0.2.154
        # interface: 192.0.2.154@5003
        # interface: 2001:DB8::5
+       # interface: eth0@5003
 
        # enable this feature to copy the source address of queries to reply.
        # Socket options are not supported on all platforms. experimental.
@@ -217,7 +218,8 @@ server:
        # the maximum number of hosts that are cached (roundtrip, EDNS, lame).
        # infra-cache-numhosts: 10000
 
-       # define a number of tags here, use with local-zone, access-control.
+       # define a number of tags here, use with local-zone, access-control,
+       # interface-*.
        # repeat the define-tag statement to add additional tags.
        # define-tag: "tag1 tag2 tag3"
 
@@ -273,9 +275,7 @@ server:
        # allow_snoop (recursive and nonrecursive ok)
        # deny_non_local (drop queries unless can be answered from local-data)
        # refuse_non_local (like deny_non_local but polite error reply).
-       # access-control: 0.0.0.0/0 refuse
        # access-control: 127.0.0.0/8 allow
-       # access-control: ::0/0 refuse
        # access-control: ::1 allow
        # access-control: ::ffff:127.0.0.1 allow
 
@@ -284,7 +284,7 @@ server:
        # are tagged with one of these tags.
        # access-control-tag: 192.0.2.0/24 "tag2 tag3"
 
-       # set action for particular tag for given access control element
+       # set action for particular tag for given access control element.
        # if you have multiple tag values, the tag used to lookup the action
        # is the first tag match between access-control-tag and local-zone-tag
        # where "first" comes from the order of the define-tag values.
@@ -296,6 +296,58 @@ server:
        # Set view for access control element
        # access-control-view: 192.0.2.0/24 viewname
 
+       # Similar to 'access-control:' but for interfaces.
+       # Control which listening interfaces are allowed to accept (recursive)
+       # queries for this server.
+       # The specified interfaces should be the same as the ones specified in
+       # 'interface:' followed by the action.
+       # The actions are the same as 'access-control:' above.
+       # By default all the interfaces configured are refused.
+       # Note: any 'access-control*:' setting overrides all 'interface-*:'
+       # settings for targeted clients.
+       # interface-action: 192.0.2.153 allow
+       # interface-action: 192.0.2.154 allow
+       # interface-action: 192.0.2.154@5003 allow
+       # interface-action: 2001:DB8::5 allow
+       # interface-action: eth0@5003 allow
+
+       # Similar to 'access-control-tag:' but for interfaces.
+       # Tag interfaces with a list of tags (in "" with spaces between).
+       # Interfaces using these tags use localzones that are tagged with one
+       # of these tags.
+       # The specified interfaces should be the same as the ones specified in
+       # 'interface:' followed by the list of tags.
+       # Note: any 'access-control*:' setting overrides all 'interface-*:'
+       # settings for targeted clients.
+       # interface-tag: eth0@5003 "tag2 tag3"
+
+       # Similar to 'access-control-tag-action:' but for interfaces.
+       # Set action for particular tag for a given interface element.
+       # If you have multiple tag values, the tag used to lookup the action
+       # is the first tag match between interface-tag and local-zone-tag
+       # where "first" comes from the order of the define-tag values.
+       # The specified interfaces should be the same as the ones specified in
+       # 'interface:' followed by the tag and action.
+       # Note: any 'access-control*:' setting overrides all 'interface-*:'
+       # settings for targeted clients.
+       # interface-tag-action: eth0@5003 tag3 refuse
+
+       # Similar to 'access-control-tag-data:' but for interfaces.
+       # Set redirect data for a particular tag for an interface element.
+       # The specified interfaces should be the same as the ones specified in
+       # 'interface:' followed by the tag and the redirect data.
+       # Note: any 'access-control*:' setting overrides all 'interface-*:'
+       # settings for targeted clients.
+       # interface-tag-data: eth0@5003 tag2 "A 127.0.0.1"
+
+       # Similar to 'access-control-view:' but for interfaces.
+       # Set view for an interface element.
+       # The specified interfaces should be the same as the ones specified in
+       # 'interface:' followed by the view name.
+       # Note: any 'access-control*:' setting overrides all 'interface-*:'
+       # settings for targeted clients.
+       # interface-view: eth0@5003 viewname
+
        # if given, a chroot(2) is done to the given directory.
        # i.e. you can chroot to the working directory, for example,
        # for extra security, but make sure all files are in that directory.
@@ -850,6 +902,10 @@ server:
        # Disable TLS for DNS-over-HTTP downstream service.
        # http-notls-downstream: no
 
+       # The interfaces that use these listed port numbers will support and
+       # expect PROXYv2. For UDP and TCP/TLS interfaces.
+       # proxy-protocol-port: portno for each of the port numbers.
+
        # DNS64 prefix. Must be specified when DNS64 is use.
        # Enable dns64 in module-config.  Used to synthesize IPv6 from IPv4.
        # dns64-prefix: 64:ff9b::0/96
index baf2921..b87289e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "libunbound" "3" "Sep 21, 2022" "NLnet Labs" "unbound 1.16.3"
+.TH "libunbound" "3" "Oct 13, 2022" "NLnet Labs" "unbound 1.17.0"
 .\"
 .\" libunbound.3 -- unbound library functions manual
 .\"
@@ -44,7 +44,7 @@
 .B ub_ctx_zone_remove,
 .B ub_ctx_data_add,
 .B ub_ctx_data_remove
-\- Unbound DNS validating resolver 1.16.3 functions.
+\- Unbound DNS validating resolver 1.17.0 functions.
 .SH "SYNOPSIS"
 .B #include <unbound.h>
 .LP
index 922c105..dc61b72 100644 (file)
@@ -1,4 +1,4 @@
-.TH "unbound-anchor" "8" "Sep 21, 2022" "NLnet Labs" "unbound 1.16.3"
+.TH "unbound-anchor" "8" "Oct 13, 2022" "NLnet Labs" "unbound 1.17.0"
 .\"
 .\" unbound-anchor.8 -- unbound anchor maintenance utility manual
 .\"
index 9b56c79..ba6c334 100644 (file)
@@ -1,4 +1,4 @@
-.TH "unbound-checkconf" "8" "Sep 21, 2022" "NLnet Labs" "unbound 1.16.3"
+.TH "unbound-checkconf" "8" "Oct 13, 2022" "NLnet Labs" "unbound 1.17.0"
 .\"
 .\" unbound-checkconf.8 -- unbound configuration checker manual
 .\"
index e42e0cd..3841b97 100644 (file)
@@ -1,4 +1,4 @@
-.TH "unbound-control" "8" "Sep 21, 2022" "NLnet Labs" "unbound 1.16.3"
+.TH "unbound-control" "8" "Oct 13, 2022" "NLnet Labs" "unbound 1.17.0"
 .\"
 .\" unbound-control.8 -- unbound remote control manual
 .\"
index aae9582..8371084 100644 (file)
@@ -1,4 +1,4 @@
-.TH "unbound\-host" "1" "Sep 21, 2022" "NLnet Labs" "unbound 1.16.3"
+.TH "unbound\-host" "1" "Oct 13, 2022" "NLnet Labs" "unbound 1.17.0"
 .\"
 .\" unbound-host.1 -- unbound DNS lookup utility
 .\"
index 81a8f4f..ac61b0f 100644 (file)
@@ -1,4 +1,4 @@
-.TH "unbound" "8" "Sep 21, 2022" "NLnet Labs" "unbound 1.16.3"
+.TH "unbound" "8" "Oct 13, 2022" "NLnet Labs" "unbound 1.17.0"
 .\"
 .\" unbound.8 -- unbound manual
 .\"
@@ -9,7 +9,7 @@
 .\"
 .SH "NAME"
 .B unbound
-\- Unbound DNS validating resolver 1.16.3.
+\- Unbound DNS validating resolver 1.17.0.
 .SH "SYNOPSIS"
 .B unbound
 .RB [ \-h ]
index 92a2800..02d3343 100644 (file)
@@ -1,4 +1,4 @@
-.TH "unbound.conf" "5" "Sep 21, 2022" "NLnet Labs" "unbound 1.16.3"
+.TH "unbound.conf" "5" "Oct 13, 2022" "NLnet Labs" "unbound 1.17.0"
 .\"
 .\" unbound.conf.5 -- unbound.conf manual
 .\"
@@ -82,7 +82,7 @@ The number of threads to create to serve clients. Use 1 for no threading.
 .B port: \fI<port number>
 The port number, default 53, on which the server responds to queries.
 .TP
-.B interface: \fI<ip address[@port]>
+.B interface: \fI<ip address or interface name [@port]>
 Interface to use to connect to the network. This interface is listened to
 for queries from clients, and answers to clients are given from it.
 Can be given multiple times to work on several interfaces. If none are
@@ -93,7 +93,7 @@ A port number can be specified with @port (without spaces between
 interface and port number), if not specified the default port (from
 \fBport\fR) is used.
 .TP
-.B ip\-address: \fI<ip address[@port]>
+.B ip\-address: \fI<ip address or interface name [@port]>
 Same as interface: (for ease of compatibility with nsd.conf).
 .TP
 .B interface\-automatic: \fI<yes or no>
@@ -620,6 +620,17 @@ Ignored if the option is not available. Default is yes.
 Disable use of TLS for the downstream DNS-over-HTTP connections.  Useful for
 local back end servers.  Default is no.
 .TP
+.B proxy\-protocol\-port: \fI<portnr>
+List port numbers as proxy\-protocol\-port, and when interfaces are defined,
+eg. with the @port suffix, as this port number, they support and expect PROXYv2.
+In this case the proxy address will only be used for the network communication
+and initial ACL (check if the proxy itself is denied/refused by configuration).
+The proxied address (if any) will then be used as the true client address and
+will be used where applicable for logging, ACL, DNSTAP, RPZ and IP ratelimiting.
+PROXYv2 is supported for UDP and TCP/TLS listening interfaces.
+There is no support for PROXYv2 on a DoH or DNSCrypt listening interface.
+Can list multiple, each on a new statement.
+.TP
 .B use\-systemd: \fI<yes or no>
 Enable or disable systemd socket activation.
 Default is no.
@@ -639,7 +650,7 @@ The netblock is given as an IP4 or IP6 address with /size appended for a
 classless network block. The action can be \fIdeny\fR, \fIrefuse\fR,
 \fIallow\fR, \fIallow_setrd\fR, \fIallow_snoop\fR, \fIdeny_non_local\fR or
 \fIrefuse_non_local\fR.
-The most specific netblock match is used, if none match \fIdeny\fR is used.
+The most specific netblock match is used, if none match \fIrefuse\fR is used.
 The order of the access\-control statements therefore does not matter.
 .IP
 The action \fIdeny\fR stops queries from hosts from that netblock.
@@ -705,6 +716,46 @@ Set redirect data for particular tag for given access control element.
 .B access\-control\-view: \fI<IP netblock> <view name>
 Set view for given access control element.
 .TP
+.B interface\-action: \fI<ip address or interface name [@port]> <action>
+Similar to \fBaccess\-control:\fR but for interfaces.
+.IP
+The action is the same as the ones defined under \fBaccess\-control:\fR.
+Interfaces are \fIrefuse\fRd by default.
+By default only localhost (the IP netblock, not the loopback interface) is
+\fIallow\fRed through the default \fBaccess\-control:\fR behavior.
+.IP
+Note that the interface needs to be already specified with \fBinterface:\fR
+and that any \fBaccess-control*:\fR setting overrides all \fBinterface-*:\fR
+settings for targeted clients.
+.TP
+.B interface\-tag: \fI<ip address or interface name [@port]> <"list of tags">
+Similar to \fBaccess\-control-tag:\fR but for interfaces.
+.IP
+Note that the interface needs to be already specified with \fBinterface:\fR
+and that any \fBaccess-control*:\fR setting overrides all \fBinterface-*:\fR
+settings for targeted clients.
+.TP
+.B interface\-tag\-action: \fI<ip address or interface name [@port]> <tag> <action>
+Similar to \fBaccess\-control-tag-action:\fR but for interfaces.
+.IP
+Note that the interface needs to be already specified with \fBinterface:\fR
+and that any \fBaccess-control*:\fR setting overrides all \fBinterface-*:\fR
+settings for targeted clients.
+.TP
+.B interface\-tag\-data: \fI<ip address or interface name [@port]> <tag> <"resource record string">
+Similar to \fBaccess\-control-tag-data:\fR but for interfaces.
+.IP
+Note that the interface needs to be already specified with \fBinterface:\fR
+and that any \fBaccess-control*:\fR setting overrides all \fBinterface-*:\fR
+settings for targeted clients.
+.TP
+.B interface\-view: \fI<ip address or interface name [@port]> <view name>
+Similar to \fBaccess\-control-view:\fR but for interfaces.
+.IP
+Note that the interface needs to be already specified with \fBinterface:\fR
+and that any \fBaccess-control*:\fR setting overrides all \fBinterface-*:\fR
+settings for targeted clients.
+.TP
 .B chroot: \fI<directory>
 If chroot is enabled, you should pass the configfile (from the
 commandline) as a full path from the original root. After the
@@ -1778,9 +1829,11 @@ section for options.  To setup the correct self\-signed certificates use the
 The option is used to enable remote control, default is "no".
 If turned off, the server does not listen for control commands.
 .TP 5
-.B control\-interface: \fI<ip address or path>
+.B control\-interface: \fI<ip address or interface name or path>
 Give IPv4 or IPv6 addresses or local socket path to listen on for
 control commands.
+If an interface name is used instead of an ip address, the list of ip addresses
+on that interface are used.
 By default localhost (127.0.0.1 and ::1) is listened to.
 Use 0.0.0.0 and ::0 to listen to all interfaces.
 If you change this and permissions have been dropped, you must restart
index 180a022..ebe71b9 100644 (file)
@@ -97,6 +97,7 @@ node_create(struct addrtree *tree, void *elem, addrlen_t scope,
        tree->node_count++;
        node->scope = scope;
        node->ttl = ttl;
+       node->only_match_scope_zero = 0;
        node->edge[0] = NULL;
        node->edge[1] = NULL;
        node->parent_edge = NULL;
@@ -155,6 +156,7 @@ clean_node(struct addrtree *tree, struct addrnode *node)
        if (!node->elem) return;
        tree->size_bytes -= tree->sizefunc(node->elem);
        tree->delfunc(tree->env, node->elem);
+       node->only_match_scope_zero = 0;
        node->elem = NULL;
 }
 
@@ -358,7 +360,7 @@ issub(const addrkey_t *s1, addrlen_t l1,
 void
 addrtree_insert(struct addrtree *tree, const addrkey_t *addr, 
        addrlen_t sourcemask, addrlen_t scope, void *elem, time_t ttl, 
-       time_t now)
+       time_t now, int only_match_scope_zero)
 {
        struct addrnode *newnode, *node;
        struct addredge *edge;
@@ -381,6 +383,7 @@ addrtree_insert(struct addrtree *tree, const addrkey_t *addr,
                        /* update this node's scope and data */
                        clean_node(tree, node);
                        node->ttl = ttl;
+                       node->only_match_scope_zero = only_match_scope_zero;
                        node->elem = elem;
                        node->scope = scope;
                        tree->size_bytes += tree->sizefunc(elem);
@@ -447,6 +450,7 @@ addrtree_insert(struct addrtree *tree, const addrkey_t *addr,
                        newnode->elem = elem;
                        newnode->scope = scope;
                        newnode->ttl = ttl;
+                       newnode->only_match_scope_zero = only_match_scope_zero;
                } 
                
                tree->size_bytes += node_size(tree, newnode);
@@ -483,7 +487,8 @@ addrtree_find(struct addrtree *tree, const addrkey_t *addr,
                /* Current node more specific then question. */
                log_assert(depth <= sourcemask);
                /* does this node have data? if yes, see if we have a match */
-               if (node->elem && node->ttl >= now) {
+               if (node->elem && node->ttl >= now &&
+                       !(sourcemask != 0 && node->only_match_scope_zero)) {
                        /* saved at wrong depth */;
                        log_assert(node->scope >= depth);
                        if (depth == node->scope ||
index 1aea54e..0bc1837 100644 (file)
@@ -95,6 +95,10 @@ struct addrnode {
        time_t ttl;
        /** Number of significant bits in address. */
        addrlen_t scope;
+       /** Only use the element for queries for subnet/0. Set if the query
+        * for /0 was answered with scope 0. For query /x answer scope 0,
+        * they can match anything and this is false. */
+       int only_match_scope_zero;
        /** A node can have 0-2 edges, set to NULL for unused */
        struct addredge *edge[2];
        /** edge between this node and parent */
@@ -157,11 +161,12 @@ void addrtree_delete(struct addrtree *tree);
  * @param scope: Number of significant bits in addr.
  * @param elem: data to store in the tree.
  * @param ttl: elem is valid up to this time, seconds.
+ * @param only_match_scope_zero: set for when query /0 has scope /0 answer.
  * @param now: Current time in seconds.
  */
 void addrtree_insert(struct addrtree *tree, const addrkey_t *addr, 
        addrlen_t sourcemask, addrlen_t scope, void *elem, time_t ttl, 
-       time_t now);
+       time_t now, int only_match_scope_zero);
 
 /**
  * Find a node containing an element in the tree.
index 7544611..0f1df41 100644 (file)
@@ -55,6 +55,7 @@
 #include "util/config_file.h"
 #include "util/data/msgreply.h"
 #include "sldns/sbuffer.h"
+#include "sldns/wire2str.h"
 #include "iterator/iter_utils.h"
 
 /** externally called */
@@ -331,6 +332,7 @@ update_cache(struct module_qstate *qstate, int id)
        struct slabhash *subnet_msg_cache = sne->subnet_msg_cache;
        struct ecs_data *edns = &sq->ecs_client_in;
        size_t i;
+       int only_match_scope_zero;
 
        /* We already calculated hash upon lookup (lookup_and_reply) if we were
         * allowed to look in the ECS cache */
@@ -392,9 +394,12 @@ update_cache(struct module_qstate *qstate, int id)
        reply_info_set_ttls(rep, *qstate->env->now);
        rep->flags |= (BIT_RA | BIT_QR); /* fix flags to be sensible for */
        rep->flags &= ~(BIT_AA | BIT_CD);/* a reply based on the cache   */
+       if(edns->subnet_source_mask == 0 && edns->subnet_scope_mask == 0)
+               only_match_scope_zero = 1;
+       else only_match_scope_zero = 0;
        addrtree_insert(tree, (addrkey_t*)edns->subnet_addr, 
                edns->subnet_source_mask, sq->max_scope, rep,
-               rep->ttl, *qstate->env->now);
+               rep->ttl, *qstate->env->now, only_match_scope_zero);
 
        lock_rw_unlock(&lru_entry->lock);
        if (need_to_insert) {
@@ -674,6 +679,24 @@ ecs_query_response(struct module_qstate* qstate, struct dns_msg* response,
        return 1;
 }
 
+/** verbose print edns subnet option in pretty print */
+static void
+subnet_log_print(const char* s, struct edns_option* ecs_opt)
+{
+       if(verbosity >= VERB_ALGO) {
+               char buf[256];
+               char* str = buf;
+               size_t str_len = sizeof(buf);
+               if(!ecs_opt) {
+                       verbose(VERB_ALGO, "%s (null)", s);
+                       return;
+               }
+               (void)sldns_wire2str_edns_subnet_print(&str, &str_len,
+                       ecs_opt->opt_data, ecs_opt->opt_len);
+               verbose(VERB_ALGO, "%s %s", s, buf);
+       }
+}
+
 int
 ecs_edns_back_parsed(struct module_qstate* qstate, int id,
        void* ATTR_UNUSED(cbargs))
@@ -688,6 +711,7 @@ ecs_edns_back_parsed(struct module_qstate* qstate, int id,
                qstate->env->cfg->client_subnet_opcode)) &&
                parse_subnet_option(ecs_opt, &sq->ecs_server_in) &&
                sq->subnet_sent && sq->ecs_server_in.subnet_validdata) {
+                       subnet_log_print("answer has edns subnet", ecs_opt);
                        /* Only skip global cache store if we sent an ECS option
                         * and received one back. Answers from non-whitelisted
                         * servers will end up in global cache. Answers for
@@ -736,11 +760,12 @@ subnetmod_operate(struct module_qstate *qstate, enum module_ev event,
                                qstate->ext_state[id] = module_finished;
                                return;
                        }
+                       subnet_log_print("query has edns subnet", ecs_opt);
                        sq->subnet_downstream = 1;
                }
                else if(qstate->mesh_info->reply_list) {
                        subnet_option_from_ss(
-                               &qstate->mesh_info->reply_list->query_reply.addr,
+                               &qstate->mesh_info->reply_list->query_reply.client_addr,
                                &sq->ecs_client_in, qstate->env->cfg);
                }
                
@@ -775,6 +800,13 @@ subnetmod_operate(struct module_qstate *qstate, enum module_ev event,
                                subnet_ecs_opt_list_append(&sq->ecs_client_out,
                                        &qstate->edns_opts_front_out, qstate,
                                        qstate->region);
+                               if(verbosity >= VERB_ALGO) {
+                                       subnet_log_print("reply has edns subnet",
+                                               edns_opt_list_find(
+                                               qstate->edns_opts_front_out,
+                                               qstate->env->cfg->
+                                               client_subnet_opcode));
+                               }
                                return;
                        }
                        lock_rw_unlock(&sne->biglock);
@@ -823,6 +855,13 @@ subnetmod_operate(struct module_qstate *qstate, enum module_ev event,
                        subnet_ecs_opt_list_append(&sq->ecs_client_out,
                                &qstate->edns_opts_front_out, qstate,
                                qstate->region);
+                       if(verbosity >= VERB_ALGO) {
+                               subnet_log_print("reply has edns subnet",
+                                       edns_opt_list_find(
+                                       qstate->edns_opts_front_out,
+                                       qstate->env->cfg->
+                                       client_subnet_opcode));
+                       }
                }
                qstate->no_cache_store = sq->started_no_cache_store;
                qstate->no_cache_lookup = sq->started_no_cache_lookup;
index 9b1a200..a60d9a6 100644 (file)
@@ -100,7 +100,7 @@ ah(struct delegpt* dp, const char* sv, const char* ip)
                return 0;
        }
        if(!delegpt_add_ns_mlc(dp, dname, 0, NULL, UNBOUND_DNS_PORT) ||
-          !extstrtoaddr(ip, &addr, &addrlen) ||
+          !extstrtoaddr(ip, &addr, &addrlen, UNBOUND_DNS_PORT) ||
           !delegpt_add_target_mlc(dp, dname, dname_len,
                &addr, addrlen, 0, 0)) {
                free(dname);
index f146a2b..c2b824a 100644 (file)
@@ -113,7 +113,11 @@ response_type_from_server(int rdset,
 
        if(!msg || !request)
                return RESPONSE_TYPE_THROWAWAY;
-       
+       /* If the TC flag is set, the response is incomplete. Too large to
+        * fit even in TCP or so. Discard it, it cannot be retrieved here. */
+       if((msg->rep->flags & BIT_TC))
+               return RESPONSE_TYPE_THROWAWAY;
+
        /* If the message is NXDOMAIN, then it answers the question. */
        if(FLAGS_GET_RCODE(msg->rep->flags) == LDNS_RCODE_NXDOMAIN) {
                /* make sure its not recursive when we don't want it to */
index da9b799..2f3ad06 100644 (file)
@@ -255,9 +255,9 @@ error_supers(struct module_qstate* qstate, int id, struct module_qstate* super)
                                log_err("out of memory adding missing");
                }
                delegpt_mark_neg(dpns, qstate->qinfo.qtype);
-               dpns->resolved = 1; /* mark as failed */
                if((dpns->got4 == 2 || !ie->supports_ipv4) &&
                        (dpns->got6 == 2 || !ie->supports_ipv6)) {
+                       dpns->resolved = 1; /* mark as failed */
                        target_count_increase_nx(super_iq, 1);
                }
        }
@@ -596,15 +596,17 @@ errinf_reply(struct module_qstate* qstate, struct iter_qstate* iq)
 {
        if(qstate->env->cfg->val_log_level < 2 && !qstate->env->cfg->log_servfail)
                return;
-       if((qstate->reply && qstate->reply->addrlen != 0) ||
-               (iq->fail_reply && iq->fail_reply->addrlen != 0)) {
+       if((qstate->reply && qstate->reply->remote_addrlen != 0) ||
+               (iq->fail_reply && iq->fail_reply->remote_addrlen != 0)) {
                char from[256], frm[512];
-               if(qstate->reply && qstate->reply->addrlen != 0)
-                       addr_to_str(&qstate->reply->addr, qstate->reply->addrlen,
-                               from, sizeof(from));
+               if(qstate->reply && qstate->reply->remote_addrlen != 0)
+                       addr_to_str(&qstate->reply->remote_addr,
+                               qstate->reply->remote_addrlen, from,
+                               sizeof(from));
                else
-                       addr_to_str(&iq->fail_reply->addr, iq->fail_reply->addrlen,
-                               from, sizeof(from));
+                       addr_to_str(&iq->fail_reply->remote_addr,
+                               iq->fail_reply->remote_addrlen, from,
+                               sizeof(from));
                snprintf(frm, sizeof(frm), "from %s", from);
                errinf(qstate, frm);
        }
@@ -2262,6 +2264,7 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
        size_t qout_orig_len = 0;
        int sq_check_ratelimit = 1;
        int sq_was_ratelimited = 0;
+       int can_do_promisc = 0;
 
        /* NOTE: a request will encounter this state for each target it
         * needs to send a query to. That is, at least one per referral,
@@ -2589,12 +2592,12 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
        if(iq->depth < ie->max_dependency_depth
                && iq->num_target_queries == 0
                && (!iq->target_count || iq->target_count[TARGET_COUNT_NX]==0)
-               && iq->sent_count < TARGET_FETCH_STOP
-               /* if the mesh query list is full, then do not waste cpu
-                * and sockets to fetch promiscuous targets. They can be
-                * looked up when needed. */
-               && !mesh_jostle_exceeded(qstate->env->mesh)
-               ) {
+               && iq->sent_count < TARGET_FETCH_STOP) {
+               can_do_promisc = 1;
+       }
+       /* if the mesh query list is full, then do not waste cpu and sockets to
+        * fetch promiscuous targets. They can be looked up when needed. */
+       if(can_do_promisc && !mesh_jostle_exceeded(qstate->env->mesh)) {
                tf_policy = ie->target_fetch_policy[iq->depth];
        }
 
@@ -2766,6 +2769,37 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
                return 0;
        }
 
+       /* We have a target. We could have created promiscuous target
+        * queries but we are currently under pressure (mesh_jostle_exceeded).
+        * If we are configured to allow promiscuous target queries and haven't
+        * gone out to the network for a target query for this delegation, then
+        * it is possible to slip in a promiscuous one with a 1/10 chance. */
+       if(can_do_promisc && tf_policy == 0 && iq->depth == 0
+               && iq->depth < ie->max_dependency_depth
+               && ie->target_fetch_policy[iq->depth] != 0
+               && iq->dp_target_count == 0
+               && !ub_random_max(qstate->env->rnd, 10)) {
+               int extra = 0;
+               verbose(VERB_ALGO, "available target exists in cache but "
+                       "attempt to get extra 1 target");
+               (void)query_for_targets(qstate, iq, ie, id, 1, &extra);
+               /* errors ignored, these targets are not strictly necessary for
+               * this result, we do not have to reply with SERVFAIL */
+               if(extra > 0) {
+                       iq->num_target_queries += extra;
+                       target_count_increase(iq, extra);
+                       check_waiting_queries(iq, qstate, id);
+                       /* undo qname minimise step because we'll get back here
+                        * to do it again */
+                       if(qout_orig && iq->minimise_count > 0) {
+                               iq->minimise_count--;
+                               iq->qinfo_out.qname = qout_orig;
+                               iq->qinfo_out.qname_len = qout_orig_len;
+                       }
+                       return 0;
+               }
+       }
+
        /* Do not check ratelimit for forwarding queries or if we already got a
         * pass. */
        sq_check_ratelimit = (!(iq->chase_flags & BIT_RD) && !iq->ratelimit_ok);
@@ -2873,6 +2907,8 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
                (int)((iq->chase_flags&BIT_RD) || iq->chase_to_rd),
                iq->response, &iq->qinfo_out, iq->dp);
        iq->chase_to_rd = 0;
+       /* remove TC flag, if this is erroneously set by TCP upstream */
+       iq->response->rep->flags &= ~BIT_TC;
        if(type == RESPONSE_TYPE_REFERRAL && (iq->chase_flags&BIT_RD) &&
                !iq->auth_zone_response) {
                /* When forwarding (RD bit is set), we handle referrals 
@@ -2896,8 +2932,8 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
                         * use dnssec-lame-bypass if it needs to query there.*/
                        if(qstate->reply) {
                                struct delegpt_addr* a = delegpt_find_addr(
-                                       iq->dp, &qstate->reply->addr,
-                                       qstate->reply->addrlen);
+                                       iq->dp, &qstate->reply->remote_addr,
+                                       qstate->reply->remote_addrlen);
                                if(a) a->dnsseclame = 1;
                        }
                        /* test the answer is from the zone we expected,
@@ -2993,9 +3029,9 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
                (*qstate->env->detach_subs)(qstate);
                iq->num_target_queries = 0;
                if(qstate->reply)
-                       sock_list_insert(&qstate->reply_origin, 
-                               &qstate->reply->addr, qstate->reply->addrlen, 
-                               qstate->region);
+                       sock_list_insert(&qstate->reply_origin,
+                               &qstate->reply->remote_addr,
+                               qstate->reply->remote_addrlen, qstate->region);
                if(iq->minimisation_state != DONOT_MINIMISE_STATE
                        && !(iq->chase_flags & BIT_RD)) {
                        if(FLAGS_GET_RCODE(iq->response->rep->flags) != 
@@ -3250,9 +3286,9 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
                (*qstate->env->detach_subs)(qstate);
                iq->num_target_queries = 0;
                if(qstate->reply)
-                       sock_list_insert(&qstate->reply_origin, 
-                               &qstate->reply->addr, qstate->reply->addrlen, 
-                               qstate->region);
+                       sock_list_insert(&qstate->reply_origin,
+                               &qstate->reply->remote_addr,
+                               qstate->reply->remote_addrlen, qstate->region);
                verbose(VERB_ALGO, "cleared outbound list for query restart");
                /* go to INIT_REQUEST_STATE for new qname. */
                return next_state(iq, INIT_REQUEST_STATE);
@@ -3266,9 +3302,10 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
                } else if(qstate->reply) {
                        /* need addr for lameness cache, but we may have
                         * gotten this from cache, so test to be sure */
-                       if(!infra_set_lame(qstate->env->infra_cache, 
-                               &qstate->reply->addr, qstate->reply->addrlen, 
-                               iq->dp->name, iq->dp->namelen, 
+                       if(!infra_set_lame(qstate->env->infra_cache,
+                               &qstate->reply->remote_addr,
+                               qstate->reply->remote_addrlen,
+                               iq->dp->name, iq->dp->namelen,
                                *qstate->env->now, dnsseclame, 0,
                                iq->qchase.qtype))
                                log_err("mark host lame: out of memory");
@@ -3285,8 +3322,9 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
                         * gotten this from cache, so test to be sure */
                        verbose(VERB_DETAIL, "mark as REC_LAME");
                        if(!infra_set_lame(qstate->env->infra_cache, 
-                               &qstate->reply->addr, qstate->reply->addrlen, 
-                               iq->dp->name, iq->dp->namelen, 
+                               &qstate->reply->remote_addr,
+                               qstate->reply->remote_addrlen,
+                               iq->dp->name, iq->dp->namelen,
                                *qstate->env->now, 0, 1, iq->qchase.qtype))
                                log_err("mark host lame: out of memory");
                } 
@@ -3527,12 +3565,13 @@ processTargetResponse(struct module_qstate* qstate, int id,
        } else {
                verbose(VERB_ALGO, "iterator TargetResponse failed");
                delegpt_mark_neg(dpns, qstate->qinfo.qtype);
-               dpns->resolved = 1; /* fail the target */
                if((dpns->got4 == 2 || !ie->supports_ipv4) &&
-                       (dpns->got6 == 2 || !ie->supports_ipv6) &&
+                       (dpns->got6 == 2 || !ie->supports_ipv6)) {
+                       dpns->resolved = 1; /* fail the target */
                        /* do not count cached answers */
-                       (qstate->reply_origin && qstate->reply_origin->len != 0)) {
-                       target_count_increase_nx(foriq, 1);
+                       if(qstate->reply_origin && qstate->reply_origin->len != 0) {
+                               target_count_increase_nx(foriq, 1);
+                       }
                }
        }
 }
@@ -4014,8 +4053,8 @@ process_response(struct module_qstate* qstate, struct iter_qstate* iq,
        if(!iq->response)
                goto handle_it;
        log_query_info(VERB_DETAIL, "response for", &qstate->qinfo);
-       log_name_addr(VERB_DETAIL, "reply from", iq->dp->name, 
-               &qstate->reply->addr, qstate->reply->addrlen);
+       log_name_addr(VERB_DETAIL, "reply from", iq->dp->name,
+               &qstate->reply->remote_addr, qstate->reply->remote_addrlen);
        if(verbosity >= VERB_ALGO)
                log_dns_msg("incoming scrubbed packet:", &iq->response->qinfo, 
                        iq->response->rep);
index b71b7fe..e35718c 100644 (file)
@@ -324,7 +324,7 @@ struct iter_qstate {
        /** the number of times this query has been restarted. */
        int query_restart_count;
 
-       /** the number of times this query as followed a referral. */
+       /** the number of times this query has followed a referral. */
        int referral_count;
 
        /** number of queries fired off */
index 038b7b9..ea5ef24 100644 (file)
@@ -951,7 +951,7 @@ ub_ctx_set_fwd(struct ub_ctx* ctx, const char* addr)
        lock_basic_unlock(&ctx->cfglock);
 
        /* check syntax for addr */
-       if(!extstrtoaddr(addr, &storage, &stlen)) {
+       if(!extstrtoaddr(addr, &storage, &stlen, UNBOUND_DNS_PORT)) {
                errno=EINVAL;
                return UB_SYNTAX;
        }
@@ -1031,7 +1031,7 @@ int ub_ctx_set_stub(struct ub_ctx* ctx, const char* zone, const char* addr,
        if(addr) {
                struct sockaddr_storage storage;
                socklen_t stlen;
-               if(!extstrtoaddr(addr, &storage, &stlen)) {
+               if(!extstrtoaddr(addr, &storage, &stlen, UNBOUND_DNS_PORT)) {
                        errno=EINVAL;
                        return UB_SYNTAX;
                }
index deff663..942e082 100644 (file)
@@ -1290,7 +1290,7 @@ respip_set_is_empty(const struct respip_set* set)
 void
 respip_inform_print(struct respip_action_info* respip_actinfo, uint8_t* qname,
        uint16_t qtype, uint16_t qclass, struct local_rrset* local_alias,
-       struct comm_reply* repinfo)
+       struct sockaddr_storage* addr, socklen_t addrlen)
 {
        char srcip[128], respip[128], txt[512];
        unsigned port;
@@ -1300,10 +1300,10 @@ respip_inform_print(struct respip_action_info* respip_actinfo, uint8_t* qname,
 
        if(local_alias)
                qname = local_alias->rrset->rk.dname;
-       port = (unsigned)((repinfo->addr.ss_family == AF_INET) ?
-               ntohs(((struct sockaddr_in*)&repinfo->addr)->sin_port) :
-               ntohs(((struct sockaddr_in6*)&repinfo->addr)->sin6_port));
-       addr_to_str(&repinfo->addr, repinfo->addrlen, srcip, sizeof(srcip));
+       port = (unsigned)((addr->ss_family == AF_INET) ?
+               ntohs(((struct sockaddr_in*)addr)->sin_port) :
+               ntohs(((struct sockaddr_in6*)addr)->sin6_port));
+       addr_to_str(addr, addrlen, srcip, sizeof(srcip));
        addr_to_str(&respip_addr->addr, respip_addr->addrlen,
                respip, sizeof(respip));
        if(respip_actinfo->rpz_log) {
index 988a722..e4ab5cc 100644 (file)
@@ -251,11 +251,13 @@ int respip_set_is_empty(const struct respip_set* set);
  * @param local_alias: set to a local alias if the query matches an alias in
  *  a local zone.  In this case its owner name will be considered the actual
  *  query name.
- * @param repinfo: reply info containing the client's source address and port.
+ * @param addr: the client's source address and port.
+ * @param addrlen: the client's source address length.
  */
 void respip_inform_print(struct respip_action_info* respip_actinfo,
        uint8_t* qname, uint16_t qtype, uint16_t qclass,
-       struct local_rrset* local_alias, struct comm_reply* repinfo);
+       struct local_rrset* local_alias, struct sockaddr_storage* addr,
+       socklen_t addrlen);
 
 /**
  * Find resp_addr in tree, create and add to tree if it does not exist.
index b9e0b11..6de1e43 100644 (file)
@@ -3699,7 +3699,7 @@ addr_matches_master(struct auth_master* master, struct sockaddr_storage* addr,
        /* compare address (but not port number, that is the destination
         * port of the master, the port number of the received notify is
         * allowed to by any port on that master) */
-       if(extstrtoaddr(master->host, &a, &alen) &&
+       if(extstrtoaddr(master->host, &a, &alen, UNBOUND_DNS_PORT) &&
                sockaddr_cmp_addr(addr, addrlen, &a, alen)==0) {
                *fromhost = master;
                return 1;
@@ -5381,7 +5381,7 @@ xfr_transfer_lookup_host(struct auth_xfer* xfr, struct module_env* env)
        struct edns_data edns;
        sldns_buffer* buf = env->scratch_buffer;
        if(!master) return 0;
-       if(extstrtoaddr(master->host, &addr, &addrlen)) {
+       if(extstrtoaddr(master->host, &addr, &addrlen, UNBOUND_DNS_PORT)) {
                /* not needed, host is in IP addr format */
                return 0;
        }
@@ -6572,7 +6572,7 @@ xfr_probe_lookup_host(struct auth_xfer* xfr, struct module_env* env)
        struct edns_data edns;
        sldns_buffer* buf = env->scratch_buffer;
        if(!master) return 0;
-       if(extstrtoaddr(master->host, &addr, &addrlen)) {
+       if(extstrtoaddr(master->host, &addr, &addrlen, UNBOUND_DNS_PORT)) {
                /* not needed, host is in IP addr format */
                return 0;
        }
index 0461c81..537cb94 100644 (file)
@@ -834,14 +834,13 @@ static struct lruhash_entry* infra_find_ratedata(struct infra_cache* infra,
 
 /** find data item in array for ip addresses */
 static struct lruhash_entry* infra_find_ip_ratedata(struct infra_cache* infra,
-       struct comm_reply* repinfo, int wr)
+       struct sockaddr_storage* addr, socklen_t addrlen, int wr)
 {
        struct ip_rate_key key;
-       hashvalue_type h = hash_addr(&(repinfo->addr),
-               repinfo->addrlen, 0);
+       hashvalue_type h = hash_addr(addr, addrlen, 0);
        memset(&key, 0, sizeof(key));
-       key.addr = repinfo->addr;
-       key.addrlen = repinfo->addrlen;
+       key.addr = *addr;
+       key.addrlen = addrlen;
        key.entry.hash = h;
        return slabhash_lookup(infra->client_ip_rates, h, &key, wr);
 }
@@ -876,10 +875,9 @@ static void infra_create_ratedata(struct infra_cache* infra,
 
 /** create rate data item for ip address */
 static void infra_ip_create_ratedata(struct infra_cache* infra,
-       struct comm_reply* repinfo, time_t timenow)
+       struct sockaddr_storage* addr, socklen_t addrlen, time_t timenow)
 {
-       hashvalue_type h = hash_addr(&(repinfo->addr),
-       repinfo->addrlen, 0);
+       hashvalue_type h = hash_addr(addr, addrlen, 0);
        struct ip_rate_key* k = (struct ip_rate_key*)calloc(1, sizeof(*k));
        struct ip_rate_data* d = (struct ip_rate_data*)calloc(1, sizeof(*d));
        if(!k || !d) {
@@ -887,8 +885,8 @@ static void infra_ip_create_ratedata(struct infra_cache* infra,
                free(d);
                return; /* alloc failure */
        }
-       k->addr = repinfo->addr;
-       k->addrlen = repinfo->addrlen;
+       k->addr = *addr;
+       k->addrlen = addrlen;
        lock_rw_init(&k->entry.lock);
        k->entry.hash = h;
        k->entry.key = k;
@@ -985,8 +983,8 @@ int infra_ratelimit_inc(struct infra_cache* infra, uint8_t* name,
                        sldns_wire2str_class_buf(qinfo->qclass, cs, sizeof(cs));
                        ip[0]=0;
                        if(replylist) {
-                               addr_to_str((struct sockaddr_storage *)&replylist->addr,
-                                       replylist->addrlen, ip, sizeof(ip));
+                               addr_to_str((struct sockaddr_storage *)&replylist->remote_addr,
+                                       replylist->remote_addrlen, ip, sizeof(ip));
                                verbose(VERB_OPS, "ratelimit exceeded %s %d query %s %s %s from %s", buf, lim, qnm, cs, ts, ip);
                        } else {
                                verbose(VERB_OPS, "ratelimit exceeded %s %d query %s %s %s", buf, lim, qnm, cs, ts);
@@ -1040,7 +1038,7 @@ int infra_ratelimit_exceeded(struct infra_cache* infra, uint8_t* name,
        max = infra_rate_max(entry->data, timenow, backoff);
        lock_rw_unlock(&entry->lock);
 
-       return (max >= lim);
+       return (max > lim);
 }
 
 size_t 
@@ -1054,8 +1052,8 @@ infra_get_mem(struct infra_cache* infra)
 }
 
 int infra_ip_ratelimit_inc(struct infra_cache* infra,
-       struct comm_reply* repinfo, time_t timenow, int backoff,
-       struct sldns_buffer* buffer)
+       struct sockaddr_storage* addr, socklen_t addrlen, time_t timenow,
+       int backoff, struct sldns_buffer* buffer)
 {
        int max;
        struct lruhash_entry* entry;
@@ -1065,7 +1063,7 @@ int infra_ip_ratelimit_inc(struct infra_cache* infra,
                return 1;
        }
        /* find or insert ratedata */
-       entry = infra_find_ip_ratedata(infra, repinfo, 1);
+       entry = infra_find_ip_ratedata(infra, addr, addrlen, 1);
        if(entry) {
                int premax = infra_rate_max(entry->data, timenow, backoff);
                int* cur = infra_rate_give_second(entry->data, timenow);
@@ -1073,10 +1071,9 @@ int infra_ip_ratelimit_inc(struct infra_cache* infra,
                max = infra_rate_max(entry->data, timenow, backoff);
                lock_rw_unlock(&entry->lock);
 
-               if(premax < infra_ip_ratelimit && max >= infra_ip_ratelimit) {
+               if(premax <= infra_ip_ratelimit && max > infra_ip_ratelimit) {
                        char client_ip[128], qnm[LDNS_MAX_DOMAINLEN+1+12+12];
-                       addr_to_str((struct sockaddr_storage *)&repinfo->addr,
-                               repinfo->addrlen, client_ip, sizeof(client_ip));
+                       addr_to_str(addr, addrlen, client_ip, sizeof(client_ip));
                        qnm[0]=0;
                        if(sldns_buffer_limit(buffer)>LDNS_HEADER_SIZE &&
                                LDNS_QDCOUNT(sldns_buffer_begin(buffer))!=0) {
@@ -1101,6 +1098,6 @@ int infra_ip_ratelimit_inc(struct infra_cache* infra,
        }
 
        /* create */
-       infra_ip_create_ratedata(infra, repinfo, timenow);
+       infra_ip_create_ratedata(infra, addr, addrlen, timenow);
        return 1;
 }
index 6a2371a..faf7fd2 100644 (file)
@@ -416,15 +416,16 @@ int infra_find_ratelimit(struct infra_cache* infra, uint8_t* name,
 /** Update query ratelimit hash and decide
  *  whether or not a query should be dropped.
  *  @param infra: infra cache
- *  @param repinfo: information about client
+ *  @param addr: client address
+ *  @param addrlen: client address length
  *  @param timenow: what time it is now.
  *  @param backoff: if backoff is enabled.
  *  @param buffer: with query for logging.
  *  @return 1 if it could be incremented. 0 if the increment overshot the
  *  ratelimit and the query should be dropped. */
 int infra_ip_ratelimit_inc(struct infra_cache* infra,
-       struct comm_reply* repinfo, time_t timenow, int backoff,
-       struct sldns_buffer* buffer);
+       struct sockaddr_storage* addr, socklen_t addrlen, time_t timenow,
+       int backoff, struct sldns_buffer* buffer);
 
 /**
  * Get memory used by the infra cache.
index 1c7c177..95606af 100644 (file)
@@ -124,12 +124,12 @@ verbose_print_addr(struct addrinfo *addr)
                        (void)strlcpy(buf, "(null)", sizeof(buf));
                }
                buf[sizeof(buf)-1] = 0;
-               verbose(VERB_ALGO, "creating %s%s socket %s %d", 
+               verbose(VERB_ALGO, "creating %s%s socket %s %d",
                        addr->ai_socktype==SOCK_DGRAM?"udp":
                        addr->ai_socktype==SOCK_STREAM?"tcp":"otherproto",
                        addr->ai_family==AF_INET?"4":
                        addr->ai_family==AF_INET6?"6":
-                       "_otherfam", buf, 
+                       "_otherfam", buf,
                        ntohs(((struct sockaddr_in*)addr->ai_addr)->sin_port));
        }
 }
@@ -140,7 +140,9 @@ verbose_print_unbound_socket(struct unbound_socket* ub_sock)
        if(verbosity >= VERB_ALGO) {
                log_info("listing of unbound_socket structure:");
                verbose_print_addr(ub_sock->addr);
-               log_info("s is: %d, fam is: %s", ub_sock->s, ub_sock->fam == AF_INET?"AF_INET":"AF_INET6");
+               log_info("s is: %d, fam is: %s, acl: %s", ub_sock->s,
+                       ub_sock->fam == AF_INET?"AF_INET":"AF_INET6",
+                       ub_sock->acl?"yes":"no");
        }
 }
 
@@ -458,7 +460,14 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
                int action;
 # endif
 # if defined(IPV6_V6ONLY)
-               if(v6only) {
+               if(v6only
+#   ifdef HAVE_SYSTEMD
+                       /* Systemd wants to control if the socket is v6 only
+                        * or both, with BindIPv6Only=default, ipv6-only or
+                        * both in systemd.socket, so it is not set here. */
+                       && !got_fd_from_systemd
+#   endif
+                       ) {
                        int val=(v6only==2)?0:1;
                        if (setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, 
                                (void*)&val, (socklen_t)sizeof(val)) < 0) {
@@ -511,12 +520,14 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
                 * instead which is writable; IPV6_MTU is readonly there. */
                if (setsockopt(s, IPPROTO_IPV6, IPV6_USER_MTU,
                        (void*)&mtu, (socklen_t)sizeof(mtu)) < 0) {
-                       log_err("setsockopt(..., IPV6_USER_MTU, ...) failed: %s",
-                               wsa_strerror(WSAGetLastError()));
-                       sock_close(s);
-                       *noproto = 0;
-                       *inuse = 0;
-                       return -1;
+                       if (WSAGetLastError() != WSAENOPROTOOPT) {
+                               log_err("setsockopt(..., IPV6_USER_MTU, ...) failed: %s",
+                                       wsa_strerror(WSAGetLastError()));
+                               sock_close(s);
+                               *noproto = 0;
+                               *inuse = 0;
+                               return -1;
+                       }
                }
 #   endif /* USE_WINSOCK */
 # endif /* IPv6 MTU */
@@ -774,7 +785,14 @@ create_tcp_accept_sock(struct addrinfo *addr, int v6only, int* noproto,
        (void)reuseport;
 #endif /* defined(SO_REUSEPORT) */
 #if defined(IPV6_V6ONLY)
-       if(addr->ai_family == AF_INET6 && v6only) {
+       if(addr->ai_family == AF_INET6 && v6only
+#  ifdef HAVE_SYSTEMD
+               /* Systemd wants to control if the socket is v6 only
+                * or both, with BindIPv6Only=default, ipv6-only or
+                * both in systemd.socket, so it is not set here. */
+               && !got_fd_from_systemd
+#  endif
+               ) {
                if(setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, 
                        (void*)&on, (socklen_t)sizeof(on)) < 0) {
                        log_err("setsockopt(..., IPV6_V6ONLY, ...) failed: %s",
@@ -1030,6 +1048,7 @@ make_sock(int stype, const char* ifname, const char* port,
        ub_sock->addr = res;
        ub_sock->s = s;
        ub_sock->fam = hints->ai_family;
+       ub_sock->acl = NULL;
 
        return s;
 }
@@ -1074,11 +1093,13 @@ make_sock_port(int stype, const char* ifname, const char* port,
  * @param list: list head. changed.
  * @param s: fd.
  * @param ftype: if fd is UDP.
+ * @param pp2_enabled: if PROXYv2 is enabled for this port.
  * @param ub_sock: socket with address.
  * @return false on failure. list in unchanged then.
  */
 static int
-port_insert(struct listen_port** list, int s, enum listen_type ftype, struct unbound_socket* ub_sock)
+port_insert(struct listen_port** list, int s, enum listen_type ftype,
+       int pp2_enabled, struct unbound_socket* ub_sock)
 {
        struct listen_port* item = (struct listen_port*)malloc(
                sizeof(struct listen_port));
@@ -1087,6 +1108,7 @@ port_insert(struct listen_port** list, int s, enum listen_type ftype, struct unb
        item->next = *list;
        item->fd = s;
        item->ftype = ftype;
+       item->pp2_enabled = pp2_enabled;
        item->socket = ub_sock;
        *list = item;
        return 1;
@@ -1182,6 +1204,7 @@ if_is_ssl(const char* ifname, const char* port, int ssl_port,
  * @param ssl_port: ssl service port number
  * @param tls_additional_port: list of additional ssl service port numbers.
  * @param https_port: DoH service port number
+ * @param proxy_protocol_port: list of PROXYv2 port numbers.
  * @param reuseport: try to set SO_REUSEPORT if nonNULL and true.
  *     set to false on exit if reuseport failed due to no kernel support.
  * @param transparent: set IP_TRANSPARENT socket option.
@@ -1194,34 +1217,39 @@ if_is_ssl(const char* ifname, const char* port, int ssl_port,
  * @return: returns false on error.
  */
 static int
-ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp, 
+ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
        struct addrinfo *hints, const char* port, struct listen_port** list,
        size_t rcv, size_t snd, int ssl_port,
        struct config_strlist* tls_additional_port, int https_port,
+       struct config_strlist* proxy_protocol_port,
        int* reuseport, int transparent, int tcp_mss, int freebind,
        int http2_nodelay, int use_systemd, int dnscrypt_port, int dscp)
 {
        int s, noip6=0;
        int is_https = if_is_https(ifname, port, https_port);
+       int is_dnscrypt = if_is_dnscrypt(ifname, port, dnscrypt_port);
+       int is_pp2 = if_is_pp2(ifname, port, proxy_protocol_port);
        int nodelay = is_https && http2_nodelay;
        struct unbound_socket* ub_sock;
-#ifdef USE_DNSCRYPT
-       int is_dnscrypt = ((strchr(ifname, '@') && 
-                       atoi(strchr(ifname, '@')+1) == dnscrypt_port) ||
-                       (!strchr(ifname, '@') && atoi(port) == dnscrypt_port));
-#else
-       int is_dnscrypt = 0;
-       (void)dnscrypt_port;
-#endif
 
        if(!do_udp && !do_tcp)
                return 0;
 
+       if(is_pp2) {
+               if(is_dnscrypt) {
+                       fatal_exit("PROXYv2 and DNSCrypt combination not "
+                               "supported!");
+               } else if(is_https) {
+                       fatal_exit("PROXYv2 and DoH combination not "
+                               "supported!");
+               }
+       }
+
        if(do_auto) {
                ub_sock = calloc(1, sizeof(struct unbound_socket));
                if(!ub_sock)
                        return 0;
-               if((s = make_sock_port(SOCK_DGRAM, ifname, port, hints, 1, 
+               if((s = make_sock_port(SOCK_DGRAM, ifname, port, hints, 1,
                        &noip6, rcv, snd, reuseport, transparent,
                        tcp_mss, nodelay, freebind, use_systemd, dscp, ub_sock)) == -1) {
                        freeaddrinfo(ub_sock->addr);
@@ -1239,8 +1267,9 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
                        free(ub_sock);
                        return 0;
                }
-               if(!port_insert(list, s,
-                  is_dnscrypt?listen_type_udpancil_dnscrypt:listen_type_udpancil, ub_sock)) {
+               if(!port_insert(list, s, is_dnscrypt
+                       ?listen_type_udpancil_dnscrypt:listen_type_udpancil,
+                       is_pp2, ub_sock)) {
                        sock_close(s);
                        freeaddrinfo(ub_sock->addr);
                        free(ub_sock);
@@ -1251,7 +1280,7 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
                if(!ub_sock)
                        return 0;
                /* regular udp socket */
-               if((s = make_sock_port(SOCK_DGRAM, ifname, port, hints, 1, 
+               if((s = make_sock_port(SOCK_DGRAM, ifname, port, hints, 1,
                        &noip6, rcv, snd, reuseport, transparent,
                        tcp_mss, nodelay, freebind, use_systemd, dscp, ub_sock)) == -1) {
                        freeaddrinfo(ub_sock->addr);
@@ -1262,8 +1291,9 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
                        }
                        return 0;
                }
-               if(!port_insert(list, s,
-                  is_dnscrypt?listen_type_udp_dnscrypt:listen_type_udp, ub_sock)) {
+               if(!port_insert(list, s, is_dnscrypt
+                       ?listen_type_udp_dnscrypt:listen_type_udp,
+                       is_pp2, ub_sock)) {
                        sock_close(s);
                        freeaddrinfo(ub_sock->addr);
                        free(ub_sock);
@@ -1285,7 +1315,7 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
                        port_type = listen_type_tcp_dnscrypt;
                else
                        port_type = listen_type_tcp;
-               if((s = make_sock_port(SOCK_STREAM, ifname, port, hints, 1, 
+               if((s = make_sock_port(SOCK_STREAM, ifname, port, hints, 1,
                        &noip6, 0, 0, reuseport, transparent, tcp_mss, nodelay,
                        freebind, use_systemd, dscp, ub_sock)) == -1) {
                        freeaddrinfo(ub_sock->addr);
@@ -1298,7 +1328,7 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
                }
                if(is_ssl)
                        verbose(VERB_ALGO, "setup TCP for SSL service");
-               if(!port_insert(list, s, port_type, ub_sock)) {
+               if(!port_insert(list, s, port_type, is_pp2, ub_sock)) {
                        sock_close(s);
                        freeaddrinfo(ub_sock->addr);
                        free(ub_sock);
@@ -1387,14 +1417,16 @@ listen_create(struct comm_base* base, struct listen_port* ports,
                if(ports->ftype == listen_type_udp ||
                   ports->ftype == listen_type_udp_dnscrypt) {
                        cp = comm_point_create_udp(base, ports->fd,
-                               front->udp_buff, cb, cb_arg, ports->socket);
+                               front->udp_buff, ports->pp2_enabled, cb,
+                               cb_arg, ports->socket);
                } else if(ports->ftype == listen_type_tcp ||
                                ports->ftype == listen_type_tcp_dnscrypt) {
                        cp = comm_point_create_tcp(base, ports->fd,
                                tcp_accept_count, tcp_idle_timeout,
                                harden_large_queries, 0, NULL,
                                tcp_conn_limit, bufsize, front->udp_buff,
-                               ports->ftype, cb, cb_arg, ports->socket);
+                               ports->ftype, ports->pp2_enabled, cb, cb_arg,
+                               ports->socket);
                } else if(ports->ftype == listen_type_ssl ||
                        ports->ftype == listen_type_http) {
                        cp = comm_point_create_tcp(base, ports->fd,
@@ -1402,7 +1434,8 @@ listen_create(struct comm_base* base, struct listen_port* ports,
                                harden_large_queries,
                                http_max_streams, http_endpoint,
                                tcp_conn_limit, bufsize, front->udp_buff,
-                               ports->ftype, cb, cb_arg, ports->socket);
+                               ports->ftype, ports->pp2_enabled, cb, cb_arg,
+                               ports->socket);
                        if(ports->ftype == listen_type_http) {
                                if(!sslctx && !http_notls) {
                                        log_warn("HTTPS port configured, but "
@@ -1428,7 +1461,8 @@ listen_create(struct comm_base* base, struct listen_port* ports,
                } else if(ports->ftype == listen_type_udpancil ||
                                  ports->ftype == listen_type_udpancil_dnscrypt) {
                        cp = comm_point_create_udp_ancil(base, ports->fd,
-                               front->udp_buff, cb, cb_arg, ports->socket);
+                               front->udp_buff, ports->pp2_enabled, cb,
+                               cb_arg, ports->socket);
                }
                if(!cp) {
                        log_err("can't create commpoint");
@@ -1700,7 +1734,7 @@ int resolve_interface_names(char** ifs, int num_ifs,
 #endif /* HAVE_GETIFADDRS */
 }
 
-struct listen_port* 
+struct listen_port*
 listening_ports_open(struct config_file* cfg, char** ifs, int num_ifs,
        int* reuseport)
 {
@@ -1763,7 +1797,9 @@ listening_ports_open(struct config_file* cfg, char** ifs, int num_ifs,
                                                &hints, portbuf, &list,
                                                cfg->so_rcvbuf, cfg->so_sndbuf,
                                                cfg->ssl_port, cfg->tls_additional_port,
-                                               cfg->https_port, reuseport, cfg->ip_transparent,
+                                               cfg->https_port,
+                                               cfg->proxy_protocol_port,
+                                               reuseport, cfg->ip_transparent,
                                                cfg->tcp_mss, cfg->ip_freebind,
                                                cfg->http_nodelay, cfg->use_systemd,
                                                cfg->dnscrypt_port, cfg->ip_dscp)) {
@@ -1778,7 +1814,9 @@ listening_ports_open(struct config_file* cfg, char** ifs, int num_ifs,
                                                &hints, portbuf, &list,
                                                cfg->so_rcvbuf, cfg->so_sndbuf,
                                                cfg->ssl_port, cfg->tls_additional_port,
-                                               cfg->https_port, reuseport, cfg->ip_transparent,
+                                               cfg->https_port,
+                                               cfg->proxy_protocol_port,
+                                               reuseport, cfg->ip_transparent,
                                                cfg->tcp_mss, cfg->ip_freebind,
                                                cfg->http_nodelay, cfg->use_systemd,
                                                cfg->dnscrypt_port, cfg->ip_dscp)) {
@@ -1791,12 +1829,13 @@ listening_ports_open(struct config_file* cfg, char** ifs, int num_ifs,
                }
                if(do_ip6) {
                        hints.ai_family = AF_INET6;
-                       if(!ports_create_if(do_auto?"::0":"::1", 
-                               do_auto, cfg->do_udp, do_tcp, 
+                       if(!ports_create_if(do_auto?"::0":"::1",
+                               do_auto, cfg->do_udp, do_tcp,
                                &hints, portbuf, &list,
                                cfg->so_rcvbuf, cfg->so_sndbuf,
                                cfg->ssl_port, cfg->tls_additional_port,
-                               cfg->https_port, reuseport, cfg->ip_transparent,
+                               cfg->https_port, cfg->proxy_protocol_port,
+                               reuseport, cfg->ip_transparent,
                                cfg->tcp_mss, cfg->ip_freebind,
                                cfg->http_nodelay, cfg->use_systemd,
                                cfg->dnscrypt_port, cfg->ip_dscp)) {
@@ -1806,12 +1845,13 @@ listening_ports_open(struct config_file* cfg, char** ifs, int num_ifs,
                }
                if(do_ip4) {
                        hints.ai_family = AF_INET;
-                       if(!ports_create_if(do_auto?"0.0.0.0":"127.0.0.1", 
-                               do_auto, cfg->do_udp, do_tcp, 
+                       if(!ports_create_if(do_auto?"0.0.0.0":"127.0.0.1",
+                               do_auto, cfg->do_udp, do_tcp,
                                &hints, portbuf, &list,
                                cfg->so_rcvbuf, cfg->so_sndbuf,
                                cfg->ssl_port, cfg->tls_additional_port,
-                               cfg->https_port, reuseport, cfg->ip_transparent,
+                               cfg->https_port, cfg->proxy_protocol_port,
+                               reuseport, cfg->ip_transparent,
                                cfg->tcp_mss, cfg->ip_freebind,
                                cfg->http_nodelay, cfg->use_systemd,
                                cfg->dnscrypt_port, cfg->ip_dscp)) {
@@ -1825,10 +1865,11 @@ listening_ports_open(struct config_file* cfg, char** ifs, int num_ifs,
                                continue;
                        hints.ai_family = AF_INET6;
                        if(!ports_create_if(ifs[i], 0, cfg->do_udp,
-                               do_tcp, &hints, portbuf, &list, 
+                               do_tcp, &hints, portbuf, &list,
                                cfg->so_rcvbuf, cfg->so_sndbuf,
                                cfg->ssl_port, cfg->tls_additional_port,
-                               cfg->https_port, reuseport, cfg->ip_transparent,
+                               cfg->https_port, cfg->proxy_protocol_port,
+                               reuseport, cfg->ip_transparent,
                                cfg->tcp_mss, cfg->ip_freebind,
                                cfg->http_nodelay, cfg->use_systemd,
                                cfg->dnscrypt_port, cfg->ip_dscp)) {
@@ -1840,10 +1881,11 @@ listening_ports_open(struct config_file* cfg, char** ifs, int num_ifs,
                                continue;
                        hints.ai_family = AF_INET;
                        if(!ports_create_if(ifs[i], 0, cfg->do_udp,
-                               do_tcp, &hints, portbuf, &list, 
+                               do_tcp, &hints, portbuf, &list,
                                cfg->so_rcvbuf, cfg->so_sndbuf,
                                cfg->ssl_port, cfg->tls_additional_port,
-                               cfg->https_port, reuseport, cfg->ip_transparent,
+                               cfg->https_port, cfg->proxy_protocol_port,
+                               reuseport, cfg->ip_transparent,
                                cfg->tcp_mss, cfg->ip_freebind,
                                cfg->http_nodelay, cfg->use_systemd,
                                cfg->dnscrypt_port, cfg->ip_dscp)) {
index 0e63236..816d79a 100644 (file)
@@ -43,6 +43,7 @@
 #define LISTEN_DNSPORT_H
 
 #include "util/netevent.h"
+#include "daemon/acl_list.h"
 #ifdef HAVE_NGHTTP2_NGHTTP2_H
 #include <nghttp2/nghttp2.h>
 #endif
@@ -107,11 +108,13 @@ enum listen_type {
  */
 struct unbound_socket {
        /** socket-address structure */
-        struct addrinfo *       addr;
+       struct addrinfo* addr;
        /** socket descriptor returned by socket() syscall */
-        int                     s;
+       int s;
        /** address family (AF_INET/IF_INET6) */
-        int                     fam;
+       int fam;
+       /** ACL on the socket (listening interface) */
+       struct acl_addr* acl;
 };
 
 /**
@@ -125,7 +128,10 @@ struct listen_port {
        int fd;
        /** type of file descriptor, udp or tcp */
        enum listen_type ftype;
-       /** fill in unbpound_socket structure for every opened socket at Unbound startup */
+       /** if the port should support PROXYv2 */
+       int pp2_enabled;
+       /** fill in unbound_socket structure for every opened socket at
+        * Unbound startup */
        struct unbound_socket* socket;
 };
 
index 3ed7d83..3536b7a 100644 (file)
@@ -1744,13 +1744,13 @@ local_zones_zone_answer(struct local_zone* z, struct module_env* env,
 /** print log information for an inform zone query */
 static void
 lz_inform_print(struct local_zone* z, struct query_info* qinfo,
-       struct comm_reply* repinfo)
+       struct sockaddr_storage* addr, socklen_t addrlen)
 {
        char ip[128], txt[512];
        char zname[LDNS_MAX_DOMAINLEN+1];
-       uint16_t port = ntohs(((struct sockaddr_in*)&repinfo->addr)->sin_port);
+       uint16_t port = ntohs(((struct sockaddr_in*)addr)->sin_port);
        dname_str(z->name, zname);
-       addr_to_str(&repinfo->addr, repinfo->addrlen, ip, sizeof(ip));
+       addr_to_str(addr, addrlen, ip, sizeof(ip));
        snprintf(txt, sizeof(txt), "%s %s %s@%u", zname, local_zone_type2str(z->type), ip,
                (unsigned)port);
        log_nametypeclass(NO_VERBOSE, txt, qinfo->qname, qinfo->qtype, qinfo->qclass);
@@ -1765,7 +1765,8 @@ lz_type(uint8_t *taglist, size_t taglen, uint8_t *taglist2, size_t taglen2,
        struct local_zone_override* lzo;        
        if(repinfo && override_tree) {
                lzo = (struct local_zone_override*)addr_tree_lookup(
-                       override_tree, &repinfo->addr, repinfo->addrlen);
+                       override_tree, &repinfo->client_addr,
+                       repinfo->client_addrlen);
                if(lzo && lzo->type) {
                        verbose(VERB_ALGO, "local zone override to type %s",
                                local_zone_type2str(lzo->type));
@@ -1888,7 +1889,8 @@ local_zones_answer(struct local_zones* zones, struct module_env* env,
                        lzt == local_zone_inform_deny ||
                        lzt == local_zone_inform_redirect)
                        && repinfo)
-               lz_inform_print(z, qinfo, repinfo);
+               lz_inform_print(z, qinfo, &repinfo->client_addr,
+                       repinfo->client_addrlen);
 
        if(lzt != local_zone_always_refuse
                && lzt != local_zone_always_transparent
index 2a41194..9007b6e 100644 (file)
@@ -806,7 +806,7 @@ static void mesh_schedule_prefetch_subnet(struct mesh_area* mesh,
                /* Fake the ECS data from the client's IP */
                struct ecs_data ecs;
                memset(&ecs, 0, sizeof(ecs));
-               subnet_option_from_ss(&rep->addr, &ecs, mesh->env->cfg);
+               subnet_option_from_ss(&rep->client_addr, &ecs, mesh->env->cfg);
                if(ecs.subnet_validdata == 0) {
                        log_err("prefetch_subnet subnet_option_from_ss: invalid data");
                        return;
@@ -1488,8 +1488,9 @@ mesh_send_reply(struct mesh_state* m, int rcode, struct reply_info* rep,
        }
        /* Log reply sent */
        if(m->s.env->cfg->log_replies) {
-               log_reply_info(NO_VERBOSE, &m->s.qinfo, &r->query_reply.addr,
-                       r->query_reply.addrlen, duration, 0, r_buffer);
+               log_reply_info(NO_VERBOSE, &m->s.qinfo,
+                       &r->query_reply.client_addr,
+                       r->query_reply.client_addrlen, duration, 0, r_buffer);
        }
 }
 
@@ -1530,7 +1531,8 @@ void mesh_query_done(struct mesh_state* mstate)
                        respip_inform_print(mstate->s.respip_action_info,
                                r->qname, mstate->s.qinfo.qtype,
                                mstate->s.qinfo.qclass, r->local_alias,
-                               &r->query_reply);
+                               &r->query_reply.client_addr,
+                               r->query_reply.client_addrlen);
                        if(mstate->s.env->cfg->stat_extended &&
                                mstate->s.respip_action_info->rpz_used) {
                                if(mstate->s.respip_action_info->rpz_disabled)
@@ -2180,7 +2182,8 @@ mesh_serve_expired_callback(void* arg)
                if(actinfo.addrinfo) {
                        respip_inform_print(&actinfo, r->qname,
                                qstate->qinfo.qtype, qstate->qinfo.qclass,
-                               r->local_alias, &r->query_reply);
+                               r->local_alias, &r->query_reply.client_addr,
+                               r->query_reply.client_addrlen);
 
                        if(qstate->env->cfg->stat_extended && actinfo.rpz_used) {
                                if(actinfo.rpz_disabled)
index 3f479a3..a4529ad 100644 (file)
@@ -86,10 +86,6 @@ static void serviced_tcp_initiate(struct serviced_query* sq, sldns_buffer* buff)
 static int randomize_and_send_udp(struct pending* pend, sldns_buffer* packet,
        int timeout);
 
-/** remove waiting tcp from the outnet waiting list */
-static void waiting_list_remove(struct outside_network* outnet,
-       struct waiting_tcp* w);
-
 /** select a DNS ID for a TCP stream */
 static uint16_t tcp_select_id(struct outside_network* outnet,
        struct reuse_tcp* reuse);
@@ -372,7 +368,8 @@ log_reuse_tcp(enum verbosity_value v, const char* msg, struct reuse_tcp* reuse)
 }
 
 /** pop the first element from the writewait list */
-static struct waiting_tcp* reuse_write_wait_pop(struct reuse_tcp* reuse)
+struct waiting_tcp*
+reuse_write_wait_pop(struct reuse_tcp* reuse)
 {
        struct waiting_tcp* w = reuse->write_wait_first;
        if(!w)
@@ -390,8 +387,8 @@ static struct waiting_tcp* reuse_write_wait_pop(struct reuse_tcp* reuse)
 }
 
 /** remove the element from the writewait list */
-static void reuse_write_wait_remove(struct reuse_tcp* reuse,
-       struct waiting_tcp* w)
+void
+reuse_write_wait_remove(struct reuse_tcp* reuse, struct waiting_tcp* w)
 {
        log_assert(w);
        log_assert(w->write_wait_queued);
@@ -415,8 +412,8 @@ static void reuse_write_wait_remove(struct reuse_tcp* reuse,
 }
 
 /** push the element after the last on the writewait list */
-static void reuse_write_wait_push_back(struct reuse_tcp* reuse,
-       struct waiting_tcp* w)
+void
+reuse_write_wait_push_back(struct reuse_tcp* reuse, struct waiting_tcp* w)
 {
        if(!w) return;
        log_assert(!w->write_wait_queued);
@@ -427,7 +424,9 @@ static void reuse_write_wait_push_back(struct reuse_tcp* reuse,
                w->write_wait_prev = reuse->write_wait_last;
        } else {
                reuse->write_wait_first = w;
+               w->write_wait_prev = NULL;
        }
+       w->write_wait_next = NULL;
        reuse->write_wait_last = w;
        w->write_wait_queued = 1;
 }
@@ -721,12 +720,12 @@ outnet_tcp_take_into_use(struct waiting_tcp* w)
        pend->next_free = NULL;
        pend->query = w;
        pend->reuse.outnet = w->outnet;
-       pend->c->repinfo.addrlen = w->addrlen;
+       pend->c->repinfo.remote_addrlen = w->addrlen;
        pend->c->tcp_more_read_again = &pend->reuse.cp_more_read_again;
        pend->c->tcp_more_write_again = &pend->reuse.cp_more_write_again;
        pend->reuse.cp_more_read_again = 0;
        pend->reuse.cp_more_write_again = 0;
-       memcpy(&pend->c->repinfo.addr, &w->addr, w->addrlen);
+       memcpy(&pend->c->repinfo.remote_addr, &w->addr, w->addrlen);
        pend->reuse.pending = pend;
 
        /* Remove from tree in case the is_ssl will be different and causes the
@@ -810,20 +809,50 @@ reuse_tcp_lru_snip(struct outside_network* outnet)
        return reuse;
 }
 
-/** call callback on waiting_tcp, if not NULL */
-static void
-waiting_tcp_callback(struct waiting_tcp* w, struct comm_point* c, int error,
-       struct comm_reply* reply_info)
+/** remove waiting tcp from the outnet waiting list */
+void
+outnet_waiting_tcp_list_remove(struct outside_network* outnet, struct waiting_tcp* w)
 {
-       if(w && w->cb) {
-               fptr_ok(fptr_whitelist_pending_tcp(w->cb));
-               (void)(*w->cb)(c, w->cb_arg, error, reply_info);
+       struct waiting_tcp* p = outnet->tcp_wait_first, *prev = NULL;
+       w->on_tcp_waiting_list = 0;
+       while(p) {
+               if(p == w) {
+                       /* remove w */
+                       if(prev)
+                               prev->next_waiting = w->next_waiting;
+                       else    outnet->tcp_wait_first = w->next_waiting;
+                       if(outnet->tcp_wait_last == w)
+                               outnet->tcp_wait_last = prev;
+                       w->next_waiting = NULL;
+                       return;
+               }
+               prev = p;
+               p = p->next_waiting;
        }
+       /* outnet_waiting_tcp_list_remove is currently called only with items
+        * that are already in the waiting list. */
+       log_assert(0);
+}
+
+/** pop the first waiting tcp from the outnet waiting list */
+struct waiting_tcp*
+outnet_waiting_tcp_list_pop(struct outside_network* outnet)
+{
+       struct waiting_tcp* w = outnet->tcp_wait_first;
+       if(!outnet->tcp_wait_first) return NULL;
+       log_assert(w->on_tcp_waiting_list);
+       outnet->tcp_wait_first = w->next_waiting;
+       if(outnet->tcp_wait_last == w)
+               outnet->tcp_wait_last = NULL;
+       w->on_tcp_waiting_list = 0;
+       w->next_waiting = NULL;
+       return w;
 }
 
 /** add waiting_tcp element to the outnet tcp waiting list */
-static void
-outnet_add_tcp_waiting(struct outside_network* outnet, struct waiting_tcp* w)
+void
+outnet_waiting_tcp_list_add(struct outside_network* outnet,
+       struct waiting_tcp* w, int set_timer)
 {
        struct timeval tv;
        log_assert(!w->on_tcp_waiting_list);
@@ -835,16 +864,18 @@ outnet_add_tcp_waiting(struct outside_network* outnet, struct waiting_tcp* w)
        else    outnet->tcp_wait_first = w;
        outnet->tcp_wait_last = w;
        w->on_tcp_waiting_list = 1;
+       if(set_timer) {
 #ifndef S_SPLINT_S
-       tv.tv_sec = w->timeout/1000;
-       tv.tv_usec = (w->timeout%1000)*1000;
+               tv.tv_sec = w->timeout/1000;
+               tv.tv_usec = (w->timeout%1000)*1000;
 #endif
-       comm_timer_set(w->timer, &tv);
+               comm_timer_set(w->timer, &tv);
+       }
 }
 
 /** add waiting_tcp element as first to the outnet tcp waiting list */
-static void
-outnet_add_tcp_waiting_first(struct outside_network* outnet,
+void
+outnet_waiting_tcp_list_add_first(struct outside_network* outnet,
        struct waiting_tcp* w, int reset_timer)
 {
        struct timeval tv;
@@ -869,6 +900,17 @@ outnet_add_tcp_waiting_first(struct outside_network* outnet,
                (outnet->tcp_reuse_first && outnet->tcp_reuse_last));
 }
 
+/** call callback on waiting_tcp, if not NULL */
+static void
+waiting_tcp_callback(struct waiting_tcp* w, struct comm_point* c, int error,
+       struct comm_reply* reply_info)
+{
+       if(w && w->cb) {
+               fptr_ok(fptr_whitelist_pending_tcp(w->cb));
+               (void)(*w->cb)(c, w->cb_arg, error, reply_info);
+       }
+}
+
 /** see if buffers can be used to service TCP queries */
 static void
 use_free_buffer(struct outside_network* outnet)
@@ -879,15 +921,10 @@ use_free_buffer(struct outside_network* outnet)
                struct pending_tcp* pend_tcp = NULL;
 #endif
                struct reuse_tcp* reuse = NULL;
-               w = outnet->tcp_wait_first;
-               log_assert(w->on_tcp_waiting_list);
-               outnet->tcp_wait_first = w->next_waiting;
-               if(outnet->tcp_wait_last == w)
-                       outnet->tcp_wait_last = NULL;
+               w = outnet_waiting_tcp_list_pop(outnet);
                log_assert(
                        (!outnet->tcp_reuse_first && !outnet->tcp_reuse_last) ||
                        (outnet->tcp_reuse_first && outnet->tcp_reuse_last));
-               w->on_tcp_waiting_list = 0;
                reuse = reuse_tcp_find(outnet, &w->addr, w->addrlen,
                        w->ssl_upstream);
                /* re-select an ID when moving to a new TCP buffer */
@@ -934,7 +971,7 @@ use_free_buffer(struct outside_network* outnet)
 #endif
                } else {
                        /* no reuse and no free buffer, put back at the start */
-                       outnet_add_tcp_waiting_first(outnet, w, 0);
+                       outnet_waiting_tcp_list_add_first(outnet, w, 0);
                        break;
                }
 #ifdef USE_DNSTAP
@@ -1008,7 +1045,7 @@ reuse_move_writewait_away(struct outside_network* outnet,
                 * fail the query */
                w->error_count ++;
                reuse_tree_by_id_delete(&pend->reuse, w);
-               outnet_add_tcp_waiting(outnet, w);
+               outnet_waiting_tcp_list_add(outnet, w, 1);
        }
        while((w = reuse_write_wait_pop(&pend->reuse)) != NULL) {
                if(verbosity >= VERB_CLIENT && w->pkt_len > 12+2+2 &&
@@ -1019,7 +1056,7 @@ reuse_move_writewait_away(struct outside_network* outnet,
                        verbose(VERB_CLIENT, "reuse_move_writewait_away item %s", buf);
                }
                reuse_tree_by_id_delete(&pend->reuse, w);
-               outnet_add_tcp_waiting(outnet, w);
+               outnet_waiting_tcp_list_add(outnet, w, 1);
        }
 }
 
@@ -1417,11 +1454,11 @@ outnet_udp_cb(struct comm_point* c, void* arg, int error,
 
        /* setup lookup key */
        key.id = (unsigned)LDNS_ID_WIRE(sldns_buffer_begin(c->buffer));
-       memcpy(&key.addr, &reply_info->addr, reply_info->addrlen);
-       key.addrlen = reply_info->addrlen;
+       memcpy(&key.addr, &reply_info->remote_addr, reply_info->remote_addrlen);
+       key.addrlen = reply_info->remote_addrlen;
        verbose(VERB_ALGO, "Incoming reply id = %4.4x", key.id);
        log_addr(VERB_ALGO, "Incoming reply addr =", 
-               &reply_info->addr, reply_info->addrlen);
+               &reply_info->remote_addr, reply_info->remote_addrlen);
 
        /* find it, see if this thing is a valid query response */
        verbose(VERB_ALGO, "lookup size is %d entries", (int)outnet->pending->count);
@@ -1690,7 +1727,7 @@ outside_network_create(struct comm_base *base, size_t bufsize,
                        return NULL;
                }
                pc->cp = comm_point_create_udp(outnet->base, -1, 
-                       outnet->udp_buff, outnet_udp_cb, outnet, NULL);
+                       outnet->udp_buff, 0, outnet_udp_cb, outnet, NULL);
                if(!pc->cp) {
                        log_err("malloc failed");
                        free(pc);
@@ -2237,7 +2274,7 @@ outnet_tcptimer(void* arg)
        verbose(VERB_CLIENT, "outnet_tcptimer");
        if(w->on_tcp_waiting_list) {
                /* it is on the waiting list */
-               waiting_list_remove(outnet, w);
+               outnet_waiting_tcp_list_remove(outnet, w);
                waiting_tcp_callback(w, NULL, NETEVENT_TIMEOUT, NULL);
                waiting_tcp_delete(w);
        } else {
@@ -2464,7 +2501,7 @@ pending_tcp_query(struct serviced_query* sq, sldns_buffer* packet,
 #ifdef USE_DNSTAP
                w->sq = sq;
 #endif
-               outnet_add_tcp_waiting(sq->outnet, w);
+               outnet_waiting_tcp_list_add(sq->outnet, w, 1);
        }
        return w;
 }
@@ -2545,8 +2582,10 @@ serviced_create(struct outside_network* outnet, sldns_buffer* buff, int dnssec,
 #ifdef UNBOUND_DEBUG
        rbnode_type* ins;
 #endif
-       if(!sq) 
+       if(!sq) {
+               alloc_reg_release(alloc, region);
                return NULL;
+       }
        sq->node.key = sq;
        sq->alloc = alloc;
        sq->region = region;
@@ -2610,30 +2649,6 @@ serviced_create(struct outside_network* outnet, sldns_buffer* buff, int dnssec,
        return sq;
 }
 
-/** remove waiting tcp from the outnet waiting list */
-static void
-waiting_list_remove(struct outside_network* outnet, struct waiting_tcp* w)
-{
-       struct waiting_tcp* p = outnet->tcp_wait_first, *prev = NULL;
-       w->on_tcp_waiting_list = 0;
-       while(p) {
-               if(p == w) {
-                       /* remove w */
-                       if(prev)
-                               prev->next_waiting = w->next_waiting;
-                       else    outnet->tcp_wait_first = w->next_waiting;
-                       if(outnet->tcp_wait_last == w)
-                               outnet->tcp_wait_last = prev;
-                       return;
-               }
-               prev = p;
-               p = p->next_waiting;
-       }
-       /* waiting_list_remove is currently called only with items that are
-        * already in the waiting list. */
-       log_assert(0);
-}
-
 /** reuse tcp stream, remove serviced query from stream,
  * return true if the stream is kept, false if it is to be closed */
 static int
@@ -2728,7 +2743,7 @@ serviced_delete(struct serviced_query* sq)
                                sq->pending = NULL;
                        } else {
                                verbose(VERB_CLIENT, "serviced_delete: tcpwait");
-                               waiting_list_remove(sq->outnet, w);
+                               outnet_waiting_tcp_list_remove(sq->outnet, w);
                                if(!w->in_cb_and_decommission)
                                        waiting_tcp_delete(w);
                        }
@@ -3101,8 +3116,8 @@ serviced_tcp_callback(struct comm_point* c, void* arg, int error,
                rep = &r2;
                r2.c = c;
        }
-       memcpy(&rep->addr, &sq->addr, sq->addrlen);
-       rep->addrlen = sq->addrlen;
+       memcpy(&rep->remote_addr, &sq->addr, sq->addrlen);
+       rep->remote_addrlen = sq->addrlen;
        serviced_callbacks(sq, error, c, rep);
        return 0;
 }
@@ -3432,7 +3447,6 @@ outnet_serviced_query(struct outside_network* outnet,
                                infra_ratelimit_dec(env->infra_cache,
                                        zone, zonelen, timenow);
                        }
-                       alloc_reg_release(env->alloc, region);
                        return NULL;
                }
                if(!(cb = (struct service_callback*)regional_alloc(
@@ -3581,7 +3595,7 @@ outnet_comm_point_for_udp(struct outside_network* outnet,
        if(fd == -1) {
                return NULL;
        }
-       cp = comm_point_create_udp(outnet->base, fd, outnet->udp_buff,
+       cp = comm_point_create_udp(outnet->base, fd, outnet->udp_buff, 0,
                cb, cb_arg, NULL);
        if(!cp) {
                log_err("malloc failure");
@@ -3669,8 +3683,8 @@ outnet_comm_point_for_tcp(struct outside_network* outnet,
                close(fd);
                return 0;
        }
-       cp->repinfo.addrlen = to_addrlen;
-       memcpy(&cp->repinfo.addr, to_addr, to_addrlen);
+       cp->repinfo.remote_addrlen = to_addrlen;
+       memcpy(&cp->repinfo.remote_addr, to_addr, to_addrlen);
 
        /* setup for SSL (if needed) */
        if(ssl) {
@@ -3745,8 +3759,8 @@ outnet_comm_point_for_http(struct outside_network* outnet,
                close(fd);
                return 0;
        }
-       cp->repinfo.addrlen = to_addrlen;
-       memcpy(&cp->repinfo.addr, to_addr, to_addrlen);
+       cp->repinfo.remote_addrlen = to_addrlen;
+       memcpy(&cp->repinfo.remote_addr, to_addr, to_addrlen);
 
        /* setup for SSL (if needed) */
        if(ssl) {
index c383b8f..467c81f 100644 (file)
@@ -718,6 +718,30 @@ struct reuse_tcp* reuse_tcp_lru_snip(struct outside_network* outnet);
 /** delete readwait waiting_tcp elements, deletes the elements in the list */
 void reuse_del_readwait(rbtree_type* tree_by_id);
 
+/** remove waiting tcp from the outnet waiting list */
+void outnet_waiting_tcp_list_remove(struct outside_network* outnet,
+       struct waiting_tcp* w);
+
+/** pop the first waiting tcp from the outnet waiting list */
+struct waiting_tcp* outnet_waiting_tcp_list_pop(struct outside_network* outnet);
+
+/** add waiting_tcp element to the outnet tcp waiting list */
+void outnet_waiting_tcp_list_add(struct outside_network* outnet,
+       struct waiting_tcp* w, int set_timer);
+
+/** add waiting_tcp element as first to the outnet tcp waiting list */
+void outnet_waiting_tcp_list_add_first(struct outside_network* outnet,
+       struct waiting_tcp* w, int reset_timer);
+
+/** pop the first element from the writewait list */
+struct waiting_tcp* reuse_write_wait_pop(struct reuse_tcp* reuse);
+
+/** remove the element from the writewait list */
+void reuse_write_wait_remove(struct reuse_tcp* reuse, struct waiting_tcp* w);
+
+/** push the element after the last on the writewait list */
+void reuse_write_wait_push_back(struct reuse_tcp* reuse, struct waiting_tcp* w);
+
 /** get TCP file descriptor for address, returns -1 on failure,
  * tcp_mss is 0 or maxseg size to set for TCP packets. */
 int outnet_get_tcp_fd(struct sockaddr_storage* addr, socklen_t addrlen,
index db48ae9..72f3643 100644 (file)
@@ -66,8 +66,9 @@ views_create(void)
        return v;
 }
 
-/** This prototype is defined in in respip.h, but we want to avoid
-  * unnecessary dependencies */
+/* \noop (ignore this comment for doxygen)
+ * This prototype is defined in in respip.h, but we want to avoid
+ * unnecessary dependencies */
 void respip_set_delete(struct respip_set *set);
 
 void 
index 4c428be..0946ef9 100644 (file)
@@ -316,7 +316,7 @@ warn_hosts(const char* typ, struct config_stub* list)
        struct config_strlist* h;
        for(s=list; s; s=s->next) {
                for(h=s->hosts; h; h=h->next) {
-                       if(extstrtoaddr(h->str, &a, &alen)) {
+                       if(extstrtoaddr(h->str, &a, &alen, UNBOUND_DNS_PORT)) {
                                fprintf(stderr, "unbound-checkconf: warning:"
                                  " %s %s: \"%s\" is an IP%s address, "
                                  "and when looked up as a host name "
@@ -338,6 +338,8 @@ interfacechecks(struct config_file* cfg)
        int i, j, i2, j2;
        char*** resif = NULL;
        int* num_resif = NULL;
+       char portbuf[32];
+       snprintf(portbuf, sizeof(portbuf), "%d", cfg->port);
 
        if(cfg->num_ifs != 0) {
                resif = (char***)calloc(cfg->num_ifs, sizeof(char**));
@@ -359,9 +361,21 @@ interfacechecks(struct config_file* cfg)
                        fatal_exit("could not resolve interface names, for %s",
                                cfg->ifs[i]);
                }
+               /* check for port combinations that are not supported */
+               if(if_is_pp2(resif[i][0], portbuf, cfg->proxy_protocol_port)) {
+                       if(if_is_dnscrypt(resif[i][0], portbuf,
+                               cfg->dnscrypt_port)) {
+                               fatal_exit("PROXYv2 and DNSCrypt combination not "
+                                       "supported!");
+                       } else if(if_is_https(resif[i][0], portbuf,
+                               cfg->https_port)) {
+                               fatal_exit("PROXYv2 and DoH combination not "
+                                       "supported!");
+                       }
+               }
                /* search for duplicates in the returned addresses */
                for(j=0; j<num_resif[i]; j++) {
-                       if(!extstrtoaddr(resif[i][j], &a, &alen)) {
+                       if(!extstrtoaddr(resif[i][j], &a, &alen, cfg->port)) {
                                if(strcmp(cfg->ifs[i], resif[i][j]) != 0)
                                        fatal_exit("cannot parse interface address '%s' from the interface specified as '%s'",
                                                resif[i][j], cfg->ifs[i]);
index d473702..34fb801 100644 (file)
@@ -601,7 +601,7 @@ contact_server(const char* svr, struct config_file* cfg, int statuscmd)
                        struct sockaddr_storage addr2;
                        socklen_t addrlen2;
                        if(extstrtoaddr(cfg->control_ifs.first->str, &addr2,
-                               &addrlen2)) {
+                               &addrlen2, UNBOUND_DNS_PORT)) {
                                svr = cfg->control_ifs.first->str;
                        } else {
                                if(!resolve_interface_names(NULL, 0,
@@ -629,7 +629,7 @@ contact_server(const char* svr, struct config_file* cfg, int statuscmd)
                        svr = "::1";
        }
        if(strchr(svr, '@')) {
-               if(!extstrtoaddr(svr, &addr, &addrlen))
+               if(!extstrtoaddr(svr, &addr, &addrlen, UNBOUND_DNS_PORT))
                        fatal_exit("could not parse IP@port: %s", svr);
 #ifdef HAVE_SYS_UN_H
        } else if(svr[0] == '/') {
index cd9389a..cc54c4e 100644 (file)
@@ -786,6 +786,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
        else S_SIZET_NONZERO("pad-responses-block-size:", pad_responses_block_size)
        else S_YNO("pad-queries:", pad_queries)
        else S_SIZET_NONZERO("pad-queries-block-size:", pad_queries_block_size)
+       else S_STRLIST("proxy-protocol-port:", proxy_protocol_port)
 #ifdef USE_IPSECMOD
        else S_YNO("ipsecmod-enabled:", ipsecmod_enabled)
        else S_YNO("ipsecmod-ignore-bogus:", ipsecmod_ignore_bogus)
@@ -822,7 +823,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
                 * stub-ssl-upstream, forward-zone, auth-zone
                 * name, forward-addr, forward-host,
                 * ratelimit-for-domain, ratelimit-below-domain,
-                * local-zone-tag, access-control-view,
+                * local-zone-tag, access-control-view, interface-*,
                 * send-client-subnet, client-subnet-always-forward,
                 * max-client-subnet-ipv4, max-client-subnet-ipv6,
                 * min-client-subnet-ipv4, min-client-subnet-ipv6,
@@ -1252,11 +1253,17 @@ config_get_option(struct config_file* cfg, const char* opt,
        else O_LS3(opt, "access-control-tag-action", acl_tag_actions)
        else O_LS3(opt, "access-control-tag-data", acl_tag_datas)
        else O_LS2(opt, "access-control-view", acl_view)
+       else O_LS2(opt, "interface-action", interface_actions)
+       else O_LTG(opt, "interface-tag", interface_tags)
+       else O_LS3(opt, "interface-tag-action", interface_tag_actions)
+       else O_LS3(opt, "interface-tag-data", interface_tag_datas)
+       else O_LS2(opt, "interface-view", interface_view)
        else O_YNO(opt, "pad-responses", pad_responses)
        else O_DEC(opt, "pad-responses-block-size", pad_responses_block_size)
        else O_YNO(opt, "pad-queries", pad_queries)
        else O_DEC(opt, "pad-queries-block-size", pad_queries_block_size)
        else O_LS2(opt, "edns-client-strings", edns_client_strings)
+       else O_LST(opt, "proxy-protocol-port", proxy_protocol_port)
 #ifdef USE_IPSECMOD
        else O_YNO(opt, "ipsecmod-enabled", ipsecmod_enabled)
        else O_YNO(opt, "ipsecmod-ignore-bogus", ipsecmod_ignore_bogus)
@@ -1302,6 +1309,7 @@ create_cfg_parser(struct config_file* cfg, char* filename, const char* chroot)
        cfg_parser->errors = 0;
        cfg_parser->cfg = cfg;
        cfg_parser->chroot = chroot;
+       cfg_parser->started_toplevel = 0;
        init_cfg_parse();
 }
 
@@ -1606,10 +1614,16 @@ config_delete(struct config_file* cfg)
        config_deltrplstrlist(cfg->local_zone_overrides);
        config_del_strarray(cfg->tagname, cfg->num_tags);
        config_del_strbytelist(cfg->local_zone_tags);
-       config_del_strbytelist(cfg->acl_tags);
        config_del_strbytelist(cfg->respip_tags);
+       config_deldblstrlist(cfg->acl_view);
+       config_del_strbytelist(cfg->acl_tags);
        config_deltrplstrlist(cfg->acl_tag_actions);
        config_deltrplstrlist(cfg->acl_tag_datas);
+       config_deldblstrlist(cfg->interface_actions);
+       config_deldblstrlist(cfg->interface_view);
+       config_del_strbytelist(cfg->interface_tags);
+       config_deltrplstrlist(cfg->interface_tag_actions);
+       config_deltrplstrlist(cfg->interface_tag_datas);
        config_delstrlist(cfg->control_ifs.first);
        free(cfg->server_key_file);
        free(cfg->server_cert_file);
@@ -1630,6 +1644,7 @@ config_delete(struct config_file* cfg)
        config_delstrlist(cfg->python_script);
        config_delstrlist(cfg->dynlib_file);
        config_deldblstrlist(cfg->edns_client_strings);
+       config_delstrlist(cfg->proxy_protocol_port);
 #ifdef USE_IPSECMOD
        free(cfg->ipsecmod_hook);
        config_delstrlist(cfg->ipsecmod_whitelist);
@@ -1800,6 +1815,9 @@ void ub_c_error_msg(const char* fmt, ...)
 void ub_c_error(const char *str)
 {
        cfg_parser->errors++;
+       if(strcmp(str, "syntax error")==0 && cfg_parser->started_toplevel ==0)
+               str = "syntax error, is there no section start after an "
+                       "include-toplevel directive perhaps.";
        fprintf(stderr, "%s:%d: error: %s\n", cfg_parser->filename,
                cfg_parser->line, str);
 }
@@ -2609,3 +2627,35 @@ int cfg_has_https(struct config_file* cfg)
        }
        return 0;
 }
+
+/** see if interface is PROXYv2, its port number == the proxy port number */
+int
+if_is_pp2(const char* ifname, const char* port,
+       struct config_strlist* proxy_protocol_port)
+{
+       struct config_strlist* s;
+       char* p = strchr(ifname, '@');
+       for(s = proxy_protocol_port; s; s = s->next) {
+               if(p && atoi(p+1) == atoi(s->str))
+                       return 1;
+               if(!p && atoi(port) == atoi(s->str))
+                       return 1;
+       }
+       return 0;
+}
+
+/** see if interface is DNSCRYPT, its port number == the dnscrypt port number */
+int
+if_is_dnscrypt(const char* ifname, const char* port, int dnscrypt_port)
+{
+#ifdef USE_DNSCRYPT
+       return ((strchr(ifname, '@') &&
+               atoi(strchr(ifname, '@')+1) == dnscrypt_port) ||
+               (!strchr(ifname, '@') && atoi(port) == dnscrypt_port));
+#else
+       (void)ifname;
+       (void)port;
+       (void)dnscrypt_port;
+       return 0;
+#endif
+}
index ed37252..b140691 100644 (file)
@@ -114,6 +114,8 @@ struct config_file {
        int do_tcp_keepalive;
        /** tcp keepalive timeout, in msec */
        int tcp_keepalive_timeout;
+       /** proxy protocol ports */
+       struct config_strlist* proxy_protocol_port;
 
        /** private key file for dnstcp-ssl service (enabled if not NULL) */
        char* ssl_service_key;
@@ -461,6 +463,16 @@ struct config_file {
        struct config_str3list* acl_tag_datas;
        /** list of aclname, view*/
        struct config_str2list* acl_view;
+       /** list of interface action entries, linked list */
+       struct config_str2list* interface_actions;
+       /** list of interface, tagbitlist */
+       struct config_strbytelist* interface_tags;
+       /** list of interface, tagname, localzonetype */
+       struct config_str3list* interface_tag_actions;
+       /** list of interface, tagname, redirectdata */
+       struct config_str3list* interface_tag_datas;
+       /** list of interface, view*/
+       struct config_str2list* interface_view;
        /** list of IP-netblock, tagbitlist */
        struct config_strbytelist* respip_tags;
        /** list of response-driven access control entries, linked list */
@@ -1262,6 +1274,8 @@ struct config_parser_state {
        struct config_file* cfg;
        /** the current chroot dir (or NULL if none) */
        const char* chroot;
+       /** if we are started in a toplevel, or not, after a force_toplevel */
+       int started_toplevel;
 };
 
 /** global config parser object used during config parsing */
@@ -1310,6 +1324,12 @@ int if_is_https(const char* ifname, const char* port, int https_port);
  */
 int cfg_has_https(struct config_file* cfg);
 
+/** see if interface is PROXYv2, its port number == the proxy port number */
+int if_is_pp2(const char* ifname, const char* port,
+       struct config_strlist* proxy_protocol_port);
+
+/** see if interface is DNSCRYPT, its port number == the dnscrypt port number */
+int if_is_dnscrypt(const char* ifname, const char* port, int dnscrypt_port);
 #ifdef USE_LINUX_IP_LOCAL_PORT_RANGE
 #define LINUX_IP_LOCAL_PORT_RANGE_PATH "/proc/sys/net/ipv4/ip_local_port_range"
 #endif
index a46a74f..09e314b 100644 (file)
@@ -364,6 +364,7 @@ view-first{COLON}           { YDVAR(1, VAR_VIEW_FIRST) }
 do-not-query-address{COLON}    { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
 do-not-query-localhost{COLON}  { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
 access-control{COLON}          { YDVAR(2, VAR_ACCESS_CONTROL) }
+interface-action{COLON}                { YDVAR(2, VAR_INTERFACE_ACTION) }
 send-client-subnet{COLON}      { YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
 client-subnet-zone{COLON}      { YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
 client-subnet-always-forward{COLON} { YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
@@ -466,6 +467,10 @@ access-control-tag{COLON}  { YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
 access-control-tag-action{COLON} { YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
 access-control-tag-data{COLON} { YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
 access-control-view{COLON}     { YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
+interface-tag{COLON}           { YDVAR(2, VAR_INTERFACE_TAG) }
+interface-tag-action{COLON}    { YDVAR(3, VAR_INTERFACE_TAG_ACTION) }
+interface-tag-data{COLON}      { YDVAR(3, VAR_INTERFACE_TAG_DATA) }
+interface-view{COLON}          { YDVAR(2, VAR_INTERFACE_VIEW) }
 local-zone-override{COLON}     { YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
 dnstap{COLON}                  { YDVAR(0, VAR_DNSTAP) }
 dnstap-enable{COLON}           { YDVAR(1, VAR_DNSTAP_ENABLE) }
@@ -557,6 +562,7 @@ edns-client-string{COLON}   { YDVAR(2, VAR_EDNS_CLIENT_STRING) }
 edns-client-string-opcode{COLON} { YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) }
 nsid{COLON}                    { YDVAR(1, VAR_NSID ) }
 ede{COLON}                     { YDVAR(1, VAR_EDE ) }
+proxy-protocol-port{COLON}     { YDVAR(1, VAR_PROXY_PROTOCOL_PORT) }
 <INITIAL,val>{NEWLINE}         { LEXOUT(("NL\n")); cfg_parser->line++; }
 
        /* Quoted strings. Strip leading and ending quotes */
index c235340..3ecdad2 100644 (file)
@@ -52,6 +52,7 @@ int ub_c_lex(void);
 void ub_c_error(const char *message);
 
 static void validate_respip_action(const char* action);
+static void validate_acl_action(const char* action);
 
 /* these need to be global, otherwise they cannot be used inside yacc */
 extern struct config_parser_state* cfg_parser;
@@ -190,6 +191,9 @@ extern struct config_parser_state* cfg_parser;
 %token VAR_EDNS_CLIENT_STRING_OPCODE VAR_NSID
 %token VAR_ZONEMD_PERMISSIVE_MODE VAR_ZONEMD_CHECK VAR_ZONEMD_REJECT_ABSENCE
 %token VAR_RPZ_SIGNAL_NXDOMAIN_RA VAR_INTERFACE_AUTOMATIC_PORTS VAR_EDE
+%token VAR_INTERFACE_ACTION VAR_INTERFACE_VIEW VAR_INTERFACE_TAG
+%token VAR_INTERFACE_TAG_ACTION VAR_INTERFACE_TAG_DATA
+%token VAR_PROXY_PROTOCOL_PORT
 
 %%
 toplevelvars: /* empty */ | toplevelvars toplevelvar ;
@@ -204,12 +208,14 @@ toplevelvar: serverstart contents_server | stubstart contents_stub |
 force_toplevel: VAR_FORCE_TOPLEVEL
        {
                OUTYY(("\nP(force-toplevel)\n"));
+               cfg_parser->started_toplevel = 0;
        }
        ;
 /* server: declaration */
 serverstart: VAR_SERVER
        {
                OUTYY(("\nP(server:)\n"));
+               cfg_parser->started_toplevel = 1;
        }
        ;
 contents_server: contents_server content_server
@@ -287,6 +293,8 @@ content_server: server_num_threads | server_verbosity | server_port |
        server_disable_dnssec_lame_check | server_access_control_tag |
        server_local_zone_override | server_access_control_tag_action |
        server_access_control_tag_data | server_access_control_view |
+       server_interface_action | server_interface_view | server_interface_tag |
+       server_interface_tag_action | server_interface_tag_data |
        server_qname_minimisation_strict |
        server_pad_responses | server_pad_responses_block_size |
        server_pad_queries | server_pad_queries_block_size |
@@ -313,13 +321,14 @@ content_server: server_num_threads | server_verbosity | server_port |
        server_edns_client_string_opcode | server_nsid |
        server_zonemd_permissive_mode | server_max_reuse_tcp_queries |
        server_tcp_reuse_timeout | server_tcp_auth_query_timeout |
-       server_interface_automatic_ports | server_ede
-
+       server_interface_automatic_ports | server_ede |
+       server_proxy_protocol_port
        ;
 stubstart: VAR_STUB_ZONE
        {
                struct config_stub* s;
                OUTYY(("\nP(stub_zone:)\n"));
+               cfg_parser->started_toplevel = 1;
                s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
                if(s) {
                        s->next = cfg_parser->cfg->stubs;
@@ -338,6 +347,7 @@ forwardstart: VAR_FORWARD_ZONE
        {
                struct config_stub* s;
                OUTYY(("\nP(forward_zone:)\n"));
+               cfg_parser->started_toplevel = 1;
                s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
                if(s) {
                        s->next = cfg_parser->cfg->forwards;
@@ -356,6 +366,7 @@ viewstart: VAR_VIEW
        {
                struct config_view* s;
                OUTYY(("\nP(view:)\n"));
+               cfg_parser->started_toplevel = 1;
                s = (struct config_view*)calloc(1, sizeof(struct config_view));
                if(s) {
                        s->next = cfg_parser->cfg->views;
@@ -376,6 +387,7 @@ authstart: VAR_AUTH_ZONE
        {
                struct config_auth* s;
                OUTYY(("\nP(auth_zone:)\n"));
+               cfg_parser->started_toplevel = 1;
                s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
                if(s) {
                        s->next = cfg_parser->cfg->auths;
@@ -474,6 +486,7 @@ rpzstart: VAR_RPZ
        {
                struct config_auth* s;
                OUTYY(("\nP(rpz:)\n")); 
+               cfg_parser->started_toplevel = 1;
                s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
                if(s) {
                        s->next = cfg_parser->cfg->auths;
@@ -1842,21 +1855,18 @@ server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG
 server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG
        {
                OUTYY(("P(server_access_control:%s %s)\n", $2, $3));
-               if(strcmp($3, "deny")!=0 && strcmp($3, "refuse")!=0 &&
-                       strcmp($3, "deny_non_local")!=0 &&
-                       strcmp($3, "refuse_non_local")!=0 &&
-                       strcmp($3, "allow_setrd")!=0 &&
-                       strcmp($3, "allow")!=0 &&
-                       strcmp($3, "allow_snoop")!=0) {
-                       yyerror("expected deny, refuse, deny_non_local, "
-                               "refuse_non_local, allow, allow_setrd or "
-                               "allow_snoop in access control action");
-                       free($2);
-                       free($3);
-               } else {
-                       if(!cfg_str2list_insert(&cfg_parser->cfg->acls, $2, $3))
-                               fatal_exit("out of memory adding acl");
-               }
+               validate_acl_action($3);
+               if(!cfg_str2list_insert(&cfg_parser->cfg->acls, $2, $3))
+                       fatal_exit("out of memory adding acl");
+       }
+       ;
+server_interface_action: VAR_INTERFACE_ACTION STRING_ARG STRING_ARG
+       {
+               OUTYY(("P(server_interface_action:%s %s)\n", $2, $3));
+               validate_acl_action($3);
+               if(!cfg_str2list_insert(
+                       &cfg_parser->cfg->interface_actions, $2, $3))
+                       fatal_exit("out of memory adding acl");
        }
        ;
 server_module_conf: VAR_MODULE_CONF STRING_ARG
@@ -2414,6 +2424,60 @@ server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG
                }
        }
        ;
+server_interface_tag: VAR_INTERFACE_TAG STRING_ARG STRING_ARG
+       {
+               size_t len = 0;
+               uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, $3,
+                       &len);
+               free($3);
+               OUTYY(("P(server_interface_tag:%s)\n", $2));
+               if(!bitlist) {
+                       yyerror("could not parse tags, (define-tag them first)");
+                       free($2);
+               }
+               if(bitlist) {
+                       if(!cfg_strbytelist_insert(
+                               &cfg_parser->cfg->interface_tags,
+                               $2, bitlist, len)) {
+                               yyerror("out of memory");
+                               free($2);
+                       }
+               }
+       }
+       ;
+server_interface_tag_action: VAR_INTERFACE_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG
+       {
+               OUTYY(("P(server_interface_tag_action:%s %s %s)\n", $2, $3, $4));
+               if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_actions,
+                       $2, $3, $4)) {
+                       yyerror("out of memory");
+                       free($2);
+                       free($3);
+                       free($4);
+               }
+       }
+       ;
+server_interface_tag_data: VAR_INTERFACE_TAG_DATA STRING_ARG STRING_ARG STRING_ARG
+       {
+               OUTYY(("P(server_interface_tag_data:%s %s %s)\n", $2, $3, $4));
+               if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_datas,
+                       $2, $3, $4)) {
+                       yyerror("out of memory");
+                       free($2);
+                       free($3);
+                       free($4);
+               }
+       }
+       ;
+server_interface_view: VAR_INTERFACE_VIEW STRING_ARG STRING_ARG
+       {
+               OUTYY(("P(server_interface_view:%s %s)\n", $2, $3));
+               if(!cfg_str2list_insert(&cfg_parser->cfg->interface_view,
+                       $2, $3)) {
+                       yyerror("out of memory");
+               }
+       }
+       ;
 server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG
        {
                size_t len = 0;
@@ -2761,6 +2825,13 @@ server_ede: VAR_EDE STRING_ARG
                free($2);
        }
        ;
+server_proxy_protocol_port: VAR_PROXY_PROTOCOL_PORT STRING_ARG
+       {
+               OUTYY(("P(server_proxy_protocol_port:%s)\n", $2));
+               if(!cfg_strlist_insert(&cfg_parser->cfg->proxy_protocol_port, $2))
+                       yyerror("out of memory");
+       }
+       ;
 stub_name: VAR_NAME STRING_ARG
        {
                OUTYY(("P(name:%s)\n", $2));
@@ -3103,6 +3174,7 @@ view_first: VAR_VIEW_FIRST STRING_ARG
 rcstart: VAR_REMOTE_CONTROL
        {
                OUTYY(("\nP(remote-control:)\n"));
+               cfg_parser->started_toplevel = 1;
        }
        ;
 contents_rc: contents_rc content_rc
@@ -3175,6 +3247,7 @@ rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG
 dtstart: VAR_DNSTAP
        {
                OUTYY(("\nP(dnstap:)\n"));
+               cfg_parser->started_toplevel = 1;
        }
        ;
 contents_dt: contents_dt content_dt
@@ -3357,6 +3430,7 @@ dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MES
 pythonstart: VAR_PYTHON
        {
                OUTYY(("\nP(python:)\n"));
+               cfg_parser->started_toplevel = 1;
        }
        ;
 contents_py: contents_py content_py
@@ -3372,6 +3446,7 @@ py_script: VAR_PYTHON_SCRIPT STRING_ARG
 dynlibstart: VAR_DYNLIB
        { 
                OUTYY(("\nP(dynlib:)\n")); 
+               cfg_parser->started_toplevel = 1;
        }
        ;
 contents_dl: contents_dl content_dl
@@ -3421,6 +3496,7 @@ server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG
 dnscstart: VAR_DNSCRYPT
        {
                OUTYY(("\nP(dnscrypt:)\n"));
+               cfg_parser->started_toplevel = 1;
        }
        ;
 contents_dnsc: contents_dnsc content_dnsc
@@ -3530,6 +3606,7 @@ dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG
 cachedbstart: VAR_CACHEDB
        {
                OUTYY(("\nP(cachedb:)\n"));
+               cfg_parser->started_toplevel = 1;
        }
        ;
 contents_cachedb: contents_cachedb content_cachedb
@@ -3629,6 +3706,7 @@ server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG
        ipsetstart: VAR_IPSET
                {
                        OUTYY(("\nP(ipset:)\n"));
+                       cfg_parser->started_toplevel = 1;
                }
                ;
        contents_ipset: contents_ipset content_ipset
@@ -3685,4 +3763,19 @@ validate_respip_action(const char* action)
        }
 }
 
-
+static void
+validate_acl_action(const char* action)
+{
+       if(strcmp(action, "deny")!=0 &&
+               strcmp(action, "refuse")!=0 &&
+               strcmp(action, "deny_non_local")!=0 &&
+               strcmp(action, "refuse_non_local")!=0 &&
+               strcmp(action, "allow_setrd")!=0 &&
+               strcmp(action, "allow")!=0 &&
+               strcmp(action, "allow_snoop")!=0)
+       {
+               yyerror("expected deny, refuse, deny_non_local, "
+                       "refuse_non_local, allow, allow_setrd or "
+                       "allow_snoop as access control action");
+       }
+}
index 05a22d4..dc8ab66 100644 (file)
@@ -221,6 +221,7 @@ fptr_whitelist_rbtree_cmp(int (*fptr) (const void *, const void *))
        if(fptr == &mesh_state_compare) return 1;
        else if(fptr == &mesh_state_ref_compare) return 1;
        else if(fptr == &addr_tree_compare) return 1;
+       else if(fptr == &addr_tree_addrport_compare) return 1;
        else if(fptr == &local_zone_cmp) return 1;
        else if(fptr == &local_data_cmp) return 1;
        else if(fptr == &fwd_cmp) return 1;
index 8153dbd..54fad69 100644 (file)
@@ -233,12 +233,11 @@ log_addr(enum verbosity_value v, const char* str,
        else    verbose(v, "%s %s port %d", str, dest, (int)port);
 }
 
-int 
+int
 extstrtoaddr(const char* str, struct sockaddr_storage* addr,
-       socklen_t* addrlen)
+       socklen_t* addrlen, int port)
 {
        char* s;
-       int port = UNBOUND_DNS_PORT;
        if((s=strchr(str, '@'))) {
                char buf[MAX_ADDR_STRLEN];
                if(s-str >= MAX_ADDR_STRLEN) {
@@ -255,7 +254,6 @@ extstrtoaddr(const char* str, struct sockaddr_storage* addr,
        return ipstrtoaddr(str, port, addr, addrlen);
 }
 
-
 int 
 ipstrtoaddr(const char* ip, int port, struct sockaddr_storage* addr,
        socklen_t* addrlen)
index 4dd3984..f1881b3 100644 (file)
@@ -96,6 +96,11 @@ extern uint16_t EDNS_ADVERTISED_SIZE;
 /** return a random 16-bit number given a random source */
 #define GET_RANDOM_ID(rnd) (((unsigned)ub_random(rnd)>>8) & 0xffff)
 
+/** define MSG_DONTWAIT for unsupported platforms */
+#ifndef MSG_DONTWAIT
+#define MSG_DONTWAIT 0
+#endif
+
 /** minimal responses when positive answer */
 extern int MINIMAL_RESPONSES;
 
@@ -178,10 +183,11 @@ void log_err_addr(const char* str, const char* err,
  * @param str: the string
  * @param addr: where to store sockaddr.
  * @param addrlen: length of stored sockaddr is returned.
+ * @param port: default port.
  * @return 0 on error.
  */
 int extstrtoaddr(const char* str, struct sockaddr_storage* addr, 
-       socklen_t* addrlen);
+       socklen_t* addrlen, int port);
 
 /**
  * Convert ip address string and port to sockaddr.
index 841e097..da59a9d 100644 (file)
@@ -45,6 +45,7 @@
 #include "util/net_help.h"
 #include "util/tcp_conn_limit.h"
 #include "util/fptr_wlist.h"
+#include "util/proxy_protocol.h"
 #include "sldns/pkthdr.h"
 #include "sldns/sbuffer.h"
 #include "sldns/str2wire.h"
@@ -60,6 +61,9 @@
 #ifdef HAVE_NETDB_H
 #include <netdb.h>
 #endif
+#ifdef HAVE_POLL_H
+#include <poll.h>
+#endif
 
 #ifdef HAVE_OPENSSL_SSL_H
 #include <openssl/ssl.h>
 #define NUM_UDP_PER_SELECT 1
 #endif
 
+/** timeout in millisec to wait for write to unblock, packets dropped after.*/
+#define SEND_BLOCKED_WAIT_TIMEOUT 200
+
 /**
  * The internal event structure for keeping ub_event info for the event.
  * Possibly other structures (list, tree) this is part of.
@@ -132,6 +139,10 @@ struct internal_base {
        struct ub_event* slow_accept;
        /** true if slow_accept is enabled */
        int slow_accept_enabled;
+       /** last log time for slow logging of file descriptor errors */
+       time_t last_slow_log;
+       /** last log time for slow logging of write wait failures */
+       time_t last_writewait_log;
 };
 
 /**
@@ -367,29 +378,83 @@ comm_point_send_udp_msg(struct comm_point *c, sldns_buffer* packet,
                 * we want to send the answer, and we will wait for
                 * the ethernet interface buffer to have space. */
 #ifndef USE_WINSOCK
-               if(errno == EAGAIN || 
+               if(errno == EAGAIN || errno == EINTR ||
 #  ifdef EWOULDBLOCK
                        errno == EWOULDBLOCK ||
 #  endif
                        errno == ENOBUFS) {
 #else
                if(WSAGetLastError() == WSAEINPROGRESS ||
+                       WSAGetLastError() == WSAEINTR ||
                        WSAGetLastError() == WSAENOBUFS ||
                        WSAGetLastError() == WSAEWOULDBLOCK) {
 #endif
-                       int e;
-                       fd_set_block(c->fd);
-                       if (!is_connected) {
-                               sent = sendto(c->fd, (void*)sldns_buffer_begin(packet),
-                                       sldns_buffer_remaining(packet), 0,
-                                       addr, addrlen);
-                       } else {
-                               sent = send(c->fd, (void*)sldns_buffer_begin(packet),
-                                       sldns_buffer_remaining(packet), 0);
+                       /* if we set the fd blocking, other threads suddenly
+                        * have a blocking fd that they operate on */
+                       while(sent == -1 && (
+#ifndef USE_WINSOCK
+                               errno == EAGAIN || errno == EINTR ||
+#  ifdef EWOULDBLOCK
+                               errno == EWOULDBLOCK ||
+#  endif
+                               errno == ENOBUFS
+#else
+                               WSAGetLastError() == WSAEINPROGRESS ||
+                               WSAGetLastError() == WSAEINTR ||
+                               WSAGetLastError() == WSAENOBUFS ||
+                               WSAGetLastError() == WSAEWOULDBLOCK
+#endif
+                       )) {
+#if defined(HAVE_POLL) || defined(USE_WINSOCK)
+                               struct pollfd p;
+                               int pret;
+                               memset(&p, 0, sizeof(p));
+                               p.fd = c->fd;
+                               p.events = POLLOUT | POLLERR | POLLHUP;
+#  ifndef USE_WINSOCK
+                               pret = poll(&p, 1, SEND_BLOCKED_WAIT_TIMEOUT);
+#  else
+                               pret = WSAPoll(&p, 1,
+                                       SEND_BLOCKED_WAIT_TIMEOUT);
+#  endif
+                               if(pret == 0) {
+                                       /* timer expired */
+                                       struct comm_base* b = c->ev->base;
+                                       if(b->eb->last_writewait_log+SLOW_LOG_TIME <=
+                                               b->eb->secs) {
+                                               b->eb->last_writewait_log = b->eb->secs;
+                                               verbose(VERB_OPS, "send udp blocked "
+                                                       "for long, dropping packet.");
+                                       }
+                                       return 0;
+                               } else if(pret < 0 &&
+#ifndef USE_WINSOCK
+                                       errno != EAGAIN && errno != EINTR &&
+#  ifdef EWOULDBLOCK
+                                       errno != EWOULDBLOCK &&
+#  endif
+                                       errno != ENOBUFS
+#else
+                                       WSAGetLastError() != WSAEINPROGRESS &&
+                                       WSAGetLastError() != WSAEINTR &&
+                                       WSAGetLastError() != WSAENOBUFS &&
+                                       WSAGetLastError() != WSAEWOULDBLOCK
+#endif
+                                       ) {
+                                       log_err("poll udp out failed: %s",
+                                               sock_strerror(errno));
+                                       return 0;
+                               }
+#endif /* defined(HAVE_POLL) || defined(USE_WINSOCK) */
+                               if (!is_connected) {
+                                       sent = sendto(c->fd, (void*)sldns_buffer_begin(packet),
+                                               sldns_buffer_remaining(packet), 0,
+                                               addr, addrlen);
+                               } else {
+                                       sent = send(c->fd, (void*)sldns_buffer_begin(packet),
+                                               sldns_buffer_remaining(packet), 0);
+                               }
                        }
-                       e = errno;
-                       fd_set_nonblock(c->fd);
-                       errno = e;
                }
        }
        if(sent == -1) {
@@ -556,22 +621,74 @@ comm_point_send_udp_msg_if(struct comm_point *c, sldns_buffer* packet,
                 * we want to send the answer, and we will wait for
                 * the ethernet interface buffer to have space. */
 #ifndef USE_WINSOCK
-               if(errno == EAGAIN || 
+               if(errno == EAGAIN || errno == EINTR ||
 #  ifdef EWOULDBLOCK
                        errno == EWOULDBLOCK ||
 #  endif
                        errno == ENOBUFS) {
 #else
                if(WSAGetLastError() == WSAEINPROGRESS ||
+                       WSAGetLastError() == WSAEINTR ||
                        WSAGetLastError() == WSAENOBUFS ||
                        WSAGetLastError() == WSAEWOULDBLOCK) {
 #endif
-                       int e;
-                       fd_set_block(c->fd);
-                       sent = sendmsg(c->fd, &msg, 0);
-                       e = errno;
-                       fd_set_nonblock(c->fd);
-                       errno = e;
+                       while(sent == -1 && (
+#ifndef USE_WINSOCK
+                               errno == EAGAIN || errno == EINTR ||
+#  ifdef EWOULDBLOCK
+                               errno == EWOULDBLOCK ||
+#  endif
+                               errno == ENOBUFS
+#else
+                               WSAGetLastError() == WSAEINPROGRESS ||
+                               WSAGetLastError() == WSAEINTR ||
+                               WSAGetLastError() == WSAENOBUFS ||
+                               WSAGetLastError() == WSAEWOULDBLOCK
+#endif
+                       )) {
+#if defined(HAVE_POLL) || defined(USE_WINSOCK)
+                               struct pollfd p;
+                               int pret;
+                               memset(&p, 0, sizeof(p));
+                               p.fd = c->fd;
+                               p.events = POLLOUT | POLLERR | POLLHUP;
+#  ifndef USE_WINSOCK
+                               pret = poll(&p, 1, SEND_BLOCKED_WAIT_TIMEOUT);
+#  else
+                               pret = WSAPoll(&p, 1,
+                                       SEND_BLOCKED_WAIT_TIMEOUT);
+#  endif
+                               if(pret == 0) {
+                                       /* timer expired */
+                                       struct comm_base* b = c->ev->base;
+                                       if(b->eb->last_writewait_log+SLOW_LOG_TIME <=
+                                               b->eb->secs) {
+                                               b->eb->last_writewait_log = b->eb->secs;
+                                               verbose(VERB_OPS, "send udp blocked "
+                                                       "for long, dropping packet.");
+                                       }
+                                       return 0;
+                               } else if(pret < 0 &&
+#ifndef USE_WINSOCK
+                                       errno != EAGAIN && errno != EINTR &&
+#  ifdef EWOULDBLOCK
+                                       errno != EWOULDBLOCK &&
+#  endif
+                                       errno != ENOBUFS
+#else
+                                       WSAGetLastError() != WSAEINPROGRESS &&
+                                       WSAGetLastError() != WSAEINTR &&
+                                       WSAGetLastError() != WSAENOBUFS &&
+                                       WSAGetLastError() != WSAEWOULDBLOCK
+#endif
+                                       ) {
+                                       log_err("poll udp out failed: %s",
+                                               sock_strerror(errno));
+                                       return 0;
+                               }
+#endif /* defined(HAVE_POLL) || defined(USE_WINSOCK) */
+                               sent = sendmsg(c->fd, &msg, 0);
+                       }
                }
        }
        if(sent == -1) {
@@ -639,6 +756,67 @@ static int udp_recv_needs_log(int err)
        return 1;
 }
 
+/** Parses the PROXYv2 header from buf and updates the comm_reply struct.
+ *  Returns 1 on success, 0 on failure. */
+static int consume_pp2_header(struct sldns_buffer* buf, struct comm_reply* rep,
+       int stream) {
+       size_t size;
+       struct pp2_header *header = pp2_read_header(buf);
+       if(header == NULL) return 0;
+       size = PP2_HEADER_SIZE + ntohs(header->len);
+       if((header->ver_cmd & 0xF) == PP2_CMD_LOCAL) {
+               /* A connection from the proxy itself.
+                * No need to do anything with addresses. */
+               goto done;
+       }
+       if(header->fam_prot == 0x00) {
+               /* Unspecified family and protocol. This could be used for
+                * health checks by proxies.
+                * No need to do anything with addresses. */
+               goto done;
+       }
+       /* Read the proxied address */
+       switch(header->fam_prot) {
+               case 0x11: /* AF_INET|STREAM */
+               case 0x12: /* AF_INET|DGRAM */
+                       {
+                       struct sockaddr_in* addr =
+                               (struct sockaddr_in*)&rep->client_addr;
+                       addr->sin_family = AF_INET;
+                       addr->sin_addr.s_addr = header->addr.addr4.src_addr;
+                       addr->sin_port = header->addr.addr4.src_port;
+                       rep->client_addrlen = (socklen_t)sizeof(struct sockaddr_in);
+                       }
+                       /* Ignore the destination address; it should be us. */
+                       break;
+               case 0x21: /* AF_INET6|STREAM */
+               case 0x22: /* AF_INET6|DGRAM */
+                       {
+                       struct sockaddr_in6* addr =
+                               (struct sockaddr_in6*)&rep->client_addr;
+                       memset(addr, 0, sizeof(*addr));
+                       addr->sin6_family = AF_INET6;
+                       memcpy(&addr->sin6_addr,
+                               header->addr.addr6.src_addr, 16);
+                       addr->sin6_port = header->addr.addr6.src_port;
+                       rep->client_addrlen = (socklen_t)sizeof(struct sockaddr_in6);
+                       }
+                       /* Ignore the destination address; it should be us. */
+                       break;
+       }
+       rep->is_proxied = 1;
+done:
+       if(!stream) {
+               /* We are reading a whole packet;
+                * Move the rest of the data to overwrite the PROXYv2 header */
+               /* XXX can we do better to avoid memmove? */
+               memmove(header, ((void*)header)+size,
+                       sldns_buffer_limit(buf)-size);
+               sldns_buffer_set_limit(buf, sldns_buffer_limit(buf)-size);
+       }
+       return 1;
+}
+
 void 
 comm_point_udp_ancil_callback(int fd, short event, void* arg)
 {
@@ -665,11 +843,11 @@ comm_point_udp_ancil_callback(int fd, short event, void* arg)
        ub_comm_base_now(rep.c->ev->base);
        for(i=0; i<NUM_UDP_PER_SELECT; i++) {
                sldns_buffer_clear(rep.c->buffer);
-               rep.addrlen = (socklen_t)sizeof(rep.addr);
+               rep.remote_addrlen = (socklen_t)sizeof(rep.remote_addr);
                log_assert(fd != -1);
                log_assert(sldns_buffer_remaining(rep.c->buffer) > 0);
-               msg.msg_name = &rep.addr;
-               msg.msg_namelen = (socklen_t)sizeof(rep.addr);
+               msg.msg_name = &rep.remote_addr;
+               msg.msg_namelen = (socklen_t)sizeof(rep.remote_addr);
                iov[0].iov_base = sldns_buffer_begin(rep.c->buffer);
                iov[0].iov_len = sldns_buffer_remaining(rep.c->buffer);
                msg.msg_iov = iov;
@@ -679,7 +857,7 @@ comm_point_udp_ancil_callback(int fd, short event, void* arg)
                msg.msg_controllen = sizeof(ancil.buf);
 #endif /* S_SPLINT_S */
                msg.msg_flags = 0;
-               rcv = recvmsg(fd, &msg, 0);
+               rcv = recvmsg(fd, &msg, MSG_DONTWAIT);
                if(rcv == -1) {
                        if(errno != EAGAIN && errno != EINTR
                                && udp_recv_needs_log(errno)) {
@@ -687,10 +865,11 @@ comm_point_udp_ancil_callback(int fd, short event, void* arg)
                        }
                        return;
                }
-               rep.addrlen = msg.msg_namelen;
+               rep.remote_addrlen = msg.msg_namelen;
                sldns_buffer_skip(rep.c->buffer, rcv);
                sldns_buffer_flip(rep.c->buffer);
                rep.srctype = 0;
+               rep.is_proxied = 0;
 #ifndef S_SPLINT_S
                for(cmsg = CMSG_FIRSTHDR(&msg); cmsg != NULL;
                        cmsg = CMSG_NXTHDR(&msg, cmsg)) {
@@ -720,11 +899,24 @@ comm_point_udp_ancil_callback(int fd, short event, void* arg)
                if(verbosity >= VERB_ALGO)
                        p_ancil("receive_udp on interface", &rep);
 #endif /* S_SPLINT_S */
+
+               if(rep.c->pp2_enabled && !consume_pp2_header(rep.c->buffer,
+                       &rep, 0)) {
+                       log_err("proxy_protocol: could not consume PROXYv2 header");
+                       return;
+               }
+               if(!rep.is_proxied) {
+                       rep.client_addrlen = rep.remote_addrlen;
+                       memmove(&rep.client_addr, &rep.remote_addr,
+                               rep.remote_addrlen);
+               }
+
                fptr_ok(fptr_whitelist_comm_point(rep.c->callback));
                if((*rep.c->callback)(rep.c, rep.c->cb_arg, NETEVENT_NOERROR, &rep)) {
                        /* send back immediate reply */
                        (void)comm_point_send_udp_msg_if(rep.c, rep.c->buffer,
-                               (struct sockaddr*)&rep.addr, rep.addrlen, &rep);
+                               (struct sockaddr*)&rep.remote_addr,
+                               rep.remote_addrlen, &rep);
                }
                if(!rep.c || rep.c->fd == -1) /* commpoint closed */
                        break;
@@ -755,12 +947,12 @@ comm_point_udp_callback(int fd, short event, void* arg)
        ub_comm_base_now(rep.c->ev->base);
        for(i=0; i<NUM_UDP_PER_SELECT; i++) {
                sldns_buffer_clear(rep.c->buffer);
-               rep.addrlen = (socklen_t)sizeof(rep.addr);
+               rep.remote_addrlen = (socklen_t)sizeof(rep.remote_addr);
                log_assert(fd != -1);
                log_assert(sldns_buffer_remaining(rep.c->buffer) > 0);
                rcv = recvfrom(fd, (void*)sldns_buffer_begin(rep.c->buffer), 
-                       sldns_buffer_remaining(rep.c->buffer), 0, 
-                       (struct sockaddr*)&rep.addr, &rep.addrlen);
+                       sldns_buffer_remaining(rep.c->buffer), MSG_DONTWAIT,
+                       (struct sockaddr*)&rep.remote_addr, &rep.remote_addrlen);
                if(rcv == -1) {
 #ifndef USE_WINSOCK
                        if(errno != EAGAIN && errno != EINTR
@@ -780,6 +972,19 @@ comm_point_udp_callback(int fd, short event, void* arg)
                sldns_buffer_skip(rep.c->buffer, rcv);
                sldns_buffer_flip(rep.c->buffer);
                rep.srctype = 0;
+               rep.is_proxied = 0;
+
+               if(rep.c->pp2_enabled && !consume_pp2_header(rep.c->buffer,
+                       &rep, 0)) {
+                       log_err("proxy_protocol: could not consume PROXYv2 header");
+                       return;
+               }
+               if(!rep.is_proxied) {
+                       rep.client_addrlen = rep.remote_addrlen;
+                       memmove(&rep.client_addr, &rep.remote_addr,
+                               rep.remote_addrlen);
+               }
+
                fptr_ok(fptr_whitelist_comm_point(rep.c->callback));
                if((*rep.c->callback)(rep.c, rep.c->cb_arg, NETEVENT_NOERROR, &rep)) {
                        /* send back immediate reply */
@@ -789,7 +994,8 @@ comm_point_udp_callback(int fd, short event, void* arg)
                        buffer = rep.c->buffer;
 #endif
                        (void)comm_point_send_udp_msg(rep.c, buffer,
-                               (struct sockaddr*)&rep.addr, rep.addrlen, 0);
+                               (struct sockaddr*)&rep.remote_addr,
+                               rep.remote_addrlen, 0);
                }
                if(!rep.c || rep.c->fd != fd) /* commpoint closed to -1 or reused for
                another UDP port. Note rep.c cannot be reused with TCP fd. */
@@ -889,6 +1095,16 @@ int comm_point_perform_accept(struct comm_point* c,
                                struct timeval tv;
                                verbose(VERB_ALGO, "out of file descriptors: "
                                        "slow accept");
+                               ub_comm_base_now(b);
+                               if(b->eb->last_slow_log+SLOW_LOG_TIME <=
+                                       b->eb->secs) {
+                                       b->eb->last_slow_log = b->eb->secs;
+                                       verbose(VERB_OPS, "accept failed, "
+                                               "slow down accept for %d "
+                                               "msec: %s",
+                                               NETEVENT_SLOW_ACCEPT_TIME,
+                                               sock_strerror(errno));
+                               }
                                b->eb->slow_accept_enabled = 1;
                                fptr_ok(fptr_whitelist_stop_accept(
                                        b->stop_accept));
@@ -909,6 +1125,9 @@ int comm_point_perform_accept(struct comm_point* c,
                                        /* we do not want to log here,
                                         * error: "event_add failed." */
                                }
+                       } else {
+                               log_err("accept, with no slow down, "
+                                       "failed: %s", sock_strerror(errno));
                        }
                        return -1;
                }
@@ -1092,10 +1311,16 @@ comm_point_tcp_accept_callback(int fd, short event, void* arg)
        }
        log_assert(fd != -1);
        (void)fd;
-       new_fd = comm_point_perform_accept(c, &c_hdl->repinfo.addr,
-               &c_hdl->repinfo.addrlen);
+       new_fd = comm_point_perform_accept(c, &c_hdl->repinfo.remote_addr,
+               &c_hdl->repinfo.remote_addrlen);
        if(new_fd == -1)
                return;
+       /* Copy remote_address to client_address.
+        * Simplest way/time for streams to do that. */
+       c_hdl->repinfo.client_addrlen = c_hdl->repinfo.remote_addrlen;
+       memmove(&c_hdl->repinfo.client_addr,
+               &c_hdl->repinfo.remote_addr,
+               c_hdl->repinfo.remote_addrlen);
        if(c->ssl) {
                c_hdl->ssl = incoming_ssl_fd(c->ssl, new_fd);
                if(!c_hdl->ssl) {
@@ -1147,6 +1372,7 @@ reclaim_tcp_handler(struct comm_point* c)
        c->tcp_more_read_again = NULL;
        c->tcp_more_write_again = NULL;
        c->tcp_byte_count = 0;
+       c->pp2_header_state = pp2_header_none;
        sldns_buffer_clear(c->buffer);
 }
 
@@ -1278,8 +1504,8 @@ ssl_handshake(struct comm_point* c)
                                return 0; /* silence reset by peer */
 #endif
                        if(!tcp_connect_errno_needs_log(
-                               (struct sockaddr*)&c->repinfo.addr,
-                               c->repinfo.addrlen))
+                               (struct sockaddr*)&c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen))
                                return 0; /* silence connect failures that
                                show up because after connect this is the
                                first system call that accesses the socket */
@@ -1291,8 +1517,9 @@ ssl_handshake(struct comm_point* c)
                        unsigned long err = ERR_get_error();
                        if(!squelch_err_ssl_handshake(err)) {
                                log_crypto_err_code("ssl handshake failed", err);
-                               log_addr(VERB_OPS, "ssl handshake failed", &c->repinfo.addr,
-                                       c->repinfo.addrlen);
+                               log_addr(VERB_OPS, "ssl handshake failed",
+                                       &c->repinfo.remote_addr,
+                                       c->repinfo.remote_addrlen);
                        }
                        return 0;
                }
@@ -1309,7 +1536,8 @@ ssl_handshake(struct comm_point* c)
                        if(!x) {
                                log_addr(VERB_ALGO, "SSL connection failed: "
                                        "no certificate",
-                                       &c->repinfo.addr, c->repinfo.addrlen);
+                                       &c->repinfo.remote_addr,
+                                       c->repinfo.remote_addrlen);
                                return 0;
                        }
                        log_cert(VERB_ALGO, "peer certificate", x);
@@ -1319,13 +1547,13 @@ ssl_handshake(struct comm_point* c)
                                snprintf(buf, sizeof(buf), "SSL connection "
                                        "to %s authenticated",
                                        SSL_get0_peername(c->ssl));
-                               log_addr(VERB_ALGO, buf, &c->repinfo.addr,
-                                       c->repinfo.addrlen);
+                               log_addr(VERB_ALGO, buf, &c->repinfo.remote_addr,
+                                       c->repinfo.remote_addrlen);
                        } else {
 #endif
                                log_addr(VERB_ALGO, "SSL connection "
-                                       "authenticated", &c->repinfo.addr,
-                                       c->repinfo.addrlen);
+                                       "authenticated", &c->repinfo.remote_addr,
+                                       c->repinfo.remote_addrlen);
 #ifdef HAVE_SSL_GET0_PEERNAME
                        }
 #endif
@@ -1342,14 +1570,15 @@ ssl_handshake(struct comm_point* c)
                        }
                        log_addr(VERB_ALGO, "SSL connection failed: "
                                "failed to authenticate",
-                               &c->repinfo.addr, c->repinfo.addrlen);
+                               &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
                        return 0;
                }
        } else {
                /* unauthenticated, the verify peer flag was not set
                 * in c->ssl when the ssl object was created from ssl_ctx */
-               log_addr(VERB_ALGO, "SSL connection", &c->repinfo.addr,
-                       c->repinfo.addrlen);
+               log_addr(VERB_ALGO, "SSL connection", &c->repinfo.remote_addr,
+                       c->repinfo.remote_addrlen);
        }
 
 #ifdef HAVE_SSL_GET0_ALPN_SELECTED
@@ -1390,6 +1619,142 @@ ssl_handle_read(struct comm_point* c)
                if(c->ssl_shake_state != comm_ssl_shake_none)
                        return 1;
        }
+       if(c->pp2_enabled && c->pp2_header_state != pp2_header_done) {
+               struct pp2_header* header = NULL;
+               size_t want_read_size = 0;
+               size_t current_read_size = 0;
+               if(c->pp2_header_state == pp2_header_none) {
+                       want_read_size = PP2_HEADER_SIZE;
+                       if(sldns_buffer_remaining(c->buffer)<want_read_size) {
+                               log_err_addr("proxy_protocol: not enough "
+                                       "buffer size to read PROXYv2 header", "",
+                                       &c->repinfo.remote_addr,
+                                       c->repinfo.remote_addrlen);
+                               return 0;
+                       }
+                       verbose(VERB_ALGO, "proxy_protocol: reading fixed "
+                               "part of PROXYv2 header (len %lu)",
+                               (unsigned long)want_read_size);
+                       current_read_size = want_read_size;
+                       if(c->tcp_byte_count < current_read_size) {
+                               ERR_clear_error();
+                               if((r=SSL_read(c->ssl, (void*)sldns_buffer_at(
+                                       c->buffer, c->tcp_byte_count),
+                                       current_read_size -
+                                       c->tcp_byte_count)) <= 0) {
+                                       int want = SSL_get_error(c->ssl, r);
+                                       if(want == SSL_ERROR_ZERO_RETURN) {
+                                               if(c->tcp_req_info)
+                                                       return tcp_req_info_handle_read_close(c->tcp_req_info);
+                                               return 0; /* shutdown, closed */
+                                       } else if(want == SSL_ERROR_WANT_READ) {
+#ifdef USE_WINSOCK
+                                               ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ);
+#endif
+                                               return 1; /* read more later */
+                                       } else if(want == SSL_ERROR_WANT_WRITE) {
+                                               c->ssl_shake_state = comm_ssl_shake_hs_write;
+                                               comm_point_listen_for_rw(c, 0, 1);
+                                               return 1;
+                                       } else if(want == SSL_ERROR_SYSCALL) {
+#ifdef ECONNRESET
+                                               if(errno == ECONNRESET && verbosity < 2)
+                                                       return 0; /* silence reset by peer */
+#endif
+                                               if(errno != 0)
+                                                       log_err("SSL_read syscall: %s",
+                                                               strerror(errno));
+                                               return 0;
+                                       }
+                                       log_crypto_err("could not SSL_read");
+                                       return 0;
+                               }
+                               c->tcp_byte_count += r;
+                               if(c->tcp_byte_count != current_read_size) return 1;
+                               c->pp2_header_state = pp2_header_init;
+                       }
+               }
+               if(c->pp2_header_state == pp2_header_init) {
+                       header = pp2_read_header(c->buffer);
+                       if(!header) {
+                               log_err("proxy_protocol: could not parse "
+                                       "PROXYv2 header");
+                               return 0;
+                       }
+                       want_read_size = ntohs(header->len);
+                       if(sldns_buffer_remaining(c->buffer) <
+                               PP2_HEADER_SIZE + want_read_size) {
+                               log_err_addr("proxy_protocol: not enough "
+                                       "buffer size to read PROXYv2 header", "",
+                                       &c->repinfo.remote_addr,
+                                       c->repinfo.remote_addrlen);
+                               return 0;
+                       }
+                       verbose(VERB_ALGO, "proxy_protocol: reading variable "
+                               "part of PROXYv2 header (len %lu)",
+                               (unsigned long)want_read_size);
+                       current_read_size = PP2_HEADER_SIZE + want_read_size;
+                       if(want_read_size == 0) {
+                               /* nothing more to read; header is complete */
+                               c->pp2_header_state = pp2_header_done;
+                       } else if(c->tcp_byte_count < current_read_size) {
+                               ERR_clear_error();
+                               if((r=SSL_read(c->ssl, (void*)sldns_buffer_at(
+                                       c->buffer, c->tcp_byte_count),
+                                       current_read_size -
+                                       c->tcp_byte_count)) <= 0) {
+                                       int want = SSL_get_error(c->ssl, r);
+                                       if(want == SSL_ERROR_ZERO_RETURN) {
+                                               if(c->tcp_req_info)
+                                                       return tcp_req_info_handle_read_close(c->tcp_req_info);
+                                               return 0; /* shutdown, closed */
+                                       } else if(want == SSL_ERROR_WANT_READ) {
+#ifdef USE_WINSOCK
+                                               ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ);
+#endif
+                                               return 1; /* read more later */
+                                       } else if(want == SSL_ERROR_WANT_WRITE) {
+                                               c->ssl_shake_state = comm_ssl_shake_hs_write;
+                                               comm_point_listen_for_rw(c, 0, 1);
+                                               return 1;
+                                       } else if(want == SSL_ERROR_SYSCALL) {
+#ifdef ECONNRESET
+                                               if(errno == ECONNRESET && verbosity < 2)
+                                                       return 0; /* silence reset by peer */
+#endif
+                                               if(errno != 0)
+                                                       log_err("SSL_read syscall: %s",
+                                                               strerror(errno));
+                                               return 0;
+                                       }
+                                       log_crypto_err("could not SSL_read");
+                                       return 0;
+                               }
+                               c->tcp_byte_count += r;
+                               if(c->tcp_byte_count != current_read_size) return 1;
+                               c->pp2_header_state = pp2_header_done;
+                       }
+               }
+               if(c->pp2_header_state != pp2_header_done || !header) {
+                       log_err_addr("proxy_protocol: wrong state for the "
+                               "PROXYv2 header", "", &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
+                       return 0;
+               }
+               if(!consume_pp2_header(c->buffer, &c->repinfo, 1)) {
+                       log_err_addr("proxy_protocol: could not consume "
+                               "PROXYv2 header", "", &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
+                       return 0;
+               }
+               verbose(VERB_ALGO, "proxy_protocol: successful read of "
+                       "PROXYv2 header");
+               /* Clear and reset the buffer to read the following
+                * DNS packet(s). */
+               sldns_buffer_clear(c->buffer);
+               c->tcp_byte_count = 0;
+               return 1;
+       }
        if(c->tcp_byte_count < sizeof(uint16_t)) {
                /* read length bytes */
                ERR_clear_error();
@@ -1649,16 +2014,18 @@ ssl_handle_it(struct comm_point* c, int is_write)
        return ssl_handle_write(c);
 }
 
-/** Handle tcp reading callback. 
+/**
+ * Handle tcp reading callback.
  * @param fd: file descriptor of socket.
  * @param c: comm point to read from into buffer.
  * @param short_ok: if true, very short packets are OK (for comm_local).
- * @return: 0 on error 
+ * @return: 0 on error
  */
 static int
 comm_point_tcp_handle_read(int fd, struct comm_point* c, int short_ok)
 {
        ssize_t r;
+       int recv_initial = 0;
        log_assert(c->type == comm_tcp || c->type == comm_local);
        if(c->ssl)
                return ssl_handle_it(c, 0);
@@ -1666,78 +2033,111 @@ comm_point_tcp_handle_read(int fd, struct comm_point* c, int short_ok)
                return 0;
 
        log_assert(fd != -1);
+       if(c->pp2_enabled && c->pp2_header_state != pp2_header_done) {
+               struct pp2_header* header = NULL;
+               size_t want_read_size = 0;
+               size_t current_read_size = 0;
+               if(c->pp2_header_state == pp2_header_none) {
+                       want_read_size = PP2_HEADER_SIZE;
+                       if(sldns_buffer_remaining(c->buffer)<want_read_size) {
+                               log_err_addr("proxy_protocol: not enough "
+                                       "buffer size to read PROXYv2 header", "",
+                                       &c->repinfo.remote_addr,
+                                       c->repinfo.remote_addrlen);
+                               return 0;
+                       }
+                       verbose(VERB_ALGO, "proxy_protocol: reading fixed "
+                               "part of PROXYv2 header (len %lu)",
+                               (unsigned long)want_read_size);
+                       current_read_size = want_read_size;
+                       if(c->tcp_byte_count < current_read_size) {
+                               r = recv(fd, (void*)sldns_buffer_at(c->buffer,
+                                       c->tcp_byte_count),
+                                       current_read_size-c->tcp_byte_count, MSG_DONTWAIT);
+                               if(r == 0) {
+                                       if(c->tcp_req_info)
+                                               return tcp_req_info_handle_read_close(c->tcp_req_info);
+                                       return 0;
+                               } else if(r == -1) {
+                                       goto recv_error_initial;
+                               }
+                               c->tcp_byte_count += r;
+                               if(c->tcp_byte_count != current_read_size) return 1;
+                               c->pp2_header_state = pp2_header_init;
+                       }
+               }
+               if(c->pp2_header_state == pp2_header_init) {
+                       header = pp2_read_header(c->buffer);
+                       if(!header) {
+                               log_err("proxy_protocol: could not parse "
+                                       "PROXYv2 header");
+                               return 0;
+                       }
+                       want_read_size = ntohs(header->len);
+                       if(sldns_buffer_remaining(c->buffer) <
+                               PP2_HEADER_SIZE + want_read_size) {
+                               log_err_addr("proxy_protocol: not enough "
+                                       "buffer size to read PROXYv2 header", "",
+                                       &c->repinfo.remote_addr,
+                                       c->repinfo.remote_addrlen);
+                               return 0;
+                       }
+                       verbose(VERB_ALGO, "proxy_protocol: reading variable "
+                               "part of PROXYv2 header (len %lu)",
+                               (unsigned long)want_read_size);
+                       current_read_size = PP2_HEADER_SIZE + want_read_size;
+                       if(want_read_size == 0) {
+                               /* nothing more to read; header is complete */
+                               c->pp2_header_state = pp2_header_done;
+                       } else if(c->tcp_byte_count < current_read_size) {
+                               r = recv(fd, (void*)sldns_buffer_at(c->buffer,
+                                       c->tcp_byte_count),
+                                       current_read_size-c->tcp_byte_count, MSG_DONTWAIT);
+                               if(r == 0) {
+                                       if(c->tcp_req_info)
+                                               return tcp_req_info_handle_read_close(c->tcp_req_info);
+                                       return 0;
+                               } else if(r == -1) {
+                                       goto recv_error;
+                               }
+                               c->tcp_byte_count += r;
+                               if(c->tcp_byte_count != current_read_size) return 1;
+                               c->pp2_header_state = pp2_header_done;
+                       }
+               }
+               if(c->pp2_header_state != pp2_header_done || !header) {
+                       log_err_addr("proxy_protocol: wrong state for the "
+                               "PROXYv2 header", "", &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
+                       return 0;
+               }
+               if(!consume_pp2_header(c->buffer, &c->repinfo, 1)) {
+                       log_err_addr("proxy_protocol: could not consume "
+                               "PROXYv2 header", "", &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
+                       return 0;
+               }
+               verbose(VERB_ALGO, "proxy_protocol: successful read of "
+                       "PROXYv2 header");
+               /* Clear and reset the buffer to read the following
+                   * DNS packet(s). */
+               sldns_buffer_clear(c->buffer);
+               c->tcp_byte_count = 0;
+               return 1;
+       }
+
        if(c->tcp_byte_count < sizeof(uint16_t)) {
                /* read length bytes */
                r = recv(fd,(void*)sldns_buffer_at(c->buffer,c->tcp_byte_count),
-                       sizeof(uint16_t)-c->tcp_byte_count, 0);
+                       sizeof(uint16_t)-c->tcp_byte_count, MSG_DONTWAIT);
                if(r == 0) {
                        if(c->tcp_req_info)
                                return tcp_req_info_handle_read_close(c->tcp_req_info);
                        return 0;
                } else if(r == -1) {
-#ifndef USE_WINSOCK
-                       if(errno == EINTR || errno == EAGAIN)
-                               return 1;
-#ifdef ECONNRESET
-                       if(errno == ECONNRESET && verbosity < 2)
-                               return 0; /* silence reset by peer */
-#endif
-#ifdef ECONNREFUSED
-                       if(errno == ECONNREFUSED && verbosity < 2)
-                               return 0; /* silence reset by peer */
-#endif
-#ifdef ENETUNREACH
-                       if(errno == ENETUNREACH && verbosity < 2)
-                               return 0; /* silence it */
-#endif
-#ifdef EHOSTDOWN
-                       if(errno == EHOSTDOWN && verbosity < 2)
-                               return 0; /* silence it */
-#endif
-#ifdef EHOSTUNREACH
-                       if(errno == EHOSTUNREACH && verbosity < 2)
-                               return 0; /* silence it */
-#endif
-#ifdef ENETDOWN
-                       if(errno == ENETDOWN && verbosity < 2)
-                               return 0; /* silence it */
-#endif
-#ifdef EACCES
-                       if(errno == EACCES && verbosity < 2)
-                               return 0; /* silence it */
-#endif
-#ifdef ENOTCONN
-                       if(errno == ENOTCONN) {
-                               log_err_addr("read (in tcp s) failed and this could be because TCP Fast Open is enabled [--disable-tfo-client --disable-tfo-server] but does not work", sock_strerror(errno),
-                                       &c->repinfo.addr, c->repinfo.addrlen);
-                               return 0;
-                       }
-#endif
-#else /* USE_WINSOCK */
-                       if(WSAGetLastError() == WSAECONNREFUSED && verbosity < 2)
-                               return 0;
-                       if(WSAGetLastError() == WSAEHOSTDOWN && verbosity < 2)
-                               return 0;
-                       if(WSAGetLastError() == WSAEHOSTUNREACH && verbosity < 2)
-                               return 0;
-                       if(WSAGetLastError() == WSAENETDOWN && verbosity < 2)
-                               return 0;
-                       if(WSAGetLastError() == WSAENETUNREACH && verbosity < 2)
-                               return 0;
-                       if(WSAGetLastError() == WSAECONNRESET)
-                               return 0;
-                       if(WSAGetLastError() == WSAEINPROGRESS)
-                               return 1;
-                       if(WSAGetLastError() == WSAEWOULDBLOCK) {
-                               ub_winsock_tcp_wouldblock(c->ev->ev,
-                                       UB_EV_READ);
-                               return 1;
-                       }
-#endif
-                       log_err_addr("read (in tcp s)", sock_strerror(errno),
-                               &c->repinfo.addr, c->repinfo.addrlen);
-                       return 0;
-               } 
+                       if(c->pp2_enabled) goto recv_error;
+                       goto recv_error_initial;
+               }
                c->tcp_byte_count += r;
                if(c->tcp_byte_count != sizeof(uint16_t))
                        return 1;
@@ -1746,48 +2146,110 @@ comm_point_tcp_handle_read(int fd, struct comm_point* c, int short_ok)
                        verbose(VERB_QUERY, "tcp: dropped larger than buffer");
                        return 0;
                }
-               sldns_buffer_set_limit(c->buffer, 
+               sldns_buffer_set_limit(c->buffer,
                        sldns_buffer_read_u16_at(c->buffer, 0));
-               if(!short_ok && 
+               if(!short_ok &&
                        sldns_buffer_limit(c->buffer) < LDNS_HEADER_SIZE) {
                        verbose(VERB_QUERY, "tcp: dropped bogus too short.");
                        return 0;
                }
-               verbose(VERB_ALGO, "Reading tcp query of length %d", 
+               verbose(VERB_ALGO, "Reading tcp query of length %d",
                        (int)sldns_buffer_limit(c->buffer));
        }
 
        if(sldns_buffer_remaining(c->buffer) == 0)
-               log_err("in comm_point_tcp_handle_read buffer_remaining is not > 0 as expected, continuing with (harmless) 0 length recv");
+               log_err("in comm_point_tcp_handle_read buffer_remaining is "
+                       "not > 0 as expected, continuing with (harmless) 0 "
+                       "length recv");
        r = recv(fd, (void*)sldns_buffer_current(c->buffer), 
-               sldns_buffer_remaining(c->buffer), 0);
+               sldns_buffer_remaining(c->buffer), MSG_DONTWAIT);
        if(r == 0) {
                if(c->tcp_req_info)
                        return tcp_req_info_handle_read_close(c->tcp_req_info);
                return 0;
        } else if(r == -1) {
-#ifndef USE_WINSOCK
-               if(errno == EINTR || errno == EAGAIN)
-                       return 1;
-#else /* USE_WINSOCK */
-               if(WSAGetLastError() == WSAECONNRESET)
-                       return 0;
-               if(WSAGetLastError() == WSAEINPROGRESS)
-                       return 1;
-               if(WSAGetLastError() == WSAEWOULDBLOCK) {
-                       ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ);
-                       return 1;
-               }
-#endif
-               log_err_addr("read (in tcp r)", sock_strerror(errno),
-                       &c->repinfo.addr, c->repinfo.addrlen);
-               return 0;
+               goto recv_error;
        }
        sldns_buffer_skip(c->buffer, r);
        if(sldns_buffer_remaining(c->buffer) <= 0) {
                tcp_callback_reader(c);
        }
        return 1;
+
+recv_error_initial:
+       recv_initial = 1;
+recv_error:
+#ifndef USE_WINSOCK
+       if(errno == EINTR || errno == EAGAIN)
+               return 1;
+       if(recv_initial) {
+#ifdef ECONNRESET
+               if(errno == ECONNRESET && verbosity < 2)
+                       return 0; /* silence reset by peer */
+#endif
+#ifdef ECONNREFUSED
+               if(errno == ECONNREFUSED && verbosity < 2)
+                       return 0; /* silence reset by peer */
+#endif
+#ifdef ENETUNREACH
+               if(errno == ENETUNREACH && verbosity < 2)
+                       return 0; /* silence it */
+#endif
+#ifdef EHOSTDOWN
+               if(errno == EHOSTDOWN && verbosity < 2)
+                       return 0; /* silence it */
+#endif
+#ifdef EHOSTUNREACH
+               if(errno == EHOSTUNREACH && verbosity < 2)
+                       return 0; /* silence it */
+#endif
+#ifdef ENETDOWN
+               if(errno == ENETDOWN && verbosity < 2)
+                       return 0; /* silence it */
+#endif
+#ifdef EACCES
+               if(errno == EACCES && verbosity < 2)
+                       return 0; /* silence it */
+#endif
+#ifdef ENOTCONN
+               if(errno == ENOTCONN) {
+                       log_err_addr("read (in tcp s) failed and this "
+                               "could be because TCP Fast Open is "
+                               "enabled [--disable-tfo-client "
+                               "--disable-tfo-server] but does not "
+                               "work", sock_strerror(errno),
+                               &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
+                       return 0;
+               }
+#endif
+       }
+#else /* USE_WINSOCK */
+       if(recv_initial) {
+               if(WSAGetLastError() == WSAECONNREFUSED && verbosity < 2)
+                       return 0;
+               if(WSAGetLastError() == WSAEHOSTDOWN && verbosity < 2)
+                       return 0;
+               if(WSAGetLastError() == WSAEHOSTUNREACH && verbosity < 2)
+                       return 0;
+               if(WSAGetLastError() == WSAENETDOWN && verbosity < 2)
+                       return 0;
+               if(WSAGetLastError() == WSAENETUNREACH && verbosity < 2)
+                       return 0;
+       }
+       if(WSAGetLastError() == WSAECONNRESET)
+               return 0;
+       if(WSAGetLastError() == WSAEINPROGRESS)
+               return 1;
+       if(WSAGetLastError() == WSAEWOULDBLOCK) {
+               ub_winsock_tcp_wouldblock(c->ev->ev,
+                       UB_EV_READ);
+               return 1;
+       }
+#endif
+       log_err_addr("read (in tcp s)", sock_strerror(errno),
+               &c->repinfo.remote_addr, c->repinfo.remote_addrlen);
+       return 0;
 }
 
 /** 
@@ -1833,7 +2295,8 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c)
                        return 0; /* silence lots of chatter in the logs */
                 else if(error != 0) {
                        log_err_addr("tcp connect", strerror(error),
-                               &c->repinfo.addr, c->repinfo.addrlen);
+                               &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
 #else /* USE_WINSOCK */
                /* examine error */
                if(error == WSAEINPROGRESS)
@@ -1845,7 +2308,8 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c)
                        return 0;
                else if(error != 0) {
                        log_err_addr("tcp connect", wsa_strerror(error),
-                               &c->repinfo.addr, c->repinfo.addrlen);
+                               &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
 #endif /* USE_WINSOCK */
                        return 0;
                }
@@ -1877,8 +2341,8 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c)
                        iov[1].iov_len = sldns_buffer_limit(buffer);
                }
                log_assert(iov[0].iov_len > 0);
-               msg.msg_name = &c->repinfo.addr;
-               msg.msg_namelen = c->repinfo.addrlen;
+               msg.msg_name = &c->repinfo.remote_addr;
+               msg.msg_namelen = c->repinfo.remote_addrlen;
                msg.msg_iov = iov;
                msg.msg_iovlen = 2;
                r = sendmsg(fd, &msg, MSG_FASTOPEN);
@@ -1904,14 +2368,16 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c)
                                if(verbosity < 2)
                                        return 0; /* silence lots of chatter in the logs */
                                log_err_addr("tcp sendmsg", strerror(errno),
-                                       &c->repinfo.addr, c->repinfo.addrlen);
+                                       &c->repinfo.remote_addr,
+                                       c->repinfo.remote_addrlen);
                                return 0;
                        }
                        verbose(VERB_ALGO, "tcp sendmsg for fastopen failed (with %s), try normal connect", strerror(errno));
                        /* fallthrough to nonFASTOPEN
                         * (MSG_FASTOPEN on Linux 3 produces EPIPE)
                         * we need to perform connect() */
-                       if(connect(fd, (struct sockaddr *)&c->repinfo.addr, c->repinfo.addrlen) == -1) {
+                       if(connect(fd, (struct sockaddr *)&c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen) == -1) {
 #ifdef EINPROGRESS
                                if(errno == EINPROGRESS)
                                        return 1; /* wait until connect done*/
@@ -1922,9 +2388,12 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c)
                                        return 1; /* wait until connect done*/
 #endif
                                if(tcp_connect_errno_needs_log(
-                                       (struct sockaddr *)&c->repinfo.addr, c->repinfo.addrlen)) {
+                                       (struct sockaddr *)&c->repinfo.remote_addr,
+                                       c->repinfo.remote_addrlen)) {
                                        log_err_addr("outgoing tcp: connect after EPIPE for fastopen",
-                                               strerror(errno), &c->repinfo.addr, c->repinfo.addrlen);
+                                               strerror(errno),
+                                               &c->repinfo.remote_addr,
+                                               c->repinfo.remote_addrlen);
                                }
                                return 0;
                        }
@@ -1989,10 +2458,12 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c)
 #endif
 #  ifdef HAVE_WRITEV
                        log_err_addr("tcp writev", strerror(errno),
-                               &c->repinfo.addr, c->repinfo.addrlen);
+                               &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
 #  else /* HAVE_WRITEV */
                        log_err_addr("tcp send s", strerror(errno),
-                               &c->repinfo.addr, c->repinfo.addrlen);
+                               &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
 #  endif /* HAVE_WRITEV */
 #else
                        if(WSAGetLastError() == WSAENOTCONN)
@@ -2008,7 +2479,8 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c)
                                return 0; /* silence reset by peer */
                        log_err_addr("tcp send s",
                                wsa_strerror(WSAGetLastError()),
-                               &c->repinfo.addr, c->repinfo.addrlen);
+                               &c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen);
 #endif
                        return 0;
                }
@@ -2056,7 +2528,8 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c)
                        return 0; /* silence reset by peer */
 #endif
                log_err_addr("tcp send r", sock_strerror(errno),
-                       &c->repinfo.addr, c->repinfo.addrlen);
+                       &c->repinfo.remote_addr,
+                       c->repinfo.remote_addrlen);
                return 0;
        }
        if(c->tcp_write_and_read) {
@@ -2302,7 +2775,7 @@ http_read_more(int fd, struct comm_point* c)
        ssize_t r;
        log_assert(sldns_buffer_remaining(c->buffer) > 0);
        r = recv(fd, (void*)sldns_buffer_current(c->buffer), 
-               sldns_buffer_remaining(c->buffer), 0);
+               sldns_buffer_remaining(c->buffer), MSG_DONTWAIT);
        if(r == 0) {
                return 0;
        } else if(r == -1) {
@@ -2320,7 +2793,7 @@ http_read_more(int fd, struct comm_point* c)
                }
 #endif
                log_err_addr("read (in http r)", sock_strerror(errno),
-                       &c->repinfo.addr, c->repinfo.addrlen);
+                       &c->repinfo.remote_addr, c->repinfo.remote_addrlen);
                return 0;
        }
        verbose(VERB_ALGO, "http read more skip to %d + %d",
@@ -2740,7 +3213,7 @@ ssize_t http2_recv_cb(nghttp2_session* ATTR_UNUSED(session), uint8_t* buf,
        }
 #endif /* HAVE_SSL */
 
-       ret = recv(h2_session->c->fd, buf, len, 0);
+       ret = recv(h2_session->c->fd, buf, len, MSG_DONTWAIT);
        if(ret == 0) {
                return NGHTTP2_ERR_EOF;
        } else if(ret < 0) {
@@ -2752,8 +3225,8 @@ ssize_t http2_recv_cb(nghttp2_session* ATTR_UNUSED(session), uint8_t* buf,
                        return NGHTTP2_ERR_CALLBACK_FAILURE;
 #endif
                log_err_addr("could not http2 recv: %s", strerror(errno),
-                       &h2_session->c->repinfo.addr,
-                       h2_session->c->repinfo.addrlen);
+                       &h2_session->c->repinfo.remote_addr,
+                       h2_session->c->repinfo.remote_addrlen);
 #else /* USE_WINSOCK */
                if(WSAGetLastError() == WSAECONNRESET)
                        return NGHTTP2_ERR_CALLBACK_FAILURE;
@@ -2766,8 +3239,8 @@ ssize_t http2_recv_cb(nghttp2_session* ATTR_UNUSED(session), uint8_t* buf,
                }
                log_err_addr("could not http2 recv: %s",
                        wsa_strerror(WSAGetLastError()),
-                       &h2_session->c->repinfo.addr,
-                       h2_session->c->repinfo.addrlen);
+                       &h2_session->c->repinfo.remote_addr,
+                       h2_session->c->repinfo.remote_addrlen);
 #endif
                return NGHTTP2_ERR_CALLBACK_FAILURE;
        }
@@ -2789,8 +3262,8 @@ comm_point_http2_handle_read(int ATTR_UNUSED(fd), struct comm_point* c)
                if(ret != NGHTTP2_ERR_EOF &&
                        ret != NGHTTP2_ERR_CALLBACK_FAILURE) {
                        char a[256];
-                       addr_to_str(&c->repinfo.addr, c->repinfo.addrlen,
-                               a, sizeof(a));
+                       addr_to_str(&c->repinfo.remote_addr,
+                               c->repinfo.remote_addrlen, a, sizeof(a));
                        verbose(VERB_QUERY, "http2: session_recv from %s failed, "
                                "error: %s", a, nghttp2_strerror(ret));
                }
@@ -2938,7 +3411,7 @@ http_check_connect(int fd, struct comm_point* c)
                return 0; /* silence lots of chatter in the logs */
        else if(error != 0) {
                log_err_addr("http connect", strerror(error),
-                       &c->repinfo.addr, c->repinfo.addrlen);
+                       &c->repinfo.remote_addr, c->repinfo.remote_addrlen);
 #else /* USE_WINSOCK */
        /* examine error */
        if(error == WSAEINPROGRESS)
@@ -2950,7 +3423,7 @@ http_check_connect(int fd, struct comm_point* c)
                return 0;
        else if(error != 0) {
                log_err_addr("http connect", wsa_strerror(error),
-                       &c->repinfo.addr, c->repinfo.addrlen);
+                       &c->repinfo.remote_addr, c->repinfo.remote_addrlen);
 #endif /* USE_WINSOCK */
                return 0;
        }
@@ -3020,7 +3493,7 @@ http_write_more(int fd, struct comm_point* c)
                }
 #endif
                log_err_addr("http send r", sock_strerror(errno),
-                       &c->repinfo.addr, c->repinfo.addrlen);
+                       &c->repinfo.remote_addr, c->repinfo.remote_addrlen);
                return 0;
        }
        sldns_buffer_skip(c->buffer, r);
@@ -3084,8 +3557,8 @@ ssize_t http2_send_cb(nghttp2_session* ATTR_UNUSED(session), const uint8_t* buf,
                        return NGHTTP2_ERR_CALLBACK_FAILURE;
 #endif
                log_err_addr("could not http2 write: %s", strerror(errno),
-                       &h2_session->c->repinfo.addr,
-                       h2_session->c->repinfo.addrlen);
+                       &h2_session->c->repinfo.remote_addr,
+                       h2_session->c->repinfo.remote_addrlen);
 #else /* USE_WINSOCK */
                if(WSAGetLastError() == WSAENOTCONN)
                        return NGHTTP2_ERR_WOULDBLOCK;
@@ -3100,8 +3573,8 @@ ssize_t http2_send_cb(nghttp2_session* ATTR_UNUSED(session), const uint8_t* buf,
                        return NGHTTP2_ERR_CALLBACK_FAILURE;
                log_err_addr("could not http2 write: %s",
                        wsa_strerror(WSAGetLastError()),
-                       &h2_session->c->repinfo.addr,
-                       h2_session->c->repinfo.addrlen);
+                       &h2_session->c->repinfo.remote_addr,
+                       h2_session->c->repinfo.remote_addrlen);
 #endif
                return NGHTTP2_ERR_CALLBACK_FAILURE;
        }
@@ -3281,7 +3754,8 @@ void comm_point_raw_handle_callback(int ATTR_UNUSED(fd),
 
 struct comm_point* 
 comm_point_create_udp(struct comm_base *base, int fd, sldns_buffer* buffer,
-       comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket)
+       int pp2_enabled, comm_point_callback_type* callback,
+       void* callback_arg, struct unbound_socket* socket)
 {
        struct comm_point* c = (struct comm_point*)calloc(1,
                sizeof(struct comm_point));
@@ -3321,6 +3795,8 @@ comm_point_create_udp(struct comm_base *base, int fd, sldns_buffer* buffer,
        c->callback = callback;
        c->cb_arg = callback_arg;
        c->socket = socket;
+       c->pp2_enabled = pp2_enabled;
+       c->pp2_header_state = pp2_header_none;
        evbits = UB_EV_READ | UB_EV_PERSIST;
        /* ub_event stuff */
        c->ev->ev = ub_event_new(base->eb->base, c->fd, evbits,
@@ -3340,8 +3816,8 @@ comm_point_create_udp(struct comm_base *base, int fd, sldns_buffer* buffer,
 }
 
 struct comm_point* 
-comm_point_create_udp_ancil(struct comm_base *base, int fd, 
-       sldns_buffer* buffer, 
+comm_point_create_udp_ancil(struct comm_base *base, int fd,
+       sldns_buffer* buffer, int pp2_enabled,
        comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket)
 {
        struct comm_point* c = (struct comm_point*)calloc(1,
@@ -3382,6 +3858,8 @@ comm_point_create_udp_ancil(struct comm_base *base, int fd,
        c->callback = callback;
        c->cb_arg = callback_arg;
        c->socket = socket;
+       c->pp2_enabled = pp2_enabled;
+       c->pp2_header_state = pp2_header_none;
        evbits = UB_EV_READ | UB_EV_PERSIST;
        /* ub_event stuff */
        c->ev->ev = ub_event_new(base->eb->base, c->fd, evbits,
@@ -3461,6 +3939,8 @@ comm_point_create_tcp_handler(struct comm_base *base,
        c->callback = callback;
        c->cb_arg = callback_arg;
        c->socket = socket;
+       c->pp2_enabled = parent->pp2_enabled;
+       c->pp2_header_state = pp2_header_none;
        if(spoolbuf) {
                c->tcp_req_info = tcp_req_info_create(spoolbuf);
                if(!c->tcp_req_info) {
@@ -3556,6 +4036,8 @@ comm_point_create_http_handler(struct comm_base *base,
        c->callback = callback;
        c->cb_arg = callback_arg;
        c->socket = socket;
+       c->pp2_enabled = 0;
+       c->pp2_header_state = pp2_header_none;
 
        c->http_min_version = http_version_2;
        c->http2_stream_max_qbuffer_size = bufsize;
@@ -3620,7 +4102,8 @@ comm_point_create_tcp(struct comm_base *base, int fd, int num,
        uint32_t http_max_streams, char* http_endpoint,
        struct tcl_list* tcp_conn_limit, size_t bufsize,
        struct sldns_buffer* spoolbuf, enum listen_type port_type,
-       comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket)
+       int pp2_enabled, comm_point_callback_type* callback,
+       void* callback_arg, struct unbound_socket* socket)
 {
        struct comm_point* c = (struct comm_point*)calloc(1,
                sizeof(struct comm_point));
@@ -3671,6 +4154,8 @@ comm_point_create_tcp(struct comm_base *base, int fd, int num,
        c->callback = NULL;
        c->cb_arg = NULL;
        c->socket = socket;
+       c->pp2_enabled = (port_type==listen_type_http?0:pp2_enabled);
+       c->pp2_header_state = pp2_header_none;
        evbits = UB_EV_READ | UB_EV_PERSIST;
        /* ub_event stuff */
        c->ev->ev = ub_event_new(base->eb->base, c->fd, evbits,
@@ -3763,6 +4248,8 @@ comm_point_create_tcp_out(struct comm_base *base, size_t bufsize,
        c->repinfo.c = c;
        c->callback = callback;
        c->cb_arg = callback_arg;
+       c->pp2_enabled = 0;
+       c->pp2_header_state = pp2_header_none;
        evbits = UB_EV_PERSIST | UB_EV_WRITE;
        c->ev->ev = ub_event_new(base->eb->base, c->fd, evbits,
                comm_point_tcp_handle_callback, c);
@@ -3829,6 +4316,8 @@ comm_point_create_http_out(struct comm_base *base, size_t bufsize,
        c->repinfo.c = c;
        c->callback = callback;
        c->cb_arg = callback_arg;
+       c->pp2_enabled = 0;
+       c->pp2_header_state = pp2_header_none;
        evbits = UB_EV_PERSIST | UB_EV_WRITE;
        c->ev->ev = ub_event_new(base->eb->base, c->fd, evbits,
                comm_point_http_handle_callback, c);
@@ -3892,6 +4381,8 @@ comm_point_create_local(struct comm_base *base, int fd, size_t bufsize,
 #endif
        c->callback = callback;
        c->cb_arg = callback_arg;
+       c->pp2_enabled = 0;
+       c->pp2_header_state = pp2_header_none;
        /* ub_event stuff */
        evbits = UB_EV_PERSIST | UB_EV_READ;
        c->ev->ev = ub_event_new(base->eb->base, c->fd, evbits,
@@ -3953,6 +4444,8 @@ comm_point_create_raw(struct comm_base* base, int fd, int writing,
 #endif
        c->callback = callback;
        c->cb_arg = callback_arg;
+       c->pp2_enabled = 0;
+       c->pp2_header_state = pp2_header_none;
        /* ub_event stuff */
        if(writing)
                evbits = UB_EV_PERSIST | UB_EV_WRITE;
@@ -4068,20 +4561,21 @@ comm_point_send_reply(struct comm_reply *repinfo)
 #endif
        if(repinfo->c->type == comm_udp) {
                if(repinfo->srctype)
-                       comm_point_send_udp_msg_if(repinfo->c, 
-                       buffer, (struct sockaddr*)&repinfo->addr, 
-                       repinfo->addrlen, repinfo);
+                       comm_point_send_udp_msg_if(repinfo->c, buffer,
+                               (struct sockaddr*)&repinfo->remote_addr,
+                               repinfo->remote_addrlen, repinfo);
                else
                        comm_point_send_udp_msg(repinfo->c, buffer,
-                       (struct sockaddr*)&repinfo->addr, repinfo->addrlen, 0);
+                               (struct sockaddr*)&repinfo->remote_addr,
+                               repinfo->remote_addrlen, 0);
 #ifdef USE_DNSTAP
                /*
                 * sending src (client)/dst (local service) addresses over DNSTAP from udp callback
                 */
                if(repinfo->c->dtenv != NULL && repinfo->c->dtenv->log_client_response_messages) {
                        log_addr(VERB_ALGO, "from local addr", (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->socket->addr->ai_addrlen);
-                       log_addr(VERB_ALGO, "response to client", &repinfo->addr, repinfo->addrlen);
-                       dt_msg_send_client_response(repinfo->c->dtenv, &repinfo->addr, (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->type, repinfo->c->buffer);
+                       log_addr(VERB_ALGO, "response to client", &repinfo->client_addr, repinfo->client_addrlen);
+                       dt_msg_send_client_response(repinfo->c->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->type, repinfo->c->buffer);
                }
 #endif
        } else {
@@ -4091,8 +4585,8 @@ comm_point_send_reply(struct comm_reply *repinfo)
                 */
                if(repinfo->c->tcp_parent->dtenv != NULL && repinfo->c->tcp_parent->dtenv->log_client_response_messages) {
                        log_addr(VERB_ALGO, "from local addr", (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->socket->addr->ai_addrlen);
-                       log_addr(VERB_ALGO, "response to client", &repinfo->addr, repinfo->addrlen);
-                       dt_msg_send_client_response(repinfo->c->tcp_parent->dtenv, &repinfo->addr, (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->type,
+                       log_addr(VERB_ALGO, "response to client", &repinfo->client_addr, repinfo->client_addrlen);
+                       dt_msg_send_client_response(repinfo->c->tcp_parent->dtenv, &repinfo->client_addr, (void*)repinfo->c->socket->addr->ai_addr, repinfo->c->type,
                                ( repinfo->c->tcp_req_info? repinfo->c->tcp_req_info->spool_buffer: repinfo->c->buffer ));
                }
 #endif
index 9f4d28b..3e7849c 100644 (file)
@@ -102,6 +102,8 @@ typedef int comm_point_callback_type(struct comm_point*, void*, int,
 
 /** timeout to slow accept calls when not possible, in msec. */
 #define NETEVENT_SLOW_ACCEPT_TIME 2000
+/** timeout to slow down log print, so it does not spam the logs, in sec */
+#define SLOW_LOG_TIME 10
 
 /**
  * A communication point dispatcher. Thread specific.
@@ -126,10 +128,11 @@ struct comm_reply {
        /** the comm_point with fd to send reply on to. */
        struct comm_point* c;
        /** the address (for UDP based communication) */
-       struct sockaddr_storage addr;
+       struct sockaddr_storage remote_addr;
        /** length of address */
-       socklen_t addrlen;
-       /** return type 0 (none), 4(IP4), 6(IP6) */
+       socklen_t remote_addrlen;
+       /** return type 0 (none), 4(IP4), 6(IP6)
+        *  used only with listen_type_udp_ancil* */
        int srctype;
        /* DnsCrypt context */
 #ifdef USE_DNSCRYPT
@@ -153,6 +156,13 @@ struct comm_reply {
                pktinfo;
        /** max udp size for udp packets */
        size_t max_udp_size;
+       /* if set, the request came through a proxy */
+       int is_proxied;
+       /** the client address
+        *  the same as remote_addr if not proxied */
+       struct sockaddr_storage client_addr;
+       /** the original address length */
+       socklen_t client_addrlen;
 };
 
 /** 
@@ -276,6 +286,19 @@ struct comm_point {
                /** variable with type of socket, UDP,TCP-accept,TCP,pipe */
                type;
 
+       /* -------- PROXYv2 ------- */
+       /** if set, PROXYv2 is expected on this connection */
+       int pp2_enabled;
+       /** header state for the PROXYv2 header (for TCP) */
+       enum {
+               /** no header encounter yet */
+               pp2_header_none = 0,
+               /** read the static part of the header */
+               pp2_header_init,
+               /** read the full header */
+               pp2_header_done
+       } pp2_header_state;
+
        /* ---------- Behaviour ----------- */
        /** if set the connection is NOT closed on delete. */
        int do_not_close;
@@ -494,8 +517,9 @@ struct ub_event_base* comm_base_internal(struct comm_base* b);
  * Create an UDP comm point. Calls malloc.
  * setups the structure with the parameters you provide.
  * @param base: in which base to alloc the commpoint.
- * @param fd : file descriptor of open UDP socket.
+ * @param fd: file descriptor of open UDP socket.
  * @param buffer: shared buffer by UDP sockets from this thread.
+ * @param pp2_enabled: if the comm point will support PROXYv2.
  * @param callback: callback function pointer.
  * @param callback_arg: will be passed to your callback function.
  * @param socket: and opened socket properties will be passed to your callback function.
@@ -503,7 +527,7 @@ struct ub_event_base* comm_base_internal(struct comm_base* b);
  * Sets timeout to NULL. Turns off TCP options.
  */
 struct comm_point* comm_point_create_udp(struct comm_base* base,
-       int fd, struct sldns_buffer* buffer, 
+       int fd, struct sldns_buffer* buffer, int pp2_enabled,
        comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket);
 
 /**
@@ -511,8 +535,9 @@ struct comm_point* comm_point_create_udp(struct comm_base* base,
  * Uses recvmsg instead of recv to get udp message.
  * setups the structure with the parameters you provide.
  * @param base: in which base to alloc the commpoint.
- * @param fd : file descriptor of open UDP socket.
+ * @param fd: file descriptor of open UDP socket.
  * @param buffer: shared buffer by UDP sockets from this thread.
+ * @param pp2_enabled: if the comm point will support PROXYv2.
  * @param callback: callback function pointer.
  * @param callback_arg: will be passed to your callback function.
  * @param socket: and opened socket properties will be passed to your callback function.
@@ -520,7 +545,7 @@ struct comm_point* comm_point_create_udp(struct comm_base* base,
  * Sets timeout to NULL. Turns off TCP options.
  */
 struct comm_point* comm_point_create_udp_ancil(struct comm_base* base,
-       int fd, struct sldns_buffer* buffer, 
+       int fd, struct sldns_buffer* buffer, int pp2_enabled,
        comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket);
 
 /**
@@ -542,6 +567,7 @@ struct comm_point* comm_point_create_udp_ancil(struct comm_base* base,
  *     or NULL to not create those structures in the tcp handlers.
  * @param port_type: the type of port we are creating a TCP listener for. Used
  *     to select handler type to use.
+ * @param pp2_enabled: if the comm point will support PROXYv2.
  * @param callback: callback function pointer for TCP handlers.
  * @param callback_arg: will be passed to your callback function.
  * @param socket: and opened socket properties will be passed to your callback function.
@@ -555,7 +581,7 @@ struct comm_point* comm_point_create_tcp(struct comm_base* base,
        uint32_t http_max_streams, char* http_endpoint,
        struct tcl_list* tcp_conn_limit,
        size_t bufsize, struct sldns_buffer* spoolbuf,
-       enum listen_type port_type,
+       enum listen_type port_type, int pp2_enabled,
        comm_point_callback_type* callback, void* callback_arg, struct unbound_socket* socket);
 
 /**
index f883044..eef393f 100644 (file)
@@ -71,6 +71,14 @@ int addr_tree_compare(const void* k1, const void* k2)
         return 0;
 }
 
+int addr_tree_addrport_compare(const void* k1, const void* k2)
+{
+       struct addr_tree_node* n1 = (struct addr_tree_node*)k1;
+       struct addr_tree_node* n2 = (struct addr_tree_node*)k2;
+       return sockaddr_cmp(&n1->addr, n1->addrlen, &n2->addr,
+               n2->addrlen);
+}
+
 void name_tree_init(rbtree_type* tree)
 {
        rbtree_init(tree, &name_tree_compare);
@@ -81,6 +89,11 @@ void addr_tree_init(rbtree_type* tree)
        rbtree_init(tree, &addr_tree_compare);
 }
 
+void addr_tree_addrport_init(rbtree_type* tree)
+{
+       rbtree_init(tree, &addr_tree_addrport_compare);
+}
+
 int name_tree_insert(rbtree_type* tree, struct name_tree_node* node, 
         uint8_t* name, size_t len, int labs, uint16_t dclass)
 {
index d54602f..8aaa940 100644 (file)
@@ -153,6 +153,13 @@ int name_tree_next_root(rbtree_type* tree, uint16_t* dclass);
  */
 void addr_tree_init(rbtree_type* tree);
 
+/**
+ * Init addr tree to be empty.
+ * The comparison function to be used is addr_tree_addrport_compare.
+ * @param tree: to init.
+ */
+void addr_tree_addrport_init(rbtree_type* tree);
+
 /**
  * insert element into addr tree.
  * @param tree: addr tree
@@ -207,4 +214,7 @@ int name_tree_compare(const void* k1, const void* k2);
 /** compare addr tree nodes */
 int addr_tree_compare(const void* k1, const void* k2);
 
+/** compare addr tree nodes (address and port only) */
+int addr_tree_addrport_compare(const void* k1, const void* k2);
+
 #endif /* UTIL_STORAGE_DNSTREE_H */
index 40556e7..43455fe 100644 (file)
@@ -424,6 +424,28 @@ int tube_wait(struct tube* tube)
        return pollit(tube->sr, NULL);
 }
 
+int tube_wait_timeout(struct tube* tube, int msec)
+{
+       struct timeval t;
+       int fd = tube->sr;
+       fd_set r;
+       t.tv_sec = msec/1000;
+       t.tv_usec = (msec%1000)*1000;
+#ifndef S_SPLINT_S
+       FD_ZERO(&r);
+       FD_SET(FD_SET_T fd, &r);
+#endif
+       while(1) {
+               if(select(fd+1, &r, NULL, NULL, &t) == -1) {
+                       if(errno == EAGAIN || errno == EINTR)
+                               continue;
+                       return -1;
+               }
+               break;
+       }
+       return (int)(FD_ISSET(fd, &r));
+}
+
 int tube_read_fd(struct tube* tube)
 {
        return tube->sr;
@@ -649,6 +671,26 @@ int tube_wait(struct tube* tube)
        return 1;
 }
 
+int tube_wait_timeout(struct tube* tube, int msec)
+{
+       /* block on eventhandle */
+       DWORD res = WSAWaitForMultipleEvents(
+               1 /* one event in array */,
+               &tube->event /* the event to wait for, our pipe signal */,
+               0 /* wait for all events is false */,
+               msec /* wait for timeout */,
+               0 /* we are not alertable for IO completion routines */
+               );
+       if(res == WSA_WAIT_TIMEOUT) {
+               return 0;
+       }
+       if(res == WSA_WAIT_IO_COMPLETION) {
+               /* a bit unexpected, since we were not alertable */
+               return -1;
+       }
+       return 1;
+}
+
 int tube_read_fd(struct tube* ATTR_UNUSED(tube))
 {
        /* nothing sensible on Windows */
index 5b1fdb8..5e4fb86 100644 (file)
@@ -204,6 +204,14 @@ int tube_poll(struct tube* tube);
  */
 int tube_wait(struct tube* tube);
 
+/**
+ * Wait for data to be ready with a timeout.
+ * @param tube: the tube to wait on.
+ * @param msec: timeout in milliseconds.
+ * @return 1 if there is something to read within timeout, readability.
+ *     0 on a timeout. On failures -1, like errors. */
+int tube_wait_timeout(struct tube* tube, int msec);
+
 /**
  * Get FD that is readable when new information arrives.
  * @param tube