From: "Ozan Çağlayan" <ozan@pardus.org.tr>
To: Linux Wireless List <linux-wireless@vger.kernel.org>
Subject: Some remarks about compat-wireless KBuild system
Date: Wed, 13 Jan 2010 19:02:32 +0200 [thread overview]
Message-ID: <4B4DFCA8.6020006@pardus.org.tr> (raw)
Hi,
Current compat-wireless build system has some inconveniences for distribution packaging:
- In Makefile, KLIB is set to /lib/modules/$(uname -r) which avoids compiling the stack
against a non-running kernel. In several other external kernel drivers this can be bypassed
by giving KERNELRELEASE=something to "make" but it's not working for compat-wireless.
- In gen_compat_autoconf.sh and config.mk there are two calls to $(MAKE) for determining KERNEL_SUBLEVEL:
(gen_compat_autoconf.sh) -> SUBLEVEL=$(make -C $KLIB_BUILD kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
(config.mk) -> KERNEL_SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
The problem with that calls is that they're executing make in $KLIB_BUILD for version parsing which creates
temporary .tmp files in that directory causing sandboxed builds fail.
KERNELRELEASE=something should also allow bypassing those make calls with something like below:
if KERNELRELEASE is set
SUBLEVEL=$(echo "@KERNELRELEASE@" | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
- It's impossible to install the modules under a DESTDIR/BUILD_ROOT. KMODPATH_ARG in Makefile
can be used for this purpose but it's not set until the following condition is met:
ifneq ($(origin KLIB), undefined)
KMODPATH_ARG:= "INSTALL_MOD_PATH=$(KLIB)"
I couldn't figure out the evaluation of the expression and simplified it in the following way in my package:
Index: compat-wireless-2010-01-06/Makefile
===================================================================
--- compat-wireless-2010-01-06.orig/Makefile
+++ compat-wireless-2010-01-06/Makefile
@@ -1,10 +1,6 @@
export KMODDIR?= updates
KMODDIR_ARG:= "INSTALL_MOD_DIR=$(KMODDIR)"
-ifneq ($(origin KLIB), undefined)
-KMODPATH_ARG:= "INSTALL_MOD_PATH=$(KLIB)"
-else
-export KLIB:= /lib/modules/$(shell uname -r)
-endif
+export KLIB:= /lib/modules/$(shell uname -r)
export KLIB_BUILD ?= $(KLIB)/build
# Sometimes not available in the path
MODPROBE := /sbin/modprobe
@@ -12,6 +8,7 @@ MADWIFI=$(shell $(MODPROBE) -l ath_pci)
OLD_IWL=$(shell $(MODPROBE) -l iwl4965)
DESTDIR?=
+KMODPATH_ARG:= "INSTALL_MOD_PATH=$(DESTDIR)"
ifneq ($(KERNELRELEASE),)
This way calling
make DESTDIR=/path/to/buildroot install
works correctly.
I may be misusing the kbuild system but just wanted to share these in case there's anything to be done
in upstream,
Thanks!
Ozan Caglayan
next reply other threads:[~2010-01-13 17:02 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-13 17:02 Ozan Çağlayan [this message]
2010-01-14 3:03 ` Some remarks about compat-wireless KBuild system Hin-Tak Leung
2010-01-14 17:04 ` Ozan Çağlayan
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=4B4DFCA8.6020006@pardus.org.tr \
--to=ozan@pardus.org.tr \
--cc=linux-wireless@vger.kernel.org \
/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).