[OE-core] [PATCH 2/2] kernel.bbclass: Make tree available for cross building external modules
Richard Purdie
richard.purdie at linuxfoundation.org
Wed Jul 11 10:30:40 UTC 2012
On Tue, 2012-07-10 at 10:07 -0700, Khem Raj wrote:
> We shave too much from kernel sources for making it work
> for on device external kernel module development that cross
> development of external modules wont work from same tree
> anymore. This patch makes a copy of tree which will eventually
> be staged for building external modules
It sounds from the further discussion that there is more to the patch
than just this. Firstly, a change like this needs a more precise
description.
Secondly, we're copying around *way* to much data in this approach. I'd
like to suggest an improvement but can't since the description above is
lacking, I can't even understand what the problem is you're trying to
fix.
So more discussion is needed.
I have a suspicion that this fix only "happens" to work when SDKMACHINE
== NATIVEMACHINE.
Cheers,
Richard
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
> meta/classes/kernel.bbclass | 15 +++++++++++++--
> 1 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index 81c334b..b2b6fcd 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -80,6 +80,7 @@ KERNEL_ALT_IMAGETYPE ??= ""
> # Define where the kernel headers are installed on the target as well as where
> # they are staged.
> KERNEL_SRC_PATH = "/usr/src/kernel"
> +UNPRUNED_KERNEL_SRC_PATH = "/usr/src/kernel-unpruned"
>
> KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}"
>
> @@ -135,7 +136,9 @@ kernel_do_install() {
> # kernel source tree.
> #
> kerneldir=${D}${KERNEL_SRC_PATH}
> + unrprunedkerneldir=${D}${UNPRUNED_KERNEL_SRC_PATH}
> install -d $kerneldir
> + install -d $unrprunedkerneldir
>
> #
> # Store the kernel version in sysroots for module-base.bbclass
> @@ -176,7 +179,6 @@ kernel_do_install() {
> # and include files.
> #
> oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean
> - make -C $kerneldir _mrproper_scripts
> find $kerneldir -path $kerneldir/lib -prune -o -path $kerneldir/tools -prune -o -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \;
> find $kerneldir/Documentation -name "*.txt" -exec rm '{}' \;
>
> @@ -186,6 +188,9 @@ kernel_do_install() {
> if [ ${ARCH} = "powerpc" ]; then
> cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o
> fi
> + # make a copy of unpruned kernel tree
> + cp -fR $kerneldir/* $unrprunedkerneldir
> + make -C $kerneldir _mrproper_scripts
>
> # Remove the following binaries which cause strip or arch QA errors
> # during do_package for cross-compiled platforms
> @@ -197,8 +202,14 @@ kernel_do_install() {
> done
> }
>
> +PACKAGE_PREPROCESS_FUNCS += "kernel_package_preprocess"
> +
> +kernel_package_preprocess () {
> + rm -rf ${PKGD}/${UNPRUNED_KERNEL_SRC_PATH}
> +}
> +
> sysroot_stage_all_append() {
> - sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH}
> + sysroot_stage_dir ${D}${UNPRUNED_KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH}
> }
>
> kernel_do_configure() {
More information about the Openembedded-core
mailing list