blob: ca2a8849b9f59b884f8929999f215ba5253bd78d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
From d75f69d9b5b6cf2db802842acdcca57a80a3685d Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Sat, 27 Dec 2008 02:37:43 -0500
Subject: [PATCH] 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>
---
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 488a3b1..5bdd975 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";
+ }
+}
--
1.6.0.6
|