From 83c382f4369e8e70e0d7520f62e7a115dd3e9737 Mon Sep 17 00:00:00 2001 From: Jubin Zhong Date: Sat, 20 Nov 2021 11:42:51 +0800 Subject: [PATCH] FROMLIST: kbuild: Enable armthumb BCJ filter for Thumb-2 kernel xz_wrap.sh use $SRCARCH to detect the BCJ filter. However, assigning arm BCJ filter to Thumb-2 kernel is not optimal. In my case, about 5% decrease of image size is observed with armthumb BCJ filter: Test results: hardware: QEMU emulator version 3.1.0 config: vexpress_defconfig with THUMB2_KERNEL & KERNEL_XZ on arm BCJ: 4029808 armthumb BCJ: 3827280 Choose armthumb BCJ filter for Thumb-2 kernel to make smaller images. Signed-off-by: Jubin Zhong Link: https://lore.kernel.org/lkml/1637323647-19988-1-git-send-email-zhongjubin@huawei.com/ Change-Id: I23c6e0fd2e54fdc84e78f122d6f4f06e54026696 Signed-off-by: Tao Huang --- lib/decompress_unxz.c | 6 +++++- scripts/xz_wrap.sh | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/decompress_unxz.c b/lib/decompress_unxz.c index 25d59a95bd66..86fd01df3677 100644 --- a/lib/decompress_unxz.c +++ b/lib/decompress_unxz.c @@ -129,7 +129,11 @@ # define XZ_DEC_POWERPC #endif #ifdef CONFIG_ARM -# define XZ_DEC_ARM +# ifdef CONFIG_THUMB2_KERNEL +# define XZ_DEC_ARMTHUMB +# else +# define XZ_DEC_ARM +# endif #endif #ifdef CONFIG_IA64 # define XZ_DEC_IA64 diff --git a/scripts/xz_wrap.sh b/scripts/xz_wrap.sh index 76e9cbcfbeab..3824fdf037be 100755 --- a/scripts/xz_wrap.sh +++ b/scripts/xz_wrap.sh @@ -9,6 +9,8 @@ # You can do whatever you want with this file. # +. include/config/auto.conf + BCJ= LZMA2OPTS= @@ -20,4 +22,8 @@ case $SRCARCH in sparc) BCJ=--sparc ;; esac +if [ -n "${CONFIG_THUMB2_KERNEL}" ]; then + BCJ=--armthumb +fi + exec $XZ --check=crc32 $BCJ --lzma2=$LZMA2OPTS,dict=32MiB