Re: [PATCH 1/2] kbuild: simplify cmd_mod

From: Nick Desaulniers
Date: Thu Jan 14 2021 - 20:08:33 EST


> From: Mahesh Kumar Kalikot Veetil <mkalikot@xxxxxxxxxxxxxx>
>
> Modules with a large number of compilation units can exceed execv
> argument list resulting in E2BIG (Argument list too long) error.
>
> Fix this by replacing shell 'echo > file' into a more native
> $(file op filename[,text]) option.
>
> Signed-off-by: Mahesh Kumar Kalikot Veetil <mkalikot@xxxxxxxxxxxxxx>
> Signed-off-by: Jeff Johnson <jjohnson@xxxxxxxxxxxxxx>
> ---
> scripts/Makefile.build | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index 4c058f1..252b7d2 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -279,10 +279,11 @@ $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
> $(call if_changed_rule,cc_o_c)
> $(call cmd,force_checksrc)
>
> -cmd_mod = { \
> - echo $(if $($*-objs)$($*-y)$($*-m), $(addprefix $(obj)/, $($*-objs) $($*-y) $($*-m)), $(@:.mod=.o)); \
> - $(undefined_syms) echo; \
> - } > $@
> +cmd_mod = $(file >$@,\
> + $(if $($*-objs)$($*-y)$($*-m), \
> + $(addprefix $(obj)/, $($*-objs) $($*-y) $($*-m)), \
> + $(@:.mod=.o))) \
> + $(undefined_syms) echo >> $@

I find the indendation to be a readability improvement. Thanks for the
patch.

Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
Tested-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

>
> $(obj)/%.mod: $(obj)/%.o FORCE
> $(call if_changed,mod)
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
>
>