aboutsummaryrefslogtreecommitdiff
path: root/lang/mono
diff options
context:
space:
mode:
Diffstat (limited to 'lang/mono')
-rw-r--r--lang/mono/Makefile1
-rw-r--r--lang/mono/files/patch-libgc_pthread__support.c17
2 files changed, 18 insertions, 0 deletions
diff --git a/lang/mono/Makefile b/lang/mono/Makefile
index 7f9fee751da6..060d5d01b152 100644
--- a/lang/mono/Makefile
+++ b/lang/mono/Makefile
@@ -7,6 +7,7 @@
PORTNAME= mono
PORTVERSION= 2.6.7
+PORTREVISION= 1
CATEGORIES= lang
MASTER_SITES= http://ftp.novell.com/pub/mono/sources/${PORTNAME}/
diff --git a/lang/mono/files/patch-libgc_pthread__support.c b/lang/mono/files/patch-libgc_pthread__support.c
new file mode 100644
index 000000000000..3a3526bc564d
--- /dev/null
+++ b/lang/mono/files/patch-libgc_pthread__support.c
@@ -0,0 +1,17 @@
+
+$FreeBSD$
+
+https://bugzilla.novell.com/show_bug.cgi?id=647248
+
+--- libgc/pthread_support.c.orig
++++ libgc/pthread_support.c
+@@ -1344,7 +1344,8 @@ void * GC_start_routine_head(void * arg, void *base_addr,
+ if (start) *start = si -> start_routine;
+ if (start_arg) *start_arg = si -> arg;
+
+- sem_post(&(si -> registered)); /* Last action on si. */
++ if (!(si->flags & FOREIGN_THREAD))
++ sem_post(&(si -> registered)); /* Last action on si. */
+ /* OK to deallocate. */
+ # if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
+ LOCK();