summaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel.bbclass
diff options
context:
space:
mode:
authorSaul Wold <Saul.Wold@windriver.com>2022-01-12 09:20:41 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-01-13 13:57:26 +0000
commit987d30df5bb18de3cf17d38bbb745ea65cb86266 (patch)
tree4b4bae9fe9332fda6fe6f20de826a365e3f16bd0 /meta/classes/kernel.bbclass
parent5ea171985c8fcba857034b64de7c46b0ce364b8d (diff)
downloadpoky-987d30df5bb18de3cf17d38bbb745ea65cb86266.tar.gz
kernel.bbclass: use common strip()
Re-use the runstrip() code from oe.packaging, for the kernel stripping process. Since runstrip() is python the kernel do_strip() need to be converted to Python also. The stripped kernel image will be used for deployment in do_deploy(). This will allow the package.bbclass to split an unstripped kernel binary for the debug information and extended packagedata. The extended package data is used by create-spdx. (From OE-Core rev: e8d9caede5f08154ca615fdaba676b7a4ae05b01) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/kernel.bbclass')
-rw-r--r--meta/classes/kernel.bbclass44
1 files changed, 19 insertions, 25 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 7685c6921f..473e28be47 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -700,30 +700,19 @@ do_kernel_link_images() {
700} 700}
701addtask kernel_link_images after do_compile before do_strip 701addtask kernel_link_images after do_compile before do_strip
702 702
703do_strip() { 703python do_strip() {
704 if [ -n "${KERNEL_IMAGE_STRIP_EXTRA_SECTIONS}" ]; then 704 import shutil
705 if ! (echo "${KERNEL_IMAGETYPES}" | grep -wq "vmlinux"); then 705
706 bbwarn "image type(s) will not be stripped (not supported): ${KERNEL_IMAGETYPES}" 706 strip = d.getVar('STRIP')
707 return 707 extra_sections = d.getVar('KERNEL_IMAGE_STRIP_EXTRA_SECTIONS')
708 fi 708 kernel_image = d.getVar('B') + "/" + d.getVar('KERNEL_OUTPUT_DIR') + "/vmlinux"
709 709
710 cd ${B} 710 if (extra_sections and kernel_image.find('boot/vmlinux') != -1):
711 headers=`"$CROSS_COMPILE"readelf -S ${KERNEL_OUTPUT_DIR}/vmlinux | \ 711 kernel_image_stripped = kernel_image + ".stripped"
712 grep "^ \{1,\}\[[0-9 ]\{1,\}\] [^ ]" | \ 712 shutil.copy2(kernel_image, kernel_image_stripped)
713 sed "s/^ \{1,\}\[[0-9 ]\{1,\}\] //" | \ 713 oe.package.runstrip((kernel_image_stripped, 8, strip, extra_sections))
714 gawk '{print $1}'` 714 bb.debug(1, "KERNEL_IMAGE_STRIP_EXTRA_SECTIONS is set, stripping sections: " + \
715 715 extra_sections)
716 for str in ${KERNEL_IMAGE_STRIP_EXTRA_SECTIONS}; do {
717 if ! (echo "$headers" | grep -q "^$str$"); then
718 bbwarn "Section not found: $str";
719 fi
720
721 "$CROSS_COMPILE"strip -s -R $str ${KERNEL_OUTPUT_DIR}/vmlinux
722 }; done
723
724 bbnote "KERNEL_IMAGE_STRIP_EXTRA_SECTIONS is set, stripping sections:" \
725 "${KERNEL_IMAGE_STRIP_EXTRA_SECTIONS}"
726 fi;
727} 716}
728do_strip[dirs] = "${B}" 717do_strip[dirs] = "${B}"
729 718
@@ -768,7 +757,12 @@ kernel_do_deploy() {
768 757
769 for imageType in ${KERNEL_IMAGETYPES} ; do 758 for imageType in ${KERNEL_IMAGETYPES} ; do
770 baseName=$imageType-${KERNEL_IMAGE_NAME} 759 baseName=$imageType-${KERNEL_IMAGE_NAME}
771 install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType $deployDir/$baseName${KERNEL_IMAGE_BIN_EXT} 760
761 if [ -s ${KERNEL_OUTPUT_DIR}/$imageType.stripped ] ; then
762 install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType.stripped $deployDir/$baseName${KERNEL_IMAGE_BIN_EXT}
763 else
764 install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType $deployDir/$baseName${KERNEL_IMAGE_BIN_EXT}
765 fi
772 if [ -n "${KERNEL_IMAGE_LINK_NAME}" ] ; then 766 if [ -n "${KERNEL_IMAGE_LINK_NAME}" ] ; then
773 ln -sf $baseName${KERNEL_IMAGE_BIN_EXT} $deployDir/$imageType-${KERNEL_IMAGE_LINK_NAME}${KERNEL_IMAGE_BIN_EXT} 767 ln -sf $baseName${KERNEL_IMAGE_BIN_EXT} $deployDir/$imageType-${KERNEL_IMAGE_LINK_NAME}${KERNEL_IMAGE_BIN_EXT}
774 fi 768 fi