lkml.org 
[lkml]   [2007]   [Oct]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] 0/3 checkpatch updates, new checkfiles script
In message <20071006111343.GA29484@elte.hu>, Ingo Molnar writes:
>
> * Erez Zadok <ezk@cs.sunysb.edu> wrote:
>
> > So, I ran the above script and it found nearly 1.5 million reported
> > warnings/errors, with drivers being the largest abuser, not
> > surprisingly. [...]
>
> have you tried that with the latest version too:
>
> http://www.kernel.org/pub/linux/kernel/people/apw/checkpatch/checkpatch.pl-next
>
> it outputs far fewer false positives.
>
> Ingo

Andy, Ingo,

I tried the new checkpatch.pl on 2.6.23-rc9:

$ ./scripts/checkpatch.pl -q --file --emacs fs/namei.c

and got many perl warnings such as:

Use of uninitialized value in concatenation (.) or string at ./scripts/checkpatch.pl line 455.

followed by the usual verbose error message instead of one-per-line as I
assume the --emacs option is supposed to produce:

:2823: WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable
#2823: FILE: namei.c:2820:
+EXPORT_SYMBOL(vfs_mkdir);

BTW, calling the option --emacs is a bit too restrictive. Emacs didn't
invent the format of "filename:linenumeber:message". C compilers had it
before. Even "grep -n *" had it before. That's why I think calling it a
"terse output" option may be more accurate.

The following small patch to checkpath.pl-next seems to fix the perl
warnings, but it still outputs the long error messages along with the
shorter one-liners.

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index bdc493e..bbc4825 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -85,7 +85,7 @@ for my $filename (@ARGV) {
push(@rawlines, $_);
}
close(FILE);
- if (!process($ARGV, @rawlines)) {
+ if (!process($filename, @rawlines)) {
$exit = 1;
}
@rawlines = ();
@@ -452,7 +452,7 @@ sub process {

my $rawline = $line;

- $prefix = "$ARGV:$linenr: " if ($emacs);
+ $prefix = "$filename:$linenr: " if ($emacs);

#extract the filename as it passes
if ($line=~/^\+\+\+\s+(\S+)/) {
Cheers,
Erez.
-
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/

\
 
 \ /
  Last update: 2007-10-07 21:11    [W:0.058 / U:1.284 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site