Re: [PATCH] Replace use of perl with sed and tr in s390x build.

From: Vasily Gorbik
Date: Mon May 31 2021 - 17:55:33 EST


On Mon, May 17, 2021 at 11:46:44PM -0500, Rob Landley wrote:
> From: Rob Landley <rob@xxxxxxxxxxx>
>
> Commit 246218962e21 in November added a perl dependency to the s390x vmlinux
> build, complicating the "countering trusting trust" build approach ala
> http://lists.landley.net/pipermail/toybox-landley.net/2020-July/011898.html
>
> Signed-off-by: Rob Landley <rob@xxxxxxxxxxx>
> ---
>
> arch/s390/boot/compressed/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/s390/boot/compressed/Makefile b/arch/s390/boot/compressed/Makefile
> index de18dab518bb..e941b165bd4f 100644
> --- a/arch/s390/boot/compressed/Makefile
> +++ b/arch/s390/boot/compressed/Makefile
> @@ -33,7 +33,7 @@ $(obj)/vmlinux.syms: $(obj)/vmlinux.lds $(objtree)/arch/s390/boot/startup.a $(OB
>
> quiet_cmd_dumpsyms = DUMPSYMS $<
> define cmd_dumpsyms
> - $(NM) -n -S --format=bsd "$<" | $(PERL) -ne '/(\w+)\s+(\w+)\s+[tT]\s+(\w+)/ and printf "%x %x %s\0",hex $$1,hex $$2,$$3' > "$@"
> + $(NM) -n -S --format=bsd "$<" | sed -nE 's/^0*([0-9a-fA-F]+) 0*([0-9a-fA-F]+) [tT] ([^ ]*)$$/\1 \2 \3/p' | tr '\n' '\0' > "$@"
> endef

The change itself is fine. Yields the same result as before with
binutils/llvm/elfutils versions of nm.

With s390 defconfig there is at least another perl invocation via
./lib/build_OID_registry, which is hard to get rid of. debug_defconfig calls
./scripts/headers_check.pl on top. Perl is explicitly listed in "Minimal
requirements to compile the Kernel" in Documentation/process/changes.rst and
quite frankly I'm not aware of any plans to get rid of it. It has its use.

So, would you mind if I pick your patch changing the commit message
like the following?
"""
s390/decompressor: replace use of perl with simple sed/tr

Use simple sed/tr instead of perl to generate decompressor symbols
file with the same result.

Signed-off-by: Rob Landley <rob@xxxxxxxxxxx>
"""