Print this page
new smatch
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/tools/smatch/src/smatch_scripts/kchecker
+++ new/usr/src/tools/smatch/src/smatch_scripts/kchecker
1 1 #!/bin/bash
2 2
3 3 function usage {
4 4 echo "Usage: $0 [--sparse][--valgrind][--debug] path/to/file.c"
5 5 exit 1
6 6 }
7 7
8 8 SCRIPT_DIR=$(dirname $0)
9 9 if [ -e $SCRIPT_DIR/../smatch ] ; then
10 10 CMD=$SCRIPT_DIR/../smatch
11 11 elif which smatch | grep smatch > /dev/null ; then
12 12 CMD=smatch
13 13 else
14 14 echo "Smatch binary not found."
15 15 exit 1
16 16 fi
17 17
18 18 while true ; do
19 19 if [[ "$1" == "--sparse" ]] ; then
20 20 CMD="sparse"
21 21 shift
22 22 elif [[ "$1" == "--test-parsing" ]] ; then
23 23 CMD="$SCRIPT_DIR/../test-parsing -no-lineno"
24 24 shift
25 25 elif echo "$1" | grep -q -- "--outfile=" ; then
26 26 outfile=$(echo "$1" | cut -d '=' -f 2)
27 27 if [ "outfile" != "" ] ; then
28 28 POST="$POST > $outfile"
29 29 fi
30 30 shift
31 31 elif [[ "$1" == "--valgrind" ]] ; then
32 32 PRE="valgrind"
33 33 shift
34 34 elif [[ "$1" == "--endian" ]] ; then
35 35 ENDIAN="CF=-D__CHECK_ENDIAN__"
36 36 shift
37 37 elif [[ "$1" == "" ]] ; then
38 38 break
39 39 else
40 40 if [[ "$1" == "--help" ]] ; then
41 41 $CMD --help
42 42 exit 1
43 43 fi
44 44 if echo $1 | grep -q ^- ; then
45 45 POST="$1 $POST"
46 46 else
47 47 break
48 48 fi
49 49 shift
50 50 fi
51 51 done
52 52 if echo $CMD | grep -q smatch ; then
53 53 POST="--project=kernel --succeed $POST"
54 54 fi
55 55
56 56 cname=$1
57 57 cname=$(echo ${cname/.o/.c})
58 58 if [[ "$cname" == "" ]] ; then
59 59 usage
60 60 fi
61 61 if ! test -e $cname ; then
62 62 usage
↓ open down ↓ |
62 lines elided |
↑ open up ↑ |
63 63 fi
64 64
65 65 oname=$(echo ${cname/.c/.o})
66 66 if ! echo $oname | grep -q .o$ && ! echo $oname | grep -q /$ ; then
67 67 usage
68 68 fi
69 69 if echo $oname | grep -q .o$ ; then
70 70 rm -f $oname
71 71 fi
72 72
73 -make C=2 $ENDIAN CHECK="$PRE $CMD $POST" $oname
73 +if [[ ! -z $ARCH ]]; then
74 + KERNEL_ARCH="ARCH=$ARCH"
75 +fi
76 +if [[ ! -z $CROSS_COMPILE ]] ; then
77 + KERNEL_CROSS_COMPILE="CROSS_COMPILE=$CROSS_COMPILE"
78 +fi
79 +
80 +make $KERNEL_CROSS_COMPILE $KERNEL_ARCH C=2 $ENDIAN CHECK="$PRE $CMD $POST" $oname
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX