diff options
author | Mike Frysinger <vapier@gentoo.org> | 2008-12-27 10:43:36 +0300 |
---|---|---|
committer | Sam Ravnborg <sam@ravnborg.org> | 2009-01-02 22:43:22 +0300 |
commit | 46b8af50ba5c072b74740c5fa8ba08e6eabb22f8 (patch) | |
tree | 4e08644559df9c6602a65c631fdc7a70c668f8c2 | |
parent | 7826005e5a53645d7aab7c13eda76126eadebf0b (diff) | |
download | linux-46b8af50ba5c072b74740c5fa8ba08e6eabb22f8.tar.xz |
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.pl | 12 |
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 @@ # Only include files located in asm* and linux* are checked. # The rest are assumed to be system include files. # -# 2) TODO: check for leaked CONFIG_ symbols +# 2) It is checked that prototypes does not use "extern" +# +# 3) TODO: check for leaked CONFIG_ symbols use strict; @@ -33,6 +35,7 @@ foreach my $file (@files) { while ($line = <FH>) { $lineno++; check_include(); + check_prototypes(); } close FH; } @@ -54,3 +57,10 @@ sub check_include } } } + +sub check_prototypes +{ + if ($line =~ m/^\s*extern\b/) { + printf STDERR "$filename:$lineno: extern's make no sense in userspace\n"; + } +} |