Message ID | b7e14da2dbade9affee696a5997db1df5019ce43.1307542247.git.jan.kiszka@siemens.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2011-06-08 16:33, Peter Maydell wrote: > On 8 June 2011 15:10, Jan Kiszka <jan.kiszka@siemens.com> wrote: >> --- /dev/null >> +++ b/scripts/update-linux-headers.sh >> @@ -0,0 +1,55 @@ >> +#!/bin/sh -e >> +# > >> +if [ -z "$output" ]; then >> + output=$PWD >> +fi > >> + mkdir -p $output/linux-headers/asm-$arch > > This script is rather lacking in quoting throughout. As a random > example, this looks like it will break if you run the script from > a directory with a space in the path. True. > >> +tmpdir=$TMPDIR/.tmp-hdrs-$$ > > Better (safer) to use mktemp, I think. Is that portable? I don't think so. > >> if [ -z "$linux" -o ! -d "$linux" ]; then > > test -o is obsolescent in POSIX; use > if [ -z "$linux" ] || ! [ -d "$linux" ] ; then > instead. > OK. Thanks, Jan
2011/6/8 Jan Kiszka <jan.kiszka@siemens.com>: > On 2011-06-08 16:33, Peter Maydell wrote: >> On 8 June 2011 15:10, Jan Kiszka <jan.kiszka@siemens.com> wrote: >>> +tmpdir=$TMPDIR/.tmp-hdrs-$$ >> >> Better (safer) to use mktemp, I think. > > Is that portable? I don't think so. We don't expect every random end user to run this script, though, right? We already use mktemp in scripts/refresh-pxe-roms.sh, for instance. -- PMM -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/linux-headers/README b/linux-headers/README new file mode 100644 index 0000000..5c9026b --- /dev/null +++ b/linux-headers/README @@ -0,0 +1,2 @@ +Automatically imported Linux kernel headers. +Only use scripts/update-linux-headers.sh to update! diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh new file mode 100755 index 0000000..e5f45b2 --- /dev/null +++ b/scripts/update-linux-headers.sh @@ -0,0 +1,55 @@ +#!/bin/sh -e +# +# Update Linux kernel headers QEMU requires from a specified kernel tree. +# +# Copyright (C) 2011 Siemens AG +# +# Authors: +# Jan Kiszka <jan.kiszka@siemens.com> +# +# This work is licensed under the terms of the GNU GPL version 2. +# See the COPYING file in the top-level directory. + +tmpdir=$TMPDIR/.tmp-hdrs-$$ +linux=$1 +output=$2 + +if [ -z "$linux" -o ! -d "$linux" ]; then + cat << EOF +usage: update-kernel-headers.sh LINUX_PATH [OUTPUT_PATH] + +LINUX_PATH Linux kernel directory to obtain the headers from +OUTPUT_PATH output directory, usually the qemu source tree (default: $PWD) +EOF + exit 1 +fi + +if [ -z "$output" ]; then + output=$PWD +fi + +for arch in x86 powerpc s390; do + make -C $linux INSTALL_HDR_PATH=$tmpdir SRCARCH=$arch headers_install + + rm -rf $output/linux-headers/asm-$arch + mkdir -p $output/linux-headers/asm-$arch + for header in kvm.h kvm_para.h; do + cp $tmpdir/include/asm/$header $output/linux-headers/asm-$arch + done + if [ $arch == x86 ]; then + cp $tmpdir/include/asm/hyperv.h $output/linux-headers/asm-x86 + fi +done + +rm -rf $output/linux-headers/linux +mkdir -p $output/linux-headers/linux +for header in kvm.h kvm_para.h vhost.h virtio_config.h virtio_ring.h; do + cp $tmpdir/include/linux/$header $output/linux-headers/linux +done +if [ -L $linux/source ]; then + cp $linux/source/COPYING $output/linux-headers +else + cp $linux/COPYING $output/linux-headers +fi + +rm -rf $tmpdir
This helper pulls the required kernel headers for KVM and vhost into a specified directory. The update is triggered via scripts/update-linux-headers.sh LINUX_PATH and will place the output under linux-headers/linux and linux-headers/asm-*. It also imports the COPYING to care for headers without an explicit license. CC: Alexander Graf <agraf@suse.de> CC: Christoph Hellwig <hch@lst.de> CC: Peter Maydell <peter.maydell@linaro.org> CC: Andreas Färber <andreas.faerber@web.de> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> --- linux-headers/README | 2 + scripts/update-linux-headers.sh | 55 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 0 deletions(-) create mode 100644 linux-headers/README create mode 100755 scripts/update-linux-headers.sh