Message ID | 20230823115048.823011-3-masahiroy@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/8] kbuild: do not run depmod for 'make modules_sign' | expand |
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@kernel.org> > --- > > 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@fjasle.eu>
On Thu, Aug 24, 2023 at 8:30 AM Nicolas Schier <nicolas@fjasle.eu> wrote: > > 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@kernel.org> > > --- > > > > 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? Yes. I do not know why $(CONFIG_SHELL) is needed. I remove $(CONFIG_SHELL) when I have a chance to touch the line. > > + > > 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 Good catch. I will fix it. > > > > -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. I was opposed to eb38f37c3cee08a0197bdc7bbb9b4e02e40e2300 The section "Script invocation" is not what I ack'ed. That is what Kees Cook and Andrew Morton did. > > But technically, it looks good to me, thus: > Reviewed-by: Nicolas Schier <nicolas@fjasle.eu> -- Best Regards Masahiro Yamada
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) + 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 -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
depmod is a part of the module installation. scripts/Makefile.modinst is a better place to run it. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> --- Makefile | 8 -------- scripts/Makefile.modinst | 9 +++++++++ scripts/depmod.sh | 10 ++++++---- 3 files changed, 15 insertions(+), 12 deletions(-)