[PATCH 18/39] kbuild/headers_check: refine extern check

Sam Ravnborg
2009-06-05T23:49:34Z

From: Amerigo Wang <amwang@redhat.com>

'extern' checking information is not clear, refine it.
Plus, fix a comment.

Signed-off-by: WANG Cong <amwang@redhat.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
scripts/headers_check.pl | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
index 56f90a4..3923888 100644
--- a/scripts/headers_check.pl
+++ b/scripts/headers_check.pl
@@ -2,7 +2,7 @@
#
# headers_check.pl execute a number of trivial consistency checks
#
-# Usage: headers_check.pl dir [files...]
+# Usage: headers_check.pl dir arch [files...]
# dir: dir to look for included files
# arch: architecture
# files: list of files to check
@@ -37,7 +37,7 @@ foreach my $file (@files) {
&check_include();
&check_asm_types();
&check_sizetypes();
- &check_prototypes();
+ &check_declarations();
# Dropped for now. Too much noise &check_config();
}
close FH;
@@ -61,10 +61,14 @@ sub check_include
}
}

-sub check_prototypes
+sub check_declarations
{
- if ($line =~ m/^\s*extern\b/) {
- printf STDERR "$filename:$lineno: extern's make no sense in userspace\n";
+ if ($line =~m/^\s*extern\b/) {
+ if ($line =~ m/^\s*extern\b.*\(.*\)/) {
+ printf STDERR "$filename:$lineno: extern's make no sense in userspace\n";
+ } else {
+ printf STDERR "$filename:$lineno: exporting global variable to userspace is suspicious\n";
+ }
}
}

--
1.6.3.rc3.40.g75b44