Index: head/lang/mono6.8/Makefile =================================================================== --- head/lang/mono6.8/Makefile (revision 557879) +++ head/lang/mono6.8/Makefile (revision 557880) @@ -1,95 +1,119 @@ # Created by: Yukihiro Nakai # $FreeBSD$ PORTNAME= mono -PORTVERSION= 5.10.1.57 -PORTREVISION= 3 +PORTVERSION= 6.8.0.123 CATEGORIES= lang MASTER_SITES= https://download.mono-project.com/sources/mono/ DISTFILES= ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX} -MAINTAINER= mono@FreeBSD.org +MAINTAINER= linimon@FreeBSD.org COMMENT= Open source implementation of .NET Development Framework LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE -ONLY_FOR_ARCHS= amd64 armv6 armv7 i386 powerpc +NOT_FOR_ARCHS= riscv64 riscv64sf sparc64 BUILD_DEPENDS= p5-XML-Parser>=0:textproc/p5-XML-Parser \ bash:shells/bash \ cmake>0:devel/cmake LIB_DEPENDS= libinotify.so:devel/libinotify -RUN_DEPENDS= ${PY_PILLOW} \ - ca_root_nss>=0:security/ca_root_nss +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pillow>=0:graphics/py-pillow@${PY_FLAVOR} \ + ca_root_nss>=0:security/ca_root_nss \ + sqlite3>0:databases/sqlite3 \ + zip>=0:archivers/zip CONFLICTS_INSTALL= czmq-3* -OPTIONS_DEFINE= MONOLITE NLS X11 -OPTIONS_DEFAULT= MONOLITE X11 -OPTIONS_SUB= yes - -MONOLITE_DESC= Use monolite to bootstrap mcs (otherwise use installed mcs) -MONOLITE_DISTFILES= monolite-linux-${MONOLITE_VERSION}-latest.tar.gz:monolite -MONOLITE_MASTER_SITES= http://download.mono-project.com/monolite/:monolite -MONOLITE_VERSION= 1051000004 - -NLS_CONFIGURE_OFF= --disable-nls -NLS_USES= gettext - -X11_USES= display:test - USES= autoreconf bison compiler:c11 cpe gmake iconv libtool \ - pathfix perl5 python shebangfix tar:bzip2 + pathfix perl5 python:3.6+ shebangfix tar:xz USE_PERL5= build + +CONFIGURE_SCRIPT= autogen.sh GNU_CONFIGURE= yes USE_LDCONFIG= yes -SHEBANG_FILES= scripts/mono-heapviz mono/mini/genmdesc.py mono/tests/test_lldb.py -BINARY_ALIAS= python=${PYTHON_CMD} -CONFIGURE_ARGS= --disable-dtrace --enable-btls -CONFIGURE_ENV= ac_cv_header_sys_inotify_h=no +SHEBANG_FILES= scripts/mono-package-runtime scripts/mono-heapviz mono/mini/genmdesc.py \ + mono/tests/test_lldb.py mono/tests/gc-descriptors/gen-descriptor-tests.py \ + scripts/mono-find-provides.in scripts/mono-find-requires.in +BINARY_ALIAS= python=${PYTHON_CMD} +CONFIGURE_ARGS_aarch64= --with-csc=mcs +CONFIGURE_ARGS= ${CONFIGURE_ARGS_${ARCH}} --disable-dtrace +# Do not remove - this is needed to work around automake's lack of hinting +CONFIGURE_ENV+= ac_cv_header_sys_inotify_h=yes + MAKE_ENV= MONO_SHARED_DIR="${WRKDIR}" \ - INSTALL_STRIP_FLAG="${STRIP}" \ - TZ=UTC + INSTALL_STRIP_FLAG="${STRIP}" TEST_ARGS= -k TEST_TARGET= check PORTSCOUT= limit:^\d+\.\d+\.[1-9]\d* -LOCALBASE?= /usr/local -.if !exists(${LOCALBASE}/bin/mcs) -OPTIONS_SLAVE= MONOLITE +# XXX MCL mat says: no. Options must not change themselves depending on what is installed. +# XXX MCL just leave this out for now to try to get *something* done. +# .if !exists(${LOCALBASE}/bin/mcs) +# OPTIONS_SLAVE= MONOLITE +# .endif + +# intentionally sorted alpha, then SPECTRE and MONODEV at the end +# because they have performance and security implications +OPTIONS_DEFINE= BIGARRAY MONOLITE NINJA NLS ODBC X11 SPECTRE MONODEV +OPTIONS_DEFAULT= MONOLITE NLS X11 +OPTIONS_SUB= yes + +BIGARRAY_DESC= Enable allocating arrays greater than Int32.MaxValue +BIGARRAY_CONFIGURE_ENABLE= big-arrays + +MONOLITE_DESC= Use monolite to bootstrap mcs (otherwise use installed mcs) +MONOLITE_DISTFILES= monolite-linux-${MONOLITE_VERSION}-latest.tar.gz:monolite +MONOLITE_MASTER_SITES= http://download.mono-project.com/monolite/:monolite +# DO NOT ALTER OR REMOVE. DANGER, CASE-SENSITIVE! +# monolite 2020-01-13 @ 1798d23b +MONOLITE_VERSION= 1798d23b-3dbc-4161-b3f4-6bb00134ee4e + +MONODEV_DESC= Build for Mono development (disables crash privacy) +MONODEV_CONFIGURE_ON= --enable-icall-symbol-map --enable-icall-export --with-crash_privacy=no + +NINJA_DESC= Use ninja to build wherever possible +NINJA_CONFIGURE_ON= ninja +NINJA_BUILD_DEPENDS= ninja>0:devel/ninja + +NLS_DESC= NLS Localization Support +NLS_CONFIGURE_OFF= --disable-nls +NLS_USES= gettext + +ODBC_DESC= System.Data: support for unixODBC +ODBC_BUILD_DEPENDS= unixODBC>0:databases/unixODBC +ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC + +SPECTRE_DESC= Enable internal Mono Spectre mitigations (SEE pkg-descr) +SPECTRE_CONFIGURE_ON= --with-spectre-mitigation=yes + +X11_USES= display:test +X11_CONFIGURE_WITH= x +X11_RUN_DEPENDS= pango>0:x11-toolkits/pango \ + libgdiplus>0:x11-toolkits/libgdiplus + +.include + +.if defined(QEMU_EMULATING) && "${QEMU_EMULATING}" == "1" +BROKEN= fails to build under qemu: Roslyn requires more functional POSIX implementation .endif -post-extract-MONOLITE-on: - ${MKDIR} ${WRKSRC}/mcs/class/lib/monolite-linux - ${MV} ${WRKDIR}/monolite-linux-${MONOLITE_VERSION}-latest ${WRKSRC}/mcs/class/lib/monolite-linux/${MONOLITE_VERSION} +.if ${ARCH:Mpowerpc*} +PLIST+= ${.CURDIR}/pkg-plist.powerpc +.endif post-patch: - ${REINPLACE_CMD} -e 's|^#!/bin/bash|#!/usr/bin/env bash|g' \ - ${WRKSRC}/scripts/mono-find-provides.in \ - ${WRKSRC}/scripts/mono-find-requires.in \ - ${WRKSRC}/scripts/mono-test-install - ${FIND} ${WRKSRC} -name '*.sh' | ${XARGS} ${REINPLACE_CMD} \ - -e 's|^#!/bin/bash|#!/bin/sh|g' - ${SED} 's/tarball/${PORTVERSION}/' ${WRKSRC}/mono/mini/Makefile.am.in \ - > ${WRKSRC}/mono/mini/Makefile.am - ${REINPLACE_CMD} -e 's|/usr/share|${PREFIX}|g' \ - ${WRKSRC}/mcs/class/corlib/System/Environment.cs \ - ${WRKSRC}/external/corefx/src/System.Runtime.Extensions/src/System/Environment.Unix.cs - ${REINPLACE_CMD} -e 's|/usr/share/.mono|${PREFIX}/share/mono|g' \ - ${WRKSRC}/man/mono-configuration-crypto.1 \ - ${WRKSRC}/man/mono.1 \ - ${WRKSRC}/man/mozroots.1 + # Needed to force regeneration due to tarball packaging + ${RM} ${WRKSRC}/configure ${WRKSRC}/Makefile \ + ${WRKSRC}/mono/Makefile \ + ${WRKSRC}/mono/native/Makefile -post-configure: - ${REINPLACE_CMD} -e 's|share\/man|man|g' \ - ${WRKSRC}/mcs/jay/Makefile - post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/mono -.include +.include Index: head/lang/mono6.8/distinfo =================================================================== --- head/lang/mono6.8/distinfo (revision 557879) +++ head/lang/mono6.8/distinfo (revision 557880) @@ -1,5 +1,5 @@ -TIMESTAMP = 1535767329 -SHA256 (mono-5.10.1.57.tar.bz2) = 76cbd8545db6adc5a1738c343d957a7015c95e1439c461ea4f2bd56bd6337ab4 -SIZE (mono-5.10.1.57.tar.bz2) = 210896685 -SHA256 (monolite-linux-1051000004-latest.tar.gz) = 209804685ba87ecc5838addc8f089e858bfad4c7627c26d118f4f6889648e0cd -SIZE (monolite-linux-1051000004-latest.tar.gz) = 4820712 +TIMESTAMP = 1589939235 +SHA256 (mono-6.8.0.123.tar.xz) = e2e42d36e19f083fc0d82f6c02f7db80611d69767112af353df2f279744a2ac5 +SIZE (mono-6.8.0.123.tar.xz) = 243827664 +SHA256 (monolite-linux-1798d23b-3dbc-4161-b3f4-6bb00134ee4e-latest.tar.gz) = c8baa24750315156144586a416c9ae7ee0613a9472519b360f0fa75ffd66e825 +SIZE (monolite-linux-1798d23b-3dbc-4161-b3f4-6bb00134ee4e-latest.tar.gz) = 5359646 Index: head/lang/mono6.8/files/patch-configure.ac =================================================================== --- head/lang/mono6.8/files/patch-configure.ac (revision 557879) +++ head/lang/mono6.8/files/patch-configure.ac (nonexistent) @@ -1,20 +0,0 @@ ---- configure.ac.orig 2018-04-18 10:51:42.000000000 +0300 -+++ configure.ac 2018-06-24 02:38:19.860780000 +0300 -@@ -3271,6 +3271,8 @@ - BTLS_PLATFORM=i386 - ;; - openbsd*|freebsd*|kfreebsd-gnu*) -+ BTLS_SUPPORTED=yes -+ BTLS_PLATFORM=i386 - ;; - esac - ;; -@@ -3295,6 +3297,8 @@ - boehm_supported=false - ;; - openbsd*|freebsd*|kfreebsd-gnu*) -+ BTLS_SUPPORTED=yes -+ BTLS_PLATFORM=x86_64 - ;; - mingw*) - ;; Property changes on: head/lang/mono6.8/files/patch-configure.ac ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mcs_tools_mono-configuration-crypto_lib_Mono.Configuration.Crypto_KeyContainerCollection.cs =================================================================== --- head/lang/mono6.8/files/patch-mcs_tools_mono-configuration-crypto_lib_Mono.Configuration.Crypto_KeyContainerCollection.cs (revision 557879) +++ head/lang/mono6.8/files/patch-mcs_tools_mono-configuration-crypto_lib_Mono.Configuration.Crypto_KeyContainerCollection.cs (nonexistent) @@ -1,11 +0,0 @@ ---- mcs/tools/mono-configuration-crypto/lib/Mono.Configuration.Crypto/KeyContainerCollection.cs.orig 2017-07-20 18:10:59 UTC -+++ mcs/tools/mono-configuration-crypto/lib/Mono.Configuration.Crypto/KeyContainerCollection.cs -@@ -32,7 +32,7 @@ namespace Mono.Configuration.Crypto - string topPath; - - if (machineStore) -- topPath = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData), ".mono"); -+ topPath = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData), "mono"); - else - topPath = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), ".mono"); - topPath = Path.Combine (topPath, "keypairs"); Property changes on: head/lang/mono6.8/files/patch-mcs_tools_mono-configuration-crypto_lib_Mono.Configuration.Crypto_KeyContainerCollection.cs ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -on \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mcs_tools_xbuild_data_12.0_Microsoft.CSharp.targets =================================================================== --- head/lang/mono6.8/files/patch-mcs_tools_xbuild_data_12.0_Microsoft.CSharp.targets (revision 557879) +++ head/lang/mono6.8/files/patch-mcs_tools_xbuild_data_12.0_Microsoft.CSharp.targets (nonexistent) @@ -1,25 +0,0 @@ ---- mcs/tools/xbuild/data/12.0/Microsoft.CSharp.targets.orig 2017-07-20 18:10:59 UTC -+++ mcs/tools/xbuild/data/12.0/Microsoft.CSharp.targets -@@ -20,6 +20,11 @@ - true - - -+ -+ sn -+ $(CscToolPath) -+ -+ - - - -@@ -102,6 +107,10 @@ - ToolExe="$(CscToolExe)" - ToolPath="$(CscToolPath)" /> - -+ -+ - - - Property changes on: head/lang/mono6.8/files/patch-mcs_tools_xbuild_data_12.0_Microsoft.CSharp.targets ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -on \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mcs_tools_xbuild_data_14.0_Microsoft.CSharp.targets =================================================================== --- head/lang/mono6.8/files/patch-mcs_tools_xbuild_data_14.0_Microsoft.CSharp.targets (revision 557879) +++ head/lang/mono6.8/files/patch-mcs_tools_xbuild_data_14.0_Microsoft.CSharp.targets (nonexistent) @@ -1,25 +0,0 @@ ---- mcs/tools/xbuild/data/14.0/Microsoft.CSharp.targets.orig 2017-07-20 18:10:59 UTC -+++ mcs/tools/xbuild/data/14.0/Microsoft.CSharp.targets -@@ -20,6 +20,11 @@ - true - - -+ -+ sn -+ $(CscToolPath) -+ -+ - - - -@@ -102,6 +107,10 @@ - ToolExe="$(CscToolExe)" - ToolPath="$(CscToolPath)" /> - -+ -+ - - - Property changes on: head/lang/mono6.8/files/patch-mcs_tools_xbuild_data_14.0_Microsoft.CSharp.targets ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -on \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-scripts_mono-heapviz =================================================================== --- head/lang/mono6.8/files/patch-scripts_mono-heapviz (revision 557879) +++ head/lang/mono6.8/files/patch-scripts_mono-heapviz (nonexistent) @@ -1,11 +0,0 @@ ---- scripts/mono-heapviz.orig 2018-01-18 17:41:54 UTC -+++ scripts/mono-heapviz -@@ -7,7 +7,7 @@ - - from __future__ import print_function - import sys, os --import Image, ImageDraw -+from PIL import Image, ImageDraw - from xml.sax import ContentHandler, make_parser - from xml.sax.handler import feature_namespaces - from optparse import OptionParser Property changes on: head/lang/mono6.8/files/patch-scripts_mono-heapviz ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.X509_X509StoreManager.cs =================================================================== --- head/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.X509_X509StoreManager.cs (revision 557879) +++ head/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.X509_X509StoreManager.cs (nonexistent) @@ -1,20 +0,0 @@ ---- mcs/class/Mono.Security/Mono.Security.X509/X509StoreManager.cs.orig 2017-07-20 18:10:59 UTC -+++ mcs/class/Mono.Security/Mono.Security.X509/X509StoreManager.cs -@@ -73,7 +73,7 @@ namespace Mono.Security.X509 { - if (_localMachinePath == null) { - _localMachinePath = Path.Combine ( - Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData), -- ".mono"); -+ "mono"); - _localMachinePath = Path.Combine (_localMachinePath, "certs"); - } - return _localMachinePath; -@@ -97,7 +97,7 @@ namespace Mono.Security.X509 { - if (_newLocalMachinePath == null) { - _newLocalMachinePath = Path.Combine ( - Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData), -- ".mono"); -+ "mono"); - _newLocalMachinePath = Path.Combine (_newLocalMachinePath, "new-certs"); - } - return _newLocalMachinePath; Property changes on: head/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.X509_X509StoreManager.cs ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -on \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mono_utils_mono-threads.c =================================================================== --- head/lang/mono6.8/files/patch-mono_utils_mono-threads.c (revision 557879) +++ head/lang/mono6.8/files/patch-mono_utils_mono-threads.c (nonexistent) @@ -1,20 +0,0 @@ ---- mono/utils/mono-threads.c.orig 2018-04-13 23:37:57 UTC -+++ mono/utils/mono-threads.c -@@ -1316,7 +1316,7 @@ mono_thread_info_sleep (guint32 ms, gboo - } while (1); - } else { - int ret; --#if defined (__linux__) && !defined(HOST_ANDROID) -+#if defined (HAVE_CLOCK_NANOSLEEP) && !defined(HOST_ANDROID) - struct timespec start, target; - - /* Use clock_nanosleep () to prevent time drifting problems when nanosleep () is interrupted by signals */ -@@ -1346,7 +1346,7 @@ mono_thread_info_sleep (guint32 ms, gboo - memset (&rem, 0, sizeof (rem)); - ret = nanosleep (&req, &rem); - } while (ret != 0); --#endif /* __linux__ */ -+#endif /* HAVE_CLOCK_NANOSLEEP */ - } - - MONO_EXIT_GC_SAFE; Property changes on: head/lang/mono6.8/files/patch-mono_utils_mono-threads.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mono_mini_tramp-amd64.c =================================================================== --- head/lang/mono6.8/files/patch-mono_mini_tramp-amd64.c (revision 557879) +++ head/lang/mono6.8/files/patch-mono_mini_tramp-amd64.c (nonexistent) @@ -1,26 +0,0 @@ ---- mono/mini/tramp-amd64.c.orig 2018-04-13 23:37:57 UTC -+++ mono/mini/tramp-amd64.c -@@ -363,7 +363,11 @@ mono_arch_create_generic_trampoline (Mon - } - for (i = 0; i < AMD64_XMM_NREG; ++i) - if (AMD64_IS_ARGUMENT_XREG (i)) -+#if defined(MONO_HAVE_SIMD_REG) - amd64_movdqu_membase_reg (code, AMD64_RBP, saved_fpregs_offset + (i * sizeof(MonoContextSimdReg)), i); -+#else -+ amd64_movsd_membase_reg (code, AMD64_RBP, saved_fpregs_offset + (i * sizeof(double)), i); -+#endif - - /* Check that the stack is aligned */ - amd64_mov_reg_reg (code, AMD64_R11, AMD64_RSP, sizeof (mgreg_t)); -@@ -540,7 +544,11 @@ mono_arch_create_generic_trampoline (Mon - amd64_mov_reg_membase (code, i, AMD64_RBP, saved_regs_offset + (i * sizeof(mgreg_t)), sizeof(mgreg_t)); - for (i = 0; i < AMD64_XMM_NREG; ++i) - if (AMD64_IS_ARGUMENT_XREG (i)) -+#if defined(MONO_HAVE_SIMD_REG) - amd64_movdqu_reg_membase (code, i, AMD64_RBP, saved_fpregs_offset + (i * sizeof(MonoContextSimdReg))); -+#else -+ amd64_movsd_reg_membase (code, i, AMD64_RBP, saved_fpregs_offset + (i * sizeof(double))); -+#endif - - /* Restore stack */ - #if TARGET_WIN32 Property changes on: head/lang/mono6.8/files/patch-mono_mini_tramp-amd64.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -on \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mono_eglib_gfile-posix.c =================================================================== --- head/lang/mono6.8/files/patch-mono_eglib_gfile-posix.c (revision 557879) +++ head/lang/mono6.8/files/patch-mono_eglib_gfile-posix.c (nonexistent) @@ -1,11 +0,0 @@ ---- mono/eglib/gfile-posix.c.orig 2018-01-10 08:03:25 UTC -+++ mono/eglib/gfile-posix.c -@@ -161,7 +161,7 @@ g_get_current_dir (void) - do { - buffer = g_realloc (buffer, s); - r = getcwd (buffer, s); -- fail = (r == NULL && errno == ERANGE); -+ fail = (r == NULL && (errno == ERANGE || errno == 0)); - if (fail) { - s <<= 1; - } Property changes on: head/lang/mono6.8/files/patch-mono_eglib_gfile-posix.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -on \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.Cryptography_KeyPairPersistence.cs =================================================================== --- head/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.Cryptography_KeyPairPersistence.cs (revision 557879) +++ head/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.Cryptography_KeyPairPersistence.cs (nonexistent) @@ -1,11 +0,0 @@ ---- mcs/class/Mono.Security/Mono.Security.Cryptography/KeyPairPersistence.cs.orig 2017-07-20 18:10:59 UTC -+++ mcs/class/Mono.Security/Mono.Security.Cryptography/KeyPairPersistence.cs -@@ -244,7 +244,7 @@ namespace Mono.Security.Cryptography { - if ((_machinePath == null) || (!_machinePathExists)) { - _machinePath = Path.Combine ( - Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData), -- ".mono"); -+ "mono"); - _machinePath = Path.Combine (_machinePath, "keypairs"); - - _machinePathExists = Directory.Exists (_machinePath); Property changes on: head/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.Cryptography_KeyPairPersistence.cs ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -on \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mono_utils_mono-context.h =================================================================== --- head/lang/mono6.8/files/patch-mono_utils_mono-context.h (revision 557879) +++ head/lang/mono6.8/files/patch-mono_utils_mono-context.h (nonexistent) @@ -1,42 +0,0 @@ ---- mono/utils/mono-context.h.orig 2018-04-13 23:37:57 UTC -+++ mono/utils/mono-context.h -@@ -24,23 +24,30 @@ - - #if defined(TARGET_X86) - #if defined(__APPLE__) -+#define MONO_HAVE_SIMD_REG - typedef struct __darwin_xmm_reg MonoContextSimdReg; - #endif - #elif defined(TARGET_AMD64) - #if defined(__APPLE__) -+#define MONO_HAVE_SIMD_REG - typedef struct __darwin_xmm_reg MonoContextSimdReg; - #elif defined(__linux__) && defined(__GLIBC__) -+#define MONO_HAVE_SIMD_REG - typedef struct _libc_xmmreg MonoContextSimdReg; - #elif defined(HOST_WIN32) -+#define MONO_HAVE_SIMD_REG - #include - typedef __m128d MonoContextSimdReg; - #elif defined(HOST_ANDROID) -+#define MONO_HAVE_SIMD_REG - typedef struct _libc_xmmreg MonoContextSimdReg; - #elif defined(__linux__) -+#define MONO_HAVE_SIMD_REG - #include - typedef __m128d MonoContextSimdReg; - #endif - #elif defined(TARGET_ARM64) -+#define MONO_HAVE_SIMD_REG - typedef __uint128_t MonoContextSimdReg; - #endif - -@@ -255,7 +262,7 @@ typedef struct { - - typedef struct { - mgreg_t gregs [AMD64_NREG]; --#if defined(__APPLE__) || (defined(__linux__) && defined(__GLIBC__)) || defined(HOST_WIN32) -+#if defined(MONO_HAVE_SIMD_REG) - MonoContextSimdReg fregs [AMD64_XMM_NREG]; - #else - double fregs [AMD64_XMM_NREG]; Property changes on: head/lang/mono6.8/files/patch-mono_utils_mono-context.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -on \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-boringssl =================================================================== --- head/lang/mono6.8/files/patch-boringssl (nonexistent) +++ head/lang/mono6.8/files/patch-boringssl (revision 557880) @@ -0,0 +1,138 @@ +diff --git a/CODE-OF-CONDUCT.md external/boringssl/CODE-OF-CONDUCT.md +new file mode 100644 +index 00000000..775f221c +--- /dev/null ++++ external/boringssl/CODE-OF-CONDUCT.md +@@ -0,0 +1,6 @@ ++# Code of Conduct ++ ++This project has adopted the code of conduct defined by the Contributor Covenant ++to clarify expected behavior in our community. ++ ++For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct). +diff --git a/THIRD-PARTY-NOTICES.TXT external/boringssl/THIRD-PARTY-NOTICES.TXT +new file mode 100644 +index 00000000..069ac8f2 +--- /dev/null ++++ external/boringssl/THIRD-PARTY-NOTICES.TXT +@@ -0,0 +1,20 @@ ++Mono uses third-party libraries or other resources that may be ++distributed under licenses different than the .NET Core software. ++ ++ Attributions and license notices for test cases originally authored by ++third parties can be found in the respective test directories. ++ ++ In the event that we accidentally failed to list a required notice, please ++bring it to our attention. Post an issue or email us: ++ ++ dotnet@microsoft.com ++ ++ The attached notices are provided for information only. ++ ++ License notice for Code Project ++-------------------------------- ++ ++Title: Thread Local Storage - The C++ Way ++Content: https://www.codeproject.com/Articles/8113/Thread-Local-Storage-The-C-Way ++Reference: https://github.com/mono/boringssl/bloexternal/boringssl/eec2ca7e76c04ca41ef5bfc875ee3b0374cb7a94/crypto/thread_win.c#L138-L148 ++License: https://www.codeproject.com/info/EULA.aspx +diff --git a/crypto/aes/asm/aesv8-armx.pl external/boringssl/crypto/aes/asm/aesv8-armx.pl +index 89e6f874..c41175a6 100644 +--- a/crypto/aes/asm/aesv8-armx.pl ++++ external/boringssl/crypto/aes/asm/aesv8-armx.pl +@@ -51,15 +51,7 @@ $code=<<___; + .text + ___ + $code.=<<___ if ($flavour =~ /64/); +-#if !defined(__clang__) + .arch armv8-a+crypto +-#elif defined(ANDROID) && defined(__clang__) +-#if __clang_major__ > 3 +-.arch armv8-a+crypto +-#else +-.arch armv8-a+crypto,+neon +-#endif +-#endif + ___ + $code.=".arch armv7-a\n.fpu neon\n.code 32\n" if ($flavour !~ /64/); + #^^^^^^ this is done to simplify adoption by not depending +diff --git a/crypto/cpu-aarch64-linux.c external/boringssl/crypto/cpu-aarch64-linux.c +index 1b0f3955..93d12237 100644 +--- a/crypto/cpu-aarch64-linux.c ++++ external/boringssl/crypto/cpu-aarch64-linux.c +@@ -25,6 +25,48 @@ + + extern uint32_t OPENSSL_armcap_P; + ++#if defined(__FreeBSD__) ++ ++#include ++#include ++#include ++ ++// Support for older version of armreg.h ++#ifndef ID_AA64ISAR0_AES_VAL ++#define ID_AA64ISAR0_AES_VAL ID_AA64ISAR0_AES ++#endif ++#ifndef ID_AA64ISAR0_SHA1_VAL ++#define ID_AA64ISAR0_SHA1_VAL ID_AA64ISAR0_SHA1 ++#endif ++#ifndef ID_AA64ISAR0_SHA2_VAL ++#define ID_AA64ISAR0_SHA2_VAL ID_AA64ISAR0_SHA2 ++#endif ++ ++void OPENSSL_cpuid_setup(void) { ++ if (getenv("QEMU_EMULATING") != NULL) { ++ return; ++ } ++ ++ uint64_t isar0_val = READ_SPECIALREG(id_aa64isar0_el1); ++ ++ OPENSSL_armcap_P |= ARMV7_NEON; ++ ++ if (ID_AA64ISAR0_AES_VAL(isar0_val) >= ID_AA64ISAR0_AES_BASE) { ++ OPENSSL_armcap_P |= ARMV8_PMULL; ++ } ++ if (ID_AA64ISAR0_AES_VAL(isar0_val) >= ID_AA64ISAR0_AES_PMULL) { ++ OPENSSL_armcap_P |= ARMV8_PMULL; ++ } ++ if (ID_AA64ISAR0_SHA1_VAL(isar0_val) >= ID_AA64ISAR0_SHA1_BASE) { ++ OPENSSL_armcap_P |= ARMV8_SHA1; ++ } ++ if (ID_AA64ISAR0_SHA2_VAL(isar0_val) >= ID_AA64ISAR0_SHA2_BASE) { ++ OPENSSL_armcap_P |= ARMV8_SHA256; ++ } ++} ++ ++#else // linux ++ + void OPENSSL_cpuid_setup(void) { + unsigned long hwcap = getauxval(AT_HWCAP); + +@@ -58,4 +100,6 @@ void OPENSSL_cpuid_setup(void) { + } + } + ++#endif ++ + #endif /* OPENSSL_AARCH64 && !OPENSSL_STATIC_ARMCAP */ +diff --git a/crypto/modes/asm/ghashv8-armx.pl external/boringssl/crypto/modes/asm/ghashv8-armx.pl +index 73421405..eabef0cb 100644 +--- a/crypto/modes/asm/ghashv8-armx.pl ++++ external/boringssl/crypto/modes/asm/ghashv8-armx.pl +@@ -59,15 +59,7 @@ $code=<<___; + .text + ___ + $code.=<<___ if ($flavour =~ /64/); +-#if !defined(__clang__) + .arch armv8-a+crypto +-#elif defined(ANDROID) && defined(__clang__) +-#if __clang_major__ > 3 +-.arch armv8-a+crypto +-#else +-.arch armv8-a+crypto,+neon +-#endif +-#endif + ___ + $code.=".fpu neon\n.code 32\n" if ($flavour !~ /64/); + Property changes on: head/lang/mono6.8/files/patch-boringssl ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mono_configure.ac =================================================================== --- head/lang/mono6.8/files/patch-mono_configure.ac (nonexistent) +++ head/lang/mono6.8/files/patch-mono_configure.ac (revision 557880) @@ -0,0 +1,478 @@ +# Upstreamed for next release +# PR#19234 +# PR#18578 +--- configure.ac.orig 2020-03-15 16:11:23.394519000 -0400 ++++ configure.ac 2020-03-16 14:50:08.458816000 -0400 +@@ -2299,108 +2299,100 @@ + # We have the new, three-parameter version + AC_MSG_RESULT(no) + ]) + + dnl ****************************************************************** + dnl *** Check for large file support *** + dnl *** (If we were using autoconf 2.50 we'd use AC_SYS_LARGEFILE) *** + dnl ****************************************************************** + + # Check that off_t can represent 2**63 - 1 correctly, working around + # potential compiler bugs. Defines LARGE_FILE_SUPPORT, adds $1 to + # CPPFLAGS and sets $large_offt to yes if the test succeeds + large_offt=no + AC_DEFUN([LARGE_FILES], [ + large_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $1" + AC_TRY_COMPILE([ + #include + #include + ], [ + /* Lifted this compile time assert method from: http://www.jaggersoft.com/pubs/CVu11_3.html */ + #define COMPILE_TIME_ASSERT(pred) \ + switch(0){case 0:case pred:;} + COMPILE_TIME_ASSERT(sizeof(off_t) * CHAR_BIT == 64); + ], [ + AC_MSG_RESULT(ok) + AC_DEFINE(HAVE_LARGE_FILE_SUPPORT, 1, [Have large file support]) + large_CPPFLAGS="$large_CPPFLAGS $1" + large_offt=yes + ], [ + AC_MSG_RESULT(no) + ]) + CPPFLAGS=$large_CPPFLAGS + ]) + + AC_MSG_CHECKING(if off_t is 64 bits wide) + LARGE_FILES("") + if test $large_offt = no; then + AC_MSG_CHECKING(if _FILE_OFFSET_BITS=64 gives 64 bit off_t) + LARGE_FILES("-D_FILE_OFFSET_BITS=64") + fi + if test $large_offt = no; then + AC_MSG_WARN([No 64 bit file size support available]) + fi + + dnl ***************************** + dnl *** Checks for libsocket *** + dnl ***************************** + AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket") + +- case "$host" in +- *-*-*freebsd*) +- dnl ***************************** +- dnl *** Checks for libinotify *** +- dnl ***************************** +- AC_CHECK_LIB(inotify, inotify_init, LIBS="$LIBS -linotify") +- esac +- + dnl ******************************* + dnl *** Checks for MSG_NOSIGNAL *** + dnl ******************************* + AC_MSG_CHECKING(for MSG_NOSIGNAL) + AC_TRY_COMPILE([#include ], [ + int f = MSG_NOSIGNAL; + ], [ + # Yes, we have it... + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_MSG_NOSIGNAL, 1, [Have MSG_NOSIGNAL]) + ], [ + # We'll have to use signals + AC_MSG_RESULT(no) + ]) + + dnl ***************************** + dnl *** Checks for IPPROTO_IP *** + dnl ***************************** + AC_MSG_CHECKING(for IPPROTO_IP) + AC_TRY_COMPILE([#include ], [ + int level = IPPROTO_IP; + ], [ + # Yes, we have it... + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_IPPROTO_IP, 1, [Have IPPROTO_IP]) + ], [ + # We'll have to use getprotobyname + AC_MSG_RESULT(no) + ]) + + dnl ******************************* + dnl *** Checks for IPPROTO_IPV6 *** + dnl ******************************* + AC_MSG_CHECKING(for IPPROTO_IPV6) + AC_TRY_COMPILE([#include ], [ + int level = IPPROTO_IPV6; + ], [ + # Yes, we have it... + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_IPPROTO_IPV6, 1, [Have IPPROTO_IPV6]) + ], [ + # We'll have to use getprotobyname + AC_MSG_RESULT(no) + ]) + + dnl ****************************** + dnl *** Checks for IPPROTO_TCP *** + dnl ****************************** + AC_MSG_CHECKING(for IPPROTO_TCP) + AC_TRY_COMPILE([#include ], [ +@@ -3572,100 +3564,131 @@ + # HAVE_MACH_TIMEBASE_INFO check already done above + # HAVE_FUTIMES check already done above + # HAVE_FUTIMENS check already done above + + ORIG_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror=sign-conversion" + + AC_MSG_CHECKING(for bind with unsigned addrlen) + AC_TRY_LINK([ + #include + ], [ + int fd; + struct sockaddr* addr; + socklen_t addrLen; + bind(fd, addr, addrLen); + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(BIND_ADDRLEN_UNSIGNED, 1, [bind with unsigned addrlen]) + ], [ + AC_MSG_RESULT(no) + ]) + + AC_MSG_CHECKING(for struct ipv6_mreq with unsigned ipv6mr_interface) + AC_TRY_LINK([ + #include + #include + ], [ + struct ipv6_mreq opt; + unsigned int index = 0; + opt.ipv6mr_interface = index; + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(IPV6MR_INTERFACE_UNSIGNED, 1, [struct ipv6_mreq with unsigned ipv6mr_interface]) + ], [ + AC_MSG_RESULT(no) + ]) + + AC_MSG_CHECKING(for inotify_rm_watch with unsigned wd) + AC_TRY_LINK([ + #include + ], [ + intptr_t fd; + uint32_t wd; + int result = inotify_rm_watch(fd, wd); + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(INOTIFY_RM_WATCH_WD_UNSIGNED, 1, [inotify_rm_watch with unsigned wd]) + ], [ + AC_MSG_RESULT(no) + ]) ++ ++ case "$host" in ++ *-*-*freebsd*) ++ dnl ***************************** ++ dnl *** Checks for libinotify *** ++ dnl ***************************** ++ AC_CHECK_LIB(inotify, inotify_init, LIBS="$LIBS -linotify") ++ AC_MSG_CHECKING(for METADATA_CFLAGS) ++ if test "x$ac_cv_lib_inotify_inotify_init" = "xyes" ; then ++ AC_DEFINE(HAVE_LIBINOTIFY, 1, [FreeBSD libinotify kqueue shim]) ++ dnl Needs to be done this way to avoid collision with various ++ dnl ports includign glib and llvm* ++ METADATA_CFLAGS="-I/usr/local/include" ++ AC_SUBST(METADATA_CFLAGS) ++ fi ++ dnl Workaround due to inotify_rm_watch check failing without -I ++ AC_MSG_CHECKING(for inotify_rm_watch with unsigned wd in libinotify) ++ AC_TRY_LINK([ ++ #include ++ ], [ ++ intptr_t fd; ++ uint32_t wd; ++ int result = inotify_rm_watch(fd, wd); ++ ],[ ++ AC_MSG_RESULT(yes) ++ AC_DEFINE(INOTIFY_RM_WATCH_WD_UNSIGNED, 1, [inotify_rm_watch with unsigned wd]) ++ ], [ ++ AC_MSG_RESULT(no) ++ ]) ++ ;; ++ esac + + CFLAGS="$ORIG_CFLAGS" + + AC_MSG_CHECKING(for shm_open that works well enough with mmap) + if test "x$ac_cv_func_shm_open" = "xno" -o "x$ac_cv_func_shm_open_working_with_mmap" = "xno" ; then + AC_MSG_RESULT(no) + elif test "x$cross_compiling" = "xyes"; then + AC_MSG_RESULT(cross compiling, assuming yes) + AC_DEFINE(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP, 1, [shm_open that works well enough with mmap]) + else + AC_TRY_RUN([ + #include + #include + #include + + int main () + { + #ifdef __PASE__ + /* IBM i doesn't implement this and returns SIGILL */ + return -1; + #endif + int fd = shm_open("/mono_configure_shm_open", O_CREAT | O_RDWR, 0777); + if (fd == -1) + return -1; + + shm_unlink("/mono_configure_shm_open"); + + // NOTE: PROT_EXEC and MAP_PRIVATE don't work well with shm_open + // on at least the current version of Mac OS X + + if (mmap(NULL, 1, PROT_EXEC, MAP_PRIVATE, fd, 0) == MAP_FAILED) + return -1; + + return 0; + } + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP, 1, [shm_open that works well enough with mmap]) + ], [ + AC_MSG_RESULT(no) + ]) + fi + + AC_MSG_CHECKING(for getpriority with int who) + AC_TRY_LINK([ + #include + ], [ + int which; + int who; + int result = getpriority(which, who); +@@ -4418,107 +4441,121 @@ + BTLS_PLATFORM=x86_64 + boehm_supported=false + ;; + openbsd*|freebsd*|kfreebsd-gnu*) + AOT_SUPPORTED="yes" + BTLS_SUPPORTED=yes + BTLS_PLATFORM=x86_64 + ;; + mingw*|cygwin*) + BTLS_SUPPORTED=no + BTLS_PLATFORM=x86_64 + ;; + esac + ;; + sparc*-*-*) + if test "x$ac_cv_sizeof_void_p" = "x8"; then + TARGET=SPARC64 + else + TARGET=SPARC + fi + arch_target=sparc; + ACCESS_UNALIGNED="no" + case $host_os in + linux*) ;; + *) + LIBC="libc.so" + INTL="libintl.so" + esac + if test x"$GCC" = xyes; then + # We don't support v8 cpus + CFLAGS="$CFLAGS -Wno-cast-align -mcpu=v9" + fi + if test x"$AR" = xfalse; then + AC_MSG_ERROR([The required utility 'ar' is not found in your PATH. Usually it can be found in /usr/ccs/bin.]) + fi + ;; + *-mingw*|*-*-cygwin*) + # When this is enabled, it leads to very strange crashes at runtime (gcc-3.4.4) + have_visibility_hidden=no + INTL="intl" + case "$host" in + x86_64*mingw*) + # Old Boehm fails to compile for x86_64-mingw. + # It is trivial to fix, but just silently drop it. + boehm_supported=false + ;; + esac + ;; + macppc-*-openbsd* | powerpc*-*-linux* | powerpc-*-openbsd* | \ + powerpc-*-sysv* | powerpc-*-darwin* | powerpc-*-netbsd* | \ +- powerpc-*-freebsd* | powerpc*-*-aix* | powerpc*-*-os400* ) ++ powerpc*-*-freebsd* | powerpc*-*-aix* | powerpc*-*-os400* ) + if test "x$ac_cv_sizeof_void_p" = "x8"; then + TARGET=POWERPC64; + CPPFLAGS="$CPPFLAGS -D__mono_ppc__ -D__mono_ppc64__" +- if ! (echo $CC | grep -q -- 'clang'); then +- CFLAGS="$CFLAGS -mminimal-toc" +- fi ++ AC_MSG_NOTICE([Checking for PowerPC ISA -mminimal-toc support]) ++ AX_CHECK_COMPILE_FLAG( ++ [-mminimal-toc], ++ [CFLAGS="$CFLAGS -mminimal-toc"], ++ [CFLAGS="$CFLAGS"] ++ ) ++ case "$host" in ++ powerpc*-*-freebsd*) ++ # We need to be aware if we are ELFv1 or v2 here ++ AC_MSG_NOTICE([Checking FreeBSD ELF version]) ++ if ! ( echo | cc -dM -E - | awk '/_CALL_ELF/ {print $NF}'); then ++ AC_DEFINE([POWERPC_ELF], 1, [PowerPC ELFv1]) ++ else ++ AC_DEFINE([POWERPC_ELFV2], 1, [PowerPC ELFv2]) ++ fi ++ ;; ++ esac + else + TARGET=POWERPC; + CPPFLAGS="$CPPFLAGS -D__mono_ppc__" + fi + arch_target=ppc; + case $host_os in + aix*|os400*) + BTLS_SUPPORTED=yes + BTLS_PLATFORM=powerpc + ;; + linux*) + BTLS_SUPPORTED=yes + BTLS_PLATFORM=powerpc + ;; + esac + ;; + armv7k-*-darwin*) + TARGET=ARM; + TARGET_SYS=WATCHOS + arch_target=arm; + arm_fpu=VFP_HARD + ACCESS_UNALIGNED="no" + CPPFLAGS="$CPPFLAGS -D__ARM_EABI__" + ;; + + arm*-darwin*) + TARGET=ARM; + arch_target=arm; + ACCESS_UNALIGNED="no" + CPPFLAGS="$CPPFLAGS -D__ARM_EABI__" + ;; + arm*-linux*) + TARGET=ARM; + arch_target=arm; + ACCESS_UNALIGNED="no" + AOT_SUPPORTED="yes" + CPPFLAGS="$CPPFLAGS -D__ARM_EABI__" + BTLS_SUPPORTED=yes + BTLS_PLATFORM=arm + AC_CHECK_HEADER(stdalign.h,[],[BTLS_SUPPORTED=no]) + case "$target" in + arm*-linux*-gnueabi) + BTLS_PLATFORM=armsoft + ;; + esac + ;; + arm*-netbsd*-eabi*) + TARGET=ARM; + arch_target=arm; + ACCESS_UNALIGNED="no" +@@ -6441,103 +6478,103 @@ + MONO_NATIVE_CC=$CC + MONO_NATIVE_CXX=$CXX + MONO_NATIVE_CCASFLAGS=$CCASFLAGS + # The system.native code uses _WASM_ to check for wasm + MONO_NATIVE_CPPFLAGS="$CPPFLAGS -D_WASM_" + MONO_NATIVE_CXXFLAGS=$CXXFLAGS + MONO_NATIVE_CFLAGS=$CFLAGS + MONO_NATIVE_LDFLAGS=$LDFLAGS + + mono_native=yes + mono_native_compat=no + MONO_NATIVE_PLATFORM=linux + + MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_LINUX" + elif case $host_os in aix*|os400*) true;; *) false;; esac; then + mono_native_text="AIX" + MONO_NATIVE_CC=$CC + MONO_NATIVE_CXX=$CXX + MONO_NATIVE_CCASFLAGS=$CCASFLAGS + MONO_NATIVE_CPPFLAGS=$CPPFLAGS + MONO_NATIVE_CXXFLAGS=$CXXFLAGS + MONO_NATIVE_CFLAGS=$CFLAGS + dnl nosymbolic- is a hack in case -G for linking is used, as -G seems + dnl to change the way unresolved symbols work on library load in an + dnl incompatible manner. (as references to runtime functions are + dnl resolved later) Default params otherwise are that, so seems OK. + dnl Likewise, we don't seem to need to cover the entire runtime with + dnl it either, on both AIX and PASE. -brtl from -G does seem to spew + dnl Big Scary TOC Warnings (tm) from the linker, but it doesn't seem + dnl problematic with gcc's -mminimal-toc. + dnl ---- + dnl flock in AIX exists in libbsd (not the same as freedesktop.org + dnl libbsd) which Mono.Native needs. + dnl Because of the way that the library is built by default, unresolved + dnl references are kept and resolved at runtime. Often, the dependency + dnl chain means libbsd is loaded anyways, but not necessarily. It's + dnl better to explicitly link it, even though it has it shadows libc's + dnl ioctl with its own. (As for the other unresolved imports, those + dnl should be provided by the Mono runtime loaded.) + MONO_NATIVE_LDFLAGS="$LDFLAGS -lbsd -Wl,-bnosymbolic-" + + mono_native=yes + mono_native_compat=no + MONO_NATIVE_PLATFORM=aix + + MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_AIX" + elif case $host_os in freebsd*) true;; *) false;; esac; then + mono_native_text="FreeBSD" + MONO_NATIVE_CC=$CC + MONO_NATIVE_CXX=$CXX +- MONO_NATIVE_CPPFLAGS=$CPPFLAGS ++ MONO_NATIVE_CPPFLAGS="$CPPFLAGS -I/usr/local/include" + MONO_NATIVE_CXXFLAGS=$CXXFLAGS +- MONO_NATIVE_CFLAGS=$CFLAGS ++ MONO_NATIVE_CFLAGS="$CFLAGS -I/usr/local/include" + MONO_NATIVE_LDFLAGS=$LDFLAGS + + mono_native=yes + mono_native_compat=no + MONO_NATIVE_PLATFORM=freebsd + AC_MSG_CHECKING([Mono.Native support]) + AC_MSG_RESULT(freebsd) + + MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_FREEBSD" + elif case $host_os in netbsd*) true;; *) false;; esac; then + mono_native_text="NetBSD" + MONO_NATIVE_CC=$CC + MONO_NATIVE_CXX=$CXX + MONO_NATIVE_CPPFLAGS=$CPPFLAGS + MONO_NATIVE_CXXFLAGS=$CXXFLAGS + MONO_NATIVE_CFLAGS=$CFLAGS + MONO_NATIVE_LDFLAGS=$LDFLAGS + + mono_native=yes + mono_native_compat=no + MONO_NATIVE_PLATFORM=netbsd + AC_MSG_CHECKING([Mono.Native support]) + AC_MSG_RESULT(netbsd) + + MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_NETBSD" + elif case $host_os in haiku*) true;; *) false;; esac; then + mono_native_text="Haiku" + MONO_NATIVE_CC=$CC + MONO_NATIVE_CXX=$CXX + MONO_NATIVE_CPPFLAGS=$CPPFLAGS + MONO_NATIVE_CXXFLAGS=$CXXFLAGS + MONO_NATIVE_CFLAGS=$CFLAGS + MONO_NATIVE_LDFLAGS=$LDFLAGS + + mono_native=yes + mono_native_compat=no + MONO_NATIVE_PLATFORM=haiku + AC_MSG_CHECKING([Mono.Native support]) + AC_MSG_RESULT(haiku) + + MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_HAIKU" + elif test x$platform_android = xyes; then + mono_native_text="Android" + MONO_NATIVE_CC=$CC + MONO_NATIVE_CXX=$CXX + MONO_NATIVE_CPPFLAGS=$CPPFLAGS + MONO_NATIVE_CXXFLAGS=$CXXFLAGS + MONO_NATIVE_CFLAGS=$CFLAGS + MONO_NATIVE_LDFLAGS=$LDFLAGS + MONO_NATIVE_LIBADD="../mini/$LIBMONO_LA" Property changes on: head/lang/mono6.8/files/patch-mono_configure.ac ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mono_metadata_Makefile.am =================================================================== --- head/lang/mono6.8/files/patch-mono_metadata_Makefile.am (nonexistent) +++ head/lang/mono6.8/files/patch-mono_metadata_Makefile.am (revision 557880) @@ -0,0 +1,11 @@ +--- mono/metadata/Makefile.am.orig 2020-05-20 16:09:20.183060000 +0000 ++++ mono/metadata/Makefile.am 2020-05-20 16:10:38.992083000 +0000 +@@ -143,7 +143,7 @@ + + lib_LTLIBRARIES = $(icall_table_libraries) $(ilgen_libraries) + +-AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/mono $(LIBGC_CPPFLAGS) $(GLIB_CFLAGS) $(SHARED_CFLAGS) ++AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/mono $(LIBGC_CPPFLAGS) $(GLIB_CFLAGS) $(SHARED_CFLAGS) $(METADATA_CFLAGS) + + # + # Make sure any prefix changes are updated in the binaries too. Property changes on: head/lang/mono6.8/files/patch-mono_metadata_Makefile.am ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/mono6.8/files/patch-mono_native_Makefile.am =================================================================== --- head/lang/mono6.8/files/patch-mono_native_Makefile.am (nonexistent) +++ head/lang/mono6.8/files/patch-mono_native_Makefile.am (revision 557880) @@ -0,0 +1,15 @@ +# Upstreamed for next release +# PR#19234 +--- mono/native/Makefile.am.orig 2020-03-16 13:42:24.386278000 -0400 ++++ mono/native/Makefile.am 2020-03-16 13:42:43.715070000 -0400 +@@ -159,10 +159,11 @@ + -I$(abs_top_srcdir)/external/corefx/src/Native/Unix/Common \ + -I$(abs_top_srcdir)/external/corefx/src/Native/Unix/System.Native \ + -I$(abs_top_srcdir)/external/corefx/src/Native/AnyOS/brotli/include \ + $(GLIB_CFLAGS) \ + $(SHARED_CFLAGS) \ ++ $(METADATA_CFLAGS) \ + -DBROTLI_BUILD_NO_RBIT \ + -Wno-typedef-redefinition + + endif # !ENABLE_MSVC_ONLY Property changes on: head/lang/mono6.8/files/patch-mono_native_Makefile.am ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/lang/mono6.8/pkg-descr =================================================================== --- head/lang/mono6.8/pkg-descr (revision 557879) +++ head/lang/mono6.8/pkg-descr (revision 557880) @@ -1,9 +1,16 @@ Mono is an open source implementation of .NET Development Framework. Its objective is to enable UNIX developers to build and deploy cross-platform .NET Applications. The project implements various technologies developed by Microsoft that have now been submitted to the ECMA for standardization. Mono provides the necessary software to develop and run .NET client and server applications on BSD, Linux, Solaris, Mac OS X, Windows, and Unix. +SPECTRE MITIGATION: Mono 6.4+ introduces additional internal changes to +better protect against Spectre and Meltdown attacks for both compiled and +interpreted code during runtime. This can cause severe performance impacts +to applications in a number of scenarios, and is not enabled by default for +that reason. When used in high risk environments such as shared hosting, +it is strongly recommended to enable this option. + WWW: http://www.mono-project.com/ Index: head/lang/mono6.8/pkg-message =================================================================== --- head/lang/mono6.8/pkg-message (revision 557879) +++ head/lang/mono6.8/pkg-message (revision 557880) @@ -1,37 +1,50 @@ [ { type: install message: <> /boot/loader.conf # echo "kern.ipc.semmns=300" >> /boot/loader.conf * If you are in a jailed environment, ensure System V IPC are enabled. You can rely on the security.jail.sysvipc_allowed sysctl to check this status. The following enables this feature on the host system: # echo "jail_sysvipc_allow=\"YES\"" >> /etc/rc.conf * Some process information are accessed through /proc (e.g. when using NUnit) and procfs(5) has to be mounted for these features to work: # echo "proc /proc procfs rw 0 0" >> /etc/fstab + +* Mono does not use the system certificates files. If you update + security/ca_root_nss separate from Mono, you must manually resync + from the PEM file using the Mono cert-sync tool as root. + # cert-sync /usr/local/share/certs/ca-root-nss.crt + Otherwise, certificates may fail validation within Mono. + +EOM +} +{ type: upgrade + message: <