mirror of https://gitee.com/openkylin/qemu.git
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>
This commit is contained in:
parent
744d364418
commit
af2be20777
|
@ -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
|
||||
|
|
|
@ -11,4 +11,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_KVM
|
||||
|
||||
void kvmclock_create(void);
|
||||
|
||||
#else /* CONFIG_KVM */
|
||||
|
||||
static inline void kvmclock_create(void)
|
||||
{
|
||||
}
|
||||
|
||||
#endif /* !CONFIG_KVM */
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue