summaryrefslogtreecommitdiff
path: root/lang/mono/patches/patch-cc
diff options
context:
space:
mode:
Diffstat (limited to 'lang/mono/patches/patch-cc')
-rw-r--r--lang/mono/patches/patch-cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/lang/mono/patches/patch-cc b/lang/mono/patches/patch-cc
new file mode 100644
index 00000000000..5c3d84a64c2
--- /dev/null
+++ b/lang/mono/patches/patch-cc
@@ -0,0 +1,33 @@
+$NetBSD: patch-cc,v 1.4 2010/10/04 06:09:29 kefren Exp $
+
+Currently mono is not copying the domain default context for some of
+the newly created threads. This leads to some problems with programs
+that use remoting stack, for example monodevelop that is unusable -
+it doesn't compile and run projects. The following hack fixes the
+issue until further investigations for pkgsrc-2010Q3 release.
+
+Bug tracking: https://bugzilla.novell.com/show_bug.cgi?id=599485
+
+
+--- mono/metadata/domain.c.old 2010-10-03 20:58:27.000000000 +0300
++++ mono/metadata/domain.c 2010-10-03 21:03:13.000000000 +0300
+@@ -2154,7 +2154,18 @@ mono_context_set (MonoAppContext * new_c
+ MonoAppContext *
+ mono_context_get (void)
+ {
+- return GET_APPCONTEXT ();
++ MonoAppContext *retval = GET_APPCONTEXT();
++#ifdef __NetBSD__
++ /*
++ * We gotta find out why context is sometime NULL for newly threads
++ * Until then use default context if it's not set
++ */
++ if(retval == NULL) {
++ retval = ves_icall_System_AppDomain_InternalGetDefaultContext();
++ mono_context_set(retval);
++ }
++#endif
++ return retval;
+ }
+
+ /* LOCKING: the caller holds the lock for this domain */