aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-01-10 11:29:25 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2011-01-10 11:29:25 -0500
commite3166331a3288dd7184548896a1c7ab682f0dbe8 (patch)
tree2ec73946fd5ecbbb71954039a18aee829ed55b96 /scripts
parent1693ed284f14a288c29f7265f9d71103e4c10821 (diff)
parent0719e1d23aab3b445c823404fd1b8b027757bb0a (diff)
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6
* 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: Documentation/kbuild: add info that 'choice' can have a symbol name kbuild: add numeric --set-val option to scripts/config headers_check: Fix warning text headers_check: better search for functions in headers scripts/coccinelle: update for compatability with Coccinelle 0.2.4 tags: put function prototypes back! Kconfig: fix single letter command in scripts/config gitignore: add scripts/recordmcount
Diffstat (limited to 'scripts')
-rw-r--r--scripts/.gitignore1
-rw-r--r--scripts/coccinelle/misc/doubleinit.cocci6
-rw-r--r--scripts/coccinelle/null/deref_null.cocci39
-rwxr-xr-xscripts/config13
-rw-r--r--scripts/headers_check.pl6
-rwxr-xr-xscripts/tags.sh2
6 files changed, 32 insertions, 35 deletions
diff --git a/scripts/.gitignore b/scripts/.gitignore
index c5d5db54c009..e2741d23bab8 100644
--- a/scripts/.gitignore
+++ b/scripts/.gitignore
@@ -7,3 +7,4 @@ pnmtologo
7bin2c 7bin2c
8unifdef 8unifdef
9ihex2fw 9ihex2fw
10recordmcount
diff --git a/scripts/coccinelle/misc/doubleinit.cocci b/scripts/coccinelle/misc/doubleinit.cocci
index 55d7dc19dfe0..156b20adb351 100644
--- a/scripts/coccinelle/misc/doubleinit.cocci
+++ b/scripts/coccinelle/misc/doubleinit.cocci
@@ -7,7 +7,7 @@
7// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2. 7// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2.
8// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. 8// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2.
9// URL: http://coccinelle.lip6.fr/ 9// URL: http://coccinelle.lip6.fr/
10// Comments: 10// Comments: requires at least Coccinelle 0.2.4, lex or parse error otherwise
11// Options: -no_includes -include_headers 11// Options: -no_includes -include_headers
12 12
13virtual org 13virtual org
@@ -19,7 +19,7 @@ position p0,p;
19expression E; 19expression E;
20@@ 20@@
21 21
22struct I s =@p0 { ... .fld@p = E, ...}; 22struct I s =@p0 { ..., .fld@p = E, ...};
23 23
24@s@ 24@s@
25identifier I, s, r.fld; 25identifier I, s, r.fld;
@@ -27,7 +27,7 @@ position r.p0,p;
27expression E; 27expression E;
28@@ 28@@
29 29
30struct I s =@p0 { ... .fld@p = E, ...}; 30struct I s =@p0 { ..., .fld@p = E, ...};
31 31
32@script:python depends on org@ 32@script:python depends on org@
33p0 << r.p0; 33p0 << r.p0;
diff --git a/scripts/coccinelle/null/deref_null.cocci b/scripts/coccinelle/null/deref_null.cocci
index 9969d76d0f4b..cdac6cfcce92 100644
--- a/scripts/coccinelle/null/deref_null.cocci
+++ b/scripts/coccinelle/null/deref_null.cocci
@@ -11,21 +11,10 @@
11// Options: 11// Options:
12 12
13virtual context 13virtual context
14virtual patch
15virtual org 14virtual org
16virtual report 15virtual report
17 16
18@initialize:python depends on !context && patch && !org && !report@ 17@ifm@
19
20import sys
21print >> sys.stderr, "This semantic patch does not support the 'patch' mode."
22
23@depends on patch@
24@@
25
26this_rule_should_never_matches();
27
28@ifm depends on !patch@
29expression *E; 18expression *E;
30statement S1,S2; 19statement S1,S2;
31position p1; 20position p1;
@@ -35,7 +24,7 @@ if@p1 ((E == NULL && ...) || ...) S1 else S2
35 24
36// The following two rules are separate, because both can match a single 25// The following two rules are separate, because both can match a single
37// expression in different ways 26// expression in different ways
38@pr1 depends on !patch expression@ 27@pr1 expression@
39expression *ifm.E; 28expression *ifm.E;
40identifier f; 29identifier f;
41position p1; 30position p1;
@@ -43,7 +32,7 @@ position p1;
43 32
44 (E != NULL && ...) ? <+...E->f@p1...+> : ... 33 (E != NULL && ...) ? <+...E->f@p1...+> : ...
45 34
46@pr2 depends on !patch expression@ 35@pr2 expression@
47expression *ifm.E; 36expression *ifm.E;
48identifier f; 37identifier f;
49position p2; 38position p2;
@@ -59,7 +48,7 @@ position p2;
59 48
60// For org and report modes 49// For org and report modes
61 50
62@r depends on !context && !patch && (org || report) exists@ 51@r depends on !context && (org || report) exists@
63expression subE <= ifm.E; 52expression subE <= ifm.E;
64expression *ifm.E; 53expression *ifm.E;
65expression E1,E2; 54expression E1,E2;
@@ -99,7 +88,7 @@ if@p1 ((E == NULL && ...) || ...)
99} 88}
100else S3 89else S3
101 90
102@script:python depends on !context && !patch && !org && report@ 91@script:python depends on !context && !org && report@
103p << r.p; 92p << r.p;
104p1 << ifm.p1; 93p1 << ifm.p1;
105x << ifm.E; 94x << ifm.E;
@@ -109,7 +98,7 @@ msg="ERROR: %s is NULL but dereferenced." % (x)
109coccilib.report.print_report(p[0], msg) 98coccilib.report.print_report(p[0], msg)
110cocci.include_match(False) 99cocci.include_match(False)
111 100
112@script:python depends on !context && !patch && org && !report@ 101@script:python depends on !context && org && !report@
113p << r.p; 102p << r.p;
114p1 << ifm.p1; 103p1 << ifm.p1;
115x << ifm.E; 104x << ifm.E;
@@ -120,7 +109,7 @@ msg_safe=msg.replace("[","@(").replace("]",")")
120cocci.print_main(msg_safe,p) 109cocci.print_main(msg_safe,p)
121cocci.include_match(False) 110cocci.include_match(False)
122 111
123@s depends on !context && !patch && (org || report) exists@ 112@s depends on !context && (org || report) exists@
124expression subE <= ifm.E; 113expression subE <= ifm.E;
125expression *ifm.E; 114expression *ifm.E;
126expression E1,E2; 115expression E1,E2;
@@ -159,7 +148,7 @@ if@p1 ((E == NULL && ...) || ...)
159} 148}
160else S3 149else S3
161 150
162@script:python depends on !context && !patch && !org && report@ 151@script:python depends on !context && !org && report@
163p << s.p; 152p << s.p;
164p1 << ifm.p1; 153p1 << ifm.p1;
165x << ifm.E; 154x << ifm.E;
@@ -168,7 +157,7 @@ x << ifm.E;
168msg="ERROR: %s is NULL but dereferenced." % (x) 157msg="ERROR: %s is NULL but dereferenced." % (x)
169coccilib.report.print_report(p[0], msg) 158coccilib.report.print_report(p[0], msg)
170 159
171@script:python depends on !context && !patch && org && !report@ 160@script:python depends on !context && org && !report@
172p << s.p; 161p << s.p;
173p1 << ifm.p1; 162p1 << ifm.p1;
174x << ifm.E; 163x << ifm.E;
@@ -180,7 +169,7 @@ cocci.print_main(msg_safe,p)
180 169
181// For context mode 170// For context mode
182 171
183@depends on context && !patch && !org && !report exists@ 172@depends on context && !org && !report exists@
184expression subE <= ifm.E; 173expression subE <= ifm.E;
185expression *ifm.E; 174expression *ifm.E;
186expression E1,E2; 175expression E1,E2;
@@ -223,7 +212,7 @@ else S3
223// The following three rules are duplicates of ifm, pr1 and pr2 respectively. 212// The following three rules are duplicates of ifm, pr1 and pr2 respectively.
224// It is need because the previous rule as already made a "change". 213// It is need because the previous rule as already made a "change".
225 214
226@ifm1 depends on !patch@ 215@ifm1@
227expression *E; 216expression *E;
228statement S1,S2; 217statement S1,S2;
229position p1; 218position p1;
@@ -231,7 +220,7 @@ position p1;
231 220
232if@p1 ((E == NULL && ...) || ...) S1 else S2 221if@p1 ((E == NULL && ...) || ...) S1 else S2
233 222
234@pr11 depends on !patch expression@ 223@pr11 expression@
235expression *ifm1.E; 224expression *ifm1.E;
236identifier f; 225identifier f;
237position p1; 226position p1;
@@ -239,7 +228,7 @@ position p1;
239 228
240 (E != NULL && ...) ? <+...E->f@p1...+> : ... 229 (E != NULL && ...) ? <+...E->f@p1...+> : ...
241 230
242@pr12 depends on !patch expression@ 231@pr12 expression@
243expression *ifm1.E; 232expression *ifm1.E;
244identifier f; 233identifier f;
245position p2; 234position p2;
@@ -253,7 +242,7 @@ position p2;
253 sizeof(<+...E->f@p2...+>) 242 sizeof(<+...E->f@p2...+>)
254) 243)
255 244
256@depends on context && !patch && !org && !report exists@ 245@depends on context && !org && !report exists@
257expression subE <= ifm1.E; 246expression subE <= ifm1.E;
258expression *ifm1.E; 247expression *ifm1.E;
259expression E1,E2; 248expression E1,E2;
diff --git a/scripts/config b/scripts/config
index 608d7fdb13e8..a7c7c4b8e957 100755
--- a/scripts/config
+++ b/scripts/config
@@ -10,8 +10,10 @@ commands:
10 --enable|-e option Enable option 10 --enable|-e option Enable option
11 --disable|-d option Disable option 11 --disable|-d option Disable option
12 --module|-m option Turn option into a module 12 --module|-m option Turn option into a module
13 --set-str option value 13 --set-str option string
14 Set option to "value" 14 Set option to "string"
15 --set-val option value
16 Set option to value
15 --state|-s option Print state of option (n,y,m,undef) 17 --state|-s option Print state of option (n,y,m,undef)
16 18
17 --enable-after|-E beforeopt option 19 --enable-after|-E beforeopt option
@@ -86,7 +88,7 @@ while [ "$1" != "" ] ; do
86 B=$ARG 88 B=$ARG
87 shift 2 89 shift 2
88 ;; 90 ;;
89 --*) 91 -*)
90 checkarg "$1" 92 checkarg "$1"
91 shift 93 shift
92 ;; 94 ;;
@@ -109,6 +111,11 @@ while [ "$1" != "" ] ; do
109 shift 111 shift
110 ;; 112 ;;
111 113
114 --set-val)
115 set_var "CONFIG_$ARG" "CONFIG_$ARG=$1"
116 shift
117 ;;
118
112 --state|-s) 119 --state|-s)
113 if grep -q "# CONFIG_$ARG is not set" $FN ; then 120 if grep -q "# CONFIG_$ARG is not set" $FN ; then
114 echo n 121 echo n
diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
index 50d6cfd1fa77..7957e7a5166a 100644
--- a/scripts/headers_check.pl
+++ b/scripts/headers_check.pl
@@ -64,10 +64,10 @@ sub check_include
64 64
65sub check_declarations 65sub check_declarations
66{ 66{
67 if ($line =~m/^\s*extern\b/) { 67 if ($line =~m/^(\s*extern|unsigned|char|short|int|long|void)\b/) {
68 printf STDERR "$filename:$lineno: " . 68 printf STDERR "$filename:$lineno: " .
69 "userspace cannot call function or variable " . 69 "userspace cannot reference function or " .
70 "defined in the kernel\n"; 70 "variable defined in the kernel\n";
71 } 71 }
72} 72}
73 73
diff --git a/scripts/tags.sh b/scripts/tags.sh
index bbbe584d4494..92fdc4546141 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -123,7 +123,7 @@ exuberant()
123 -I ____cacheline_internodealigned_in_smp \ 123 -I ____cacheline_internodealigned_in_smp \
124 -I EXPORT_SYMBOL,EXPORT_SYMBOL_GPL \ 124 -I EXPORT_SYMBOL,EXPORT_SYMBOL_GPL \
125 -I DEFINE_TRACE,EXPORT_TRACEPOINT_SYMBOL,EXPORT_TRACEPOINT_SYMBOL_GPL \ 125 -I DEFINE_TRACE,EXPORT_TRACEPOINT_SYMBOL,EXPORT_TRACEPOINT_SYMBOL_GPL \
126 --extra=+f --c-kinds=-px \ 126 --extra=+f --c-kinds=+px \
127 --regex-asm='/^ENTRY\(([^)]*)\).*/\1/' \ 127 --regex-asm='/^ENTRY\(([^)]*)\).*/\1/' \
128 --regex-c='/^SYSCALL_DEFINE[[:digit:]]?\(([^,)]*).*/sys_\1/' \ 128 --regex-c='/^SYSCALL_DEFINE[[:digit:]]?\(([^,)]*).*/sys_\1/' \
129 --regex-c++='/^TRACE_EVENT\(([^,)]*).*/trace_\1/' \ 129 --regex-c++='/^TRACE_EVENT\(([^,)]*).*/trace_\1/' \