From 8ec9fd6df253413cd0d2a07202e31c86d22e8f6d Mon Sep 17 00:00:00 2001
From: Raymund Will <rw@iridium.suse.de>
Date: Thu, 4 Sep 2008 11:14:59 +0200
Subject: [PATCH] KVM-ia64 build fix for SuSE Linux

---
 qemu/Makefile.target   |    6 ++++--
 qemu/ia64.ld           |    2 +-
 qemu/target-ia64/cpu.h |    2 +-
 3 files changed, 6 insertions(+), 4 deletions(-)

Index: kvm-74/qemu/Makefile.target
===================================================================
--- kvm-74.orig/qemu/Makefile.target
+++ kvm-74/qemu/Makefile.target
@@ -150,8 +150,10 @@ BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)
 endif
 
 ifeq ($(ARCH),ia64)
-CFLAGS+=-mno-sdata
-OP_CFLAGS+=-mno-sdata
+#CFLAGS+=-mno-sdata
+#OP_CFLAGS+=-mno-sdata
+CFLAGS+=-msdata
+OP_CFLAGS+=-msdata
 endif
 
 ifeq ($(ARCH),arm)
Index: kvm-74/qemu/ia64.ld
===================================================================
--- kvm-74.orig/qemu/ia64.ld
+++ kvm-74/qemu/ia64.ld
@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf64-ia64-little", "elf6
 	      "elf64-ia64-little")
 OUTPUT_ARCH(ia64)
 ENTRY(_start)
-SEARCH_DIR("/usr/ia64-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
+SEARCH_DIR("/usr/ia64-suse-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
 /* Do we need any of these for elf?
    __DYNAMIC = 0;    */
 SECTIONS
Index: kvm-74/qemu/target-ia64/cpu.h
===================================================================
--- kvm-74.orig/qemu/target-ia64/cpu.h
+++ kvm-74/qemu/target-ia64/cpu.h
@@ -30,7 +30,7 @@
 
 #define TARGET_LONG_BITS 64
 
-#define TARGET_PAGE_BITS 16
+#define TARGET_PAGE_BITS 14
 
 #define ELF_MACHINE	EM_IA_64
 
Index: kvm-74/kernel/ia64/Makefile.pre
===================================================================
--- kvm-74.orig/kernel/ia64/Makefile.pre
+++ kvm-74/kernel/ia64/Makefile.pre
@@ -1,6 +1,6 @@
 prerequisite: asm-offsets.h ia64/memset.S ia64/memcpy.S
-	cp -f $(KERNELDIR)/arch/ia64/lib/memcpy.S ia64/memcpy.S
-	cp -f $(KERNELDIR)/arch/ia64/lib/memset.S ia64/memset.S
+	cp -f /usr/src/linux/arch/ia64/lib/memcpy.S ia64/memcpy.S
+	cp -f /usr/src/linux/arch/ia64/lib/memset.S ia64/memset.S
 	cmp -s asm-offset.h ia64/asm-offset.h || mv -f asm-offsets.* ia64/
 
 asm-offsets.h: asm-offsets.s
@@ -20,4 +20,4 @@ asm-offsets.h: asm-offsets.s
 	  echo "#endif") <$< >$@
 
 asm-offsets.s: ia64/asm-offsets.c
-	gcc -S -D__KERNEL__ -I$(KERNELDIR)/include -I$(KERNELDIR)/arch/ia64/include -I./include ia64/asm-offsets.c
+	gcc -S -D__KERNEL__ -I$(KERNELDIR)/include -I$(KERNELDIR)/arch/ia64/include -Iinclude2 -I/usr/src/linux/include -I/usr/src/linux/arch/ia64/include -I./include ia64/asm-offsets.c
Index: kvm-74/kernel/include/asm-ia64/nr-irqs.h
===================================================================
--- /dev/null
+++ kvm-74/kernel/include/asm-ia64/nr-irqs.h
@@ -0,0 +1,12 @@
+#ifndef __ASM_NR_IRQS_H__
+#define __ASM_NR_IRQS_H__
+/*
+ * DO NOT MODIFY.
+ *
+ * This file was generated by Kbuild
+ *
+ */
+
+#define NR_IRQS 1024 /* sizeof (union paravirt_nr_irqs_max)	// */
+
+#endif
