Bugzilla – Bug 655
WPA disabled because of missing CONFIG variables (recursive make)
Last modified: 2005-07-20 23:41:08
You need to log in before you can comment on or make changes to this bug.
CONFIG_* variables set in ipw2100 Makefile when run as external build do not make it into the environment for the make that actually does the compilations, so the driver is compiled as if those variables were not set. One way to fix this is to add 'export' on a line by itself to the ipw2100 Makefile. I'm not aware of all the drawbacks associated with such a change, but I know that doing so fixed the problem. I also posted this to the mailing list for searches, but I thought a bug would be useful for tracking. I'll attach the patch here as well, even though it is a one-liner.
Created an attachment (id=367) [details] Makefile patch to add export One liner to tell make to 'export' all variables defined to any sub-makes.
I'll add the information from the mailing list post. [agilmore@tromps ipw2100-1.1.0]$ make V=1 make -C /lib/modules/2.6.11-1.14_FC3.root_cubbi1_swsusp2/build SUBDIRS=/home/agilmore/src/wpa/ipw2100-1.1.0 MODVERDIR=/home/agilmore/src/wpa/ipw2100-1.1.0 modules make[1]: Entering directory `/lib/modules/2.6.11-1.14_FC3.root_cubbi1_swsusp2/build" mkdir -p /home/agilmore/src/wpa/ipw2100-1.1.0 make -f scripts/Makefile.build obj=/home/agilmore/src/wpa/ipw2100-1.1.0 gcc -Wp,-MD,/home/agilmore/src/wpa/ipw2100-1.1.0/.ipw2100.o.d -nostdinc -isystem /usr/lib/gcc/i386-redhat-linux/3.4.3/include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2 -fomit-frame-pointer -g -pipe -msoft-float -m32 -fno-builtin-sprintf -fno-builtin-log2 -fno-builtin-puts -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=i686 -mtune=pentium4 -mregparm=3 -Iinclude/asm-i386/mach-default -Wdeclaration-after-statement -I/lib/modules/2.6.11-1.14_FC3.root_cubbi1_swsusp2/build/drivers/net/wireless -DCONFIG_PM -DMODULE -DKBUILD_BASENAME=ipw2100 -DKBUILD_MODNAME=ipw2100 -c -o /home/agilmore/src/wpa/ipw2100-1.1.0/.tmp_ipw2100.o /home/agilmore/src/wpa/ipw2100-1.1.0/ipw2100.c Note the absence of any CONFIG_IPW* and CONFIG_IEEE* defines on the gcc command. These are defined in the ipw2100 Makefile, but don"t make it to the gcc command, and WPA is not compiled in: [agilmore@tromps ipw2100-1.1.0]$ nm ipw2100.o |grep wpa 00006515 t ipw2100_set_wpa_ie [agilmore@tromps ipw2100-1.1.0]$ And after the patch: [agilmore@tromps ipw2100-1.1.0]$ make V=1 make -C /lib/modules/2.6.11-1.14_FC3.root_cubbi1_swsusp2/build SUBDIRS=/home/agilmore/src/wpa/ipw2100-1.1.0 MODVERDIR=/home/agilmore/src/wpa/ipw2100-1.1.0 modules make[1]: Entering directory `/lib/modules/2.6.11-1.14_FC3.root_cubbi1_swsusp2/build" mkdir -p /home/agilmore/src/wpa/ipw2100-1.1.0 make -f scripts/Makefile.build obj=/home/agilmore/src/wpa/ipw2100-1.1.0 gcc -Wp,-MD,/home/agilmore/src/wpa/ipw2100-1.1.0/.ipw2100.o.d -nostdinc -isystem /usr/lib/gcc/i386-redhat-linux/3.4.3/include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2 -fomit-frame-pointer -g -pipe -msoft-float -m32 -fno-builtin-sprintf -fno-builtin-log2 -fno-builtin-puts -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=i686 -mtune=pentium4 -mregparm=3 -Iinclude/asm-i386/mach-default -Wdeclaration-after-statement -I/drivers/net/wireless -g -Wa,-adhlms=modules.lst -I/lib/modules/2.6.11-1.14_FC3.root_cubbi1_swsusp2/build/drivers/net/wireless -g -Wa,-adhlms=/home/agilmore/src/wpa/ipw2100-1.1.0/ipw2100.o.lst -DCONFIG_PM -DCONFIG_IPW_DEBUG=y -DCONFIG_IPW2100_MONITOR=y -DCONFIG_IEEE80211_DEBUG=y -DCONFIG_IEEE80211_CRYPT=m -DCONFIG_IEEE80211_WPA=m -DCONFIG_IEEE80211_CRYPT_TKIP=m -DCONFIG_IEEE80211_CRYPT_CCMP=m -DMODULE -DKBUILD_BASENAME=ipw2100 -DKBUILD_MODNAME=ipw2100 -c -o /home/agilmore/src/wpa/ipw2100-1.1.0/.tmp_ipw2100.o /home/agilmore/src/wpa/ipw2100-1.1.0/ipw2100.c Note all the goodness of the CONFIG* defines there, and joy, we have WPA: [agilmore@tromps ipw2100-1.1.0]$ nm ipw2100.o |grep wpa 000065b2 t ipw2100_set_wpa_ie 00007798 T ipw2100_wpa_assoc_frame 000075c2 t ipw2100_wpa_enable 00007754 t ipw2100_wpa_mlme 0000762c t ipw2100_wpa_set_auth_algs 000078c4 t ipw2100_wpa_set_encryption 000076a5 t ipw2100_wpa_set_param 000077ef t ipw2100_wpa_set_wpa_ie 00007cad t ipw2100_wpa_supplicant [agilmore@tromps ipw2100-1.1.0]$ Good luck, and thanks
Assigning to Yi. Please set target to 1.1.1 when patch is applied. Capturing the latest discussion on the Mailing list regarding this bug: - This bug is caused by old #defines in the kernel build tree, and therefore the symbols in ipw Makefile don't work. - The Makefile will need to check against CONFIG_IEEE80211_WPA_MODULE as follows: #ifdef CONFIG_IEEE80211_WPA_MODULE #ifndef CONFIG_IEEE80211_WPA #define CONFIG_IEEE80211_WPA #endif #endif
patch like #593 checked in for target 1.1.1
Verified in 1.1.2.