From 1ec4c248fb8627ba5bc908aad8ec784f70536073 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Fri, 7 Jun 2024 15:24:46 +1000 Subject: [PATCH] CI/Windows: Disable Qt's PCRE2 JIT Backport of https://github.com/stenzek/duckstation/commit/daed75de20e8d533bf0ef3a53b314780ba1d136e --- .../scripts/windows/build-dependencies.bat | 4 +++ .../windows/qtbase-disable-pcre2-jit.patch | 35 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 .github/workflows/scripts/windows/qtbase-disable-pcre2-jit.patch diff --git a/.github/workflows/scripts/windows/build-dependencies.bat b/.github/workflows/scripts/windows/build-dependencies.bat index 5753492717..b88666d16d 100644 --- a/.github/workflows/scripts/windows/build-dependencies.bat +++ b/.github/workflows/scripts/windows/build-dependencies.bat @@ -189,6 +189,10 @@ echo Building Qt base... rmdir /S /Q "qtbase-everywhere-src-%QT%" %SEVENZIP% x "qtbase-everywhere-src-%QT%.zip" || goto error cd "qtbase-everywhere-src-%QT%" || goto error + +rem Disable the PCRE2 JIT, it doesn't properly verify AVX2 support. +%PATCH% -p1 < "%SCRIPTDIR%\qtbase-disable-pcre2-jit.patch" || goto error + cmake -B build -DFEATURE_sql=OFF -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" %FORCEPDB% -DINPUT_gui=yes -DINPUT_widgets=yes -DINPUT_ssl=yes -DINPUT_openssl=no -DINPUT_schannel=yes -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON %QTBUILDSPEC% || goto error cmake --build build --parallel || goto error ninja -C build install || goto error diff --git a/.github/workflows/scripts/windows/qtbase-disable-pcre2-jit.patch b/.github/workflows/scripts/windows/qtbase-disable-pcre2-jit.patch new file mode 100644 index 0000000000..dee5482c65 --- /dev/null +++ b/.github/workflows/scripts/windows/qtbase-disable-pcre2-jit.patch @@ -0,0 +1,35 @@ +--- qtbase/src/3rdparty/pcre2/CMakeLists.txt 2024-03-19 08:46:43.000000000 -0700 ++++ qtbase/src/3rdparty/pcre2/CMakeLists.txt 2024-06-06 21:52:20.539619500 -0700 +@@ -41,6 +41,7 @@ + src/pcre2_xclass.c + DEFINES + HAVE_CONFIG_H ++ PCRE2_DISABLE_JIT + PUBLIC_DEFINES + PCRE2_CODE_UNIT_WIDTH=16 + PUBLIC_INCLUDE_DIRECTORIES +@@ -52,23 +53,8 @@ + ## Scopes: + ##################################################################### + +-qt_internal_extend_target(BundledPcre2 CONDITION QNX OR UIKIT +- DEFINES +- PCRE2_DISABLE_JIT +-) +- +-qt_internal_extend_target(BundledPcre2 CONDITION (TEST_architecture_arch STREQUAL "arm") AND WIN32 +- DEFINES +- PCRE2_DISABLE_JIT +-) +- +-qt_internal_extend_target(BundledPcre2 CONDITION (TEST_architecture_arch STREQUAL "arm64") AND WIN32 +- DEFINES +- PCRE2_DISABLE_JIT +-) +- + if (APPLE) +- target_compile_options(BundledPcre2 PRIVATE "SHELL:-Xarch_arm64 -DPCRE2_DISABLE_JIT") ++ target_compile_options(BundledPcre2 PRIVATE "SHELL:-Xarch_arm64") + endif() + + qt_internal_extend_target(BundledPcre2 CONDITION WIN32