]> git.baikalelectronics.ru Git - kernel.git/commit
gen_compile_commands: handle multiple lines per .mod file
authorJohn Hubbard <jhubbard@nvidia.com>
Tue, 28 Jun 2022 01:23:53 +0000 (18:23 -0700)
committerMasahiro Yamada <masahiroy@kernel.org>
Wed, 29 Jun 2022 02:43:13 +0000 (11:43 +0900)
commitcce06c472ed09a330bd3c76fd112137dd57a87ac
treec9dbfeb46dfd1cd5466bcba27b442fc380251773
parent4f64cb9d4742408196e508a683a5f394c26fe503
gen_compile_commands: handle multiple lines per .mod file

scripts/clang-tools/gen_compile_commands.py incorrectly assumes that
each .mod file only contains one line. That assumption was correct when
the script was originally created, but commit 8ce240a462b3 ("kbuild:
split the second line of *.mod into *.usyms") changed the .mod file
format so that there is one entry per line, and potentially many lines.

The problem can be reproduced by using Kbuild to generate
compile_commands.json, like this:

    make CC=clang compile_commands.json

In many cases, the problem might be overlooked because many subsystems
only have one line anyway. However, in some subsystems (Nouveau, with
762 entries, is a notable example) it results in skipping most of the
subsystem.

Fix this by fully processing each .mod file.

Fixes: 8ce240a462b3 ("kbuild: split the second line of *.mod into *.usyms")
Signed-off-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/clang-tools/gen_compile_commands.py