]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Resolve the overlinking of the system libraries
authorOndřej Surý <ondrej@sury.org>
Tue, 28 Apr 2020 09:24:34 +0000 (11:24 +0200)
committerOndřej Surý <ondrej@isc.org>
Mon, 11 May 2020 07:49:54 +0000 (09:49 +0200)
Originally, every library and binaries got linked to everything, which
creates unnecessary overlinking.  This wasn't as straightforward as it
should be as we still support configuration without libtool for 9.16.

Couple of smaller issues related to include headers and an issue where
sanitizer overload dlopen and dlclose symbols, so we were getting false
negatives in the autoconf test.

50 files changed:
bin/check/Makefile.in
bin/confgen/Makefile.in
bin/delv/Makefile.in
bin/dig/Makefile.in
bin/dnssec/Makefile.in
bin/named/Makefile.in
bin/named/server.c
bin/nsupdate/Makefile.in
bin/pkcs11/Makefile.in
bin/plugins/Makefile.in
bin/rndc/Makefile.in
bin/tests/Makefile.in
bin/tests/optional/Makefile.in
bin/tests/pkcs11/Makefile.in
bin/tests/pkcs11/benchmarks/Makefile.in
bin/tests/system/Makefile.in
bin/tests/system/dyndb/driver/Makefile.in
bin/tests/system/pipelined/Makefile.in
bin/tests/system/rndc/Makefile.in
bin/tests/system/rpz/Makefile.in
bin/tests/system/rsabigexponent/Makefile.in
bin/tests/system/tkey/Makefile.in
bin/tools/Makefile.in
bin/tools/named-nzd2nzf.c
configure
configure.ac
contrib/dlz/bin/dlzbdb/Makefile.in
fuzz/Makefile.in
lib/bind9/Makefile.in
lib/dns/Makefile.in
lib/dns/include/dns/Makefile.in
lib/dns/include/dns/lmdb.h [new file with mode: 0644]
lib/dns/include/dns/view.h
lib/dns/tests/Makefile.in
lib/dns/view.c
lib/irs/Makefile.in
lib/irs/tests/Makefile.in
lib/isc/Makefile.in
lib/isc/netmgr/Makefile.in
lib/isc/tests/Makefile.in
lib/isccc/Makefile.in
lib/isccc/tests/Makefile.in
lib/isccfg/Makefile.in
lib/isccfg/tests/Makefile.in
lib/ns/Makefile.in
lib/ns/tests/Makefile.in
lib/samples/Makefile.in
make/includes.in
make/rules.in
util/copyrights

index c7f2f0f26d84380b64e789f097d1dc28aaa4df1d..8d97d99cecab11562a5d0b3e32e1b045fdd28cf3 100644 (file)
@@ -22,10 +22,10 @@ CINCLUDES = ${NS_INCLUDES} ${BIND9_INCLUDES} ${DNS_INCLUDES} ${ISCCFG_INCLUDES}
 CDEFINES =     -DNAMED_CONFFILE=\"${sysconfdir}/named.conf\"
 CWARNINGS =
 
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
 NSLIBS =       ../../lib/ns/libns.@A@
 
index c03183b1456f51247e5e5b788041dba1dd252ada..fbeccbe9b9bf4e8d7fa8e9c1ba24ff08ea71636e 100644 (file)
@@ -27,9 +27,9 @@ CWARNINGS =
 
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 ISCCCLIBS =    ../../lib/isccc/libisccc.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
 
 ISCCFGDEPLIBS =        ../../lib/isccfg/libisccfg.@A@
index 06743061b28c0dd7a18c9513eed42eb0b78f8619..14e2623f64dbb9a57edd4923393685f3309d3aef 100644 (file)
@@ -24,9 +24,9 @@ CDEFINES =    -DVERSION=\"${VERSION}\" \
 CWARNINGS =
 
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 IRSLIBS =      ../../lib/irs/libirs.@A@
 
 ISCCFGDEPLIBS =        ../../lib/isccfg/libisccfg.@A@
index f5f604c8dbf39e00ec424b7da6278997963e9e13..c5752e508495281c8bbb0fa345d5f5a8ab93f0a9 100644 (file)
@@ -26,10 +26,10 @@ CDEFINES =  -DVERSION=\"${VERSION}\"
 CWARNINGS =
 
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
 IRSLIBS =      ../../lib/irs/libirs.@A@
 
 ISCCFGDEPLIBS =        ../../lib/isccfg/libisccfg.@A@
index 05fdb55df736acadb3bd76001433f0f15665d102..e6c8a9907b362e9264088b2b35e744f67bfaa0a1 100644 (file)
@@ -21,10 +21,10 @@ CINCLUDES = ${DNS_INCLUDES} ${ISC_INCLUDES} ${ISCCFG_INCLUDES} \
 CDEFINES =     -DVERSION=\"${VERSION}\" -DNAMED_CONFFILE=\"${sysconfdir}/named.conf\"
 CWARNINGS =
 
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
 
 DNSDEPLIBS =   ../../lib/dns/libdns.@A@
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
index f66bc9a6e2ebf01a7dd02b2ab9384448cf0c3e2d..ba842283cc4d0501431899451394d05104392278 100644 (file)
@@ -47,21 +47,22 @@ CINCLUDES = -I${srcdir}/include -I${srcdir}/unix/include -I. \
                ${BIND9_INCLUDES} ${ISCCFG_INCLUDES} ${ISCCC_INCLUDES} \
                ${ISC_INCLUDES} ${DLZDRIVER_INCLUDES} \
                ${DBDRIVER_INCLUDES} \
+               ${FSTRM_CFLAGS} \
                ${OPENSSL_CFLAGS} \
+               ${PROTOBUF_C_CFLAGS} \
                ${JSON_C_CFLAGS} \
                ${LIBXML2_CFLAGS} \
-               ${MAXMINDDB_CFLAGS} \
-               ${ZLIB_CFLAGS}
+               ${MAXMINDDB_CFLAGS}
 
 CDEFINES =      @CONTRIB_DLZ@
 
 CWARNINGS =
 
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 ISCCCLIBS =    ../../lib/isccc/libisccc.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
 NSLIBS =       ../../lib/ns/libns.@A@
 
@@ -78,11 +79,14 @@ DEPLIBS =   ${NSDEPLIBS} ${DNSDEPLIBS} ${BIND9DEPLIBS} \
 LIBS =         ${NSLIBS} ${DNSLIBS} ${BIND9LIBS} \
                ${ISCCFGLIBS} ${ISCCCLIBS} ${ISCLIBS} \
                ${DLZDRIVER_LIBS} ${DBDRIVER_LIBS} @LIBCAP_LIBS@ \
-               @LIBS@
+               ${FSTRM_LIBS} ${PROTOBUF_C_LIBS} ${LMDB_LIBS} ${ZLIB_LIBS} \
+               ${JSON_C_LIBS} ${LIBXML2_LIBS} ${MAXMINDDB_LIBS} \
+               ${OPENSSL_LIBS} @LIBS@
 
 NOSYMLIBS =    ${NSLIBS} ${DNSLIBS} ${BIND9LIBS} \
                ${ISCCFGLIBS} ${ISCCCLIBS} ${ISCNOSYMLIBS} \
                ${DLZDRIVER_LIBS} ${DBDRIVER_LIBS} @LIBCAP_LIBS@ \
+               ${FSTRM_LIBS} ${PROTOBUF_C_LIBS} ${LMDB_LIBS} ${ZLIB_LIBS} \
                @LIBS@
 
 SUBDIRS =      unix
index 119dde556d73a49de2837a7350d1eeb2e551d374..5ef496c988d4799711a60bf4b7e205dee29a527d 100644 (file)
 #endif /* ifdef HAVE_LIBSCF */
 
 #ifdef HAVE_LMDB
-#include <lmdb.h>
+#include <dns/lmdb.h>
 #define count_newzones    count_newzones_db
 #define configure_newzones configure_newzones_db
 #define dumpzone          dumpzone_db
index a4b99bddc7ae9587c18baa7db80d002560ffccfd..30c22c00f1960c8199edbddd1903847a1d872a9d 100644 (file)
@@ -26,10 +26,10 @@ CINCLUDES = ${DNS_INCLUDES} ${BIND9_INCLUDES} ${ISC_INCLUDES} \
 CDEFINES =     -DVERSION=\"${VERSION}\" @USE_GSSAPI@
 CWARNINGS =
 
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 IRSLIBS =      ../../lib/irs/libirs.@A@
 
@@ -43,7 +43,8 @@ DEPLIBS =     ${DNSDEPLIBS} ${IRSDEPLIBS} ${BIND9DEPLIBS} \
                ${ISCDEPLIBS} ${ISCCFGDEPLIBS}
 
 LIBS =         ${DNSLIBS} ${IRSLIBS} ${BIND9LIBS} \
