aboutsummaryrefslogtreecommitdiff
path: root/depends/patches
diff options
context:
space:
mode:
Diffstat (limited to 'depends/patches')
-rw-r--r--depends/patches/qt/dont_hardcode_x86_64.patch119
-rw-r--r--depends/patches/qt/fix-macos-linker.patch55
-rw-r--r--depends/patches/qt/fix_android_jni_static.patch2
-rw-r--r--depends/patches/qt/fix_montery_include.patch21
-rw-r--r--depends/patches/qt/memory_resource.patch49
-rw-r--r--depends/patches/qt/no-xlib.patch20
6 files changed, 111 insertions, 155 deletions
diff --git a/depends/patches/qt/dont_hardcode_x86_64.patch b/depends/patches/qt/dont_hardcode_x86_64.patch
deleted file mode 100644
index a66426877a..0000000000
--- a/depends/patches/qt/dont_hardcode_x86_64.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-macOS: Don't hard-code x86_64 as the architecture when using qmake
-
-Upstream commit:
- - Qt 6.1: 9082cc8e8d5a6441dabe5e7a95bc0cd9085b95fe
-
-For other Qt branches see
-https://codereview.qt-project.org/q/I70db7e4c27f0d3da5d0af33cb491d72c312d3fa8
-
-
---- old/qtbase/configure.json
-+++ new/qtbase/configure.json
-@@ -244,11 +244,18 @@
-
- "testTypeDependencies": {
- "linkerSupportsFlag": [ "use_bfd_linker", "use_gold_linker", "use_lld_linker" ],
-- "verifySpec": [ "shared", "use_bfd_linker", "use_gold_linker", "use_lld_linker", "compiler-flags", "qmakeargs", "commit" ],
-+ "verifySpec": [
-+ "shared",
-+ "use_bfd_linker", "use_gold_linker", "use_lld_linker",
-+ "compiler-flags", "qmakeargs",
-+ "simulator_and_device",
-+ "thread",
-+ "commit" ],
- "compile": [ "verifyspec" ],
- "detectPkgConfig": [ "cross_compile", "machineTuple" ],
- "library": [ "pkg-config", "compiler-flags" ],
-- "getPkgConfigVariable": [ "pkg-config" ]
-+ "getPkgConfigVariable": [ "pkg-config" ],
-+ "architecture" : [ "verifyspec" ]
- },
-
- "testTypeAliases": {
-@@ -762,7 +769,7 @@
- },
- "architecture": {
- "label": "Architecture",
-- "output": [ "architecture" ]
-+ "output": [ "architecture", "commitConfig" ]
- },
- "pkg-config": {
- "label": "Using pkg-config",
-diff --git a/configure.pri b/configure.pri
-index 49755f7abfd..8be9b10d7d4 100644
---- old/qtbase/configure.pri
-+++ new/qtbase/configure.pri
-@@ -662,6 +662,13 @@ defineTest(qtConfOutput_commitOptions) {
- write_file($$QT_BUILD_TREE/mkspecs/qdevice.pri, $${currentConfig}.output.devicePro)|error()
- }
-
-+# Output is written after configuring each Qt module,
-+# but some tests within a module might depend on the
-+# configuration output of previous tests.
-+defineTest(qtConfOutput_commitConfig) {
-+ qtConfProcessOutput()
-+}
-+
- # type (empty or 'host'), option name, default value
- defineTest(processQtPath) {
- out_var = config.rel_input.$${2}
-diff --git a/mkspecs/common/macx.conf b/mkspecs/common/macx.conf
-index d16b77acb8e..4ba0a8eaa36 100644
---- old/qtbase/mkspecs/common/macx.conf
-+++ new/qtbase/mkspecs/common/macx.conf
-@@ -6,7 +6,6 @@ QMAKE_PLATFORM += macos osx macx
- QMAKE_MAC_SDK = macosx
-
- QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.13
--QMAKE_APPLE_DEVICE_ARCHS = x86_64
-
- # Should be 10.15, but as long as the CI builds with
- # older SDKs we have to keep this.
-diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
-index 92a9112bca6..d888731ec8d 100644
---- old/qtbase/mkspecs/features/mac/default_post.prf
-+++ new/qtbase/mkspecs/features/mac/default_post.prf
-@@ -95,6 +95,11 @@ app_extension_api_only {
- QMAKE_LFLAGS += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
- }
-
-+# Non-universal builds do not set QMAKE_APPLE_DEVICE_ARCHS,
-+# so we pick it up from what the arch test resolved instead.
-+isEmpty(QMAKE_APPLE_DEVICE_ARCHS): \
-+ QMAKE_APPLE_DEVICE_ARCHS = $$QT_ARCH
-+
- macx-xcode {
- qmake_pkginfo_typeinfo.name = QMAKE_PKGINFO_TYPEINFO
- !isEmpty(QMAKE_PKGINFO_TYPEINFO): \
-@@ -150,9 +155,6 @@ macx-xcode {
- simulator: VALID_SIMULATOR_ARCHS = $$QMAKE_APPLE_SIMULATOR_ARCHS
- VALID_ARCHS = $$VALID_DEVICE_ARCHS $$VALID_SIMULATOR_ARCHS
-
-- isEmpty(VALID_ARCHS): \
-- error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture")
--
- single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
-
- ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS))
-diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf
-index efbe7c1e55b..8add6dc8043 100644
---- old/qtbase/mkspecs/features/toolchain.prf
-+++ new/qtbase/mkspecs/features/toolchain.prf
-@@ -182,9 +182,14 @@ isEmpty($${target_prefix}.INCDIRS) {
- # UIKit simulator platforms will see the device SDK's sysroot in
- # QMAKE_DEFAULT_*DIRS, because they're handled in a single build pass.
- darwin {
-- # Clang doesn't pick up the architecture from the sysroot, and will
-- # default to the host architecture, so we need to manually set it.
-- cxx_flags += -arch $$QMAKE_APPLE_DEVICE_ARCHS
-+ uikit {
-+ # Clang doesn't automatically pick up the architecture, just because
-+ # we're passing the iOS sysroot below, and we will end up building the
-+ # test for the host architecture, resulting in linker errors when
-+ # linking against the iOS libraries. We work around this by passing
-+ # the architecture explicitly.
-+ cxx_flags += -arch $$first(QMAKE_APPLE_DEVICE_ARCHS)
-+ }
-
- uikit:macx-xcode: \
- cxx_flags += -isysroot $$sdk_path_device.value
diff --git a/depends/patches/qt/fix-macos-linker.patch b/depends/patches/qt/fix-macos-linker.patch
new file mode 100644
index 0000000000..e439685656
--- /dev/null
+++ b/depends/patches/qt/fix-macos-linker.patch
@@ -0,0 +1,55 @@
+qmake: Don't error out if QMAKE_DEFAULT_LIBDIRS is empty on macOS
+
+The new linker in Xcode 15 doesn't provide any default linker or
+framework paths when requested via -v, but still seems to use the
+default paths documented in the ld man page.
+
+We trust that linker will do the right thing, even if we don't
+know of its default linker paths.
+
+We also need to opt out of the default fallback logic to
+set the libdirs to /lib and /usr/lib.
+
+This may result in UnixMakefileGenerator::findLibraries finding
+different libraries than expected, if additional paths are
+passed with -L, which will then take precedence for qmake,
+even if the linker itself will use the library from the
+SDK's default paths. This should hopefully not be an issue
+in practice, as we don't turn -lFoo into absolute paths in
+qmake, so the only risk is that we're picking up the wrong
+prl files and adding additional dependencies that the lib
+in the SDK doesn't have.
+
+Upstream commits:
+ - Qt 5.15.16: Not yet publicly available.
+ - Qt dev: cdf64b0e47115cc473e1afd1472b4b09e130b2a5
+
+For other Qt branches see
+https://codereview.qt-project.org/q/I2347b26e2df0828471373b0e15b8c9089274c65d
+
+--- old/qtbase/mkspecs/features/toolchain.prf
++++ new/qtbase/mkspecs/features/toolchain.prf
+@@ -288,9 +288,12 @@ isEmpty($${target_prefix}.INCDIRS) {
+ }
+ }
+ }
+- isEmpty(QMAKE_DEFAULT_LIBDIRS)|isEmpty(QMAKE_DEFAULT_INCDIRS): \
++ isEmpty(QMAKE_DEFAULT_INCDIRS): \
+ !integrity: \
+- error("failed to parse default search paths from compiler output")
++ error("failed to parse default include paths from compiler output")
++ isEmpty(QMAKE_DEFAULT_LIBDIRS): \
++ !integrity:!darwin: \
++ error("failed to parse default library paths from compiler output")
+ QMAKE_DEFAULT_LIBDIRS = $$unique(QMAKE_DEFAULT_LIBDIRS)
+ } else: ghs {
+ cmd = $$QMAKE_CXX $$QMAKE_CXXFLAGS -$${LITERAL_HASH} -o /tmp/fake_output /tmp/fake_input.cpp
+@@ -412,7 +415,7 @@ isEmpty($${target_prefix}.INCDIRS) {
+ QMAKE_DEFAULT_INCDIRS = $$split(INCLUDE, $$QMAKE_DIRLIST_SEP)
+ }
+
+- unix:if(!cross_compile|host_build) {
++ unix:!darwin:if(!cross_compile|host_build) {
+ isEmpty(QMAKE_DEFAULT_INCDIRS): QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include
+ isEmpty(QMAKE_DEFAULT_LIBDIRS): QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib
+ }
diff --git a/depends/patches/qt/fix_android_jni_static.patch b/depends/patches/qt/fix_android_jni_static.patch
index 936b82e152..7dbd68fe9c 100644
--- a/depends/patches/qt/fix_android_jni_static.patch
+++ b/depends/patches/qt/fix_android_jni_static.patch
@@ -1,6 +1,6 @@
--- old/qtbase/src/plugins/platforms/android/androidjnimain.cpp
+++ new/qtbase/src/plugins/platforms/android/androidjnimain.cpp
-@@ -943,6 +943,14 @@ Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void */*reserved*/)
+@@ -980,6 +980,14 @@ Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void */*reserved*/)
__android_log_print(ANDROID_LOG_FATAL, "Qt", "registerNatives failed");
return -1;
}
diff --git a/depends/patches/qt/fix_montery_include.patch b/depends/patches/qt/fix_montery_include.patch
deleted file mode 100644
index 38b700addf..0000000000
--- a/depends/patches/qt/fix_montery_include.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From dece6f5840463ae2ddf927d65eb1b3680e34a547
-From: Øystein Heskestad <oystein.heskestad@qt.io>
-Date: Wed, 27 Oct 2021 13:07:46 +0200
-Subject: [PATCH] Add missing macOS header file that was indirectly included before
-
-See: https://bugreports.qt.io/browse/QTBUG-97855
-
-Upstream Commits:
- - Qt 6.2: c884bf138a21dd7320e35cef34d24e22e74d7ce0
-
-diff --git a/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h b/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
-index e070ba97..07c75b04 100644
---- a/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
-+++ b/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
-@@ -40,6 +40,7 @@
- #ifndef QIOSURFACEGRAPHICSBUFFER_H
- #define QIOSURFACEGRAPHICSBUFFER_H
-
-+#include <CoreGraphics/CGColorSpace.h>
- #include <qpa/qplatformgraphicsbuffer.h>
- #include <private/qcore_mac_p.h>
diff --git a/depends/patches/qt/memory_resource.patch b/depends/patches/qt/memory_resource.patch
new file mode 100644
index 0000000000..650c328528
--- /dev/null
+++ b/depends/patches/qt/memory_resource.patch
@@ -0,0 +1,49 @@
+Fix unusable memory_resource on macos
+
+See https://bugreports.qt.io/browse/QTBUG-117484
+and https://bugreports.qt.io/browse/QTBUG-114316
+
+--- a/qtbase/src/corelib/tools/qduplicatetracker_p.h
++++ b/qtbase/src/corelib/tools/qduplicatetracker_p.h
+@@ -52,7 +52,7 @@
+
+ #include <qglobal.h>
+
+-#if QT_HAS_INCLUDE(<memory_resource>) && __cplusplus > 201402L
++#ifdef __cpp_lib_memory_resource
+ # include <unordered_set>
+ # include <memory_resource>
+ #else
+
+--- a/qtbase/src/corelib/global/qcompilerdetection.h
++++ b/qtbase/src/corelib/global/qcompilerdetection.h
+@@ -1050,16 +1050,22 @@
+ # endif // !_HAS_CONSTEXPR
+ # endif // !__GLIBCXX__ && !_LIBCPP_VERSION
+ # endif // Q_OS_QNX
+-# if (defined(Q_CC_CLANG) || defined(Q_CC_INTEL)) && defined(Q_OS_MAC) && defined(__GNUC_LIBSTD__) \
+- && ((__GNUC_LIBSTD__-0) * 100 + __GNUC_LIBSTD_MINOR__-0 <= 402)
++# if (defined(Q_CC_CLANG) || defined(Q_CC_INTEL)) && defined(Q_OS_MAC)
++# if defined(__GNUC_LIBSTD__) && ((__GNUC_LIBSTD__-0) * 100 + __GNUC_LIBSTD_MINOR__-0 <= 402)
+ // Apple has not updated libstdc++ since 2007, which means it does not have
+ // <initializer_list> or std::move. Let's disable these features
+-# undef Q_COMPILER_INITIALIZER_LISTS
+-# undef Q_COMPILER_RVALUE_REFS
+-# undef Q_COMPILER_REF_QUALIFIERS
++# undef Q_COMPILER_INITIALIZER_LISTS
++# undef Q_COMPILER_RVALUE_REFS
++# undef Q_COMPILER_REF_QUALIFIERS
+ // Also disable <atomic>, since it's clearly not there
+-# undef Q_COMPILER_ATOMICS
+-# endif
++# undef Q_COMPILER_ATOMICS
++# endif
++# if defined(__cpp_lib_memory_resource) \
++ && ((defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < 140000) \
++ || (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < 170000))
++# undef __cpp_lib_memory_resource // Only supported on macOS 14 and iOS 17
++# endif
++# endif // (defined(Q_CC_CLANG) || defined(Q_CC_INTEL)) && defined(Q_OS_MAC)
+ # if defined(Q_CC_CLANG) && defined(Q_CC_INTEL) && Q_CC_INTEL >= 1500
+ // ICC 15.x and 16.0 have their own implementation of std::atomic, which is activated when in Clang mode
+ // (probably because libc++'s <atomic> on OS X failed to compile), but they're missing some
diff --git a/depends/patches/qt/no-xlib.patch b/depends/patches/qt/no-xlib.patch
index d6846aaca2..0f7965d2ea 100644
--- a/depends/patches/qt/no-xlib.patch
+++ b/depends/patches/qt/no-xlib.patch
@@ -4,12 +4,7 @@ Date: Thu, 18 Jul 2019 17:22:05 -0400
Subject: [PATCH] Wrap xlib related code blocks in #if's
They are not necessary to compile QT.
----
- qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp | 8 ++++++++
- 1 file changed, 8 insertions(+)
-diff --git a/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp b/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp
-index 7c62c2e2b3..c05c6c0a07 100644
--- a/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp
+++ b/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp
@@ -49,7 +49,9 @@
@@ -22,7 +17,7 @@ index 7c62c2e2b3..c05c6c0a07 100644
#include <xcb/xfixes.h>
#include <xcb/xcb_image.h>
-@@ -391,6 +391,7 @@ void QXcbCursor::changeCursor(QCursor *cursor, QWindow *window)
+@@ -391,6 +393,7 @@ void QXcbCursor::changeCursor(QCursor *cursor, QWindow *window)
xcb_flush(xcb_connection());
}
@@ -30,7 +25,7 @@ index 7c62c2e2b3..c05c6c0a07 100644
static int cursorIdForShape(int cshape)
{
int cursorId = 0;
-@@ -444,6 +445,7 @@ static int cursorIdForShape(int cshape)
+@@ -444,6 +447,7 @@ static int cursorIdForShape(int cshape)
}
return cursorId;
}
@@ -38,7 +33,7 @@ index 7c62c2e2b3..c05c6c0a07 100644
xcb_cursor_t QXcbCursor::createNonStandardCursor(int cshape)
{
-@@ -556,7 +558,9 @@ static xcb_cursor_t loadCursor(void *dpy, int cshape)
+@@ -558,7 +562,9 @@ static xcb_cursor_t loadCursor(void *dpy, int cshape)
xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
{
xcb_connection_t *conn = xcb_connection();
@@ -47,8 +42,8 @@ index 7c62c2e2b3..c05c6c0a07 100644
+#endif
xcb_cursor_t cursor = XCB_NONE;
- // Try Xcursor first
-@@ -586,6 +590,7 @@ xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
+ #if QT_CONFIG(xcb_xlib) && QT_CONFIG(library)
+@@ -590,6 +596,7 @@ xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
// Non-standard X11 cursors are created from bitmaps
cursor = createNonStandardCursor(cshape);
@@ -56,7 +51,7 @@ index 7c62c2e2b3..c05c6c0a07 100644
// Create a glpyh cursor if everything else failed
if (!cursor && cursorId) {
cursor = xcb_generate_id(conn);
-@@ -593,6 +598,7 @@ xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
+@@ -597,6 +604,7 @@ xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
cursorId, cursorId + 1,
0xFFFF, 0xFFFF, 0xFFFF, 0, 0, 0);
}
@@ -64,6 +59,3 @@ index 7c62c2e2b3..c05c6c0a07 100644
if (cursor && cshape >= 0 && cshape < Qt::LastCursor && connection()->hasXFixes()) {
const char *name = cursorNames[cshape].front();
---
-2.22.0
-