Re: [PATCH 03/12] Switch build system to accompanied kernel headers

Stefan Weil
2011-06-22T20:51:35Z

Am 08.06.2011 16:10, schrieb Jan Kiszka:
> This helps reducing our build-time checks for feature support in the
> available Linux kernel headers. And it helps users that do not have
> sufficiently recent headers installed on their build machine.
>
> Consequently, the patch removes and build-time checks for kvm and vhost
> in configure, the --kerneldir switch, and KVM_CFLAGS. Kernel headers are
> supposed to be provided by QEMU only.
>
> s390 needs some extra love as it carries redefinitions from kernel
> headers.
>
> CC: Alexander Graf <agraf@suse.de>
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
> Makefile.target | 4 +-
> configure | 151 ++++++----------------------------------------
> target-s390x/cpu.h | 10 ---
> target-s390x/op_helper.c | 1 +
> 4 files changed, 21 insertions(+), 145 deletions(-)
>
> diff --git a/Makefile.target b/Makefile.target
> index 5c22df8..be9c0e8 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -14,7 +14,7 @@ endif
>
> TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH)
> $(call set-vpath, $(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw)
> -QEMU_CFLAGS+= -I.. -I$(TARGET_PATH) -DNEED_CPU_H
> +QEMU_CFLAGS+= -I.. -I../linux-headers -I$(TARGET_PATH) -DNEED_CPU_H
>
> include $(SRC_PATH)/Makefile.objs
>
> @@ -37,8 +37,6 @@ ifndef CONFIG_HAIKU
> LIBS+=-lm
> endif
>
> -kvm.o kvm-all.o vhost.o vhost_net.o kvmclock.o:
> QEMU_CFLAGS+=$(KVM_CFLAGS)
> -
> config-target.h: config-target.h-timestamp
> config-target.h-timestamp: config-target.mak
>
> diff --git a/configure b/configure
> index d38b952..0e1dc46 100755
> --- a/configure
> +++ b/configure
> @@ -113,8 +113,7 @@ curl=""
> curses=""
> docs=""
> fdt=""
> -kvm=""
> -kvm_para=""
> +kvm="yes"
> nptl=""

Are you planning to add kvm support for all platforms which don't
support it today?
If not, kvm="yes" should be restricted to platforms with kvm support.

Otherwise, QEMU builds will fail very early:

ERROR: Host kernel lacks signalfd() support,
but KVM depends on it when the IO thread is disabled.

Of course, users of those non-kvm platforms can set --disable-kvm,
but I don't think that is the correct solution.

Even with kvm disabled, builds still fail for non-kvm systems:

In file included from /qemu/hw/kvmclock.c:21:
/qemu/linux-headers/linux/kvm_para.h:26:26: warning: asm/kvm_para.h:
No such file or directory

Cheers,

Stefan