-               ${ISCCFGLIBS} ${ISCLIBS} @LIBS@
+               ${ISCCFGLIBS} ${ISCLIBS} ${GSSAPI_LIBS} \
+               @LIBS@
 
 NOSYMLIBS =    ${DNSLIBS} ${IRSLIBS} ${BIND9LIBS} \
                ${ISCCFGLIBS} ${ISCNOSYMLIBS} @LIBS@
index c5912770e0fa199abdc3fbce8a0d697caededc58..039d5386f098baed000ebd461124c8312d022eca 100644 (file)
@@ -17,7 +17,7 @@ CINCLUDES =   ${ISC_INCLUDES}
 
 CDEFINES =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
 
index 92dc4f8ede5890072e60095cb59d63180dfed9b7..14a0b7590fbbce5f9cf78c324586571d14af2180 100644 (file)
@@ -17,9 +17,9 @@ CINCLUDES =   -I${srcdir}/include -I${srcdir}/unix/include -I. \
                ${NS_INCLUDES} ${DNS_INCLUDES} \
                ${ISCCFG_INCLUDES} ${ISC_INCLUDES}
 
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 NSLIBS =       ../../lib/ns/libns.@A@
 
 LIBS =
index c5abfa64784189327f72d5bf058d3b9df2e85d69..ae63d105b7b68c29118eed809238c8d60b625711 100644 (file)
@@ -23,9 +23,9 @@ CWARNINGS =
 
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 ISCCCLIBS =    ../../lib/isccc/libisccc.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
 
 ISCCFGDEPLIBS =        ../../lib/isccfg/libisccfg.@A@
index 63659531cb9957cf3cc3850d75b7f5c33a29985f..ab6a304da654f73038c58cec56667bbdc5ed46bc 100644 (file)
@@ -20,9 +20,9 @@ CDEFINES =
 CWARNINGS =
 BACKTRACECFLAGS = @BACKTRACECFLAGS@
 
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 
 DNSDEPLIBS =   ../../lib/dns/libdns.@A@
index 7533dd92512b6f3366c91feb7e09a4ad0e2bf4ec..389e45f30449932441d85f5dca1dae4dcf2e731f 100644 (file)
@@ -22,9 +22,9 @@ CWARNINGS =
 BACKTRACECFLAGS = @BACKTRACECFLAGS@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
 
-DNSLIBS =      ../../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCNOSYMLIBS = ../../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+DNSLIBS =      ../../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
+ISCLIBS =      ../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCNOSYMLIBS = ../../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCCFGLIBS =   ../../../lib/isccfg/libisccfg.@A@
 
 DNSDEPLIBS =   ../../../lib/dns/libdns.@A@
index 4c44d4a10d6d214ae1440d7200bb1f7e2e8f5073..f750b790d847e44bb43e9badf5cd762668390148 100644 (file)
@@ -16,7 +16,7 @@ top_srcdir =  @top_srcdir@
 CINCLUDES =    ${ISC_INCLUDES}
 CDEFINES =
 
-ISCLIBS =      ../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 LIBS =         ${ISCLIBS} @LIBS@
 
index 11ec4847b9432a8dafdfdcf055cd42e34296e2c9..40ef20f4869653ca7430ac424b3820da851b6b19 100644 (file)
@@ -16,7 +16,7 @@ top_srcdir =  @top_srcdir@
 CINCLUDES =    ${ISC_INCLUDES}
 CDEFINES =
 
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 LIBS =         ${ISCLIBS} @LIBS@
 
index 9574ee5abe613f66c36847f3d34c2a8b907e47d7..cf61a200ca83fbd4db393b2cedeca9a803810c39 100644 (file)
@@ -22,10 +22,8 @@ CINCLUDES =  ${ISC_INCLUDES} ${DNS_INCLUDES}
 CDEFINES =     @USE_GSSAPI@ @CONTRIB_DLZ@
 CWARNINGS =
 
-DNSLIBS =
-ISCLIBS =      ../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
-DNSDEPLIBS =
 ISCDEPLIBS =
 
 DEPLIBS =
index 044dfe0912025d56861d5cadd395fc5999eabcd8..36ec7b87838c6887dc9c21075c2efea0b673b6c1 100644 (file)
@@ -19,8 +19,8 @@ CINCLUDES =   ${DNS_INCLUDES} ${ISC_INCLUDES} \
 CDEFINES =
 CWARNINGS =
 
-DNSLIBS =      ../../../../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+DNSLIBS =      ../../../../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
+ISCLIBS =      ../../../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 DNSDEPLIBS =   ../../../../../lib/dns/libdns.@A@
 ISCDEPLIBS =   ../../../../../lib/isc/libisc.@A@
index 91d2beaa428f6dc23b9bbf68c979e7c902e01a11..0e62efec83d28f9380992b57e0a6b0aeb2ff28f3 100644 (file)
@@ -21,8 +21,8 @@ CINCLUDES =   ${DNS_INCLUDES} ${ISC_INCLUDES} \
 CDEFINES =
 CWARNINGS =
 
-DNSLIBS =      ../../../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+DNSLIBS =      ../../../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 DNSDEPLIBS =   ../../../../lib/dns/libdns.@A@
 ISCDEPLIBS =   ../../../../lib/isc/libisc.@A@
index 0410004ea189f9843ed0234e06255b6035b63555..60877d105dcf53bc38607ab7a4a1a818698b3a4c 100644 (file)
@@ -20,7 +20,7 @@ CINCLUDES =   ${ISC_INCLUDES}
 CDEFINES =
 CWARNINGS =
 
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 DNSDEPLIBS =
 ISCDEPLIBS =   ../../../../lib/isc/libisc.@A@
index 2d2cfac33bba3f0dd0aba98ef0cb907be54273bc..3768c2bc480481f891cf78d35a97c2c13d8e4e6f 100644 (file)
@@ -20,10 +20,8 @@ CINCLUDES =     ${ISC_INCLUDES} ${DNS_INCLUDES}
 CDEFINES =
 CWARNINGS =
 
-DNSLIBS =
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
-DNSDEPLIBS =
 ISCDEPLIBS =    ../../../../lib/isc/libisc.@A@
 
 DEPLIBS =      ${ISCDEPLIBS}
index f4f32d10876c653ed80c74d0a918e31bafb4086a..9a53ac39111df281c904072057ce7b7d5ae3e1a0 100644 (file)
@@ -21,15 +21,15 @@ CINCLUDES = ${DNS_INCLUDES} ${ISC_INCLUDES} \
 CDEFINES =
 CWARNINGS =
 
-DNSLIBS =      ../../../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+DNSLIBS =      ../../../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 DNSDEPLIBS =   ../../../../lib/dns/libdns.@A@
 ISCDEPLIBS =   ../../../../lib/isc/libisc.@A@
 
 DEPLIBS =      ${DNSDEPLIBS} ${ISCDEPLIBS}
 
-LIBS =         ${DNSLIBS} ${ISCLIBS} @LIBS@
+LIBS =         ${DNSLIBS} ${ISCLIBS} ${OPENSSL_LIBS} @LIBS@
 
 TARGETS =      bigkey@EXEEXT@
 
index 54cde006f1e57473169c7d2c2633140bb6fee396..6e92bb19f83dbe5144730013a78f73ba51e4f35d 100644 (file)
@@ -21,8 +21,8 @@ CINCLUDES =   ${DNS_INCLUDES} ${ISC_INCLUDES} \
 CDEFINES =
 CWARNINGS =
 
-DNSLIBS =      ../../../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+DNSLIBS =      ../../../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 DNSDEPLIBS =   ../../../../lib/dns/libdns.@A@
 ISCDEPLIBS =   ../../../../lib/isc/libisc.@A@
index 4ed360e4ea535ba8df8bad4bc603f8681c088fcb..a1510f847ca1ab70922055186407e3b744bdeae5 100644 (file)
@@ -18,15 +18,17 @@ VERSION=@BIND9_VERSION@
 CINCLUDES =    ${DNS_INCLUDES} ${ISC_INCLUDES} ${ISCCFG_INCLUDES} \
                ${BIND9_INCLUDES} \
                ${OPENSSL_CFLAGS} \
-               ${MAXMINDDB_CFLAGS}
+               ${PROTOBUF_C_CFLAGS} \
+               ${MAXMINDDB_CFLAGS} \
+               ${LMDB_CFLAGS}
 
 CDEFINES =     -DVERSION=\"${VERSION}\"
 CWARNINGS =
 
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 
 DNSDEPLIBS =   ../../lib/dns/libdns.@A@
@@ -90,12 +92,12 @@ mdig@EXEEXT@: mdig.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS} ${BIND9DEPLIBS}
 
 dnstap-read@EXEEXT@: dnstap-read.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
        export BASEOBJS="dnstap-read.@O@"; \
