Wed Nov 19 11:17:49 2008 UTC ()
reenable MAKE_JOBS_SAFE (2.0.1 compiled OK several times on i386 and amd64)
let configure choose tls model
provide atomic_ops to Interlock functions in newer NetBSDs
bump PKGREVISION


(kefren)
diff -r1.74 -r1.75 pkgsrc/lang/mono/Makefile
diff -r1.40 -r1.41 pkgsrc/lang/mono/distinfo
diff -r1.14 -r1.15 pkgsrc/lang/mono/patches/patch-ab
diff -r0 -r1.4 pkgsrc/lang/mono/patches/patch-bb

cvs diff -r1.74 -r1.75 pkgsrc/lang/mono/Makefile (expand / switch to context diff)
--- pkgsrc/lang/mono/Makefile 2008/10/25 05:27:58 1.74
+++ pkgsrc/lang/mono/Makefile 2008/11/19 11:17:49 1.75
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile,v 1.74 2008/10/25 05:27:58 kefren Exp $
+# $NetBSD: Makefile,v 1.75 2008/11/19 11:17:49 kefren Exp $
 
 DISTNAME=	mono-${MONO_VERSION}
+PKGREVISION=	1
 CATEGORIES=	lang
 MASTER_SITES=	http://ftp.novell.com/pub/mono/sources/mono/
 EXTRACT_SUFX=	.tar.bz2
@@ -29,8 +30,6 @@
 CONFIGURE_ARGS+=	--with-preview=yes
 CONFIGURE_ARGS+=	--with-libgdiplus=installed
 CONFIGURE_ARGS+=	--with-moonlight=no
-
-MAKE_JOBS_SAFE=		no
 
 MAKE_FLAGS+=		PERL=${PERL5:Q}
 MAKE_FLAGS+=		mandir=${PREFIX}/${PKGMANDIR}

cvs diff -r1.40 -r1.41 pkgsrc/lang/mono/distinfo (expand / switch to context diff)
--- pkgsrc/lang/mono/distinfo 2008/10/25 05:27:58 1.40
+++ pkgsrc/lang/mono/distinfo 2008/11/19 11:17:49 1.41
@@ -1,9 +1,9 @@
-$NetBSD: distinfo,v 1.40 2008/10/25 05:27:58 kefren Exp $
+$NetBSD: distinfo,v 1.41 2008/11/19 11:17:49 kefren Exp $
 
 SHA1 (mono-2.0.1.tar.bz2) = 1c06d614b9b83ca0c8cff98d06136fd5a17344e2
 RMD160 (mono-2.0.1.tar.bz2) = ecada26dc398f0ea4cc4cae62885f4d1438bd540
 Size (mono-2.0.1.tar.bz2) = 19385815 bytes
-SHA1 (patch-ab) = 28217e3c8bbbde2e26d33bf32297e99971e3d436
+SHA1 (patch-ab) = c5011d00d34c92b32d4243adac26b531ce40df00
 SHA1 (patch-ac) = f88e1a034063a7f14e73d2e314e362d950c65e05
 SHA1 (patch-ae) = f0654c3103e3d69c44158456f481e5a357350cb1
 SHA1 (patch-af) = abe2bc406e8f58c00f4d1226bda3c5fb9d4ea36f
@@ -13,6 +13,7 @@
 SHA1 (patch-aq) = 2279dc6b46eded6f5a67b04e79779c1c7117fbc5
 SHA1 (patch-ar) = 7a2a916f3362da087b2dcfe6b91ba47339151e5b
 SHA1 (patch-ba) = b5d7f5832ea53dd00af67ac94b5289d71f0d2152
+SHA1 (patch-bb) = e11e7af5c745f1ef315c46d5bb87944d08a058ff
 SHA1 (patch-bc) = bbf1a903cf7fee1dbd3a070b0ef0d5aecbdf67e2
 SHA1 (patch-bd) = cf15b750dbd93ebf0e0e5165b8a10aabbf4f1642
 SHA1 (patch-be) = d7a6232690ecd15c32ed44dcc498e596c248f332

cvs diff -r1.14 -r1.15 pkgsrc/lang/mono/patches/Attic/patch-ab (expand / switch to context diff)
--- pkgsrc/lang/mono/patches/Attic/patch-ab 2008/02/13 14:16:43 1.14
+++ pkgsrc/lang/mono/patches/Attic/patch-ab 2008/11/19 11:17:49 1.15
@@ -1,14 +1,13 @@
-$NetBSD: patch-ab,v 1.14 2008/02/13 14:16:43 kefren Exp $
+$NetBSD: patch-ab,v 1.15 2008/11/19 11:17:49 kefren Exp $
 --- configure.orig	2008-02-05 14:21:50.000000000 +0200
 +++ configure	2008-02-05 14:24:06.000000000 +0200
-@@ -2890,8 +2890,9 @@
+@@ -2890,7 +2890,7 @@
  		CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD"
  		libmono_ldflags="-pthread"
  		need_link_unlink=yes
 -		libdl="-ldl"
 +		libdl="-ldl /libexec/ld.elf_so"
  		libgc_threads=pthreads
-+		with_tls=__thread
  		with_sigaltstack=no
  		;;
  # these flags will work for all versions of -STABLE

File Added: pkgsrc/lang/mono/patches/Attic/patch-bb
$NetBSD: patch-bb,v 1.4 2008/11/19 11:17:49 kefren Exp $
--- mono/io-layer/atomic.h.orig	2008-07-01 20:50:32.000000000 +0300
+++ mono/io-layer/atomic.h	2008-11-19 11:37:19.000000000 +0200
@@ -10,11 +10,61 @@
 #ifndef _WAPI_ATOMIC_H_
 #define _WAPI_ATOMIC_H_
 
+#if defined(__NetBSD__)
+#include <sys/param.h>
+
+#if __NetBSD_Version__ > 499004000
+#include <sys/atomic.h>
+#define HAVE_ATOMIC_OPS
+#endif
+
+#endif
+
 #include <glib.h>
 
 #include "mono/io-layer/wapi.h"
 
-#if defined(__i386__) || defined(__x86_64__)
+#if defined(__NetBSD__) && defined(HAVE_ATOMIC_OPS)
+
+#define WAPI_ATOMIC_ASM
+static inline gint32 InterlockedCompareExchange(volatile gint32 *dest,
+	gint32 exch, gint32 comp)
+{
+	return atomic_cas_32((uint32_t*)dest, comp, exch);
+}
+
+static inline gpointer InterlockedCompareExchangePointer(volatile gpointer *dest, gpointer exch, gpointer comp)
+{
+	return atomic_cas_ptr(dest, comp, exch);
+}
+
+static inline gint32 InterlockedIncrement(volatile gint32 *val)
+{
+	return atomic_inc_32_nv((uint32_t*)val);
+}
+
+static inline gint32 InterlockedDecrement(volatile gint32 *val)
+{
+	return atomic_dec_32_nv((uint32_t*)val);
+}
+
+static inline gint32 InterlockedExchange(volatile gint32 *val, gint32 new_val)
+{
+	return atomic_swap_32((uint32_t*)val, new_val);
+}
+
+static inline gpointer InterlockedExchangePointer(volatile gpointer *val,
+		gpointer new_val)
+{
+	return atomic_swap_ptr(val, new_val);
+}
+
+static inline gint32 InterlockedExchangeAdd(volatile gint32 *val, gint32 add)
+{
+	return atomic_add_32_nv((uint32_t*)val, add) - add;
+}
+
+#elif defined(__i386__) || defined(__x86_64__)
 #define WAPI_ATOMIC_ASM
 
 /*