summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/mono/Makefile4
-rw-r--r--lang/mono/distinfo5
-rw-r--r--lang/mono/patches/patch-ak27
-rw-r--r--lang/mono/patches/patch-libgc_misc.c36
4 files changed, 65 insertions, 7 deletions
diff --git a/lang/mono/Makefile b/lang/mono/Makefile
index b202d38d224..ff3aa1551a7 100644
--- a/lang/mono/Makefile
+++ b/lang/mono/Makefile
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.162 2015/06/12 10:50:16 wiz Exp $
+# $NetBSD: Makefile,v 1.163 2015/06/15 09:27:29 joerg Exp $
DISTNAME= mono-4.0.1
-PKGREVISION= 2
+PKGREVISION= 3
CATEGORIES= lang
MASTER_SITES= http://download.mono-project.com/sources/mono/
EXTRACT_SUFX= .tar.bz2
diff --git a/lang/mono/distinfo b/lang/mono/distinfo
index b8bdba4bcaf..8cfd475a19c 100644
--- a/lang/mono/distinfo
+++ b/lang/mono/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.103 2015/06/04 17:16:20 jperkin Exp $
+$NetBSD: distinfo,v 1.104 2015/06/15 09:27:29 joerg Exp $
SHA1 (mono-4.0.1.tar.bz2) = 9c7c27caa69e6a1673753437fd6824e0d33fe2ac
RMD160 (mono-4.0.1.tar.bz2) = 3adcb49d7da9a4d81b7f5bc2108d13c20d94ab15
@@ -9,7 +9,7 @@ SHA1 (patch-ae) = 25869b98f9197243aea799b75b238d92f58e8845
SHA1 (patch-af) = 6a458a91dc34420d45238b5dad01ed63f0bd9e00
SHA1 (patch-ai) = d06c382d188f4263a2a505ca3d3ee491baa3af28
SHA1 (patch-aj) = 33b75ec2662cc442f602b21b03fee1e5c39e3a76
-SHA1 (patch-ak) = 919379dbf2a35c23010c87d9e95e124e8e84d04a
+SHA1 (patch-ak) = 262845edcf84cf5127b7e01963f0d433aad7682a
SHA1 (patch-al) = 07462d3f9cf2aa08b1fb837400084d32a7062eee
SHA1 (patch-am) = ff0af9c120ebeb59edcdb727c7d36aa5939c73af
SHA1 (patch-ap) = e0590d7014ae4ef74ee9f9c39f069411a66c8f76
@@ -40,6 +40,7 @@ SHA1 (patch-dj) = 049cc88dc523975404445f13de81255d75a22156
SHA1 (patch-dk) = ad78819e71f082d0b7f262c162d3a67cfdfdcf2f
SHA1 (patch-dl) = dc63c1d3f6a1d78b2f5bb725cdff6824e2307dc5
SHA1 (patch-do) = 0bda0d2e482be218fb502e0c4ea945a41d078d27
+SHA1 (patch-libgc_misc.c) = 52c68e7b6f1b58f480286bd135591f97a3e13125
SHA1 (patch-man_mprof-report.1) = 0a80c164614cc9af5f01822005193d80f1d89946
SHA1 (patch-mono_dis_Makefile.in) = f000112e2712faf29104489e45feae8d6fc45169
SHA1 (patch-mono_metadata_icall.c) = 191a7fccb174855026cb11dd0f6ac450bb920ec7
diff --git a/lang/mono/patches/patch-ak b/lang/mono/patches/patch-ak
index 60abd763702..8dd30c8de1f 100644
--- a/lang/mono/patches/patch-ak
+++ b/lang/mono/patches/patch-ak
@@ -1,5 +1,5 @@
-$NetBSD: patch-ak,v 1.11 2014/11/30 08:40:51 spz Exp $
---- libgc/pthread_support.c.orig 2014-09-22 13:23:05.000000000 +0000
+$NetBSD: patch-ak,v 1.12 2015/06/15 09:27:29 joerg Exp $
+--- libgc/pthread_support.c.orig 2015-04-24 01:26:16.000000000 +0000
+++ libgc/pthread_support.c
@@ -71,7 +71,7 @@
defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS)) || \
@@ -10,7 +10,28 @@ $NetBSD: patch-ak,v 1.11 2014/11/30 08:40:51 spz Exp $
# define USE_PTHREAD_SPECIFIC
# endif
#endif
-@@ -1282,6 +1282,22 @@ void GC_end_blocking(void) {
+@@ -595,6 +595,20 @@ static void start_mark_threads()
+ }
+ }
+ # endif /* HPUX || GC_DGUX386_THREADS */
++# if defined(__NetBSD__)
++# define MAX_STACK_SIZE (1024 * 1024 *sizeof(word))
++ {
++ size_t old_size;
++ int code;
++
++ if (pthread_attr_getstacksize(&attr, &old_size) != 0)
++ ABORT("pthread_attr_getstacksize failed\n");
++ if (old_size > MAX_STACK_SIZE) {
++ if (pthread_attr_setstacksize(&attr, MAX_STACK_SIZE) != 0)
++ ABORT("pthread_attr_setstacksize failed\n");
++ }
++ }
++# endif
+ # ifdef CONDPRINT
+ if (GC_print_stats) {
+ GC_printf1("Starting %ld marker threads\n", GC_markers - 1);
+@@ -1282,6 +1296,22 @@ void GC_end_blocking(void) {
#define __d10_sleep sleep
#endif /* GC_DGUX386_THREADS */
diff --git a/lang/mono/patches/patch-libgc_misc.c b/lang/mono/patches/patch-libgc_misc.c
new file mode 100644
index 00000000000..5d69eca69c8
--- /dev/null
+++ b/lang/mono/patches/patch-libgc_misc.c
@@ -0,0 +1,36 @@
+$NetBSD: patch-libgc_misc.c,v 1.1 2015/06/15 09:27:29 joerg Exp $
+
+--- libgc/misc.c.orig 2015-06-13 23:08:46.000000000 +0000
++++ libgc/misc.c
+@@ -14,10 +14,10 @@
+ */
+ /* Boehm, July 31, 1995 5:02 pm PDT */
+
+-
+ #include <stdio.h>
+ #include <limits.h>
+ #ifndef _WIN32_WCE
++#include <sys/resource.h>
+ #include <signal.h>
+ #endif
+
+@@ -766,6 +766,19 @@ void GC_init_inner()
+ initial_heap_sz = divHBLKSZ(initial_heap_sz);
+ }
+ }
++#ifdef RLIMIT_AS
++ {
++ /*
++ * If there is a VA limit for the process,
++ * keep the heap under 75% if that limit.
++ */
++ struct rlimit lim;
++ if (!getrlimit(RLIMIT_AS, &lim)) {
++ if (lim.rlim_cur != RLIM_INFINITY && lim.rlim_cur == (word)lim.rlim_cur)
++ GC_set_max_heap_size(lim.rlim_cur / 2 + lim.rlim_cur / 4);
++ }
++ }
++#endif
+ {
+ char * sz_str = GETENV("GC_MAXIMUM_HEAP_SIZE");
+ if (sz_str != NULL) {