Wed Feb 12 13:43:31 2020 UTC ()
mono6: Fix build on modern NetBSD with POSIX iconv(3)


(kamil)
diff -r1.5 -r1.6 pkgsrc/lang/mono6/distinfo
diff -r0 -r1.1 pkgsrc/lang/mono6/patches/patch-mono_eglib_giconv.c

cvs diff -r1.5 -r1.6 pkgsrc/lang/mono6/Attic/distinfo (expand / switch to context diff)
--- pkgsrc/lang/mono6/Attic/distinfo 2020/01/09 15:26:36 1.5
+++ pkgsrc/lang/mono6/Attic/distinfo 2020/02/12 13:43:31 1.6
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.5 2020/01/09 15:26:36 ryoon Exp $
+$NetBSD: distinfo,v 1.6 2020/02/12 13:43:31 kamil Exp $
 
 SHA1 (mono-6.6.0.161.tar.xz) = e67eb01dc72db45bcc40169c65b54f17f64ddadb
 RMD160 (mono-6.6.0.161.tar.xz) = 36f11f69fe7530ccf2c745fee787e48c6e737f32
@@ -13,6 +13,7 @@
 SHA1 (patch-data_net__4__5_Browsers_Makefile.am) = 80bd57a2ac3fc95adef18acd9cfd7744ca112b01
 SHA1 (patch-data_net__4__5_Makefile.am) = d7591e835bfdd27fa0fba4b669b778924c811be4
 SHA1 (patch-mcs_class_corlib_Test_Mono_MonoNativePlatformType.cs) = 226b2638ba0106539e8ab5d9698803c6421147f0
+SHA1 (patch-mono_eglib_giconv.c) = 04d2559d3868605194efd6267da010870f53d961
 SHA1 (patch-mono_metadata_icall.c) = b326c16e9aa8f9ee154d937128e5e09fd31b235a
 SHA1 (patch-mono_metadata_mono-config.c) = 510fc7a2dde144f593ebccb0258c3753dfe5ce52
 SHA1 (patch-mono_metadata_threads.c) = e1432cced0dafce1a2712869ce79e12a2ab35973

File Added: pkgsrc/lang/mono6/patches/Attic/patch-mono_eglib_giconv.c
$NetBSD: patch-mono_eglib_giconv.c,v 1.1 2020/02/12 13:43:31 kamil Exp $

Support POSIX iconv(3) on modern NetBSD.

--- mono/eglib/giconv.c.orig	2019-12-10 07:50:32.000000000 +0000
+++ mono/eglib/giconv.c
@@ -37,6 +37,14 @@
 #define FORCE_INLINE(RET_TYPE) inline RET_TYPE __attribute__((always_inline))
 #endif
 
+#if defined(__NetBSD__)
+#include <sys/param.h>
+#if __NetBSD_Prereq__(9,99,17)
+#define NETBSD_POSIX_ICONV 1
+#else
+#define NETBSD_POSIX_ICONV 0
+#endif
+#endif
 
 #define UNROLL_DECODE_UTF8 0
 #define UNROLL_ENCODE_UTF8 0
@@ -196,7 +204,7 @@ g_iconv (GIConv cd, gchar **inbytes, gsi
 		} else {
 			outleftptr = NULL;
 		}
-#if defined(__NetBSD__)
+#if defined(__NetBSD__) && !NETBSD_POSIX_ICONV
 		return iconv (cd->cd, (const gchar **)inbytes, inleftptr, outbytes, outleftptr);
 #else
 		return iconv (cd->cd, inbytes, inleftptr, outbytes, outleftptr);