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 Signed-off-by: Jes Sorensen <jes@xxxxxxx> --- 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(-) Index: kvm-userspace.git/qemu/qemu-kvm-ia64.c =================================================================== --- kvm-userspace.git.orig/qemu/qemu-kvm-ia64.c +++ kvm-userspace.git/qemu/qemu-kvm-ia64.c @@ -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) { } Index: kvm-userspace.git/qemu/target-ia64/cpu.h =================================================================== --- kvm-userspace.git.orig/qemu/target-ia64/cpu.h +++ kvm-userspace.git/qemu/target-ia64/cpu.h @@ -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) Index: kvm-userspace.git/qemu/target-ia64/exec.h =================================================================== --- kvm-userspace.git.orig/qemu/target-ia64/exec.h +++ kvm-userspace.git/qemu/target-ia64/exec.h @@ -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 Index: kvm-userspace.git/qemu/target-ia64/fake-exec.c =================================================================== --- kvm-userspace.git.orig/qemu/target-ia64/fake-exec.c +++ kvm-userspace.git/qemu/target-ia64/fake-exec.c @@ -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" Index: kvm-userspace.git/qemu/target-ia64/firmware.c =================================================================== --- kvm-userspace.git.orig/qemu/target-ia64/firmware.c +++ kvm-userspace.git/qemu/target-ia64/firmware.c @@ -21,6 +21,7 @@ #include <string.h> #include <stdlib.h> +#include <stdio.h> #include <zlib.h> #include <sys/types.h> #include <sys/stat.h>