2012-10-12 08:49:30

by Nicolas Palix (LIG)

[permalink] [raw]
Subject: [PATCH] Coccicheck: Improvement for online checking with 'make C=[12]'

This patch replaces an old workaround by a new spatch option,
and adds support for online checking of external modules.

The ignore_unknown_options is present in coccinelle
since the version 0.2.3 of spatch. Most of the distribution
(if not all) already provide a RC of the 1.0.0 version.

This new option allows to preserve all gcc options, e.g. -I,
while checking code. Other gcc-specific options are
discarded by spatch.

The support for external modules is also added.

Signed-off-by: Nicolas Palix <[email protected]>
---
scripts/coccicheck | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/scripts/coccicheck b/scripts/coccicheck
index 823e972..b06b3cd 100755
--- a/scripts/coccicheck
+++ b/scripts/coccicheck
@@ -5,14 +5,14 @@ SPATCH="`which ${SPATCH:=spatch}`"
if [ "$C" = "1" -o "$C" = "2" ]; then
ONLINE=1

-# This requires Coccinelle >= 0.2.3
-# FLAGS="-ignore_unknown_options -very_quiet"
-# OPTIONS=$*
-
-# Workaround for Coccinelle < 0.2.3
- FLAGS="-I $srctree/include -very_quiet"
- shift $(( $# - 1 ))
- OPTIONS=$1
+ # The ignore_unknown_options flag requires Coccinelle >= 0.2.3
+ FLAGS="-ignore_unknown_options -very_quiet"
+ if [ "$KBUILD_EXTMOD" = "" ] ; then
+ OPTIONS="-dir $srctree $*"
+ else
+ OPTIONS="-dir $KBUILD_EXTMOD -patch $srctree -I $srctree/include -I $KBUILD_EXTMOD/include $*"
+ fi
+
else
ONLINE=0
FLAGS="-very_quiet"
--
1.7.9.5


2012-11-20 09:59:06

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH] Coccicheck: Improvement for online checking with 'make C=[12]'

Hi Nicolas,

sorry for the delay.

On 12.10.2012 10:48, Nicolas Palix wrote:
> + # The ignore_unknown_options flag requires Coccinelle >= 0.2.3
> + FLAGS="-ignore_unknown_options -very_quiet"
> + if [ "$KBUILD_EXTMOD" = "" ] ; then
> + OPTIONS="-dir $srctree $*"

Why is -Iinclude not needed in this case?


> + else
> + OPTIONS="-dir $KBUILD_EXTMOD -patch $srctree -I $srctree/include -I $KBUILD_EXTMOD/include $*"
> + fi

The main Makefile exports the $LINUXINCLUDE variable, which contains all
the needed -I options. It would be cleaner to use that instead.

Michal