Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / tools / testing / selftests / rcutorture / bin / kvm-build.sh
blob11f8d232b0ee74b61953bb156feece6e882f1b80
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0+
4 # Build a kvm-ready Linux kernel from the tree in the current directory.
6 # Usage: kvm-build.sh config-template resdir
8 # Copyright (C) IBM Corporation, 2011
10 # Authors: Paul E. McKenney <paulmck@linux.ibm.com>
12 if test -f "$TORTURE_STOPFILE"
13 then
14 echo "kvm-build.sh early exit due to run STOP request"
15 exit 1
18 config_template=${1}
19 if test -z "$config_template" -o ! -f "$config_template" -o ! -r "$config_template"
20 then
21 echo "kvm-build.sh :$config_template: Not a readable file"
22 exit 1
24 resdir=${2}
26 T="`mktemp -d ${TMPDIR-/tmp}/kvm-build.sh.XXXXXX`"
27 trap 'rm -rf $T' 0
29 cp ${config_template} $T/config
30 cat << ___EOF___ >> $T/config
31 CONFIG_INITRAMFS_SOURCE="$TORTURE_INITRD"
32 CONFIG_VIRTIO_PCI=y
33 CONFIG_VIRTIO_CONSOLE=y
34 ___EOF___
36 configinit.sh $T/config $resdir
37 retval=$?
38 if test $retval -gt 1
39 then
40 exit 2
43 # Tell "make" to use double the number of real CPUs on the build system.
44 ncpus="`getconf _NPROCESSORS_ONLN`"
45 make -j$((2 * ncpus)) $TORTURE_KMAKE_ARG > $resdir/Make.out 2>&1
46 retval=$?
47 if test $retval -ne 0 || grep "rcu[^/]*": < $resdir/Make.out | grep -E -q "Stop|Error|error:|warning:" || grep -E -q "Stop|Error|error:" < $resdir/Make.out
48 then
49 echo Kernel build error
50 grep -E "Stop|Error|error:|warning:" < $resdir/Make.out
51 echo Run aborted.
52 exit 3