From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jes Sorensen Subject: [patch] fix build breakage of qemu/kvm on ia64 Date: Thu, 02 Oct 2008 17:37:08 +0200 Message-ID: <48E4EAA4.4060305@sgi.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------000505020809090301020709" To: Avi Kivity , kvm-ia64@vger.kernel.org, kvm@vger.kernel.org, "Zhang, Xiantao" Return-path: Received: from relay1.sgi.com ([192.48.171.29]:47511 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753461AbYJBPhM (ORCPT ); Thu, 2 Oct 2008 11:37:12 -0400 Sender: kvm-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------000505020809090301020709 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 --------------000505020809090301020709 Content-Type: text/plain; name="0200-qemu-ia64-build-fix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="0200-qemu-ia64-build-fix.patch" 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 --- 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 -#include #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 + #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 #include +#include #include #include #include --------------000505020809090301020709--