subprocess: Fix -Wunused-private-field when building with clang-cl on Windows#34385
subprocess: Fix -Wunused-private-field when building with clang-cl on Windows#34385sedited merged 2 commits intobitcoin:masterfrom
-Wunused-private-field when building with clang-cl on Windows#34385Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/34385. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please copy-paste |
fanquake
left a comment
There was a problem hiding this comment.
Context and details can be found in #31507 (comment).
Can you put the relevent context and details in this PR, and in the commit messages, rather than linking to a comment in a different PR.
| public: | ||
| friend struct detail::ArgumentDeducer; | ||
| #ifndef __USING_WINDOWS__ | ||
| friend class detail::Child; |
There was a problem hiding this comment.
Can these be fixed with a few [[maybe_unused]] rather than a bunch of #ifdefs and shuffling code around?
There was a problem hiding this comment.
i think it is fine to not compile fork-exec-child on Windows, if it doesn't exist there conceptually.
There was a problem hiding this comment.
The point was to make these changes compatible with the upstream, which uses C++11 standard.
There was a problem hiding this comment.
Sure, but it seems a bit odd at this point, to try and remain compatible with upstream, which uses an older standard, is getting little-to-no maintainence, seems to be generally low code quality, and we are continuing to make header changes that diverge.
There was a problem hiding this comment.
I still have a slight preference to guard this behind __USING_WINDOWS__. It seems cleaner, but no strong opinion.
When compiling with clang-cl on Windows, `src/util/subprocess.h` emits `-Wunused-private-field` warnings about unused private fields in the `Popen` class.
When compiling with clang-cl on Windows, `src/util/subprocess.h` emits `-Wunused-private-field` warnings about unused private fields in the `Child` class.
d39e9d6 to
1b36bf0
Compare
Thanks! Rewritten. |
|
review ACK 1b36bf0 👋 Show signatureSignature: |
It is landed now. |
Maybe a scripted-diff upstream and here could fix this 😅 |
|
Another thing that comes to mind is that it is weird to conclude the target platform from he compiler identifier: #if (defined _MSC_VER) || (defined __MINGW32__)
#define __USING_WINDOWS__
#endifThis code is assuming, that if either MSVC or MINGW are used as the compiler, the target platform must be windows. But why not use |
|
Yea. Rather than introducing more redundant, technically invalid C++, to stay compatible with upstream, we could just diverge, and write better code. |
…9c7364ac567 d9c7364ac567 Merge bitcoin/bitcoin#34141: miniscript: Use Func and Expr when parsing keys, hashes, and locktimes 6c8d628b74aa Merge bitcoin-core/gui#931: Release: Update `src/qt/locale/bitcoin_en.xlf` after string freeze fa194fca8e7b Merge bitcoin/bitcoin#34622: test: assert_debug_log timeouts follow-up d907d65acd13 Merge bitcoin/bitcoin#29770: index: Check all necessary block data is available before starting to sync ce6898f9a803 Merge bitcoin/bitcoin#34605: build: define CMAKE_COMPILE_WARNING_AS_ERROR as a cache option a2fd558760ab Merge bitcoin/bitcoin#34572: cmake: Fix NetBSD-specific workaround for Boost ef987683dc51 qt: Update src/qt/locale/bitcoin_en.xlf after string freeze cb3473a6804f Merge bitcoin/bitcoin#34568: mining: Break compatibility with existing IPC mining clients 641a1954f7ae Merge bitcoin/bitcoin#34633: Revert "ci: Treat SHA1 LLVM signing key as warning" 3574905cecec Revert "ci: Treat SHA1 LLVM signing key as warning" 1a54886b639a Merge bitcoin/bitcoin#24539: Add a "tx output spender" index fa4424fd98b6 test: Fixup assert_debug_log timeouts in feature_config_args.py faed837f274a test: Add missing syncwithvalidationinterfacequeue ee2065fdeaca Merge bitcoin/bitcoin#34165: coins: don't mutate main cache when connecting block 96bec216ec34 Merge bitcoin/bitcoin#34549: net: reduce log level for PCP/NAT-PMP NOT_AUTHORIZED failures 76de2f8e55f3 Merge bitcoin/bitcoin#34571: test: Fix intermittent issues in feature_assumevalid.py c808dfbbdcea Merge bitcoin/bitcoin#34329: rpc,net: Add private broadcast RPCs 739f75c0980e Merge bitcoin/bitcoin#33512: coins: use dirty entry count for flush warnings and disk space checks 02c83fef8431 Merge bitcoin/bitcoin#34577: http: fix submission during shutdown race 0b96b9c600e0 Minimize mempool lock, sync txo spender index only when and if needed d0998cbe348e Merge bitcoin/bitcoin#33199: fees: enable `CBlockPolicyEstimator` return sub 1 sat/vb fee rate estimates 37e449dcc72c Merge bitcoin/bitcoin#34512: rpc: add coinbase_tx field to getblock 097c18239b58 Merge bitcoin/bitcoin#34385: subprocess: Fix `-Wunused-private-field` when building with clang-cl on Windows 910bd1c964b6 Merge bitcoin/bitcoin#34582: rpc: Properly parse -rpcworkqueue/-rpcthreads e0463b4e8c25 rpc: add coinbase_tx field to getblock 5a8a427610ed Merge bitcoin/bitcoin#32745: scripted-diff: Update DeriveType enum values to mention ranged derivations 3d82ec5bdd01 Add a "tx output spender" index 8ee24d764a28 Merge bitcoin/bitcoin#34604: guix: remove double export of `TZ` 4933d1fbbada Merge bitcoin/bitcoin#28792: build: Embedded ASMap [3/3]: Build binary dump header file 6d482b22de15 Merge bitcoin/bitcoin#32138: wallet, rpc: remove settxfee and paytxfee 726b3663cc8e http: properly respond to HTTP request during shutdown 241ad5853bca Merge bitcoin-core/gui#929: Use plurals where necessary a849b7e1ff35 Merge bitcoin-core/gui#928: Replace three dots with ellipsis 9e4567b17a28 Merge bitcoin/bitcoin#34581: test: Set assert_debug_log timeout to 0 655b9d12ee17 Merge bitcoin/bitcoin#32950: validation: remove BLOCK_FAILED_CHILD 2706758dc38c Merge bitcoin/bitcoin#34349: util: Remove brittle and confusing sp::Popen(std::string) 59e10a5463dc Merge bitcoin/bitcoin#34023: Optimized SFL cluster linearization 59d24bd5dd2a threadpool: make Submit return Expected instead of throwing fb3e1bf9c977 test: check LoadBlockIndex correctly recomputes invalidity flags 29740c06ac53 validation: remove BLOCK_FAILED_MASK b5b2956bda32 validation: reset BLOCK_FAILED_CHILD to BLOCK_FAILED_VALID when loading from disk 37bc20785278 validation: stop using BLOCK_FAILED_CHILD 120c631e1689 refactor: use clearer variables in InvalidateBlock() fa4cb96bdec2 test: Set assert_debug_log timeout to 0 c2fcf2506973 clusterlin: inline GetReachable into Deactivate (optimization) d90f98ab4aaa clusterlin: inline UpdateChunk into (De)Activate (optimization) b684f954bbfc clusterlin: unidirectional MakeTopological initially (optimization) 1daa600c1ca8 clusterlin: track suboptimal chunks (optimization) 63b06d5523f1 clusterlin: keep track of active children (optimization) ae16485aa94d clusterlin: special-case self-merges (optimization) 3221f1a074e7 clusterlin: make MergeSequence take SetIdx (simplification) 7194de3f7c53 clusterlin: precompute reachable sets (optimization) 6f898dbb8bfa clusterlin: simplify PickMergeCandidate (optimization) dcf458ffb99c clusterlin: split up OptimizeStep (refactor) cbd684a4713d clusterlin: abstract out functions from MergeStep (refactor) b75574a6531e clusterlin: improve TxData::dep_top_idx type (optimization) 73cbd15d4572 clusterlin: get rid of DepData (optimization) 7c6f63a8a9dc clusterlin: pool SetInfos (preparation) 20e2f3e96df3 scripted-diff: rename _rep -> _idx in SFL 268fcb6a53ec clusterlin: add more Assumes and sanity checks (tests) d69c9f56ea96 clusterlin: count chunk deps without loop (optimization) f66fa69ce008 clusterlin: split tx/chunk dep counting (preparation) 900e45977889 clusterlin: avoid depgraph argument in SanityCheck (cleanup) 666b37970f15 clusterlin: fix type to count dependencies a7c29df0e5ac Merge bitcoin/bitcoin#34552: fees: refactor: separate feerate format from fee estimate mode 231dd04b8dcb build: define CMAKE_COMPILE_WARNING_AS_ERROR as a cache option fa48d421636c test: Stricter unit test fa626bd14341 util: Remove brittle and confusing sp::Popen(std::string) fd06157d1465 test: Add coverage for restarted node without any block sync 3d7ab7ecb7df rpc, test: Address feedback from #29668 312919c9dd5d test: Indices can not start based on block data without undo data a9a3b29dd687 index: Check availability of undo data for indices c8c9c1e61759 Merge bitcoin/bitcoin#34383: ci: remove commit count limit from `test-each-commit` and fail fast 62e378584e77 guix: don't export TZ twice badcf1c68dbf guix: fix typo in guix-codesign 8a050b9cb68a Merge bitcoin/bitcoin#34575: test: Avoid empty errmsg in JSONRPCException 746d8cddc191 qt: Use plurals where necessary fa5672dcafa1 refactor: [gui] Use SettingTo<int64_t> over deprecated SettingToInt 35e6444fdc40 Merge bitcoin/bitcoin#34570: doc: update Windows MSVC build guide to utilize winget to install build requirements d159b103987f doc: update Windows MSVC build guide to utilize WinGet to install apps afea2af13913 net: reduce log level for PCP/NAT-PMP NOT_AUTHORIZED failures fac3ecaf69d6 rpc: Properly parse -rpcworkqueue/-rpcthreads faee36f63b5f util: Add SettingTo<Int>() and GetArg<Int>() 6df4a045f797 qt: Replace three dots with ellipsis 211111b8048d test: Avoid empty errmsg in JSONRPCException b65ff0e5a1fd Merge bitcoin/bitcoin#34548: ci: Add and use ci-windows-cross.py helper 03e5f063b5c0 Merge bitcoin/bitcoin#34559: ci: split vcpkg tools cache into restore/save 84e826ddc1cf Merge bitcoin/bitcoin#34511: test: fully reset the state of CConnman in tests 309c51d89dfc Merge bitcoin/bitcoin#34546: kernel: Avoid duplicating symbols in the kernel library 24f93c9af7f6 release note 331a5279d277 wallet, rpc:remove settxfee and paytxfee eafd530d2032 kernel: avoid potential duplicate object in shared library/binary 24c3b4701003 build: add kernel-specific warnings cae6d895f8a8 fuzz: add target for CoinsViewOverlay 86eda88c8e48 fuzz: move backend mutating block to end of coins_view 89824fb27b22 fuzz: pass coins_view_cache to TestCoinsView in coins_view 73e99a596655 coins: don't mutate main cache when connecting block 67c0d1798e61 coins: introduce CoinsViewOverlay 69b01af0eb90 coins: add PeekCoin() f700609e8ada doc: Release notes for mining IPC interface bump 79c934b51cdc cmake: Fix NetBSD-specific workaround for Boost fa90d44a2283 test: Fix intermittent issues in feature_assumevalid.py 07b924775e4f Merge bitcoin/bitcoin#34427: lint: Flatten lint image entry points 9453c153612a ipc mining: break compatibility with existing clients (version bump) 70de5cc2d205 ipc mining: pass missing context to BlockTemplate methods (incompatible schema change) 2278f017afad ipc mining: remove deprecated methods (incompatible schema change) c6638fa7c5e9 ipc mining: provide default option values (incompatible schema change) a4603ac77412 ipc mining: declare constants for default field values ff995b50cf9e ipc test: add workaround to block_reserved_weight exception test b970cdf20fce test framework: expand expected_stderr, expected_ret_code options df53a3e5ec87 rpc refactor: stop using deprecated getCoinbaseCommitment method 0b4cd08fcd22 Merge bitcoin/bitcoin#33965: mining: fix -blockreservedweight shadows IPC option 2a1d0db7994e doc: Mention private broadcast RPCs in release notes c3378be10b0a test: Cover abortprivatebroadcast in p2p_private_broadcast 557260ca14ac rpc: Add abortprivatebroadcast 15dff452eb61 test: Cover getprivatebroadcastinfo in p2p_private_broadcast 996f20c18af0 rpc: Add getprivatebroadcastinfo 5e64982541f3 net: Add PrivateBroadcast::GetBroadcastInfo 55c49ff8f4b1 Merge bitcoin/bitcoin#34143: build: Prevent system header fallback and include path pollution c134b1a4bc35 Merge bitcoin/bitcoin#34257: txgraph: deterministic optimal transaction order 4a05825a3f39 Merge bitcoin/bitcoin#33689: http: replace WorkQueue and single threads handling for ThreadPool c1355493e2c2 refactor: fees: split fee rate format from fee estimate mode c413cf12c5c6 ci: Split vcpkg tools cache into restore/save 337fef9f2f68 Merge bitcoin/bitcoin#34554: build: avoid exporting secp256k1 symbols 922ebf96ed66 refactor: move-only: move `FeeEstimateMode` enum to `util/fees.h` cb1798000c25 Merge bitcoin/bitcoin#33861: build: Bump VS minimum supported version to 18.3 7640863a0fbe Merge bitcoin/bitcoin#34555: doc: archive release notes for v29.3 d29bc5e6dd71 doc: archive release notes for v29.3 fd625d84ae9e Merge bitcoin/bitcoin#34539: test: Fixup TODO comment in feature_dbcrash.py; remove unnecessary sleep 6777314310bc Merge bitcoin/bitcoin#34551: ci: Extend diff context for clang-format 452c743951fa refactor: Remove workaround for resolved MSVC bug 7164a0cab650 build: Bump VS minimum supported version to 18.3 2ccfdb582b64 build: avoid exporting secp256k1 symbols fa8c89511d83 Fixup TODO comment in feature_dbcrash.py; remove unnecessary sleep f8d2f30bf37d ci: Extend diff context for clang-format 91a8e9b549e9 Merge bitcoin-core/gui#807: refactor: interfaces, make 'createTransaction' less error-prone 573bb542be80 net: Store recipient node address in private broadcast fa13b13239e5 ci: [refactor] Use pathlib over os.path fa2719ab1ba2 ci: [refactor] Move run_unit_tests to ci-windows-cross.py fa99ba5f14d4 ci: Set PREVIOUS_RELEASES_DIR env var in ci-windows-cross.py fa4a1cab6c17 ci: Move run_functional_tests into ci-windows-cross.py 1111108685ec ci: [refactor] Move pyzmq install and get_previous_releases into ci-windows-cross.py fac9c7bd6635 ci: [refactor] Move config.ini rewrite to ci-windows-cross.py faf738946668 ci: Move check_manifests step to ci-windows-cross.py fa674d55df57 ci: [refactor] Move print_version step into ci-windows-cross.py helper 6f113cb1847c txgraph: use fallback order to sort chunks (feature) 0a3351947e73 txgraph: use fallback order when linearizing (feature) fba004a3df02 txgraph: pass fallback_order to TxGraph (preparation) 941c432a4637 txgraph test: subclass TxGraph::Ref like mempool does (preparation) 39d0052cbf47 clusterlin: make optimal linearizations deterministic (feature) 8bfbba32077c txgraph: sort distinct-cluster chunks by equal-feerate-prefix size (feature) e0bc73ba9270 clusterlin: sort tx in chunk by feerate and size (feature) 6c1bcb2c7c1a txgraph: clear cluster's chunk index in ~Ref (preparation) 7427c7d09830 txgraph: update chunk index on Compact (preparation) 3ddafceb9afd txgraph: initialize Ref in AddTransaction (preparation) 64294c89094d Merge bitcoin/bitcoin#34500: ci: Print verbose Windows CI build failure 5f6bfa3649c3 Merge bitcoin/bitcoin#34057: test: add tests for cluster chunks 6ca7782db9b4 Merge bitcoin/bitcoin#34523: doc: Clarify why performance-move-const-arg.CheckTriviallyCopyableMove=false 44afed4cd970 Merge bitcoin/bitcoin#34524: refactor: [rpc] Remove confusing and brittle integral casts (take 2) 3764746404a8 Merge bitcoin/bitcoin#34241: test: Check that interrupt results in EXIT_SUCCESS 18f11695c755 validation: don't update BLOCK_FAILED_VALID to BLOCK_FAILED_CHILD in InvalidateBlock acefdce08311 Merge bitcoin/bitcoin#34469: consensus/test/doc: cover errors in `CheckTxInputs` with unit tests 7e5e0b20ea3e Merge bitcoin/bitcoin#32773: cmake: Create subdirectories in build tree in advance fa90277d22e1 ci: Use ubuntu-slim for [meta] runners fa9627af9f89 ci: Rely on cmake --preset toolchain file fa3f89acaa7a ci: Add check_manifests to ci-windows.py 1111079a16b9 ci: Add run_tests step to ci-windows.py 6d625af2831b Merge bitcoin/bitcoin#32621: contrib: utxo_to_sqlite.py: add option to store txid/spk as BLOBs afb1bc120ecc validation: Use dirty entry count in flush warnings and disk space checks b413491a1cdd coins: Keep track of number of dirty entries in `CCoinsViewCache` 7e52b1b945c4 fuzz: call `EmplaceCoinInternalDANGER` as well in `SimulationTest` 8f0e1f6540be Merge bitcoin/bitcoin#34465: refactor: separate log generation from log handling b2805eec35ce Merge bitcoin/bitcoin#34528: test: Fix intermittent failure in `feature_assumevalid.py` by ensuring invalid block was processed before checking debug.log 72030efd4b83 Merge bitcoin/bitcoin#34525: Release: Prepare "Open Transifex translations for v31.0" step fe0b1513a7c5 test: add a test for txgraph staging ef253a9d3d16 test: add block builder tests for txgraph 4a1ac31e97c2 test: add a chunk test for txgraph b623fab1ba87 mining: enforce minimum reserved weight for IPC d3e49528d479 mining: fix -blockreservedweight shadows IPC option 418b7995ddfb test: have mining template helpers return None 54bd49c7e3c7 Merge bitcoin/bitcoin#34452: test: split interface_ipc.py 3b39a8aeb4c6 Merge bitcoin/bitcoin#34483: refactor: Use SpanReader over DataStream 6f68e0c8b760 Merge bitcoin/bitcoin#34181: refactor: [p2p] Make ProcessMessage private again, Use references when non-null 4c0d4f6f93f3 refactor: interfaces, make 'createTransaction' less error-prone e2c3ec9bf412 refactor: move CreatedTransactionResult to types.h 45372175c35b gui: remove AmountWithFeeExceedsBalance error special case d88997b809db Merge bitcoin/bitcoin#34299: wallet: remove PreSelectedInputs and re-activate "AmountWithFeeExceedsBalance" error b73a62f667d0 test: Ensure invalid block was processed before checking debug.log 633d1831199a test: misc interface_ipc_mining.py improvements 52ccd9215e67 test: split interface_ipc_mining.py into subtests 4e49fa2a6884 test: add interface_ipc_mining.py 01a1ae889e5a test: move IPC helpers to ipc_util.py 28160c1e3dc1 Merge bitcoin/bitcoin#34421: ci: add Chimera Linux LTO config 576f89202798 qt: Update the `src/qt/locale/bitcoin_en.xlf` translation source file 4b9f5beafe9e Update Transifex slug for 31.x 46e1288df2b4 Merge bitcoin/bitcoin#34498: iwyu: Fix patch to prefer `<cstdint>` fa6801366d76 refactor: [rpc] Remove confusing and brittle integral casts (take 2) d79249d2799e ci: add chimera Linux LTO CI job 48161f6a0503 wallet: introduce "tx amount exceeds balance when fees are included" error b7fa609ed175 wallet: remove PreSelectedInputs 7819da2c1643 walllet: use CoinsResult instead of PreSelectedInputs 0cd309c75e58 Merge bitcoin/bitcoin#34492: ci: Drop valgrind fuzz from GHA matrix fa561682ce40 ci: [refactor] Add .github/ci-windows.py prepare_tests step fa3e607c6dfb ci: Print verbose Windows CI build failure 4444808dd3a7 ci: [refactor] Add .github/ci-windows.py build step fabdd4e82342 ci: Refactor Windows CI into script fa88ac3f4f9b doc: Clarify why performance-move-const-arg.CheckTriviallyCopyableMove=false fa0677d13119 refactor: Use SpanReader over DataStream e5474079f179 wallet: introduce GetAppropriateTotal() in CoinsResult d8ea921d0140 wallet: correctly reserve in CoinsResult::All() 7072d825e39d wallet: ensure COutput added in set are unique fefa3be782ea wallet: fix, make 'total_effective_amount' optional actually optional 9ec1ae0e98c0 Merge bitcoin/bitcoin#34437: rpc: `uptime` should begin on application start d692e0722813 Merge bitcoin/bitcoin#32894: FUZZ: Test that BnB finds best solution 28d860788286 Merge bitcoin/bitcoin#34504: build: replace `WERROR` with `CMAKE_COMPILE_WARNING_AS_ERROR` ad1940a006b6 Merge bitcoin/bitcoin#34517: drop my key from trusted-keys 322c4ec4422a build: replace WERROR with CMAKE_COMPILE_WARNING_AS_ERROR 65134c7e5f99 depends: Prefix include path for headers-only `systemtap` package 94a692b6aa09 cmake: Add missed `USDT::headers` b5375c44ed16 depends: Prefix include path for headers-only `boost` package d73378ffcca2 cmake: Add missed `Boost::headers` eb97250421d3 Merge bitcoin/bitcoin#34496: build: don't pass on boost dependency to kernel consumers 9d7694729481 Merge bitcoin/bitcoin#34464: Change BlockRequestAllowed() to take ref (minor refactor) 8966352df3fc doc: add release notes 704a09fe7187 test: ensure fee estimator provide fee rate estimate < 1 s/vb 243e48cf4933 fees: delete unused dummy field fc4fbda42af1 fees: bump fees file version b54dedcc8563 fees: reduce `MIN_BUCKET_FEERATE` to 100 2cb7e99deee1 test: also reset CConnman::m_private_broadcast in tests 41b9b76cce6a Merge bitcoin/bitcoin#34510: doc: fix broken bpftrace installation link 91b7c874e2b1 test: add ConnmanTestMsg convenience method Reset() 42ee31e80c99 doc: fix broken bpftrace installation link 54d039305823 FUZZ: Test that BnB finds best solution eb510f8678ba ci: fail fast in test-each-commit script 04c4d710087b ci: remove commit count limit from `test-each-commit` 4ae00e9a7183 Merge bitcoin/bitcoin#32636: Split `CWallet::Create()` into `CreateNew` and `LoadExisting` d4bc620ad8cf Merge bitcoin/bitcoin#34488: refactor: Small style and test fixups for bitcoinkernel eb3dbbaf30fc Merge bitcoin/bitcoin#34493: contrib: Remove valgrind suppression for bug 472219 1e64aeaaecc2 Merge bitcoin/bitcoin#34295: test: Improve STRICTENC/DERSIG unit tests b65a3d80093b iwyu: Fix patch to prefer `<cstdint>` a50d0b6720f3 build: don't pass on boost dependency to kernel consumers 3532e242134e Merge bitcoin/bitcoin#32748: fees: fix noisy flushing log fad9dd1a8891 test: kernel test fixups fabb58d42dc2 test: Use clang-tidy named args for create_chainman fa51594c5c0f refactor: Small style fixups in src/kernel/bitcoinkernel.cpp fa33acec89f0 Revert "valgrind: add suppression for bug 472219" 24699fec8422 doc: Add initial asmap data documentation bab085d282b1 ci: Use without embedded asmap build option in one ci job e53934422a29 doc: Expand documentation on asmap feature and tooling 6244212a5532 init, net: Implement usage of binary-embedded asmap data 6202b50fb900 build: Generate ip_asn.dat.h during build process 634cd60dc8f6 build: Add embedded asmap data faa4ab113cc9 ci: Drop valgrind fuzz from GHA matrix 02b5f6078d65 fees: make flushes log debug only b58eebf1520f Merge bitcoin/bitcoin#34470: Bump leveldb subtree and remove UB workaround in CI 8bb277c12373 Merge bitcoin/bitcoin#34481: Update secp256k1 subtree to latest master a4941132d311 Merge bitcoin/bitcoin#34461: ci: Print verbose build error message in test-each-commit fad7d86d8d17 ci: Remove unused workaround after leveldb subtree bump fabced56f650 Bump leveldb subtree be35408c5ad7 Merge bitcoin/bitcoin#34474: ci: update ccache to improve hitrate 2f2952c5f2e3 Squashed 'src/leveldb/' changes from cad64b151d..ab6c84e6f3 7528d18796a2 ci: show more verbose ccache stats 47c9297172b0 Merge bitcoin/bitcoin#32420: mining, ipc: omit dummy extraNonce from coinbase 4b53cbd69220 test: Test for musig() in various miniscript expressions ec0f47b15cb3 miniscript: Using Func and Expr when parsing keys, hashes, and locktimes 6fd780d4fbc4 descriptors: Increment key_exp_index in ParsePubkey(Inner) b12281bd86e2 miniscript: Use a reference to key_exp_index in KeyParser ce4c66eb7c5e test: Test that key expression indexes match key count 8c03318387f6 consensus/doc: explain `GetValueOut()` precondition 82ef92c8d006 consensus/doc: explain unreachable `bad-txns-fee-outofrange` check fad3eb395645 refactor: Use SpanReader over DataStream fa06e26764bb refactor: [qt] Use SpanReader to avoid two vector copies fabd4d2e2e3c refactor: Avoid UB in SpanReader::ignore 37cc2a2d953c logging: use util/log.h where possible 8799eb74406e Merge bitcoin/bitcoin#33878: refactor, docs: Embedded ASMap [2/3]: Refactor asmap internals and add documentation bb8e9e7c4c8d logging: Move message formatting to util/log.h 001f0a428e3a move-only: Move logging macros to util/log.h 94c0adf4e857 move-onlyish: Move logging levels to util/log.h 56d113cab034 move-only: move logging categories to logging/categories.h f5233f7e9827 move-only: Move SourceLocation to util/log.h fa20bc2ec275 refactor: Use empty() over eof() in the streams interface fa879db73528 test: Read debug log for self-checking comment d405713197f8 ci: use Alpine 3.23 1cee0e4cd3af ci: detect apk usage generally 1ed3de5a6d97 Update secp256k1 subtree to latest master 9d4c9b00356e Squashed 'src/secp256k1/' changes from 14e56970cb..57315a6985 9f8764c814ea Merge bitcoin/bitcoin#34475: ci: Treat SHA1 LLVM signing key as warning 3c8f5e48f710 ci: Treat SHA1 LLVM signing key as warning 5cb4cf9b428e Merge bitcoin/bitcoin#34036: contrib: update macOS SDK to Xcode-26.1.1-17B100 41034a032f0f Merge bitcoin/bitcoin#34396: fuzz: pull the latest FuzzedDataProvider.h from upstream 580e9eefe39f ci: bump CCACHE_MAXSIZE to 2G ff095839285d Merge bitcoin/bitcoin#34432: test: Turn ElapseSteady into SteadyClockContext 81e67d9aa134 Merge bitcoin/bitcoin#34179: refactor: Enable transparent lookup for setBlockIndexCandidates to remove const_cast ec70bead5e1e Merge bitcoin/bitcoin#34433: script: remove unused `SCRIPT_ERR_LAST` 08547ee1b06d Merge bitcoin/bitcoin#34443: validation: follow-up nits for lock-free `IsInitialBlockDownload()` 881ab4fc82fe support multiple block status checks in CheckBlockDataAvailability 232a2bce90a9 consensus/test: add out-of-range output unit tests for `CTransaction::GetValueOut` aa87aae14f9e consensus/test: add `MoneyRange` unit tests for `CheckTxInputs` 8bb77f348ef3 Merge bitcoin/bitcoin#34455: ci, iwyu: Fix warnings in `src/univalue` and treat them as errors 1bf384222323 ci, iwyu: Fix warnings in `src/univalue` and treat them as errors 3d180d3c7f1f Merge bitcoin/bitcoin#34462: util: Drop *BSD headers in `batchpriority.cpp` 1eed88a3ec65 Merge bitcoin/bitcoin#34460: iwyu: Update mappings 101daa41636a Merge bitcoin/bitcoin#34338: ci, iwyu: Fix warnings in `src/zmq` and treat them as errors dfb93646093f fuzz: pull latest FuzzedDataProvider.h from upstream 705705e5b195 Merge bitcoin/bitcoin#33701: test: add case where `TOTAL_TRIES` is exceeded yet solution remains 88f802983571 Merge bitcoin/bitcoin#34100: doc: Use multipath descriptors in descriptors.md and linked test 5ad94cf6b7eb Merge bitcoin/bitcoin#34381: script: return proper error for `CScriptNum` errors 4f85b05131bf Merge bitcoin/bitcoin#31713: miniscript refactor: Remove unique_ptr-indirection 1f8f7d477ae0 Change BlockRequestAllowed() to take ref 5d2707307e27 Merge bitcoin/bitcoin#34454: wallet: Rename `RecordType::DELETE` to `RecordType::DELETE_FLAG` 38fd85c676a0 http: replace WorkQueue and threads handling for ThreadPool c323f882ed38 fuzz: add test case for threadpool c528dd5f8ccc util: introduce general purpose thread pool 07af50f7896a util: Drop *BSD headers in `batchpriority.cpp` 4dfb6eef70d7 test: Add DERSIG tests to script_tests 884978f3894a test: Fix a STRICTENC test in script_tests 527e8ca7b545 test: Remove outdated comment in script_tests 516be10bb56d wallet: Rename `RecordType::DELETE` to `RecordType::DELETE_FLAG` bbbb78a4f28f ci: Print verbose build error message in test-each-commit 2222dadabbbd ci: [refactor] Allow overwriting check option in run helper 9c839aa9e3db iwyu: Document mappings for libc symbols 91824646c58a iwyu: Add temporary mapping to work around upstream bug 37de7d19107c iwyu: Drop backported mapping 01651324f4e5 Merge bitcoin/bitcoin#34434: miniscript: correct and_v() properties c7cf2b8f3aae Merge bitcoin/bitcoin#34445: fuzz: Use `__AFL_SHM_ID` for naming test directories 0d1d393877a7 Merge bitcoin/bitcoin#34429: test: Check that redundant verack message is ignored 23a2e3354edf Merge bitcoin/bitcoin#34453: ci: Always print low ccache hit rate notice 5401e673d561 Merge bitcoin/bitcoin#33604: p2p: Allow block downloads from peers without snapshot block after assumeutxo validation 6750744eb32d Merge bitcoin/bitcoin#34164: validation: add reusable coins view for ConnectBlock 4e4fa0199ee2 Merge bitcoin/bitcoin#33680: validation: do not wipe utxo cache for stats/scans/snapshots fad2876ec330 ci: Always print low ccache hit rate notice e67a676df9af fix: uptime RPC returns 0 on first call a89e1618dd8c contrib: update macOS SDK to Xcode-26.1.1-17B100 57a778ed2526 depends: use -Xclang -fno-cxx-modules in macOS cross build 3e0fd0e4ddd8 refactor: rename will_reuse_cache to reallocate_cache 44b4ee194d3b validation: reuse same CCoinsViewCache for every ConnectBlock call 8fb6043231ea coins: introduce CCoinsViewCache::ResetGuard 041758f5eda5 coins: use hashBlock setter internally for CCoinsViewCache methods 8dd9200fc9b0 coins: add Reset on CCoinsViewCache efcbf794484e ci, iwyu: Fix warnings in `src/zmq` and treat them as errors d3e681bc0675 fuzz: Use `__AFL_SHM_ID` for naming test directories f7e0c3d3d370 Merge bitcoin/bitcoin#34346: test: use IP_PORTRANGE_HIGH on FreeBSD for dynamic port allocation eeb4d2814803 validation: follow-up nits for lock-free `IsInitialBlockDownload()` 1c2f164d3486 Merge bitcoin/bitcoin#34253: validation: cache tip recency for lock-free `IsInitialBlockDownload()` 8cdf1dcca0ce Merge bitcoin/bitcoin#34373: refactor: Remove remaining std::bind, check via clang-tidy facb2aab26df test: Turn ElapseSteady into SteadyClockContext 6354b4fd7fe8 tests: log node JSON-RPC errors during test setup 45930a79412d http-server: guard against crashes from unhandled exceptions a6cdc3ec9b56 Merge bitcoin/bitcoin#34303: test: addrman: test self-announcement time penalty handling 75ec9001ced9 Merge bitcoin/bitcoin#34207: coins/refactor: enforce `GetCoin()` returns only unspent coins 4fab35cf88c0 miniscript: correct and_v() properties 51abf7d15b1d script: remove unused SCRIPT_ERR_LAST f2b8acc0edb6 remove glozow from trusted keys cd1af852fa5d Merge bitcoin/bitcoin#34358: wallet: fix removeprunedfunds bug with conflicting transactions 2dd5e7bb38da Merge bitcoin/bitcoin#34409: test: use `ModuleNotFoundError` in `interface_ipc.py` d3e8c459e776 Merge bitcoin/bitcoin#34417: log: Print warning about privacy-sensitive log info unconditionally d9851f9a7c1c Merge bitcoin/bitcoin#33472: guix: documented shasum gathering command a7460b992884 Merge bitcoin/bitcoin#34098: test: [move-only] Move lint functions into modules 8f9ad534a5a5 Merge bitcoin/bitcoin#34352: ci, iwyu: Fix warnings in `src/primitives` and treat them as errors faba426b3b66 lint: Flatten lint image entry points 1111fff91c76 lint: Add missing --platform=linux to docker build command feb74a9372be Merge bitcoin/bitcoin#34430: ci: mount git directory as writable in linter fad042235bd6 refactor: Remove remaining std::bind, check via clang-tidy c8abac994122 ci: mount .git dir rw d9e651f9954f Merge bitcoin/bitcoin#33622: docs: add doc comment for SRD selection algorithm cb128bcedb58 Merge bitcoin/bitcoin#34408: ci: remove gnu-getopt usage 6ae96ed60745 Merge bitcoin/bitcoin#34276: Remove empty caption from user interface (noui, gui) fafdae46ff0b test: Check that redundant verack message is ignored 289d60f5ab76 Merge bitcoin/bitcoin#34161: refactor: avoid possible UB from `std::distance` for `nullptr` args 1d3243806da6 Merge bitcoin/bitcoin#34391: lint: upgrade lint scripts for worktrees d931b54d138f Merge bitcoin/bitcoin#34412: Update secp256k1 subtree to latest master 3400db80401d doc: add missing param description to SRD c0e6556e4f51 Merge bitcoin/bitcoin#34413: doc: Remove outdated -fdebug-prefix-map section in dev notes 9260b20ef175 Merge bitcoin/bitcoin#33962: refactor: replace manual promise with SyncWithValidationInterfaceQueue ddae1b4efa56 ci: remove gnu-getopt usage fa43897c1d14 doc: Fix LLM nits in net_processing.cpp bbbba0fd4b87 scripted-diff: Use references when nullptr is not possible fac541546604 refactor: Separate peer/maybe_peer in ProcessMessages and SendMessages fac529188e0d refactor: Pass Peer& to ProcessMessage fa376095a01c refactor: Pass CNode& to ProcessMessages and SendMessages fada8380148c refactor: Make ProcessMessage private again fa80cd3ceed4 test: [refactor] Avoid calling private ProcessMessage() function d511adb664ed [miner] omit dummy extraNonce via IPC bf3b5d6d069a test: clarify getCoinbaseRawTx() comparison 78df9003d634 [doc] Update comments on dummy extraNonces in tests e770392084aa test: addrman: test self-announcement time penalty handling 27aeeff63014 Merge bitcoin/bitcoin#34328: rpc: make `uptime` monotonic across NTP jumps 5aeaa71c77ac lint: pass args from lint.py to cargo run in container c17a2adb8dc0 lint: upgrade lint scripts for worktrees fa9c92d7b639 log: Print warning about privacy-sensitive log info unconditionally f970cb39fb64 Merge bitcoin/bitcoin#34267: net: avoid unconditional `privatebroadcast` logging (+ warn for debug logs) 8593d965191e Merge bitcoin/bitcoin#33067: test: refactor ValidWitnessMalleatedTx class to helper function 2fccbea3c8a0 Squashed 'src/secp256k1/' changes from d543c0d917..14e56970cb 26fbe10873e7 Update secp256k1 subtree to latest master 34a5ecadd720 Merge bitcoin/bitcoin#34397: doc: fix arg name hints so bugprone can validate them fa2e1b85dd6b build: Remove outdated comment about -ffile-prefix-map fa06cd4ba730 doc: Remove outdated -fdebug-prefix-map section in dev notes ab649ce45945 guix: documented shasum gathering command 1cc58d3a0c65 Merge bitcoin/bitcoin#34281: build: Temporarily remove confusing and brittle `-fdebug-prefix-map` 905dfdee86d6 test: use ModuleNotFoundError in interface_ipc.py 2778eb46647a Merge bitcoin/bitcoin#34337: fuzz: Return chrono point from ConsumeTime(), Add ConsumeDuration() d70fb8a5754f Merge bitcoin/bitcoin#34351: util: Remove `FilterHeaderHasher` 6472ba06c36a Merge bitcoin/bitcoin#34388: doc: Explain that low-effort pull requests may be closed 1f60ca360eb8 wallet: fix removeprunedfunds bug with conflicting transactions 5f66fca633c8 Merge bitcoin-core/gui#920: Set peer version and subversion to N/A when not available or detecting 02240a7698e3 Merge bitcoin/bitcoin#34390: test: allow overriding `tar` in `get_previous_releases.py` 7d9e1a810239 test: Verify peer usage after assumeutxo validation completes 3bd98b45084d refactor: use transparent comparator for setBlockIndexCandidates lookups a73a3ec5532d doc: fix invalid arg name hints for bugprone validation eeee3755f8c4 fuzz: Return chrono point from ConsumeTime(), Add ConsumeDuration() 1b36bf0c5d71 subprocess: Fix `-Wunused-private-field` for `Child` class on Windows 9f2b338bc018 subprocess: Fix `-Wunused-private-field` for `Popen` class on Windows fa15a8d2d03b doc: Explain that low-effort pull requests may be closed be2b48b9f3e5 test: allow overriding tar in get_previous_releases db2effaca4cf scripted-diff: refactor: CWallet::Create() -> CreateNew() 27e021ebc0dd wallet: Correctly log stats for encrypted messages. d8bec61be233 wallet: remove loading logic from CWallet::Create f35acc893fb3 refactor: wallet: Factor out `WriteVersion()` from `PopulateWalletFromDB()` e12ff8aca049 test: wallet: Split create and load 70dbc79b09ac wallet: Use CWallet::LoadExisting() for loading existing wallets. ae66e0116462 wallet: Create separate function for wallet load bc69070416c6 refactor: Wallet stats logging in its own function a9d64cd49c69 wallet: Remove redundant birth time update b4a49cc7275e wallet: Move argument parsing to before DB load b15a94a618c5 refactor: Split out wallet argument loading 6f7b4323cb46 test: remove UNKNOWN_ERROR from script_tests bd31a92d6716 script: use SCRIPT_ERR_SCRIPTNUM for CScriptNum errors 0ca4dcd78665 script: add SCRIPT_ERR_SCRIPTNUM error 2845f10a2be0 test: extend FreeBSD ephemeral port range fix to P2P listeners 3f5211cba8e7 test: remove child_one/child_two (w)txid variables 7cfe790820cf test: replace ValidWitnessMalleatedTx class with function 4fec726c4d35 refactor: Simplify Interpret asmap function 79e97d45c16f doc: Add more extensive docs to asmap implementation cf4943fdcdd1 refactor: Use span instead of vector for data in util/asmap 385c34a05261 refactor: Unify asmap version calculation and naming fa41fc6a1a7d refactor: Operate on bytes instead of bits in Asmap code 964c44cdcd6b test(miniscript): Prove avoidance of stack overflow 198bbaee4959 refactor(miniscript): Destroy nodes one full subs-vector at a time 50cab8570e8f refactor(miniscript): Remove NodeRef & MakeNodeRef() 15fb34de41cb refactor(miniscript): Remove superfluous unique_ptr-indirection e55b23c170eb refactor(miniscript): Remove Node::subs mutability c6f798b22247 refactor(miniscript): Make fields non-const & private 22e4115312b9 doc(miniscript): Remove mention of shared pointers 34bed0ed8c44 test: use IP_PORTRANGE_HIGH on FreeBSD for dynamic port allocation ccf9172ab3bb util: Remove `FilterHeaderHasher` fdc9fe2da6a8 ci, iwyu: Fix warnings in `src/primitives` and treat them as errors 477c5504e05f coins: replace `std::distance` with unambiguous pointer subtraction 81675a781f3a test: use pre-generated chain 14f99cfe53f0 rpc: make `uptime` monotonic across NTP jumps a9440b1595be util: add `TicksSeconds` a02c4a82d88a refactor: Move -walletbroadcast setting init 411caf72815b wallet: refactor: PopulateWalletFromDB use switch statement. a48e23f566cc refactor: wallet: move error handling to PopulateWalletFromDB() faa5a9ebad15 fuzz: Use min option in ConsumeTime 0972785fd723 wallet: Delete unnecessary PopulateWalletFromDB() calls f0a046094e4c scripted-diff: refactor: CWallet::LoadWallet->PopulateWalletFromDB fad7bd9ba3ee noui: Remove always empty caption while formatting fa8ebeb33232 refactor: [gui] Document that the title is always empty for node message fafe71b743a0 refactor: Remove empty caption from ThreadSafeMessageBox fa8d0088e76d refactor: Remove empty caption from ThreadSafeQuestion fa37928536e0 build: Temporarily remove confusing and brittle -fdebug-prefix-map b39291f4cde0 doc: fix `-logips` description to clarify that non-debug logs can also contain IP addresses c7028d3368e9 init: log that additional logs may contain privacy-sensitive information 31b771a9425d net: move `privatebroadcast` logs to debug category fa16b275fa94 test: Check that interrupt results in EXIT_SUCCESS fab7c7f56c1d test: Split large init_stress_test into two smaller functions fa0195499ca6 refactor: [gui] Use lambdas over std::bind eeee1e341fa5 refactor: Remove trailing semicolon after ADD_SIGNALS_DECL_WRAPPER 557b41a38ccf validation: make `IsInitialBlockDownload()` lock-free b9c0ab3b75a1 chain: add `CChain::IsTipRecent` helper 8d531c6210eb validation: invert `m_cached_finished_ibd` to `m_cached_is_ibd` 8be54e3b1967 test: cover IBD exit conditions 2ee7f9b25905 coins: assume `GetCoin` only returns unspent coins eec551aaf1df fuzz: keep `coinscache_sim` backend free of spent coins 3e4155fcefe0 test: do not return spent coins from `CCoinsViewTest::GetCoin` ee1e40f58000 txdb: assert `CCoinsViewDB::GetCoin` only returns unspent coins fa578d9434fd lint: [move-only] Move python related lints to lint_py.rs fa392c31e7b9 lint: [move-only] Move repo related lints to lint_repo_hygiene.rs fab0cfa987c9 lint: [move-only] Move cpp related lints to lint_cpp.rs fa3e48e3fd4d lint: [move-only] Move docs related lints to lint_docs.rs fad09e77dbe5 lint: [move-only] Move text related lints to text_format.rs faf40c2f848d lint: [move-only] Move util functions to util.rs c6ca2b85a3e6 validation: do not wipe utxo cache for stats/scans/snapshots 7099e93d0a80 refactor: rename `FlushStateMode::ALWAYS` to `FORCE_FLUSH` b261100e7169 [qt] Set peer version and subversion to N/A when not available or detecting 552bc82b1796 doc: Use multipath descriptors in descriptors.md and linked test 0067abe15329 p2p: Allow block downloads from peers without snapshot block after assumeutxo validation e71c4df16851 refactor: replace manual promise with SyncWithValidationInterfaceQueue b189a3455744 test: add case where `TOTAL_TRIES` is exceeded yet solution remains 76dae5d6911b cmake: Replace recursive globbing with explicit globbing in folders a099655f2e1b scripted-diff: Update `DeriveType` enum values to mention ranged derivations 88d909257104 cmake: Create subdirectories in build tree in advance 7378f27b4fb5 test: run utxo-to-sqlite script test with spk/txid format option combinations b30fca7498c9 contrib: utxo_to_sqlite.py: add options to store txid/spk as BLOBs git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: d9c7364ac56781a16c7224b2c7a6db9db97f17d8
This PR is a prerequisite for #31507.
It resolves
-Wunused-private-fieldwarnings triggered insrc/util/subprocess.hwhen compiling with clang-cl on Windows:Only the second commit has been submitted upstream. The first commit is specific to this repository and not applicable upstream.