Re: [Madwifi-users] user space <-> kernel space include files
Status: Beta
Brought to you by:
otaku
From: Beat M. <bm...@in...> - 2005-11-08 19:07:12
|
Pavel Roskin wrote: >On Tue, 2005-11-08 at 11:22 +0100, Bruno Randolf wrote: > > >>On Tuesday 08 November 2005 05:49, Pavel Roskin wrote: >> >> >>>>Whats the stuff of user space and kernel space include files? >>>>I.e. why if you use >>>> make KERNELPATH=/usr/src/linux-2.6.14-1-wrap >>>>wireless.h of /usr/include/linux is used and not >>>> /usr/src/linux-2.6.14-1-wrap/include/linux >>>> >>>>If not in installed in /usr/include/linux you cannot compile madwifi >>>>tools. >>>> >>>> >>>We could add the latest version as tools/linux/wireless.h. Any >>>objections? >>> >>> >>yes. i hate file duplication. why would that be necessary? it is usually in >>the right place. >> >> > >Because, as I understand, not everybody has linux/wireless.h available >among the libc headers. > > > >>i think the problem beat mentions is that the /usr/include/linux/wireless.h >>version is used and not the /usr/src/linux/wireless.h version - this could >>probably fixed with the right order of include paths. >> >> > >The right order of include paths is not to use any kernel headers >directly in userspace programs. libc may wrap kernel headers, but using >kernel headers directly is usually asking for trouble. > >Actually, there is a better approach than having a private copy of >wireless.h. Wireless tools has iwlib.h header, which is a wrapper >around wireless.h (also part of wireless tools) plus interface to the >iwlib library, and it's specifically written for userspace programs. > >That would require wireless tools (and the corresponding development >package on the distributions where it's separate) to be installed, but >it's probably not a big inconvenience, and it's a natural requirement - >if you want to compile wireless software, install wireless tools. > > > Ok tried to compile newest version (madwifi 1314) with applied iwlib.h. It works but in this case you must have wireless.h installed in same directory as wireless.h Has worked if installed in /usr/include and also installed is /usr/local/include. It seems that's the right way to go ... Thanks! BTW: There is now a warning (which comes from an indirect include of iwlib.h) which can be silently ignored but could confuse some users: gcc -o wlanconfig -include ../include/compat.h -I. -I../hal -I.. -g wlanconfig.c wlanconfig.c:286: warning: redefinition of `uint8_t' /usr/include/stdint.h:49: warning: `uint8_t' previously declared here Beat |