From: Michal Marek <mmarek@suse.cz>
To: Nicolas Palix <npalix@diku.dk>
Cc: Joe Perches <joe@perches.com>,
Andrew Morton <akpm@linux-foundation.org>,
"David S. Miller" <davem@davemloft.net>,
Sam Ravnborg <sam@ravnborg.org>, Julia Lawall <julia@diku.dk>,
Gilles Muller <Gilles.Muller@lip6.fr>,
linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org,
cocci@diku.dk
Subject: Re: [PATCH 1/4] Add targets to use the Coccinelle checker
Date: Tue, 27 Apr 2010 14:40:13 +0200 [thread overview]
Message-ID: <4BD6DB2D.6080808@suse.cz> (raw)
In-Reply-To: <201004270020.09447.npalix@diku.dk>
Hi Nicolas,
On 27.4.2010 00:20, Nicolas Palix wrote:
> Four targets are added. Each one generates a different
> output kind: context, patch, org, report.
> Every SmPL file in 'scripts/smpl' is given to the spatch frontend
> (located in the 'scripts' directory), and applied to the entire
> source tree.
Cool!
> Signed-off-by: Nicolas Palix <npalix@diku.dk>
> ---
> MAINTAINERS | 10 ++++++++++
> Makefile | 9 +++++++++
> scripts/spatch.sh | 14 ++++++++++++++
> 3 files changed, 33 insertions(+), 0 deletions(-)
> create mode 100755 scripts/spatch.sh
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 3d29fa3..2aab763 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1533,6 +1533,16 @@ L: platform-driver-x86@vger.kernel.org
> S: Supported
> F: drivers/platform/x86/classmate-laptop.c
>
> +COCCINELLE/Semantic Patches (SmPL)
> +M: Julia Lawall <julia@diku.dk>
> +M: Gilles Muller <Gilles.Muller@lip6.fr>
> +M: Nicolas Palix <npalix@diku.dk>
> +L: cocci@diku.dk
> +W: http://coccinelle.lip6.fr/
> +S: Supported
> +F: scripts/smpl/
> +F: scripts/spatch.sh
> +
> CODA FILE SYSTEM
> M: Jan Harkes <jaharkes@cs.cmu.edu>
> M: coda@cs.cmu.edu
> diff --git a/Makefile b/Makefile
> index 67c1001..293c88b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -325,6 +325,7 @@ INSTALLKERNEL := installkernel
> DEPMOD = /sbin/depmod
> KALLSYMS = scripts/kallsyms
> PERL = perl
> +SPATCH = spatch
> CHECK = sparse
>
> CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
> @@ -1424,6 +1425,14 @@ versioncheck:
> -name '*.[hcS]' -type f -print | sort \
> | xargs $(PERL) -w $(srctree)/scripts/checkversion.pl
>
> +coccicheck-context coccicheck-patch coccicheck-org coccicheck-report:
> + @echo "\nPlease check for false positive in the output before submitting a patch.\n\n"\
> + "Take particularly attention when using the \"patch\" mode\n"\
> + "and carefully review the patch you are about to submit.\n"
This should be echo -e in bash, but then it won't work in dash I guess.
So better use multiple echo commands. Also please add the targets to
'make help' text and add coccicheck-% to the no-dot-config-targets variable.
> + @find $(srctree)/scripts/smpl/ \
> + -name '*.cocci' -type f \
> + -exec $(srctree)/scripts/spatch.sh $(SPATCH) $(@:coccicheck-%=%) \{} $(srctree) \;
> +
Please use 'for file in $(srctree)/scripts/smpl/*.cocci; do ...', so
that the reports are in a defined order. Or do you plan to use
subdirectories below scripts/smpl?
> namespacecheck:
> $(PERL) $(srctree)/scripts/namespace.pl
>
> diff --git a/scripts/spatch.sh b/scripts/spatch.sh
> new file mode 100755
> index 0000000..bdcca15
> --- /dev/null
> +++ b/scripts/spatch.sh
> @@ -0,0 +1,14 @@
> +#!/bin/sh
> +
> +SPATCH="$1"
> +MODE="$2"
> +COCCI="$3"
> +DIR="$4"
> +
> +OPT=`grep "Option" $COCCI | cut -d':' -f2`
> +FILE=`echo $COCCI | sed "s|$DIR/||"`
> +
> +echo Processing `basename $COCCI` with \"$OPT\"
> +echo Message example to submit a patch:
> +grep "^///" $COCCI | sed "s|///||" | sed "s|THISFILE|$FILE|"
echo "The semantic patch that makes this change is available"
echo "in $FILE"
Then you don't need to add the same comment to each of the *.cocci
files. Also is it necessary to advertise
"More information about semantic patching is available at
http://coccinelle.lip6.fr/"
before processing each *.cocci file? If you want the banner, you could
append it to the "Please check for false positives..." text printed once
in the beginning.
> +$SPATCH -D $MODE -very_quiet -sp_file $COCCI $OPT -dir $DIR
You can also print the URL here if the spatch command is not available.
Michal
next prev parent reply other threads:[~2010-04-27 12:40 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-26 21:11 [PATCH 0/4] Add a Coccinelle front-end script Nicolas Palix
2010-04-26 21:11 ` [PATCH 1/4] Add targets to use the Coccinelle checker Nicolas Palix
2010-04-26 21:37 ` Joe Perches
2010-04-26 22:20 ` Nicolas Palix
2010-04-26 22:20 ` Nicolas Palix
2010-04-26 22:23 ` Randy Dunlap
2010-04-29 17:01 ` Roland Dreier
2010-04-30 21:07 ` Randy Dunlap
2010-04-27 12:40 ` Michal Marek [this message]
2010-04-27 13:01 ` Michal Marek
2010-04-27 12:53 ` Wolfram Sang
2010-04-27 20:24 ` Sam Ravnborg
2010-04-27 20:28 ` Sam Ravnborg
2010-04-26 21:11 ` [PATCH 2/4] Add scripts/smpl/drop_kmalloc_cast.cocci Nicolas Palix
2010-04-26 21:11 ` [PATCH 3/4] Add scripts/smpl/kzalloc-simple.cocci Nicolas Palix
2010-04-26 21:11 ` [PATCH 4/4] Add scripts/smpl/resource_size.cocci Nicolas Palix
2010-04-27 12:50 ` [PATCH 0/4] Add a Coccinelle front-end script Wolfram Sang
2010-04-27 12:53 ` Julia Lawall
-- strict thread matches above, loose matches on Subject: below --
2010-05-10 16:19 [PATCH 1/4] Add targets to use the Coccinelle checker Nicolas Palix
2010-05-10 16:24 [PATCH 0/4] Add a Coccinelle front-end script Nicolas Palix
2010-05-10 16:24 ` [PATCH 1/4] Add targets to use the Coccinelle checker Nicolas Palix
2010-05-10 16:24 ` Nicolas Palix
2010-05-10 16:24 ` Nicolas Palix
2010-05-12 6:42 ` Américo Wang
2010-05-12 6:42 ` Américo Wang
2010-05-28 7:04 ` Joerg Roedel
2010-05-28 7:04 ` Joerg Roedel
2010-06-03 9:50 ` Michal Marek
2010-06-03 9:50 ` Michal Marek
2010-06-03 10:23 ` Sam Ravnborg
2010-06-03 10:23 ` Sam Ravnborg
2010-06-03 10:23 ` Sam Ravnborg
2010-06-04 9:56 ` Nicolas Palix
2010-06-04 9:56 ` Nicolas Palix
2010-06-04 10:38 ` Sam Ravnborg
2010-06-04 10:38 ` Sam Ravnborg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BD6DB2D.6080808@suse.cz \
--to=mmarek@suse.cz \
--cc=Gilles.Muller@lip6.fr \
--cc=akpm@linux-foundation.org \
--cc=cocci@diku.dk \
--cc=davem@davemloft.net \
--cc=joe@perches.com \
--cc=julia@diku.dk \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=npalix@diku.dk \
--cc=sam@ravnborg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.