mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 11:57:28 -03:00
430f319f73
I need to try and patch around Qts buildsystem to keep #21778 moving along (the issue being that even when you tell Qt to build using Clang on Linux, it still calls out to GCC, breaking our ability to have a macOS release build env that doesn't have a GCC toolchain installed, and thus no ld binary). Before trying to patch Qt any further, update to the latest LTS release, and update the current patch set.
49 lines
2.1 KiB
Diff
49 lines
2.1 KiB
Diff
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
|
|
@@ -1055,16 +1055,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
|