[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87ttjgcqjv.fsf@all.your.base.are.belong.to.us>
Date: Thu, 02 May 2024 15:05:24 +0200
From: Björn Töpel <bjorn@...nel.org>
To: Emil Renner Berthing <emil.renner.berthing@...onical.com>,
linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-kbuild@...r.kernel.org
Cc: Paul Walmsley <paul.walmsley@...ive.com>, Palmer Dabbelt
<palmer@...belt.com>, Masahiro Yamada <masahiroy@...nel.org>, Nathan
Chancellor <nathan@...nel.org>, Nicolas Schier <nicolas@...sle.eu>, Nick
Terrell <terrelln@...com>
Subject: Re: [PATCH v1 1/3] riscv: make image compression configurable
Emil Renner Berthing <emil.renner.berthing@...onical.com> writes:
> Previously the build process would always set KBUILD_IMAGE to the
> uncompressed Image file (unless XIP_KERNEL or EFI_ZBOOT was enabled) and
> unconditionally compress it into Image.gz. However there are already
> build targets for Image.bz2, Image.lz4, Image.lzma, Image.lzo and
> Image.zstd, so let's make use of those, make the compression method
> configurable and set KBUILD_IMAGE accordingly so that targets like
> 'make install' and 'make bindeb-pkg' will use the chosen image.
>
> Signed-off-by: Emil Renner Berthing <emil.renner.berthing@...onical.com>
> ---
> arch/riscv/Kconfig | 7 +++++++
> arch/riscv/Makefile | 43 ++++++++++++++++++++------------------
> arch/riscv/boot/install.sh | 9 +++++---
> 3 files changed, 36 insertions(+), 23 deletions(-)
>
> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> index be09c8836d56..6c092d1ea7db 100644
> --- a/arch/riscv/Kconfig
> +++ b/arch/riscv/Kconfig
> @@ -138,6 +138,13 @@ config RISCV
> select HAVE_GCC_PLUGINS
> select HAVE_GENERIC_VDSO if MMU && 64BIT
> select HAVE_IRQ_TIME_ACCOUNTING
> + select HAVE_KERNEL_BZIP2 if !XIP_KERNEL && !EFI_ZBOOT
> + select HAVE_KERNEL_GZIP if !XIP_KERNEL && !EFI_ZBOOT
> + select HAVE_KERNEL_LZ4 if !XIP_KERNEL && !EFI_ZBOOT
> + select HAVE_KERNEL_LZMA if !XIP_KERNEL && !EFI_ZBOOT
> + select HAVE_KERNEL_LZO if !XIP_KERNEL && !EFI_ZBOOT
> + select HAVE_KERNEL_UNCOMPRESSED if !XIP_KERNEL && !EFI_ZBOOT
> + select HAVE_KERNEL_ZSTD if !XIP_KERNEL && !EFI_ZBOOT
> select HAVE_KPROBES if !XIP_KERNEL
> select HAVE_KPROBES_ON_FTRACE if !XIP_KERNEL
> select HAVE_KRETPROBES if !XIP_KERNEL
> diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
> index 5b3115a19852..29be676415d6 100644
> --- a/arch/riscv/Makefile
> +++ b/arch/riscv/Makefile
> @@ -129,11 +129,27 @@ endif
> CHECKFLAGS += -D__riscv -D__riscv_xlen=$(BITS)
>
> # Default target when executing plain make
> -boot := arch/riscv/boot
> +boot := arch/riscv/boot
> ifeq ($(CONFIG_XIP_KERNEL),y)
> KBUILD_IMAGE := $(boot)/xipImage
> +else ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_ARCH_CANAAN),yy)
> +KBUILD_IMAGE := $(boot)/loader.bin
> +else ifeq ($(CONFIG_EFI_ZBOOT),y)
> +KBUILD_IMAGE := $(boot)/vmlinuz.efi
> +else ifeq ($(CONFIG_KERNEL_GZIP),y)
> +KBUILD_IMAGE := $(boot)/Image.gz
> +else ifeq ($(CONFIG_KERNEL_BZIP2),y)
> +KBUILD_IMAGE := $(boot)/Image.bz2
> +else ifeq ($(CONFIG_KERNEL_LZ4),y)
> +KBUILD_IMAGE := $(boot)/Image.lz4
> +else ifeq ($(CONFIG_KERNEL_LZMA),y)
> +KBUILD_IMAGE := $(boot)/Image.lzma
> +else ifeq ($(CONFIG_KERNEL_LZO),y)
> +KBUILD_IMAGE := $(boot)/Image.lzo
> +else ifeq ($(CONFIG_KERNEL_ZSTD),y)
> +KBUILD_IMAGE := $(boot)/Image.zst
> else
> -KBUILD_IMAGE := $(boot)/Image.gz
> +KBUILD_IMAGE := $(boot)/Image
> endif
Really a nit/change if you want, but maybe doing something like
arch/s390/boot/Makefile does is easier to read:
diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
index 024482c68835..70f08e9999b4 100644
--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@ -128,6 +128,14 @@ endif
# arch specific predefines for sparse
CHECKFLAGS += -D__riscv -D__riscv_xlen=$(BITS)
+suffix-$(CONFIG_KERNEL_GZIP) := .gz
+suffix-$(CONFIG_KERNEL_BZIP2) := .bz2
+suffix-$(CONFIG_KERNEL_LZ4) := .lz4
+suffix-$(CONFIG_KERNEL_LZMA) := .lzma
+suffix-$(CONFIG_KERNEL_LZO) := .lzo
+suffix-$(CONFIG_KERNEL_XZ) := .xz
+suffix-$(CONFIG_KERNEL_ZSTD) := .zst
+
# Default target when executing plain make
boot := arch/riscv/boot
ifeq ($(CONFIG_XIP_KERNEL),y)
@@ -136,20 +144,8 @@ else ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_ARCH_CANAAN),yy)
KBUILD_IMAGE := $(boot)/loader.bin
else ifeq ($(CONFIG_EFI_ZBOOT),y)
KBUILD_IMAGE := $(boot)/vmlinuz.efi
-else ifeq ($(CONFIG_KERNEL_GZIP),y)
-KBUILD_IMAGE := $(boot)/Image.gz
-else ifeq ($(CONFIG_KERNEL_BZIP2),y)
-KBUILD_IMAGE := $(boot)/Image.bz2
-else ifeq ($(CONFIG_KERNEL_LZ4),y)
-KBUILD_IMAGE := $(boot)/Image.lz4
-else ifeq ($(CONFIG_KERNEL_LZMA),y)
-KBUILD_IMAGE := $(boot)/Image.lzma
-else ifeq ($(CONFIG_KERNEL_LZO),y)
-KBUILD_IMAGE := $(boot)/Image.lzo
-else ifeq ($(CONFIG_KERNEL_ZSTD),y)
-KBUILD_IMAGE := $(boot)/Image.zst
else
-KBUILD_IMAGE := $(boot)/Image
+KBUILD_IMAGE := $(boot)/Image$(suffix-y)
endif
Björn
Powered by blists - more mailing lists