modpost: do not invoke extra modpost for nsdeps
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 29 Oct 2019 12:38:06 +0000 (21:38 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Mon, 11 Nov 2019 11:10:01 +0000 (20:10 +0900)
'make nsdeps' invokes the modpost three times at most; before linking
vmlinux, before building modules, and finally for generating .ns_deps
files. Running the modpost again and again is not efficient.

The last two can be unified. When the -d option is given, the modpost
still does the usual job, and in addition, generates .ns_deps files.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Tested-by: Matthias Maennich <maennich@google.com>
Reviewed-by: Matthias Maennich <maennich@google.com>
Makefile
scripts/Makefile.modpost
scripts/mod/modpost.c

index 8a1e1ce..107a52d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1684,10 +1684,9 @@ tags TAGS cscope gtags: FORCE
 # ---------------------------------------------------------------------------
 
 PHONY += nsdeps
-
+nsdeps: export KBUILD_NSDEPS=1
 nsdeps: modules
-       $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost nsdeps
-       $(Q)$(CONFIG_SHELL) $(srctree)/scripts/$@
+       $(Q)$(CONFIG_SHELL) $(srctree)/scripts/nsdeps
 
 # Scripts to check various things for consistency
 # ---------------------------------------------------------------------------
index 20359c7..0089417 100644 (file)
@@ -53,8 +53,7 @@ MODPOST = scripts/mod/modpost                                         \
        $(if $(KBUILD_EXTMOD),$(addprefix -e ,$(KBUILD_EXTRA_SYMBOLS))) \
        $(if $(KBUILD_EXTMOD),-o $(modulesymfile))                      \
        $(if $(CONFIG_SECTION_MISMATCH_WARN_ONLY),,-E)                  \
-       $(if $(KBUILD_MODPOST_WARN),-w)                                 \
-       $(if $(filter nsdeps,$(MAKECMDGOALS)),-d)
+       $(if $(KBUILD_MODPOST_WARN),-w)
 
 ifdef MODPOST_VMLINUX
 
@@ -66,7 +65,8 @@ __modpost:
 
 else
 
-MODPOST += $(subst -i,-n,$(filter -i,$(MAKEFLAGS))) -s -T -
+MODPOST += $(subst -i,-n,$(filter -i,$(MAKEFLAGS))) -s -T - \
+       $(if $(KBUILD_NSDEPS),-d)
 
 ifeq ($(KBUILD_EXTMOD),)
 MODPOST += $(wildcard vmlinux)
@@ -96,8 +96,6 @@ ifneq ($(KBUILD_MODPOST_NOFINAL),1)
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modfinal
 endif
 
-nsdeps: __modpost
-
 endif
 
 .PHONY: $(PHONY)
index 37fa1c6..1de983d 100644 (file)
@@ -2221,8 +2221,7 @@ static int check_exports(struct module *mod)
                        add_namespace(&mod->required_namespaces,
                                      exp->namespace);
 
-                       if (!write_namespace_deps &&
-                           !module_imports_namespace(mod, exp->namespace)) {
+                       if (!module_imports_namespace(mod, exp->namespace)) {
                                warn("module %s uses symbol %s from namespace %s, but does not import it.\n",
                                     basename, exp->name, exp->namespace);
                        }
@@ -2642,8 +2641,6 @@ int main(int argc, char **argv)
 
                err |= check_modname_len(mod);
                err |= check_exports(mod);
-               if (write_namespace_deps)
-                       continue;
 
                add_header(&buf, mod);
                add_intree_flag(&buf, !external_module);
@@ -2658,10 +2655,8 @@ int main(int argc, char **argv)
                write_if_changed(&buf, fname);
        }
 
-       if (write_namespace_deps) {
+       if (write_namespace_deps)
                write_namespace_deps_files();
-               return 0;
-       }
 
        if (dump_write)
                write_dump(dump_write);