add new mono version

git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@1476 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
geos_one
2009-08-22 00:44:22 +00:00
parent 2fc3271682
commit be5cae4b16
21 changed files with 893 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
http://anonsvn.mono-project.com/viewvc?view=rev&revision=101444
https://bugs.gentoo.org/225409
backport for glibc-2.8 stablization
https://bugs.gentoo.org/show_bug.cgi?id=247553
--- trunk/mono/mono/io-layer/wapi_glob.c 2008/04/22 14:29:40 101443
+++ trunk/mono/mono/io-layer/wapi_glob.c 2008/04/22 14:44:10 101444
@@ -299,11 +299,14 @@
}
pathv[pglob->gl_offs + pglob->gl_pathc] = NULL;
+#if 0
+ /* Broken on opensuse 11 */
if ((pglob->gl_flags & WAPI_GLOB_LIMIT) &&
newsize + *limitp >= ARG_MAX) {
errno = 0;
return(WAPI_GLOB_NOSPACE);
}
+#endif
return(copy == NULL ? WAPI_GLOB_NOSPACE : 0);
}

View File

@@ -0,0 +1,18 @@
--- mono/utils/mono-compiler.h.orig 2007-02-06 09:17:09.000000000 +0100
+++ mono/utils/mono-compiler.h 2007-02-06 09:56:15.000000000 +0100
@@ -1,5 +1,15 @@
#ifndef __UTILS_MONO_COMPILER_H__
#define __UTILS_MONO_COMPILER_H__
+
+#if defined(__PIC__) && !defined(PIC)
+/*
+ * Must be compiling -fPIE, for executables. Build PIC
+ * but with initial-exec.
+ */
+# define PIC
+# define PIC_INITIAL_EXEC
+#endif
+
/*
* This file includes macros used in the runtime to encapsulate different
* compiler behaviours.

View File

@@ -0,0 +1,13 @@
--- trunk/mcs/mcs/expression.cs 2007/12/22 13:17:22 91807
+++ trunk/mcs/mcs/expression.cs 2007/12/23 13:29:15 91831
@@ -4242,6 +4242,10 @@
public override Expression DoResolve (EmitContext ec)
{
+ // Don't resolve already resolved expression
+ if (eclass != ExprClass.Invalid)
+ return this;
+
Expression expr_resolved = expr.Resolve (ec, ResolveFlags.VariableOrValue | ResolveFlags.MethodGroup);
if (expr_resolved == null)
return null;

View File

@@ -0,0 +1,32 @@
--- mono/metadata/threads.h 2007/12/20 00:38:27 1.1
+++ mono/metadata/threads.h 2007/12/20 00:38:46
@@ -14,7 +14,6 @@
#include <mono/utils/mono-membar.h>
#include <mono/metadata/object.h>
#include <mono/metadata/appdomain.h>
-#include <mono/metadata/threads-types.h>
G_BEGIN_DECLS
@@ -67,10 +66,6 @@ extern void mono_thread_interruption_che
extern void mono_thread_force_interruption_checkpoint (void);
extern gint32* mono_thread_interruption_request_flag (void);
-extern void mono_thread_set_state (MonoThread *thread, MonoThreadState state);
-extern void mono_thread_clr_state (MonoThread *thread, MonoThreadState state);
-extern gboolean mono_thread_test_state (MonoThread *thread, MonoThreadState test);
-
G_END_DECLS
#endif /* _MONO_METADATA_THREADS_H_ */
--- mono/metadata/threads-types.h 2007/12/20 00:38:32 1.1
+++ mono/metadata/threads-types.h 2007/12/20 00:40:55
@@ -157,4 +157,8 @@ extern MonoThreadHazardPointers* mono_ha
(hp)->hazard_pointers [(i)] = NULL; \
} while (0)
+extern void mono_thread_set_state (MonoThread *thread, MonoThreadState state) MONO_INTERNAL;
+extern void mono_thread_clr_state (MonoThread *thread, MonoThreadState state) MONO_INTERNAL;
+extern gboolean mono_thread_test_state (MonoThread *thread, MonoThreadState test) MONO_INTERNAL;
+
#endif /* _MONO_METADATA_THREADS_TYPES_H_ */

View File

