All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] zeromq packages: added dynamic library check
@ 2018-04-11 15:55 Asaf Kahlon
  2018-04-11 18:38 ` Baruch Siach
  0 siblings, 1 reply; 4+ messages in thread
From: Asaf Kahlon @ 2018-04-11 15:55 UTC (permalink / raw)
  To: buildroot

The zeromq package now needs dynamic library support.
Therefore the check was added to it, and to it's bindings.

Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
---
 DEVELOPERS                     |  1 +
 package/cppzmq/Config.in       |  6 ++++--
 package/czmq/Config.in         |  6 ++++--
 package/php-zmq/Config.in      | 10 ++++++----
 package/python-pyzmq/Config.in |  6 ++++--
 package/zeromq/Config.in       | 10 ++++------
 package/zmqpp/Config.in        |  5 +++--
 7 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/DEVELOPERS b/DEVELOPERS
index 00cbaeff37..bf7716316c 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -191,6 +191,7 @@ F:	package/stress/
 N:	Asaf Kahlon <asafka7@gmail.com>
 F:	package/python-jsonmodels/
 F:	package/python-yieldfrom/
+F:	package/zeromq
 
 N:	Ash Charles <ash.charles@savoirfairelinux.com>
 F:	package/pru-software-support/
diff --git a/package/cppzmq/Config.in b/package/cppzmq/Config.in
index c984c15c96..33fe7b6bca 100644
--- a/package/cppzmq/Config.in
+++ b/package/cppzmq/Config.in
@@ -2,11 +2,13 @@ config BR2_PACKAGE_CPPZMQ
 	bool "cppzmq"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
+	depends on !BR2_STATIC_LIBS # zeromq
 	select BR2_PACKAGE_ZEROMQ
 	help
 	  C++ binding for zeromq (ZeroMQ, 0MQ, zmq).
 
 	  http://github.com/zeromq/cppzmq
 
-comment "cppzmq needs a toolchain w/ C++, threads"
-	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
+comment "cppzmq needs a toolchain w/ dynamic library, C++, threads"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
+		BR2_STATIC_LIBS
diff --git a/package/czmq/Config.in b/package/czmq/Config.in
index 71389fce51..3cfe61ce42 100644
--- a/package/czmq/Config.in
+++ b/package/czmq/Config.in
@@ -3,12 +3,14 @@ config BR2_PACKAGE_CZMQ
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_INSTALL_LIBSTDCPP # zeromq
 	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
+	depends on !BR2_STATIC_LIBS # zeromq
 	select BR2_PACKAGE_ZEROMQ
 	help
 	  High-level C Binding for 0MQ
 
 	  http://czmq.zeromq.org/
 
-comment "czmq needs a toolchain w/ C++, threads"
+comment "czmq needs a toolchain w/ dynamic library, C++, threads"
 	depends on BR2_USE_MMU
-	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
+		BR2_STATIC_LIBS
diff --git a/package/php-zmq/Config.in b/package/php-zmq/Config.in
index 058f93d9a8..3ba0096e43 100644
--- a/package/php-zmq/Config.in
+++ b/package/php-zmq/Config.in
@@ -1,11 +1,13 @@
-comment "php-zmq needs a toolchain w/ C++, threads"
-	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
+comment "php-zmq needs a toolchain w/ dynamic library C++, threads"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
+		BR2_STATIC_LIBS
 
 config BR2_PACKAGE_PHP_ZMQ
 	bool "php-zmq"
 	depends on BR2_PACKAGE_PHP
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_INSTALL_LIBSTDCPP # zeromq
+	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
+	depends on !BR2_STATIC_LIBS # zeromq
 	select BR2_PACKAGE_ZEROMQ
 	help
 	  ZeroMQ messaging bindings for PHP
diff --git a/package/python-pyzmq/Config.in b/package/python-pyzmq/Config.in
index 8f33a635c8..306fa02bcb 100644
--- a/package/python-pyzmq/Config.in
+++ b/package/python-pyzmq/Config.in
@@ -2,12 +2,14 @@ config BR2_PACKAGE_PYTHON_PYZMQ
 	bool "python-pyzmq"
 	depends on BR2_INSTALL_LIBSTDCPP # zeromq
 	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
+	depends on !BR2_STATIC_LIBS # zeromq
 	select BR2_PACKAGE_ZEROMQ
 	help
 	  This package contains the python language binding for zeromq.
 
 	  http://zeromq.org/bindings:python
 
-comment "python-pyzmq needs a toolchain w/ C++, threads"
+comment "python-pyzmq needs a toolchain w/ dynamic library C++, threads"
 	depends on BR2_PACKAGE_PYTHON
-	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
+		BR2_STATIC_LIBS
diff --git a/package/zeromq/Config.in b/package/zeromq/Config.in
index 69be9f002c..038ff61912 100644
--- a/package/zeromq/Config.in
+++ b/package/zeromq/Config.in
@@ -1,10 +1,12 @@
-comment "zeromq needs a toolchain w/ C++, threads"
-	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
+comment "zeromq needs a toolchain w/ dynamic library, C++, threads"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
+		BR2_STATIC_LIBS
 
 config BR2_PACKAGE_ZEROMQ
 	bool "zeromq"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_STATIC_LIBS
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
 	help
@@ -25,12 +27,8 @@ config BR2_PACKAGE_ZEROMQ
 
 if BR2_PACKAGE_ZEROMQ
 
-comment "norm support needs a toolchain w/ dynamic library"
-	depends on BR2_STATIC_LIBS
-
 config BR2_PACKAGE_ZEROMQ_NORM
 	bool "NORM support"
-	depends on !BR2_STATIC_LIBS
 	select BR2_PACKAGE_NORM
 	help
 	  Add support for NACK-Oriented Reliable Multicast (RFC 5740)
diff --git a/package/zmqpp/Config.in b/package/zmqpp/Config.in
index 8dad80e451..3bb427cc5b 100644
--- a/package/zmqpp/Config.in
+++ b/package/zmqpp/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_ZMQPP
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
+	depends on !BR2_STATIC_LIBS # zeromq
 	select BR2_PACKAGE_ZEROMQ
 	help
 	  C++ binding for zeromq (ZeroMQ, 0MQ, zmq).
@@ -13,9 +14,9 @@ config BR2_PACKAGE_ZMQPP
 
 	  http://github.com/benjamg/zmqpp
 
-comment "zmqpp needs a toolchain w/ C++, threads, gcc >= 4.7"
+comment "zmqpp needs a toolchain w/ dynamic library, C++, threads"
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
+		BR2_STATIC_LIBS
 
 if BR2_PACKAGE_ZMQPP
 
-- 
2.17.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] zeromq packages: added dynamic library check
  2018-04-11 15:55 [Buildroot] [PATCH 1/1] zeromq packages: added dynamic library check Asaf Kahlon
@ 2018-04-11 18:38 ` Baruch Siach
  2018-04-11 19:35   ` Asaf Kahlon
  0 siblings, 1 reply; 4+ messages in thread
From: Baruch Siach @ 2018-04-11 18:38 UTC (permalink / raw)
  To: buildroot

Hi Adaf,

On Wed, Apr 11, 2018 at 06:55:44PM +0300, Asaf Kahlon wrote:
> The zeromq package now needs dynamic library support.
> Therefore the check was added to it, and to it's bindings.

Please add a link an autobuilder build that this patch fixes.

You also need to propagate this added dependency to reverse dependencies 
recursively. So, for example, filemq also needs to depend on !static because 
it selects czmq.

But I think there is a way to avoid all that. The code that needs dladdr() in 
src/err.cpp depends on libunwind. The configure.ac section that checks for 
libunwind checks also dladdr(). So this configure failure is unnecessary. Just 
add libdld to the list of libraries, and remove the configure failing check.

Can you suggest upstream something along this line?

Thanks,
baruch

> Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
> ---
>  DEVELOPERS                     |  1 +
>  package/cppzmq/Config.in       |  6 ++++--
>  package/czmq/Config.in         |  6 ++++--
>  package/php-zmq/Config.in      | 10 ++++++----
>  package/python-pyzmq/Config.in |  6 ++++--
>  package/zeromq/Config.in       | 10 ++++------
>  package/zmqpp/Config.in        |  5 +++--
>  7 files changed, 26 insertions(+), 18 deletions(-)
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 00cbaeff37..bf7716316c 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -191,6 +191,7 @@ F:	package/stress/
>  N:	Asaf Kahlon <asafka7@gmail.com>
>  F:	package/python-jsonmodels/
>  F:	package/python-yieldfrom/
> +F:	package/zeromq
>  
>  N:	Ash Charles <ash.charles@savoirfairelinux.com>
>  F:	package/pru-software-support/
> diff --git a/package/cppzmq/Config.in b/package/cppzmq/Config.in
> index c984c15c96..33fe7b6bca 100644
> --- a/package/cppzmq/Config.in
> +++ b/package/cppzmq/Config.in
> @@ -2,11 +2,13 @@ config BR2_PACKAGE_CPPZMQ
>  	bool "cppzmq"
>  	depends on BR2_INSTALL_LIBSTDCPP
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> +	depends on !BR2_STATIC_LIBS # zeromq
>  	select BR2_PACKAGE_ZEROMQ
>  	help
>  	  C++ binding for zeromq (ZeroMQ, 0MQ, zmq).
>  
>  	  http://github.com/zeromq/cppzmq
>  
> -comment "cppzmq needs a toolchain w/ C++, threads"
> -	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> +comment "cppzmq needs a toolchain w/ dynamic library, C++, threads"
> +	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
> +		BR2_STATIC_LIBS
> diff --git a/package/czmq/Config.in b/package/czmq/Config.in
> index 71389fce51..3cfe61ce42 100644
> --- a/package/czmq/Config.in
> +++ b/package/czmq/Config.in
> @@ -3,12 +3,14 @@ config BR2_PACKAGE_CZMQ
>  	depends on BR2_USE_MMU # fork()
>  	depends on BR2_INSTALL_LIBSTDCPP # zeromq
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> +	depends on !BR2_STATIC_LIBS # zeromq
>  	select BR2_PACKAGE_ZEROMQ
>  	help
>  	  High-level C Binding for 0MQ
>  
>  	  http://czmq.zeromq.org/
>  
> -comment "czmq needs a toolchain w/ C++, threads"
> +comment "czmq needs a toolchain w/ dynamic library, C++, threads"
>  	depends on BR2_USE_MMU
> -	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> +	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
> +		BR2_STATIC_LIBS
> diff --git a/package/php-zmq/Config.in b/package/php-zmq/Config.in
> index 058f93d9a8..3ba0096e43 100644
> --- a/package/php-zmq/Config.in
> +++ b/package/php-zmq/Config.in
> @@ -1,11 +1,13 @@
> -comment "php-zmq needs a toolchain w/ C++, threads"
> -	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> +comment "php-zmq needs a toolchain w/ dynamic library C++, threads"
> +	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
> +		BR2_STATIC_LIBS
>  
>  config BR2_PACKAGE_PHP_ZMQ
>  	bool "php-zmq"
>  	depends on BR2_PACKAGE_PHP
> -	depends on BR2_INSTALL_LIBSTDCPP
> -	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_INSTALL_LIBSTDCPP # zeromq
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> +	depends on !BR2_STATIC_LIBS # zeromq
>  	select BR2_PACKAGE_ZEROMQ
>  	help
>  	  ZeroMQ messaging bindings for PHP
> diff --git a/package/python-pyzmq/Config.in b/package/python-pyzmq/Config.in
> index 8f33a635c8..306fa02bcb 100644
> --- a/package/python-pyzmq/Config.in
> +++ b/package/python-pyzmq/Config.in
> @@ -2,12 +2,14 @@ config BR2_PACKAGE_PYTHON_PYZMQ
>  	bool "python-pyzmq"
>  	depends on BR2_INSTALL_LIBSTDCPP # zeromq
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> +	depends on !BR2_STATIC_LIBS # zeromq
>  	select BR2_PACKAGE_ZEROMQ
>  	help
>  	  This package contains the python language binding for zeromq.
>  
>  	  http://zeromq.org/bindings:python
>  
> -comment "python-pyzmq needs a toolchain w/ C++, threads"
> +comment "python-pyzmq needs a toolchain w/ dynamic library C++, threads"
>  	depends on BR2_PACKAGE_PYTHON
> -	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> +	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
> +		BR2_STATIC_LIBS
> diff --git a/package/zeromq/Config.in b/package/zeromq/Config.in
> index 69be9f002c..038ff61912 100644
> --- a/package/zeromq/Config.in
> +++ b/package/zeromq/Config.in
> @@ -1,10 +1,12 @@
> -comment "zeromq needs a toolchain w/ C++, threads"
> -	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> +comment "zeromq needs a toolchain w/ dynamic library, C++, threads"
> +	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
> +		BR2_STATIC_LIBS
>  
>  config BR2_PACKAGE_ZEROMQ
>  	bool "zeromq"
>  	depends on BR2_INSTALL_LIBSTDCPP
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on !BR2_STATIC_LIBS
>  	select BR2_PACKAGE_UTIL_LINUX
>  	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
>  	help
> @@ -25,12 +27,8 @@ config BR2_PACKAGE_ZEROMQ
>  
>  if BR2_PACKAGE_ZEROMQ
>  
> -comment "norm support needs a toolchain w/ dynamic library"
> -	depends on BR2_STATIC_LIBS
> -
>  config BR2_PACKAGE_ZEROMQ_NORM
>  	bool "NORM support"
> -	depends on !BR2_STATIC_LIBS
>  	select BR2_PACKAGE_NORM
>  	help
>  	  Add support for NACK-Oriented Reliable Multicast (RFC 5740)
> diff --git a/package/zmqpp/Config.in b/package/zmqpp/Config.in
> index 8dad80e451..3bb427cc5b 100644
> --- a/package/zmqpp/Config.in
> +++ b/package/zmqpp/Config.in
> @@ -4,6 +4,7 @@ config BR2_PACKAGE_ZMQPP
>  	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
>  	depends on BR2_INSTALL_LIBSTDCPP
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> +	depends on !BR2_STATIC_LIBS # zeromq
>  	select BR2_PACKAGE_ZEROMQ
>  	help
>  	  C++ binding for zeromq (ZeroMQ, 0MQ, zmq).
> @@ -13,9 +14,9 @@ config BR2_PACKAGE_ZMQPP
>  
>  	  http://github.com/benjamg/zmqpp
>  
> -comment "zmqpp needs a toolchain w/ C++, threads, gcc >= 4.7"
> +comment "zmqpp needs a toolchain w/ dynamic library, C++, threads"
>  	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
> -		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
> +		BR2_STATIC_LIBS
>  
>  if BR2_PACKAGE_ZMQPP

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] zeromq packages: added dynamic library check
  2018-04-11 18:38 ` Baruch Siach