-       export LIBS0="${DNSLIBS}"; \
+       export LIBS0="${DNSLIBS} ${PROTOBUF_C_LIBS}"; \
        ${FINALBUILDCMD}
 
 named-nzd2nzf@EXEEXT@: named-nzd2nzf.@O@ ${NZDDEPLIBS}
        export BASEOBJS="named-nzd2nzf.@O@"; \
-       export LIBS0="${ISCCFGLIBS} ${ISCCCLIBS} ${BIND9LIBS} ${DNSLIBS}"; \
+       export LIBS0="${ISCCFGLIBS} ${ISCCCLIBS} ${BIND9LIBS} ${DNSLIBS} ${LMDB_LIBS}"; \
        ${FINALBUILDCMD}
 
 doc man:: ${MANOBJS}
index 98d3429b4ec0e3fa925269ab715758d573506b30..0d1c74430f7067463896d5a054f2b636441d1fb2 100644 (file)
 #error This program requires the LMDB library.
 #endif /* ifndef HAVE_LMDB */
 
-#include <lmdb.h>
 #include <stdio.h>
 #include <stdlib.h>
 
 #include <isc/print.h>
 
+#include <dns/lmdb.h>
 #include <dns/view.h>
 
 int
index b279ab9a757e6d8b64b609225457064a5ff9c609..ddf409339b7bf6cd60e8ff4e925122ee0ba4b632 100755 (executable)
--- a/configure
+++ b/configure
@@ -697,6 +697,10 @@ W3M
 DBLATEX
 PDFLATEX
 LATEX
+FSTRM_LIBS
+FSTRM_CFLAGS
+PROTOBUF_C_LIBS
+PROTOBUF_C_CFLAGS
 DNSTAPTARGETS
 DNSTAPOBJS
 DNSTAPSRCS
@@ -734,6 +738,8 @@ LIBXML2_CFLAGS
 NZDTARGETS
 NZDSRCS
 NZD_TOOLS
+LMDB_LIBS
+LMDB_CFLAGS
 DNS_CRYPTO_LIBS
 DNS_GSSAPI_LIBS
 DST_GSSAPI_INC
@@ -748,6 +754,8 @@ PKCS11_TOOLS
 PKCS11_TEST
 OPENSSL_LIBS
 OPENSSL_CFLAGS
+NO_LIBTOOL_DNSLIBS
+NO_LIBTOOL_ISCLIBS
 INSTALL_LIBRARY
 ALWAYS_DEFINES
 LIBUV_LIBS
@@ -15928,6 +15936,9 @@ $as_echo "yes" >&6; }
 fi
 
 
+
+
+
   CCASFLAGS_libuv_ax_save_flags=$CCASFLAGS
 
 
 
 
 
-
 CFLAGS="$CFLAGS $LIBUV_CFLAGS"
-LIBS="$LIBS $LIBUV_LIBS"
-
+LIBS="$LDFLAGS $LIBUV_LIBS"
 # Those functions are only provided in newer versions of libuv, we'll be emulating them
 # for now
 for ac_func in uv_handle_get_data uv_handle_set_data uv_import
 done
 
 
+  CCASFLAGS=$CCASFLAGS_libuv_ax_save_flags
+
+
+  CFLAGS=$CFLAGS_libuv_ax_save_flags
+
+
+  CPPFLAGS=$CPPFLAGS_libuv_ax_save_flags
+
+
+  CXXFLAGS=$CXXFLAGS_libuv_ax_save_flags
+
+
+  ERLCFLAGS=$ERLCFLAGS_libuv_ax_save_flags
+
+
+  FCFLAGS=$FCFLAGS_libuv_ax_save_flags
+
+
+  FCLIBS=$FCLIBS_libuv_ax_save_flags
+
+
+  FFLAGS=$FFLAGS_libuv_ax_save_flags
+
+
+  FLIBS=$FLIBS_libuv_ax_save_flags
+
+
+  GCJFLAGS=$GCJFLAGS_libuv_ax_save_flags
+
+
+  JAVACFLAGS=$JAVACFLAGS_libuv_ax_save_flags
+
+
+  LDFLAGS=$LDFLAGS_libuv_ax_save_flags
+
+
+  LIBS=$LIBS_libuv_ax_save_flags
+
+
+  OBJCFLAGS=$OBJCFLAGS_libuv_ax_save_flags
+
+
+  OBJCXXFLAGS=$OBJCXXFLAGS_libuv_ax_save_flags
+
+
+  UPCFLAGS=$UPCFLAGS_libuv_ax_save_flags
+
+
+  VALAFLAGS=$VALAFLAGS_libuv_ax_save_flags
+
+
+
+
 #
 # flockfile is usually provided by pthreads
 #
@@ -16058,7 +16120,8 @@ else
   use_libtool="no"
 fi
 
-
+NO_LIBTOOL_ISCLIBS=
+NO_LIBTOOL_DNSLIBS=
 case $use_libtool in
        yes)
                { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -16089,10 +16152,14 @@ $as_echo "no" >&6; }
                LIBTOOL_MODE_LINK=
                LIBTOOL_MODE_UNINSTALL=
                INSTALL_LIBRARY='${INSTALL_DATA}'
+               NO_LIBTOOL_ISCLIBS='${NO_LIBTOOL_ISCLIBS}'
+               NO_LIBTOOL_DNSLIBS='${NO_LIBTOOL_DNSLIBS}'
                ;;
 esac
 
 
+
+
 #
 # Do we want to use pthread rwlock?
 #
@@ -17636,7 +17703,7 @@ fi
 have_lmdb=""
 case "$use_lmdb" in
        no)
-               lmdb_libs=""
+               LMDB_LIBS=""
                ;;
        auto|yes)
                for d in /usr /usr/local /opt/local
@@ -17645,8 +17712,8 @@ case "$use_lmdb" in
                        then
                                if test ${d} != /usr
                                then
-                                       lmdb_cflags="-I ${d}/include"
-                                       LIBS="$LIBS -L${d}/lib"
+                                       LMDB_CFLAGS="-I ${d}/include"
+                                       LMDB_LIBS="-L${d}/lib"
                                fi
                                have_lmdb="yes"
                        fi
@@ -17655,8 +17722,8 @@ case "$use_lmdb" in
        *)
                if test -f "${use_lmdb}/include/lmdb.h"
                then
-                       lmdb_cflags="-I${use_lmdb}/include"
-                       LIBS="$LIBS -L${use_lmdb}/lib"
+                       LMDB_CFLAGS="-I${use_lmdb}/include"
+                       LMDB_LIBS="-L${use_lmdb}/lib"
                        have_lmdb="yes"
                else
                        as_fn_error $? "$use_lmdb/include/lmdb.h not found." "$LINENO" 5
@@ -17668,6 +17735,78 @@ if test "X${have_lmdb}" != "X"
 then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+
+
+  CCASFLAGS_lmdb_ax_save_flags=$CCASFLAGS
+
+
+
+  CFLAGS_lmdb_ax_save_flags=$CFLAGS
+
+
+
+  CPPFLAGS_lmdb_ax_save_flags=$CPPFLAGS
+
+
+
+  CXXFLAGS_lmdb_ax_save_flags=$CXXFLAGS
+
+
+
+  ERLCFLAGS_lmdb_ax_save_flags=$ERLCFLAGS
+
+
+
+  FCFLAGS_lmdb_ax_save_flags=$FCFLAGS
+
+
+
+  FCLIBS_lmdb_ax_save_flags=$FCLIBS
+
+
+
+  FFLAGS_lmdb_ax_save_flags=$FFLAGS
+
+
+
+  FLIBS_lmdb_ax_save_flags=$FLIBS
+
+
+
+  GCJFLAGS_lmdb_ax_save_flags=$GCJFLAGS
+
+
+
+  JAVACFLAGS_lmdb_ax_save_flags=$JAVACFLAGS
+
+
+
+  LDFLAGS_lmdb_ax_save_flags=$LDFLAGS
+
+
+
+  LIBS_lmdb_ax_save_flags=$LIBS
+
+
+
+  OBJCFLAGS_lmdb_ax_save_flags=$OBJCFLAGS
+
+
+
+  OBJCXXFLAGS_lmdb_ax_save_flags=$OBJCXXFLAGS
+
+
+
+  UPCFLAGS_lmdb_ax_save_flags=$UPCFLAGS
+
+
+
+  VALAFLAGS_lmdb_ax_save_flags=$VALAFLAGS
+
+
+
+       CFLAGS="$CFLAGS $LMDB_CFLAGS"
+       LIBS="$LIBS $LMDB_LIBS"
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mdb_env_create" >&5
 $as_echo_n "checking for library containing mdb_env_create... " >&6; }
 if ${ac_cv_search_mdb_env_create+:} false; then :
