diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2011-06-23 10:05:12 +0200 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2011-06-26 17:35:47 +0000 |
commit | af2be2077734e0ebfc8afbe6caf0f89a1474eef2 (patch) | |
tree | 9c72a60fdd424fcfe8c1d7f27e5093308b2e696c | |
parent | 744d3644181ddb16ef5944a0f9217e46961c8c84 (diff) |
Fix fallouts from Linux header inclusion
This is an all-in-one fix for the smaller and bigger mistakes of the
build system changes for accompanied Linux headers:
- only enable KVM and vhost on Linux hosts
- fix powerpc asm header symlink
- do not use Linux headers on non-Linux hosts
- fix kvmclock for !CONFIG_KVM
- fix s390 build on non-Linux hosts
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Tested-by: Andreas Färber <andreas.faerber@web.de>
Tested-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r-- | Makefile.target | 8 | ||||
-rwxr-xr-x | configure | 34 | ||||
-rw-r--r-- | hw/kvmclock.h | 10 | ||||
-rw-r--r-- | target-s390x/op_helper.c | 6 |
4 files changed, 40 insertions, 18 deletions
diff --git a/Makefile.target b/Makefile.target index 03d3646b23..d3971a6d87 100644 --- a/Makefile.target +++ b/Makefile.target @@ -14,7 +14,10 @@ endif TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH) $(call set-vpath, $(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw) -QEMU_CFLAGS+= -I.. -I../linux-headers -I$(TARGET_PATH) -DNEED_CPU_H +ifdef CONFIG_LINUX +QEMU_CFLAGS += -I../linux-headers +endif +QEMU_CFLAGS += -I.. -I$(TARGET_PATH) -DNEED_CPU_H include $(SRC_PATH)/Makefile.objs @@ -234,7 +237,8 @@ obj-i386-y += cirrus_vga.o sga.o apic.o ioapic.o piix_pci.o obj-i386-y += vmport.o obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o obj-i386-y += debugcon.o multiboot.o -obj-i386-y += pc_piix.o kvmclock.o +obj-i386-y += pc_piix.o +obj-i386-$(CONFIG_KVM) += kvmclock.o obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o # shared objects @@ -113,7 +113,7 @@ curl="" curses="" docs="" fdt="" -kvm="yes" +kvm="" nptl="" sdl="" vnc="yes" @@ -129,7 +129,7 @@ xen="" xen_ctrl_version="" linux_aio="" attr="" -vhost_net="yes" +vhost_net="" xfs="" gprof="no" @@ -457,6 +457,8 @@ Haiku) linux="yes" linux_user="yes" usb="linux" + kvm="yes" + vhost_net="yes" if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then audio_possible_drivers="$audio_possible_drivers fmod" fi @@ -3444,19 +3446,21 @@ if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then fi # use included Linux headers -includes="-I\$(SRC_PATH)/linux-headers $includes" -mkdir -p linux-headers -case "$cpu" in -i386|x86_64) - symlink $source_path/linux-headers/asm-x86 linux-headers/asm - ;; -ppcemb|ppc|ppc64) - symlink $source_path/linux-headers/asm-x86 linux-headers/asm - ;; -s390x) - symlink $source_path/linux-headers/asm-s390 linux-headers/asm - ;; -esac +if test "$linux" = "yes" ; then + includes="-I\$(SRC_PATH)/linux-headers $includes" + mkdir -p linux-headers + case "$cpu" in + i386|x86_64) + symlink $source_path/linux-headers/asm-x86 linux-headers/asm + ;; + ppcemb|ppc|ppc64) + symlink $source_path/linux-headers/asm-powerpc linux-headers/asm + ;; + s390x) + symlink $source_path/linux-headers/asm-s390 linux-headers/asm + ;; + esac +fi echo "LDFLAGS+=$ldflags" >> $config_target_mak echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak diff --git a/hw/kvmclock.h b/hw/kvmclock.h index 7a83cbe8f6..252ea13461 100644 --- a/hw/kvmclock.h +++ b/hw/kvmclock.h @@ -11,4 +11,14 @@ * */ +#ifdef CONFIG_KVM + void kvmclock_create(void); + +#else /* CONFIG_KVM */ + +static inline void kvmclock_create(void) +{ +} + +#endif /* !CONFIG_KVM */ diff --git a/target-s390x/op_helper.c b/target-s390x/op_helper.c index 9429698c2c..6a3c1f6cc7 100644 --- a/target-s390x/op_helper.c +++ b/target-s390x/op_helper.c @@ -23,8 +23,10 @@ #include "helpers.h" #include <string.h> #include "kvm.h" -#include <linux/kvm.h> #include "qemu-timer.h" +#ifdef CONFIG_KVM +#include <linux/kvm.h> +#endif /*****************************************************************************/ /* Softmmu support */ @@ -2332,7 +2334,9 @@ static void program_interrupt(CPUState *env, uint32_t code, int ilc) qemu_log("program interrupt at %#" PRIx64 "\n", env->psw.addr); if (kvm_enabled()) { +#ifdef CONFIG_KVM kvm_s390_interrupt(env, KVM_S390_PROGRAM_INT, code); +#endif } else { env->int_pgm_code = code; env->int_pgm_ilc = ilc; |