From 6236e2ee74d8cfa4d0ac543d5aa3a907864b7613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Fri, 26 May 2023 11:36:48 +0200 Subject: [PATCH] CI: Mono 6.12.0.198, Python 3.11, use ubuntu-latest - Rediff patches against Mono 6.12.0.198. - Drop `xcode_13_14_fix.diff` which is included upstream in 6.12.0.198. --- .github/workflows/build.yml | 10 ++-- .github/workflows/static_checks.yml | 2 +- README.md | 2 +- .../bcl-profile-platform-override.diff | 6 +- .../patches/btls-cmake-args-linux-mingw.diff | 6 +- files/patches/btls-cmake-arm64.diff | 8 +-- files/patches/fix-mono-android-tkill.diff | 8 +-- files/patches/fix-mono-log-spam.diff | 10 ++-- ...-dbg-agent-clear-tls-instead-of-abort.diff | 6 +- .../mono-linux-disable-mmap-MAP_32BIT.diff | 14 ++--- .../patches/mono_ios_asl_log_deprecated.diff | 2 +- .../offsets-tool-extra-cflags_new.diff | 2 +- files/patches/xcode_13_14_fix.diff | 59 ------------------- patch_mono.py | 1 - 14 files changed, 38 insertions(+), 98 deletions(-) delete mode 100644 files/patches/xcode_13_14_fix.diff diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8308954..439a917 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,8 +23,8 @@ on: env: # Use SHA or tag instead of the branch for caching purposes. - MONO_TAG: mono-6.12.0.182 - PYTHON_VERSION: '3.10' + MONO_TAG: mono-6.12.0.198 + PYTHON_VERSION: '3.11' # Should match the version that Mono supports. EMSDK_VERSION: 1.39.9 # platform/iphone/detect.py @@ -523,7 +523,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Setup Emscripten SDK - uses: mymindstorm/setup-emsdk@v11 + uses: mymindstorm/setup-emsdk@v12 with: version: ${{ env.EMSDK_VERSION }} - name: Patch Mono @@ -733,7 +733,7 @@ jobs: if: success() && github.event_name == 'create' && startsWith(github.ref, 'refs/heads/release/') needs: [linux, windows, osx, ios, ios-cross, android, wasm, bcl] name: Create Release - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest outputs: release_upload_url: ${{ steps.create_release.outputs.upload_url }} steps: @@ -760,7 +760,7 @@ jobs: if: success() && github.event_name == 'create' && startsWith(github.ref, 'refs/heads/release/') needs: create-release name: Upload Release Artifacts - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest strategy: matrix: artifact_name: [linux-x86, linux-x86_64, windows-x86, windows-x86_64, osx-arm64, osx-x86_64, diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml index 677cc88..d15f78a 100644 --- a/.github/workflows/static_checks.yml +++ b/.github/workflows/static_checks.yml @@ -3,7 +3,7 @@ on: [push, pull_request] jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 diff --git a/README.md b/README.md index 2f3e7b2..cfac099 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This repository contains scripts for building the Mono runtime to use with Godot The scripts are tested against specific versions of the toolchains used by Godot. While they may work with other versions, you might have issues applying patches or compiling, so we recommend using the versions below. -- Mono: 6.12.0.182. +- Mono: 6.12.0.198. - Emscripten: 1.39.9. - Android NDK: 23.2.8568313 diff --git a/files/patches/bcl-profile-platform-override.diff b/files/patches/bcl-profile-platform-override.diff index 6843105..9cf3ea8 100644 --- a/files/patches/bcl-profile-platform-override.diff +++ b/files/patches/bcl-profile-platform-override.diff @@ -3,11 +3,11 @@ index e57a636ef4d..60c60a8fc17 100644 --- a/mcs/build/rules.make +++ b/mcs/build/rules.make @@ -94,7 +94,7 @@ include $(topdir)/build/config-default.make - + include $(topdir)/build/platforms/$(BUILD_PLATFORM).make - + -PROFILE_PLATFORM = $(if $(PLATFORMS),$(if $(filter $(PLATFORMS),$(HOST_PLATFORM)),$(HOST_PLATFORM),$(error Unknown platform "$(HOST_PLATFORM)" for profile "$(PROFILE)"))) +PROFILE_PLATFORM ?= $(if $(PLATFORMS),$(if $(filter $(PLATFORMS),$(HOST_PLATFORM)),$(HOST_PLATFORM),$(error Unknown platform "$(HOST_PLATFORM)" for profile "$(PROFILE)"))) PROFILE_DIRECTORY = $(PROFILE)$(if $(PROFILE_PLATFORM),-$(PROFILE_PLATFORM)) - + # Useful diff --git a/files/patches/btls-cmake-args-linux-mingw.diff b/files/patches/btls-cmake-args-linux-mingw.diff index aad7bf5..548ecf5 100644 --- a/files/patches/btls-cmake-args-linux-mingw.diff +++ b/files/patches/btls-cmake-args-linux-mingw.diff @@ -1,8 +1,8 @@ diff --git a/configure.ac b/configure.ac -index 088128e5e74..54693aace64 100644 +index 19b20127ca2..d07afde5e05 100644 --- a/configure.ac +++ b/configure.ac -@@ -5918,6 +5918,8 @@ if test "x$enable_btls" = "xyes"; then +@@ -5924,6 +5924,8 @@ if test "x$enable_btls" = "xyes"; then if test "x$HAVE_YASM" != "xyes"; then BTLS_CMAKE_ARGS="-DOPENSSL_NO_ASM=1" fi @@ -11,7 +11,7 @@ index 088128e5e74..54693aace64 100644 ;; esac ;; -@@ -5929,6 +5931,8 @@ if test "x$enable_btls" = "xyes"; then +@@ -5935,6 +5937,8 @@ if test "x$enable_btls" = "xyes"; then if test "x$HAVE_YASM" != "xyes"; then BTLS_CMAKE_ARGS="-DOPENSSL_NO_ASM=1" fi diff --git a/files/patches/btls-cmake-arm64.diff b/files/patches/btls-cmake-arm64.diff index 6cda91c..3a48078 100644 --- a/files/patches/btls-cmake-arm64.diff +++ b/files/patches/btls-cmake-arm64.diff @@ -1,8 +1,8 @@ diff --git a/configure.ac b/configure.ac -index 088128e5e74..235acfe9181 100644 +index d07afde5e05..2c052530f2c 100644 --- a/configure.ac +++ b/configure.ac -@@ -4921,9 +4921,6 @@ if test "x$target_mach" = "xyes"; then +@@ -4927,9 +4927,6 @@ if test "x$target_mach" = "xyes"; then CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_OSX" CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_OSX" target_osx=yes @@ -12,7 +12,7 @@ index 088128e5e74..235acfe9181 100644 ], [ AC_DEFINE(TARGET_IOS,1,[The JIT/AOT targets iOS]) CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_IOS" -@@ -5942,7 +5939,11 @@ if test "x$enable_btls" = "xyes"; then +@@ -5952,7 +5949,11 @@ if test "x$enable_btls" = "xyes"; then ;; aarch64) btls_arch=aarch64 @@ -26,7 +26,7 @@ index 088128e5e74..235acfe9181 100644 s390x) btls_arch=s390x diff --git a/mono/btls/CMakeLists.txt b/mono/btls/CMakeLists.txt -index 992f41e4c7f..ee3e956c5b0 100644 +index 9946f5d21a4..a8aa3d07b0e 100644 --- a/mono/btls/CMakeLists.txt +++ b/mono/btls/CMakeLists.txt @@ -21,6 +21,15 @@ if (MSVC OR CYGWIN) diff --git a/files/patches/fix-mono-android-tkill.diff b/files/patches/fix-mono-android-tkill.diff index e3f2b76..3315fc2 100644 --- a/files/patches/fix-mono-android-tkill.diff +++ b/files/patches/fix-mono-android-tkill.diff @@ -1,8 +1,8 @@ diff --git a/mono/metadata/threads.c b/mono/metadata/threads.c -index ad9b8823f8f..3542b32b540 100644 +index 8d6753f2e01..1c1bd460123 100644 --- a/mono/metadata/threads.c +++ b/mono/metadata/threads.c -@@ -77,8 +77,12 @@ mono_native_thread_join_handle (HANDLE thread_handle, gboolean close_handle); +@@ -78,8 +78,12 @@ mono_native_thread_join_handle (HANDLE thread_handle, gboolean close_handle); #include #endif @@ -18,10 +18,10 @@ index ad9b8823f8f..3542b32b540 100644 #ifdef HOST_ANDROID diff --git a/mono/utils/mono-threads-posix.c b/mono/utils/mono-threads-posix.c -index 3e4bf93de5f..79c9f731fe7 100644 +index cd32e6b042d..5e2fd4618b8 100644 --- a/mono/utils/mono-threads-posix.c +++ b/mono/utils/mono-threads-posix.c -@@ -31,8 +31,12 @@ +@@ -32,8 +32,12 @@ #include diff --git a/files/patches/fix-mono-log-spam.diff b/files/patches/fix-mono-log-spam.diff index 173e3bf..3ccc821 100644 --- a/files/patches/fix-mono-log-spam.diff +++ b/files/patches/fix-mono-log-spam.diff @@ -1,16 +1,16 @@ diff --git a/mono/metadata/threadpool-io.c b/mono/metadata/threadpool-io.c -index fdfef2de91e28..45ac0d84b2429 100644 +index a8a947e7dea..b87b59ed5b6 100644 --- a/mono/metadata/threadpool-io.c +++ b/mono/metadata/threadpool-io.c -@@ -180,6 +180,7 @@ selector_thread_wakeup_drain_pipes (void) +@@ -179,6 +179,7 @@ selector_thread_wakeup_drain_pipes (void) { gchar buffer [128]; gint received; + static gint warnings_issued = 0; - + for (;;) { #if !defined(HOST_WIN32) -@@ -192,11 +193,16 @@ selector_thread_wakeup_drain_pipes (void) +@@ -191,11 +192,16 @@ selector_thread_wakeup_drain_pipes (void) * some unices (like AIX) send ERESTART, which doesn't * exist on some other OSes errno */ @@ -30,7 +30,7 @@ index fdfef2de91e28..45ac0d84b2429 100644 break; } #else -@@ -204,8 +210,13 @@ selector_thread_wakeup_drain_pipes (void) +@@ -203,8 +209,13 @@ selector_thread_wakeup_drain_pipes (void) if (received == 0) break; if (received == SOCKET_ERROR) { diff --git a/files/patches/mono-dbg-agent-clear-tls-instead-of-abort.diff b/files/patches/mono-dbg-agent-clear-tls-instead-of-abort.diff index 10ecc63..4b68aa6 100644 --- a/files/patches/mono-dbg-agent-clear-tls-instead-of-abort.diff +++ b/files/patches/mono-dbg-agent-clear-tls-instead-of-abort.diff @@ -1,10 +1,10 @@ diff --git a/mono/mini/debugger-agent.c b/mono/mini/debugger-agent.c -index df6329391df..05f30d5b4dc 100644 +index 32bfc471ea2..5087405eed5 100644 --- a/mono/mini/debugger-agent.c +++ b/mono/mini/debugger-agent.c -@@ -4088,8 +4088,12 @@ thread_startup (MonoProfiler *prof, uintptr_t tid) +@@ -4172,8 +4172,12 @@ thread_startup (MonoProfiler *prof, uintptr_t tid) } - + tls = (DebuggerTlsData *)mono_native_tls_get_value (debugger_tls_id); - g_assert (!tls); - // FIXME: Free this somewhere diff --git a/files/patches/mono-linux-disable-mmap-MAP_32BIT.diff b/files/patches/mono-linux-disable-mmap-MAP_32BIT.diff index aab4d40..dafa238 100644 --- a/files/patches/mono-linux-disable-mmap-MAP_32BIT.diff +++ b/files/patches/mono-linux-disable-mmap-MAP_32BIT.diff @@ -14,17 +14,17 @@ Reference: https://lore.kernel.org/all/20230414185919.4175572-1-Liam.Howlett@ora 2 files changed, 6 deletions(-) diff --git a/mono/mini/mini-amd64.h b/mono/mini/mini-amd64.h -index b321743b67d..0a81bb4bd6b 100644 +index a5c03c4877c..536a79ef59d 100644 --- a/mono/mini/mini-amd64.h +++ b/mono/mini/mini-amd64.h @@ -390,9 +390,7 @@ typedef struct { - + #endif /* !HOST_WIN32 */ - + -#if !defined(__linux__) #define MONO_ARCH_NOMAP32BIT 1 -#endif - + #ifdef TARGET_WIN32 #define MONO_AMD64_ARG_REG1 AMD64_RCX diff --git a/mono/utils/mono-codeman.c b/mono/utils/mono-codeman.c @@ -34,14 +34,14 @@ index 234aac4b0ca..5eccda92bd0 100644 @@ -68,11 +68,7 @@ static const MonoCodeManagerCallbacks *code_manager_callbacks; #define MAX_WASTAGE 32 #define MIN_BSIZE 32 - + -#ifdef __x86_64__ -#define ARCH_MAP_FLAGS MONO_MMAP_32BIT -#else #define ARCH_MAP_FLAGS 0 -#endif - + #define MONO_PROT_RWX (MONO_MMAP_READ|MONO_MMAP_WRITE|MONO_MMAP_EXEC|MONO_MMAP_JIT) - + -- 2.40.1 diff --git a/files/patches/mono_ios_asl_log_deprecated.diff b/files/patches/mono_ios_asl_log_deprecated.diff index 11ada2d..c6022d5 100644 --- a/files/patches/mono_ios_asl_log_deprecated.diff +++ b/files/patches/mono_ios_asl_log_deprecated.diff @@ -1,5 +1,5 @@ diff --git a/mono/utils/mono-log-darwin.c b/mono/utils/mono-log-darwin.c -index 3cb127bad59..30ff5edc307 100644 +index 2cb41b1481e..4f566ddb90a 100644 --- a/mono/utils/mono-log-darwin.c +++ b/mono/utils/mono-log-darwin.c @@ -5,7 +5,8 @@ diff --git a/files/patches/offsets-tool-extra-cflags_new.diff b/files/patches/offsets-tool-extra-cflags_new.diff index f0050a6..eb01772 100644 --- a/files/patches/offsets-tool-extra-cflags_new.diff +++ b/files/patches/offsets-tool-extra-cflags_new.diff @@ -1,5 +1,5 @@ diff --git a/mono/tools/offsets-tool/offsets-tool.py b/mono/tools/offsets-tool/offsets-tool.py -index 35445ba585c..d1586ee5ecd 100644 +index f06799cba12..adf7eb4bbd6 100644 --- a/mono/tools/offsets-tool/offsets-tool.py +++ b/mono/tools/offsets-tool/offsets-tool.py @@ -54,6 +54,7 @@ class OffsetsTool: diff --git a/files/patches/xcode_13_14_fix.diff b/files/patches/xcode_13_14_fix.diff deleted file mode 100644 index fdc1063..0000000 --- a/files/patches/xcode_13_14_fix.diff +++ /dev/null @@ -1,59 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 088128e5e74..19b20127ca2 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3308,6 +3308,12 @@ if test x$host_win32 = xno; then - dnl ****************************************** - AC_CHECK_HEADERS(CommonCrypto/CommonDigest.h) - -+ AC_CHECK_MEMBER(struct objc_super.super_class, -+ [AC_DEFINE(HAVE_OBJC_SUPER_SUPER_CLASS, 1, [struct objc_super.super_class])], -+ [], -+ [#include -+ #include ]) -+ - dnl ********************************* - dnl *** Check for Console 2.0 I/O *** - dnl ********************************* -diff --git a/mono/metadata/w32process-unix-osx.c b/mono/metadata/w32process-unix-osx.c -index 2568a44223e..f320e270c39 100644 ---- a/mono/metadata/w32process-unix-osx.c -+++ b/mono/metadata/w32process-unix-osx.c -@@ -183,12 +183,19 @@ mono_dyld_image_info_free (void *info) - static void - image_added (const struct mach_header *hdr32, intptr_t vmaddr_slide) - { -+#if defined(__APPLE__) && defined(__clang__) // getsectbynamefromheader functions are deprecated as of macOS 13.0 -+#pragma clang diagnostic push -+#pragma clang diagnostic ignored "-Wdeprecated-declarations" -+#endif - #if SIZEOF_VOID_P == 8 - const struct mach_header_64 *hdr64 = (const struct mach_header_64 *)hdr32; - const struct section_64 *sec = getsectbynamefromheader_64 (hdr64, SEG_DATA, SECT_DATA); - #else - const struct section *sec = getsectbynamefromheader (hdr32, SEG_DATA, SECT_DATA); - #endif -+#if defined(__APPLE__) && defined(__clang__) -+#pragma clang diagnostic pop -+#endif - Dl_info dlinfo; - if (!dladdr (hdr32, &dlinfo)) return; - if (sec == NULL) return; -diff --git a/mono/utils/mono-threads-mach-helper.c b/mono/utils/mono-threads-mach-helper.c -index 7b4f140b619..0a2ff341fc4 100644 ---- a/mono/utils/mono-threads-mach-helper.c -+++ b/mono/utils/mono-threads-mach-helper.c -@@ -59,10 +59,10 @@ mono_dead_letter_dealloc (id self, SEL _cmd) - { - struct objc_super super; - super.receiver = self; --#if !defined(__cplusplus) && !__OBJC2__ -- super.class = nsobject; --#else -+#if defined(__cplusplus) || defined(HAVE_OBJC_SUPER_SUPER_CLASS) - super.super_class = nsobject; -+#else -+ super.class = nsobject; - #endif - void (*objc_msgSendSuper_op)(struct objc_super *, SEL) = (void (*)(struct objc_super *, SEL)) objc_msgSendSuper; - objc_msgSendSuper_op (&super, dealloc); diff --git a/patch_mono.py b/patch_mono.py index affe7c3..5d06a51 100755 --- a/patch_mono.py +++ b/patch_mono.py @@ -34,7 +34,6 @@ def main(raw_args): 'wasm_m2n_trampolines_hook.diff', 'btls-cmake-args-linux-mingw.diff', 'btls-cmake-arm64.diff', - 'xcode_13_14_fix.diff', 'mono-linux-disable-mmap-MAP_32BIT.diff', ]