diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-02 16:48:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-02 16:48:52 -0400 |
commit | 44cee85a8824464e7e951e590243c2a85d79c494 (patch) | |
tree | 0ee07cb0a45f7fd9658b0460c288e52ffaf5c4b3 /scripts | |
parent | f716a85cd6045c994011268223706642cff7e485 (diff) | |
parent | 4c586062b275dcddc18f521ac092cf0f600a36de (diff) |
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull misc kbuild updates from Michal Marek:
- coccicheck script improvements by Luis Rodriguez and Deepa Dinamani
- new coccinelle patches by Yann Droneaud and Vaishali Thakkar
- debian packaging fixes by Wilfried Klaebe, Henning Schild and Marcin
Mielniczuk
* 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
Fix the Debian packaging script on systems with no codename
builddeb: fix file permissions before packaging
scripts/coccinelle: require coccinelle >= 1.0.4 on device_node_continue.cocci
coccicheck: refer to Documentation/coccinelle.txt and wiki
coccicheck: add support for requring a coccinelle version
scripts: add Linux .cocciconfig for coccinelle
coccicheck: replace --very-quiet with --quiet when debugging
coccicheck: add support for DEBUG_FILE
coccicheck: enable parmap support
coccicheck: make SPFLAGS more useful
coccicheck: move spatch binary check up
builddeb: really include objtool binary in headers package
coccinelle: catch krealloc() on devm_*() allocated memory
coccinelle: recognize more devm_* memory allocation functions
coccinelle: also catch kzfree() issues
coccicheck: Allow for overriding spatch flags
Coccinelle: noderef: Add new rules and correct the old rule
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/coccicheck | 96 | ||||
-rw-r--r-- | scripts/coccinelle/free/devm_free.cocci | 26 | ||||
-rw-r--r-- | scripts/coccinelle/free/ifnullfree.cocci | 4 | ||||
-rw-r--r-- | scripts/coccinelle/free/kfree.cocci | 18 | ||||
-rw-r--r-- | scripts/coccinelle/free/kfreeaddr.cocci | 6 | ||||
-rw-r--r-- | scripts/coccinelle/iterators/device_node_continue.cocci | 3 | ||||
-rw-r--r-- | scripts/coccinelle/misc/noderef.cocci | 18 | ||||
-rwxr-xr-x | scripts/package/builddeb | 11 |
8 files changed, 162 insertions, 20 deletions
diff --git a/scripts/coccicheck b/scripts/coccicheck index dd85a455b2ba..c92c1528a54d 100755 --- a/scripts/coccicheck +++ b/scripts/coccicheck | |||
@@ -1,14 +1,24 @@ | |||
1 | #!/bin/bash | 1 | #!/bin/bash |
2 | 2 | # Linux kernel coccicheck | |
3 | # | ||
4 | # Read Documentation/coccinelle.txt | ||
3 | # | 5 | # |
4 | # This script requires at least spatch | 6 | # This script requires at least spatch |
5 | # version 1.0.0-rc11. | 7 | # version 1.0.0-rc11. |
6 | # | ||
7 | 8 | ||
9 | DIR="$(dirname $(readlink -f $0))/.." | ||
8 | SPATCH="`which ${SPATCH:=spatch}`" | 10 | SPATCH="`which ${SPATCH:=spatch}`" |
9 | 11 | ||
10 | trap kill_running SIGTERM SIGINT | 12 | if [ ! -x "$SPATCH" ]; then |
11 | declare -a SPATCH_PID | 13 | echo 'spatch is part of the Coccinelle project and is available at http://coccinelle.lip6.fr/' |
14 | exit 1 | ||
15 | fi | ||
16 | |||
17 | SPATCH_VERSION=$($SPATCH --version | head -1 | awk '{print $3}') | ||
18 | SPATCH_VERSION_NUM=$(echo $SPATCH_VERSION | ${DIR}/scripts/ld-version.sh) | ||
19 | |||
20 | USE_JOBS="no" | ||
21 | $SPATCH --help | grep "\-\-jobs" > /dev/null && USE_JOBS="yes" | ||
12 | 22 | ||
13 | # The verbosity may be set by the environmental parameter V= | 23 | # The verbosity may be set by the environmental parameter V= |
14 | # as for example with 'make V=1 coccicheck' | 24 | # as for example with 'make V=1 coccicheck' |
@@ -25,7 +35,28 @@ else | |||
25 | NPROC="$J" | 35 | NPROC="$J" |
26 | fi | 36 | fi |
27 | 37 | ||
28 | FLAGS="$SPFLAGS --very-quiet" | 38 | FLAGS="--very-quiet" |
39 | |||
40 | # You can use SPFLAGS to append extra arguments to coccicheck or override any | ||
41 | # heuristics done in this file as Coccinelle accepts the last options when | ||
42 | # options conflict. | ||
43 | # | ||
44 | # A good example for use of SPFLAGS is if you want to debug your cocci script, | ||
45 | # you can for instance use the following: | ||
46 | # | ||
47 | # $ export COCCI=scripts/coccinelle/misc/irqf_oneshot.cocci | ||
48 | # $ make coccicheck MODE=report DEBUG_FILE="all.err" SPFLAGS="--profile --show-trying" M=./drivers/mfd/arizona-irq.c | ||
49 | # | ||
50 | # "--show-trying" should show you what rule is being processed as it goes to | ||
51 | # stdout, you do not need a debug file for that. The profile output will be | ||
52 | # be sent to stdout, if you provide a DEBUG_FILE the profiling data can be | ||
53 | # inspected there. | ||
54 | # | ||
55 | # --profile will not output if --very-quiet is used, so avoid it. | ||
56 | echo $SPFLAGS | egrep -e "--profile|--show-trying" 2>&1 > /dev/null | ||
57 | if [ $? -eq 0 ]; then | ||
58 | FLAGS="--quiet" | ||
59 | fi | ||
29 | 60 | ||
30 | # spatch only allows include directories with the syntax "-I include" | 61 | # spatch only allows include directories with the syntax "-I include" |
31 | # while gcc also allows "-Iinclude" and "-include include" | 62 | # while gcc also allows "-Iinclude" and "-include include" |
@@ -51,9 +82,14 @@ if [ "$KBUILD_EXTMOD" != "" ] ; then | |||
51 | OPTIONS="--patch $srctree $OPTIONS" | 82 | OPTIONS="--patch $srctree $OPTIONS" |
52 | fi | 83 | fi |
53 | 84 | ||
54 | if [ ! -x "$SPATCH" ]; then | 85 | # You can override by using SPFLAGS |
55 | echo 'spatch is part of the Coccinelle project and is available at http://coccinelle.lip6.fr/' | 86 | if [ "$USE_JOBS" = "no" ]; then |
56 | exit 1 | 87 | trap kill_running SIGTERM SIGINT |
88 | declare -a SPATCH_PID | ||
89 | elif [ "$NPROC" != "1" ]; then | ||
90 | # Using 0 should work as well, refer to _SC_NPROCESSORS_ONLN use on | ||
91 | # https://github.com/rdicosmo/parmap/blob/master/setcore_stubs.c | ||
92 | OPTIONS="$OPTIONS --jobs $NPROC --chunksize 1" | ||
57 | fi | 93 | fi |
58 | 94 | ||
59 | if [ "$MODE" = "" ] ; then | 95 | if [ "$MODE" = "" ] ; then |
@@ -72,7 +108,7 @@ if [ "$MODE" = "chain" ] ; then | |||
72 | echo 'All available modes will be tried (in that order): patch, report, context, org' | 108 | echo 'All available modes will be tried (in that order): patch, report, context, org' |
73 | fi | 109 | fi |
74 | elif [ "$MODE" = "report" -o "$MODE" = "org" ] ; then | 110 | elif [ "$MODE" = "report" -o "$MODE" = "org" ] ; then |
75 | FLAGS="$FLAGS --no-show-diff" | 111 | FLAGS="--no-show-diff $FLAGS" |
76 | fi | 112 | fi |
77 | 113 | ||
78 | if [ "$ONLINE" = "0" ] ; then | 114 | if [ "$ONLINE" = "0" ] ; then |
@@ -82,7 +118,26 @@ if [ "$ONLINE" = "0" ] ; then | |||
82 | echo '' | 118 | echo '' |
83 | fi | 119 | fi |
84 | 120 | ||
85 | run_cmd() { | 121 | run_cmd_parmap() { |
122 | if [ $VERBOSE -ne 0 ] ; then | ||
123 | echo "Running ($NPROC in parallel): $@" | ||
124 | fi | ||
125 | if [ "$DEBUG_FILE" != "/dev/null" -a "$DEBUG_FILE" != "" ]; then | ||
126 | if [ -f $DEBUG_FILE ]; then | ||
127 | echo "Debug file $DEBUG_FILE exists, bailing" | ||
128 | exit | ||
129 | fi | ||
130 | else | ||
131 | DEBUG_FILE="/dev/null" | ||
132 | fi | ||
133 | $@ 2>$DEBUG_FILE | ||
134 | if [[ $? -ne 0 ]]; then | ||
135 | echo "coccicheck failed" | ||
136 | exit $? | ||
137 | fi | ||
138 | } | ||
139 | |||
140 | run_cmd_old() { | ||
86 | local i | 141 | local i |
87 | if [ $VERBOSE -ne 0 ] ; then | 142 | if [ $VERBOSE -ne 0 ] ; then |
88 | echo "Running ($NPROC in parallel): $@" | 143 | echo "Running ($NPROC in parallel): $@" |
@@ -97,6 +152,14 @@ run_cmd() { | |||
97 | wait | 152 | wait |
98 | } | 153 | } |
99 | 154 | ||
155 | run_cmd() { | ||
156 | if [ "$USE_JOBS" = "yes" ]; then | ||
157 | run_cmd_parmap $@ | ||
158 | else | ||
159 | run_cmd_old $@ | ||
160 | fi | ||
161 | } | ||
162 | |||
100 | kill_running() { | 163 | kill_running() { |
101 | for i in $(seq 0 $(( NPROC - 1 )) ); do | 164 | for i in $(seq 0 $(( NPROC - 1 )) ); do |
102 | if [ $VERBOSE -eq 2 ] ; then | 165 | if [ $VERBOSE -eq 2 ] ; then |
@@ -106,10 +169,23 @@ kill_running() { | |||
106 | done | 169 | done |
107 | } | 170 | } |
108 | 171 | ||
172 | # You can override heuristics with SPFLAGS, these must always go last | ||
173 | OPTIONS="$OPTIONS $SPFLAGS" | ||
174 | |||
109 | coccinelle () { | 175 | coccinelle () { |
110 | COCCI="$1" | 176 | COCCI="$1" |
111 | 177 | ||
112 | OPT=`grep "Option" $COCCI | cut -d':' -f2` | 178 | OPT=`grep "Option" $COCCI | cut -d':' -f2` |
179 | REQ=`grep "Requires" $COCCI | cut -d':' -f2 | sed "s| ||"` | ||
180 | REQ_NUM=$(echo $REQ | ${DIR}/scripts/ld-version.sh) | ||
181 | if [ "$REQ_NUM" != "0" ] ; then | ||
182 | if [ "$SPATCH_VERSION_NUM" -lt "$REQ_NUM" ] ; then | ||
183 | echo "Skipping coccinele SmPL patch: $COCCI" | ||
184 | echo "You have coccinelle: $SPATCH_VERSION" | ||
185 | echo "This SmPL patch requires: $REQ" | ||
186 | return | ||
187 | fi | ||
188 | fi | ||
113 | 189 | ||
114 | # The option '--parse-cocci' can be used to syntactically check the SmPL files. | 190 | # The option '--parse-cocci' can be used to syntactically check the SmPL files. |
115 | # | 191 | # |
diff --git a/scripts/coccinelle/free/devm_free.cocci b/scripts/coccinelle/free/devm_free.cocci index 3d9349012bb3..c990d2c7ee16 100644 --- a/scripts/coccinelle/free/devm_free.cocci +++ b/scripts/coccinelle/free/devm_free.cocci | |||
@@ -29,8 +29,24 @@ expression x; | |||
29 | @@ | 29 | @@ |
30 | 30 | ||
31 | ( | 31 | ( |
32 | x = devm_kmalloc(...) | ||
33 | | | ||
34 | x = devm_kvasprintf(...) | ||
35 | | | ||
36 | x = devm_kasprintf(...) | ||
37 | | | ||
32 | x = devm_kzalloc(...) | 38 | x = devm_kzalloc(...) |
33 | | | 39 | | |
40 | x = devm_kmalloc_array(...) | ||
41 | | | ||
42 | x = devm_kcalloc(...) | ||
43 | | | ||
44 | x = devm_kstrdup(...) | ||
45 | | | ||
46 | x = devm_kmemdup(...) | ||
47 | | | ||
48 | x = devm_get_free_pages(...) | ||
49 | | | ||
34 | x = devm_request_irq(...) | 50 | x = devm_request_irq(...) |
35 | | | 51 | | |
36 | x = devm_ioremap(...) | 52 | x = devm_ioremap(...) |
@@ -48,6 +64,16 @@ position p; | |||
48 | ( | 64 | ( |
49 | * kfree@p(x) | 65 | * kfree@p(x) |
50 | | | 66 | | |
67 | * kzfree@p(x) | ||
68 | | | ||
69 | * __krealloc@p(x, ...) | ||
70 | | | ||
71 | * krealloc@p(x, ...) | ||
72 | | | ||
73 | * free_pages@p(x, ...) | ||
74 | | | ||
75 | * free_page@p(x) | ||
76 | | | ||
51 | * free_irq@p(x) | 77 | * free_irq@p(x) |
52 | | | 78 | | |
53 | * iounmap@p(x) | 79 | * iounmap@p(x) |
diff --git a/scripts/coccinelle/free/ifnullfree.cocci b/scripts/coccinelle/free/ifnullfree.cocci index 52bd235286fa..14a4cd98e83b 100644 --- a/scripts/coccinelle/free/ifnullfree.cocci +++ b/scripts/coccinelle/free/ifnullfree.cocci | |||
@@ -20,6 +20,8 @@ expression E; | |||
20 | ( | 20 | ( |
21 | kfree(E); | 21 | kfree(E); |
22 | | | 22 | | |
23 | kzfree(E); | ||
24 | | | ||
23 | debugfs_remove(E); | 25 | debugfs_remove(E); |
24 | | | 26 | | |
25 | debugfs_remove_recursive(E); | 27 | debugfs_remove_recursive(E); |
@@ -39,7 +41,7 @@ position p; | |||
39 | @@ | 41 | @@ |
40 | 42 | ||
41 | * if (E != NULL) | 43 | * if (E != NULL) |
42 | * \(kfree@p\|debugfs_remove@p\|debugfs_remove_recursive@p\| | 44 | * \(kfree@p\|kzfree@p\|debugfs_remove@p\|debugfs_remove_recursive@p\| |
43 | * usb_free_urb@p\|kmem_cache_destroy@p\|mempool_destroy@p\| | 45 | * usb_free_urb@p\|kmem_cache_destroy@p\|mempool_destroy@p\| |
44 | * dma_pool_destroy@p\)(E); | 46 | * dma_pool_destroy@p\)(E); |
45 | 47 | ||
diff --git a/scripts/coccinelle/free/kfree.cocci b/scripts/coccinelle/free/kfree.cocci index 577b78056990..ac438da4fd7b 100644 --- a/scripts/coccinelle/free/kfree.cocci +++ b/scripts/coccinelle/free/kfree.cocci | |||
@@ -20,7 +20,11 @@ expression E; | |||
20 | position p1; | 20 | position p1; |
21 | @@ | 21 | @@ |
22 | 22 | ||
23 | kfree@p1(E) | 23 | ( |
24 | * kfree@p1(E) | ||
25 | | | ||
26 | * kzfree@p1(E) | ||
27 | ) | ||
24 | 28 | ||
25 | @print expression@ | 29 | @print expression@ |
26 | constant char [] c; | 30 | constant char [] c; |
@@ -60,7 +64,11 @@ position ok; | |||
60 | @@ | 64 | @@ |
61 | 65 | ||
62 | while (1) { ... | 66 | while (1) { ... |
63 | kfree@ok(E) | 67 | ( |
68 | * kfree@ok(E) | ||
69 | | | ||
70 | * kzfree@ok(E) | ||
71 | ) | ||
64 | ... when != break; | 72 | ... when != break; |
65 | when != goto l; | 73 | when != goto l; |
66 | when forall | 74 | when forall |
@@ -74,7 +82,11 @@ statement S; | |||
74 | position free.p1!=loop.ok,p2!={print.p,sz.p}; | 82 | position free.p1!=loop.ok,p2!={print.p,sz.p}; |
75 | @@ | 83 | @@ |
76 | 84 | ||
77 | kfree@p1(E,...) | 85 | ( |
86 | * kfree@p1(E,...) | ||
87 | | | ||
88 | * kzfree@p1(E,...) | ||
89 | ) | ||
78 | ... | 90 | ... |
79 | ( | 91 | ( |
80 | iter(...,subE,...) S // no use | 92 | iter(...,subE,...) S // no use |
diff --git a/scripts/coccinelle/free/kfreeaddr.cocci b/scripts/coccinelle/free/kfreeaddr.cocci index ce8aacc314cb..d46063b1db8b 100644 --- a/scripts/coccinelle/free/kfreeaddr.cocci +++ b/scripts/coccinelle/free/kfreeaddr.cocci | |||
@@ -16,7 +16,11 @@ identifier f; | |||
16 | position p; | 16 | position p; |
17 | @@ | 17 | @@ |
18 | 18 | ||
19 | ( | ||
19 | * kfree@p(&e->f) | 20 | * kfree@p(&e->f) |
21 | | | ||
22 | * kzfree@p(&e->f) | ||
23 | ) | ||
20 | 24 | ||
21 | @script:python depends on org@ | 25 | @script:python depends on org@ |
22 | p << r.p; | 26 | p << r.p; |
@@ -28,5 +32,5 @@ cocci.print_main("kfree",p) | |||
28 | p << r.p; | 32 | p << r.p; |
29 | @@ | 33 | @@ |
30 | 34 | ||
31 | msg = "ERROR: kfree of structure field" | 35 | msg = "ERROR: invalid free of structure field" |
32 | coccilib.report.print_report(p[0],msg) | 36 | coccilib.report.print_report(p[0],msg) |
diff --git a/scripts/coccinelle/iterators/device_node_continue.cocci b/scripts/coccinelle/iterators/device_node_continue.cocci index 38ab744a4037..a36c16db171b 100644 --- a/scripts/coccinelle/iterators/device_node_continue.cocci +++ b/scripts/coccinelle/iterators/device_node_continue.cocci | |||
@@ -5,8 +5,11 @@ | |||
5 | // Copyright: (C) 2015 Julia Lawall, Inria. GPLv2. | 5 | // Copyright: (C) 2015 Julia Lawall, Inria. GPLv2. |
6 | // URL: http://coccinelle.lip6.fr/ | 6 | // URL: http://coccinelle.lip6.fr/ |
7 | // Options: --no-includes --include-headers | 7 | // Options: --no-includes --include-headers |
8 | // Requires: 1.0.4 | ||
8 | // Keywords: for_each_child_of_node, etc. | 9 | // Keywords: for_each_child_of_node, etc. |
9 | 10 | ||
11 | // This uses a conjunction, which requires at least coccinelle >= 1.0.4 | ||
12 | |||
10 | virtual patch | 13 | virtual patch |
11 | virtual context | 14 | virtual context |
12 | virtual org | 15 | virtual org |
diff --git a/scripts/coccinelle/misc/noderef.cocci b/scripts/coccinelle/misc/noderef.cocci index 80a831c91161..007f0de0c715 100644 --- a/scripts/coccinelle/misc/noderef.cocci +++ b/scripts/coccinelle/misc/noderef.cocci | |||
@@ -16,6 +16,7 @@ virtual patch | |||
16 | @depends on patch@ | 16 | @depends on patch@ |
17 | expression *x; | 17 | expression *x; |
18 | expression f; | 18 | expression f; |
19 | expression i; | ||
19 | type T; | 20 | type T; |
20 | @@ | 21 | @@ |
21 | 22 | ||
@@ -30,15 +31,26 @@ f(...,(T)(x),...,sizeof( | |||
30 | + *x | 31 | + *x |
31 | ),...) | 32 | ),...) |
32 | | | 33 | | |
33 | f(...,sizeof(x),...,(T)( | 34 | f(...,sizeof( |
35 | - x | ||
36 | + *x | ||
37 | ),...,(T)(x),...) | ||
38 | | | ||
39 | f(...,(T)(x),...,i*sizeof( | ||
34 | - x | 40 | - x |
35 | + *x | 41 | + *x |
36 | ),...) | 42 | ),...) |
43 | | | ||
44 | f(...,i*sizeof( | ||
45 | - x | ||
46 | + *x | ||
47 | ),...,(T)(x),...) | ||
37 | ) | 48 | ) |
38 | 49 | ||
39 | @r depends on !patch@ | 50 | @r depends on !patch@ |
40 | expression *x; | 51 | expression *x; |
41 | expression f; | 52 | expression f; |
53 | expression i; | ||
42 | position p; | 54 | position p; |
43 | type T; | 55 | type T; |
44 | @@ | 56 | @@ |
@@ -49,6 +61,10 @@ type T; | |||
49 | *f(...,(T)(x),...,sizeof@p(x),...) | 61 | *f(...,(T)(x),...,sizeof@p(x),...) |
50 | | | 62 | | |
51 | *f(...,sizeof@p(x),...,(T)(x),...) | 63 | *f(...,sizeof@p(x),...,(T)(x),...) |
64 | | | ||
65 | *f(...,(T)(x),...,i*sizeof@p(x),...) | ||
66 | | | ||
67 | *f(...,i*sizeof@p(x),...,(T)(x),...) | ||
52 | ) | 68 | ) |
53 | 69 | ||
54 | @script:python depends on org@ | 70 | @script:python depends on org@ |
diff --git a/scripts/package/builddeb b/scripts/package/builddeb index 4d4418a8d54d..e1c09e2f9be7 100755 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb | |||
@@ -26,6 +26,8 @@ create_package() { | |||
26 | # Fix ownership and permissions | 26 | # Fix ownership and permissions |
27 | chown -R root:root "$pdir" | 27 | chown -R root:root "$pdir" |
28 | chmod -R go-w "$pdir" | 28 | chmod -R go-w "$pdir" |
29 | # in case we are in a restrictive umask environment like 0077 | ||
30 | chmod -R a+rX "$pdir" | ||
29 | 31 | ||
30 | # Create the package | 32 | # Create the package |
31 | dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir" | 33 | dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir" |
@@ -238,7 +240,8 @@ maintainer="$name <$email>" | |||
238 | # Try to determine distribution | 240 | # Try to determine distribution |
239 | if [ -n "$KDEB_CHANGELOG_DIST" ]; then | 241 | if [ -n "$KDEB_CHANGELOG_DIST" ]; then |
240 | distribution=$KDEB_CHANGELOG_DIST | 242 | distribution=$KDEB_CHANGELOG_DIST |
241 | elif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ]; then | 243 | # In some cases lsb_release returns the codename as n/a, which breaks dpkg-parsechangelog |
244 | elif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ] && [ "$distribution" != "n/a" ]; then | ||
242 | : # nothing to do in this case | 245 | : # nothing to do in this case |
243 | else | 246 | else |
244 | distribution="unstable" | 247 | distribution="unstable" |
@@ -322,12 +325,12 @@ fi | |||
322 | 325 | ||
323 | # Build kernel header package | 326 | # Build kernel header package |
324 | (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles" | 327 | (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles" |
325 | if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then | ||
326 | (cd $srctree; find tools/objtool -type f -executable) >> "$objtree/debian/hdrsrcfiles" | ||
327 | fi | ||
328 | (cd $srctree; find arch/*/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles" | 328 | (cd $srctree; find arch/*/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles" |
329 | (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles" | 329 | (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles" |
330 | (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles" | 330 | (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles" |
331 | if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then | ||
332 | (cd $objtree; find tools/objtool -type f -executable) >> "$objtree/debian/hdrobjfiles" | ||
333 | fi | ||
331 | (cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles" | 334 | (cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles" |
332 | (cd $objtree; find scripts/gcc-plugins -name \*.so -o -name gcc-common.h) >> "$objtree/debian/hdrobjfiles" | 335 | (cd $objtree; find scripts/gcc-plugins -name \*.so -o -name gcc-common.h) >> "$objtree/debian/hdrobjfiles" |
333 | destdir=$kernel_headers_dir/usr/src/linux-headers-$version | 336 | destdir=$kernel_headers_dir/usr/src/linux-headers-$version |