@ 2018-04-11 19:35   ` Asaf Kahlon
  2018-04-12  5:44     ` Baruch Siach
  0 siblings, 1 reply; 4+ messages in thread
From: Asaf Kahlon @ 2018-04-11 19:35 UTC (permalink / raw)
  To: buildroot

I want to make sure I understand.

Are we going to patch the configure.ac file and add something like
AC_CHECK_LIB([dl], [function]), and remove the dladdr check?
If yes, can you please elaborate why it's going to solve the problem? When
I think about it after you brought up libunwind, I'm asking myself if
zeromq should select this package too...

Thanks,
Asaf.

On Wed, Apr 11, 2018 at 9:38 PM, Baruch Siach <baruch@tkos.co.il> wrote:

> Hi Adaf,
>
> On Wed, Apr 11, 2018 at 06:55:44PM +0300, Asaf Kahlon wrote:
> > The zeromq package now needs dynamic library support.
> > Therefore the check was added to it, and to it's bindings.
>
> Please add a link an autobuilder build that this patch fixes.
>
> You also need to propagate this added dependency to reverse dependencies
> recursively. So, for example, filemq also needs to depend on !static
> because
> it selects czmq.
>
> But I think there is a way to avoid all that. The code that needs dladdr()
> in
> src/err.cpp depends on libunwind. The configure.ac section that checks for
> libunwind checks also dladdr(). So this configure failure is unnecessary.
> Just
> add libdld to the list of libraries, and remove the configure failing
> check.
>
> Can you suggest upstream something along this line?
>
> Thanks,
> baruch
>
> > Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
> > ---
> >  DEVELOPERS                     |  1 +
> >  package/cppzmq/Config.in       |  6 ++++--
> >  package/czmq/Config.in         |  6 ++++--
> >  package/php-zmq/Config.in      | 10 ++++++----
> >  package/python-pyzmq/Config.in |  6 ++++--
> >  package/zeromq/Config.in       | 10 ++++------
> >  package/zmqpp/Config.in        |  5 +++--
> >  7 files changed, 26 insertions(+), 18 deletions(-)
> >
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index 00cbaeff37..bf7716316c 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -191,6 +191,7 @@ F:        package/stress/
> >  N:   Asaf Kahlon <asafka7@gmail.com>
> >  F:   package/python-jsonmodels/
> >  F:   package/python-yieldfrom/
> > +F:   package/zeromq
> >
> >  N:   Ash Charles <ash.charles@savoirfairelinux.com>
> >  F:   package/pru-software-support/
> > diff --git a/package/cppzmq/Config.in b/package/cppzmq/Config.in
> > index c984c15c96..33fe7b6bca 100644
> > --- a/package/cppzmq/Config.in
> > +++ b/package/cppzmq/Config.in
> > @@ -2,11 +2,13 @@ config BR2_PACKAGE_CPPZMQ
> >       bool "cppzmq"
> >       depends on BR2_INSTALL_LIBSTDCPP
> >       depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> > +     depends on !BR2_STATIC_LIBS # zeromq
> >       select BR2_PACKAGE_ZEROMQ
> >       help
> >         C++ binding for zeromq (ZeroMQ, 0MQ, zmq).
> >
> >         http://github.com/zeromq/cppzmq
> >
> > -comment "cppzmq needs a toolchain w/ C++, threads"
> > -     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> > +comment "cppzmq needs a toolchain w/ dynamic library, C++, threads"
> > +     depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> \
> > +             BR2_STATIC_LIBS
> > diff --git a/package/czmq/Config.in b/package/czmq/Config.in
> > index 71389fce51..3cfe61ce42 100644
> > --- a/package/czmq/Config.in
> > +++ b/package/czmq/Config.in
> > @@ -3,12 +3,14 @@ config BR2_PACKAGE_CZMQ
> >       depends on BR2_USE_MMU # fork()
> >       depends on BR2_INSTALL_LIBSTDCPP # zeromq
> >       depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> > +     depends on !BR2_STATIC_LIBS # zeromq
> >       select BR2_PACKAGE_ZEROMQ
> >       help
> >         High-level C Binding for 0MQ
> >
> >         http://czmq.zeromq.org/
> >
> > -comment "czmq needs a toolchain w/ C++, threads"
> > +comment "czmq needs a toolchain w/ dynamic library, C++, threads"
> >       depends on BR2_USE_MMU
> > -     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> > +     depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> \
> > +             BR2_STATIC_LIBS
> > diff --git a/package/php-zmq/Config.in b/package/php-zmq/Config.in
> > index 058f93d9a8..3ba0096e43 100644
> > --- a/package/php-zmq/Config.in
> > +++ b/package/php-zmq/Config.in
> > @@ -1,11 +1,13 @@
> > -comment "php-zmq needs a toolchain w/ C++, threads"
> > -     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> > +comment "php-zmq needs a toolchain w/ dynamic library C++, threads"
> > +     depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> \
> > +             BR2_STATIC_LIBS
> >
> >  config BR2_PACKAGE_PHP_ZMQ
> >       bool "php-zmq"
> >       depends on BR2_PACKAGE_PHP
> > -     depends on BR2_INSTALL_LIBSTDCPP
> > -     depends on BR2_TOOLCHAIN_HAS_THREADS
> > +     depends on BR2_INSTALL_LIBSTDCPP # zeromq
> > +     depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> > +     depends on !BR2_STATIC_LIBS # zeromq
> >       select BR2_PACKAGE_ZEROMQ
> >       help
> >         ZeroMQ messaging bindings for PHP
> > diff --git a/package/python-pyzmq/Config.in
> b/package/python-pyzmq/Config.in
> > index 8f33a635c8..306fa02bcb 100644
> > --- a/package/python-pyzmq/Config.in
> > +++ b/package/python-pyzmq/Config.in
> > @@ -2,12 +2,14 @@ config BR2_PACKAGE_PYTHON_PYZMQ
> >       bool "python-pyzmq"
> >       depends on BR2_INSTALL_LIBSTDCPP # zeromq
> >       depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> > +     depends on !BR2_STATIC_LIBS # zeromq
> >       select BR2_PACKAGE_ZEROMQ
> >       help
> >         This package contains the python language binding for zeromq.
> >
> >         http://zeromq.org/bindings:python
> >
> > -comment "python-pyzmq needs a toolchain w/ C++, threads"
> > +comment "python-pyzmq needs a toolchain w/ dynamic library C++, threads"
> >       depends on BR2_PACKAGE_PYTHON
> > -     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> > +     depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> \
> > +             BR2_STATIC_LIBS
> > diff --git a/package/zeromq/Config.in b/package/zeromq/Config.in
> > index 69be9f002c..038ff61912 100644
> > --- a/package/zeromq/Config.in
> > +++ b/package/zeromq/Config.in
> > @@ -1,10 +1,12 @@
> > -comment "zeromq needs a toolchain w/ C++, threads"
> > -     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> > +comment "zeromq needs a toolchain w/ dynamic library, C++, threads"
> > +     depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> \
> > +             BR2_STATIC_LIBS
> >
> >  config BR2_PACKAGE_ZEROMQ
> >       bool "zeromq"
> >       depends on BR2_INSTALL_LIBSTDCPP
> >       depends on BR2_TOOLCHAIN_HAS_THREADS
> > +     depends on !BR2_STATIC_LIBS
> >       select BR2_PACKAGE_UTIL_LINUX
> >       select BR2_PACKAGE_UTIL_LINUX_LIBUUID
> >       help
> > @@ -25,12 +27,8 @@ config BR2_PACKAGE_ZEROMQ
> >
> >  if BR2_PACKAGE_ZEROMQ
> >
> > -comment "norm support needs a toolchain w/ dynamic library"
> > -     depends on BR2_STATIC_LIBS
> > -
> >  config BR2_PACKAGE_ZEROMQ_NORM
> >       bool "NORM support"
> > -     depends on !BR2_STATIC_LIBS
> >       select BR2_PACKAGE_NORM
> >       help
> >         Add support for NACK-Oriented Reliable Multicast (RFC 5740)
> > diff --git a/package/zmqpp/Config.in b/package/zmqpp/Config.in
> > index 8dad80e451..3bb427cc5b 100644
> > --- a/package/zmqpp/Config.in
> > +++ b/package/zmqpp/Config.in
> > @@ -4,6 +4,7 @@ config BR2_PACKAGE_ZMQPP
> >       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
> >       depends on BR2_INSTALL_LIBSTDCPP
> >       depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> > +     depends on !BR2_STATIC_LIBS # zeromq
> >       select BR2_PACKAGE_ZEROMQ
> >       help
> >         C++ binding for zeromq (ZeroMQ, 0MQ, zmq).
> > @@ -13,9 +14,9 @@ config BR2_PACKAGE_ZMQPP
> >
> >         http://github.com/benjamg/zmqpp
> >
> > -comment "zmqpp needs a toolchain w/ C++, threads, gcc >= 4.7"
> > +comment "zmqpp needs a toolchain w/ dynamic library, C++, threads"
> >       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> \
> > -             !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
> > +             BR2_STATIC_LIBS
> >
> >  if BR2_PACKAGE_ZMQPP
>
> --
>      http://baruch.siach.name/blog/                  ~. .~   Tk Open
> Systems
> =}------------------------------------------------ooO--U--
> Ooo------------{=
>    - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180411/df5bd9b3/attachment.html>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] zeromq packages: added dynamic library check
  2018-04-11 19:35   ` Asaf Kahlon
@ 2018-04-12  5:44     ` Baruch Siach
  0 siblings, 0 replies; 4+ messages in thread
