[PATCH 2/2] contrib/coccinelle: pass include paths to spatch(1)
- From
Toon Claes <toon@iotcl.com>
- Date
- Dec 10, 2025, 13:13 UTC
- Message-ID
- <20251210-toon-cocci-memzero-v1-2-ae916a79065b@iotcl.com>
- In-Reply-To
- <20251210-toon-cocci-memzero-v1-0-ae916a79065b@iotcl.com>
In the previous commit a new coccinelle rule is added. But neiter `make coccicheck` nor `meson compile coccicheck` did detect a case in builtin/last-modified.c.
This case involves the field `scratch` in `struct last_modified`. This field is of type `struct bitmap` and that struct has a member `eword_t *words`. Both are defined in `ewah/ewok.h`. Now, while builtin/last-modified.c does include that header (with the subdir in the #include directive), it seems coccinelle does not process it. So it's unaware of the type of `words` in the bitmap, and it doesn't recognize the rule from previous commit that uses:
type T;
T *ptr;Fix coccicheck by passing all possible include paths inside the Git project so spatch(1) can find the headers and can determine the types.
Signed-off-by: Toon Claes <toon@iotcl.com> --- Makefile | 2 +- contrib/coccinelle/meson.build | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile index 6fc322ff88..46d07b2d52 100644 --- a/Makefile +++ b/Makefile @@ -981,7 +981,7 @@ SANITIZE_LEAK = SANITIZE_ADDRESS = # For the 'coccicheck' target -SPATCH_INCLUDE_FLAGS = --all-includes +SPATCH_INCLUDE_FLAGS = --all-includes $(addprefix -I ,compat ewah refs sha256 trace2 win32 xdiff) SPATCH_FLAGS = SPATCH_TEST_FLAGS = diff --git a/contrib/coccinelle/meson.build b/contrib/coccinelle/meson.build index dc3f73c2e7..ae7f5b5460 100644 --- a/contrib/coccinelle/meson.build +++ b/contrib/coccinelle/meson.build @@ -50,6 +50,11 @@ foreach header : headers_to_check coccinelle_headers += meson.project_source_root() / header endforeach +coccinelle_includes = [] +foreach path : ['compat', 'ewah', 'refs', 'sha256', 'trace2', 'win32', 'xdiff'] + coccinelle_includes += ['-I', meson.project_source_root() / path] +endforeach + patches = [ ] foreach source : coccinelle_sources patches += custom_target( @@ -58,6 +63,7 @@ foreach source : coccinelle_sources '--all-includes', '--sp-file', concatenated_rules, '--patch', meson.project_source_root(), + coccinelle_includes, '@INPUT@', ], input: meson.project_source_root() / source,
-- 2.52.0