Re: [PATCH 3/4] kbuild: error out if $(KBUILD_EXTMOD) contains % or :

From: Masahiro Yamada
Date: Sat Jul 16 2022 - 11:39:31 EST


On Thu, Jul 14, 2022 at 2:03 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
>
> If the directory pass given to KBUILD_EXTMOD (or M=) contains % or :,

This is a typo.

directory pass -> directory path




> the module fails to build.
>
> % is used in pattern rules, and : as the separator of dependencies.
>
> Bail out with a clearer error message.
>
> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> ---
>
> Makefile | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index faa4880f25f7..ecda62e27553 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -129,6 +129,9 @@ endif
> $(if $(word 2, $(KBUILD_EXTMOD)), \
> $(error building multiple external modules is not supported))
>
> +$(foreach x, % :, $(if $(findstring $x, $(KBUILD_EXTMOD)), \
> + $(error module directory path cannot contain '$x')))
> +
> # Remove trailing slashes
> ifneq ($(filter %/, $(KBUILD_EXTMOD)),)
> KBUILD_EXTMOD := $(shell dirname $(KBUILD_EXTMOD).)
> --
> 2.34.1
>


--
Best Regards
Masahiro Yamada