mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-14 00:30:17 +02:00
Merge bitcoin/bitcoin#34942: [31.x] Backports
ef10b2ec65guix: Clean up module list in manifest (Hennadii Stepanov)f0e1014c39kernel: Remove NONNULL annotation from destroy method (Alexander Wiederin)56cdeab8b5depends, qt: Fix build on aarch64 macOS 26.4 (Hennadii Stepanov)f3b64aa405fuzz: Use CAmount for storing best_waste (Ava Chow)98551a0efdfuzz: Remove unused g_setup pointers (MarcoFalke) Pull request description: Backports: * #34918 * #34939 * #34944 * #34956 * #34982 ACKs for top commit: marcofleon: ACKef10b2ec65w0xlt: ACKef10b2ec65Tree-SHA512: 2d763deff7fa154fd697630bdb61644d4908b02b4a583cb648aeb9493009417d6d02367300e6d16d1c3b7ef8296b2411e1e96f8e67ef54fcd2fca4a415b97170
This commit is contained in:
@@ -22,17 +22,14 @@
|
||||
((gnu packages python-xyz) #:select (python-pydantic-2))
|
||||
((gnu packages tls) #:select (openssl))
|
||||
((gnu packages version-control) #:select (git-minimal))
|
||||
(guix build-system cmake)
|
||||
(guix build-system gnu)
|
||||
(guix build-system python)
|
||||
(guix build-system pyproject)
|
||||
(guix build-system trivial)
|
||||
(guix download)
|
||||
(guix gexp)
|
||||
(guix git-download)
|
||||
((guix licenses) #:prefix license:)
|
||||
(guix packages)
|
||||
((guix utils) #:select (cc-for-target substitute-keyword-arguments)))
|
||||
((guix utils) #:select (substitute-keyword-arguments)))
|
||||
|
||||
(define-syntax-rule (search-our-patches file-name ...)
|
||||
"Return the list of absolute file names corresponding to each
|
||||
|
||||
@@ -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)
|
||||
@@ -281,6 +282,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
|
||||
|
||||
@@ -1333,7 +1333,7 @@ BITCOINKERNEL_API btck_BlockValidationState* BITCOINKERNEL_WARN_UNUSED_RESULT bt
|
||||
* Destroy the btck_BlockValidationState.
|
||||
*/
|
||||
BITCOINKERNEL_API void btck_block_validation_state_destroy(
|
||||
btck_BlockValidationState* block_validation_state) BITCOINKERNEL_ARG_NONNULL(1);
|
||||
btck_BlockValidationState* block_validation_state);
|
||||
|
||||
///@}
|
||||
|
||||
|
||||
@@ -38,18 +38,13 @@
|
||||
using kernel::CBlockFileInfo;
|
||||
using node::SnapshotMetadata;
|
||||
|
||||
namespace {
|
||||
const BasicTestingSetup* g_setup;
|
||||
} // namespace
|
||||
|
||||
void initialize_deserialize()
|
||||
{
|
||||
static const auto testing_setup = MakeNoLogFileContext<>();
|
||||
g_setup = testing_setup.get();
|
||||
}
|
||||
|
||||
#define FUZZ_TARGET_DESERIALIZE(name, code) \
|
||||
FUZZ_TARGET(name, .init = initialize_deserialize) \
|
||||
FUZZ_TARGET(name, .init = initialize_deserialize) \
|
||||
{ \
|
||||
try { \
|
||||
code \
|
||||
|
||||
@@ -26,12 +26,10 @@
|
||||
|
||||
namespace {
|
||||
|
||||
const TestingSetup* g_setup;
|
||||
std::deque<COutPoint> g_available_coins;
|
||||
void initialize_miner()
|
||||
{
|
||||
static const auto testing_setup = MakeNoLogFileContext<const TestingSetup>();
|
||||
g_setup = testing_setup.get();
|
||||
for (uint32_t i = 0; i < uint32_t{100}; ++i) {
|
||||
g_available_coins.emplace_back(Txid::FromUint256(uint256::ZERO), i);
|
||||
}
|
||||
|
||||
@@ -275,7 +275,7 @@ FUZZ_TARGET(bnb_finds_min_waste)
|
||||
|
||||
// Brute force optimal solution (lowest waste, but cannot be superset of another solution)
|
||||
std::vector<uint32_t> solutions;
|
||||
int best_waste{std::numeric_limits<int>::max()};
|
||||
CAmount best_waste{std::numeric_limits<int64_t>::max()};
|
||||
int best_weight{std::numeric_limits<int>::max()};
|
||||
for (uint32_t pattern = 1; (pattern >> num_groups) == 0; ++pattern) {
|
||||
// BnB does not permit adding more inputs to a solution, i.e. a superset of a solution cannot ever be a solution.
|
||||
|
||||
@@ -11,11 +11,9 @@
|
||||
namespace wallet {
|
||||
namespace {
|
||||
|
||||
const TestingSetup* g_setup;
|
||||
void initialize_crypter()
|
||||
{
|
||||
static const auto testing_setup = MakeNoLogFileContext<const TestingSetup>();
|
||||
g_setup = testing_setup.get();
|
||||
}
|
||||
|
||||
FUZZ_TARGET(crypter, .init = initialize_crypter)
|
||||
|
||||
Reference in New Issue
Block a user