[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNAT_0PnW0opWQoCiF5mWH4YEKxXHbdiTrSGqGFRv5nhY=w@mail.gmail.com>
Date: Wed, 13 Oct 2021 10:34:07 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Vegard Nossum <vegard.nossum@...cle.com>
Cc: Linux Kbuild mailing list <linux-kbuild@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [RFC PATCH] kbuild: only prompt for compressors that are actually usable
On Wed, Oct 13, 2021 at 2:01 AM Vegard Nossum <vegard.nossum@...cle.com> wrote:
>
> If a given compression algorithm for the kernel image is not usable on
> the host system, there is no point prompting for it.
>
> We can use the kconfig preprocessing feature to check if the command is
> available or not. I've chosen to test this using "which", which exits
> with success if the given command exists in PATH (or it is an absolute
> path), which mimics exactly how it would be found in the kernel's
> Makefiles.
>
> This uses the make variables that are set in Makefile and/or the
> command line, so you can do e.g.
>
> make KGZIP=pigz menuconfig
>
> and it will test for the correct program.
>
> I am intentionally adding these dependencies to e.g. KERNEL_LZ4, as
> opposed to HAVE_KERNEL_LZ4, since the latter are "select"-ed
> unconditionally by the architectures that use them, so they are not
> suitable for depending on anything else.
>
> I've put RFC in the subject as maybe there are downsides to this that
> I'm not aware of.
>
> Signed-off-by: Vegard Nossum <vegard.nossum@...cle.com>
> ---
I think we should keep the host-tools dependency open in general.
You can easily install necessary packages.
> init/Kconfig | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/init/Kconfig b/init/Kconfig
> index 11f8a845f259d..f03f2b7962027 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -250,6 +250,7 @@ choice
> config KERNEL_GZIP
> bool "Gzip"
> depends on HAVE_KERNEL_GZIP
> + depends on $(success,which $(KGZIP))
> help
> The old and tried gzip compression. It provides a good balance
> between compression ratio and decompression speed.
> @@ -257,6 +258,7 @@ config KERNEL_GZIP
> config KERNEL_BZIP2
> bool "Bzip2"
> depends on HAVE_KERNEL_BZIP2
> + depends on $(success,which $(KBZIP2))
> help
> Its compression ratio and speed is intermediate.
> Decompression speed is slowest among the choices. The kernel
> @@ -267,6 +269,7 @@ config KERNEL_BZIP2
> config KERNEL_LZMA
> bool "LZMA"
> depends on HAVE_KERNEL_LZMA
> + depends on $(success,which $(LZMA))
> help
> This compression algorithm's ratio is best. Decompression speed
> is between gzip and bzip2. Compression is slowest.
> @@ -275,6 +278,7 @@ config KERNEL_LZMA
> config KERNEL_XZ
> bool "XZ"
> depends on HAVE_KERNEL_XZ
> + depends on $(success,which $(XZ))
> help
> XZ uses the LZMA2 algorithm and instruction set specific
> BCJ filters which can improve compression ratio of executable
> @@ -290,6 +294,7 @@ config KERNEL_XZ
> config KERNEL_LZO
> bool "LZO"
> depends on HAVE_KERNEL_LZO
> + depends on $(success,which $(KLZOP))
> help
> Its compression ratio is the poorest among the choices. The kernel
> size is about 10% bigger than gzip; however its speed
> @@ -298,6 +303,7 @@ config KERNEL_LZO
> config KERNEL_LZ4
> bool "LZ4"
> depends on HAVE_KERNEL_LZ4
> + depends on $(success,which $(LZ4))
> help
> LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding.
> A preliminary version of LZ4 de/compression tool is available at
> @@ -310,6 +316,7 @@ config KERNEL_LZ4
> config KERNEL_ZSTD
> bool "ZSTD"
> depends on HAVE_KERNEL_ZSTD
> + depends on $(success,which $(ZSTD))
> help
> ZSTD is a compression algorithm targeting intermediate compression
> with fast decompression speed. It will compress better than GZIP and
> --
> 2.23.0.718.g5ad94255a8
>
--
Best Regards
Masahiro Yamada
Powered by blists - more mailing lists