summaryrefslogtreecommitdiffstats
path: root/scripts/clang-tools
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2021-08-19 02:57:33 +0200
committerMasahiro Yamada <masahiroy@kernel.org>2021-09-03 01:17:20 +0200
commit265264b814c2121513eab2e1cffe196502af0961 (patch)
tree9d92ebe3ba076bce0d92e43b1d569b8fb49b6900 /scripts/clang-tools
parentx86: remove cc-option-yn test for -mtune= (diff)
downloadlinux-265264b814c2121513eab2e1cffe196502af0961.tar.xz
linux-265264b814c2121513eab2e1cffe196502af0961.zip
gen_compile_commands: extract compiler command from a series of commands
The current gen_compile_commands.py assumes that objects are always built by a single command. It makes sense to support cases where objects are built by a series of commands: cmd_<object> := <command1> ; <command2> One use-case is that <command1> is a compiler command, and <command2> an objtool command. It allows *.cmd files to contain an objtool command so that any change in it triggers object rebuilds. If ; appears after the C source file, take the first command. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'scripts/clang-tools')
-rwxr-xr-xscripts/clang-tools/gen_compile_commands.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/clang-tools/gen_compile_commands.py b/scripts/clang-tools/gen_compile_commands.py
index b7e9ecf16e56..0033eedce003 100755
--- a/scripts/clang-tools/gen_compile_commands.py
+++ b/scripts/clang-tools/gen_compile_commands.py
@@ -18,7 +18,7 @@ _DEFAULT_OUTPUT = 'compile_commands.json'
_DEFAULT_LOG_LEVEL = 'WARNING'
_FILENAME_PATTERN = r'^\..*\.cmd$'
-_LINE_PATTERN = r'^cmd_[^ ]*\.o := (.* )([^ ]*\.c)$'
+_LINE_PATTERN = r'^cmd_[^ ]*\.o := (.* )([^ ]*\.c) *(;|$)'
_VALID_LOG_LEVELS = ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']
# The tools/ directory adopts a different build system, and produces .cmd
# files in a different format. Do not support it.