diff options
author | Masahiro Yamada <masahiroy@kernel.org> | 2021-08-19 03:57:33 +0300 |
---|---|---|
committer | Masahiro Yamada <masahiroy@kernel.org> | 2021-09-03 02:17:20 +0300 |
commit | 265264b814c2121513eab2e1cffe196502af0961 (patch) | |
tree | 9d92ebe3ba076bce0d92e43b1d569b8fb49b6900 | |
parent | 7ab44e9ee5f241c0ed19e350d17e80bd90bde93d (diff) | |
download | linux-265264b814c2121513eab2e1cffe196502af0961.tar.xz |
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>
-rwxr-xr-x | scripts/clang-tools/gen_compile_commands.py | 2 |
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. |