kbuild: check module name conflict for external modules as well
authorMasahiro Yamada <masahiroy@kernel.org>
Wed, 31 Mar 2021 13:38:05 +0000 (22:38 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Sat, 24 Apr 2021 20:22:42 +0000 (05:22 +0900)
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>
Makefile
scripts/modules-check.sh

index a6f73335757dc515a31588f786e7cdd88460f4c8..b5ff4753eba8cba8160dfb1bc078a21e4d32b68c 100644 (file)
--- 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)
index 43de226071ae38adbc919f951cda442855bc967c..e06327722263e1632577608c5c70831e76582cc9 100755 (executable)
@@ -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
 }