All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.