@@ -0,0 +1,152 @@
diff -NrU5 mono-2.0.1.orig/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutPanel.cs mono-2.0.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutPanel.cs
--- mono-2.0.1.orig/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutPanel.cs 2008-12-19 07:00:41.000000000 +0100
+++ mono-2.0.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutPanel.cs 2008-12-19 07:00:55.000000000 +0100
@@ -131,10 +131,11 @@
set {
if (value.isSerialized) {
// Serialized version doesn't calculate these.
value.ColumnCount = value.ColumnStyles.Count;
value.RowCount = value.RowStyles.Count;
+ value.panel = this;
this.settings = value;
value.isSerialized = false;
} else
throw new NotSupportedException ("LayoutSettings value cannot be set directly.");
diff -NrU5 mono-2.0.1.orig/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutSettings.cs mono-2.0.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutSettings.cs
--- mono-2.0.1.orig/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutSettings.cs 2008-12-19 07:00:41.000000000 +0100
+++ mono-2.0.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutSettings.cs 2008-12-19 07:00:55.000000000 +0100
@@ -46,11 +46,11 @@
private int row_count;
private Dictionary<Object, int> columns;
private Dictionary<Object, int> column_spans;
private Dictionary<Object, int> rows;
private Dictionary<Object, int> row_spans;
- private TableLayoutPanel panel;
+ internal TableLayoutPanel panel;
internal bool isSerialized;
#region Internal Constructor
internal TableLayoutSettings (TableLayoutPanel panel)
{
@@ -132,11 +132,13 @@
if (value < 0)
throw new ArgumentOutOfRangeException ();
if (row_count != value) {
row_count = value;
- panel.PerformLayout (panel, "RowCount");
+
+ if (panel != null)
+ panel.PerformLayout ();
}
}
}
[DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]
@@ -223,55 +225,65 @@
if (control == null)
throw new ArgumentNullException ();
columns[control] = cellPosition.Column;
rows[control] = cellPosition.Row;
- panel.PerformLayout ();
+
+ if (panel != null)
+ panel.PerformLayout ();
}
public void SetColumn (Object control, int column)
{
if (control == null)
throw new ArgumentNullException ();
if (column < -1)
throw new ArgumentException ();
columns[control] = column;
- panel.PerformLayout ();
+
+ if (panel != null)
+ panel.PerformLayout ();
}
public void SetColumnSpan (Object control, int value)
{
if (control == null)
throw new ArgumentNullException ();
if (value < -1)
throw new ArgumentException ();
column_spans[control] = value;
- panel.PerformLayout ();
+
+ if (panel != null)
+ panel.PerformLayout ();
}
public void SetRow (Object control, int row)
{
if (control == null)
throw new ArgumentNullException ();
if (row < -1)
throw new ArgumentException ();
rows[control] = row;
- panel.PerformLayout ();
+
+ if (panel != null)
+ panel.PerformLayout ();
}
public void SetRowSpan (Object control, int value)
{
if (control == null)
throw new ArgumentNullException ();
if (value < -1)
throw new ArgumentException ();
row_spans[control] = value;
- panel.PerformLayout ();
+
+ if (panel != null)
+ panel.PerformLayout ();
}
#endregion
#region Internal Methods
internal List<ControlInfo> GetControls ()
diff -NrU5 mono-2.0.1.orig/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutStyleCollection.cs mono-2.0.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutStyleCollection.cs
--- mono-2.0.1.orig/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutStyleCollection.cs 2008-12-19 07:00:41.000000000 +0100
+++ mono-2.0.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutStyleCollection.cs 2008-12-19 07:00:55.000000000 +0100
@@ -76,11 +76,14 @@
if (layoutStyle.Owner != null)
throw new ArgumentException ("Style is already owned");
layoutStyle.Owner = table;
int result = al.Add (layoutStyle);
- table.PerformLayout ();
+
+ if (table != null)
+ table.PerformLayout ();
+
return result;
}
bool IList.Contains (object style)
{
diff -NrU5 mono-2.0.1.orig/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Layout/TableLayoutSettingsTypeConverter.cs mono-2.0.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Layout/TableLayoutSettingsTypeConverter.cs
--- mono-2.0.1.orig/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Layout/TableLayoutSettingsTypeConverter.cs 2008-12-19 07:00:41.000000000 +0100
+++ mono-2.0.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Layout/TableLayoutSettingsTypeConverter.cs 2008-12-19 07:02:23.000000000 +0100
@@ -117,11 +117,11 @@
if (!(value is string))
return base.ConvertFrom(context, culture, value);
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml (value as string);
- TableLayoutSettings settings = new TableLayoutSettings(new TableLayoutPanel ());
+ TableLayoutSettings settings = new TableLayoutSettings(null);
int count = ParseControl (xmldoc, settings);
ParseColumnStyle (xmldoc, settings);
ParseRowStyle (xmldoc, settings);
settings.RowCount = count;

View File

@@ -0,0 +1,54 @@
--- mono-2.0/mcs/class/Managed.Windows.Forms/System.Windows.Forms/MimeIcon.cs 2008-09-02 16:46:50.000000000 +0100
+++ mono-2.0/mcs/class/Managed.Windows.Forms/System.Windows.Forms/MimeIcon-new.cs 2008-09-18 23:29:05.000000000 +0100
@@ -358,11 +358,12 @@
if (internal_mime_type == "harddisk/harddisk" || internal_mime_type == "cdrom/cdrom" || internal_mime_type == "removable/removable")
image = ResourceImageLoader.Get ("text-x-generic.png");
}
-
- index = MimeIconEngine.SmallIcons.Images.Add (image, Color.Transparent);
- MimeIconEngine.LargeIcons.Images.Add (image, Color.Transparent);
-
- MimeIconEngine.MimeIconIndex.Add (internal_mime_type, index);
+
+ if (image != null) {
+ index = MimeIconEngine.SmallIcons.Images.Add (image, Color.Transparent);
+ MimeIconEngine.LargeIcons.Images.Add (image, Color.Transparent);
+ MimeIconEngine.MimeIconIndex.Add (internal_mime_type, index);
+ }
}
public override object AddAndGetIconIndex (string filename, string mime_type)
@@ -370,11 +371,11 @@
int index = -1;
Image image = GnomeUtil.GetIcon (filename, mime_type, 48);
-
- index = MimeIconEngine.SmallIcons.Images.Add (image, Color.Transparent);
- MimeIconEngine.LargeIcons.Images.Add (image, Color.Transparent);
-
- MimeIconEngine.MimeIconIndex.Add (mime_type, index);
+ if (image != null) {
+ index = MimeIconEngine.SmallIcons.Images.Add (image, Color.Transparent);
+ MimeIconEngine.LargeIcons.Images.Add (image, Color.Transparent);
+ MimeIconEngine.MimeIconIndex.Add (mime_type, index);
+ }
return index;
}
@@ -384,11 +385,11 @@
int index = -1;
Image image = GnomeUtil.GetIcon (mime_type, 48);
-
- index = MimeIconEngine.SmallIcons.Images.Add (image, Color.Transparent);
- MimeIconEngine.LargeIcons.Images.Add (image, Color.Transparent);
-
- MimeIconEngine.MimeIconIndex.Add (mime_type, index);
+ if (image != null) {
+ index = MimeIconEngine.SmallIcons.Images.Add (image, Color.Transparent);
+ MimeIconEngine.LargeIcons.Images.Add (image, Color.Transparent);
+ MimeIconEngine.MimeIconIndex.Add (mime_type, index);
+ }
return index;
}

