2022-07-14 05:10:56

by Masahiro Yamada

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

If the directory pass given to KBUILD_EXTMOD (or M=) contains % or :,
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 <[email protected]>
---

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


2022-07-15 09:41:35

by Nicolas Schier

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

On Thu, Jul 14, 2022 at 02:02:42PM +0900, Masahiro Yamada wrote:
> If the directory pass given to KBUILD_EXTMOD (or M=) contains % or :,
> 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 <[email protected]>
> ---

Reviewed-by: Nicolas Schier <[email protected]>

2022-07-16 15:56:48

by Masahiro Yamada

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

On Thu, Jul 14, 2022 at 2:03 PM Masahiro Yamada <[email protected]> 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 <[email protected]>
> ---
>
> 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