Re: [PATCH 3/8] kbuild: move depmod rule to scripts/Makefile.modinst

From: Nicolas Schier
Date: Wed Aug 23 2023 - 15:55:16 EST


On Wed 23 Aug 2023 20:50:43 GMT, Masahiro Yamada wrote:
> depmod is a part of the module installation.
>
> scripts/Makefile.modinst is a better place to run it.
>
> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> ---
>
> Makefile | 8 --------
> scripts/Makefile.modinst | 9 +++++++++
> scripts/depmod.sh | 10 ++++++----
> 3 files changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index e2dfa3b994f7..c9c8019e4720 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -509,7 +509,6 @@ LEX = flex
> YACC = bison
> AWK = awk
> INSTALLKERNEL := installkernel
> -DEPMOD = depmod
> PERL = perl
> PYTHON3 = python3
> CHECK = sparse
> @@ -1871,15 +1870,8 @@ PHONY += modules_check
> modules_check: $(MODORDER)
> $(Q)$(CONFIG_SHELL) $(srctree)/scripts/modules-check.sh $<
>
> -quiet_cmd_depmod = DEPMOD $(MODLIB)
> - cmd_depmod = $(CONFIG_SHELL) $(srctree)/scripts/depmod.sh $(DEPMOD) \
> - $(KERNELRELEASE)
> -
> modules_install:
> $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
> -ifndef modules_sign_only
> - $(call cmd,depmod)
> -endif
>
> else # CONFIG_MODULES
>
> diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst
> index ab0c5bd1a60f..7a64ece9b826 100644
> --- a/scripts/Makefile.modinst
> +++ b/scripts/Makefile.modinst
> @@ -86,6 +86,15 @@ $(dst)/%.ko: $(extmod_prefix)%.ko FORCE
> $(call cmd,strip)
> $(call cmd,sign)
>
> +__modinst: depmod
> +
> +PHONY += depmod
> +depmod: $(modules)
> + $(call cmd,depmod)
> +
> +quiet_cmd_depmod = DEPMOD $(MODLIB)
> + cmd_depmod = $(srctree)/scripts/depmod.sh $(KERNELRELEASE)

Did you remove the $(CONFIG_SHELL) by intention?

> +
> else
>
> $(dst)/%.ko: FORCE
> diff --git a/scripts/depmod.sh b/scripts/depmod.sh
> index fca689ba4f21..ee771ccb1f9c 100755
> --- a/scripts/depmod.sh
> +++ b/scripts/depmod.sh
> @@ -3,12 +3,14 @@
> #
> # A depmod wrapper used by the toplevel Makefile

toplevel Makefile -> scripts/Makefile.modinst

>
> -if test $# -ne 2; then
> - echo "Usage: $0 /sbin/depmod <kernelrelease>" >&2
> +if test $# -ne 1; then
> + echo "Usage: $0 <kernelrelease>" >&2
> exit 1
> fi
> -DEPMOD=$1
> -KERNELRELEASE=$2
> +
> +KERNELRELEASE=$1
> +
> +: ${DEPMOD:=depmod}
>
> if ! test -r System.map ; then
> echo "Warning: modules_install: missing 'System.map' file. Skipping depmod." >&2
> --
> 2.39.2

A minor observation: with this patch, the "quiet_cmd_*" examples in
Makefile and in Documentation/kbuild/makefiles.rst become out-dated.

But technically, it looks good to me, thus:
Reviewed-by: Nicolas Schier <nicolas@xxxxxxxxx>

Attachment: signature.asc
Description: PGP signature