View File

@@ -0,0 +1,20 @@
--- mono-2.0/mono/mini/main.c 2008-08-03 07:49:23.000000000 +0100
+++ mono-2.0/mono/mini/main-new.c 2008-08-03 07:55:10.000000000 +0100
@@ -23,10 +23,16 @@
}
#else
-
+#include <sched.h>
int
main (int argc, char* argv[])
{
+ /* On PowerPC call sched_setaffinity to bind to one CPU only
+ * to work around parallelism bug on G5 SMP */
+ #ifdef __powerpc__
+ unsigned long mask = 1;
+ sched_setaffinity(0, sizeof(mask), &mask);
+ #endif
return mono_main (argc, argv);
}

View File

@@ -0,0 +1,11 @@
--- mcs/class/System.Web.Services/System.Web.Services.Description/BasicProfileChecker.cs 2008/10/28 09:09:03 117242
+++ mcs/class/System.Web.Services/System.Web.Services.Description/BasicProfileChecker.cs 2008/10/28 09:32:46 117243
@@ -177,7 +177,7 @@
foreach (OperationMessage om in op.Messages) {
Message msg = ctx.Services.GetMessage (om.Message);
foreach (MessagePart part in msg.Parts)
- parts.Add (part,part);
+ parts [part] = part; // do not use Add() - there could be the same MessagePart instance.
}
}

View File

@@ -0,0 +1,18 @@
#! /bin/sh /usr/share/dpatch/dpatch-run
## fix_implicit_pointer_conversions.dpatch by Mirco Bauer <meebey@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.
@DPATCH@
diff -urNad mono-1.2.6~/mono/metadata/security.c mono-1.2.6/mono/metadata/security.c
--- mono-1.2.6~/mono/metadata/security.c 2007-11-08 23:07:19.000000000 +0100
+++ mono-1.2.6/mono/metadata/security.c 2007-12-24 15:54:02.000000000 +0100
@@ -12,6 +12,7 @@
#endif
#include <mono/metadata/appdomain.h>
+#include <mono/metadata/assembly.h>
#include <mono/metadata/image.h>
#include <mono/metadata/exception.h>
#include <mono/metadata/object-internals.h>

View File

@@ -0,0 +1,20 @@
--- mono/utils/freebsd-elf_common.h.orig 2009-02-12 10:56:14.604852206 +0100
+++ mono/utils/freebsd-elf_common.h 2009-02-12 10:56:52.034748775 +0100
@@ -42,10 +42,14 @@
* not include the padding.
*/
+/*
+ * Patched acording to: http://lists.ximian.com/pipermail/mono-patches/2009-January/138782.html
+ */
+
typedef struct {
- u_int32_t n_namesz; /* Length of name. */
- u_int32_t n_descsz; /* Length of descriptor. */
- u_int32_t n_type; /* Type of this note. */
+ uint32_t n_namesz; /* Length of name. */
+ uint32_t n_descsz; /* Length of descriptor. */
+ uint32_t n_type; /* Type of this note. */
} Elf_Note;
/* Indexes into the e_ident array. Keep synced with

View File

@@ -0,0 +1,68 @@
# Allows us to use lib64/lib32 as path for GAC. Snatched from Fedora,
# altered to be easily sedded.
# Sed this file to have the proper libdir:
# sed -i -e "s:@MONOLIBDIR@:$(get_libdir):" FILENAME
# http://cvs.fedoraproject.org/viewvc/rpms/mono/devel/mono-libdir-126.patch?view=log
Index: mono-1.1.16/mcs/tools/cilc/res-Makefile
===================================================================
--- mono-1.1.16.orig/mcs/tools/cilc/res-Makefile
+++ mono-1.1.16/mcs/tools/cilc/res-Makefile
@@ -2,7 +2,7 @@ include defs.mk
LIBNAME = $(shell echo $(basename $(SONAME)) | sed -e 's/^lib//')
HTARGET = $(prefix)/include/$(LIBNAME)/
-LIBTARGET = $(prefix)/lib/
+LIBTARGET = $(libdir)
CFLAGS += -static -fpic $(shell pkg-config --cflags glib-2.0 gobject-2.0 mono) $(EXTRAINCLUDES) -I.
--- mono-1.1.16.1/mono/metadata/assembly.c.libdir 2006-08-17 17:52:42.000000000 +0200
+++ mono-1.1.16.1/mono/metadata/assembly.c 2006-08-17 17:56:21.000000000 +0200
@@ -521,7 +521,7 @@
}
config = g_build_filename (base, "etc", NULL);
- lib = g_build_filename (base, "lib", NULL);
+ lib = g_build_filename (base, "@MONOLIBDIR@", NULL);
mono = g_build_filename (lib, "mono/1.0", NULL);
if (stat (mono, &buf) == -1)
fallback ();
@@ -1844,7 +1844,7 @@
if (extra_gac_paths) {
paths = extra_gac_paths;
while (!res && *paths) {
- gacpath = g_build_path (G_DIR_SEPARATOR_S, *paths, "lib", "mono", "gac", aname->name, NULL);
+ gacpath = g_build_path (G_DIR_SEPARATOR_S, *paths, "@MONOLIBDIR@", "mono", "gac", aname->name, NULL);
res = probe_for_partial_name (gacpath, fullname, aname, status);
g_free (gacpath);
paths++;
@@ -1908,7 +1908,7 @@
paths = extra_gac_paths;
while (!image && *paths) {
fullpath = g_build_path (G_DIR_SEPARATOR_S, *paths,
- "lib", "mono", "gac", subpath, NULL);
+ "@MONOLIBDIR@", "mono", "gac", subpath, NULL);
image = mono_image_open (fullpath, NULL);
g_free (fullpath);
paths++;
@@ -2058,7 +2058,7 @@
if (extra_gac_paths) {
paths = extra_gac_paths;
while (!result && *paths) {
- fullpath = g_build_path (G_DIR_SEPARATOR_S, *paths, "lib", "mono", "gac", subpath, NULL);
+ fullpath = g_build_path (G_DIR_SEPARATOR_S, *paths, "@MONOLIBDIR@", "mono", "gac", subpath, NULL);
result = mono_assembly_open_full (fullpath, status, refonly);
g_free (fullpath);
paths++;
--- mono-1.1.16.1/mcs/tools/gacutil/driver.cs.libdir 2006-08-17 15:40:14.000000000 +0200
+++ mono-1.1.16.1/mcs/tools/gacutil/driver.cs 2006-08-17 15:40:19.000000000 +0200
@@ -667,7 +667,7 @@
private static string EnsureLib (string dir)
{
DirectoryInfo d = new DirectoryInfo (dir);
- if (d.Name == "lib")
+ if (d.Name == "lib" || d.Name == "@MONOLIBDIR@")
return dir;
return Path.Combine (dir, "lib");
}

View File

@@ -0,0 +1,21 @@
#Binds ppc to use only one core to workaround threading problems for ppc.
http://cvs.fedoraproject.org/viewvc/rpms/mono/devel/mono-2.2-ppc-threading.patch?view=log
--- mono-2.2/mono/mini/main.c 2008-11-18 19:00:26.000000000 +0000
+++ mono-2.2/mono/mini/main-new.c 2008-11-18 19:16:11.000000000 +0000
@@ -26,10 +26,14 @@
}
#else
-
+#include <sched.h>
int
main (int argc, char* argv[])
{
+#ifdef __powerpc__
+ unsigned long mask = 1;
+ sched_setaffinity(0, sizeof(mask), &mask);
+#endif
mono_build_date = build_date;
return mono_main (argc, argv);
}

View File

@@ -0,0 +1,17 @@
Index: mono/metadata/metadata.c
===================================================================
--- mono/metadata/metadata.c (Revision 121595)
+++ mono/metadata/metadata.c (Revision 121596)
@@ -2178,9 +2178,11 @@
MonoImage *image = data;
MonoMethodInflated *method = key;
+ // FIXME:
+ // https://bugzilla.novell.com/show_bug.cgi?id=458168
return method->declaring->klass->image == image ||
(method->context.class_inst && ginst_in_image (method->context.class_inst, image)) ||
- (method->context.method_inst && ginst_in_image (method->context.method_inst, image));
+ (method->context.method_inst && ginst_in_image (method->context.method_inst, image)) || signature_in_image (mono_method_signature ((MonoMethod*)method), image);
}
static gboolean

View File

@@ -0,0 +1,31 @@
# http://gna.org/bugs/?12900
# https://bugzilla.novell.com/show_bug.cgi?id=469213
# http://bugs.gentoo.org/show_bug.cgi?id=256153
Index: mono/mono/mini/method-to-ir.c
===================================================================
--- mono/mono/mini/method-to-ir.c (revision 123986)
+++ mono/mono/mini/method-to-ir.c (revision 123987)
@@ -5839,7 +5839,21 @@
cmethod = (MonoMethod *)mono_method_get_wrapper_data (method, token);
cil_method = cmethod;
} else if (constrained_call) {
- cmethod = mono_get_method_constrained (image, token, constrained_call, generic_context, &cil_method);
+ if ((constrained_call->byval_arg.type == MONO_TYPE_VAR || constrained_call->byval_arg.type == MONO_TYPE_MVAR) && cfg->generic_sharing_context) {
+ /* This is needed when using aot + generic sharing, since
+ * the AOT code allows generic sharing for methods with
+ * type parameters having constraints, and
+ * get_method_constrained can't find the method in klass
+ * representing a type var.
+ * The type var is guaranteed to be a reference type in this
+ * case.
+ */
+ cmethod = mini_get_method (cfg, method, token, NULL, generic_context);
+ cil_method = cmethod;
+ g_assert (!cmethod->klass->valuetype);
+ } else {
+ cmethod = mono_get_method_constrained (image, token, constrained_call, generic_context, &cil_method);
+ }
} else {
cmethod = mini_get_method (cfg, method, token, NULL, generic_context);
cil_method = cmethod;

View File

@@ -0,0 +1,18 @@
#Fixes problem with monodoc and libdir
http://cvs.fedoraproject.org/viewvc/rpms/mono/devel/mono-2.2-uselibdir.patch?view=log
--- mono-2.0/mcs/class/Microsoft.Build.Utilities/Mono.XBuild.Utilities/MonoLocationHelper.cs 2008-08-03 07:58:47.000000000 +0100
+++ mono-2.0/mcs/class/Microsoft.Build.Utilities/Mono.XBuild.Utilities/MonoLocationHelper-new.cs 2008-08-03 08:06:47.000000000 +0100
@@ -53,10 +53,10 @@
//xbuildDir = Path.Combine (t2.FullName, "xbuild");
// /usr/local/lib
t3 = t2.Parent;
+ libDir = t3.FullName;
// /usr/local
t4 = t3.Parent;
binDir = Path.Combine (t4.FullName, "bin");
- libDir = Path.Combine (t4.FullName, "lib");
}
internal static string GetBinDir ()

