[oe] [kernel.bbclass] [PATCH] let the multi-version kernel header files coexist on the target

fupan.li at windriver.com fupan.li at windriver.com
Tue Aug 19 01:20:39 UTC 2014


From: fupan li <fupan.li at windriver.com>

When do RCPL upgrading, we want to keep the different RCPL's kernel header files coexist, just
as the kernel image does.

Signed-off-by: fupan li <fupan.li at windriver.com>
---
 meta/classes/kernel.bbclass | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 6d9e646..e6ed716 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -75,9 +75,11 @@ EXTRA_OEMAKE = ""
 
 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"
+# Define where the kernel headers are staged.
+KERNEL_SRC_EXPORT_PATH = "/usr/src/kernel"
+#put the kernel headers in /usr/src/kernel-${@legitimize_package_name('${KERNEL_VERSION}')} to
+#let the different RCPL's kernel headers coexist.
+KERNEL_SRC_PATH = "/usr/src/kernel-${@legitimize_package_name('${KERNEL_VERSION}')}"
 
 KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}"
 
@@ -313,7 +315,7 @@ kernelscripts_sstate_postinst () {
 }
 
 sysroot_stage_all_append() {
-	sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH}
+	sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_EXPORT_PATH}
 }
 
 kernel_do_configure() {
@@ -386,6 +388,14 @@ pkg_postrm_kernel-image () {
 	update-alternatives --remove ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} || true
 }
 
+pkg_postinst_kernel-dev () {
+        update-alternatives --install ${KERNEL_SRC_EXPORT_PATH} kernel-path kernel-${@legitimize_package_name('${KERNEL_VERSION}')} ${KERNEL_PRIORITY} || true
+}
+
+pkg_postrm_kernel-dev () {
+        update-alternatives --remove kernel-path kernel-${@legitimize_package_name('${KERNEL_VERSION}')} || true
+}
+
 PACKAGESPLITFUNCS_prepend = "split_kernel_packages "
 
 python split_kernel_packages () {
-- 
1.8.1.2




More information about the Openembedded-devel mailing list