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 <zhongjubin@huawei.com>

Link: https://lore.kernel.org/lkml/1637323647-19988-1-git-send-email-zhongjubin@huawei.com/
Change-Id: I23c6e0fd2e54fdc84e78f122d6f4f06e54026696
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
This commit is contained in:
Jubin Zhong
2021-11-20 11:42:51 +08:00
committed by Tao Huang
parent 8e1b286c67
commit 83c382f436
2 changed files with 11 additions and 1 deletions

View File

@@ -129,7 +129,11 @@
# define XZ_DEC_POWERPC # define XZ_DEC_POWERPC
#endif #endif
#ifdef CONFIG_ARM #ifdef CONFIG_ARM
# ifdef CONFIG_THUMB2_KERNEL
# define XZ_DEC_ARMTHUMB
# else
# define XZ_DEC_ARM # define XZ_DEC_ARM
# endif
#endif #endif
#ifdef CONFIG_IA64 #ifdef CONFIG_IA64
# define XZ_DEC_IA64 # define XZ_DEC_IA64

View File

@@ -9,6 +9,8 @@
# You can do whatever you want with this file. # You can do whatever you want with this file.
# #
. include/config/auto.conf
BCJ= BCJ=
LZMA2OPTS= LZMA2OPTS=
@@ -20,4 +22,8 @@ case $SRCARCH in
sparc) BCJ=--sparc ;; sparc) BCJ=--sparc ;;
esac esac
if [ -n "${CONFIG_THUMB2_KERNEL}" ]; then
BCJ=--armthumb
fi
exec $XZ --check=crc32 $BCJ --lzma2=$LZMA2OPTS,dict=32MiB exec $XZ --check=crc32 $BCJ --lzma2=$LZMA2OPTS,dict=32MiB