* [Buildroot] [PATCH v3,1/4] package/bind: enable static build
@ 2019-04-26 16:56 Fabrice Fontaine
2019-04-26 16:56 ` [Buildroot] [PATCH v3, 2/4] package/bind: remove threads dependency Fabrice Fontaine
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Fabrice Fontaine @ 2019-04-26 16:56 UTC (permalink / raw)
To: buildroot
Static build has been disabled in 2014 with commit
6045904752b06a8b8e52ba8fc2e49a8548964e8d however bind can be built
statically thanks to --without-dlopen so enable it back
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v2 -> v3 (after review of Thomas Petazzoni):
- Move bind9-config under BR2_STATIC_LIBS condition
- Drop DHCP_MAKE and DHCP_MAKE_ENV as these variables were set for the
embedded bind
Changes v1 -> v2 (after review of Thomas Petazzoni):
- Enable/disable libtool depending on BR2_STATIC_LIBS value
...n_driver.c-fix-build-without-dlfcn.h.patch | 28 +++++++++++++++++++
package/bind/Config.in | 5 ++--
package/bind/bind.mk | 14 ++++++++--
3 files changed, 42 insertions(+), 5 deletions(-)
create mode 100644 package/bind/0002-dlz_open_driver.c-fix-build-without-dlfcn.h.patch
diff --git a/package/bind/0002-dlz_open_driver.c-fix-build-without-dlfcn.h.patch b/package/bind/0002-dlz_open_driver.c-fix-build-without-dlfcn.h.patch
new file mode 100644
index 0000000000..8b73e746e4
--- /dev/null
+++ b/package/bind/0002-dlz_open_driver.c-fix-build-without-dlfcn.h.patch
@@ -0,0 +1,28 @@
+From 92b738a0fe8a7d65346de9e6dd7a8f135ee29765 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Tue, 23 Apr 2019 22:45:25 +0200
+Subject: [PATCH] dlz_open_driver.c: fix build without dlfcn.h
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Upstream status: https://gitlab.isc.org/isc-projects/bind9/issues/995]
+---
+ bin/named/unix/dlz_dlopen_driver.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/bin/named/unix/dlz_dlopen_driver.c b/bin/named/unix/dlz_dlopen_driver.c
+index 74d29ffa09..ab8a5c9493 100644
+--- a/bin/named/unix/dlz_dlopen_driver.c
++++ b/bin/named/unix/dlz_dlopen_driver.c
+@@ -14,7 +14,9 @@
+ #include <inttypes.h>
+ #include <stdlib.h>
+ #include <string.h>
++#if HAVE_DLFCN_H
+ #include <dlfcn.h>
++#endif
+
+ #include <dns/log.h>
+ #include <dns/result.h>
+--
+2.20.1
+
diff --git a/package/bind/Config.in b/package/bind/Config.in
index 049a90cbaf..5b34b66f7a 100644
--- a/package/bind/Config.in
+++ b/package/bind/Config.in
@@ -2,7 +2,6 @@ config BR2_PACKAGE_BIND
bool "bind"
depends on BR2_USE_MMU # fork()
depends on BR2_TOOLCHAIN_HAS_THREADS
- depends on !BR2_STATIC_LIBS
help
BIND (Berkeley Internet Name Domain) is an
implementation of the Domain Name System (DNS) protocols
@@ -41,6 +40,6 @@ config BR2_PACKAGE_BIND_TOOLS
endif
-comment "bind needs a toolchain w/ threads, dynamic library"
+comment "bind needs a toolchain w/ threads"
depends on BR2_USE_MMU
- depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/bind/bind.mk b/package/bind/bind.mk
index b2bbafab20..87871bc60d 100644
--- a/package/bind/bind.mk
+++ b/package/bind/bind.mk
@@ -28,7 +28,6 @@ BIND_CONF_OPTS = \
--with-libjson=no \
--with-randomdev=/dev/urandom \
--enable-epoll \
- --with-libtool \
--with-gssapi=no \
--enable-filter-aaaa
@@ -54,12 +53,13 @@ BIND_CONF_OPTS += --with-libxml2=no
endif
ifeq ($(BR2_PACKAGE_OPENSSL),y)
-BIND_DEPENDENCIES += openssl
+BIND_DEPENDENCIES += host-pkgconf openssl
BIND_CONF_OPTS += \
--with-openssl=$(STAGING_DIR)/usr \
--with-ecdsa=yes \
--with-eddsa=no \
--with-aes=yes
+BIND_CONF_ENV += LIBS=`$(PKG_CONFIG_HOST_BINARY) --libs openssl`
# GOST cipher support requires openssl extra engines
ifeq ($(BR2_PACKAGE_OPENSSL_ENGINES),y)
BIND_CONF_OPTS += --with-gost=yes
@@ -81,6 +81,16 @@ else
BIND_CONF_OPTS += --with-readline=no
endif
+ifeq ($(BR2_STATIC_LIBS),y)
+BIND_CONF_OPTS += \
+ --without-dlopen \
+ --without-libtool
+else
+BIND_CONF_OPTS += \
+ --with-dlopen \
+ --with-libtool
+endif
+
define BIND_TARGET_REMOVE_SERVER
rm -rf $(addprefix $(TARGET_DIR)/usr/sbin/, $(BIND_TARGET_SERVER_SBIN))
endef
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v3, 2/4] package/bind: remove threads dependency
2019-04-26 16:56 [Buildroot] [PATCH v3,1/4] package/bind: enable static build Fabrice Fontaine
@ 2019-04-26 16:56 ` Fabrice Fontaine
2019-04-26 16:56 ` [Buildroot] [PATCH v3, 3/4] package/bind: don't enable server by default Fabrice Fontaine
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Fabrice Fontaine @ 2019-04-26 16:56 UTC (permalink / raw)
To: buildroot
Threads dependency has been added in 2015 with commit
07c1ad4647b6a8e60338fc01ddcb2d629de0ad14 however bind can be built
without threads thanks to --disable-threads
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
package/bind/Config.in | 5 -----
package/bind/bind.mk | 1 +
2 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/package/bind/Config.in b/package/bind/Config.in
index 5b34b66f7a..60546f691b 100644
--- a/package/bind/Config.in
+++ b/package/bind/Config.in
@@ -1,7 +1,6 @@
config BR2_PACKAGE_BIND
bool "bind"
depends on BR2_USE_MMU # fork()
- depends on BR2_TOOLCHAIN_HAS_THREADS
help
BIND (Berkeley Internet Name Domain) is an
implementation of the Domain Name System (DNS) protocols
@@ -39,7 +38,3 @@ config BR2_PACKAGE_BIND_TOOLS
Install tools (dig, host, nslookup, nsupdate)
endif
-
-comment "bind needs a toolchain w/ threads"
- depends on BR2_USE_MMU
- depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/bind/bind.mk b/package/bind/bind.mk
index 87871bc60d..29738cad4a 100644
--- a/package/bind/bind.mk
+++ b/package/bind/bind.mk
@@ -24,6 +24,7 @@ BIND_CONF_ENV = \
BUILD_CC="$(TARGET_CC)" \
BUILD_CFLAGS="$(TARGET_CFLAGS)"
BIND_CONF_OPTS = \
+ $(if $(BR2_TOOLCHAIN_HAS_THREADS),--enable-threads,--disable-threads) \
--without-lmdb \
--with-libjson=no \
--with-randomdev=/dev/urandom \
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v3, 3/4] package/bind: don't enable server by default
2019-04-26 16:56 [Buildroot] [PATCH v3,1/4] package/bind: enable static build Fabrice Fontaine
2019-04-26 16:56 ` [Buildroot] [PATCH v3, 2/4] package/bind: remove threads dependency Fabrice Fontaine
@ 2019-04-26 16:56 ` Fabrice Fontaine
2019-04-26 16:56 ` [Buildroot] [PATCH v3,4/4] package/dhcp: use system bind Fabrice Fontaine
2019-05-09 20:30 ` [Buildroot] [PATCH v3,1/4] package/bind: enable static build Thomas Petazzoni
3 siblings, 0 replies; 5+ messages in thread
From: Fabrice Fontaine @ 2019-04-26 16:56 UTC (permalink / raw)
To: buildroot
Don't enable server by default as dhcp will now select bind to use the
bind libraries
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
package/bind/Config.in | 1 -
1 file changed, 1 deletion(-)
diff --git a/package/bind/Config.in b/package/bind/Config.in
index 60546f691b..6d4ee2e6d7 100644
--- a/package/bind/Config.in
+++ b/package/bind/Config.in
@@ -28,7 +28,6 @@ if BR2_PACKAGE_BIND
config BR2_PACKAGE_BIND_SERVER
bool "Install server components"
- default y
help
Install server components (named, lwresd)
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v3,4/4] package/dhcp: use system bind
2019-04-26 16:56 [Buildroot] [PATCH v3,1/4] package/bind: enable static build Fabrice Fontaine
2019-04-26 16:56 ` [Buildroot] [PATCH v3, 2/4] package/bind: remove threads dependency Fabrice Fontaine
2019-04-26 16:56 ` [Buildroot] [PATCH v3, 3/4] package/bind: don't enable server by default Fabrice Fontaine
@ 2019-04-26 16:56 ` Fabrice Fontaine
2019-05-09 20:30 ` [Buildroot] [PATCH v3,1/4] package/bind: enable static build Thomas Petazzoni
3 siblings, 0 replies; 5+ messages in thread
From: Fabrice Fontaine @ 2019-04-26 16:56 UTC (permalink / raw)
To: buildroot
Select bind instead of using the embedded bind libraries. This will help
managing correctly all the bind dependencies such as zlib
Fixes:
- http://autobuild.buildroot.org/results/a61f24e9f117c81893c58befb20d21179e61b85b
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v2 -> v3 (after review of Thomas Petazzoni):
- Move bind9-config under BR2_STATIC_LIBS condition
- Drop DHCP_MAKE and DHCP_MAKE_ENV as these variables were set for the
embedded bind
Changes v1 -> v2 (after review of Thomas Petazzoni):
- Enable/disable libtool depending on BR2_STATIC_LIBS value
| 87 +++++++++++++++++++
package/dhcp/Config.in | 1 +
package/dhcp/dhcp.mk | 31 ++-----
3 files changed, 96 insertions(+), 23 deletions(-)
create mode 100644 package/dhcp/0001-master-Added-includes-of-new-BIND9-compatibility-headers-updated-util-bind-sh.patch
--git a/package/dhcp/0001-master-Added-includes-of-new-BIND9-compatibility-headers-updated-util-bind-sh.patch b/package/dhcp/0001-master-Added-includes-of-new-BIND9-compatibility-headers-updated-util-bind-sh.patch
new file mode 100644
index 0000000000..b8b187f17b
--- /dev/null
+++ b/package/dhcp/0001-master-Added-includes-of-new-BIND9-compatibility-headers-updated-util-bind-sh.patch
@@ -0,0 +1,87 @@
+From 8194daabfd590f17825f0c61e9534bee5c99cc86 Mon Sep 17 00:00:00 2001
+From: Thomas Markwalder <tmark@isc.org>
+Date: Fri, 14 Sep 2018 13:41:41 -0400
+Subject: [PATCH] [master] Added includes of new BIND9 compatibility headers,
+ updated util/bind.sh
+
+ Merges in rt48072.
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Retrieved (and updated to remvove bind.sh update) from:
+https://gitlab.isc.org/isc-projects/dhcp/commit/8194daabfd590f17825f0c61e9534bee5c99cc86]
+---
+ includes/omapip/isclib.h | 3 +++
+ includes/omapip/result.h | 1 +
+ server/dhcpv6.c | 13 +++++++++----
+ 3 files changed, 39 insertions(+), 12 deletions(-)
+
+diff --git a/includes/omapip/isclib.h b/includes/omapip/isclib.h
+index 75a87ff6..538b927f 100644
+--- a/includes/omapip/isclib.h
++++ b/includes/omapip/isclib.h
+@@ -48,6 +48,9 @@
+ #include <string.h>
+ #include <netdb.h>
+
++#include <isc/boolean.h>
++#include <isc/int.h>
++
+ #include <isc/buffer.h>
+ #include <isc/lex.h>
+ #include <isc/lib.h>
+diff --git a/includes/omapip/result.h b/includes/omapip/result.h
+index 91243e1b..860298f6 100644
+--- a/includes/omapip/result.h
++++ b/includes/omapip/result.h
+@@ -26,6 +26,7 @@
+ #ifndef DHCP_RESULT_H
+ #define DHCP_RESULT_H 1
+
++#include <isc/boolean.h>
+ #include <isc/lang.h>
+ #include <isc/resultclass.h>
+ #include <isc/types.h>
+diff --git a/server/dhcpv6.c b/server/dhcpv6.c
+index a7110f98..cde4f617 100644
+--- a/server/dhcpv6.c
++++ b/server/dhcpv6.c
+@@ -1034,7 +1034,8 @@ void check_pool6_threshold(struct reply_state *reply,
+ shared_name,
+ inet_ntop(AF_INET6, &lease->addr,
+ tmp_addr, sizeof(tmp_addr)),
+- used, count);
++ (long long unsigned)(used),
++ (long long unsigned)(count));
+ }
+ return;
+ }
+@@ -1066,7 +1067,8 @@ void check_pool6_threshold(struct reply_state *reply,
+ "address: %s; high threshold %d%% %llu/%llu.",
+ shared_name,
+ inet_ntop(AF_INET6, &lease->addr, tmp_addr, sizeof(tmp_addr)),
+- poolhigh, used, count);
++ poolhigh, (long long unsigned)(used),
++ (long long unsigned)(count));
+
+ /* handle the low threshold now, if we don't
+ * have one we default to 0. */
+@@ -1436,12 +1438,15 @@ pick_v6_address(struct reply_state *reply)
+ log_debug("Unable to pick client address: "
+ "no addresses available - shared network %s: "
+ " 2^64-1 < total, %llu active, %llu abandoned",
+- shared_name, active - abandoned, abandoned);
++ shared_name, (long long unsigned)(active - abandoned),
++ (long long unsigned)(abandoned));
+ } else {
+ log_debug("Unable to pick client address: "
+ "no addresses available - shared network %s: "
+ "%llu total, %llu active, %llu abandoned",
+- shared_name, total, active - abandoned, abandoned);
++ shared_name, (long long unsigned)(total),
++ (long long unsigned)(active - abandoned),
++ (long long unsigned)(abandoned));
+ }
+
+ return ISC_R_NORESOURCES;
+--
+2.18.1
+
diff --git a/package/dhcp/Config.in b/package/dhcp/Config.in
index 5340830902..a4930e53ba 100644
--- a/package/dhcp/Config.in
+++ b/package/dhcp/Config.in
@@ -3,6 +3,7 @@ config BR2_PACKAGE_DHCP
# fork()
depends on BR2_USE_MMU
depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
+ select BR2_PACKAGE_BIND
help
DHCP relay agent from the ISC DHCP distribution.
diff --git a/package/dhcp/dhcp.mk b/package/dhcp/dhcp.mk
index 9e7444eea6..1cef9724bd 100644
--- a/package/dhcp/dhcp.mk
+++ b/package/dhcp/dhcp.mk
@@ -9,13 +9,14 @@ DHCP_SITE = http://ftp.isc.org/isc/dhcp/$(DHCP_VERSION)
DHCP_INSTALL_STAGING = YES
DHCP_LICENSE = MPL-2.0
DHCP_LICENSE_FILES = LICENSE
+DHCP_DEPENDENCIES = bind
DHCP_CONF_ENV = \
CPPFLAGS='-D_PATH_DHCPD_CONF=\"/etc/dhcp/dhcpd.conf\" \
-D_PATH_DHCLIENT_CONF=\"/etc/dhcp/dhclient.conf\"' \
CFLAGS='$(TARGET_CFLAGS) -DISC_CHECK_NONE=1'
DHCP_CONF_OPTS = \
- --with-bind-extra-config="$(DHCP_BIND_CONF_OPTS)" \
+ --with-libbind=$(STAGING_DIR)/usr \
--with-randomdev=/dev/random \
--with-srv-lease-file=/var/lib/dhcp/dhcpd.leases \
--with-srv6-lease-file=/var/lib/dhcp/dhcpd6.leases \
@@ -28,31 +29,15 @@ DHCP_CONF_OPTS = \
--with-relay-pid-file=/var/run/dhcrelay.pid \
--with-relay6-pid-file=/var/run/dhcrelay6.pid
-# bind does not support parallel builds.
-DHCP_MAKE = $(MAKE1)
-
-# bind configure is called via dhcp make instead of dhcp configure. The make env
-# needs extra values for bind configure.
-DHCP_MAKE_ENV = \
- $(TARGET_CONFIGURE_OPTS) \
- BUILD_CC="$(HOSTCC)" \
- BUILD_CFLAGS="$(HOST_CFLAGS)" \
- BUILD_CPPFLAGS="$(HOST_CPPFLAGS)" \
- BUILD_LDFLAGS="$(HOST_LDFLAGS)"
-
-ifeq ($(BR2_PACKAGE_DHCP_SERVER_DELAYED_ACK),y)
-DHCP_CONF_OPTS += --enable-delayed-ack
-endif
-
-ifeq ($(BR2_PACKAGE_ZLIB),y)
-DHCP_DEPENDENCIES += zlib
-DHCP_BIND_CONF_OPTS += --with-zlib
+ifeq ($(BR2_STATIC_LIBS),y)
+DHCP_CONF_ENV += LIBS="`$(STAGING_DIR)/usr/bin/bind9-config --libs bind9`"
+DHCP_CONF_OPTS += --disable-libtool
else
-DHCP_BIND_CONF_OPTS += --without-zlib
+DHCP_CONF_OPTS += --enable-libtool
endif
-ifeq ($(BR2_STATIC_LIBS),y)
-DHCP_BIND_CONF_OPTS += --without-dlopen
+ifeq ($(BR2_PACKAGE_DHCP_SERVER_DELAYED_ACK),y)
+DHCP_CONF_OPTS += --enable-delayed-ack
endif
ifeq ($(BR2_PACKAGE_DHCP_SERVER),y)
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v3,1/4] package/bind: enable static build
2019-04-26 16:56 [Buildroot] [PATCH v3,1/4] package/bind: enable static build Fabrice Fontaine
` (2 preceding siblings ...)
2019-04-26 16:56 ` [Buildroot] [PATCH v3,4/4] package/dhcp: use system bind Fabrice Fontaine
@ 2019-05-09 20:30 ` Thomas Petazzoni
3 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2019-05-09 20:30 UTC (permalink / raw)
To: buildroot
Hello Fabrice,
On Fri, 26 Apr 2019 18:56:10 +0200
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
> Static build has been disabled in 2014 with commit
> 6045904752b06a8b8e52ba8fc2e49a8548964e8d however bind can be built
> statically thanks to --without-dlopen so enable it back
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> Changes v2 -> v3 (after review of Thomas Petazzoni):
> - Move bind9-config under BR2_STATIC_LIBS condition
> - Drop DHCP_MAKE and DHCP_MAKE_ENV as these variables were set for the
> embedded bind
Thanks, series applied!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-05-09 20:30 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-26 16:56 [Buildroot] [PATCH v3,1/4] package/bind: enable static build Fabrice Fontaine
2019-04-26 16:56 ` [Buildroot] [PATCH v3, 2/4] package/bind: remove threads dependency Fabrice Fontaine
2019-04-26 16:56 ` [Buildroot] [PATCH v3, 3/4] package/bind: don't enable server by default Fabrice Fontaine
2019-04-26 16:56 ` [Buildroot] [PATCH v3,4/4] package/dhcp: use system bind Fabrice Fontaine
2019-05-09 20:30 ` [Buildroot] [PATCH v3,1/4] package/bind: enable static build Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox