Mon Apr 1 12:12:47 2013 UTC ()
Fix assertions on NetBSD when trying to use a thread-specific storage
key after it has been removed. Bump revision.


(joerg)
diff -r1.132 -r1.133 pkgsrc/lang/mono/Makefile
diff -r1.87 -r1.88 pkgsrc/lang/mono/distinfo
diff -r1.4 -r1.5 pkgsrc/lang/mono/patches/patch-dg

cvs diff -r1.132 -r1.133 pkgsrc/lang/mono/Makefile (expand / switch to unified diff)

--- pkgsrc/lang/mono/Makefile 2013/02/19 22:34:09 1.132
+++ pkgsrc/lang/mono/Makefile 2013/04/01 12:12:47 1.133
@@ -1,17 +1,17 @@ @@ -1,17 +1,17 @@
1# $NetBSD: Makefile,v 1.132 2013/02/19 22:34:09 joerg Exp $ 1# $NetBSD: Makefile,v 1.133 2013/04/01 12:12:47 joerg Exp $
2 2
3DISTNAME= mono-2.10.9 3DISTNAME= mono-2.10.9
4PKGREVISION= 1 4PKGREVISION= 2
5CATEGORIES= lang 5CATEGORIES= lang
6MASTER_SITES= http://download.mono-project.com/sources/mono/ 6MASTER_SITES= http://download.mono-project.com/sources/mono/
7EXTRACT_SUFX= .tar.bz2 7EXTRACT_SUFX= .tar.bz2
8 8
9MAINTAINER= kefren@NetBSD.org 9MAINTAINER= kefren@NetBSD.org
10HOMEPAGE= http://www.mono-project.com/ 10HOMEPAGE= http://www.mono-project.com/
11COMMENT= Open source implementation of the .NET Development Framework 11COMMENT= Open source implementation of the .NET Development Framework
12 12
13MAKE_JOBS_SAFE= no 13MAKE_JOBS_SAFE= no
14 14
15LICENSE= mit AND gnu-gpl-v2 AND gnu-lgpl-v2 AND x11 15LICENSE= mit AND gnu-gpl-v2 AND gnu-lgpl-v2 AND x11
16 16
17BUILD_DEPENDS+= p5-XML-Parser-[0-9]*:../../textproc/p5-XML-Parser 17BUILD_DEPENDS+= p5-XML-Parser-[0-9]*:../../textproc/p5-XML-Parser

cvs diff -r1.87 -r1.88 pkgsrc/lang/mono/distinfo (expand / switch to unified diff)

