Re: [RFC PATCH] scripts: Fix coccicheck failed

From: Yuehaibing
Date: Sun Sep 29 2019 - 22:34:31 EST


On 2019/9/30 0:32, Julia Lawall wrote:
>
>
> On Sun, 29 Sep 2019, Yuehaibing wrote:
>
>> On 2019/9/28 20:43, Julia Lawall wrote:
>>>
>>>
>>> On Sat, 28 Sep 2019, YueHaibing wrote:
>>>
>>>> Run make coccicheck, I got this:
>>>>
>>>> spatch -D patch --no-show-diff --very-quiet --cocci-file
>>>> ./scripts/coccinelle/misc/add_namespace.cocci --dir .
>>>> -I ./arch/x86/include -I ./arch/x86/include/generated
>>>> -I ./include -I ./arch/x86/include/uapi
>>>> -I ./arch/x86/include/generated/uapi -I ./include/uapi
>>>> -I ./include/generated/uapi --include ./include/linux/kconfig.h
>>>> --jobs 192 --chunksize 1
>>>>
>>>> virtual rule patch not supported
>>>> coccicheck failed
>>>>
>>>> It seems add_namespace.cocci cannot be called in coccicheck.
>>>
>>> Could you explain the issue better? Does the current state cause make
>>> coccicheck to fail? Or is it just silently not being called?
>>
>> Yes, it cause make coccicheck failed like this:
>>
>> ...
>> ./drivers/xen/xenbus/xenbus_comms.c:290:2-8: preceding lock on line 243
>> ./fs/fuse/dev.c:1227:2-8: preceding lock on line 1206
>> ./fs/fuse/dev.c:1232:3-9: preceding lock on line 1206
>> coccicheck failed
>> make[1]: *** [coccicheck] Error 255
>> make: *** [sub-make] Error 2
>
> Could you set the verbose options to see what the problem is? Maybe the
> problem would be solved by putting virtual report at the top of the rule.
> But it might still fail because nothing can happen without a value for the
> virtual metavariable ns.

diff --git a/scripts/coccinelle/misc/add_namespace.cocci b/scripts/coccinelle/misc/add_namespace.cocci
index c832bb6445a8..99e93a6c2e24 100644
--- a/scripts/coccinelle/misc/add_namespace.cocci
+++ b/scripts/coccinelle/misc/add_namespace.cocci
@@ -6,6 +6,8 @@
/// add a missing namespace tag to a module source file.
///

+virtual report
+
@has_ns_import@
declarer name MODULE_IMPORT_NS;
identifier virtual.ns;



Adding virtual report make the coccicheck go ahead smoothly.

>
> Should the coccinelle directory be only for things that work with make
> coccicheck, or for all Coccinelle scripts?
>
> julia
>
> .
>