On Wed, Nov 26, 2008 at 20:04, Luis R. Rodriguez <lrodriguez@xxxxxxxxxxx> wrote: > On Wed, Nov 26, 2008 at 03:54:14PM -0800, Andrey Vul wrote: >> On Wed, Nov 26, 2008 at 12:34, Luis R. Rodriguez <lrodriguez@xxxxxxxxxxx> wrote: >> > On Tue, Nov 25, 2008 at 04:51:48PM -0800, Andrey Vul wrote: >> >> On Tue, Nov 25, 2008 at 16:30, Andrey Vul <andrey.vul@xxxxxxxxx> wrote: >> >> > On Tue, Nov 25, 2008 at 15:32, Luis R. Rodriguez <lrodriguez@xxxxxxxxxxx> wrote: >> >> >> On Tue, Nov 25, 2008 at 09:57:57AM -0800, Andrey Vul wrote: >> >> >>> I cannot compile the current compat tarball. >> >> >>> Make log: >> >> >>> ./scripts/gen-compat-autoconf.sh config.mk > include/linux/compat_autoconf.h >> >> >>> make -C /usr/src/linux-2.6.26.6-rt11/ M=/root/compat-wireless-2.6-old modules >> >> >>> make[1]: Entering directory `/usr/src/linux-2.6.26.6-rt11' >> >> >>> CC [M] /root/compat-wireless-2.6-old/drivers/net/wireless/mac80211_hwsim.o >> >> >>> In file included from <command-line>:0: >> >> >>> /root/compat-wireless-2.6-old/include/net/compat.h:877: error: >> >> >>> redefinition of 'list_splice_tail' >> >> >>> include/linux/list.h:356: error: previous definition of >> >> >>> 'list_splice_tail' was here >> >> >>> /root/compat-wireless-2.6-old/include/net/compat.h:892: error: >> >> >>> redefinition of 'list_splice_tail_init' >> >> >>> include/linux/list.h:379: error: previous definition of >> >> >>> 'list_splice_tail_init' was here >> >> >> >> >> >> list_splice_tail was added as of 2.6.27, and you have 2.6.26. Which >> >> >> means your kernel headers for your box are completely messed up. This >> >> >> means you can expect a kernel panic if you were to successfully >> >> >> compile external modules. Go fix that first. >> >> >> >> >> I have $(uname -r)/include/linux/list.h containing list_splice_tail, >> >> where uname -r is 2.6.26.5-rt9. >> >> Frankly, I need rt and the code for my wifi card is only in the compat tarball. >> >> Is this a problem with .[56] or with -rt? >> > >> > Ah, yeah RT had their own list_splice_tail(), try this. BTW what driver >> > are you going to be using? >> > >> >> I'm going to be using iwl5000 which depends on iwlwifi, iwlcore, >> iwlwifi-leds, and iwlwifi-rfkill . >> >> So, in short, all I have to do is this? >> #!/bin/bash >> for a in `find ~/compat-wireless-2.6-old -name '*.c' -or -name '*.h'`; do >> sed -e 's/list_splice_tail/list_splice_tail27/' -i $a; >> done >> >> The only thing I see as possibly problematic is >> list_splice_tail27_init() (sed is regex after all). > > Yup, but since there are some RT 2.6.26 kernels out there if we want > this fixed in compat-wireless-old I'd rather apply a patch there too. > Anyway list_splice_tail() is only used for ath9k. It's used in ath9k but exported to all the drivers via net/compat.h, leading to the redefinition errors from gcc when compiling an unrelated (to ath9k) wireless driver. So for RT-safety, just do the sed -i in the previous message on drivers/net/wirelss/ath9k/xmit.c and on include/net/compat.h . Unless grep found other instances of list_splice_tail, which it didn't. -- Andrey Vul -- 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