Re: [PATCH] scripts/Makefile.build: fix ext mod subdirs build with separate src,build dirs

From: Masahiro Yamada
Date: Mon Apr 15 2024 - 06:33:12 EST


On Mon, Apr 15, 2024 at 7:14 PM Valerii Chernous <vchernou@xxxxxxxxx> wrote:
>
> The change allow to build external modules with nested makefiles.
> Current unofficial way(using "src" variable) allow to build
> external(out of tree) kernel module with separating source and build
> artifacts dirs but with nested makefiles it doesn't work properly.
> Build system trap to recursion inside makefiles, articafts output dir
> path grow with each iteration until exceed max path len and build failed
> This fix update "src" var during processing subdirs and resolve
> recursion issue
> Usage example:
> make -C KERNEL_SOURCE_TREE M=BUILD_OUT_DIR src=EXT_MOD_SRC_DIR modules
>
> Cc: Valerii Chernous <vchernou@xxxxxxxxx>
> Cc: xe-linux-external@xxxxxxxxx
> Signed-off-by: Valerii Chernous <vchernou@xxxxxxxxx>


NACK.

Please do not send hacks over again.










> ---
> scripts/Makefile.build | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index a293950e2e07..75ea9052ea4a 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -490,6 +490,7 @@ $(single-subdir-goals): $(single-subdirs)
> PHONY += $(subdir-ym)
> $(subdir-ym):
> $(Q)$(MAKE) $(build)=$@ \
> + $(if $(findstring command line,$(origin src)),src=$(patsubst $(obj)/%,$(src)/%,$@)) \
> need-builtin=$(if $(filter $@/built-in.a, $(subdir-builtin)),1) \
> need-modorder=$(if $(filter $@/modules.order, $(subdir-modorder)),1) \
> $(filter $@/%, $(single-subdir-goals))
> --
> 2.35.6
>


--
Best Regards
Masahiro Yamada