@@ -17727,6 +17866,60 @@ else
                        have_lmdb=""
 fi
 
+       LMDB_LIBS="$LMDB_LIBS $ac_cv_search_mdb_env_create"
+
+  CCASFLAGS=$CCASFLAGS_lmdb_ax_save_flags
+
+
+  CFLAGS=$CFLAGS_lmdb_ax_save_flags
+
+
+  CPPFLAGS=$CPPFLAGS_lmdb_ax_save_flags
+
+
+  CXXFLAGS=$CXXFLAGS_lmdb_ax_save_flags
+
+
+  ERLCFLAGS=$ERLCFLAGS_lmdb_ax_save_flags
+
+
+  FCFLAGS=$FCFLAGS_lmdb_ax_save_flags
+
+
+  FCLIBS=$FCLIBS_lmdb_ax_save_flags
+
+
+  FFLAGS=$FFLAGS_lmdb_ax_save_flags
+
+
+  FLIBS=$FLIBS_lmdb_ax_save_flags
+
+
+  GCJFLAGS=$GCJFLAGS_lmdb_ax_save_flags
+
+
+  JAVACFLAGS=$JAVACFLAGS_lmdb_ax_save_flags
+
+
+  LDFLAGS=$LDFLAGS_lmdb_ax_save_flags
+
+
+  LIBS=$LIBS_lmdb_ax_save_flags
+
+
+  OBJCFLAGS=$OBJCFLAGS_lmdb_ax_save_flags
+
+
+  OBJCXXFLAGS=$OBJCXXFLAGS_lmdb_ax_save_flags
+
+
+  UPCFLAGS=$UPCFLAGS_lmdb_ax_save_flags
+
+
+  VALAFLAGS=$VALAFLAGS_lmdb_ax_save_flags
+
+
+
 elif test "X$use_lmdb" = Xyes
 then
        as_fn_error $? "include/lmdb.h not found." "$LINENO" 5
@@ -17735,12 +17928,13 @@ else
 $as_echo "no" >&6; }
 fi
 
+
+
 NZD_TOOLS=""
 NZDSRCS=
 NZDTARGETS=
 if test "X${have_lmdb}" != "X"
 then
-       CFLAGS="$CFLAGS $lmdb_cflags"
 
 $as_echo "#define HAVE_LMDB 1" >>confdefs.h
 
@@ -20100,11 +20294,11 @@ if test "${with_protobuf_c+set}" = set; then :
            # before protobuf-c-1.0.0
            if test -f $withval/include/google/protobuf-c/protobuf-c.h
            then
-               CFLAGS="$CFLAGS -I$withval/include/google"
+               PROTOBUF_C_CFLAGS="-I$withval/include/google"
            else
-               CFLAGS="$CFLAGS -I$withval/include"
+               PROTOBUF_C_CFLAGS="-I$withval/include"
            fi
-           LDFLAGS="$LDFLAGS -L$withval/lib"
+           PROTOBUF_C_LIBS="-L$withval/lib"
            # Extract the first word of "protoc-c", so it can be a program name with args.
 set dummy protoc-c; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -20152,12 +20346,16 @@ else
            # before protobuf-c-1.0.0
            if test -f /usr/include/google/protobuf-c/protobuf-c.h
            then
-               CFLAGS="$CFLAGS -I/usr/include/google"
+               PROTOBUF_C_CFLAGS="-I/usr/include/google"
            else
                if test -f /usr/local/include/google/protobuf-c/protobuf-c.h
                then
-                   CFLAGS="$CFLAGS -I/usr/local/include/google"
-                   LDFLAGS="$LDFLAGS -L/usr/local/lib"
+                   PROTOBUF_C_CFLAGS="-I/usr/local/include/google"
+                   PROTOBUF_C_LIBS="-L/usr/local/lib"
+               elif test -f /opt/local/include/google/protobuf-c/protobuf-c.h
+               then
+                   PROTOBUF_C_CFLAGS="-I/opt/local/include/google"
+                   PROTOBUF_C_LIBS="-L/opt/local/lib"
                fi
            fi
            # Extract the first word of "protoc-c", so it can be a program name with args.
@@ -20210,8 +20408,8 @@ fi
 # Check whether --with-libfstrm was given.
 if test "${with_libfstrm+set}" = set; then :
   withval=$with_libfstrm;
-           CFLAGS="$CFLAGS -I$withval/include"
-           LDFLAGS="$LDFLAGS -L$withval/lib"
+           FSTRM_CFLAGS="-I$withval/include"
+           FSTRM_LIBS="-L$withval/lib"
            # Extract the first word of "fstrm_capture", so it can be a program name with args.
 set dummy fstrm_capture; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 
 else
 
-           # Extract the first word of "fstrm_capture", so it can be a program name with args.
+           for d in /usr /usr/local /opt/local
+           do
+               if test -f "${d}/include/fstrm.h"
+               then
+                   if test ${d} != /usr
+                   then
+                       FSTRM_CFLAGS="-I${d}/include"
+                       FSTRM_LIBS="-L${d}/lib"
+                   fi
+                   have_fstrm="$d"
+                   break
+               fi
+           done
+           if test -z "$have_fstrm"; then
+               # Extract the first word of "fstrm_capture", so it can be a program name with args.
 set dummy fstrm_capture; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
@@ -20295,10 +20507,124 @@ $as_echo "no" >&6; }
 fi
 
 
+           else
+               # Extract the first word of "fstrm_capture", so it can be a program name with args.
+set dummy fstrm_capture; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_FSTRM_CAPTURE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $FSTRM_CAPTURE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_FSTRM_CAPTURE="$FSTRM_CAPTURE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR$have_fstrm/bin
+do
+  IFS=$as_save_IFS
+  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_FSTRM_CAPTURE="$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
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+FSTRM_CAPTURE=$ac_cv_path_FSTRM_CAPTURE
+if test -n "$FSTRM_CAPTURE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FSTRM_CAPTURE" >&5
+$as_echo "$FSTRM_CAPTURE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+           fi
 
 fi
 
 
+
+  CCASFLAGS_dnstap_ax_save_flags=$CCASFLAGS
+
+
+
+  CFLAGS_dnstap_ax_save_flags=$CFLAGS
+
+
+
+  CPPFLAGS_dnstap_ax_save_flags=$CPPFLAGS
+
+
+
+  CXXFLAGS_dnstap_ax_save_flags=$CXXFLAGS
+
+
+
+  ERLCFLAGS_dnstap_ax_save_flags=$ERLCFLAGS
+
+
+
+  FCFLAGS_dnstap_ax_save_flags=$FCFLAGS
+
+
+
+  FCLIBS_dnstap_ax_save_flags=$FCLIBS
+
+
+
+  FFLAGS_dnstap_ax_save_flags=$FFLAGS
+
+
+
+  FLIBS_dnstap_ax_save_flags=$FLIBS
+
+
+
+  GCJFLAGS_dnstap_ax_save_flags=$GCJFLAGS
+
+
+
+  JAVACFLAGS_dnstap_ax_save_flags=$JAVACFLAGS
+
+
+
+  LDFLAGS_dnstap_ax_save_flags=$LDFLAGS
+
+
+
+  LIBS_dnstap_ax_save_flags=$LIBS
+
+
+
+  OBJCFLAGS_dnstap_ax_save_flags=$OBJCFLAGS
+
+
+
+  OBJCXXFLAGS_dnstap_ax_save_flags=$OBJCXXFLAGS
+
+
+
+  UPCFLAGS_dnstap_ax_save_flags=$UPCFLAGS
+
+
+
+  VALAFLAGS_dnstap_ax_save_flags=$VALAFLAGS
+
+
+
+       CFLAGS="$CFLAGS $PROTOBUF_C_CFLAGS $FSTRM_CFLAGS"
+       LIBS="$LDFLAGS $PROTOBUF_C_LIBS $FSTRM_LIBS"
+
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fstrm_iothr_init" >&5
 $as_echo_n "checking for library containing fstrm_iothr_init... " >&6; }
 if ${ac_cv_search_fstrm_iothr_init+:} false; then :
@@ -20357,6 +20683,8 @@ else
   as_fn_error $? "The fstrm library was not found. Please install fstrm!" "$LINENO" 5
 fi
 
