summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/kernel.bbclass21
1 files changed, 18 insertions, 3 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 2d219cb5e5..0df24ac910 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -77,7 +77,7 @@ python __anonymous () {
77 # KERNEL_IMAGETYPES may contain a mixture of image types supported directly 77 # KERNEL_IMAGETYPES may contain a mixture of image types supported directly
78 # by the kernel build system and types which are created by post-processing 78 # by the kernel build system and types which are created by post-processing
79 # the output of the kernel build system (e.g. compressing vmlinux -> 79 # the output of the kernel build system (e.g. compressing vmlinux ->
80 # vmlinux.gz in kernel_do_compile()). 80 # vmlinux.gz in kernel_do_transform_kernel()).
81 # KERNEL_IMAGETYPE_FOR_MAKE should contain only image types supported 81 # KERNEL_IMAGETYPE_FOR_MAKE should contain only image types supported
82 # directly by the kernel build system. 82 # directly by the kernel build system.
83 if not d.getVar('KERNEL_IMAGETYPE_FOR_MAKE'): 83 if not d.getVar('KERNEL_IMAGETYPE_FOR_MAKE'):
@@ -134,6 +134,8 @@ set -e
134 # standalone for use by wic and other tools. 134 # standalone for use by wic and other tools.
135 if image: 135 if image:
136 d.appendVarFlag('do_bundle_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete') 136 d.appendVarFlag('do_bundle_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete')
137 if image and bb.utils.to_boolean(d.getVar('INITRAMFS_IMAGE_BUNDLE')):
138 bb.build.addtask('do_transform_bundled_initramfs', 'do_deploy', 'do_bundle_initramfs', d)
137 139
138 # NOTE: setting INITRAMFS_TASK is for backward compatibility 140 # NOTE: setting INITRAMFS_TASK is for backward compatibility
139 # The preferred method is to set INITRAMFS_IMAGE, because 141 # The preferred method is to set INITRAMFS_IMAGE, because
@@ -316,6 +318,14 @@ do_bundle_initramfs () {
316} 318}
317do_bundle_initramfs[dirs] = "${B}" 319do_bundle_initramfs[dirs] = "${B}"
318 320
321kernel_do_transform_bundled_initramfs() {
322 # vmlinux.gz is not built by kernel
323 if (echo "${KERNEL_IMAGETYPES}" | grep -wq "vmlinux\.gz"); then
324 gzip -9cn < ${KERNEL_OUTPUT_DIR}/vmlinux.initramfs > ${KERNEL_OUTPUT_DIR}/vmlinux.gz.initramfs
325 fi
326}
327do_transform_bundled_initramfs[dirs] = "${B}"
328
319python do_devshell:prepend () { 329python do_devshell:prepend () {
320 os.environ["LDFLAGS"] = '' 330 os.environ["LDFLAGS"] = ''
321} 331}
@@ -364,12 +374,17 @@ kernel_do_compile() {
364 for typeformake in ${KERNEL_IMAGETYPE_FOR_MAKE} ; do 374 for typeformake in ${KERNEL_IMAGETYPE_FOR_MAKE} ; do
365 oe_runmake ${typeformake} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd 375 oe_runmake ${typeformake} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
366 done 376 done
377}
378
379kernel_do_transform_kernel() {
367 # vmlinux.gz is not built by kernel 380 # vmlinux.gz is not built by kernel
368 if (echo "${KERNEL_IMAGETYPES}" | grep -wq "vmlinux\.gz"); then 381 if (echo "${KERNEL_IMAGETYPES}" | grep -wq "vmlinux\.gz"); then
369 mkdir -p "${KERNEL_OUTPUT_DIR}" 382 mkdir -p "${KERNEL_OUTPUT_DIR}"
370 gzip -9cn < ${B}/vmlinux > "${KERNEL_OUTPUT_DIR}/vmlinux.gz" 383 gzip -9cn < ${B}/vmlinux > "${KERNEL_OUTPUT_DIR}/vmlinux.gz"
371 fi 384 fi
372} 385}
386do_transform_kernel[dirs] = "${B}"
387addtask transform_kernel after do_compile before do_install
373 388
374do_compile_kernelmodules() { 389do_compile_kernelmodules() {
375 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE 390 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
@@ -621,7 +636,7 @@ inherit cml1
621 636
622KCONFIG_CONFIG_COMMAND:append = " LD='${KERNEL_LD}' HOSTLDFLAGS='${BUILD_LDFLAGS}'" 637KCONFIG_CONFIG_COMMAND:append = " LD='${KERNEL_LD}' HOSTLDFLAGS='${BUILD_LDFLAGS}'"
623 638
624EXPORT_FUNCTIONS do_compile do_install do_configure 639EXPORT_FUNCTIONS do_compile do_transform_kernel do_transform_bundled_initramfs do_install do_configure
625 640
626# kernel-base becomes kernel-${KERNEL_VERSION} 641# kernel-base becomes kernel-${KERNEL_VERSION}
627# kernel-image becomes kernel-image-${KERNEL_VERSION} 642# kernel-image becomes kernel-image-${KERNEL_VERSION}
@@ -772,7 +787,7 @@ kernel_do_deploy() {
772 fi 787 fi
773 788
774 if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" = x1 ]; then 789 if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" = x1 ]; then
775 for imageType in ${KERNEL_IMAGETYPE_FOR_MAKE} ; do 790 for imageType in ${KERNEL_IMAGETYPES} ; do
776 if [ "$imageType" = "fitImage" ] ; then 791 if [ "$imageType" = "fitImage" ] ; then
777 continue 792 continue
778 fi 793 fi