From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751984AbcFUUve (ORCPT ); Tue, 21 Jun 2016 16:51:34 -0400 Received: from mx2.suse.de ([195.135.220.15]:35412 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750707AbcFUUvb (ORCPT ); Tue, 21 Jun 2016 16:51:31 -0400 Date: Tue, 21 Jun 2016 22:51:00 +0200 From: "Luis R. Rodriguez" To: Julia Lawall Cc: "Luis R. Rodriguez" , dmitry.torokhov@gmail.com, tiwai@suse.de, ming.lei@canonical.com, stephen.boyd@linaro.org, deepa.kernel@gmail.com, chunkeey@googlemail.com, cocci@systeme.lip6.fr, jwboyer@fedoraproject.org, jslaby@suse.com, zohar@linux.vnet.ibm.com, dwmw2@infradead.org, hauke@hauke-m.de, broonie@kernel.org, akpm@linux-foundation.org, gregkh@linuxfoundation.org, markivx@codeaurora.org, linux-kernel@vger.kernel.org, mmarek@suse.com, johannes@sipsolutions.net, torvalds@linux-foundation.org Subject: Re: [Cocci] [PATCH v3 0/8] coccicheck: modernize Message-ID: <20160621205100.GV25646@wotan.suse.de> References: <1466536893-23355-1-git-send-email-mcgrof@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 21, 2016 at 10:13:31PM +0200, Julia Lawall wrote: > > > On Tue, 21 Jun 2016, Luis R. Rodriguez wrote: > > > This v3 series addresses the feedback from the last v2 series > > on the coccicheck enhancements [0], namely: > > > > o it drops the indexing heuristics in favor for a .cocciconfig use > > o drops glimpse support as its simply not well maintained, recommends > > idutils instead. > > o adds a Linux .cocciconfig -- the assumption is you'd run spatch when > > you're at the top level of the kernel. This has not only the side effect > > of picking up .cocciconfig, but also that the coccicheck use of the > > make variables passed on are assumed to be correct given the base > > directory as the current directory. > > I don't understand this point. Coccinelle picks up the .cocciconfig, if > any, of the directory on which you want to work, not of the current one. The order of precedence for variables for .coccoconfig is as follows: o Your current user's home directory is processed first o Your directory from which spatch is called is processed next o The directory provided with the --dir option is processed last, if used Since coccicheck runs through make, it naturally runs from the kernel proper dir, as such the second rule above would be implied for picking up a .cocciconfig. That's part of the point I'm making. Up next let us consider when M= is used or when it is not used, if used it populates KBUILD_EXTMOD. if [ "$KBUILD_EXTMOD" = "" ] ; then OPTIONS="--dir $srctree $COCCIINCLUDE" else OPTIONS="--dir $KBUILD_EXTMOD $COCCIINCLUDE" fi Either way --dir is used, so the third rule applies and so your .cocciconfig from there is also read if one is found. My other point was that $COCCIINCLUDE has some useful tidbits of includes for coccinelle, and that also assumes one is on the top level dir of the kernel. That is sanitized as follows: # spatch only allows include directories with the syntax "-I include" # while gcc also allows "-Iinclude" and "-include include" COCCIINCLUDE=${LINUXINCLUDE//-I/-I } COCCIINCLUDE=${COCCIINCLUDE// -include/ --include} So the point is to annotate that the .cocconfig is picked up first due to the fact make is used and its issued from the top level makefile and starts from the top level. The fact that --dir is used is important but secondary to its introduction as well. Luis