Re: [PATCH v2] coccinelle: fix parallel build with CHECK=scripts/coccicheck

From: Masahiro Yamada
Date: Mon Nov 13 2017 - 11:34:11 EST


Hi Julia,


2017-11-14 0:30 GMT+09:00 Julia Lawall <julia.lawall@xxxxxxx>:
>
>
> On Thu, 9 Nov 2017, Masahiro Yamada wrote:
>
>> The command "make -j8 C=1 CHECK=scripts/coccicheck" produces lots of
>> "coccicheck failed" error messages.
>>
>> I do not know the coccinelle internals, but I guess --jobs does not
>> work well if spatch is invoked from Make running in parallel.
>> Disable --jobs in this case.
>
> Why is this change under:
>
> if [ "$C" = "1" -o "$C" = "2" ];
>
> The coccicheck failed messages come also if one runs Coccinelle on the
> entire kernel.

As far as I tested, "coccicheck failed" error only happens
when ONLINE=1.


make -j8 C=1 CHECK=scripts/coccicheck COCCI=scripts/coccinelle/misc/bugon.cocci

emits lots of errors.


make -j8 coccicheck COCCI=scripts/coccinelle/misc/bugon.cocci

is fine.


Have you tested it?
Do you mean you got a different result from mine?



> julia
>
>
>>
>> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
>> ---
>>
>> Changes in v2:
>> - Grep '-j' instead of '--jobserver-auth'.
>> '--jobserver-*' is not a stable option flag.
>> Make 4.2 change '--jobserver-fds' into '--jobserver-auth'
>> - Add -q option to grep
>>
>> scripts/coccicheck | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/scripts/coccicheck b/scripts/coccicheck
>> index 040a8b1..8bab11e 100755
>> --- a/scripts/coccicheck
>> +++ b/scripts/coccicheck
>> @@ -70,6 +70,9 @@ if [ "$C" = "1" -o "$C" = "2" ]; then
>> # Take only the last argument, which is the C file to test
>> shift $(( $# - 1 ))
>> OPTIONS="$COCCIINCLUDE $1"
>> +
>> + # --jobs does not work if Make is running in parallel
>> + echo $MAKEFLAGS | grep -q -E '(^| )-j' && USE_JOBS="no"
>> else
>> ONLINE=0
>> if [ "$KBUILD_EXTMOD" = "" ] ; then
>> --
>> 2.7.4
>>
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html



--
Best Regards
Masahiro Yamada