From: Hauke Mehrtens <hauke@hauke-m.de>
To: mcgrof@gmail.com, lrodriguez@atheros.com
Cc: linux-wireless@vger.kernel.org, Hauke Mehrtens <hauke@hauke-m.de>
Subject: [PATCH 3/9] compat-wireless: add support for kernel 3.XX
Date: Thu, 2 Jun 2011 18:35:19 +0200 [thread overview]
Message-ID: <1307032525-18916-4-git-send-email-hauke@hauke-m.de> (raw)
In-Reply-To: <1307032525-18916-1-git-send-email-hauke@hauke-m.de>
Now we are also generating CONFIG_COMPAT_KERNEL_3XX entries for kernel
3.XX kernels. This is the final patch needed to add support for kernel
3.0.
When using a 2.6.XX kernel it generates CONFIG_COMPAT_KERNEL_26XX
entries and all CONFIG_COMPAT_KERNEL_3XX entries and when using 3.XX
kernel it will generate only the needed CONFIG_COMPAT_KERNEL_3XX
entries.
Add to compat-3.0-stable
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
config.mk | 22 ++++++++++++++++++----
scripts/gen-compat-autoconf.sh | 15 ++++++++++++++-
2 files changed, 32 insertions(+), 5 deletions(-)
diff --git a/config.mk b/config.mk
index 57903e0..2160409 100644
--- a/config.mk
+++ b/config.mk
@@ -15,10 +15,22 @@ include $(KLIB_BUILD)/.config
endif
ifneq ($(wildcard $(KLIB_BUILD)/Makefile),)
-COMPAT_LATEST_VERSION = 39
-KERNEL_SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
+
+COMPAT_LATEST_VERSION = 1
+KERNEL_VERSION := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^\([0-9]\)\..*/\1/p')
+
+ifeq ($(KERNEL_VERSION),3)
+KERNEL_SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^3\.\([0-9]\+\).*/\1/p')
+else
+COMPAT_26LATEST_VERSION = 39
+KERNEL_26SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
+COMPAT_26VERSIONS := $(shell I=$(COMPAT_26LATEST_VERSION); while [ "$$I" -gt $(KERNEL_26SUBLEVEL) ]; do echo $$I; I=$$(($$I - 1)); done)
+$(foreach ver,$(COMPAT_26VERSIONS),$(eval CONFIG_COMPAT_KERNEL_26$(ver)=y))
+KERNEL_SUBLEVEL := -1
+endif
+
COMPAT_VERSIONS := $(shell I=$(COMPAT_LATEST_VERSION); while [ "$$I" -gt $(KERNEL_SUBLEVEL) ]; do echo $$I; I=$$(($$I - 1)); done)
-$(foreach ver,$(COMPAT_VERSIONS),$(eval CONFIG_COMPAT_KERNEL_26$(ver)=y))
+$(foreach ver,$(COMPAT_VERSIONS),$(eval CONFIG_COMPAT_KERNEL_3$(ver)=y))
ifdef CONFIG_COMPAT_KERNEL_2624
$(error "ERROR: compat-wireless by default supports kernels >= 2.6.24, try enabling only one driver though")
@@ -49,11 +61,13 @@ endif
#
# In kernel 2.6.32 both attributes were removed.
#
-ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 27 -a $(KERNEL_SUBLEVEL) -le 31 && echo yes),yes)
+ifeq ($(KERNEL_VERSION),2)
+ifeq ($(shell test $(KERNEL_26SUBLEVEL) -ge 27 -a $(KERNEL_26SUBLEVEL) -le 31 && echo yes),yes)
ifeq ($(CONFIG_MAC80211),)
$(error "ERROR: Your >=2.6.27 and <= 2.6.31 kernel has CONFIG_MAC80211 disabled, you should have it CONFIG_MAC80211=m if you want to use this thing.")
endif
endif
+endif
ifneq ($(KERNELRELEASE),) # This prevents a warning
diff --git a/scripts/gen-compat-autoconf.sh b/scripts/gen-compat-autoconf.sh
index 0dc091c..af19da6 100755
--- a/scripts/gen-compat-autoconf.sh
+++ b/scripts/gen-compat-autoconf.sh
@@ -155,6 +155,14 @@ for i in $(egrep '^CONFIG_|^ifdef CONFIG_|^ifndef CONFIG_|^endif #CONFIG_|^else
echo "#$i" | sed -e 's/+/ /' -e 's/\(ifndef CONFIG_COMPAT_KERNEL_26\)\([0-9]*\)/if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,\2))/' -e 's/\(#ifndef \)\(CONFIG_[^:space:]*\)/#if !defined(\2) && !defined(\2_MODULE)/'
continue
;;
+ 'ifdef+CONFIG_'* )
+ echo "#$i" | sed -e 's/+/ /' -e 's/\(ifdef CONFIG_COMPAT_KERNEL_3\)\([0-9]*\)/if (LINUX_VERSION_CODE < KERNEL_VERSION(3,\2,0))/' -e 's/\(#ifdef \)\(CONFIG_[^:space:]*\)/#if defined(\2) || defined(\2_MODULE)/'
+ continue
+ ;;
+ 'ifndef+CONFIG_'* )
+ echo "#$i" | sed -e 's/+/ /' -e 's/\(ifndef CONFIG_COMPAT_KERNEL_3\)\([0-9]*\)/if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,\2,0))/' -e 's/\(#ifndef \)\(CONFIG_[^:space:]*\)/#if !defined(\2) && !defined(\2_MODULE)/'
+ continue
+ ;;
'else+#CONFIG_'* | 'endif+#CONFIG_'* )
echo "#$i */" |sed -e 's/+#/ \/* /g'
continue
@@ -184,7 +192,12 @@ done
# Deal with special cases. CONFIG_MAC80211_QOS is such a case.
# We handle this specially for different kernels we support.
if [ -f $KLIB_BUILD/Makefile ]; then
- SUBLEVEL=$(make -C $KLIB_BUILD kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
+ MAJORLEVEL=$(make -C $KLIB_BUILD kernelversion | sed -n 's/^\([0-9]\)\..*/\1/p')
+ if [ $MAJORLEVEL -eq 2 ]; then
+ SUBLEVEL=$(make -C $KLIB_BUILD kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
+ else
+ SUBLEVEL=99
+ fi
if [ $SUBLEVEL -le 22 ]; then
define_config CONFIG_MAC80211_QOS y
else # kernel >= 2.6.23
--
1.7.4.1
next prev parent reply other threads:[~2011-06-02 16:35 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-02 16:35 [PATCH 0/9] compat-wireless: Add support for kernel 3.XX Hauke Mehrtens
2011-06-02 16:35 ` [PATCH 1/9] comapt-wireless: move doku to the correct place in config.mk Hauke Mehrtens
2011-06-02 16:35 ` [PATCH 2/9] compat-wireless: rename CONFIG_COMPAT_KERNEL_ Hauke Mehrtens
2011-06-02 16:35 ` Hauke Mehrtens [this message]
2011-06-03 9:07 ` [PATCH 3/9] compat-wireless: add support for kernel 3.XX Jonas Gorski
2011-06-03 11:33 ` Hauke Mehrtens
2011-06-04 0:26 ` Luis R. Rodriguez
2011-06-02 16:35 ` [PATCH 4/9] compat-wireless: make patches apply again Hauke Mehrtens
2011-06-02 16:35 ` [PATCH 5/9] compat-wireless: add missing header Hauke Mehrtens
2011-06-02 16:35 ` [PATCH 6/9] compat-wireless: activate CARL9170_WPC by default Hauke Mehrtens
2011-06-02 16:35 ` [PATCH 7/9] compat-wireless: activate CONFIG_RT2800{USB,PCI}_RT35XX " Hauke Mehrtens
2011-06-02 16:35 ` [PATCH 8/9] compat-wireless: sync atheros-debug.mk with config.mk Hauke Mehrtens
2011-06-02 16:35 ` [PATCH 9/9] compat-wireless: update enable-older-kernels patches Hauke Mehrtens
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1307032525-18916-4-git-send-email-hauke@hauke-m.de \
--to=hauke@hauke-m.de \
--cc=linux-wireless@vger.kernel.org \
--cc=lrodriguez@atheros.com \
--cc=mcgrof@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).