+       FSTRM_LIBS="$FSTRM_LIBS $ac_cv_search_fstrm_iothr_init"
+
        { $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 :
@@ -20415,6 +20743,60 @@ else
   as_fn_error $? "The protobuf-c library was not found. Please install protobuf-c!" "$LINENO" 5
 fi
 
+       PROTOBUF_C_LIBS="$PROTOBUF_C_LIBS $ac_cv_search_protobuf_c_message_pack"
+
+
+  CCASFLAGS=$CCASFLAGS_dnstap_ax_save_flags
+
+
+  CFLAGS=$CFLAGS_dnstap_ax_save_flags
+
+
+  CPPFLAGS=$CPPFLAGS_dnstap_ax_save_flags
+
+
+  CXXFLAGS=$CXXFLAGS_dnstap_ax_save_flags
+
+
+  ERLCFLAGS=$ERLCFLAGS_dnstap_ax_save_flags
+
+
+  FCFLAGS=$FCFLAGS_dnstap_ax_save_flags
+
+
+  FCLIBS=$FCLIBS_dnstap_ax_save_flags
+
+
+  FFLAGS=$FFLAGS_dnstap_ax_save_flags
+
+
+  FLIBS=$FLIBS_dnstap_ax_save_flags
+
+
+  GCJFLAGS=$GCJFLAGS_dnstap_ax_save_flags
+
+
+  JAVACFLAGS=$JAVACFLAGS_dnstap_ax_save_flags
+
+
+  LDFLAGS=$LDFLAGS_dnstap_ax_save_flags
+
+
+  LIBS=$LIBS_dnstap_ax_save_flags
+
+
+  OBJCFLAGS=$OBJCFLAGS_dnstap_ax_save_flags
+
+
+  OBJCXXFLAGS=$OBJCXXFLAGS_dnstap_ax_save_flags
+
+
+  UPCFLAGS=$UPCFLAGS_dnstap_ax_save_flags
+
+
+  VALAFLAGS=$VALAFLAGS_dnstap_ax_save_flags
+
+
 
 
 $as_echo "#define HAVE_DNSTAP 1" >>confdefs.h
 
 
 
+
+
+
+
 #
 #  The following sets up how non-blocking i/o is established.
 #  cygwin and solaris 2.x (x<5) require special handling.
 case $with_dlopen in #(
   auto|yes) :
 
-         { $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 :
+         # -fsanitize=thread hijacks dlopen and dlclose so use dlsym.
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5
+$as_echo_n "checking for library containing dlsym... " >&6; }
+if ${ac_cv_search_dlsym+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -22328,11 +22715,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 #ifdef __cplusplus
 extern "C"
 #endif
-char dlopen ();
+char dlsym ();
 int
 main ()
 {
-return dlopen ();
+return dlsym ();
   ;
   return 0;
 }
@@ -22345,25 +22732,25 @@ for ac_lib in '' dl; do
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
   if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_dlopen=$ac_res
+  ac_cv_search_dlsym=$ac_res
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if ${ac_cv_search_dlopen+:} false; then :
+  if ${ac_cv_search_dlsym+:} false; then :
   break
 fi
 done
-if ${ac_cv_search_dlopen+:} false; then :
+if ${ac_cv_search_dlsym+:} false; then :
 
 else
-  ac_cv_search_dlopen=no
+  ac_cv_search_dlsym=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlsym" >&5
+$as_echo "$ac_cv_search_dlsym" >&6; }
+ac_res=$ac_cv_search_dlsym
 if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
index fde41dce446915d2a898a5acea823892808a44ae..926c6a3e8a30f8192f7aa7b8c471c3c45d48e714 100644 (file)
@@ -666,14 +666,16 @@ AC_CHECK_HEADERS([pthread_np.h], [], [], [#include <pthread.h>])
 AC_MSG_CHECKING(for libuv)
 PKG_CHECK_MODULES([LIBUV], [libuv >= 1.0.0], [],
                  [AC_MSG_ERROR([libuv not found])])
-AX_SAVE_FLAGS([libuv])
+AC_SUBST([LIBUV_CFLAGS])
+AC_SUBST([LIBUV_LIBS])
 
+AX_SAVE_FLAGS([libuv])
 CFLAGS="$CFLAGS $LIBUV_CFLAGS"
-LIBS="$LIBS $LIBUV_LIBS"
-
+LIBS="$LDFLAGS $LIBUV_LIBS"
 # Those functions are only provided in newer versions of libuv, we'll be emulating them
 # for now
 AC_CHECK_FUNCS([uv_handle_get_data uv_handle_set_data uv_import])
+AX_RESTORE_FLAGS([libuv])
 
 #
 # flockfile is usually provided by pthreads
@@ -690,7 +692,8 @@ AC_SUBST(ALWAYS_DEFINES)
 AC_MSG_CHECKING(for libtool)
 AC_ARG_WITH(libtool, AS_HELP_STRING([--with-libtool], [use GNU libtool]),
            use_libtool="$withval", use_libtool="no")
-
+NO_LIBTOOL_ISCLIBS=
+NO_LIBTOOL_DNSLIBS=
 case $use_libtool in
        yes)
                AC_MSG_RESULT(yes)
@@ -717,9 +720,13 @@ case $use_libtool in
                LIBTOOL_MODE_LINK=
                LIBTOOL_MODE_UNINSTALL=
                INSTALL_LIBRARY='${INSTALL_DATA}'
+               NO_LIBTOOL_ISCLIBS='${NO_LIBTOOL_ISCLIBS}'
+               NO_LIBTOOL_DNSLIBS='${NO_LIBTOOL_DNSLIBS}'
                ;;
 esac
 AC_SUBST(INSTALL_LIBRARY)
+AC_SUBST(NO_LIBTOOL_ISCLIBS)
+AC_SUBST(NO_LIBTOOL_DNSLIBS)
 
 #
 # Do we want to use pthread rwlock?
@@ -1218,7 +1225,7 @@ AC_ARG_WITH(lmdb,
 have_lmdb=""
 case "$use_lmdb" in
        no)
-               lmdb_libs=""
+               LMDB_LIBS=""
                ;;
        auto|yes)
                for d in /usr /usr/local /opt/local
@@ -1227,8 +1234,8 @@ case "$use_lmdb" in
                        then
                                if test ${d} != /usr
                                then
-                                       lmdb_cflags="-I ${d}/include"
-                                       LIBS="$LIBS -L${d}/lib"
+                                       LMDB_CFLAGS="-I ${d}/include"
+                                       LMDB_LIBS="-L${d}/lib"
                                fi
                                have_lmdb="yes"
                        fi
@@ -1237,8 +1244,8 @@ case "$use_lmdb" in
        *)
                if test -f "${use_lmdb}/include/lmdb.h"
                then
-                       lmdb_cflags="-I${use_lmdb}/include"
-                       LIBS="$LIBS -L${use_lmdb}/lib"
+                       LMDB_CFLAGS="-I${use_lmdb}/include"
+                       LMDB_LIBS="-L${use_lmdb}/lib"
                        have_lmdb="yes"
                else
                        AC_MSG_ERROR([$use_lmdb/include/lmdb.h not found.])
@@ -1249,22 +1256,28 @@ esac
 if test "X${have_lmdb}" != "X"
 then
        AC_MSG_RESULT(yes)
+       AX_SAVE_FLAGS([lmdb])
+       CFLAGS="$CFLAGS $LMDB_CFLAGS"
+       LIBS="$LIBS $LMDB_LIBS"
        AC_SEARCH_LIBS([mdb_env_create], [lmdb], [],
                       [AC_MSG_ERROR([found lmdb include but not library.])
                        have_lmdb=""])
+       LMDB_LIBS="$LMDB_LIBS $ac_cv_search_mdb_env_create"
+       AX_RESTORE_FLAGS([lmdb])
 elif test "X$use_lmdb" = Xyes
 then
        AC_MSG_ERROR([include/lmdb.h not found.])
 else
        AC_MSG_RESULT(no)
 fi
+AC_SUBST([LMDB_CFLAGS])
+AC_SUBST([LMDB_LIBS])
 
 NZD_TOOLS=""
 NZDSRCS=
 NZDTARGETS=
 if test "X${have_lmdb}" != "X"
 then
-       CFLAGS="$CFLAGS $lmdb_cflags"
        AC_DEFINE(HAVE_LMDB, 1, [Define if lmdb was found])
        NZD_TOOLS="nzd"
        NZDSRCS='${NZDSRCS}'
@@ -1922,11 +1935,11 @@ if test "x$use_dnstap" != "xno"; then
            # before protobuf-c-1.0.0
            if test -f $withval/include/google/protobuf-c/protobuf-c.h
            then
-               CFLAGS="$CFLAGS -I$withval/include/google"
+               PROTOBUF_C_CFLAGS="-I$withval/include/google"
            else
-               CFLAGS="$CFLAGS -I$withval/include"
+               PROTOBUF_C_CFLAGS="-I$withval/include"
            fi
