* [Buildroot] [PATCH] package/knock: fix static build with libusb
@ 2014-06-22 17:04 Yann E. MORIN
2014-06-22 17:08 ` Thomas Petazzoni
2014-06-22 17:26 ` Baruch Siach
0 siblings, 2 replies; 4+ messages in thread
From: Yann E. MORIN @ 2014-06-22 17:04 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
knock depends on libpcap, that has an optional dependency on libusb.
Alas, libpcap does not install a .pc file, so knock does not know
that it should link with -lusb-1.0.
When linking dynamically, this is not an issue, since the linker does
follow the DT_NEEDED tags of libpcap, and thus pulls libusb-1.0 in at
the same time. And since linusb uses threads, libpthread is pulled in
as well.
However, when linking statically, all of this fails.
Fix that by telling knock's ./configure what libraries to link with
when doing a static build and libusb is enabled.
Fixes:
http://autobuild.buildroot.net/results/1eb/1eb877ebd9469c9261bf114fc7733819ae3fd562/
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/knock/knock.mk | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/package/knock/knock.mk b/package/knock/knock.mk
index 8d2b41e..ace23fa 100644
--- a/package/knock/knock.mk
+++ b/package/knock/knock.mk
@@ -10,4 +10,8 @@ KNOCK_LICENSE = GPLv2+
KNOCK_LICENSE_FILES = COPYING
KNOCK_DEPENDENCIES = libpcap
+ifeq ($(BR2_PREFER_STATIC_LIB)$(BR2_PACKAGE_LIBUSB),yy)
+KNOCK_CONF_OPT = LIBS="-lusb-1.0 -pthread"
+endif
+
$(eval $(autotools-package))
--
1.8.3.2
^ permalink raw reply related [flat|nested] 4+ messages in thread* [Buildroot] [PATCH] package/knock: fix static build with libusb 2014-06-22 17:04 [Buildroot] [PATCH] package/knock: fix static build with libusb Yann E. MORIN @ 2014-06-22 17:08 ` Thomas Petazzoni 2014-06-22 17:29 ` Yann E. MORIN 2014-06-22 17:26 ` Baruch Siach 1 sibling, 1 reply; 4+ messages in thread From: Thomas Petazzoni @ 2014-06-22 17:08 UTC (permalink / raw) To: buildroot Dear Yann E. MORIN, On Sun, 22 Jun 2014 19:04:56 +0200, Yann E. MORIN wrote: > From: "Yann E. MORIN" <yann.morin.1998@free.fr> > > knock depends on libpcap, that has an optional dependency on libusb. > Alas, libpcap does not install a .pc file, so knock does not know > that it should link with -lusb-1.0. > > When linking dynamically, this is not an issue, since the linker does > follow the DT_NEEDED tags of libpcap, and thus pulls libusb-1.0 in at > the same time. And since linusb uses threads, libpthread is pulled in > as well. > > However, when linking statically, all of this fails. > > Fix that by telling knock's ./configure what libraries to link with > when doing a static build and libusb is enabled. > > Fixes: > http://autobuild.buildroot.net/results/1eb/1eb877ebd9469c9261bf114fc7733819ae3fd562/ > > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> > --- > package/knock/knock.mk | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/package/knock/knock.mk b/package/knock/knock.mk > index 8d2b41e..ace23fa 100644 > --- a/package/knock/knock.mk > +++ b/package/knock/knock.mk > @@ -10,4 +10,8 @@ KNOCK_LICENSE = GPLv2+ > KNOCK_LICENSE_FILES = COPYING > KNOCK_DEPENDENCIES = libpcap > > +ifeq ($(BR2_PREFER_STATIC_LIB)$(BR2_PACKAGE_LIBUSB),yy) > +KNOCK_CONF_OPT = LIBS="-lusb-1.0 -pthread" > +endif Thanks. However, I've already stated that before, but I continue to wonder if this is the right way to fix this. Shouldn't we instead fix libcap by adding a .pc file and submit that upstream, instead of adding more and more LIBS="-lblah" all over the place? Of course, that's not a comment targeted specifically at your patch (we're doing the same thing for many other packages), but I'm wondering if that's the right thing to do. Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] package/knock: fix static build with libusb 2014-06-22 17:08 ` Thomas Petazzoni @ 2014-06-22 17:29 ` Yann E. MORIN 0 siblings, 0 replies; 4+ messages in thread From: Yann E. MORIN @ 2014-06-22 17:29 UTC (permalink / raw) To: buildroot Thomas, All, On 2014-06-22 19:08 +0200, Thomas Petazzoni spake thusly: > On Sun, 22 Jun 2014 19:04:56 +0200, Yann E. MORIN wrote: > > From: "Yann E. MORIN" <yann.morin.1998@free.fr> > > > > knock depends on libpcap, that has an optional dependency on libusb. > > Alas, libpcap does not install a .pc file, so knock does not know > > that it should link with -lusb-1.0. > > > > When linking dynamically, this is not an issue, since the linker does > > follow the DT_NEEDED tags of libpcap, and thus pulls libusb-1.0 in at > > the same time. And since linusb uses threads, libpthread is pulled in > > as well. > > > > However, when linking statically, all of this fails. > > > > Fix that by telling knock's ./configure what libraries to link with > > when doing a static build and libusb is enabled. > > > > Fixes: > > http://autobuild.buildroot.net/results/1eb/1eb877ebd9469c9261bf114fc7733819ae3fd562/ > > > > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > > Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> > > --- > > package/knock/knock.mk | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/package/knock/knock.mk b/package/knock/knock.mk > > index 8d2b41e..ace23fa 100644 > > --- a/package/knock/knock.mk > > +++ b/package/knock/knock.mk > > @@ -10,4 +10,8 @@ KNOCK_LICENSE = GPLv2+ > > KNOCK_LICENSE_FILES = COPYING > > KNOCK_DEPENDENCIES = libpcap > > > > +ifeq ($(BR2_PREFER_STATIC_LIB)$(BR2_PACKAGE_LIBUSB),yy) > > +KNOCK_CONF_OPT = LIBS="-lusb-1.0 -pthread" > > +endif > > Thanks. However, I've already stated that before, but I continue to > wonder if this is the right way to fix this. Shouldn't we instead fix > libcap by adding a .pc file and submit that upstream, instead of adding > more and more LIBS="-lblah" all over the place? Of course, that's not > a comment targeted specifically at your patch (we're doing the same > thing for many other packages), but I'm wondering if that's the right > thing to do. Well, in an ideal world, that'd be good. But even if libpcap did provide a .pc file, then we'd need to patch knock to use pkg-config, which it currently does not. But I anyway withdraw this patch, in favour to the one recently sent by Baruch: http://patchwork.ozlabs.org/patch/362567/ Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] package/knock: fix static build with libusb 2014-06-22 17:04 [Buildroot] [PATCH] package/knock: fix static build with libusb Yann E. MORIN 2014-06-22 17:08 ` Thomas Petazzoni @ 2014-06-22 17:26 ` Baruch Siach 1 sibling, 0 replies; 4+ messages in thread From: Baruch Siach @ 2014-06-22 17:26 UTC (permalink / raw) To: buildroot Hi Yann, On Sun, Jun 22, 2014 at 07:04:56PM +0200, Yann E. MORIN wrote: > From: "Yann E. MORIN" <yann.morin.1998@free.fr> > > knock depends on libpcap, that has an optional dependency on libusb. > Alas, libpcap does not install a .pc file, so knock does not know > that it should link with -lusb-1.0. But libpcap does provide pcap-config for this. We already use it to fix static build against libpcap in a number of packages. Just posted a patch doing the same for knock. baruch > > When linking dynamically, this is not an issue, since the linker does > follow the DT_NEEDED tags of libpcap, and thus pulls libusb-1.0 in at > the same time. And since linusb uses threads, libpthread is pulled in > as well. > > However, when linking statically, all of this fails. > > Fix that by telling knock's ./configure what libraries to link with > when doing a static build and libusb is enabled. > > Fixes: > http://autobuild.buildroot.net/results/1eb/1eb877ebd9469c9261bf114fc7733819ae3fd562/ > > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> > --- > package/knock/knock.mk | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/package/knock/knock.mk b/package/knock/knock.mk > index 8d2b41e..ace23fa 100644 > --- a/package/knock/knock.mk > +++ b/package/knock/knock.mk > @@ -10,4 +10,8 @@ KNOCK_LICENSE = GPLv2+ > KNOCK_LICENSE_FILES = COPYING > KNOCK_DEPENDENCIES = libpcap > > +ifeq ($(BR2_PREFER_STATIC_LIB)$(BR2_PACKAGE_LIBUSB),yy) > +KNOCK_CONF_OPT = LIBS="-lusb-1.0 -pthread" > +endif > + > $(eval $(autotools-package)) -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il - ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-06-22 17:29 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-06-22 17:04 [Buildroot] [PATCH] package/knock: fix static build with libusb Yann E. MORIN 2014-06-22 17:08 ` Thomas Petazzoni 2014-06-22 17:29 ` Yann E. MORIN 2014-06-22 17:26 ` Baruch Siach
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox