diff --git a/mono-3.2.8.tar.bz2 b/mono-3.2.8.tar.bz2 deleted file mode 100644 index 1f2863b..0000000 --- a/mono-3.2.8.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fdb48cad26149288dcb99a3d9b4ec89735706000242c50bdc21ce657af201a40 -size 77515552 diff --git a/mono-3.4.0.tar.bz2 b/mono-3.4.0.tar.bz2 new file mode 100644 index 0000000..8ecb30f --- /dev/null +++ b/mono-3.4.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9d509d82a9d340f216a7172d4884a772b22b16555386873b874f92e2d38fe37 +size 83010187 diff --git a/mono-core-parallel-build.diff b/mono-core-parallel-build.diff index f021230..6337447 100644 --- a/mono-core-parallel-build.diff +++ b/mono-core-parallel-build.diff @@ -1,6 +1,8 @@ ---- a/mcs/Makefile -+++ b/mcs/Makefile -@@ -82,7 +82,7 @@ +Index: mono-3.4.0/mcs/Makefile +=================================================================== +--- mono-3.4.0.orig/mcs/Makefile ++++ mono-3.4.0/mcs/Makefile +@@ -83,7 +83,7 @@ all-local $(STD_TARGETS:=-local): @: dir-check: diff --git a/mono-core-ppc64le-callreg.diff b/mono-core-ppc64le-callreg.diff index 463bd27..cfaaf70 100644 --- a/mono-core-ppc64le-callreg.diff +++ b/mono-core-ppc64le-callreg.diff @@ -10,10 +10,11 @@ with one destination register we also need to make some additional calls use r12. We probably should convert all calls that currently use r0 to use r12 if no other conflicts arise but this is enough to build. -diff -u mono-3.2.3/mono/mini/exceptions-ppc.c mono-3.2.3/mono/mini/exceptions-ppc.c ---- mono-3.2.3/mono/mini/exceptions-ppc.c 2014-01-04 19:04:35.000000000 +0000 -+++ mono-3.2.3/mono/mini/exceptions-ppc.c 2014-01-04 19:32:51.000000000 +0000 -@@ -395,8 +395,8 @@ +Index: mono-3.4.0/mono/mini/exceptions-ppc.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/exceptions-ppc.c ++++ mono-3.4.0/mono/mini/exceptions-ppc.c +@@ -391,8 +391,8 @@ mono_arch_get_throw_exception_generic (i ppc_bcctrl (code, PPC_BR_ALWAYS, 0); } else { ppc_load (code, ppc_r3, (gulong)mono_defaults.corlib); @@ -24,7 +25,7 @@ diff -u mono-3.2.3/mono/mini/exceptions-ppc.c mono-3.2.3/mono/mini/exceptions-pp ppc_bcctrl (code, PPC_BR_ALWAYS, 0); } } -@@ -430,8 +430,8 @@ +@@ -426,8 +426,8 @@ mono_arch_get_throw_exception_generic (i ppc_mtctr (code, ppc_r12); ppc_bcctrl (code, PPC_BR_ALWAYS, 0); } else { @@ -35,10 +36,11 @@ diff -u mono-3.2.3/mono/mini/exceptions-ppc.c mono-3.2.3/mono/mini/exceptions-pp ppc_bcctrl (code, PPC_BR_ALWAYS, 0); } /* we should never reach this breakpoint */ -diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ---- mono-3.2.3/mono/mini/mini-ppc.c 2014-01-04 19:16:23.000000000 +0000 -+++ mono-3.2.3/mono/mini/mini-ppc.c 2014-01-04 19:58:06.000000000 +0000 -@@ -1783,8 +1783,8 @@ +Index: mono-3.4.0/mono/mini/mini-ppc.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini-ppc.c ++++ mono-3.4.0/mono/mini/mini-ppc.c +@@ -1782,8 +1782,8 @@ mono_arch_instrument_prolog (MonoCompile ppc_load_ptr (code, ppc_r3, cfg->method); ppc_li (code, ppc_r4, 0); /* NULL ebp for now */ @@ -49,7 +51,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ppc_blrl (code); return code; } -@@ -1881,8 +1881,8 @@ +@@ -1880,8 +1880,8 @@ mono_arch_instrument_epilog_full (MonoCo } ppc_load_ptr (code, ppc_r3, cfg->method); @@ -60,7 +62,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ppc_blrl (code); switch (save_mode) { -@@ -2923,7 +2923,7 @@ +@@ -2922,7 +2922,7 @@ ppc_patch_full (guchar *code, const guch if (!is_fd) { guint8 *buf = (guint8*)&seq [5]; @@ -69,7 +71,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ppc_nop (buf); } } else { -@@ -2936,7 +2936,7 @@ +@@ -2935,7 +2935,7 @@ ppc_patch_full (guchar *code, const guch /* FIXME: we're assuming we're using r12 here */ ppc_load_ptr_sequence (code, ppc_r12, target); #else @@ -78,7 +80,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c #endif mono_arch_flush_icache ((guint8*)seq, 28); #else -@@ -2952,8 +2952,8 @@ +@@ -2951,8 +2951,8 @@ ppc_patch_full (guchar *code, const guch g_assert ((seq [2] >> 26) == 31); g_assert (seq [3] == 0x4e800021 || seq [3] == 0x4e800020 || seq [3] == 0x4e800420); /* FIXME: make this thread safe */ @@ -89,7 +91,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c mono_arch_flush_icache (code - 8, 8); #endif } else { -@@ -3371,8 +3371,8 @@ +@@ -3370,8 +3370,8 @@ mono_arch_output_basic_block (MonoCompil mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD, (gpointer)"mono_break"); if ((FORCE_INDIR_CALL || cfg->method->dynamic) && !cfg->compile_aot) { @@ -100,7 +102,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ppc_blrl (code); } else { ppc_bl (code, 0); -@@ -3819,8 +3819,8 @@ +@@ -3818,8 +3818,8 @@ mono_arch_output_basic_block (MonoCompil else mono_add_patch_info (cfg, offset, MONO_PATCH_INFO_ABS, call->fptr); if ((FORCE_INDIR_CALL || cfg->method->dynamic) && !cfg->compile_aot) { @@ -111,7 +113,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ppc_blrl (code); } else { ppc_bl (code, 0); -@@ -3913,8 +3913,8 @@ +@@ -3912,8 +3912,8 @@ mono_arch_output_basic_block (MonoCompil mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD, (gpointer)"mono_arch_throw_exception"); if ((FORCE_INDIR_CALL || cfg->method->dynamic) && !cfg->compile_aot) { @@ -122,7 +124,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ppc_blrl (code); } else { ppc_bl (code, 0); -@@ -3927,8 +3927,8 @@ +@@ -3926,8 +3926,8 @@ mono_arch_output_basic_block (MonoCompil mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD, (gpointer)"mono_arch_rethrow_exception"); if ((FORCE_INDIR_CALL || cfg->method->dynamic) && !cfg->compile_aot) { @@ -133,7 +135,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ppc_blrl (code); } else { ppc_bl (code, 0); -@@ -5070,8 +5070,8 @@ +@@ -5070,8 +5070,8 @@ mono_arch_emit_prolog (MonoCompile *cfg) mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD, (gpointer)"mono_get_lmf_addr"); if ((FORCE_INDIR_CALL || cfg->method->dynamic) && !cfg->compile_aot) { @@ -144,7 +146,7 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ppc_blrl (code); } else { ppc_bl (code, 0); -@@ -5380,8 +5380,8 @@ +@@ -5380,8 +5380,8 @@ mono_arch_emit_exceptions (MonoCompile * patch_info->data.name = "mono_arch_throw_corlib_exception"; patch_info->ip.i = code - cfg->native_code; if (FORCE_INDIR_CALL || cfg->method->dynamic) { @@ -155,10 +157,11 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ppc_bcctr (code, PPC_BR_ALWAYS, 0); } else { ppc_bl (code, 0); -diff -u mono-3.2.3/mono/mini/mini-ppc.h mono-3.2.3/mono/mini/mini-ppc.h ---- mono-3.2.3/mono/mini/mini-ppc.h 2014-01-04 19:04:36.000000000 +0000 -+++ mono-3.2.3/mono/mini/mini-ppc.h 2014-01-04 19:27:07.000000000 +0000 -@@ -172,6 +172,8 @@ +Index: mono-3.4.0/mono/mini/mini-ppc.h +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini-ppc.h ++++ mono-3.4.0/mono/mini/mini-ppc.h +@@ -172,6 +172,8 @@ typedef struct MonoCompileArch { #define PPC_FIRST_FPARG_REG ppc_f1 #endif @@ -167,10 +170,11 @@ diff -u mono-3.2.3/mono/mini/mini-ppc.h mono-3.2.3/mono/mini/mini-ppc.h #if defined(HAVE_WORKING_SIGALTSTACK) && !defined(__APPLE__) #define MONO_ARCH_SIGSEGV_ON_ALTSTACK 1 #define MONO_ARCH_SIGNAL_STACK_SIZE (12 * 1024) -diff -u mono-3.2.3/mono/mini/tramp-ppc.c mono-3.2.3/mono/mini/tramp-ppc.c ---- mono-3.2.3/mono/mini/tramp-ppc.c 2014-01-04 19:16:53.000000000 +0000 -+++ mono-3.2.3/mono/mini/tramp-ppc.c 2014-01-04 19:35:16.000000000 +0000 -@@ -309,8 +309,8 @@ +Index: mono-3.4.0/mono/mini/tramp-ppc.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/tramp-ppc.c ++++ mono-3.4.0/mono/mini/tramp-ppc.c +@@ -306,8 +306,8 @@ mono_arch_create_generic_trampoline (Mon ppc_mtlr (code, ppc_r12); ppc_blrl (code); } else { @@ -181,7 +185,7 @@ diff -u mono-3.2.3/mono/mini/tramp-ppc.c mono-3.2.3/mono/mini/tramp-ppc.c ppc_blrl (code); } /* we build the MonoLMF structure on the stack - see mini-ppc.h -@@ -371,8 +371,8 @@ +@@ -368,8 +368,8 @@ mono_arch_create_generic_trampoline (Mon ppc_blrl (code); } else { tramp_handler = mono_get_trampoline_func (tramp_type); diff --git a/mono-core-ppc64le-swr11r12.diff b/mono-core-ppc64le-swr11r12.diff index 0eff175..824ee35 100644 --- a/mono-core-ppc64le-swr11r12.diff +++ b/mono-core-ppc64le-swr11r12.diff @@ -7,9 +7,10 @@ to pass around values to functions outside the normal argument registers (ugh!), so there's a conflict. This mechanical (by sed) patch simply switches ppc_r11 and ppc_r12 everywhere, r11 doesn't have any special use in the ABI. -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/arch/ppc/ppc-codegen.h mono-3.2.3/mono/arch/ppc/ppc-codegen.h ---- mono-3.2.3.orig/mono/arch/ppc/ppc-codegen.h 2014-01-04 04:16:29.000000000 +0000 -+++ mono-3.2.3/mono/arch/ppc/ppc-codegen.h 2014-01-04 19:04:29.000000000 +0000 +Index: mono-3.4.0/mono/arch/ppc/ppc-codegen.h +=================================================================== +--- mono-3.4.0.orig/mono/arch/ppc/ppc-codegen.h ++++ mono-3.4.0/mono/arch/ppc/ppc-codegen.h @@ -810,9 +810,9 @@ my and Ximian's copyright to this code. #define ppc_load_func(c,D,V) ppc_load_sequence ((c), (D), (V)) #else @@ -23,10 +24,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/arch/ppc/pp } G_STMT_END #endif -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/aot-compiler.c mono-3.2.3/mono/mini/aot-compiler.c ---- mono-3.2.3.orig/mono/mini/aot-compiler.c 2013-09-13 22:38:21.000000000 +0000 -+++ mono-3.2.3/mono/mini/aot-compiler.c 2014-01-04 19:17:32.000000000 +0000 -@@ -1830,14 +1830,14 @@ arch_emit_imt_thunk (MonoAotCompile *acf +Index: mono-3.4.0/mono/mini/aot-compiler.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/aot-compiler.c ++++ mono-3.4.0/mono/mini/aot-compiler.c +@@ -1842,14 +1842,14 @@ arch_emit_imt_thunk (MonoAotCompile *acf code = buf; /* Load the mscorlib got address */ @@ -44,7 +46,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/aot-co ppc_cmp (code, 0, sizeof (gpointer) == 8 ? 1 : 0, ppc_r0, MONO_ARCH_IMT_REG); labels [2] = code; ppc_bc (code, PPC_BR_TRUE, PPC_BR_EQ, 0); -@@ -1848,18 +1848,18 @@ arch_emit_imt_thunk (MonoAotCompile *acf +@@ -1860,18 +1860,18 @@ arch_emit_imt_thunk (MonoAotCompile *acf ppc_bc (code, PPC_BR_TRUE, PPC_BR_EQ, 0); /* Loop footer */ @@ -68,10 +70,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/aot-co ppc_bcctr (code, PPC_BR_ALWAYS, 0); /* Fail */ -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/exceptions-ppc.c mono-3.2.3/mono/mini/exceptions-ppc.c ---- mono-3.2.3.orig/mono/mini/exceptions-ppc.c 2013-09-13 22:22:23.000000000 +0000 -+++ mono-3.2.3/mono/mini/exceptions-ppc.c 2014-01-04 19:04:35.000000000 +0000 -@@ -385,13 +385,13 @@ mono_arch_get_throw_exception_generic (i +Index: mono-3.4.0/mono/mini/exceptions-ppc.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/exceptions-ppc.c ++++ mono-3.4.0/mono/mini/exceptions-ppc.c +@@ -381,13 +381,13 @@ mono_arch_get_throw_exception_generic (i if (aot) { code = mono_arch_emit_load_aotconst (start, code, &ji, MONO_PATCH_INFO_IMAGE, mono_defaults.corlib); @@ -89,7 +92,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/except ppc_bcctrl (code, PPC_BR_ALWAYS, 0); } else { ppc_load (code, ppc_r3, (gulong)mono_defaults.corlib); -@@ -424,10 +424,10 @@ mono_arch_get_throw_exception_generic (i +@@ -420,10 +420,10 @@ mono_arch_get_throw_exception_generic (i code = mono_arch_emit_load_got_addr (start, code, NULL, &ji); code = mono_arch_emit_load_aotconst (start, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_ppc_throw_exception"); #ifdef PPC_USES_FUNCTION_DESCRIPTOR @@ -103,10 +106,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/except ppc_bcctrl (code, PPC_BR_ALWAYS, 0); } else { ppc_load_func (code, ppc_r0, mono_ppc_throw_exception); -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-mips.c mono-3.2.3/mono/mini/mini-mips.c ---- mono-3.2.3.orig/mono/mini/mini-mips.c 2013-09-13 22:22:14.000000000 +0000 -+++ mono-3.2.3/mono/mini/mini-mips.c 2014-01-04 19:04:36.000000000 +0000 -@@ -3299,8 +3299,8 @@ emit_reserve_param_area (MonoCompile *cf +Index: mono-3.4.0/mono/mini/mini-mips.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini-mips.c ++++ mono-3.4.0/mono/mini/mini-mips.c +@@ -3298,8 +3298,8 @@ emit_reserve_param_area (MonoCompile *cf if (ppc_is_imm16 (-size)) { ppc_stwu (code, ppc_r0, -size, ppc_sp); } else { @@ -117,7 +121,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-m } #endif return code; -@@ -3321,8 +3321,8 @@ emit_unreserve_param_area (MonoCompile * +@@ -3320,8 +3320,8 @@ emit_unreserve_param_area (MonoCompile * if (ppc_is_imm16 (size)) { ppc_stwu (code, ppc_r0, size, ppc_sp); } else { @@ -128,7 +132,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-m } #endif return code; -@@ -3713,8 +3713,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -3712,8 +3712,8 @@ mono_arch_output_basic_block (MonoCompil case OP_DIV_IMM: g_assert_not_reached (); #if 0 @@ -139,10 +143,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-m ppc_mfspr (code, ppc_r0, ppc_xer); ppc_andisd (code, ppc_r0, ppc_r0, (1<<14)); /* FIXME: use OverflowException for 0x80000000/-1 */ -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ---- mono-3.2.3.orig/mono/mini/mini-ppc.c 2014-01-04 04:16:29.000000000 +0000 -+++ mono-3.2.3/mono/mini/mini-ppc.c 2014-01-04 19:16:23.000000000 +0000 -@@ -104,11 +104,11 @@ offsets_from_pthread_key (guint32 key, i +Index: mono-3.4.0/mono/mini/mini-ppc.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini-ppc.c ++++ mono-3.4.0/mono/mini/mini-ppc.c +@@ -103,11 +103,11 @@ offsets_from_pthread_key (guint32 key, i /* FIXME: ensure the sc call preserves all but r3 */ #define emit_darwing4_tls(code,dreg,key) do {\ int off1 = 0x48 + key * sizeof (gpointer); \ @@ -156,7 +161,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } while (0); #ifdef PPC_THREAD_PTR_REG -@@ -119,8 +119,8 @@ offsets_from_pthread_key (guint32 key, i +@@ -118,8 +118,8 @@ offsets_from_pthread_key (guint32 key, i ppc_ldptr ((code), (dreg), off1, PPC_THREAD_PTR_REG); \ } else { \ int off3 = (off2 + 1) > 1; \ @@ -167,7 +172,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } \ } while (0); #else -@@ -191,29 +191,29 @@ emit_memcpy (guint8 *code, int size, int +@@ -190,29 +190,29 @@ emit_memcpy (guint8 *code, int size, int ppc_load (code, ppc_r0, shifted); ppc_mtctr (code, ppc_r0); @@ -206,7 +211,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p size -= 16; soffset += 16; doffset += 16; -@@ -227,12 +227,12 @@ emit_memcpy (guint8 *code, int size, int +@@ -226,12 +226,12 @@ emit_memcpy (guint8 *code, int size, int doffset += 8; } #else @@ -222,7 +227,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p size -= 8; soffset += 8; doffset += 8; -@@ -738,7 +738,7 @@ mono_arch_get_global_int_regs (MonoCompi +@@ -737,7 +737,7 @@ mono_arch_get_global_int_regs (MonoCompi for (i = 14; i < top; ++i) { /* * Reserve r29 for holding the vtable address for virtual calls in AOT mode, @@ -231,7 +236,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p */ if (!(cfg->compile_aot && i == 29)) regs = g_list_prepend (regs, GUINT_TO_POINTER (i)); -@@ -2923,7 +2923,7 @@ ppc_patch_full (guchar *code, const guch +@@ -2922,7 +2922,7 @@ ppc_patch_full (guchar *code, const guch if (!is_fd) { guint8 *buf = (guint8*)&seq [5]; @@ -240,7 +245,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p ppc_nop (buf); } } else { -@@ -2933,8 +2933,8 @@ ppc_patch_full (guchar *code, const guch +@@ -2932,8 +2932,8 @@ ppc_patch_full (guchar *code, const guch /* FIXME: make this thread safe */ #ifdef PPC_USES_FUNCTION_DESCRIPTOR @@ -251,7 +256,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p #else ppc_load_ptr_sequence (code, ppc_r0, target); #endif -@@ -3010,8 +3010,8 @@ emit_reserve_param_area (MonoCompile *cf +@@ -3009,8 +3009,8 @@ emit_reserve_param_area (MonoCompile *cf if (ppc_is_imm16 (-size)) { ppc_stptr_update (code, ppc_r0, -size, ppc_sp); } else { @@ -262,7 +267,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } return code; -@@ -3032,8 +3032,8 @@ emit_unreserve_param_area (MonoCompile * +@@ -3031,8 +3031,8 @@ emit_unreserve_param_area (MonoCompile * if (ppc_is_imm16 (size)) { ppc_stptr_update (code, ppc_r0, size, ppc_sp); } else { @@ -273,7 +278,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } return code; -@@ -3107,8 +3107,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -3106,8 +3106,8 @@ mono_arch_output_basic_block (MonoCompil * a breakpoint is hit will step to the next IL offset. */ if (ins->flags & MONO_INST_SINGLE_STEP_LOC) { @@ -284,7 +289,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } mono_add_seq_point (cfg, bb, ins, code - cfg->native_code); -@@ -3142,8 +3142,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -3141,8 +3141,8 @@ mono_arch_output_basic_block (MonoCompil ppc_stb (code, ins->sreg1, ins->inst_offset, ins->inst_destbasereg); } else { if (ppc_is_imm32 (ins->inst_offset)) { @@ -295,7 +300,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } else { ppc_load (code, ppc_r0, ins->inst_offset); ppc_stbx (code, ins->sreg1, ins->inst_destbasereg, ppc_r0); -@@ -3155,8 +3155,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -3154,8 +3154,8 @@ mono_arch_output_basic_block (MonoCompil ppc_sth (code, ins->sreg1, ins->inst_offset, ins->inst_destbasereg); } else { if (ppc_is_imm32 (ins->inst_offset)) { @@ -306,7 +311,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } else { ppc_load (code, ppc_r0, ins->inst_offset); ppc_sthx (code, ins->sreg1, ins->inst_destbasereg, ppc_r0); -@@ -3168,8 +3168,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -3167,8 +3167,8 @@ mono_arch_output_basic_block (MonoCompil ppc_stptr (code, ins->sreg1, ins->inst_offset, ins->inst_destbasereg); } else { if (ppc_is_imm32 (ins->inst_offset)) { @@ -317,7 +322,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } else { ppc_load (code, ppc_r0, ins->inst_offset); ppc_stptr_indexed (code, ins->sreg1, ins->inst_destbasereg, ppc_r0); -@@ -3725,7 +3725,7 @@ mono_arch_output_basic_block (MonoCompil +@@ -3724,7 +3724,7 @@ mono_arch_output_basic_block (MonoCompil */ g_assert (!cfg->method->save_lmf); /* @@ -326,7 +331,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p * we're leaving the method. */ if (1 || cfg->flags & MONO_CFG_HAS_CALLS) { -@@ -3733,26 +3733,26 @@ mono_arch_output_basic_block (MonoCompil +@@ -3732,26 +3732,26 @@ mono_arch_output_basic_block (MonoCompil if (ppc_is_imm16 (ret_offset)) { ppc_ldptr (code, ppc_r0, ret_offset, cfg->frame_reg); } else { @@ -359,7 +364,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } } } else { -@@ -3761,27 +3761,27 @@ mono_arch_output_basic_block (MonoCompil +@@ -3760,27 +3760,27 @@ mono_arch_output_basic_block (MonoCompil /* Copy arguments on the stack to our argument area */ if (call->stack_usage) { @@ -395,7 +400,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p #else ppc_ldptr_indexed (code, ppc_r0, ppc_r30, ppc_r0); #endif -@@ -3853,7 +3853,7 @@ mono_arch_output_basic_block (MonoCompil +@@ -3852,7 +3852,7 @@ mono_arch_output_basic_block (MonoCompil case OP_VCALL2_MEMBASE: case OP_VOIDCALL_MEMBASE: case OP_CALL_MEMBASE: @@ -404,7 +409,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p /* The trampolines clobber this */ ppc_mr (code, ppc_r29, ins->sreg1); ppc_ldptr (code, ppc_r0, ins->inst_offset, ppc_r29); -@@ -3871,9 +3871,9 @@ mono_arch_output_basic_block (MonoCompil +@@ -3870,9 +3870,9 @@ mono_arch_output_basic_block (MonoCompil int alloca_waste = PPC_STACK_PARAM_OFFSET + cfg->param_area + 31; int area_offset = alloca_waste; area_offset &= ~31; @@ -416,7 +421,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p /* use ctr to store the number of words to 0 if needed */ if (ins->flags & MONO_INST_INIT) { /* we zero 4 bytes at a time: -@@ -3886,8 +3886,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -3885,8 +3885,8 @@ mono_arch_output_basic_block (MonoCompil ppc_mtctr (code, ppc_r0); } ppc_ldptr (code, ppc_r0, 0, ppc_sp); @@ -427,7 +432,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p /* FIXME: make this loop work in 8 byte increments on PPC64 */ -@@ -3897,9 +3897,9 @@ mono_arch_output_basic_block (MonoCompil +@@ -3896,9 +3896,9 @@ mono_arch_output_basic_block (MonoCompil * run at least once */ ppc_addi (code, ins->dreg, ppc_sp, (area_offset - 8)); @@ -439,7 +444,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p zero_loop_jump = code; ppc_bc (code, PPC_BR_DEC_CTR_NONZERO, 0, 0); ppc_patch (zero_loop_jump, zero_loop_start); -@@ -3943,8 +3943,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -3942,8 +3942,8 @@ mono_arch_output_basic_block (MonoCompil if (ppc_is_imm16 (spvar->inst_offset)) { ppc_stptr (code, ppc_r0, spvar->inst_offset, spvar->inst_basereg); } else { @@ -450,7 +455,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } break; } -@@ -3957,8 +3957,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -3956,8 +3956,8 @@ mono_arch_output_basic_block (MonoCompil if (ppc_is_imm16 (spvar->inst_offset)) { ppc_ldptr (code, ppc_r0, spvar->inst_offset, spvar->inst_basereg); } else { @@ -461,7 +466,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } ppc_mtlr (code, ppc_r0); ppc_blr (code); -@@ -4064,11 +4064,11 @@ mono_arch_output_basic_block (MonoCompil +@@ -4063,11 +4063,11 @@ mono_arch_output_basic_block (MonoCompil /* FIXME: Optimize this */ ppc_bl (code, 1); @@ -475,7 +480,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p break; case OP_R4CONST: g_assert_not_reached (); -@@ -4078,8 +4078,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -4077,8 +4077,8 @@ mono_arch_output_basic_block (MonoCompil ppc_stfd (code, ins->sreg1, ins->inst_offset, ins->inst_destbasereg); } else { if (ppc_is_imm32 (ins->inst_offset)) { @@ -486,7 +491,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } else { ppc_load (code, ppc_r0, ins->inst_offset); ppc_stfdx (code, ins->sreg1, ins->inst_destbasereg, ppc_r0); -@@ -4091,8 +4091,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -4090,8 +4090,8 @@ mono_arch_output_basic_block (MonoCompil ppc_lfd (code, ins->dreg, ins->inst_offset, ins->inst_basereg); } else { if (ppc_is_imm32 (ins->inst_offset)) { @@ -497,7 +502,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } else { ppc_load (code, ppc_r0, ins->inst_offset); ppc_lfdx (code, ins->dreg, ins->inst_destbasereg, ppc_r0); -@@ -4105,8 +4105,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -4104,8 +4104,8 @@ mono_arch_output_basic_block (MonoCompil ppc_stfs (code, ins->sreg1, ins->inst_offset, ins->inst_destbasereg); } else { if (ppc_is_imm32 (ins->inst_offset)) { @@ -508,7 +513,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } else { ppc_load (code, ppc_r0, ins->inst_offset); ppc_stfsx (code, ins->sreg1, ins->inst_destbasereg, ppc_r0); -@@ -4118,8 +4118,8 @@ mono_arch_output_basic_block (MonoCompil +@@ -4117,8 +4117,8 @@ mono_arch_output_basic_block (MonoCompil ppc_lfs (code, ins->dreg, ins->inst_offset, ins->inst_basereg); } else { if (ppc_is_imm32 (ins->inst_offset)) { @@ -924,7 +929,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } } -@@ -5630,15 +5630,15 @@ mono_arch_build_imt_thunk (MonoVTable *v +@@ -5618,15 +5618,15 @@ mono_arch_build_imt_thunk (MonoVTable *v start = code; /* @@ -944,7 +949,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p for (i = 0; i < count; ++i) { MonoIMTCheckItem *item = imt_entries [i]; -@@ -5654,8 +5654,8 @@ mono_arch_build_imt_thunk (MonoVTable *v +@@ -5642,8 +5642,8 @@ mono_arch_build_imt_thunk (MonoVTable *v if (item->has_target_code) { ppc_load_ptr (code, ppc_r0, item->value.target_code); } else { @@ -955,7 +960,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p } ppc_mtctr (code, ppc_r0); ppc_bcctr (code, PPC_BR_ALWAYS, 0); -@@ -5687,8 +5687,8 @@ mono_arch_build_imt_thunk (MonoVTable *v +@@ -5675,8 +5675,8 @@ mono_arch_build_imt_thunk (MonoVTable *v item->jmp_code = code; ppc_bc (code, PPC_BR_FALSE, PPC_BR_EQ, 0); #endif @@ -966,7 +971,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p ppc_mtctr (code, ppc_r0); ppc_bcctr (code, PPC_BR_ALWAYS, 0); #if ENABLE_WRONG_METHOD_CHECK -@@ -5827,17 +5827,17 @@ mono_arch_emit_load_got_addr (guint8 *st +@@ -5802,17 +5802,17 @@ mono_arch_emit_load_got_addr (guint8 *st * Emit code to load the contents of the GOT slot identified by TRAMP_TYPE and * TARGET from the mscorlib GOT in full-aot code. * On PPC, the GOT address is assumed to be in r30, and the result is placed into @@ -987,7 +992,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p return code; } -@@ -5860,8 +5860,8 @@ mono_arch_set_breakpoint (MonoJitInfo *j +@@ -5835,8 +5835,8 @@ mono_arch_set_breakpoint (MonoJitInfo *j guint8 *code = ip; guint8 *orig_code = code; @@ -998,9 +1003,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p g_assert (code - orig_code == BREAKPOINT_SIZE); -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-ppc.h mono-3.2.3/mono/mini/mini-ppc.h ---- mono-3.2.3.orig/mono/mini/mini-ppc.h 2014-01-04 04:16:29.000000000 +0000 -+++ mono-3.2.3/mono/mini/mini-ppc.h 2014-01-04 19:04:36.000000000 +0000 +Index: mono-3.4.0/mono/mini/mini-ppc.h +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini-ppc.h ++++ mono-3.4.0/mono/mini/mini-ppc.h @@ -105,7 +105,7 @@ typedef struct MonoCompileArch { #define MONO_ARCH_GC_MAPS_SUPPORTED 1 @@ -1022,10 +1028,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p #define MONO_ARCH_RGCTX_REG MONO_ARCH_IMT_REG #define MONO_ARCH_NO_IOV_CHECK 1 -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp-ppc.c mono-3.2.3/mono/mini/tramp-ppc.c ---- mono-3.2.3.orig/mono/mini/tramp-ppc.c 2013-09-13 22:22:19.000000000 +0000 -+++ mono-3.2.3/mono/mini/tramp-ppc.c 2014-01-04 19:16:53.000000000 +0000 -@@ -303,10 +303,10 @@ mono_arch_create_generic_trampoline (Mon +Index: mono-3.4.0/mono/mini/tramp-ppc.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/tramp-ppc.c ++++ mono-3.4.0/mono/mini/tramp-ppc.c +@@ -300,10 +300,10 @@ mono_arch_create_generic_trampoline (Mon if (aot) { code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_get_lmf_addr"); #ifdef PPC_USES_FUNCTION_DESCRIPTOR @@ -1039,7 +1046,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp- ppc_blrl (code); } else { ppc_load_func (code, ppc_r0, mono_get_lmf_addr); -@@ -314,33 +314,33 @@ mono_arch_create_generic_trampoline (Mon +@@ -311,33 +311,33 @@ mono_arch_create_generic_trampoline (Mon ppc_blrl (code); } /* we build the MonoLMF structure on the stack - see mini-ppc.h @@ -1083,7 +1090,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp- /* * Now we're ready to call trampoline (mgreg_t *regs, guint8 *code, gpointer value, guint8 *tramp) -@@ -364,10 +364,10 @@ mono_arch_create_generic_trampoline (Mon +@@ -361,10 +361,10 @@ mono_arch_create_generic_trampoline (Mon if (aot) { code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, g_strdup_printf ("trampoline_func_%d", tramp_type)); #ifdef PPC_USES_FUNCTION_DESCRIPTOR @@ -1097,7 +1104,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp- ppc_blrl (code); } else { tramp_handler = mono_get_trampoline_func (tramp_type); -@@ -392,20 +392,20 @@ mono_arch_create_generic_trampoline (Mon +@@ -389,20 +389,20 @@ mono_arch_create_generic_trampoline (Mon * Now we restore the MonoLMF (see emit_epilogue in mini-ppc.c) * and the rest of the registers, so the method called will see * the same state as before we executed. @@ -1124,7 +1131,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp- /* restore the volatile registers, we skip r1, of course */ offset = STACK - sizeof (MonoLMF) - (14 * sizeof (double)); -@@ -427,8 +427,8 @@ mono_arch_create_generic_trampoline (Mon +@@ -424,8 +424,8 @@ mono_arch_create_generic_trampoline (Mon */ /* Restore stack pointer and LR and jump to the code */ ppc_ldr (code, ppc_r1, 0, ppc_r1); @@ -1135,7 +1142,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp- if (MONO_TRAMPOLINE_TYPE_MUST_RETURN (tramp_type)) ppc_blr (code); else -@@ -604,9 +604,9 @@ mono_arch_create_rgctx_lazy_fetch_trampo +@@ -596,9 +596,9 @@ mono_arch_create_rgctx_lazy_fetch_trampo code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, g_strdup_printf ("specific_trampoline_lazy_fetch_%u", slot)); /* Branch to the trampoline */ #ifdef PPC_USES_FUNCTION_DESCRIPTOR @@ -1147,7 +1154,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/tramp- ppc_bcctr (code, PPC_BR_ALWAYS, 0); } else { tramp = mono_arch_create_specific_trampoline (GUINT_TO_POINTER (slot), -@@ -666,9 +666,9 @@ mono_arch_create_generic_class_init_tram +@@ -658,9 +658,9 @@ mono_arch_create_generic_class_init_tram code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "specific_trampoline_generic_class_init"); /* Branch to the trampoline */ #ifdef PPC_USES_FUNCTION_DESCRIPTOR diff --git a/mono-core-ppc64le.diff b/mono-core-ppc64le.diff index bcc21df..6a71196 100644 --- a/mono-core-ppc64le.diff +++ b/mono-core-ppc64le.diff @@ -10,9 +10,10 @@ This adds initial support for ppc64le to the ppc64 port. That is: It also corrects the list of registers for the precise GC, but that isn't used in mini at all on any architecture currently. -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/arch/ppc/ppc-codegen.h mono-3.2.3/mono/arch/ppc/ppc-codegen.h ---- mono-3.2.3.orig/mono/arch/ppc/ppc-codegen.h 2013-09-13 22:21:32.000000000 +0000 -+++ mono-3.2.3/mono/arch/ppc/ppc-codegen.h 2014-01-03 18:39:09.000000000 +0000 +Index: mono-3.4.0/mono/arch/ppc/ppc-codegen.h +=================================================================== +--- mono-3.4.0.orig/mono/arch/ppc/ppc-codegen.h ++++ mono-3.4.0/mono/arch/ppc/ppc-codegen.h @@ -123,7 +123,7 @@ enum { PPC_TRAP_GE_UN = 16 + PPC_TRAP_EQ }; @@ -38,9 +39,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/arch/ppc/pp #define ppc_load_multiple_regs(c,D,d,A) G_STMT_START { \ int __i, __o = (d); \ -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/metadata/sgen-marksweep.c mono-3.2.3/mono/metadata/sgen-marksweep.c ---- mono-3.2.3.orig/mono/metadata/sgen-marksweep.c 2013-09-13 22:21:52.000000000 +0000 -+++ mono-3.2.3/mono/metadata/sgen-marksweep.c 2014-01-03 19:13:37.000000000 +0000 +Index: mono-3.4.0/mono/metadata/sgen-marksweep.c +=================================================================== +--- mono-3.4.0.orig/mono/metadata/sgen-marksweep.c ++++ mono-3.4.0/mono/metadata/sgen-marksweep.c @@ -45,8 +45,10 @@ #define SGEN_HAVE_CONCURRENT_MARK #endif @@ -54,9 +56,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/metadata/sg #define MAJOR_SECTION_SIZE MS_BLOCK_SIZE #define CARDS_PER_BLOCK (MS_BLOCK_SIZE / CARD_SIZE_IN_BYTES) -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-gc.c mono-3.2.3/mono/mini/mini-gc.c ---- mono-3.2.3.orig/mono/mini/mini-gc.c 2013-12-22 03:29:45.000000000 +0000 -+++ mono-3.2.3/mono/mini/mini-gc.c 2014-01-03 18:44:54.000000000 +0000 +Index: mono-3.4.0/mono/mini/mini-gc.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini-gc.c ++++ mono-3.4.0/mono/mini/mini-gc.c @@ -439,7 +439,12 @@ static int callee_saved_regs [] = { ARMR #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 }; @@ -71,10 +74,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-g #endif static guint32 -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-ppc.c mono-3.2.3/mono/mini/mini-ppc.c ---- mono-3.2.3.orig/mono/mini/mini-ppc.c 2013-09-13 22:22:23.000000000 +0000 -+++ mono-3.2.3/mono/mini/mini-ppc.c 2014-01-03 18:54:20.000000000 +0000 -@@ -2812,14 +2812,14 @@ handle_thunk (int absolute, guchar *code +Index: mono-3.4.0/mono/mini/mini-ppc.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini-ppc.c ++++ mono-3.4.0/mono/mini/mini-ppc.c +@@ -2811,14 +2811,14 @@ handle_thunk (int absolute, guchar *code static void patch_ins (guint8 *code, guint32 ins) { @@ -91,7 +95,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p guint32 prim = ins >> 26; guint32 ovf; -@@ -2902,7 +2902,13 @@ ppc_patch_full (guchar *code, const guch +@@ -2901,7 +2901,13 @@ ppc_patch_full (guchar *code, const guch else code -= 24; } else { @@ -106,7 +110,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p branch_ins = seq + 8; else branch_ins = seq + 6; -@@ -2926,8 +2932,12 @@ ppc_patch_full (guchar *code, const guch +@@ -2925,8 +2931,12 @@ ppc_patch_full (guchar *code, const guch } /* FIXME: make this thread safe */ @@ -119,7 +123,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p mono_arch_flush_icache ((guint8*)seq, 28); #else guint32 *seq; -@@ -4482,6 +4492,16 @@ mono_arch_register_lowlevel_calls (void) +@@ -4481,6 +4491,16 @@ mono_arch_register_lowlevel_calls (void) } #ifdef __mono_ppc64__ @@ -136,7 +140,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p #define patch_load_sequence(ip,val) do {\ guint16 *__load = (guint16*)(ip); \ g_assert (sizeof (val) == sizeof (gsize)); \ -@@ -4491,6 +4511,9 @@ mono_arch_register_lowlevel_calls (void) +@@ -4490,6 +4510,9 @@ mono_arch_register_lowlevel_calls (void) __load [9] = ((guint64)(gsize)(val)) & 0xffff; \ } while (0) #else @@ -146,9 +150,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p #define patch_load_sequence(ip,val) do {\ guint16 *__lis_ori = (guint16*)(ip); \ __lis_ori [1] = (((gulong)(val)) >> 16) & 0xffff; \ -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-ppc.h mono-3.2.3/mono/mini/mini-ppc.h ---- mono-3.2.3.orig/mono/mini/mini-ppc.h 2013-12-22 03:29:45.000000000 +0000 -+++ mono-3.2.3/mono/mini/mini-ppc.h 2014-01-03 18:17:41.000000000 +0000 +Index: mono-3.4.0/mono/mini/mini-ppc.h +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini-ppc.h ++++ mono-3.4.0/mono/mini/mini-ppc.h @@ -69,7 +69,13 @@ typedef struct MonoCompileArch { #define MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS #define MONO_ARCH_NO_EMULATE_LONG_MUL_OPTS @@ -163,10 +168,11 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini-p #ifndef __mono_ilp32__ #define MONO_ARCH_HAVE_TLS_GET 1 -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini.c mono-3.2.3/mono/mini/mini.c ---- mono-3.2.3.orig/mono/mini/mini.c 2013-12-22 03:29:45.000000000 +0000 -+++ mono-3.2.3/mono/mini/mini.c 2014-01-03 19:06:17.000000000 +0000 -@@ -6752,10 +6752,9 @@ mini_get_debug_options (void) +Index: mono-3.4.0/mono/mini/mini.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini.c ++++ mono-3.4.0/mono/mini/mini.c +@@ -7004,10 +7004,9 @@ mini_get_debug_options (void) static gpointer mini_create_ftnptr (MonoDomain *domain, gpointer addr) { @@ -178,7 +184,7 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini.c gpointer* desc = NULL; if ((desc = g_hash_table_lookup (domain->ftnptrs_hash, addr))) -@@ -6782,7 +6781,7 @@ mini_create_ftnptr (MonoDomain *domain, +@@ -7033,7 +7032,7 @@ mini_create_ftnptr (MonoDomain *domain, static gpointer mini_get_addr_from_ftnptr (gpointer descr) { @@ -187,9 +193,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/mini/mini.c return *(gpointer*)descr; #else return descr; -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/utils/lock-free-alloc.c mono-3.2.3/mono/utils/lock-free-alloc.c ---- mono-3.2.3.orig/mono/utils/lock-free-alloc.c 2013-09-13 22:21:38.000000000 +0000 -+++ mono-3.2.3/mono/utils/lock-free-alloc.c 2014-01-03 19:11:56.000000000 +0000 +Index: mono-3.4.0/mono/utils/lock-free-alloc.c +=================================================================== +--- mono-3.4.0.orig/mono/utils/lock-free-alloc.c ++++ mono-3.4.0/mono/utils/lock-free-alloc.c @@ -123,7 +123,9 @@ struct _MonoLockFreeAllocDescriptor { #define NUM_DESC_BATCH 64 @@ -201,9 +208,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/utils/lock- #define SB_HEADER_SIZE 16 #define SB_USABLE_SIZE (SB_SIZE - SB_HEADER_SIZE) -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/utils/mono-mmap.c mono-3.2.3/mono/utils/mono-mmap.c ---- mono-3.2.3.orig/mono/utils/mono-mmap.c 2013-09-13 22:21:38.000000000 +0000 -+++ mono-3.2.3/mono/utils/mono-mmap.c 2014-01-03 17:57:28.000000000 +0000 +Index: mono-3.4.0/mono/utils/mono-mmap.c +=================================================================== +--- mono-3.4.0.orig/mono/utils/mono-mmap.c ++++ mono-3.4.0/mono/utils/mono-mmap.c @@ -332,6 +332,11 @@ mono_valloc (void *addr, size_t length, int mono_vfree (void *addr, size_t length) @@ -216,9 +224,10 @@ diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/utils/mono- return munmap (addr, length); } -diff -x 'Makefile*' -x 'config*' -x '*.m4' -urp mono-3.2.3.orig/mono/utils/strtod.c mono-3.2.3/mono/utils/strtod.c ---- mono-3.2.3.orig/mono/utils/strtod.c 2013-09-13 22:21:37.000000000 +0000 -+++ mono-3.2.3/mono/utils/strtod.c 2014-01-03 18:26:43.000000000 +0000 +Index: mono-3.4.0/mono/utils/strtod.c +=================================================================== +--- mono-3.4.0.orig/mono/utils/strtod.c ++++ mono-3.4.0/mono/utils/strtod.c @@ -173,6 +173,12 @@ * #define NO_ERRNO if strtod should not assign errno = ERANGE when * the result overflows to +-Infinity or underflows to 0. diff --git a/mono-core-target-4.0.patch b/mono-core-target-4.0.patch index 78e5263..0802752 100644 --- a/mono-core-target-4.0.patch +++ b/mono-core-target-4.0.patch @@ -1,17 +1,17 @@ -Index: mono-3.0.3/data/mono-nunit.pc.in +Index: mono-3.4.0/data/mono-nunit.pc.in =================================================================== ---- mono-3.0.3.orig/data/mono-nunit.pc.in -+++ mono-3.0.3/data/mono-nunit.pc.in +--- mono-3.4.0.orig/data/mono-nunit.pc.in ++++ mono-3.4.0/data/mono-nunit.pc.in @@ -6,4 +6,4 @@ libdir=${exec_prefix}/lib Name: Mono NUnit Description: Mono's version of NUnit Version: @VERSION@ -Libs: -r:${libdir}/mono/2.0/nunit.core.dll -r:${libdir}/mono/2.0/nunit.core.interfaces.dll -r:${libdir}/mono/2.0/nunit.core.extensions.dll -r:${libdir}/mono/2.0/nunit.framework.dll -r:${libdir}/mono/2.0/nunit.framework.extensions.dll -r:${libdir}/mono/2.0/nunit.mocks.dll -r:${libdir}/mono/2.0/nunit.util.dll -r:${libdir}/mono/2.0/nunit-console-runner.dll +Libs: -r:${libdir}/mono/4.0/nunit.core.dll -r:${libdir}/mono/4.0/nunit.core.interfaces.dll -r:${libdir}/mono/4.0/nunit.core.extensions.dll -r:${libdir}/mono/4.0/nunit.framework.dll -r:${libdir}/mono/4.0/nunit.framework.extensions.dll -r:${libdir}/mono/4.0/nunit.mocks.dll -r:${libdir}/mono/4.0/nunit.util.dll -r:${libdir}/mono/4.0/nunit-console-runner.dll -Index: mono-3.0.3/data/mono.web.pc.in +Index: mono-3.4.0/data/mono.web.pc.in =================================================================== ---- mono-3.0.3.orig/data/mono.web.pc.in -+++ mono-3.0.3/data/mono.web.pc.in +--- mono-3.4.0.orig/data/mono.web.pc.in ++++ mono-3.4.0/data/mono.web.pc.in @@ -1,4 +1,4 @@ Name: Mono.Web Description: Mono ASP.NET extension classes diff --git a/mono-core.changes b/mono-core.changes index 840a0b1..20524e9 100644 --- a/mono-core.changes +++ b/mono-core.changes @@ -1,3 +1,31 @@ +------------------------------------------------------------------- +Thu May 29 05:49:24 UTC 2014 - sshaw@decriptor.com + +- Refresh patches +- Update to 3.4.0 + * Revamped HttpWebRequest/ServicePoint stack + - Should properly reuse connections. + - Uses the specified idle times + - NTLM support has been improved. + - SSL/TLS operations on via async APIs are now + implemented using async patterns internally + to greatly alleviate Thread Pool abuse. + * Network stack + - Now allows developers to control which cipher + suites to use with TLS/SSL. + * ARM + - Emit shorter floating point operations when possible + - Hard float support: Mono now should work on Linux + distributions which uses a hard float (armhf) ABI, + like the Raspberry PI. + Notes: Homogeneous floating point aggregates are not + yet supported on armhf. + * Documentation + - Updated documentation stubs to the 4.5 .NET API. + * mono-api-html + - Now supports regular expressions when specifying + members to ignore (e.g. mono-api-html -i 'INSCopying$') + ------------------------------------------------------------------- Mon Mar 10 17:20:57 CET 2014 - ro@suse.de diff --git a/mono-core.spec b/mono-core.spec index 266e272..6e66a9e 100644 --- a/mono-core.spec +++ b/mono-core.spec @@ -21,7 +21,7 @@ %define sgen yes Name: mono-core -Version: 3.2.8 +Version: 3.4.0 Release: 0 Summary: Cross-platform, Open Source, .NET development framework License: LGPL-2.1 and MIT and MS-PL diff --git a/ppc.patch b/ppc.patch index 733e23e..7a494ec 100644 --- a/ppc.patch +++ b/ppc.patch @@ -1,8 +1,8 @@ -Index: mono-3.0.2/mono/mini/mini.c -================================================================================ ---- mono-3.2.8/mono/mini/mini-gc.c -+++ mono-3.2.8/mono/mini/mini-gc.c -@@ -438,6 +438,8 @@ +Index: mono-3.4.0/mono/mini/mini-gc.c +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini-gc.c ++++ mono-3.4.0/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 }; @@ -11,9 +11,11 @@ Index: mono-3.0.2/mono/mini/mini.c #endif static guint32 ---- mono-3.2.8/mono/mini/mini-ppc.h -+++ mono-3.2.8/mono/mini/mini-ppc.h -@@ -96,6 +96,7 @@ +Index: mono-3.4.0/mono/mini/mini-ppc.h +=================================================================== +--- mono-3.4.0.orig/mono/mini/mini-ppc.h ++++ mono-3.4.0/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