From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932855Ab0JHT2U (ORCPT ); Fri, 8 Oct 2010 15:28:20 -0400 Received: from mail-wy0-f174.google.com ([74.125.82.174]:48248 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759367Ab0JHT2M (ORCPT ); Fri, 8 Oct 2010 15:28:12 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:message-id:x-mailer:in-reply-to:references; b=w73uqKyh/Tpraw6I6ywrJCir5LVlzPQk/MGHllbgebz2ePCIr9EFZcQnKgurPJUxI3 JYV+feYei8l8CrecyNIzg6i06BFKgWoF+GDjTJUovG6pd8+28cunuu8Vvaqpiz9jmBfF q+J/OQxCOhjbW8r8SFhvy8lLcI4Dg3njC7YVw= From: Nicolas Palix To: Randy Dunlap , Nicolas Palix , Julia Lawall , Michal Marek , Kulikov Vasiliy , Gilles Muller , Sam Ravnborg , Joerg Roedel , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, cocci@diku.dk Subject: [PATCH 2/6] Coccinelle: Update documentation Date: Fri, 8 Oct 2010 21:27:37 +0200 Message-Id: <1286566061-17122-3-git-send-email-npalix.work@gmail.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1286566061-17122-1-git-send-email-npalix.work@gmail.com> References: <1286566061-17122-1-git-send-email-npalix.work@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org - 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 Signed-off-by: Julia Lawall --- Documentation/coccinelle.txt | 42 +++++++++++++++++++++++++++++++++++------- 1 files changed, 35 insertions(+), 7 deletions(-) diff --git a/Documentation/coccinelle.txt b/Documentation/coccinelle.txt index cd2b028..a43eaeb 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 http://coccinelle.lip6.fr/ +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: ./configure @@ -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='. +'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. To easy use +of Coccinelle, the default mode is "chain" which tries the previous +modes in the order above until one successes. 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= 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 -- 1.7.0.4