[patch] fix build breakage of qemu/kvm on ia64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>

[Index of Archives]     [Linux KVM Devel]     [Linux Virtualization]     [Big List of Linux Books]     [Linux SCSI]     [Yosemite Forum]

  Powered by Linux