libpcap: canusb support needs pthreads
authorGustavo Zacarias <gustavo@zacarias.com.ar>
Tue, 26 Jun 2012 04:19:50 +0000 (04:19 +0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Tue, 26 Jun 2012 21:04:54 +0000 (23:04 +0200)
canusb support in libpcap uses pthreads but the configure script doesn't
account for -lpthread usage so it doesn't get added into LIBS which in
turn doesn't add the appropiate entry in pcap-config, causing build
failures for programs that link to libpcap that don't use pthreads
themselves (for example tcpdump).
Also add the conditional dependency on BR2_PACKAGE_LIBUSB for canusb.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/libpcap/libpcap-canusb-requires-pthread.patch [new file with mode: 0644]
package/libpcap/libpcap.mk

diff --git a/package/libpcap/libpcap-canusb-requires-pthread.patch b/package/libpcap/libpcap-canusb-requires-pthread.patch
new file mode 100644 (file)
index 0000000..ed3bc1a
--- /dev/null
@@ -0,0 +1,29 @@
+canusb uses pthreads, but -lpthread is never added to LIBS hence missing
+from pcap-config, causing build failures. Fix this.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura libpcap-1.3.0.orig//configure libpcap-1.3.0/configure
+--- libpcap-1.3.0.orig//configure      2012-06-26 09:42:06.072155279 -0300
++++ libpcap-1.3.0/configure    2012-06-26 09:42:12.617196326 -0300
+@@ -7607,7 +7607,7 @@
+ $as_echo "#define PCAP_SUPPORT_CANUSB 1" >>confdefs.h
+                   CANUSB_SRC=pcap-canusb-linux.c
+-                  LIBS="-lusb-1.0 $LIBS"
++                  LIBS="-lusb-1.0 -lpthread $LIBS"
+                   { $as_echo "$as_me:${as_lineno-$LINENO}: canusb sniffing is supported" >&5
+ $as_echo "$as_me: canusb sniffing is supported" >&6;}
+diff -Nura libpcap-1.3.0.orig//configure.in libpcap-1.3.0/configure.in
+--- libpcap-1.3.0.orig//configure.in   2012-06-26 09:42:06.067155242 -0300
++++ libpcap-1.3.0/configure.in 2012-06-26 09:42:22.267256741 -0300
+@@ -1406,7 +1406,7 @@
+               [
+                   AC_DEFINE(PCAP_SUPPORT_CANUSB, 1, [target host supports canusb])
+                   CANUSB_SRC=pcap-canusb-linux.c
+-                  LIBS="-lusb-1.0 $LIBS"
++                  LIBS="-lusb-1.0 -lpthread $LIBS"
+                   AC_MSG_NOTICE(canusb sniffing is supported)
+               ],
+               AC_MSG_NOTICE(canusb sniffing is not supported; install libusb1.0 lib devel to enable it)
index 51e1106e736a7db59834c7f02b9a1e0e1f995ebb..324ec331d6d1453353c6fc253984c3a32e4d5272 100644 (file)
@@ -12,7 +12,8 @@ LIBPCAP_INSTALL_TARGET_OPT= DESTDIR="$(TARGET_DIR)" \
        $(if $(BR2_PREFER_STATIC_LIB),install,install-shared)
 LIBPCAP_INSTALL_STAGING_OPT= DESTDIR="$(STAGING_DIR)" install \
        $(if $(BR2_PREFER_STATIC_LIB),,install-shared)
-LIBPCAP_DEPENDENCIES = zlib
+LIBPCAP_DEPENDENCIES = zlib \
+       $(if $(BR2_PACKAGE_LIBUSB),libusb)
 LIBPCAP_CONF_ENV = ac_cv_linux_vers=2 \
                ac_cv_header_linux_wireless_h=yes # configure misdetects this
 LIBPCAP_CONF_OPT = --disable-yydebug --with-pcap=linux