modpost: dump missing namespaces into a single modules.nsdeps file
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 29 Oct 2019 12:38:07 +0000 (21:38 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Mon, 11 Nov 2019 11:10:01 +0000 (20:10 +0900)
commitbbc55bded4aaf47d6f2bd9389fc8d3a3821d18c0
tree4530ad6400d9e0798059644098cf66bbb15da074
parent0241ea8cae19b49fc1b1459f7bbe9a77f4f9cc89
modpost: dump missing namespaces into a single modules.nsdeps file

The modpost, with the -d option given, generates per-module .ns_deps
files.

Kbuild generates per-module .mod files to carry module information.
This is convenient because Make handles multiple jobs in parallel
when the -j option is given.

On the other hand, the modpost always runs as a single thread.
I do not see a strong reason to produce separate .ns_deps files.

This commit changes the modpost to generate just one file,
modules.nsdeps, each line of which has the following format:

  <module_name>: <list of missing namespaces>

Please note it contains *missing* namespaces instead of required ones.
So, modules.nsdeps is empty if the namespace dependency is all good.

This will work more efficiently because spatch will no longer process
already imported namespaces. I removed the '(if needed)' from the
nsdeps log since spatch is invoked only when needed.

This also solves the stale .ns_deps problem reported by Jessica Yu:

  https://lkml.org/lkml/2019/10/28/467

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Tested-by: Jessica Yu <jeyu@kernel.org>
Acked-by: Jessica Yu <jeyu@kernel.org>
Reviewed-by: Matthias Maennich <maennich@google.com>
Tested-by: Matthias Maennich <maennich@google.com>
.gitignore
Documentation/dontdiff
Makefile
scripts/Makefile.modpost
scripts/mod/modpost.c
scripts/mod/modpost.h
scripts/nsdeps