View File

@@ -0,0 +1,40 @@
--- trunk/mcs/mcs/class.cs 2009/04/28 17:00:23 132860
+++ trunk/mcs/mcs/class.cs 2009/04/28 17:02:37 132861
@@ -2905,6 +2905,9 @@
}
public sealed class Struct : ClassOrStruct {
+
+ bool is_unmanaged, has_unmanaged_check_done;
+
// <summary>
// Modifiers allowed in a struct declaration
// </summary>
@@ -2964,6 +2967,11 @@
if (requires_delayed_unmanagedtype_check)
return true;
+ if (has_unmanaged_check_done)
+ return is_unmanaged;
+
+ has_unmanaged_check_done = true;
+
foreach (FieldBase f in fields) {
if ((f.ModFlags & Modifiers.STATIC) != 0)
continue;
@@ -2972,6 +2980,7 @@
// struct S { S* s; }
Type mt = f.MemberType;
if (mt == null) {
+ has_unmanaged_check_done = false;
requires_delayed_unmanagedtype_check = true;
return true;
}
@@ -2988,6 +2997,7 @@
return false;
}
+ is_unmanaged = true;
return true;
}

View File

@@ -0,0 +1,23 @@
# From upstream CVS, fixes build on PPC/PPC64
--- mono-2-4/mono/libgc/include/private/gc_locks.h 2009/04/10 14:32:31 131471
+++ mono-2-4/mono/libgc/include/private/gc_locks.h 2009/04/10 14:34:27 131472
@@ -160,15 +160,15 @@
int temp = 1; /* locked value */
__asm__ __volatile__(
- "1:\tlwarx %0,0,%3\n" /* load and reserve */
+ "1:\tlwarx %0,0,%1\n" /* load and reserve */
"\tcmpwi %0, 0\n" /* if load is */
"\tbne 2f\n" /* non-zero, return already set */
"\tstwcx. %2,0,%1\n" /* else store conditional */
"\tbne- 1b\n" /* retry if lost reservation */
"\tsync\n" /* import barrier */
"2:\t\n" /* oldval is zero if we set */
- : "=&r"(oldval), "=p"(addr)
- : "r"(temp), "1"(addr)
+ : "=&r"(oldval)
+ : "r"(addr), "r"(temp)
: "cr0","memory");
return oldval;
}

View File

@@ -0,0 +1,22 @@
--- mcs/class/corlib/Mono.Math/BigInteger.cs 2007-09-19 19:06:06.000000000 +0200
+++ mcs/class/corlib/Mono.Math/BigInteger.cs 2007-10-25 23:46:55.000000000 +0200
@@ -1607,7 +1607,7 @@
uint j = 1;
// Multiply and add
- for (; j < m.length; j++) {
+ for (; j < m.length && j < A.length; j++) {
c += (ulong)u_i * (ulong)*(mP++) + *(aSP++);
*(aDP++) = (uint)c;
c >>= 32;
--- mcs/class/Mono.Security/Mono.Math/BigInteger.cs 2007-07-24 23:48:50.000000000 +0200
+++ mcs/class/Mono.Security/Mono.Math/BigInteger.cs 2007-10-25 23:45:01.000000000 +0200
@@ -1601,7 +1601,7 @@
uint j = 1;
// Multiply and add
- for (; j < m.length; j++) {
+ for (; j < m.length && j < A.length; j++) {
c += (ulong)u_i * (ulong)*(mP++) + *(aSP++);
*(aDP++) = (uint)c;
c >>= 32;