[OE-core] [PATCH 2/2] kernel.bbclass: Make tree available for cross building external modules

Khem Raj raj.khem at gmail.com
Tue Jul 10 17:07:50 UTC 2012


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 <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() {
-- 
1.7.5.4





More information about the Openembedded-core mailing list