mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-04-06 21:57:54 +02:00
Merge bitcoin/bitcoin#34956: depends, qt: Fix build on aarch64 macOS 26.4
3aeccb7d73depends, qt: Fix build on aarch64 macOS 26.4 (Hennadii Stepanov) Pull request description: Fixes https://github.com/bitcoin/bitcoin/issues/34951. See an upstream issue: https://qt-project.atlassian.net/browse/QTBUG-145239. ACKs for top commit: fanquake: ACK3aeccb7d73Tree-SHA512: ab8bc42072077d72068eac17ba5d69c98f313dd4e13c5ffcd3a3cc33eb5f8afe2495f470410edc4a8ee60a6c0942c5b117dcf0a46b2194388db2eee82ee69f86
This commit is contained in:
@@ -9,6 +9,7 @@ $(package)_patches := dont_hardcode_pwd.patch
|
||||
$(package)_patches += qtbase_skip_tools.patch
|
||||
$(package)_patches += rcc_hardcode_timestamp.patch
|
||||
$(package)_patches += qttools_skip_dependencies.patch
|
||||
$(package)_patches += fix-macos26-qyield.patch
|
||||
|
||||
$(package)_qttranslations_file_name=$(qt_details_qttranslations_file_name)
|
||||
$(package)_qttranslations_sha256_hash=$(qt_details_qttranslations_sha256_hash)
|
||||
@@ -137,7 +138,8 @@ define $(package)_preprocess_cmds
|
||||
patch -p1 -i $($(package)_patch_dir)/dont_hardcode_pwd.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/qtbase_skip_tools.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/rcc_hardcode_timestamp.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/qttools_skip_dependencies.patch
|
||||
patch -p1 -i $($(package)_patch_dir)/qttools_skip_dependencies.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix-macos26-qyield.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
||||
@@ -24,6 +24,7 @@ $(package)_patches += fix-gcc16-sfinae-qregularexpression.patch
|
||||
$(package)_patches += fix-gcc16-sfinae-qchar.patch
|
||||
$(package)_patches += fix-gcc16-sfinae-qbitarray.patch
|
||||
$(package)_patches += fix-gcc16-sfinae-qanystringview.patch
|
||||
$(package)_patches += fix-macos26-qyield.patch
|
||||
$(package)_patches += fix-qbytearray-include.patch
|
||||
|
||||
$(package)_qttranslations_file_name=$(qt_details_qttranslations_file_name)
|
||||
@@ -282,6 +283,7 @@ define $(package)_preprocess_cmds
|
||||
patch -p1 -i $($(package)_patch_dir)/fix-gcc16-sfinae-qchar.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix-gcc16-sfinae-qbitarray.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix-gcc16-sfinae-qanystringview.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix-macos26-qyield.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix-qbytearray-include.patch
|
||||
endef
|
||||
ifeq ($(host),$(build))
|
||||
|
||||
44
depends/patches/qt/fix-macos26-qyield.patch
Normal file
44
depends/patches/qt/fix-macos26-qyield.patch
Normal file
@@ -0,0 +1,44 @@
|
||||
commit a76004f16fdc43e1b7af83bfdf3f1a613491b234
|
||||
Author: Paul Wicking <paul.wicking@qt.io>
|
||||
Date: Thu Mar 26 07:09:43 2026 +0100
|
||||
|
||||
qyieldcpu: Fix compilation with macOS 26.4 SDK
|
||||
|
||||
After updating to the macOS 26.4 SDK, qtbase fails to compile on
|
||||
Apple Silicon with an implicit function declaration error for
|
||||
__yield() in qyieldcpu.h. It appears that the SDK's Clang now
|
||||
reports __has_builtin(__yield) as true, but __yield() requires
|
||||
<arm_acle.h> for its declaration.
|
||||
|
||||
The compiler's own __builtin_arm_yield intrinsic was already checked
|
||||
further down in the cascade. Moving it above the __yield check resolves
|
||||
the build failure, without unnecessarily pulling in the header.
|
||||
|
||||
Fixes: QTBUG-145239
|
||||
Change-Id: I94b4d8f72385a4944c272ed7a66d249537a82e7d
|
||||
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
||||
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
||||
|
||||
--- a/qtbase/src/corelib/thread/qyieldcpu.h
|
||||
+++ b/qtbase/src/corelib/thread/qyieldcpu.h
|
||||
@@ -31,7 +31,9 @@ void qYieldCpu(void)
|
||||
noexcept
|
||||
#endif
|
||||
{
|
||||
-#if __has_builtin(__yield)
|
||||
+#if __has_builtin(__builtin_arm_yield)
|
||||
+ __builtin_arm_yield();
|
||||
+#elif __has_builtin(__yield)
|
||||
__yield(); // Generic
|
||||
#elif defined(_YIELD_PROCESSOR) && defined(Q_CC_MSVC)
|
||||
_YIELD_PROCESSOR(); // Generic; MSVC's <atomic>
|
||||
@@ -45,9 +47,6 @@ void qYieldCpu(void)
|
||||
_mm_pause();
|
||||
#elif defined(Q_PROCESSOR_X86)
|
||||
__asm__("pause"); // hopefully asm() works in this compiler
|
||||
-
|
||||
-#elif __has_builtin(__builtin_arm_yield)
|
||||
- __builtin_arm_yield();
|
||||
#elif defined(Q_PROCESSOR_ARM) && Q_PROCESSOR_ARM >= 7 && defined(Q_CC_GNU)
|
||||
__asm__("yield"); // this works everywhere
|
||||
|
||||
Reference in New Issue
Block a user