aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2008-12-27 02:43:36 -0500
committerSam Ravnborg <sam@ravnborg.org>2009-01-02 14:43:22 -0500
commit46b8af50ba5c072b74740c5fa8ba08e6eabb22f8 (patch)
tree4e08644559df9c6602a65c631fdc7a70c668f8c2
parent7826005e5a53645d7aab7c13eda76126eadebf0b (diff)
headers_check.pl: disallow extern's
Since prototypes with "extern" refer to kernel functions, they make no sense in userspace, so reject them automatically. Signed-off-by: Mike Frysinger <vapier@gentoo.org> [sam: made it into a warning] Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
-rw-r--r--scripts/headers_check.pl12
1 files changed, 11 insertions, 1 deletions
diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
index 488a3b1f760f..5bdd9753007a 100644
--- a/scripts/headers_check.pl
+++ b/scripts/headers_check.pl
@@ -14,7 +14,9 @@
14# Only include files located in asm* and linux* are checked. 14# Only include files located in asm* and linux* are checked.
15# The rest are assumed to be system include files. 15# The rest are assumed to be system include files.
16# 16#
17# 2) TODO: check for leaked CONFIG_ symbols 17# 2) It is checked that prototypes does not use "extern"
18#
19# 3) TODO: check for leaked CONFIG_ symbols
18 20
19use strict; 21use strict;
20 22
@@ -33,6 +35,7 @@ foreach my $file (@files) {
33 while ($line = <FH>) { 35 while ($line = <FH>) {
34 $lineno++; 36 $lineno++;
35 check_include(); 37 check_include();
38 check_prototypes();
36 } 39 }
37 close FH; 40 close FH;
38} 41}
@@ -54,3 +57,10 @@ sub check_include
54 } 57 }
55 } 58 }
56} 59}
60
61sub check_prototypes
62{
63 if ($line =~ m/^\s*extern\b/) {
64 printf STDERR "$filename:$lineno: extern's make no sense in userspace\n";
65 }
66}