Search Linux Wireless

Build problem when using linux/wireless.h header

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



An error when building airpwn (airpwn.sf.net) was reported to me:

In file included from airpwn.c:36:
/usr/include/linux/wireless.h:886: error: 'IFNAMSIZ' undeclared here (not in a 
function)
airpwn.c: In function 'process_ip_packet':
airpwn.c:482: warning: ignoring return value of 'write', declared with 
attribute warn_unused_result
airpwn.c:483: warning: ignoring return value of 'write', declared with 
attribute warn_unused_result
airpwn.c:484: warning: ignoring return value of 'write', declared with 
attribute warn_unused_result
make[1]: *** [airpwn.o] Error 1

This is on a system with sanitized kernel headers installed. airpwn uses 
<linux/wireless.h>. The problem here is that wireless.h have:

#ifdef __KERNEL__
#include <linux/types.h>                /* for "caddr_t" et al          */
#include <linux/socket.h>               /* for "struct sockaddr" et al  */
#include <linux/if.h>                   /* for IFNAMSIZ and co... */
#endif  /* __KERNEL__ */

This when exported to user space is removed, but they are needed later on, 
otherwise you get build problems when using this header. One can say that the 
program including wireless.h should include manually the required headers, 
but doesn't seem very nice. Also wireless-tools include a copy of wireless.h, 
seems an unecessary duplication. So what about doing this:

- Don't export wireless.h from kernel to user space, since wireless-tools 
already provide it.
- Patch wireless-tools to include missing headers like this patch:

diff -p -up wireless_tools.29/wireless.21.h.orig wireless_tools.29/wireless.21.h
--- wireless_tools.29/wireless.21.h.orig	2008-02-18 13:19:47.000000000 -0300
+++ wireless_tools.29/wireless.21.h	2008-02-18 13:20:44.000000000 -0300
@@ -76,6 +76,10 @@
 #include <linux/types.h>		/* for "caddr_t" et al		*/
 #include <linux/socket.h>		/* for "struct sockaddr" et al	*/
 #include <linux/if.h>			/* for IFNAMSIZ and co... */
+#else
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/if.h>
 #endif	/* __KERNEL__ */
 
 /***************************** VERSION *****************************/
diff -p -up wireless_tools.29/wireless.22.h.orig wireless_tools.29/wireless.22.h
--- wireless_tools.29/wireless.22.h.orig	2008-02-18 13:19:53.000000000 -0300
+++ wireless_tools.29/wireless.22.h	2008-02-18 13:21:00.000000000 -0300
@@ -76,6 +76,10 @@
 #include <linux/types.h>		/* for "caddr_t" et al		*/
 #include <linux/socket.h>		/* for "struct sockaddr" et al	*/
 #include <linux/if.h>			/* for IFNAMSIZ and co... */
+#else
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/if.h>
 #endif	/* __KERNEL__ */
 
 /***************************** VERSION *****************************/

--
[]'s
Herton
-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux