Search Linux Wireless

Re: Some remarks about compat-wireless KBuild system

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 13, 2010 at 5:02 PM, Ozan Çağlayan <ozan@xxxxxxxxxxxxx> wrote:
> 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.

Did you not read README (or the instruction in the README not working
any more)?

compat-wireless can be used with a non-running kernel, and the
instruction is in the top-level README. (I contributed part of it, the
part on the non-running kernel which has just been distro-installed,
e.g. to build and install compat-wireless during a routine upgrade
which installs a new kernel but before a reboot to it).


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

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux