Jumbo patch containing all patches from pkgsrc, thanks! $NetBSD: patch-af,v 1.10 2008/04/19 18:42:10 kefren Exp $ --- mono/metadata/Makefile.in.orig 2008-03-11 01:37:56.000000000 +0200 +++ mono/metadata/Makefile.in 2008-03-18 15:35:22.000000000 +0200 @@ -65,7 +65,7 @@ libmonoruntime_static_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libmonoruntime_static_la_LDFLAGS) $(LDFLAGS) -o $@ -libmonoruntime_la_LIBADD = +libmonoruntime_la_LIBADD = $(ICU_LIBS) am_libmonoruntime_la_OBJECTS = reflection.lo object.lo icall.lo \ decimal.lo boehm-gc.lo null-gc.lo sgen-gc.lo gc.lo \ method-builder.lo marshal.lo mono-mlist.lo monitor.lo \ $NetBSD: patch-cf,v 1.3 2008/10/10 22:02:43 kefren Exp $ --- mono/metadata/class.c.orig 2008-10-10 23:57:39.000000000 +0300 +++ mono/metadata/class.c 2008-10-10 23:58:35.000000000 +0300 @@ -7445,7 +7445,10 @@ gboolean mono_class_generic_sharing_enabled (MonoClass *class) { -#if defined(__i386__) || defined(__x86_64__) +#if defined(__NetBSD__) && defined(__x86_64__) +/* https://bugzilla.novell.com/show_bug.cgi?id=434457 */ + static gboolean supported = FALSE; +#elif defined(__i386__) || defined(__x86_64__) static gboolean supported = TRUE; #else /* Not supported by the JIT backends */ $NetBSD: patch-cd,v 1.1 2008/02/13 14:16:43 kefren Exp $ --- mono/mini/exceptions-amd64.c.orig 2008-02-05 23:56:30.000000000 +0200 +++ mono/mini/exceptions-amd64.c 2008-02-05 23:53:28.000000000 +0200 @@ -682,7 +682,7 @@ mono_arch_handle_exception (void *sigctx static inline guint64* gregs_from_ucontext (ucontext_t *ctx) { -#ifdef __FreeBSD__ +#if defined (__FreeBSD__) || defined (__NetBSD__) guint64 *gregs = (guint64 *) &ctx->uc_mcontext; #else guint64 *gregs = (guint64 *) &ctx->uc_mcontext.gregs; $NetBSD: patch-cc,v 1.1 2008/02/13 14:16:43 kefren Exp $ --- mono/mini/mini-amd64.h.orig 2008-02-05 23:55:50.000000000 +0200 +++ mono/mini/mini-amd64.h 2008-02-05 23:51:38.000000000 +0200 @@ -220,7 +220,7 @@ typedef struct { #endif /* PLATFORM_WIN32 */ -#ifdef __FreeBSD__ +#if defined (__FreeBSD__) || defined (__NetBSD__) #define REG_RAX 7 #define REG_RCX 4 $NetBSD: patch-ak,v 1.8 2008/02/13 14:16:43 kefren Exp $ --- libgc/pthread_support.c.orig 2007-11-09 00:07:02.000000000 +0200 +++ libgc/pthread_support.c 2008-02-05 14:01:40.000000000 +0200 @@ -1160,6 +1160,22 @@ void GC_end_blocking(void) { #define __d10_sleep sleep #endif /* GC_DGUX386_THREADS */ +#undef nanosleep +#undef usleep +#undef sleep + +/* A wrapper for the standard C nanosleep function */ +int WRAP_FUNC(nanosleep) (const struct timespec *rqtp, struct timespec *rmtp) +{ + int result; + + GC_start_blocking(); + result = REAL_FUNC(nanosleep)(rqtp, rmtp); + GC_end_blocking(); + + return result; +} + /* A wrapper for the standard C sleep function */ int WRAP_FUNC(sleep) (unsigned int seconds) { $NetBSD: patch-be,v 1.1 2007/08/03 07:46:54 taca Exp $ --- mono-1.1.13.8.1/support/sys-mman.corig 2006-04-11 07:21:37.000000000 +0900 +++ support/sys-mman.c 2007-08-03 22:04:18.000000000 +0900 @@ -96,8 +96,13 @@ if (Mono_Posix_FromMremapFlags (flags, &_flags) == -1) return MAP_FAILED; +#if defined(__NetBSD__) + return mremap (old_address, (size_t) old_size, old_address, (size_t) new_size, + (unsigned long) _flags); +#else return mremap (old_address, (size_t) old_size, (size_t) new_size, (unsigned long) _flags); +#endif } #endif /* def HAVE_MREMAP */ $NetBSD: patch-bf,v 1.2 2008/02/13 14:16:43 kefren Exp $ --- support/map.c.orig 2008-02-05 14:14:43.000000000 +0200 +++ support/map.c 2008-02-05 14:16:06.000000000 +0200 @@ -3011,13 +3011,21 @@ int Mono_Posix_ToMountFlags (guint64 x, int Mono_Posix_FromMremapFlags (guint64 x, guint64 *r) { +#ifdef __NetBSD__ + *r = MAP_FIXED; +#else *r = 0; +#endif if ((x & Mono_Posix_MremapFlags_MREMAP_MAYMOVE) == Mono_Posix_MremapFlags_MREMAP_MAYMOVE) +#ifdef __NetBSD__ + *r &= ~MAP_FIXED; +#else #ifdef MREMAP_MAYMOVE *r |= MREMAP_MAYMOVE; #else /* def MREMAP_MAYMOVE */ {errno = EINVAL; return -1;} #endif /* ndef MREMAP_MAYMOVE */ +#endif /* __NetBSD__ */ if (x == 0) return 0; return 0; $NetBSD: patch-bg,v 1.1 2008/02/13 14:16:43 kefren Exp $ --- mono/metadata/socket-io.c.orig 2008-02-07 08:37:02.000000000 +0200 +++ mono/metadata/socket-io.c 2008-02-07 08:37:17.000000000 +0200 @@ -2751,7 +2751,7 @@ struct sockaddr_in6 saddr6; struct addrinfo *info = NULL, hints; gint32 family; - char hostname[1024] = {0}; + char hostname[NI_MAXHOST] = {0}; int flags = 0; #else struct in_addr inaddr; $NetBSD: patch-bh,v 1.1 2008/02/13 14:16:43 kefren Exp $ --- mcs/class/Managed.Windows.Forms/build-csproj.orig 2008-02-07 08:44:48.000000000 +0200 +++ mcs/class/Managed.Windows.Forms/build-csproj 2008-02-07 08:44:59.000000000 +0200 @@ -177,7 +177,7 @@ { cat $Resource | while read SRC; do SRC=`echo $SRC | $tr '/' '\\\\'` -SRC=`echo $SRC | sed 's/-resource://' | gawk -F , '{print " RelPath = \"" $1 "\"\n CustomToolNameSpace = \"" $2 "\""}' | fgrep -v \"\"` +SRC=`echo $SRC | sed 's/-resource://' | awk -F , '{print " RelPath = \"" $1 "\"\n CustomToolNameSpace = \"" $2 "\""}' | fgrep -v \"\"` cat << EOT