summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorjoerg <joerg>2013-11-15 14:01:45 +0000
committerjoerg <joerg>2013-11-15 14:01:45 +0000
commitaf6491578761030ac3ab060edbddb1e72cf2ed56 (patch)
treecb694af461ea87fcd90fcaa4b97f072535456486 /lang
parent80d8dfef2e19385e6fcedc5f2f3f03804f6bd2eb (diff)
downloadpkgsrc-af6491578761030ac3ab060edbddb1e72cf2ed56.tar.gz
Restore fragment from patch-dg that deals with not using
pthread_setspecific with a deleted key.
Diffstat (limited to 'lang')
-rw-r--r--lang/mono/distinfo4
-rw-r--r--lang/mono/patches/patch-dg42
2 files changed, 41 insertions, 5 deletions
diff --git a/lang/mono/distinfo b/lang/mono/distinfo
index 45826857800..e313753435c 100644
--- a/lang/mono/distinfo
+++ b/lang/mono/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.93 2013/09/13 20:47:55 jperkin Exp $
+$NetBSD: distinfo,v 1.94 2013/11/15 14:01:45 joerg Exp $
SHA1 (mono-3.0.10.tar.bz2) = 7646d3ecb2dc2e7fd12c7fc661e7a500b9833e64
RMD160 (mono-3.0.10.tar.bz2) = d2c4dc64b233f51f6ec8be4ee1f3ef08f0099057
@@ -33,7 +33,7 @@ SHA1 (patch-db) = 515fdc97e5d70b5ecb2fdb6e4a1693df1b67f1a0
SHA1 (patch-dc) = c3f7763d019226473b3b6b22d4ab2511b6a65fa4
SHA1 (patch-de) = 7e74a64c6be7fe38fe870a1c56d13825500d421c
SHA1 (patch-df) = 2a74937a5bd5f70b337aa216c31cb9cd30623023
-SHA1 (patch-dg) = 499e92b825f8de33d2b5470440ef37eba8201eca
+SHA1 (patch-dg) = 15b7a4d7a27ff2e712b565c56c7fbc996b50cb4e
SHA1 (patch-dh) = d0f32afdeecefbd12df00d41809b405fdb56cbe0
SHA1 (patch-di) = 2e590f0491edf6ab8d253f99a23c6b9644ac3bc5
SHA1 (patch-dj) = 2a3b4ab8b8eaf2aa0a10c867596ba3eb8d12a1b9
diff --git a/lang/mono/patches/patch-dg b/lang/mono/patches/patch-dg
index 5e031486f4f..41df1f22ad5 100644
--- a/lang/mono/patches/patch-dg
+++ b/lang/mono/patches/patch-dg
@@ -1,7 +1,27 @@
-$NetBSD: patch-dg,v 1.6 2013/05/29 11:11:12 wiz Exp $
---- mono/metadata/threads.c.orig 2012-12-05 17:44:34.000000000 +0000
+$NetBSD: patch-dg,v 1.7 2013/11/15 14:01:45 joerg Exp $
+
+--- mono/metadata/threads.c.orig 2013-04-25 09:07:19.000000000 +0000
+++ mono/metadata/threads.c
-@@ -826,8 +826,16 @@ mono_thread_get_stack_bounds (guint8 **s
+@@ -86,6 +86,8 @@ size_t pthread_get_stacksize_np(pthread_
+ # endif
+ #endif
+
++static int tls_key_initialised;
++
+ struct StartInfo
+ {
+ guint32 (*func)(void *);
+@@ -634,7 +636,8 @@ static guint32 WINAPI start_wrapper_inte
+ * Boehm GC - the io-layer keeps a GC-visible hash of pointers
+ * to TLS data.)
+ */
+- SET_CURRENT_OBJECT (NULL);
++ if (tls_key_initialised)
++ SET_CURRENT_OBJECT (NULL);
+
+ return(0);
+ }
+@@ -881,8 +884,16 @@ mono_thread_get_stack_bounds (guint8 **s
# if !defined(__OpenBSD__)
pthread_attr_getstack (&attr, (void**)staddr, stsize);
# endif
@@ -18,3 +38,19 @@ $NetBSD: patch-dg,v 1.6 2013/05/29 11:11:12 wiz Exp $
# endif
pthread_attr_destroy (&attr);
+@@ -2573,6 +2584,7 @@ void mono_thread_init (MonoThreadStartCB
+
+ MONO_FAST_TLS_INIT (tls_current_object);
+ mono_native_tls_alloc (&current_object_key, NULL);
++ tls_key_initialised = 1;
+ THREAD_DEBUG (g_message ("%s: Allocated current_object_key %d", __func__, current_object_key));
+
+ mono_thread_start_cb = start_cb;
+@@ -2616,6 +2628,7 @@ void mono_thread_cleanup (void)
+ #endif
+
+ mono_native_tls_free (current_object_key);
++ tls_key_initialised = 0;
+ }
+
+ void