Re: [PATCH 2/2] s390: add Linux banner to the compressed image

From: Vasily Gorbik
Date: Sun Jul 14 2019 - 10:35:50 EST


On Fri, Jul 12, 2019 at 07:21:01PM +0200, Petr Tesarik wrote:
> Various tools determine the kernel version from a given binary by
> scanning for the Linux banner string. This does not work if the
> banner string is compressed, but we can link it once more into the
> uncompressed portion of bzImage.
>
> Signed-off-by: Petr Tesarik <ptesarik@xxxxxxxx>
> ---
> arch/s390/boot/compressed/Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/s390/boot/compressed/Makefile b/arch/s390/boot/compressed/Makefile
> index fa529c5b4486..9bc4685477c5 100644
> --- a/arch/s390/boot/compressed/Makefile
> +++ b/arch/s390/boot/compressed/Makefile
> @@ -11,6 +11,7 @@ UBSAN_SANITIZE := n
> KASAN_SANITIZE := n
>
> obj-y := $(if $(CONFIG_KERNEL_UNCOMPRESSED),,decompressor.o) piggy.o info.o
> +obj-y += ../../../../init/banner.o

We don't reuse objects from another build stage, we rebuild them with
distinct decompressor's build flags.
$ git grep "ctype.[oc]" -- arch/s390/boot
arch/s390/boot/Makefile:obj-y += ctype.o text_dma.o
arch/s390/boot/ctype.c:#include "../../../lib/ctype.c"

Besides that, there is a special CONFIG_KERNEL_UNCOMPRESSED mode, with
which "strings vmlinuz | grep 'Linux version'" I assume you are using
would still yield result. Adding the second version of banner would
produce duplicated result in this case.

But even before discussing solutions I would like to understand the
problem first. Which specific tools are you referring to? What are they
good for? And how do they get the kernel version from other architectures
compressed images?