-           LDFLAGS="$LDFLAGS -L$withval/lib"
+           PROTOBUF_C_LIBS="-L$withval/lib"
            AC_PATH_PROG([PROTOC_C], [protoc-c], [],
                         [$PATH$PATH_SEPARATOR$withval/bin])
        ], [
@@ -1934,12 +1947,16 @@ if test "x$use_dnstap" != "xno"; then
            # before protobuf-c-1.0.0
            if test -f /usr/include/google/protobuf-c/protobuf-c.h
            then
-               CFLAGS="$CFLAGS -I/usr/include/google"
+               PROTOBUF_C_CFLAGS="-I/usr/include/google"
            else
                if test -f /usr/local/include/google/protobuf-c/protobuf-c.h
                then
-                   CFLAGS="$CFLAGS -I/usr/local/include/google"
-                   LDFLAGS="$LDFLAGS -L/usr/local/lib"
+                   PROTOBUF_C_CFLAGS="-I/usr/local/include/google"
+                   PROTOBUF_C_LIBS="-L/usr/local/lib"
+               elif test -f /opt/local/include/google/protobuf-c/protobuf-c.h
+               then
+                   PROTOBUF_C_CFLAGS="-I/opt/local/include/google"
+                   PROTOBUF_C_LIBS="-L/opt/local/lib"
                fi
            fi
            AC_PATH_PROG([PROTOC_C],[protoc-c])
@@ -1949,18 +1966,42 @@ if test "x$use_dnstap" != "xno"; then
        fi
        AC_ARG_WITH([libfstrm], AS_HELP_STRING([--with-libfstrm=path],
                    [Path where libfstrm is installed, for dnstap]), [
-           CFLAGS="$CFLAGS -I$withval/include"
-           LDFLAGS="$LDFLAGS -L$withval/lib"
+           FSTRM_CFLAGS="-I$withval/include"
+           FSTRM_LIBS="-L$withval/lib"
            AC_PATH_PROG([FSTRM_CAPTURE], [fstrm_capture], [], [$PATH$PATH_SEPARATOR$withval/bin])
        ],[
-           AC_PATH_PROG([FSTRM_CAPTURE], [fstrm_capture])
+           for d in /usr /usr/local /opt/local
+           do
+               if test -f "${d}/include/fstrm.h"
+               then
+                   if test ${d} != /usr
+                   then
+                       FSTRM_CFLAGS="-I${d}/include"
+                       FSTRM_LIBS="-L${d}/lib"
+                   fi
+                   have_fstrm="$d"
+                   break
+               fi
+           done
+           if test -z "$have_fstrm"; then
+               AC_PATH_PROG([FSTRM_CAPTURE], [fstrm_capture])
+           else
+               AC_PATH_PROG([FSTRM_CAPTURE], [fstrm_capture], [], [$PATH$PATH_SEPARATOR$have_fstrm/bin])
+           fi
        ])
+       AX_SAVE_FLAGS([dnstap])
+       CFLAGS="$CFLAGS $PROTOBUF_C_CFLAGS $FSTRM_CFLAGS"
+       LIBS="$LDFLAGS $PROTOBUF_C_LIBS $FSTRM_LIBS"
 
        AC_SEARCH_LIBS([fstrm_iothr_init], [fstrm], [],
                       AC_MSG_ERROR([The fstrm library was not found. Please install fstrm!]))
+       FSTRM_LIBS="$FSTRM_LIBS $ac_cv_search_fstrm_iothr_init"
+
        AC_SEARCH_LIBS([protobuf_c_message_pack], [protobuf-c], [],
                       AC_MSG_ERROR([The protobuf-c library was not found. Please install protobuf-c!]))
+       PROTOBUF_C_LIBS="$PROTOBUF_C_LIBS $ac_cv_search_protobuf_c_message_pack"
 
+       AX_RESTORE_FLAGS([dnstap])
        AC_DEFINE(HAVE_DNSTAP, 1, [Define to 1 to enable dnstap support])
        DNSTAP=dnstap
        DNSTAPSRCS='${DNSTAPSRCS}'
@@ -1971,6 +2012,10 @@ AC_SUBST(DNSTAP)
 AC_SUBST(DNSTAPSRCS)
 AC_SUBST(DNSTAPOBJS)
 AC_SUBST(DNSTAPTARGETS)
+AC_SUBST([PROTOBUF_C_CFLAGS])
+AC_SUBST([PROTOBUF_C_LIBS])
+AC_SUBST([FSTRM_CFLAGS])
+AC_SUBST([FSTRM_LIBS])
 
 #
 #  The following sets up how non-blocking i/o is established.
@@ -2434,7 +2479,8 @@ AS_IF([test "$pic_mode" = "no"],
 
 AS_CASE([$with_dlopen],
        [auto|yes],[
-         AC_SEARCH_LIBS([dlopen],[dl])
+         # -fsanitize=thread hijacks dlopen and dlclose so use dlsym.
+         AC_SEARCH_LIBS([dlsym],[dl])
          AC_CHECK_FUNCS([dlopen dlclose dlsym],
                         [with_dlopen="yes"],
                         [with_dlopen="no"])
index a6892b9a893c083f9c3881cab3efcbe2e0ed5717..9cf33727b2023f684717d37419fbf6c345f9dad4 100644 (file)
@@ -21,7 +21,7 @@ CDEFINES =      @CONTRIB_DLZ@
 CWARNINGS =
 
 DLZLIBS =      @DLZ_DRIVER_LIBS@
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 DEPLIBS =      ${ISCDEPLIBS}
 
index 26ad5eebe550cee3a21c3e207e8f8ffdf599766e..09355e2fde8b7492f5b5e8c8fe7b3eb5c5001f34 100644 (file)
@@ -9,9 +9,9 @@ CINCLUDES =     -I. -I.. ${DNS_INCLUDES} ${ISC_INCLUDES} \
                ${OPENSSL_CFLAGS}
 CDEFINES =     -DFUZZDIR=\"$(abs_srcdir)\"
 
-ISCLIBS =      ../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCDEPLIBS =   ../lib/isc/libisc.@A@
-DNSLIBS =      ../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 DNSDEPLIBS =   ../lib/dns/libdns.@A@
 
 LIBS =         @LIBS@
index 1e038e1285bd50133561d178c45acf4b87600a27..32543f3b9a491a91abf894198f1e986ceb07e612 100644 (file)
@@ -24,9 +24,9 @@ CINCLUDES =   -I. ${BIND9_INCLUDES} ${DNS_INCLUDES} ${ISC_INCLUDES} \
 CDEFINES =
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCCFGLIBS =    ../../lib/isccfg/libisccfg.@A@
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 NSLIBS =       ../../lib/ns/libns.@A@
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
index 2289cf654ecec6033d98c8a28bed8a75ae0c9a03..8de85bfec392f80c1a11ef176252d66131ddae8c 100644 (file)
@@ -28,20 +28,23 @@ USE_ISC_SPNEGO = @USE_ISC_SPNEGO@
 
 CINCLUDES =    -I. -I${top_srcdir}/lib/dns -Iinclude ${DNS_INCLUDES} \
                ${ISC_INCLUDES} \
+               ${FSTRM_CFLAGS} \
                ${OPENSSL_CFLAGS} @DST_GSSAPI_INC@ \
+               ${PROTOBUF_C_CFLAGS} \
                ${JSON_C_CFLAGS} \
                ${LIBXML2_CFLAGS} \
+               ${LMDB_CFLAGS} \
                ${MAXMINDDB_CFLAGS}
 
 CDEFINES =     @USE_GSSAPI@ ${USE_ISC_SPNEGO}
 
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
 
-LIBS =         ${MAXMINDDB_LIBS} @LIBS@
+LIBS =         ${FSTRM_LIBS} ${MAXMINDDB_LIBS} ${LMDB_LIBS} ${PROTOBUF_C_LIBS} @LIBS@
 
 # Alphabetically
 
index 8e5a7d1d9b2d57e0ec508a108ba0834e52400c5e..b62d59837c9f0cc4e36527fe0465a498641bb1c9 100644 (file)
@@ -22,7 +22,7 @@ HEADERS =     acl.h adb.h badcache.h bit.h byaddr.h \
                edns.h ecdb.h events.h fixedname.h forward.h geoip.h \
                ipkeylist.h iptable.h \
                journal.h kasp.h keydata.h keyflags.h keymgr.h keytable.h \
-               keyvalues.h lib.h librpz.h lookup.h log.h \
+               keyvalues.h lib.h librpz.h lmdb.h lookup.h log.h \
                master.h masterdump.h message.h \
                name.h ncache.h nsec.h nsec3.h nta.h opcode.h order.h \
                peer.h portlist.h private.h \
diff --git a/lib/dns/include/dns/lmdb.h b/lib/dns/include/dns/lmdb.h
new file mode 100644 (file)
index 0000000..a99ee8e
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * See the COPYRIGHT file distributed with this work for additional
+ * information regarding copyright ownership.
+ */
+
+#include <lmdb.h>
+/*
+ * MDB_NOTLS is used to prevent problems after configuration is reloaded, due
+ * to the way LMDB's use of thread-local storage (TLS) interacts with the BIND9
+ * thread model.
+ */
+#define DNS_LMDB_COMMON_FLAGS (MDB_CREATE | MDB_NOSUBDIR | MDB_NOTLS)
+#ifndef __OpenBSD__
+#define DNS_LMDB_FLAGS (DNS_LMDB_COMMON_FLAGS)
+#else /* __OpenBSD__ */
+/*
+ * OpenBSD does not have a unified buffer cache, which requires both reads and
+ * writes to be performed using mmap().
+ */
+#define DNS_LMDB_FLAGS (DNS_LMDB_COMMON_FLAGS | MDB_WRITEMAP)
+
+#endif /* __OpenBSD__ */
index 2c5675676b700d5da6e1d3d51c10767679b13308..dcd0de10d89a11f2558fd93f4729007580088635 100644 (file)
@@ -249,25 +249,6 @@ struct dns_view {
 #define DNS_VIEWATTR_ADBSHUTDOWN 0x02
 #define DNS_VIEWATTR_REQSHUTDOWN 0x04
 
-#ifdef HAVE_LMDB
-#include <lmdb.h>
-/*
- * MDB_NOTLS is used to prevent problems after configuration is reloaded, due
- * to the way LMDB's use of thread-local storage (TLS) interacts with the BIND9
- * thread model.
- */
-#define DNS_LMDB_COMMON_FLAGS (MDB_CREATE | MDB_NOSUBDIR | MDB_NOTLS)
-#ifndef __OpenBSD__
-#define DNS_LMDB_FLAGS (DNS_LMDB_COMMON_FLAGS)
-#else /* __OpenBSD__ */
-/*
- * OpenBSD does not have a unified buffer cache, which requires both reads and
- * writes to be performed using mmap().
- */
-#define DNS_LMDB_FLAGS (DNS_LMDB_COMMON_FLAGS | MDB_WRITEMAP)
-#endif /* __OpenBSD__ */
-#endif /* HAVE_LMDB */
-
 isc_result_t
 dns_view_create(isc_mem_t *mctx, dns_rdataclass_t rdclass, const char *name,
                dns_view_t **viewp);
index fd8ebb97f484392003377c412a061b6589676554..8aec0a88181074285cd14198c2e063c0b4fa0020 100644 (file)
@@ -19,9 +19,9 @@ CINCLUDES =   -I. -Iinclude ${DNS_INCLUDES} ${ISC_INCLUDES} \
                ${OPENSSL_CFLAGS} ${MAXMINDDB_CFLAGS} @CMOCKA_CFLAGS@
 CDEFINES =     -DTESTS="\"${top_builddir}/lib/dns/tests/\""
 
-ISCLIBS =      ../../isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCDEPLIBS =   ../../isc/libisc.@A@
-DNSLIBS =      ../libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 DNSDEPLIBS =   ../libdns.@A@
 
 LIBS =         @LIBS@ @CMOCKA_LIBS@
@@ -132,7 +132,7 @@ dispatch_test@EXEEXT@: dispatch_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
 dnstap_test@EXEEXT@: dnstap_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
        ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
                ${LDFLAGS} -o $@ dnstap_test.@O@ dnstest.@O@ \
-               ${DNSLIBS} ${ISCLIBS} ${LIBS}
+               ${FSTRM_LIBS} ${DNSLIBS} ${ISCLIBS} ${LIBS}
 
 dst_test@EXEEXT@: dst_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
        ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
@@ -142,7 +142,7 @@ dst_test@EXEEXT@: dst_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
 geoip_test@EXEEXT@: geoip_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
        ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
                ${LDFLAGS} -o $@ geoip_test.@O@ dnstest.@O@ \
-               ${DNSLIBS} ${ISCLIBS} ${LIBS}
+               ${DNSLIBS} ${MAXMINDDB_LIBS} ${ISCLIBS} ${LIBS}
 
 keytable_test@EXEEXT@: keytable_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
        ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
index 719aa6850d53358311aafddd2f9ecef7702f8933..c9733d91d03921253dd621340902ea816a900c49 100644 (file)
@@ -16,8 +16,8 @@
 #include <stdbool.h>
 
 #ifdef HAVE_LMDB
-#include <lmdb.h>
-#endif /* ifdef HAVE_LMDB */
+#include <dns/lmdb.h>
+#endif /* HAVE_LMDB */
 
 #include <isc/atomic.h>
 #include <isc/file.h>
index c886ddacc94b36ef0c36e1ba0ff4a9a544a2508e..f145e02d0ddffca1ff901122799263894038d7e5 100644 (file)
@@ -25,11 +25,11 @@ CINCLUDES = -I. -I./include -I${srcdir}/include \
 CDEFINES =
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
 
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 
 DNSDEPLIBS =   ../../lib/dns/libdns.@A@
 
index 508c139a340f6f98388a5b6d5314003079dac557..7c4ca3fdddc782bae71d76aa4d1539e64e846c09 100644 (file)
@@ -20,9 +20,9 @@ CDEFINES =    -DTESTS="\"${top_builddir}/lib/irs/tests/\""
 
 CFGLIBS =      ../../isccfg/libisccfg.@A@
 CFGDEPLIBS =   ../../isccfg/libisccfg.@A@
-DNSLIBS =      ../../dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 DNSDEPLIBS =   ../../dns/libdns.@A@
-ISCLIBS =      ../../isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCDEPLIBS =   ../../isc/libisc.@A@
 IRSLIBS =      ../libirs.@A@
 IRSDEPLIBS =   ../libirs.@A@
index 94ba35d348de89d4e520070f119b8802695f7a2c..61a5312729112376d6258b061966851672fe7e65 100644 (file)
@@ -82,7 +82,7 @@ SRCS =                pk11.c pk11_result.c \
                symtab.c task.c taskpool.c timer.c \
                tm.c version.c
 
-LIBS =         ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS} @LIBS@
+LIBS =         ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBUV_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS} @LIBS@
 
 # Note: the order of SUBDIRS is important.
 # Attempt to disable parallel processing.
index f58caf507103b27c9ac91552b10094a6fd2f33a6..d017d10e7ac3a62429106f2d01b94811dbff65b4 100644 (file)
@@ -19,6 +19,7 @@ CINCLUDES =   -I${srcdir}/include \
                -I${srcdir}/.. \
                ${OPENSSL_CFLAGS} \
                ${JSON_C_CFLAGS} \
+               ${LIBUV_CFLAGS} \
                ${LIBXML2_CFLAGS}
 
 CDEFINES =
index 6f70b6d301afee517ab957af2905bd15e8faa915..c22bed087d25c46e642101b4935515fb3f50e035 100644 (file)
@@ -18,11 +18,10 @@ VERSION=@BIND9_VERSION@
 CINCLUDES =    -I. -Iinclude ${ISC_INCLUDES} \
                ${OPENSSL_CFLAGS} @CMOCKA_CFLAGS@ \
                ${JSON_C_CFLAGS} \
-               ${LIBXML2_CFLAGS} \
-               ${ZLIB_CFLAGS}
+               ${LIBXML2_CFLAGS}
 CDEFINES =     -DTESTS="\"${top_builddir}/lib/isc/tests/\""
 
-ISCLIBS =      ../libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCDEPLIBS =   ../libisc.@A@
 
 LIBS =         @LIBS@ @CMOCKA_LIBS@
@@ -97,7 +96,7 @@ heap_test@EXEEXT@: heap_test.@O@ isctest.@O@ ${ISCDEPLIBS}
 hmac_test@EXEEXT@: hmac_test.@O@ ${ISCDEPLIBS}
        ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
                ${LDFLAGS} -o $@ hmac_test.@O@ \
-               ${ISCLIBS} ${LIBS}
+               ${ISCLIBS} ${OPENSSL_LIBS} ${LIBS}
 
 ht_test@EXEEXT@: ht_test.@O@ isctest.@O@ ${ISCDEPLIBS}
        ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
@@ -112,7 +111,7 @@ lex_test@EXEEXT@: lex_test.@O@ isctest.@O@ ${ISCDEPLIBS}
 md_test@EXEEXT@: md_test.@O@ ${ISCDEPLIBS}
        ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
                ${LDFLAGS} -o $@ md_test.@O@ \
-               ${ISCLIBS} ${LIBS}
+               ${ISCLIBS} ${OPENSSL_LIBS} ${LIBS}
 
 mem_test@EXEEXT@: mem_test.@O@ isctest.@O@ ${ISCDEPLIBS}
        ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
index 78cf99dbd084e566a9fa22cab2ee443798c81339..8476367f43b75a104ef1e46326ccfd593e54c314 100644 (file)
@@ -24,7 +24,7 @@ CINCLUDES =   -I. ${DNS_INCLUDES} ${ISC_INCLUDES} \
 CDEFINES =
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCCCLIBS =    ../../lib/isccc/libisccc.@A@
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
index 67448f1a7349bfe940cfc954f98d96d6c6e9a798..68d1f7b64a0eb72be318b9ffb98f44802fac51e9 100644 (file)
@@ -22,7 +22,7 @@ VERSION=@BIND9_VERSION@
 CINCLUDES =    -I. -Iinclude ${ISCCC_INCLUDES} ${ISC_INCLUDES} @CMOCKA_CFLAGS@
 CDEFINES =
 
-ISCLIBS =      ../../isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../isc/libisc.@A@
 ISCDEPLIBS =   ../../isc/libisc.@A@
 ISCCCLIBS =    ../libisccc.@A@
 ISCCCDEPLIBS = ../libisccc.@A@
index d10ae8b4d0fdf867b67a1332e5985e8f3f227368..a30a3ca0e1208f0075f5af5a470b552fae266b44 100644 (file)
@@ -22,8 +22,8 @@ CINCLUDES =   -I. ${DNS_INCLUDES} ${ISC_INCLUDES} ${ISCCFG_INCLUDES}
 CDEFINES =
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 ISCCFGLIBS =   ../../lib/cfg/libisccfg.@A@
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
index f0c4e6bf5f04514598c1ad750208643d7aeb83a1..960ffa4dabd8114d4902751ef47ba0c31d043133 100644 (file)
@@ -20,9 +20,9 @@ CINCLUDES =   -I. -Iinclude \
                ${OPENSSL_CFLAGS} @CMOCKA_CFLAGS@
 CDEFINES =     -DTESTS="\"${top_builddir}/lib/dns/tests/\""
 
-ISCLIBS =      ../../isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCDEPLIBS =   ../../isc/libisc.@A@
-DNSLIBS =      ../../dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 DNSDEPLIBS =   ../../dns/libdns.@A@
 ISCCFGLIBS =   ../libisccfg.@A@
 ISCCFGDEPLIBS = ../libisccfg.@A@
index 8e5f2f60c42ab5fb1f852e212c2bb74a0d7e2558..d00ddaf2a66aeb4d033e2a4d35a0c739c3f9958b 100644 (file)
@@ -22,17 +22,18 @@ USE_ISC_SPNEGO = @USE_ISC_SPNEGO@
 
 CINCLUDES =    -I. -I${top_srcdir}/lib/ns -Iinclude \
                ${NS_INCLUDES} ${DNS_INCLUDES} ${ISC_INCLUDES} \
-               ${OPENSSL_CFLAGS} @DST_GSSAPI_INC@
+               ${OPENSSL_CFLAGS} @DST_GSSAPI_INC@ \
+               ${FSTRM_CFLAGS}
 
 CDEFINES =     -DNAMED_PLUGINDIR=\"${plugindir}\"
 
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
 
-DNSLIBS =      ../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 
 DNSDEPLIBS =   ../../lib/dns/libdns.@A@
 
index 70c77a44fa3caea3690b31ac8088d6fbfcb0868a..7869c8e9cd1eb0eee1a66861ce5b104569b9ebc1 100644 (file)
@@ -26,9 +26,9 @@ CINCLUDES =   -I. -Iinclude ${NS_INCLUDES} ${DNS_INCLUDES} ${ISC_INCLUDES} \
                @CMOCKA_CFLAGS@
 CDEFINES =     -DTESTS="\"${top_builddir}/lib/ns/tests/\"" -DNAMED_PLUGINDIR=\"${plugindir}\"
 
-ISCLIBS =      ../../isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
+ISCLIBS =      ../../isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
 ISCDEPLIBS =   ../../isc/libisc.@A@
-DNSLIBS =      ../../dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+DNSLIBS =      ../../dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 DNSDEPLIBS =   ../../dns/libdns.@A@
 NSLIBS =       ../libns.@A@
 NSDEPLIBS =    ../libns.@A@
index 078d5ba1cb8a84b5d032cdef54c77ce4fb4e2ea1..c5e1c9b0a792a7eda27bc27d6541a34c079de2e9 100644 (file)
@@ -25,8 +25,8 @@ CDEFINES =    -DVERSION=\"${VERSION}\" \
                -DSYSCONFDIR=\"${sysconfdir}\"
 CWARNINGS =
 
-ISCLIBS =      ../isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS}
-DNSLIBS =      ../dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
+ISCLIBS =      ../isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
+DNSLIBS =      ../dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
 ISCCFGLIBS =   ../isccfg/libisccfg.@A@
 IRSLIBS =      ../irs/libirs.@A@
 
index 48cdaf7cc3b808678caba07811cfb4a3a338875a..9ff1bd8cf1ba4820d558f9ee75dfed986feaf7a2 100644 (file)
@@ -26,7 +26,9 @@ ISCCFG_INCLUDES = @BIND9_ISCCFG_BUILDINCLUDE@ \
        -I${top_srcdir}/lib/isccfg/include
 
 DNS_INCLUDES = @BIND9_DNS_BUILDINCLUDE@ \
-       -I${top_srcdir}/lib/dns/include
+       -I${top_srcdir}/lib/dns/include \
+       ${FSTRM_CFLAGS} ${PROTOBUF_C_CFLAGS} \
+       ${OPENSSL_CFLAGS}
 
 NS_INCLUDES = @BIND9_NS_BUILDINCLUDE@ \
        -I${top_srcdir}/lib/ns/include
index e1d17cd8ba8cd1a1169515d432520b9dcf977ac1..c5d34044f71ff1df21212d9a427806709e9c5c0a 100644 (file)
@@ -116,25 +116,42 @@ BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
 BUILD_LDFLAGS = @BUILD_LDFLAGS@
 BUILD_LIBS = @BUILD_LIBS@
 
-LFS_CFLAGS = @LFS_CFLAGS@
-LFS_LDFLAGS = @LFS_LDFLAGS@
-LFS_LIBS = @LFS_LIBS@
+FSTRM_CFLAGS = @FSTRM_CFLAGS@
+FSTRM_LIBS = @FSTRM_LIBS@
 
-OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
-OPENSSL_LIBS = @OPENSSL_LIBS@
+GSSAPI_LIBS = @DNS_CRYPTO_LIBS@
 
 JSON_C_CFLAGS = @JSON_C_CFLAGS@
 JSON_C_LIBS = @JSON_C_LIBS@
 
+LFS_CFLAGS = @LFS_CFLAGS@
+LFS_LDFLAGS = @LFS_LDFLAGS@
+LFS_LIBS = @LFS_LIBS@
+
+LIBUV_CFLAGS = @LIBUV_CFLAGS@
+LIBUV_LIBS = @LIBUV_LIBS@
+
 LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
 LIBXML2_LIBS = @LIBXML2_LIBS@
 
+LMDB_CFLAGS = @LMDB_CFLAGS@
+LMDB_LIBS = @LMDB_LIBS@
+
 MAXMINDDB_CFLAGS = @MAXMINDDB_CFLAGS@
 MAXMINDDB_LIBS = @MAXMINDDB_LIBS@
 
+OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
+
+PROTOBUF_C_CFLAGS = @PROTOBUF_C_CFLAGS@
+PROTOBUF_C_LIBS = @PROTOBUF_C_LIBS@
+
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 
+NO_LIBTOOL_ISCLIBS = ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS} ${ZLIB_LIBS} ${LIBUV_LIBS}
+NO_LIBTOOL_DNSLIBS = ${LMDB_LIBS} ${MAXMINDDB_LIBS} ${GSSAPI_LIBS} ${PROTOBUF_C_LIBS} ${FSTRM_LIBS}
+
 .SUFFIXES:
 .SUFFIXES: .c .@O@
 
index faa6e89fddda165f33f4c700921eed3a2cdb3368..f306baa35de45e41d121d46ba77d2a7fa2431627 100644 (file)
 ./lib/dns/include/dns/keyvalues.h              C       1999,2000,2001,2003,2004,2005,2006,2007,2008,2009,2010,2012,2016,2017,2018,2019,2020
 ./lib/dns/include/dns/lib.h                    C       1999,2000,2001,2004,2005,2006,2007,2009,2016,2017,2018,2019,2020
 ./lib/dns/include/dns/librpz.h                 C       2017,2018,2019,2020
+./lib/dns/include/dns/lmdb.h                   C       2020
 ./lib/dns/include/dns/log.h                    C       1999,2000,2001,2003,2004,2005,2006,2007,2009,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020
 ./lib/dns/include/dns/lookup.h                 C       2000,2001,2004,2005,2006,2007,2009,2016,2018,2019,2020
 ./lib/dns/include/dns/master.h                 C       1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2011,2012,2013,2014,2016,2018,2019,2020