libpcap: fix wireless handling
authorPeter Korsgaard <jacmet@sunsite.dk>
Wed, 9 Dec 2009 13:00:55 +0000 (14:00 +0100)
committerPeter Korsgaard <jacmet@sunsite.dk>
Wed, 9 Dec 2009 13:00:55 +0000 (14:00 +0100)
Based on ba23aa7b in libpcap upstream.

linux/wireless.h includes linux/if.h, which conflicts with net/if.h as
they both define if* structures. Fix build by simply using linux/if.h
instead of net/if.h.

The same fix should be done for the configure script, but cheat by
presetting it instead.

This fix in turn fixes kismet build with BR2_CONFIG_CACHE enabled, as
that uses the same ac_cv_linux_wireless_h cache value.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/libpcap/libpcap-1.0.0-wireless.patch [new file with mode: 0644]
package/libpcap/libpcap.mk

diff --git a/package/libpcap/libpcap-1.0.0-wireless.patch b/package/libpcap/libpcap-1.0.0-wireless.patch
new file mode 100644 (file)
index 0000000..7bcfcda
--- /dev/null
@@ -0,0 +1,26 @@
+[PATCH]: pcap-linux: fix build with wireless support
+
+Based on ba23aa7b upstream.
+
+linux/wireless.h includes linux/if.h, which conflicts with net/if.h as
+they both define if* structures. Fix build by simply using linux/if.h
+instead of net/if.h.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ pcap-linux.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: libpcap-1.0.0/pcap-linux.c
+===================================================================
+--- libpcap-1.0.0.orig/pcap-linux.c
++++ libpcap-1.0.0/pcap-linux.c
+@@ -93,7 +93,7 @@ static const char rcsid[] _U_ =
+ #include <sys/ioctl.h>
+ #include <sys/utsname.h>
+ #include <sys/mman.h>
+-#include <net/if.h>
++#include <linux/if.h>
+ #include <netinet/in.h>
+ #include <linux/if_ether.h>
+ #include <net/if_arp.h>
index dc72924e93aa7a9c571f6d8b89b68aa279c873ac..801b15e08b4d3c3495f8ac79b9ecbfd1285880e5 100644 (file)
@@ -14,7 +14,8 @@ LIBPCAP_INSTALL_TARGET_OPT= DESTDIR="$(TARGET_DIR)" \
 LIBPCAP_INSTALL_STAGING_OPT= DESTDIR="$(STAGING_DIR)" install \
        $(if $(BR2_PREFER_STATIC_LIB),,install-shared)
 LIBPCAP_DEPENDENCIES:=zlib
-LIBPCAP_CONF_ENV:=ac_cv_linux_vers=$(firstword $(subst .,$(space),$(firstword $(call qstrip,$(BR2_DEFAULT_KERNEL_HEADERS)))))
+LIBPCAP_CONF_ENV:=ac_cv_linux_vers=$(firstword $(subst .,$(space),$(firstword $(call qstrip,$(BR2_DEFAULT_KERNEL_HEADERS))))) \
+                 ac_cv_header_linux_wireless_h=yes # configure misdetects this
 LIBPCAP_CONF_OPT:=--disable-yydebug --with-pcap=linux
 
 $(eval $(call AUTOTARGETS,package,libpcap))