[PATCH] Compile problem with WE 14

Jean Tourrilhes jt
Mon Dec 9 19:47:10 PST 2002


Jouni Malinen wrote :
> On Mon, Dec 09, 2002 at 05:00:14PM -0500, Pavel Roskin wrote:
> 
> > The CVS version of HostAP doesn't compile with Wireless Extesions 14
> > (Linux 2.4.20).  IWEVCUSTOM is defined starting with WE 15.

	Thanks for the good work, as usual...
	Note that there is another way to fix this one :
-----------------------------
#ifndef IWEVCUSTOM
#define IWEVCUSTOM	0x8C02		/* Driver specific ascii string */
#endif
-----------------------------

> Thanks, applied. I have been working mostly with PRISM2_HOSTAPD defined
> and when testing this, I used WE 15.. By the way, number of backward
> compatibility blocks for various wireless extensions versions is
> starting to get huge (about 50 or so). Those are making the code less
> readable, so there might be some need for cleanup eventually.

	Well... I wish I could have got it right at the first
iteration in 96, this would have simplified the situation
drastically. Unfortunately, I'm only a common mortal.
	Remember that some of those feature I'm adding to Wireless
Extension are stuff you guys are asking for. And I try to make sure
that new feature that you don't need or don't like don't get in your
way.

	There is a few options :
	1) Don't use W-Ext at all, and have your own set of tools
strongly linked with the driver, like linux-wlan-ng, or use a /proc
interface, like airo.c.
	2) Assume only a baseline WE (like WE-9), and ignore all
functionality added after that. Refer to #1 for additional config.
	3) Assume the lastest WE, and generate a compilation error for
earlier WE, point to my web pages for necessary WE patches.
	4) #if WIRELESS_EXT of all the features needed, which is the
current solution.
	5) Mix 2/3/4 too make the conditional blocks less
granular. For example, you could decide to use scanning only after
WE-15 (and not on WE-14), or not use IWEVCUSTOM at all.
	6) Include driver in the kernel, and use whatever WE version
is in that kernel.

	I would quickly point out that most Linux APIs are using
solution #6 and it's having drivers out of the kernel that make things
difficult. Don't take my word for it, just check
driver/modules/hostap_compat.h and
pcmcia-cs-XXX/include/linux/netdevice.h for example.
	Also, in most case you may migrate the "conditionality" to the
header file (the solution above), but this will result in bloat in the
driver.

	But, if anybody has any brilliant idea, please tell me...

	Good luck...

	Jean




More information about the Hostap mailing list