summaryrefslogtreecommitdiff
blob: ba36ecb1a699fad076241f807829e574704bebed (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
From 58ffae8a95e580e08be2d8f302fd9fcfca78a3f3 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Mon, 29 Dec 2008 05:28:24 -0500
Subject: [PATCH] kbuild: warn about headers using __[us]{8,16,32,64} types w/out linux/types.h

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 scripts/headers_check.pl |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
index bdd9fb6..5036319 100644
--- a/scripts/headers_check.pl
+++ b/scripts/headers_check.pl
@@ -37,6 +37,7 @@ foreach my $file (@files) {
 		check_include();
 		check_prototypes();
 		check_config();
+		check_sizetypes();
 	}
 	close FH;
 }
@@ -72,3 +73,22 @@ sub check_config
 		printf STDERR "$filename:$lineno: leaks CONFIG_$1 to userspace where it is not valid\n";
 	}
 }
+
+my $linux_types;
+sub check_sizetypes
+{
+	if ($lineno == 1) {
+		$linux_types = 0;
+	} elsif ($linux_types) {
+		return;
+	}
+	if ($line =~ m/^\s*#\s*include\s+<linux\/types.h>/) {
+		$linux_types = 1;
+		return;
+	}
+	if ($line =~ m/__[us](8|16|32|64)\b/) {
+		printf STDERR "$filename:$lineno: found __[us]{8,16,32,64} type w/out #include <linux/types.h>\n";
+		# Warn until headers are all fixed
+		#$ret = 1;
+	}
+}
-- 
1.6.0.6