Commit | Line | Data |
---|---|---|
8c50b72a | 1 | #!/bin/bash |
b2441318 | 2 | # SPDX-License-Identifier: GPL-2.0 |
8c50b72a TD |
3 | |
4 | set -e | |
5 | set -o pipefail | |
6 | ||
7 | # To debug, uncomment the following line | |
8 | # set -x | |
9 | ||
1421dc6d NP |
10 | # -mprofile-kernel is only supported on 64le, so this should not be invoked |
11 | # for other targets. Therefore we can pass in -m64 and -mlittle-endian | |
12 | # explicitly, to take care of toolchains defaulting to other targets. | |
13 | ||
8c50b72a TD |
14 | # Test whether the compile option -mprofile-kernel exists and generates |
15 | # profiling code (ie. a call to _mcount()). | |
16 | echo "int func() { return 0; }" | \ | |
1421dc6d NP |
17 | $* -m64 -mlittle-endian -S -x c -O2 -p -mprofile-kernel - -o - \ |
18 | 2> /dev/null | grep -q "_mcount" | |
8c50b72a TD |
19 | |
20 | # Test whether the notrace attribute correctly suppresses calls to _mcount(). | |
21 | ||
22 | echo -e "#include <linux/compiler.h>\nnotrace int func() { return 0; }" | \ | |
1421dc6d NP |
23 | $* -m64 -mlittle-endian -S -x c -O2 -p -mprofile-kernel - -o - \ |
24 | 2> /dev/null | grep -q "_mcount" && \ | |
8c50b72a TD |
25 | exit 1 |
26 | ||
8c50b72a | 27 | exit 0 |