From: Baruch Siach @ 2018-04-12  5:44 UTC (permalink / raw)
  To: buildroot

Hi Asaf,

On Wed, Apr 11, 2018 at 10:35:56PM +0300, Asaf Kahlon wrote:
> I want to make sure I understand.
> 
> Are we going to patch the configure.ac file and add something like
> AC_CHECK_LIB([dl], [function]), and remove the dladdr check?
> If yes, can you please elaborate why it's going to solve the problem?

Here is what I have in mind, totally untested:

diff --git a/configure.ac b/configure.ac
index 9e9a889f7c99..6cce53830d58 100644
--- a/configure.ac
+++ b/configure.ac
@@ -175,11 +175,6 @@ case "${host_os}" in
         AC_DEFINE(ZMQ_HAVE_LINUX, 1, [Have Linux OS])
         libzmq_on_linux="yes"
 
-        # dladdr/dlopen is in libdl on glibc
-        AC_SEARCH_LIBS([dladdr], [dl dld], [], [
-          AC_MSG_ERROR([unable to find the dladdr() function])
-        ])
-
         if test "x$libzmq_tipc_support" = "xyes"; then
             AC_DEFINE(ZMQ_HAVE_TIPC, 1, [Have TIPC support])
         fi
@@ -784,7 +779,7 @@ if test "x$enable_libunwind" != "xno"; then
             AC_DEFINE(HAVE_LIBUNWIND, 1, [The libunwind library is to be used])
             AC_SUBST([LIBUNWIND_CFLAGS])
             AC_SUBST([LIBUNWIND_LIBS])
-            AC_CHECK_LIB([dl], [dladdr])
+            AC_SEARCH_LIBS([dladdr], [dl dld])
         ],
         [
             if test "x$enable_libunwind" = "xyes"; then

> When I think about it after you brought up libunwind, I'm asking myself if
> zeromq should select this package too...

Not select, since libunwind is not a mandatory dependency. But adding an 
optional dependency on libunwind would be nice.

baruch

> On Wed, Apr 11, 2018 at 9:38 PM, Baruch Siach <baruch@tkos.co.il> wrote:
> > On Wed, Apr 11, 2018 at 06:55:44PM +0300, Asaf Kahlon wrote:
> > > The zeromq package now needs dynamic library support.
> > > Therefore the check was added to it, and to it's bindings.
> >
> > Please add a link an autobuilder build that this patch fixes.
> >
> > You also need to propagate this added dependency to reverse dependencies
> > recursively. So, for example, filemq also needs to depend on !static
> > because
> > it selects czmq.
> >
> > But I think there is a way to avoid all that. The code that needs dladdr()
> > in
> > src/err.cpp depends on libunwind. The configure.ac section that checks for
> > libunwind checks also dladdr(). So this configure failure is unnecessary.
> > Just
> > add libdld to the list of libraries, and remove the configure failing
> > check.
> >
> > Can you suggest upstream something along this line?
> >
> > Thanks,
> > baruch
> >
> > > Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
> > > ---
> > >  DEVELOPERS                     |  1 +
> > >  package/cppzmq/Config.in       |  6 ++++--
> > >  package/czmq/Config.in         |  6 ++++--
> > >  package/php-zmq/Config.in      | 10 ++++++----
> > >  package/python-pyzmq/Config.in |  6 ++++--
> > >  package/zeromq/Config.in       | 10 ++++------
> > >  package/zmqpp/Config.in        |  5 +++--
> > >  7 files changed, 26 insertions(+), 18 deletions(-)
> > >
> > > diff --git a/DEVELOPERS b/DEVELOPERS
> > > index 00cbaeff37..bf7716316c 100644
> > > --- a/DEVELOPERS
> > > +++ b/DEVELOPERS
> > > @@ -191,6 +191,7 @@ F:        package/stress/
> > >  N:   Asaf Kahlon <asafka7@gmail.com>
> > >  F:   package/python-jsonmodels/
> > >  F:   package/python-yieldfrom/
> > > +F:   package/zeromq
> > >
> > >  N:   Ash Charles <ash.charles@savoirfairelinux.com>
> > >  F:   package/pru-software-support/
> > > diff --git a/package/cppzmq/Config.in b/package/cppzmq/Config.in
> > > index c984c15c96..33fe7b6bca 100644
> > > --- a/package/cppzmq/Config.in
> > > +++ b/package/cppzmq/Config.in
> > > @@ -2,11 +2,13 @@ config BR2_PACKAGE_CPPZMQ
> > >       bool "cppzmq"
> > >       depends on BR2_INSTALL_LIBSTDCPP
> > >       depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> > > +     depends on !BR2_STATIC_LIBS # zeromq
> > >       select BR2_PACKAGE_ZEROMQ
> > >       help
> > >         C++ binding for zeromq (ZeroMQ, 0MQ, zmq).
> > >
> > >         http://github.com/zeromq/cppzmq
> > >
> > > -comment "cppzmq needs a toolchain w/ C++, threads"
> > > -     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> > > +comment "cppzmq needs a toolchain w/ dynamic library, C++, threads"
> > > +     depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> > \
> > > +             BR2_STATIC_LIBS
> > > diff --git a/package/czmq/Config.in b/package/czmq/Config.in
> > > index 71389fce51..3cfe61ce42 100644
> > > --- a/package/czmq/Config.in
> > > +++ b/package/czmq/Config.in
> > > @@ -3,12 +3,14 @@ config BR2_PACKAGE_CZMQ
> > >       depends on BR2_USE_MMU # fork()
> > >       depends on BR2_INSTALL_LIBSTDCPP # zeromq
> > >       depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> > > +     depends on !BR2_STATIC_LIBS # zeromq
> > >       select BR2_PACKAGE_ZEROMQ
> > >       help
> > >         High-level C Binding for 0MQ
> > >
> > >         http://czmq.zeromq.org/
> > >
> > > -comment "czmq needs a toolchain w/ C++, threads"
> > > +comment "czmq needs a toolchain w/ dynamic library, C++, threads"
> > >       depends on BR2_USE_MMU
> > > -     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> > > +     depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> > \
> > > +             BR2_STATIC_LIBS
> > > diff --git a/package/php-zmq/Config.in b/package/php-zmq/Config.in
> > > index 058f93d9a8..3ba0096e43 100644
> > > --- a/package/php-zmq/Config.in
> > > +++ b/package/php-zmq/Config.in
> > > @@ -1,11 +1,13 @@
> > > -comment "php-zmq needs a toolchain w/ C++, threads"
> > > -     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> > > +comment "php-zmq needs a toolchain w/ dynamic library C++, threads"
> > > +     depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> > \
> > > +             BR2_STATIC_LIBS
> > >
> > >  config BR2_PACKAGE_PHP_ZMQ
> > >       bool "php-zmq"
> > >       depends on BR2_PACKAGE_PHP
> > > -     depends on BR2_INSTALL_LIBSTDCPP
> > > -     depends on BR2_TOOLCHAIN_HAS_THREADS
> > > +     depends on BR2_INSTALL_LIBSTDCPP # zeromq
> > > +     depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> > > +     depends on !BR2_STATIC_LIBS # zeromq
> > >       select BR2_PACKAGE_ZEROMQ
> > >       help
> > >         ZeroMQ messaging bindings for PHP
> > > diff --git a/package/python-pyzmq/Config.in
> > b/package/python-pyzmq/Config.in
> > > index 8f33a635c8..306fa02bcb 100644
> > > --- a/package/python-pyzmq/Config.in
> > > +++ b/package/python-pyzmq/Config.in
> > > @@ -2,12 +2,14 @@ config BR2_PACKAGE_PYTHON_PYZMQ
> > >       bool "python-pyzmq"
> > >       depends on BR2_INSTALL_LIBSTDCPP # zeromq
> > >       depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> > > +     depends on !BR2_STATIC_LIBS # zeromq
> > >       select BR2_PACKAGE_ZEROMQ
> > >       help
> > >         This package contains the python language binding for zeromq.
> > >
> > >         http://zeromq.org/bindings:python
> > >
> > > -comment "python-pyzmq needs a toolchain w/ C++, threads"
> > > +comment "python-pyzmq needs a toolchain w/ dynamic library C++, threads"
> > >       depends on BR2_PACKAGE_PYTHON
> > > -     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> > > +     depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> > \
> > > +             BR2_STATIC_LIBS
> > > diff --git a/package/zeromq/Config.in b/package/zeromq/Config.in
> > > index 69be9f002c..038ff61912 100644
> > > --- a/package/zeromq/Config.in
> > > +++ b/package/zeromq/Config.in
> > > @@ -1,10 +1,12 @@
> > > -comment "zeromq needs a toolchain w/ C++, threads"
> > > -     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
> > > +comment "zeromq needs a toolchain w/ dynamic library, C++, threads"
> > > +     depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> > \
> > > +             BR2_STATIC_LIBS
> > >
> > >  config BR2_PACKAGE_ZEROMQ
> > >       bool "zeromq"
> > >       depends on BR2_INSTALL_LIBSTDCPP
> > >       depends on BR2_TOOLCHAIN_HAS_THREADS
> > > +     depends on !BR2_STATIC_LIBS
> > >       select BR2_PACKAGE_UTIL_LINUX
> > >       select BR2_PACKAGE_UTIL_LINUX_LIBUUID
> > >       help
> > > @@ -25,12 +27,8 @@ config BR2_PACKAGE_ZEROMQ
> > >
> > >  if BR2_PACKAGE_ZEROMQ
> > >
> > > -comment "norm support needs a toolchain w/ dynamic library"
> > > -     depends on BR2_STATIC_LIBS
> > > -
> > >  config BR2_PACKAGE_ZEROMQ_NORM
> > >       bool "NORM support"
> > > -     depends on !BR2_STATIC_LIBS
> > >       select BR2_PACKAGE_NORM
> > >       help
> > >         Add support for NACK-Oriented Reliable Multicast (RFC 5740)
> > > diff --git a/package/zmqpp/Config.in b/package/zmqpp/Config.in
> > > index 8dad80e451..3bb427cc5b 100644
> > > --- a/package/zmqpp/Config.in
> > > +++ b/package/zmqpp/Config.in
> > > @@ -4,6 +4,7 @@ config BR2_PACKAGE_ZMQPP
> > >       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
> > >       depends on BR2_INSTALL_LIBSTDCPP
> > >       depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> > > +     depends on !BR2_STATIC_LIBS # zeromq
> > >       select BR2_PACKAGE_ZEROMQ
> > >       help
> > >         C++ binding for zeromq (ZeroMQ, 0MQ, zmq).
> > > @@ -13,9 +14,9 @@ config BR2_PACKAGE_ZMQPP
> > >
> > >         http://github.com/benjamg/zmqpp
> > >
> > > -comment "zmqpp needs a toolchain w/ C++, threads, gcc >= 4.7"
> > > +comment "zmqpp needs a toolchain w/ dynamic library, C++, threads"
> > >       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS ||
> > \
> > > -             !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
> > > +             BR2_STATIC_LIBS
> > >
> > >  if BR2_PACKAGE_ZMQPP

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-04-12  5:44 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-11 15:55 [Buildroot] [PATCH 1/1] zeromq packages: added dynamic library check Asaf Kahlon
2018-04-11 18:38 ` Baruch Siach
2018-04-11 19:35   ` Asaf Kahlon
2018-04-12  5:44     ` Baruch Siach

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.