summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2021-03-31 22:38:05 +0900
committerMasahiro Yamada <masahiroy@kernel.org>2021-04-25 05:22:42 +0900
commit1a998be620a10000c1e1240026e4bd6bc3378c96 (patch)
tree43b11c0ce0134689314cb40e03b361d0bfa730e5
parent3ac42b2112532a71125eea6bb07361deeca9aaa1 (diff)
downloadlinux-1a998be620a10000c1e1240026e4bd6bc3378c96.tar.bz2
kbuild: check module name conflict for external modules as well
If there are multiple modules with the same name in the same external module tree, there is ambiguity about which one will be loaded, and very likely something odd is happening. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-rw-r--r--Makefile10
-rwxr-xr-xscripts/modules-check.sh4
2 files changed, 7 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index a6f73335757d..b5ff4753eba8 100644
--- a/Makefile
+++ b/Makefile
@@ -1459,10 +1459,6 @@ endif
PHONY += modules
modules: $(if $(KBUILD_BUILTIN),vmlinux) modules_check modules_prepare
-PHONY += modules_check
-modules_check: modules.order
- $(Q)$(CONFIG_SHELL) $(srctree)/scripts/modules-check.sh $<
-
cmd_modules_order = $(AWK) '!x[$$0]++' $(real-prereqs) > $@
modules.order: $(subdir-modorder) FORCE
@@ -1775,9 +1771,13 @@ PHONY += modules modules_install
ifdef CONFIG_MODULES
-modules: $(MODORDER)
+modules: modules_check
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
+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)
diff --git a/scripts/modules-check.sh b/scripts/modules-check.sh
index 43de226071ae..e06327722263 100755
--- a/scripts/modules-check.sh
+++ b/scripts/modules-check.sh
@@ -13,10 +13,10 @@ exit_code=0
# Check uniqueness of module names
check_same_name_modules()
{
- for m in $(sed 's:.*/::' $1 | sort | uniq -d)
+ for m in $(sed 's:.*/::' "$1" | sort | uniq -d)
do
echo "error: the following would cause module name conflict:" >&2
- sed -n "/\/$m/s:^: :p" modules.order >&2
+ sed -n "/\/$m/s:^: :p" "$1" >&2
exit_code=1
done
}