lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