Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751695Ab1CTJRQ (ORCPT ); Sun, 20 Mar 2011 05:17:16 -0400 Received: from mgw2.diku.dk ([130.225.96.92]:40911 "EHLO mgw2.diku.dk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751659Ab1CTJRN (ORCPT ); Sun, 20 Mar 2011 05:17:13 -0400 Date: Sun, 20 Mar 2011 10:17:07 +0100 (CET) From: Julia Lawall To: Pekka Enberg Cc: =?ISO-8859-1?Q?Am=E9rico_Wang?= , Steven Rostedt , Jonathan Corbet , LKML , Andy Whitcroft , Dave Jones , Andrew Morton , Nicolas Palix , Ingo Molnar Subject: Re: [PATCH] checkpatch: Test for kmalloc/memset(0) pairs In-Reply-To: Message-ID: References: <1300416744.16880.904.camel@gandalf.stny.rr.com> <20110317211548.646b04d2@tpl.lwn.net> <1300419170.16880.956.camel@gandalf.stny.rr.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3310 Lines: 76 On Sun, 20 Mar 2011, Pekka Enberg wrote: > Hi Julia, > > On Sun, Mar 20, 2011 at 10:01 AM, Julia Lawall wrote: > > Suggestions for how to make it easier to use or the documentation more > > understandable are welcome. > > The benefit of scripts/checkpatch.pl is that it doesn't require any > setting up to do. I'm personally less likely to use Coccinelle (and > Sparse for that matter) on boxes where the software is not installed. > I'm not sure how other people feel about it, but I'd personally love > to see tools/coccinelle and tools/sparse. This was discussed before, and it was felt that perhaps 75000 lines of ocaml code was not really appropriate for the Linux source tree, and also that it would too much complicate our development process. One reason for using multiple machines would be to work on multiple architectures. But Coccinelle is not sensitive to the architecture on which it is run, so perhaps you do't need to have it installed everywhere. > As for something more concrete, I guess this is what I'm mostly interested in: > > penberg@jaguar:~/src/linux$ make C=1 CHECK="scripts/coccicheck" mm/slub.o > > I guess it'd be good to document that for 'make help' because now you > need to dig through Documentation/coccinelle.txt to find it. OK, thanks. We will look into that. > P.S. It seems there's a bug somewhere because the above command fails > miserably for me: > > CHK include/linux/version.h > CHK include/generated/utsrelease.h > CALL scripts/checksyscalls.sh > CHECK mm/slub.c > File "/home/penberg/src/linux/scripts/coccinelle/api/memdup_user.cocci", > line 32, column 5, charpos = 747 > around = '<+...', whole content = - <+... when != goto l2; > Fatal error: exception Lexer_cocci.Lexical("invalid in a nonempty > context: <+...") > File "/home/penberg/src/linux/scripts/coccinelle/api/memdup_user.cocci", > line 32, column 5, charpos = 747 > around = '<+...', whole content = - <+... when != goto l2; > Fatal error: exception Lexer_cocci.Lexical("invalid in a nonempty > context: <+...") > File "/home/penberg/src/linux/scripts/coccinelle/api/memdup_user.cocci", > line 32, column 5, charpos = 747 > around = '<+...', whole content = - <+... when != goto l2; > Fatal error: exception Lexer_cocci.Lexical("invalid in a nonempty > context: <+...") > File "/home/penberg/src/linux/scripts/coccinelle/api/memdup_user.cocci", > line 32, column 5, charpos = 747 > around = '<+...', whole content = - <+... when != goto l2; > Fatal error: exception Lexer_cocci.Lexical("invalid in a nonempty > context: <+...") > make[1]: *** [mm/slub.o] Error 1 > make: *** [mm/slub.o] Error 2 > > penberg@jaguar:~/src/linux$ dpkg -l|grep coccinelle > ii coccinelle 0.2.2.deb-2 > semantic patching tool for C > > [ I'm on Ubuntu 10.10. ] Indeed that one seems to be quite out of date. You can get the most recent version here: https://launchpad.net/~npalix/+archive/coccinelle julia -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/