aboutsummaryrefslogtreecommitdiffstats
path: root/lang/mono
diff options
context:
space:
mode:
authortmclaugh <tmclaugh@FreeBSD.org>2007-02-25 10:12:20 +0800
committertmclaugh <tmclaugh@FreeBSD.org>2007-02-25 10:12:20 +0800
commitf6247dad9dbea985c5a115c5bfa5ea50b7a9567c (patch)
tree801314cc7f02ce381461310511477c713d48b158 /lang/mono
parentf3a72a6bea1f68f8283e6865b1bbb9eccc303016 (diff)
downloadfreebsd-ports-gnome-f6247dad9dbea985c5a115c5bfa5ea50b7a9567c.tar.gz
freebsd-ports-gnome-f6247dad9dbea985c5a115c5bfa5ea50b7a9567c.tar.zst
freebsd-ports-gnome-f6247dad9dbea985c5a115c5bfa5ea50b7a9567c.zip
- Work around crashes during build due to LC_* settings in environment by
setting LC_ALL=C [1] - Crash instead of looping infinitely when Mono can't obtain a semaphore. Patch from Mono's SVN [2] Reported by: A few people [1], pointyhat [2] Submitted by: Phillip Neumann [1], Lou Kamenov [2]
Diffstat (limited to 'lang/mono')
-rw-r--r--lang/mono/Makefile23
-rw-r--r--lang/mono/files/patch-mono_io-layer_shared.c15
2 files changed, 29 insertions, 9 deletions
diff --git a/lang/mono/Makefile b/lang/mono/Makefile
index 0ad6f6314c4b..918771680b2a 100644
--- a/lang/mono/Makefile
+++ b/lang/mono/Makefile
@@ -8,7 +8,7 @@
PORTNAME= mono
PORTVERSION= 1.2.2.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= lang
MASTER_SITES= http://www.go-mono.com/sources/mono/ \
${MASTER_SITE_LOCAL}
@@ -33,6 +33,19 @@ CONFIGURE_ARGS= --program-transform-name=\'\' \
--with-tls=pthread
MAKE_ARGS= EXTERNAL_MCS=false
+# Set location for .wapi creation.
+MONO_SHARED_DIR=${WRKDIR}
+
+# LC_ALL is set in order to work around issues people are having when using
+# other languages. This has shown itself in build fails and possibly other
+# strange crashes.
+MAKE_ENV= MONO_SHARED_DIR="${MONO_SHARED_DIR}" \
+ LC_ALL=C
+
+# Removed amd64 arch because builds are exhibiting semaphore problems on
+# pointyhat runs causing failure to build.
+ONLY_FOR_ARCHS= i386 #amd64
+
MAN1= al.1 cert2spc.1 certmgr.1 chktrust.1 cilc.1 disco.1 dtd2xsd.1 \
gacutil.1 genxs.1 ilasm.1 jay.1 macpack.1 makecert.1 mcs.1 \
mint.1 mkbundle.1 mono-service.1 mono-shlib-cop.1 mono.1 \
@@ -41,14 +54,6 @@ MAN1= al.1 cert2spc.1 certmgr.1 chktrust.1 cilc.1 disco.1 dtd2xsd.1 \
soapsuds.1 sqlsharp.1 wsdl.1 xsd.1 mono-xmltool.1 sgen.1
MAN5= mono-config.5
-# Removed amd64 arch because builds are exhibiting semaphore problems on
-# pointyhat runs causing failure to build.
-ONLY_FOR_ARCHS= i386 #amd64
-
-MONO_SHARED_DIR=${WRKDIR}
-
-MAKE_ENV=MONO_SHARED_DIR=${MONO_SHARED_DIR}
-
.include <bsd.port.pre.mk>
pre-everything::
diff --git a/lang/mono/files/patch-mono_io-layer_shared.c b/lang/mono/files/patch-mono_io-layer_shared.c
new file mode 100644
index 000000000000..140d0c10fa7c
--- /dev/null
+++ b/lang/mono/files/patch-mono_io-layer_shared.c
@@ -0,0 +1,15 @@
+--- mono/io-layer/shared.c.orig Fri Dec 1 01:57:46 2006
++++ mono/io-layer/shared.c Wed Feb 21 13:28:07 2007
+@@ -330,10 +330,10 @@
+ while ((_wapi_sem_id = semget (key, _WAPI_SHARED_SEM_COUNT,
+ IPC_CREAT | IPC_EXCL | 0600)) == -1) {
+ if (errno == ENOMEM) {
+- g_critical ("%s: semget error: %s", __func__,
++ g_error ("%s: semget error: %s", __func__,
+ g_strerror (errno));
+ } else if (errno == ENOSPC) {
+- g_critical ("%s: semget error: %s. Try deleting some semaphores with ipcs and ipcrm", __func__, g_strerror (errno));
++ g_error ("%s: semget error: %s. Try deleting some semaphores with ipcs and ipcrm\nor increase the maximum number of semaphore in the system.", __func__, g_strerror (errno));
+ } else if (errno != EEXIST) {
+ if (retries > 3)
+ g_warning ("%s: semget error: %s key 0x%x - trying again", __func__,