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


             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 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.