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>
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
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)
# 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
}