162306a36Sopenharmony_ci#!/bin/bash 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0+ 362306a36Sopenharmony_ci# 462306a36Sopenharmony_ci# Build a kvm-ready Linux kernel from the tree in the current directory. 562306a36Sopenharmony_ci# 662306a36Sopenharmony_ci# Usage: kvm-build.sh config-template resdir 762306a36Sopenharmony_ci# 862306a36Sopenharmony_ci# Copyright (C) IBM Corporation, 2011 962306a36Sopenharmony_ci# 1062306a36Sopenharmony_ci# Authors: Paul E. McKenney <paulmck@linux.ibm.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciif test -f "$TORTURE_STOPFILE" 1362306a36Sopenharmony_cithen 1462306a36Sopenharmony_ci echo "kvm-build.sh early exit due to run STOP request" 1562306a36Sopenharmony_ci exit 1 1662306a36Sopenharmony_cifi 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciconfig_template=${1} 1962306a36Sopenharmony_ciif test -z "$config_template" -o ! -f "$config_template" -o ! -r "$config_template" 2062306a36Sopenharmony_cithen 2162306a36Sopenharmony_ci echo "kvm-build.sh :$config_template: Not a readable file" 2262306a36Sopenharmony_ci exit 1 2362306a36Sopenharmony_cifi 2462306a36Sopenharmony_ciresdir=${2} 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciT="`mktemp -d ${TMPDIR-/tmp}/kvm-build.sh.XXXXXX`" 2762306a36Sopenharmony_citrap 'rm -rf $T' 0 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_cicp ${config_template} $T/config 3062306a36Sopenharmony_cicat << ___EOF___ >> $T/config 3162306a36Sopenharmony_ciCONFIG_INITRAMFS_SOURCE="$TORTURE_INITRD" 3262306a36Sopenharmony_ciCONFIG_VIRTIO_PCI=y 3362306a36Sopenharmony_ciCONFIG_VIRTIO_CONSOLE=y 3462306a36Sopenharmony_ci___EOF___ 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ciconfiginit.sh $T/config $resdir 3762306a36Sopenharmony_ciretval=$? 3862306a36Sopenharmony_ciif test $retval -gt 1 3962306a36Sopenharmony_cithen 4062306a36Sopenharmony_ci exit 2 4162306a36Sopenharmony_cifi 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci# Tell "make" to use double the number of real CPUs on the build system. 4462306a36Sopenharmony_cincpus="`getconf _NPROCESSORS_ONLN`" 4562306a36Sopenharmony_cimake -j$((2 * ncpus)) $TORTURE_KMAKE_ARG > $resdir/Make.out 2>&1 4662306a36Sopenharmony_ciretval=$? 4762306a36Sopenharmony_ciif 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 4862306a36Sopenharmony_cithen 4962306a36Sopenharmony_ci echo Kernel build error 5062306a36Sopenharmony_ci grep -E "Stop|Error|error:|warning:" < $resdir/Make.out 5162306a36Sopenharmony_ci echo Run aborted. 5262306a36Sopenharmony_ci exit 3 5362306a36Sopenharmony_cifi 54