fix build breakage of qemu/kvm on ia64
PATCH 1/1 fix build breakage of qemu/kvm on ia64
Hi,
This one cleans up some problems with how the ia64 headers declared 'env' and also included stdio.h in cpu.h.
It builds and still boots kvm on my test system :-)
Cheers,
Jes
Fix build problem with latest kvm-userspace.git on ia64:
- Declare 'env' properly as on all other architectures, instead of having a local decleration in every object.
- Introduce kvm_arch_try_push_nmi()
- Remove and cleanup fallout from having stdio.h included in cpu.h
--- qemu/qemu-kvm-ia64.c | 5 +++++ qemu/target-ia64/cpu.h | 6 +----- qemu/target-ia64/exec.h | 10 ++++++++++ qemu/target-ia64/fake-exec.c | 2 ++ qemu/target-ia64/firmware.c | 1 + 5 files changed, 19 insertions(+), 5 deletions(-)
qemu/qemu-kvm-ia64.c +5 -0
@@ -57,6 +57,11 @@return 1 ; } +int kvm_arch_try_push_nmi (void *opaque) +{ +return 1 ; +} +void kvm_arch_update_regs_for_sipi (CPUState *env) { }
qemu/target-ia64/cpu.h +1 -5
@@ -26,7 +26,6 @@#include "ia64intrin.h" #include <string.h> -#include <stdio.h> #define TARGET_LONG_BITS 64
@@ -52,12 +51,9 @@#define cpu_init cpu_ia64_init#define cpu_signal_handler cpu_ia64_signal_handler -struct CPUIA64State *env; +extern struct CPUIA64State *env;int cpu_get_pic_interrupt (CPUIA64State *s);int cpu_exec (CPUState *env1); -void cpu_dump_state (CPUState *env,FILE *f, -int (*cpu_fprintf)(FILE *f,const char *fmt, ...), -int flags);CPUState *cpu_ia64_init (const char * cpu_model);static inline int cpu_mmu_index (CPUState *env)
qemu/target-ia64/exec.h +10 -0
@@ -18,13 +18,21 @@* License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#ifndef __IA64_H__ +#define __IA64_H__ +//#include "dyngen-exec.h" +#include "config.h" + +#include "dyngen-exec.h" #include "cpu.h" #include "exec-all.h" #define tcg_qemu_tb_exec (tb_ptr) 0 +register struct CPUIA64State *env asm(AREG0); +static inline void env_to_regs (void ) { }
@@ -45,3 +53,5 @@return 0 ; return EXCP_HALTED; } + +#endif
qemu/target-ia64/fake-exec.c +2 -0
@@ -14,6 +14,8 @@* This work is licensed under the GNU GPL licence version 2 or later. * */ +#include <stdio.h> +#include "cpu.h" #include "exec-all.h"
qemu/target-ia64/firmware.c +1 -0
@@ -21,6 +21,7 @@#include <string.h> #include <stdlib.h> +#include <stdio.h> #include <zlib.h> #include <sys/types.h> #include <sys/stat.h>
Thanks Jes!
-----Original Message-----
From: Jes Sorensen [mailto:[email protected]]
Sent: Thursday, October 02, 2008 11:37 PM
To: Avi Kivity; [email protected]; [email protected]; Zhang, Xiantao
Subject: [patch] fix build breakage of qemu/kvm on ia64
Hi,
This one cleans up some problems with how the ia64 headers declared 'env' and also included stdio.h in cpu.h.
It builds and still boots kvm on my test system :-)
Cheers,
Jes
Avi Kivity
AppliedQuoted 6 lines · Jes Sorensen
Hi,
This one cleans up some problems with how the ia64 headers declared 'env' and also included
stdio.hincpu.h.It builds and still boots kvm on my test system :-)
Applied, thanks.
Signature · 1 line
error compiling committee.c: too many arguments to function