aboutsummaryrefslogtreecommitdiffstats
path: root/lang/mono
diff options
context:
space:
mode:
authorromain <romain@FreeBSD.org>2010-10-19 01:40:17 +0800
committerromain <romain@FreeBSD.org>2010-10-19 01:40:17 +0800
commitbede72413a308198220b588fcff59034c8558bac (patch)
treeab0ef3e349a573721a26a6a45d06c9e527dda3ee /lang/mono
parent18934f9e50113522249ceb823094e5dec0cab6c7 (diff)
downloadfreebsd-ports-gnome-bede72413a308198220b588fcff59034c8558bac.tar.gz
freebsd-ports-gnome-bede72413a308198220b588fcff59034c8558bac.tar.zst
freebsd-ports-gnome-bede72413a308198220b588fcff59034c8558bac.zip
- Fix SigSegv when calling a managed handler.
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();