diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2008-12-30 05:34:58 -0500 |
---|---|---|
committer | Sam Ravnborg <sam@ravnborg.org> | 2009-01-02 14:43:26 -0500 |
commit | 483b41218fa9d5172312a9e294aaf78e22b266e6 (patch) | |
tree | 03c10a53e3b9a35b9bab8e4d81b35e0a086a873a | |
parent | 521b0c774d1350aac18f5cd35831469a4e879d72 (diff) |
kbuild: add checks for include of linux/types in userspace headers
If we see __[us](8|16|32|64) then we must include <linux/types.h>
If wee see include of <asm/types.h> then we recommend <linux/types.h>
Original script from Mike but modified by me.
Cc: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
-rw-r--r-- | scripts/headers_check.pl | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl index 72924a7fcf1e..b62c319611a2 100644 --- a/scripts/headers_check.pl +++ b/scripts/headers_check.pl | |||
@@ -34,9 +34,11 @@ foreach my $file (@files) { | |||
34 | $lineno = 0; | 34 | $lineno = 0; |
35 | while ($line = <FH>) { | 35 | while ($line = <FH>) { |
36 | $lineno++; | 36 | $lineno++; |
37 | check_include(); | 37 | &check_include(); |
38 | check_prototypes(); | 38 | &check_asm_types(); |
39 | check_config(); | 39 | &check_sizetypes(); |
40 | &check_prototypes(); | ||
41 | &check_config(); | ||
40 | } | 42 | } |
41 | close FH; | 43 | close FH; |
42 | } | 44 | } |
@@ -73,3 +75,42 @@ sub check_config | |||
73 | } | 75 | } |
74 | } | 76 | } |
75 | 77 | ||
78 | my $linux_asm_types; | ||
79 | sub check_asm_types() | ||
80 | { | ||
81 | if ($lineno == 1) { | ||
82 | $linux_asm_types = 0; | ||
83 | } elsif ($linux_asm_types >= 1) { | ||
84 | return; | ||
85 | } | ||
86 | if ($line =~ m/^\s*#\s*include\s+<asm\/types.h>/) { | ||
87 | $linux_asm_types = 1; | ||
88 | printf STDERR "$filename:$lineno: " . | ||
89 | "include of <linux/types.h> is preferred over <asm/types.h>\n" | ||
90 | # Warn until headers are all fixed | ||
91 | #$ret = 1; | ||
92 | } | ||
93 | } | ||
94 | |||
95 | my $linux_types; | ||
96 | sub check_sizetypes | ||
97 | { | ||
98 | if ($lineno == 1) { | ||
99 | $linux_types = 0; | ||
100 | } elsif ($linux_types >= 1) { | ||
101 | return; | ||
102 | } | ||
103 | if ($line =~ m/^\s*#\s*include\s+<linux\/types.h>/) { | ||
104 | $linux_types = 1; | ||
105 | return; | ||
106 | } | ||
107 | if ($line =~ m/__[us](8|16|32|64)\b/) { | ||
108 | printf STDERR "$filename:$lineno: " . | ||
109 | "found __[us]{8,16,32,64} type " . | ||
110 | "without #include <linux/types.h>\n"; | ||
111 | $linux_types = 2; | ||
112 | # Warn until headers are all fixed | ||
113 | #$ret = 1; | ||
114 | } | ||
115 | } | ||
116 | |||