diff options
author | Mark Linimon <linimon@FreeBSD.org> | 2020-12-13 02:53:08 +0000 |
---|---|---|
committer | Mark Linimon <linimon@FreeBSD.org> | 2020-12-13 02:53:08 +0000 |
commit | 6003ca35cfe137228541c3d68905cb06c5004e95 (patch) | |
tree | 8a9d390804729ebfac78c74bcd8fa08603c5ee24 /lang/mono6.8/files | |
parent | a44563b060f6a9f0dc89c39227134e37db8cf105 (diff) |
Notes
Diffstat (limited to 'lang/mono6.8/files')
15 files changed, 642 insertions, 222 deletions
diff --git a/lang/mono6.8/files/patch-boringssl b/lang/mono6.8/files/patch-boringssl new file mode 100644 index 000000000000..f86b0a81fbb5 --- /dev/null +++ b/lang/mono6.8/files/patch-boringssl @@ -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 <stdlib.h> ++#include <sys/types.h> ++#include <machine/armreg.h> ++ ++// 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/); + diff --git a/lang/mono6.8/files/patch-configure.ac b/lang/mono6.8/files/patch-configure.ac deleted file mode 100644 index 280b4da2ddb1..000000000000 --- a/lang/mono6.8/files/patch-configure.ac +++ /dev/null @@ -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*) - ;; diff --git a/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.Cryptography_KeyPairPersistence.cs b/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.Cryptography_KeyPairPersistence.cs deleted file mode 100644 index 5af30b379a35..000000000000 --- a/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.Cryptography_KeyPairPersistence.cs +++ /dev/null @@ -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); diff --git a/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.X509_X509StoreManager.cs b/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.X509_X509StoreManager.cs deleted file mode 100644 index 9e1c62b7c5b4..000000000000 --- a/lang/mono6.8/files/patch-mcs_class_Mono.Security_Mono.Security.X509_X509StoreManager.cs +++ /dev/null @@ -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; diff --git a/lang/mono6.8/files/patch-mcs_tools_mono-configuration-crypto_lib_Mono.Configuration.Crypto_KeyContainerCollection.cs b/lang/mono6.8/files/patch-mcs_tools_mono-configuration-crypto_lib_Mono.Configuration.Crypto_KeyContainerCollection.cs deleted file mode 100644 index 906247de2820..000000000000 --- a/lang/mono6.8/files/patch-mcs_tools_mono-configuration-crypto_lib_Mono.Configuration.Crypto_KeyContainerCollection.cs +++ /dev/null @@ -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"); diff --git a/lang/mono6.8/files/patch-mcs_tools_xbuild_data_12.0_Microsoft.CSharp.targets b/lang/mono6.8/files/patch-mcs_tools_xbuild_data_12.0_Microsoft.CSharp.targets deleted file mode 100644 index a250c6e05315..000000000000 --- a/lang/mono6.8/files/patch-mcs_tools_xbuild_data_12.0_Microsoft.CSharp.targets +++ /dev/null @@ -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 @@ - <NoCompilerStandardLib Condition="'$(NoCompilerStandardLib)'==''">true</NoCompilerStandardLib> - </PropertyGroup> - -+ <PropertyGroup > -+ <SnToolExe>sn</SnToolExe> -+ <SnToolPath>$(CscToolPath)</SnToolPath> -+ </PropertyGroup> -+ - <ItemGroup> - <DocFileItem Include="$(DocumentationFile)" Condition="'$(DocumentationFile)' != ''"/> - </ItemGroup> -@@ -102,6 +107,10 @@ - ToolExe="$(CscToolExe)" - ToolPath="$(CscToolPath)" /> - -+ <Exec -+ Command="$(SnToolPath)$(SnToolExe) -R @(IntermediateAssembly) $(KeyOriginatorFile)" -+ Condition="'$(DelaySign)' == '' and '$(KeyContainerName)' == '' and '$(KeyOriginatorFile)' != '' and ( $(CscToolExe.EndsWith('csc.exe')) or $(CscToolExe.EndsWith('csc')) or $(CscToolExe) == '' )" /> -+ - </Target> - - <Target Name="CreateManifestResourceNames"> diff --git a/lang/mono6.8/files/patch-mcs_tools_xbuild_data_14.0_Microsoft.CSharp.targets b/lang/mono6.8/files/patch-mcs_tools_xbuild_data_14.0_Microsoft.CSharp.targets deleted file mode 100644 index 16ae5edd0354..000000000000 --- a/lang/mono6.8/files/patch-mcs_tools_xbuild_data_14.0_Microsoft.CSharp.targets +++ /dev/null @@ -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 @@ - <NoCompilerStandardLib Condition="'$(NoCompilerStandardLib)'==''">true</NoCompilerStandardLib> - </PropertyGroup> - -+ <PropertyGroup > -+ <SnToolExe>sn</SnToolExe> -+ <SnToolPath>$(CscToolPath)</SnToolPath> -+ </PropertyGroup> -+ - <ItemGroup> - <DocFileItem Include="$(DocumentationFile)" Condition="'$(DocumentationFile)' != ''"/> - </ItemGroup> -@@ -102,6 +107,10 @@ - ToolExe="$(CscToolExe)" - ToolPath="$(CscToolPath)" /> - -+ <Exec -+ Command="$(SnToolPath)$(SnToolExe) -R @(IntermediateAssembly) $(KeyOriginatorFile)" -+ Condition="'$(DelaySign)' == '' and '$(KeyContainerName)' == '' and '$(KeyOriginatorFile)' != '' and ( $(CscToolExe.EndsWith('csc.exe')) or $(CscToolExe.EndsWith('csc')) or $(CscToolExe) == '' )" /> -+ - </Target> - - <Target Name="CreateManifestResourceNames"> diff --git a/lang/mono6.8/files/patch-mono_configure.ac b/lang/mono6.8/files/patch-mono_configure.ac new file mode 100644 index 000000000000..a16f27f313d5 --- /dev/null +++ b/lang/mono6.8/files/patch-mono_configure.ac @@ -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 <sys/types.h> + #include <limits.h> + ], [ + /* 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 <sys/socket.h>], [ + 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 <netinet/in.h>], [ + 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 <netinet/in.h>], [ + 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 <netinet/in.h>], [ +@@ -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 <sys/socket.h> + ], [ + 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 <netinet/in.h> + #include <netinet/tcp.h> + ], [ + 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 <sys/inotify.h> + ], [ + 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 </usr/local/include/sys/inotify.h> ++ ], [ ++ 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 <sys/mman.h> + #include <fcntl.h> + #include <unistd.h> + + 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 <sys/resource.h> + ], [ + 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" diff --git a/lang/mono6.8/files/patch-mono_eglib_gfile-posix.c b/lang/mono6.8/files/patch-mono_eglib_gfile-posix.c deleted file mode 100644 index 51b4c84fa1f4..000000000000 --- a/lang/mono6.8/files/patch-mono_eglib_gfile-posix.c +++ /dev/null @@ -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; - } diff --git a/lang/mono6.8/files/patch-mono_metadata_Makefile.am b/lang/mono6.8/files/patch-mono_metadata_Makefile.am new file mode 100644 index 000000000000..db1e509ba8d9 --- /dev/null +++ b/lang/mono6.8/files/patch-mono_metadata_Makefile.am @@ -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. diff --git a/lang/mono6.8/files/patch-mono_mini_tramp-amd64.c b/lang/mono6.8/files/patch-mono_mini_tramp-amd64.c deleted file mode 100644 index c09b13cf0fec..000000000000 --- a/lang/mono6.8/files/patch-mono_mini_tramp-amd64.c +++ /dev/null @@ -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 diff --git a/lang/mono6.8/files/patch-mono_native_Makefile.am b/lang/mono6.8/files/patch-mono_native_Makefile.am new file mode 100644 index 000000000000..1d9b9264a409 --- /dev/null +++ b/lang/mono6.8/files/patch-mono_native_Makefile.am @@ -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 diff --git a/lang/mono6.8/files/patch-mono_utils_mono-context.h b/lang/mono6.8/files/patch-mono_utils_mono-context.h deleted file mode 100644 index e08b5ea2e9b7..000000000000 --- a/lang/mono6.8/files/patch-mono_utils_mono-context.h +++ /dev/null @@ -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 <emmintrin.h> - 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 <emmintrin.h> - 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]; diff --git a/lang/mono6.8/files/patch-mono_utils_mono-threads.c b/lang/mono6.8/files/patch-mono_utils_mono-threads.c deleted file mode 100644 index 31b798b128e2..000000000000 --- a/lang/mono6.8/files/patch-mono_utils_mono-threads.c +++ /dev/null @@ -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; diff --git a/lang/mono6.8/files/patch-scripts_mono-heapviz b/lang/mono6.8/files/patch-scripts_mono-heapviz deleted file mode 100644 index fc44982f44f8..000000000000 --- a/lang/mono6.8/files/patch-scripts_mono-heapviz +++ /dev/null @@ -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 |