Getting -HEAD net80211 modules building under -8
Adrian Chadd
adrian.chadd at gmail.com
Fri Apr 15 10:50:16 UTC 2011
Hi,
The subject says it all. I'm trying to do this for people who would like to
take advantage of net80211 on -8 so they don't have to upgrade to get newer
stuff.
(And so I can leave my netbook at -8 and not have to upgrade.)
Here's what I've done so far to get a module to build. I'd like to try and
commit whatever's needed to get it to build without too much evilness.
Firstly, I needed to move /usr/src/sys/net80211 out of the way, as the
include's are #include <net80211/ieee80211_X.h> and the search path is:
cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc
-I. -I@ -I@/contrib/altq ...
.. and this obviously isn't any good for what needs to happen here. I wonder
if it's possible to modify the early include path to include -I../.. so the
correct net80211 headers are included.
The patches so far:
sys/modules/wlan/Makefile hackery:
Index: Makefile
===================================================================
--- Makefile (revision 220650)
+++ Makefile (working copy)
@@ -15,6 +15,8 @@
SRCS+= bus_if.h device_if.h opt_inet.h opt_inet6.h opt_ipx.h opt_wlan.h
\
opt_ddb.h
+CFLAGS+= -I../..
+
.if !defined(KERNBUILDDIR)
opt_wlan.h:
echo "#define IEEE80211_DEBUG 1" > ${.TARGET}
.. build hackery:
(adrian) eeepc:/data/1/adrian/head-2/sys/modules/wlan% cat /data/1/bin/build
make MODULES_OVERRIDE="wlan wlan_acl wlan_amrr wlan_ccmp wlan_rssadapt
wlan_tkip wlan_wep wlan_xauth" KMODDIR="/boot/kernel" KMODOWN='adrian'
KMODGRP='adrian' SYSDIR=/home/adrian/work/freebsd/releng-8.0/sys $@
.. and hackery to the ioctl interface:
Index: ieee80211_ioctl.c
===================================================================
--- ieee80211_ioctl.c (revision 220650)
+++ ieee80211_ioctl.c (working copy)
@@ -3251,7 +3251,11 @@
void *ioctl;
IEEE80211_LOCK(ic);
+#if __FreeBSD_version < 900000
+ if_purgemaddrs(parent);
+#else
if_delallmulti(parent);
+#endif
ioctl = parent->if_ioctl; /* XXX WAR if_allmulti */
parent->if_ioctl = NULL;
TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
More information about the freebsd-wireless
mailing list