Re: [PATCH v2] kbuild: remove sed command from cmd_ar_builtin

From: Nick Desaulniers
Date: Tue Jun 14 2022 - 15:01:48 EST


On Mon, Jun 13, 2022 at 10:53 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
>
> Replace a pipeline of echo and sed with printf to decrease process forks.

If you're trying to minimize process forks, is it possible to remove
the use of xargs as well and just invoke $(AR) with the parameters
splatted out? I don't know myself, but maybe you're creative enough?

Otherwise,
Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

>
> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> ---
>
> Changes in v2:
> - Avoid the pipeline if there is no object to put in the archive
>
> scripts/Makefile.build | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index cac070aee791..784f46d41959 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -358,9 +358,8 @@ $(subdir-modorder): $(obj)/%/modules.order: $(obj)/% ;
>
> quiet_cmd_ar_builtin = AR $@
> cmd_ar_builtin = rm -f $@; \
> - echo $(patsubst $(obj)/%,%,$(real-prereqs)) | \
> - sed -E 's:([^ ]+):$(obj)/\1:g' | \
> - xargs $(AR) cDPrST $@
> + $(if $(real-prereqs), printf "$(obj)/%s " $(patsubst $(obj)/%,%,$(real-prereqs)) | xargs) \
> + $(AR) cDPrST $@
>
> $(obj)/built-in.a: $(real-obj-y) FORCE
> $(call if_changed,ar_builtin)
> --
> 2.32.0
>


--
Thanks,
~Nick Desaulniers