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 <[EMAIL PROTECTED]>
---
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>