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

Signed-off-by: Khem Raj <[email protected]>
---
 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() {
-- 
1.7.5.4


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to