--- pkgsrc/lang/mono/distinfo 2013/01/19 14:38:26 1.87
+++ pkgsrc/lang/mono/distinfo 2013/04/01 12:12:47 1.88
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1$NetBSD: distinfo,v 1.87 2013/01/19 14:38:26 wiz Exp $ 1$NetBSD: distinfo,v 1.88 2013/04/01 12:12:47 joerg Exp $
2 2
3SHA1 (mono-2.10.9.tar.bz2) = 1a6e8c5a0c3d88d87982259aa04402e028a283de 3SHA1 (mono-2.10.9.tar.bz2) = 1a6e8c5a0c3d88d87982259aa04402e028a283de
4RMD160 (mono-2.10.9.tar.bz2) = ac9784c413eb2cdb490750a86a96cce5c11ad5bd 4RMD160 (mono-2.10.9.tar.bz2) = ac9784c413eb2cdb490750a86a96cce5c11ad5bd
5Size (mono-2.10.9.tar.bz2) = 34038017 bytes 5Size (mono-2.10.9.tar.bz2) = 34038017 bytes
6SHA1 (patch-aa) = f3c88247c143cba6d0475f1dabb653adbc841bdb 6SHA1 (patch-aa) = f3c88247c143cba6d0475f1dabb653adbc841bdb
7SHA1 (patch-ab) = f4d7c412a34e6ce5321361616888b601ff666cdd 7SHA1 (patch-ab) = f4d7c412a34e6ce5321361616888b601ff666cdd
8SHA1 (patch-ac) = 78f3b0786480e066959cc191e3f45d3f773220e2 8SHA1 (patch-ac) = 78f3b0786480e066959cc191e3f45d3f773220e2
9SHA1 (patch-ad) = 2dc253928695966b5310457b0cec52cd919a4851 9SHA1 (patch-ad) = 2dc253928695966b5310457b0cec52cd919a4851
10SHA1 (patch-ae) = 2b032ad658e8aa23c4e3825474d2d284b00557cd 10SHA1 (patch-ae) = 2b032ad658e8aa23c4e3825474d2d284b00557cd
11SHA1 (patch-af) = c109a9a742cb70d83cf99df0ad6c907c68809d52 11SHA1 (patch-af) = c109a9a742cb70d83cf99df0ad6c907c68809d52
12SHA1 (patch-ah) = 5f90aa60504b9508d21e05b390626788d71d47b4 12SHA1 (patch-ah) = 5f90aa60504b9508d21e05b390626788d71d47b4
13SHA1 (patch-ai) = cd5593a7e95039980b839bdabdf59d9e68fb9f56 13SHA1 (patch-ai) = cd5593a7e95039980b839bdabdf59d9e68fb9f56
14SHA1 (patch-aj) = a5aab739e01fd969edb85b5b3e08c087554d0a72 14SHA1 (patch-aj) = a5aab739e01fd969edb85b5b3e08c087554d0a72
@@ -23,24 +23,25 @@ SHA1 (patch-ba) = 872ca1579a5a3e4003b17d @@ -23,24 +23,25 @@ SHA1 (patch-ba) = 872ca1579a5a3e4003b17d
23SHA1 (patch-bc) = bbf1a903cf7fee1dbd3a070b0ef0d5aecbdf67e2 23SHA1 (patch-bc) = bbf1a903cf7fee1dbd3a070b0ef0d5aecbdf67e2
24SHA1 (patch-bd) = 15c803bf85ad36ad08bcaaf7dbc371a6473ae5f2 24SHA1 (patch-bd) = 15c803bf85ad36ad08bcaaf7dbc371a6473ae5f2
25SHA1 (patch-be) = d7a6232690ecd15c32ed44dcc498e596c248f332 25SHA1 (patch-be) = d7a6232690ecd15c32ed44dcc498e596c248f332
26SHA1 (patch-bf) = e945b13fbffc1239a4c459a2c6be543e67e883f9 26SHA1 (patch-bf) = e945b13fbffc1239a4c459a2c6be543e67e883f9
27SHA1 (patch-bg) = 7ac66455c304880e40bb915b8ba1f28ee57dd576 27SHA1 (patch-bg) = 7ac66455c304880e40bb915b8ba1f28ee57dd576
28SHA1 (patch-bh) = a42432fd8ed92e2213fbcd24bf29c2b6d4cbd8ba 28SHA1 (patch-bh) = a42432fd8ed92e2213fbcd24bf29c2b6d4cbd8ba
29SHA1 (patch-bi) = 91786c858b459cd6b5a0dc683b5bdefc412973c1 29SHA1 (patch-bi) = 91786c858b459cd6b5a0dc683b5bdefc412973c1
30SHA1 (patch-cc) = 97b247ea353c6b0e08b96bdf0e6de74c5dcb60ef 30SHA1 (patch-cc) = 97b247ea353c6b0e08b96bdf0e6de74c5dcb60ef
31SHA1 (patch-da) = ec2299928595710331f1856450e46e1694b5c292 31SHA1 (patch-da) = ec2299928595710331f1856450e46e1694b5c292
32SHA1 (patch-db) = 80e64ed5e475d7292eaea16decc1dd5a8123d5e0 32SHA1 (patch-db) = 80e64ed5e475d7292eaea16decc1dd5a8123d5e0
33SHA1 (patch-dc) = e139e349217b213eea53a17fcae44fda0bbfe636 33SHA1 (patch-dc) = e139e349217b213eea53a17fcae44fda0bbfe636
34SHA1 (patch-de) = d9867210a90389ff9ff5b9376b7091f923960973 34SHA1 (patch-de) = d9867210a90389ff9ff5b9376b7091f923960973
35SHA1 (patch-df) = b817bb4dd09c4490efba749bf9c4a663253da11b 35SHA1 (patch-df) = b817bb4dd09c4490efba749bf9c4a663253da11b
36SHA1 (patch-dg) = d6af013f17f293485ed8740e284f44a53467391e 36SHA1 (patch-dg) = 9e87267c6a85dd6f1f445eb303e8c2a40b57e39b
 37SHA1 (patch-dg.diff) = c2218062c6d261fa44cc9a2664de8fd158462e19
37SHA1 (patch-dh) = 9d1603cb55658a378cf4af29e41d6215f6a080c9 38SHA1 (patch-dh) = 9d1603cb55658a378cf4af29e41d6215f6a080c9
38SHA1 (patch-di) = 925b26e848f5f25376a21948d0627e987cfaa467 39SHA1 (patch-di) = 925b26e848f5f25376a21948d0627e987cfaa467
39SHA1 (patch-dj) = acff1ca9b38b1c21ed545bcd4fb806c69e40c409 40SHA1 (patch-dj) = acff1ca9b38b1c21ed545bcd4fb806c69e40c409
40SHA1 (patch-dk) = 7111c77894ff94264e668019d1010f659350f2cd 41SHA1 (patch-dk) = 7111c77894ff94264e668019d1010f659350f2cd
41SHA1 (patch-dl) = fc9cd48c070dbecad68cfe7d45eea59a3e6023d9 42SHA1 (patch-dl) = fc9cd48c070dbecad68cfe7d45eea59a3e6023d9
42SHA1 (patch-dm) = bac9172f419630f817702e15dd3761cb4f60e0a0 43SHA1 (patch-dm) = bac9172f419630f817702e15dd3761cb4f60e0a0
43SHA1 (patch-dn) = 9a55bd9c492b64ec9feadb45419b4bec37900b89 44SHA1 (patch-dn) = 9a55bd9c492b64ec9feadb45419b4bec37900b89
44SHA1 (patch-do) = 6ccd5598198fc04e638ec5bc5e03c92e16206c92 45SHA1 (patch-do) = 6ccd5598198fc04e638ec5bc5e03c92e16206c92
45SHA1 (patch-man_mprof-report.1) = 7c6ab58a2550f274e17e417988104c83f4e36a18 46SHA1 (patch-man_mprof-report.1) = 7c6ab58a2550f274e17e417988104c83f4e36a18
46SHA1 (patch-mono_utils_mono-compiler.h) = 0dce7994bdb350f7080464f416b725cbe3e7e293 47SHA1 (patch-mono_utils_mono-compiler.h) = 0dce7994bdb350f7080464f416b725cbe3e7e293

cvs diff -r1.4 -r1.5 pkgsrc/lang/mono/patches/Attic/patch-dg (expand / switch to unified diff)

--- pkgsrc/lang/mono/patches/Attic/patch-dg 2011/04/25 14:01:40 1.4
+++ pkgsrc/lang/mono/patches/Attic/patch-dg 2013/04/01 12:12:47 1.5
@@ -1,20 +1,65 @@ @@ -1,20 +1,65 @@
1$NetBSD: patch-dg,v 1.4 2011/04/25 14:01:40 kefren Exp $ 1$NetBSD: patch-dg,v 1.5 2013/04/01 12:12:47 joerg Exp $
2--- mono/metadata/threads.c.orig 2011-02-23 21:21:01.000000000 +0200 2
3+++ mono/metadata/threads.c 2011-04-25 12:32:08.000000000 +0300 3Avoid calling pthread_setspecific via SET_CURRENT_OBJECT(NULL)
4@@ -1002,8 +1002,16 @@ mono_thread_get_stack_bounds (guint8 **s 4after the key has been removed. This can result in hangs or
 5assertions.
 6
 7--- mono/metadata/threads.c.orig 2012-01-30 18:01:23.000000000 +0000
 8+++ mono/metadata/threads.c
 9@@ -1,3 +1,4 @@
 10+
 11 /*
 12 * threads.c: Thread support internal calls
 13 *
 14@@ -77,6 +78,8 @@ extern int tkill (pid_t tid, int signal)
 15 # endif
 16 #endif
 17
 18+static int tls_key_initialised;
 19+
 20 struct StartInfo
 21 {
 22 guint32 (*func)(void *);
 23@@ -814,7 +817,8 @@ static guint32 WINAPI start_wrapper_inte
 24 * Boehm GC - the io-layer keeps a GC-visible hash of pointers
 25 * to TLS data.)
 26 */
 27- SET_CURRENT_OBJECT (NULL);
 28+ if (tls_key_initialised)
 29+ SET_CURRENT_OBJECT (NULL);
 30 mono_domain_unset ();
 31
 32 return(0);
 33@@ -1016,8 +1020,16 @@ mono_thread_get_stack_bounds (guint8 **s
5 # if !defined(__OpenBSD__) 34 # if !defined(__OpenBSD__)
6 pthread_attr_getstack (&attr, (void**)staddr, stsize); 35 pthread_attr_getstack (&attr, (void**)staddr, stsize);
7 # endif 36 # endif
8+ /* 37+ /*
9+ * he@NetBSD.org: For some reason, this test fails on NetBSD/powerpc, 38+ * he@NetBSD.org: For some reason, this test fails on NetBSD/powerpc,
10+ * so just avoid it. 39+ * so just avoid it.
11+ * kefren@: as a hint if somebody want to take a closer look: this 40+ * kefren@: as a hint if somebody want to take a closer look: this
12+ * triggers also when building in a i386 chroot on amd64 41+ * triggers also when building in a i386 chroot on amd64
13+ */ 42+ */
14+# if !(defined(__NetBSD__) && defined(__powerpc__)) 43+# if !(defined(__NetBSD__) && defined(__powerpc__))
15 if (*staddr) 44 if (*staddr)
16 g_assert ((current > *staddr) && (current < *staddr + *stsize)); 45 g_assert ((current > *staddr) && (current < *staddr + *stsize));
17+# endif 46+# endif
18 # endif 47 # endif
19  48
20 pthread_attr_destroy (&attr); 49 pthread_attr_destroy (&attr);
 50@@ -2651,6 +2663,7 @@ void mono_thread_init (MonoThreadStartCB
 51 mono_init_static_data_info (&context_static_info);
 52
 53 mono_native_tls_alloc (&current_object_key, NULL);
 54+ tls_key_initialised = 1;
 55 THREAD_DEBUG (g_message ("%s: Allocated current_object_key %d", __func__, current_object_key));
 56
 57 mono_thread_start_cb = start_cb;
 58@@ -2701,6 +2714,7 @@ void mono_thread_cleanup (void)
 59 delayed_free_table = NULL;
 60
 61 mono_native_tls_free (current_object_key);
 62+ tls_key_initialised = 0;
 63 }
 64
 65 void