[PATCH 5.13 063/175] kbuild: cancel sub_make_done for the install target to fix DKMS

From: Greg Kroah-Hartman
Date: Tue Aug 10 2021 - 13:59:54 EST


From: Masahiro Yamada <masahiroy@xxxxxxxxxx>

[ Upstream commit 14ccc638b02f9ec500c17d9e39efe979145a4b61 ]

Since commit bcf637f54f6d ("kbuild: parse C= and M= before changing the
working directory"), external module builds invoked by DKMS fail because
M= option is not parsed.

I wanted to add 'unset sub_make_done' in install.sh but similar scripts,
arch/*/boot/install.sh, are duplicated, so I set sub_make_done empty in
the top Makefile.

Fixes: bcf637f54f6d ("kbuild: parse C= and M= before changing the working directory")
Reported-by: John S Gruber <johnsgruber@xxxxxxxxx>
Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
Tested-by: John S Gruber <johnsgruber@xxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
Makefile | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/Makefile b/Makefile
index 9d810e13a83f..218f44d7fc80 100644
--- a/Makefile
+++ b/Makefile
@@ -1366,6 +1366,15 @@ scripts_unifdef: scripts_basic
$(Q)$(MAKE) $(build)=scripts scripts/unifdef

# ---------------------------------------------------------------------------
+# Install
+
+# Many distributions have the custom install script, /sbin/installkernel.
+# If DKMS is installed, 'make install' will eventually recuses back
+# to the this Makefile to build and install external modules.
+# Cancel sub_make_done so that options such as M=, V=, etc. are parsed.
+
+install: sub_make_done :=
+
# Kernel selftest

PHONY += kselftest
--
2.30.2