path: root/Documentation
diff options
authorNicolas Palix <Nicolas.Palix@inria.fr>2010-10-13 00:49:07 +0200
committerMichal Marek <mmarek@suse.cz>2010-10-13 14:26:06 +0200
commit32af08987b8f093195f8eef3ee4e1dbcfee891cd (patch)
tree165d0a52c607c1ae7110625d8f1787bf761b0802 /Documentation
parentaf78f217127dc0b6d364ca67ce128f7aafed99f9 (diff)
Coccinelle: Update documentation
- Add information about use of the C={1,2} make flag - Add a description of the new chain mode mechanism - Add a link to the wiki Signed-off-by: Nicolas Palix <npalix.work@gmail.com> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Michal Marek <mmarek@suse.cz>
Diffstat (limited to 'Documentation')
1 files changed, 35 insertions, 7 deletions
diff --git a/Documentation/coccinelle.txt b/Documentation/coccinelle.txt
index cd2b0283706..de51a3eb17b 100644
--- a/Documentation/coccinelle.txt
+++ b/Documentation/coccinelle.txt
@@ -24,6 +24,9 @@ of many distributions, e.g. :
You can get the latest version released from the Coccinelle homepage at
+Information and tips about Coccinelle are also provided on the wiki
+pages at http://cocci.ekstranet.diku.dk/wiki/doku.php
Once you have it, run the following command:
@@ -41,20 +44,22 @@ A Coccinelle-specific target is defined in the top level
Makefile. This target is named 'coccicheck' and calls the 'coccicheck'
front-end in the 'scripts' directory.
-Four modes are defined: report, patch, context, and org. The mode to
+Four modes are defined: patch, report, context, and org. The mode to
use is specified by setting the MODE variable with 'MODE=<mode>'.
+'patch' proposes a fix, when possible.
'report' generates a list in the following format:
file:line:column-column: message
-'patch' proposes a fix, when possible.
'context' highlights lines of interest and their context in a
diff-like style.Lines of interest are indicated with '-'.
'org' generates a report in the Org mode format of Emacs.
-Note that not all semantic patches implement all modes.
+Note that not all semantic patches implement all modes. For easy use
+of Coccinelle, the default mode is "chain" which tries the previous
+modes in the order above until one succeeds.
To make a report for every semantic patch, run the following command:
@@ -68,9 +73,9 @@ To produce patches, run:
The coccicheck target applies every semantic patch available in the
-subdirectories of 'scripts/coccinelle' to the entire Linux kernel.
+sub-directories of 'scripts/coccinelle' to the entire Linux kernel.
-For each semantic patch, a changelog message is proposed. It gives a
+For each semantic patch, a commit message is proposed. It gives a
description of the problem being checked by the semantic patch, and
includes a reference to Coccinelle.
@@ -93,12 +98,35 @@ or
make coccicheck COCCI=<my_SP.cocci> MODE=report
+ Using Coccinelle on (modified) files
+To apply Coccinelle on a file basis, instead of a directory basis, the
+following command may be used:
+ make C=1 CHECK="scripts/coccicheck"
+To check only newly edited code, use the value 2 for the C flag, i.e.
+ make C=2 CHECK="scripts/coccicheck"
+This runs every semantic patch in scripts/coccinelle by default. The
+COCCI variable may additionally be used to only apply a single
+semantic patch as shown in the previous section.
+The "chain" mode is the default. You can select another one with the
+MODE variable explained above.
+In this mode, there is no information about semantic patches
+displayed, and no commit message proposed.
Proposing new semantic patches
New semantic patches can be proposed and submitted by kernel
developers. For sake of clarity, they should be organized in the
-subdirectories of 'scripts/coccinelle/'.
+sub-directories of 'scripts/coccinelle/'.
Detailed description of the 'report' mode