From 7aa6a04bb418763697e41852e57b8649c77da2af9491665582a4a848cdb46d3b Mon Sep 17 00:00:00 2001 From: Stephen Shaw Date: Mon, 31 Dec 2012 06:19:04 +0000 Subject: [PATCH] Accepting request 146514 from home:k0da:ppc - Fix ppc build failures (ppc.patch) OBS-URL: https://build.opensuse.org/request/show/146514 OBS-URL: https://build.opensuse.org/package/show/Mono:Factory/mono-core?expand=0&rev=99 --- mono-core.changes | 5 +++++ mono-core.spec | 3 +++ ppc.patch | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 ppc.patch diff --git a/mono-core.changes b/mono-core.changes index fedaa5f..38e8c3a 100644 --- a/mono-core.changes +++ b/mono-core.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Dec 27 17:52:57 UTC 2012 - dvaleev@suse.com + +- Fix ppc build failures (ppc.patch) + ------------------------------------------------------------------- Mon Dec 17 12:34:59 UTC 2012 - adrian@suse.de diff --git a/mono-core.spec b/mono-core.spec index f7b6e04..d8c623b 100644 --- a/mono-core.spec +++ b/mono-core.spec @@ -39,6 +39,8 @@ Patch1: mono-arm-cpuinfo-v5.patch Patch2: mono-arm-cpuinfo-v7.patch # PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch3: mono-arm-vfp.patch +# PATCH-FIX-OPENSUSE ppc.patch dvaleev@suse.com -- fix ppc build failures +Patch4: ppc.patch BuildRequires: bison BuildRequires: fdupes BuildRequires: gcc-c++ @@ -112,6 +114,7 @@ technologies that have been submitted to the ECMA for standardization. %patch2 -p1 %patch3 -p1 %endif +%patch4 -p1 %build # These are only needed if there are patches to the runtime diff --git a/ppc.patch b/ppc.patch new file mode 100644 index 0000000..c6ce90b --- /dev/null +++ b/ppc.patch @@ -0,0 +1,38 @@ +Index: mono-3.0.2/mono/mini/mini.c +=================================================================== +--- mono-3.0.2.orig/mono/mini/mini.c ++++ mono-3.0.2/mono/mini/mini.c +@@ -6240,7 +6240,7 @@ mini_create_ftnptr (MonoDomain *domain, + desc [0] = addr; + desc [1] = NULL; + # elif defined(__ppc64__) || defined(__powerpc64__) +- gpointer *desc; ++ //gpointer *desc; + + desc = mono_domain_alloc0 (domain, 3 * sizeof (gpointer)); + +Index: mono-3.0.2/mono/mini/mini-ppc.h +=================================================================== +--- mono-3.0.2.orig/mono/mini/mini-ppc.h ++++ mono-3.0.2/mono/mini/mini-ppc.h +@@ -96,6 +96,7 @@ typedef struct MonoCompileArch { + #define MONO_ARCH_EMULATE_FREM 1 + #define MONO_ARCH_BIGMUL_INTRINS 1 + #define MONO_ARCH_HAVE_ATOMIC_CAS 1 ++#define MONO_ARCH_GC_MAPS_SUPPORTED 1 + + /* Parameters used by the register allocator */ + #define MONO_ARCH_CALLEE_REGS ((0xff << ppc_r3) | (1 << ppc_r11) | (1 << ppc_r12)) +Index: mono-3.0.2/mono/mini/mini-gc.c +=================================================================== +--- mono-3.0.2.orig/mono/mini/mini-gc.c ++++ mono-3.0.2/mono/mini/mini-gc.c +@@ -438,6 +438,8 @@ static int callee_saved_regs [] = { X86_ + static int callee_saved_regs [] = { ARMREG_V1, ARMREG_V2, ARMREG_V3, ARMREG_V4, ARMREG_V5, ARMREG_V7, ARMREG_FP }; + #elif defined(TARGET_S390X) + static int callee_saved_regs [] = { s390_r6, s390_r7, s390_r8, s390_r9, s390_r10, s390_r11, s390_r12, s390_r13, s390_r14 }; ++#elif defined(TARGET_POWERPC) ++static int callee_saved_regs [] = { ppc_r6, ppc_r7, ppc_r8, ppc_r9, ppc_r10, ppc_r11, ppc_r12, ppc_r13, ppc_r14 }; + #endif + + static guint32