-
Notifications
You must be signed in to change notification settings - Fork 41
win32: fix -Wmissing-field-initializers warnings #34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
When building with `-Wmissing-field-initializers`, the following warning is emitted: ```bash leveldb/util/env_windows.cc: In member function ‘virtual leveldb::Status leveldb::{anonymous}::WindowsRandomAccessFile::Read(uint64_t, size_t, leveldb::Slice*, char*) const’: leveldb/util/env_windows.cc:197:31: warning: missing initializer for member ‘_OVERLAPPED::InternalHigh’ [-Wmissing-field-initializers] 197 | OVERLAPPED overlapped = {0}; | ^ leveldb/util/env_windows.cc:197:31: warning: missing initializer for member ‘_OVERLAPPED::<anonymous>’ [-Wmissing-field-initializers] leveldb/util/env_windows.cc:197:31: warning: missing initializer for member ‘_OVERLAPPED::hEvent’ [-Wmissing-field-initializers] ``` Submitted upstream: google#1053
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 12c52b3, I have reviewed the code and it looks OK.
ACK 12c52b3. |
Copy/pasting from bitcoin/bitcoin#26090 From: https://learn.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-overlapped
According to that note at least, it's possible that this was always failing before. As opposed to bitcoin/bitcoin#26090, it looks like this is probably called pretty often, so if it was causing problems it might've manifested as random-looking read-errors. So it seems even if it was happening radomly/rarely, fixing it could only be a good thing as obviously no new codepaths are being taken. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 12c52b3
I don't follow, just like bitcoin/bitcoin#26090 this should be a refactor that doesn't change the binary. The elements that are not mentioned in the initializer list will be initialized with their C++11 default member initializer or with Given that we suppress external warnings, there is no need to change the code here. |
These warnings will show up after bitcoin/bitcoin#25972, and cause failures in our CI (-Werror), unless we then choose to suppress them in Makefile.leveldb. They are not currently suppressed by --enable-suppress-external-warnings. |
Yes, looks like you're right. I would've thought that initializing the first field would've prevented the initialization of the rest, but docs and local asm comparisons show that you're correct here. TIL, thanks :) So it seems the warning is simply pointing out possible unintended code as opposed to possible undefined behavior. Note that the warning is also present with a minimal test-case with modern gcc and clang 14. I still think the change is worthwhile to avoid disabling the warning wholesale, but agree that this is a non-binary changing refactor. |
e2f10b4e47 Merge bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings 12c52b392d win32: fix -Wmissing-field-initializers warnings git-subtree-dir: src/leveldb git-subtree-split: e2f10b4e47bc950a81bc96d1c6db3a8048216642
1a463c7 Squashed 'src/leveldb/' changes from 22f1e4a02f..e2f10b4e47 (fanquake) Pull request description: Pulls in bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings Related to #26090, #25972. Guix Build: ```bash a8c49e700309e9268ad0a503e7813775f58daf37813501775ae5831eab0cf26a guix-build-13601da17e7a/output/aarch64-linux-gnu/SHA256SUMS.part 3a1722403f8daf8ea152c72004fb1021f8a7241ee7f51fb0e6adeeb50881f001 guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu-debug.tar.gz 3b7c1f2361ef4832c305ff4b0d9eb7419f787f8cf537952d7c20be549debe0af guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu.tar.gz 329cb5bc932621785a6aeca43af307279c47d87a4983ee3d59636f8e3dc27afa guix-build-13601da17e7a/output/arm-linux-gnueabihf/SHA256SUMS.part 4030f344c4c31cc0877c11d3b89f6ea93f930a4ae7e7976d49ad5123cc31a367 guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf-debug.tar.gz ab50945c416b256b4c92ea0a50c0b7ec241e4c1f5803a4e7cb4ba83a6c5db888 guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf.tar.gz 604557cc73c4065697255c6971547a46cd0d6ad1cdf74261d4c73d002abe8c46 guix-build-13601da17e7a/output/arm64-apple-darwin/SHA256SUMS.part 11e781c64fab7933df4a9b4f56357ad18dd8f149b3c9195bf2d310b58355851d guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.dmg e3fe9e278310f3dc97f463bb8cf2b930b587dba5095e18a7f38c4ef76338daad guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.tar.gz 00828a9bfd74013a439b7f0254bd72904b99ff1e3a9503ef6307ee57de81c5eb guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin.tar.gz d80032d2509a982dc81790b3ef3cd8d44551b41047082ebc506f01bbb8830de1 guix-build-13601da17e7a/output/dist-archive/bitcoin-13601da17e7a.tar.gz 61655cdf7c081c43275da57e5b42c21e33d7864378f3784652969ffdf7c3c2b2 guix-build-13601da17e7a/output/powerpc64-linux-gnu/SHA256SUMS.part 3d213e2f25ca72dc0c3d372c0ad3f6803865825a233b29dd80b5cff3e3963621 guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu-debug.tar.gz ef8cad747428b6b46c5d2c598fb7896b320a5321cf9a0c9dba2209c638bfbc7b guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu.tar.gz 2302e022394ca46570c70bc5977f35bbed258bfbb19c2c6d80f1982a725c9e35 guix-build-13601da17e7a/output/powerpc64le-linux-gnu/SHA256SUMS.part 5ca3104b7d546c7d905f82dfd92b5350af754e3973b533adc50c6cbde8f59f96 guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu-debug.tar.gz 2781824d8d08f8ac6663925db8b2d1b50b80165e67ed69df86580438284f0c3b guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu.tar.gz 24a73f91c5ab9e72f2471cd7b31482c702a3de8dade9aff6b76af34253748cec guix-build-13601da17e7a/output/riscv64-linux-gnu/SHA256SUMS.part b09658af4bd24eb5e76bacbfc7f8750a8941f117511b5c55a44ef1beffec8367 guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu-debug.tar.gz 56bde3f3df115dbf801944e4f923a08752fd05cda0bbf0e0e3c915387f98e4a8 guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu.tar.gz ca9a5acb332fb2ffda42e44d84b58e273a769e94f0abaaa0623ed1d1c5267dde guix-build-13601da17e7a/output/x86_64-apple-darwin/SHA256SUMS.part ccae805bca5d4075d1bccbaeca7ac40bb4dac0a97f4fd4c3c80b2d6134d6acb0 guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.dmg b12c9682b69b3662150abd6680bb60f9fef656a1fdc3cd21951c2da571be40cc guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.tar.gz fd3378e4d60f0ef3ae1b18f526e96ed9e838df4def021de332dd0b6cd20ed0c4 guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin.tar.gz 47c7af42153850a94d70de6489389f6faf8772d6adc88269705a12e6b894e84e guix-build-13601da17e7a/output/x86_64-linux-gnu/SHA256SUMS.part 876898d116041680ea6fa3bbce1becb05e45ea5bdbaf973a1465fde4bd2df26d guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu-debug.tar.gz 56671e22f25ba695c7315de916c6a2d1b57d5f00982b331c68a43912ac3ebc44 guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu.tar.gz f5b9b7d83ad34b7b6c3cb98b9d7878795a1f6fb7b422ffb02b23266beb76d3a6 guix-build-13601da17e7a/output/x86_64-w64-mingw32/SHA256SUMS.part a72cfb4ce41cad3bb24df2e4bb318edd05370e12fc31f9ba21637b3fd412dccd guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-debug.zip 4b175eac7355715884be279dd4595665912b62815f1d0186ca9874cb9e6424cb guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-setup-unsigned.exe c45d927f0adedc3eb0a01cee0f9fa734c17d9e9a6692b0f416a3830c007b52cc guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-unsigned.tar.gz 360a5b8806c72dbfcfed616d5cec78606461d664e21fb28a44bd473a2b7c9326 guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64.zip ``` ACKs for top commit: hebasto: ACK 13601da, I have reviewed the code and it looks OK, I agree it can be merged. theuni: ACK 13601da Tree-SHA512: 1450618714a456d8969fa5bfc3ed700452e0737213af50656a0a1e0764e6063390fb528eb1889d8bf1e02e451f601f0a5bc63a02ac34ef10aeb7dc80fe41acd1
1a463c7 Squashed 'src/leveldb/' changes from 22f1e4a02f..e2f10b4e47 (fanquake) Pull request description: Pulls in bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings Related to bitcoin#26090, bitcoin#25972. Guix Build: ```bash a8c49e700309e9268ad0a503e7813775f58daf37813501775ae5831eab0cf26a guix-build-13601da17e7a/output/aarch64-linux-gnu/SHA256SUMS.part 3a1722403f8daf8ea152c72004fb1021f8a7241ee7f51fb0e6adeeb50881f001 guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu-debug.tar.gz 3b7c1f2361ef4832c305ff4b0d9eb7419f787f8cf537952d7c20be549debe0af guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu.tar.gz 329cb5bc932621785a6aeca43af307279c47d87a4983ee3d59636f8e3dc27afa guix-build-13601da17e7a/output/arm-linux-gnueabihf/SHA256SUMS.part 4030f344c4c31cc0877c11d3b89f6ea93f930a4ae7e7976d49ad5123cc31a367 guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf-debug.tar.gz ab50945c416b256b4c92ea0a50c0b7ec241e4c1f5803a4e7cb4ba83a6c5db888 guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf.tar.gz 604557cc73c4065697255c6971547a46cd0d6ad1cdf74261d4c73d002abe8c46 guix-build-13601da17e7a/output/arm64-apple-darwin/SHA256SUMS.part 11e781c64fab7933df4a9b4f56357ad18dd8f149b3c9195bf2d310b58355851d guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.dmg e3fe9e278310f3dc97f463bb8cf2b930b587dba5095e18a7f38c4ef76338daad guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.tar.gz 00828a9bfd74013a439b7f0254bd72904b99ff1e3a9503ef6307ee57de81c5eb guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin.tar.gz d80032d2509a982dc81790b3ef3cd8d44551b41047082ebc506f01bbb8830de1 guix-build-13601da17e7a/output/dist-archive/bitcoin-13601da17e7a.tar.gz 61655cdf7c081c43275da57e5b42c21e33d7864378f3784652969ffdf7c3c2b2 guix-build-13601da17e7a/output/powerpc64-linux-gnu/SHA256SUMS.part 3d213e2f25ca72dc0c3d372c0ad3f6803865825a233b29dd80b5cff3e3963621 guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu-debug.tar.gz ef8cad747428b6b46c5d2c598fb7896b320a5321cf9a0c9dba2209c638bfbc7b guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu.tar.gz 2302e022394ca46570c70bc5977f35bbed258bfbb19c2c6d80f1982a725c9e35 guix-build-13601da17e7a/output/powerpc64le-linux-gnu/SHA256SUMS.part 5ca3104b7d546c7d905f82dfd92b5350af754e3973b533adc50c6cbde8f59f96 guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu-debug.tar.gz 2781824d8d08f8ac6663925db8b2d1b50b80165e67ed69df86580438284f0c3b guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu.tar.gz 24a73f91c5ab9e72f2471cd7b31482c702a3de8dade9aff6b76af34253748cec guix-build-13601da17e7a/output/riscv64-linux-gnu/SHA256SUMS.part b09658af4bd24eb5e76bacbfc7f8750a8941f117511b5c55a44ef1beffec8367 guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu-debug.tar.gz 56bde3f3df115dbf801944e4f923a08752fd05cda0bbf0e0e3c915387f98e4a8 guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu.tar.gz ca9a5acb332fb2ffda42e44d84b58e273a769e94f0abaaa0623ed1d1c5267dde guix-build-13601da17e7a/output/x86_64-apple-darwin/SHA256SUMS.part ccae805bca5d4075d1bccbaeca7ac40bb4dac0a97f4fd4c3c80b2d6134d6acb0 guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.dmg b12c9682b69b3662150abd6680bb60f9fef656a1fdc3cd21951c2da571be40cc guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.tar.gz fd3378e4d60f0ef3ae1b18f526e96ed9e838df4def021de332dd0b6cd20ed0c4 guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin.tar.gz 47c7af42153850a94d70de6489389f6faf8772d6adc88269705a12e6b894e84e guix-build-13601da17e7a/output/x86_64-linux-gnu/SHA256SUMS.part 876898d116041680ea6fa3bbce1becb05e45ea5bdbaf973a1465fde4bd2df26d guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu-debug.tar.gz 56671e22f25ba695c7315de916c6a2d1b57d5f00982b331c68a43912ac3ebc44 guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu.tar.gz f5b9b7d83ad34b7b6c3cb98b9d7878795a1f6fb7b422ffb02b23266beb76d3a6 guix-build-13601da17e7a/output/x86_64-w64-mingw32/SHA256SUMS.part a72cfb4ce41cad3bb24df2e4bb318edd05370e12fc31f9ba21637b3fd412dccd guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-debug.zip 4b175eac7355715884be279dd4595665912b62815f1d0186ca9874cb9e6424cb guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-setup-unsigned.exe c45d927f0adedc3eb0a01cee0f9fa734c17d9e9a6692b0f416a3830c007b52cc guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-unsigned.tar.gz 360a5b8806c72dbfcfed616d5cec78606461d664e21fb28a44bd473a2b7c9326 guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64.zip ``` ACKs for top commit: hebasto: ACK 13601da, I have reviewed the code and it looks OK, I agree it can be merged. theuni: ACK 13601da Tree-SHA512: 1450618714a456d8969fa5bfc3ed700452e0737213af50656a0a1e0764e6063390fb528eb1889d8bf1e02e451f601f0a5bc63a02ac34ef10aeb7dc80fe41acd1
e2f10b4e47 Merge bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings 12c52b392d win32: fix -Wmissing-field-initializers warnings git-subtree-dir: src/leveldb git-subtree-split: e2f10b4e47bc950a81bc96d1c6db3a8048216642
e2f10b4e47 Merge bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings 12c52b392d win32: fix -Wmissing-field-initializers warnings git-subtree-dir: src/leveldb git-subtree-split: e2f10b4e47bc950a81bc96d1c6db3a8048216642
e2f10b4e47 Merge bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings 12c52b392d win32: fix -Wmissing-field-initializers warnings git-subtree-dir: src/leveldb git-subtree-split: e2f10b4e47bc950a81bc96d1c6db3a8048216642
* doc: add info about status code 404 for some rest endpoints * refactor: remove duplicate code from BlockAssembler * build: Fix `capnp` package build for Android * build: Specify native binaries explicitly when building `capnp` package From `configure --help`: --with-external-capnp use the system capnp binary (or the one specified with $CAPNP) instead of compiling a new one (useful for cross-compiling) * net: remove useless call to IsReachable() from CConnman::Bind() `CConnman::Bind()` is called without `BF_EXPLICIT` only when passed either `0.0.0.0` or `::`. For those addresses `IsReachable()` is always true (regardless of the `-onlynet=` setting!), meaning that the `if` condition never evaluates to true. `IsReachable()` is always true for the "any" IPv4 and IPv6 addresses because `CNetAddr::GetNetwork()` returns `NET_UNROUTABLE` instead of `NET_IPV4` or `NET_IPV6` and the network `NET_UNROUTABLE` is always considered reachable. It follows that `BF_EXPLICIT` is unnecessary, remove it too. * sync: simplify MaybeCheckNotHeld() definitions by using a template Reduce 4 of the `MaybeCheckNotHeld()` definitions to 2 by using a template. This also makes the function usable for other [BasicLockable](https://en.cppreference.com/w/cpp/named_req/BasicLockable) types. * sync: remove unused template parameter from ::UniqueLock The template parameter `typename Base = typename Mutex::UniqueLock` is not used, so remove it. Use internally defined type `Base` to avoid repetitions of `Mutex::UniqueLock`. * scripted-diff: Rename time symbols -BEGIN VERIFY SCRIPT- ren() { sed -i "s:\<$1\>:$2:g" $(git grep -l "\<$1\>" ':(exclude)src/versionbits.cpp') ; } ren nStart time_start ren nTimeStart time_start ren nTimeReadFromDiskTotal time_read_from_disk_total ren nTimeConnectTotal time_connect_total ren nTimeFlush time_flush ren nTimeChainState time_chainstate ren nTimePostConnect time_post_connect ren nTimeCheck time_check ren nTimeForks time_forks ren nTimeConnect time_connect ren nTimeVerify time_verify ren nTimeUndo time_undo ren nTimeIndex time_index ren nTimeTotal time_total ren nTime1 time_1 ren nTime2 time_2 ren nTime3 time_3 ren nTime4 time_4 ren nTime5 time_5 ren nTime6 time_6 ren nBlocksTotal num_blocks_total # Newline after semicolon perl -0777 -pi -e 's/; time_connect_total/;\n time_connect_total/g' src/validation.cpp perl -0777 -pi -e 's/; time_/;\n time_/g' src/validation.cpp -END VERIFY SCRIPT- * Use steady clock for bench logging * doc: add historical 0.20.2 release notes * doc: add historical 0.21.2 release notes * build: split ARM crc & crypto extension checks We currently perform the same check twice, to put the same set of flags in two different variables. Split the checks so we test for crc and crypto extensions independently. If we don't want to split, we should just delete the second AX_CHECK_COMPILE_FLAG check, and set ARM_CRC_CXXFLAGS & ARM_CRC_CXXFLAGS at the same time. * refactor: Do not discard `try_lock()` return value Microsoft's C++ Standard Library uses the `[[nodiscard]]` attribute for `try_lock()`. See: https://github.com/microsoft/STL/blob/main/stl/inc/mutex This change allows to drop the current suppression for the warning C4838 and helps to prevent the upcoming warning C4858. See: microsoft/STL@539c26c * signet/miner: reduce default interblock interval limit to 30min Also allow the operator to change it, if desired, without having to edit the code. * Squashed 'src/leveldb/' changes from 22f1e4a02f..e2f10b4e47 e2f10b4e47 Merge bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings 12c52b392d win32: fix -Wmissing-field-initializers warnings git-subtree-dir: src/leveldb git-subtree-split: e2f10b4e47bc950a81bc96d1c6db3a8048216642 * ci: Bump vcpkg to the latest version `2022.09.27` Dependency changes (2022.06.16.1 - 2022.09.27): - boost 1.79.0#0 -> 1.80.0#0 - sqlite3 3.37.2#1 -> 3.39.2#0 - zeromq 4.3.4#5 -> 4.3.4#6 * contrib: Fix capture_output in getcoins.py Our required Python version 3.6.12 does not support `capture_output` as a subprocess.run argument; this was added in python 3.7. We can emulate it by setting stdout and stderr to subprocess.PIPE * fuzz: Limit outpoints.size in txorphan target to avoid OOM * refactor: move Boost datetime usage to wallet This means we don't need datetime in a --disable-wallet build, and it isn't included in the kernel. * wallet: Use correct effective value when checking target * test: Check external coin effective value is used in CoinSelection * test: Use proper Boost macros instead of assertions * ci: Run `bench_bitcoin.exe --sanity-check` in "Win64 native" task Also a better name used for the script as it follows GNU's `make check`. * doc: bump bips.md up-to-date version to v24.0 This is a trivial follow-up to bitcoin#26124. * refactor: Drop `owns_lock()` call Co-authored-by: Vasil Dimov <vd@FreeBSD.org> * refactor: move DEFAULT_TXINDEX from validation to txindex * refactor: move DEFAULT_COINSTATSINDEX from validation to coinstatsindex * refactor: move DEFAULT_BLOCKFILTERINDEX from val to blockfilterindex * kernel: remove util/bytevectorhash.cpp * ci: Move `git config` commands into script where they are used * ci: Use same `merge_script` implementation for Windows as for all * ci: Remove unused package Address feedback from https://github.com/bitcoin/bitcoin/pull/24561/files#r985719812 * ci: Allow PIP_PACKAGES on centos This was added in 7fc5e86 but I can't see a reason why this should be forbidden. * test: Remove unused fCheckpointsEnabled from miner_tests The earliest checkpoint is at height 11111, so this can't possibly have any impact on this test. * build, msvc: Enable C4834 warning https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/c4834 * kernel: move RunCommandParseJSON to its own file Because libbitcoinkernel does not include this new object, this has the side-effect of eliminating the unnecessary boost::process dependency. * ci: Workaround Windows filesystem executable bit loss * fuzz: add util/mempool/h.cpp Moving the mempool code (Boost) out of util.h, results in a ~10% speedup (for me) when compiling the fuzz tests. * fuzz: pass max fee into ConsumeTxMemPoolEntry * refactor: Make 64-bit shift explicit Also this change enables MSVC warning C4334 for all codebase. https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4334 * refactor: move run_command from util to common Quoting ryanofsky: "util can be the library for things included in the kernel which the kernel can depend on, and common can be the library for other code that needs to be shared internally, but should not be part of the kernel or shared externally." * Remove clang-format from lint task clang-format could be used in scripted diffs, but remained largely unused. * test: Pass mempool reference to AssemblerForTest * test: Use dedicated mempool in TestPrioritisedMining No need for a shared mempool. Also remove unused chainparams parameter. * test: Use dedicated mempool in TestPackageSelection No need for a shared mempool. Also remove unused chainparams parameter. * test: Use dedicated mempool in TestBasicMining No need for a shared mempool. Also remove unused chainparams parameter. Can be reviewed with --ignore-all-space * refactor: mempool: add MemPoolLimits::NoLimits() There are quite a few places in the codebase that require us to construct a CTxMemPool without limits on ancestors and descendants. This helper function allows us to get rid of all that duplication. * refactor: mempool: use CTxMempool::Limits Simplifies function signatures by removing repetition of all the ancestor/descendant limits, and increases readability by being more verbose by naming the limits, while still reducing the LoC. * test: use NoLimits() in MempoolIndexingTest The (100, 1000000, 1000, 1000000) limits are arbitrarily high and don't restrict anything, they are just meant to calculate ancestors properly. Using NoLimits() makes this intent more clear and simplifies the code. * docs: improve docs where MemPoolLimits is used * Remove unused CDataStream::rdbuf method It is unused and seems unlikely to be ever used. * index: Improve BaseIndex::BlockUntilSyncedToCurrentChain reliability Since commit f08c9fb from PR bitcoin#21726, index `BlockUntilSyncedToCurrentChain` behavior has been less reliable, and there has also been a race condition in the `coinstatsindex_initial_sync` unit test. It seems better for `BlockUntilSyncedToCurrentChain` to actually wait for the last connected block to be fully processed, than to be able to return before prune locks are set, so this switches the order of `m_best_block_index = block;` and `UpdatePruneLock` statements in `SetBestBlockIndex` to make it more reliable. Also since commit f08c9fb, there has been a race condition in the `coinstatsindex_initial_sync` test. Before that commit, the atomic index best block pointer `m_best_block_index` was updated as the last step of `BaseIndex::BlockConnected`, so `BlockUntilSyncedToCurrentChain` could safely be used in tests to wait for the last `BlockConnected` notification to be finished before stopping and destroying the index. But after that commit, calling `BlockUntilSyncedToCurrentChain` is no longer sufficient, and there is a race between the test shutdown code which destroys the index object and the new code introduced in that commit calling `AllowPrune()` and `GetName()` on the index object. Reproducibility instructions for this are in bitcoin#25365 (comment) This commit fixes the `coinstatsindex_initial_sync` race condition, even though it will require an additional change to silence TSAN false positives, bitcoin#26188, after it is fixed. So this partially addresses but does not resolve the bug reporting TSAN errors bitcoin#25365. There is no known race condition outside of test code currently, because the bitcoind `Shutdown` function calls `FlushBackgroundCallbacks` not `BlockUntilSyncedToCurrentChain` to safely shut down. Co-authored-by: Vasil Dimov <vd@FreeBSD.org> Co-authored-by: MacroFake <falke.marco@gmail.com> * test: Prevent UB in `minisketch_tests.cpp` * test: Remove confusing DUMMY_P2WPKH_SCRIPT * docs: fix m_children to be a member of CTxMemPoolEntry * wallet: have prune error take precedence over assumedvalid From Russ Yanofsky: "Agree with all of Marco's points here and think this should be updated If havePrune and hasAssumedValidChain are both true, better to show havePrune error message. Assumed-valid error message is vague and not very actionable. Would suggest "Error loading wallet. Wallet requires blocks to be downloaded, and software does not currently support loading wallets while blocks are being downloaded out of order though assumeutxo snapshots. Wallet should be able to load successfully after node sync reaches height {block_height}" Co-authored-by: MacroFake <MarcoFalke@gmail.com> Co-authored-by: Russ Yanofsky <russ@yanofsky.org> * Fix comment typos in scriptpubkeyman.cpp, wallet.cpp, wallet.h Fix comment typos: sigature -> signature ponter -> pointer it's key -> its key * sync: avoid confusing name overlap (Mutex) Use `MutexType` instead of `Mutex` for the template parameter of `UniqueLock` because there is already a class named `Mutex` and the naming overlap is confusing. `MutexType` is used elsewhere in `sync.h`. * sync: remove DebugLock alias template Use `UniqueLock` directly. Type deduction works just fine from the first argument to the constructor of `UniqueLock`, so there is no need to repeat ```cpp UniqueLock<typename std::remove_reference<typename std::remove_pointer<decltype(cs)>::type>::type> ``` five times in the `LOCK` macros. Just `UniqueLock` suffices. * sync: rename AnnotatedMixin::UniqueLock to AnnotatedMixin::unique_lock This avoids confusion with the global `UniqueLock` and the snake case is consistent with `UniqueLock::reverse_lock. * iwyu: Add zmq source files * Update .cirrus.yml Co-authored-by: brunoerg <brunoely.gc@gmail.com> Co-authored-by: James O'Beirne <james.obeirne@pm.me> Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Co-authored-by: Vasil Dimov <vd@FreeBSD.org> Co-authored-by: MacroFake <falke.marco@gmail.com> Co-authored-by: fanquake <fanquake@gmail.com> Co-authored-by: Anthony Towns <aj@erisian.com.au> Co-authored-by: willcl-ark <will8clark@gmail.com> Co-authored-by: Aurèle Oulès <aurele@oules.com> Co-authored-by: Sebastian Falbesoner <sebastian.falbesoner@gmail.com> Co-authored-by: glozow <gloriajzhao@gmail.com> Co-authored-by: Cory Fields <cory-nospam-@coryfields.com> Co-authored-by: stickies-v <stickies-v@protonmail.com> Co-authored-by: Ryan Ofsky <ryan@ofsky.org> Co-authored-by: MacroFake <MarcoFalke@gmail.com> Co-authored-by: Russ Yanofsky <russ@yanofsky.org> Co-authored-by: Dimitris Tsapakidis <dimitris@tsapakidis.com> Co-authored-by: alex v <alex@encrypt-s.com>
1a463c7 Squashed 'src/leveldb/' changes from 22f1e4a02f..e2f10b4e47 (fanquake) Pull request description: Pulls in bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings Related to bitcoin#26090, bitcoin#25972. Guix Build: ```bash a8c49e700309e9268ad0a503e7813775f58daf37813501775ae5831eab0cf26a guix-build-13601da17e7a/output/aarch64-linux-gnu/SHA256SUMS.part 3a1722403f8daf8ea152c72004fb1021f8a7241ee7f51fb0e6adeeb50881f001 guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu-debug.tar.gz 3b7c1f2361ef4832c305ff4b0d9eb7419f787f8cf537952d7c20be549debe0af guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu.tar.gz 329cb5bc932621785a6aeca43af307279c47d87a4983ee3d59636f8e3dc27afa guix-build-13601da17e7a/output/arm-linux-gnueabihf/SHA256SUMS.part 4030f344c4c31cc0877c11d3b89f6ea93f930a4ae7e7976d49ad5123cc31a367 guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf-debug.tar.gz ab50945c416b256b4c92ea0a50c0b7ec241e4c1f5803a4e7cb4ba83a6c5db888 guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf.tar.gz 604557cc73c4065697255c6971547a46cd0d6ad1cdf74261d4c73d002abe8c46 guix-build-13601da17e7a/output/arm64-apple-darwin/SHA256SUMS.part 11e781c64fab7933df4a9b4f56357ad18dd8f149b3c9195bf2d310b58355851d guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.dmg e3fe9e278310f3dc97f463bb8cf2b930b587dba5095e18a7f38c4ef76338daad guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.tar.gz 00828a9bfd74013a439b7f0254bd72904b99ff1e3a9503ef6307ee57de81c5eb guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin.tar.gz d80032d2509a982dc81790b3ef3cd8d44551b41047082ebc506f01bbb8830de1 guix-build-13601da17e7a/output/dist-archive/bitcoin-13601da17e7a.tar.gz 61655cdf7c081c43275da57e5b42c21e33d7864378f3784652969ffdf7c3c2b2 guix-build-13601da17e7a/output/powerpc64-linux-gnu/SHA256SUMS.part 3d213e2f25ca72dc0c3d372c0ad3f6803865825a233b29dd80b5cff3e3963621 guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu-debug.tar.gz ef8cad747428b6b46c5d2c598fb7896b320a5321cf9a0c9dba2209c638bfbc7b guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu.tar.gz 2302e022394ca46570c70bc5977f35bbed258bfbb19c2c6d80f1982a725c9e35 guix-build-13601da17e7a/output/powerpc64le-linux-gnu/SHA256SUMS.part 5ca3104b7d546c7d905f82dfd92b5350af754e3973b533adc50c6cbde8f59f96 guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu-debug.tar.gz 2781824d8d08f8ac6663925db8b2d1b50b80165e67ed69df86580438284f0c3b guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu.tar.gz 24a73f91c5ab9e72f2471cd7b31482c702a3de8dade9aff6b76af34253748cec guix-build-13601da17e7a/output/riscv64-linux-gnu/SHA256SUMS.part b09658af4bd24eb5e76bacbfc7f8750a8941f117511b5c55a44ef1beffec8367 guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu-debug.tar.gz 56bde3f3df115dbf801944e4f923a08752fd05cda0bbf0e0e3c915387f98e4a8 guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu.tar.gz ca9a5acb332fb2ffda42e44d84b58e273a769e94f0abaaa0623ed1d1c5267dde guix-build-13601da17e7a/output/x86_64-apple-darwin/SHA256SUMS.part ccae805bca5d4075d1bccbaeca7ac40bb4dac0a97f4fd4c3c80b2d6134d6acb0 guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.dmg b12c9682b69b3662150abd6680bb60f9fef656a1fdc3cd21951c2da571be40cc guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.tar.gz fd3378e4d60f0ef3ae1b18f526e96ed9e838df4def021de332dd0b6cd20ed0c4 guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin.tar.gz 47c7af42153850a94d70de6489389f6faf8772d6adc88269705a12e6b894e84e guix-build-13601da17e7a/output/x86_64-linux-gnu/SHA256SUMS.part 876898d116041680ea6fa3bbce1becb05e45ea5bdbaf973a1465fde4bd2df26d guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu-debug.tar.gz 56671e22f25ba695c7315de916c6a2d1b57d5f00982b331c68a43912ac3ebc44 guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu.tar.gz f5b9b7d83ad34b7b6c3cb98b9d7878795a1f6fb7b422ffb02b23266beb76d3a6 guix-build-13601da17e7a/output/x86_64-w64-mingw32/SHA256SUMS.part a72cfb4ce41cad3bb24df2e4bb318edd05370e12fc31f9ba21637b3fd412dccd guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-debug.zip 4b175eac7355715884be279dd4595665912b62815f1d0186ca9874cb9e6424cb guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-setup-unsigned.exe c45d927f0adedc3eb0a01cee0f9fa734c17d9e9a6692b0f416a3830c007b52cc guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-unsigned.tar.gz 360a5b8806c72dbfcfed616d5cec78606461d664e21fb28a44bd473a2b7c9326 guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64.zip ``` ACKs for top commit: hebasto: ACK 13601da, I have reviewed the code and it looks OK, I agree it can be merged. theuni: ACK 13601da Tree-SHA512: 1450618714a456d8969fa5bfc3ed700452e0737213af50656a0a1e0764e6063390fb528eb1889d8bf1e02e451f601f0a5bc63a02ac34ef10aeb7dc80fe41acd1
1a463c7 Squashed 'src/leveldb/' changes from 22f1e4a02f..e2f10b4e47 (fanquake) Pull request description: Pulls in bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings Related to bitcoin#26090, bitcoin#25972. Guix Build: ```bash a8c49e700309e9268ad0a503e7813775f58daf37813501775ae5831eab0cf26a guix-build-13601da17e7a/output/aarch64-linux-gnu/SHA256SUMS.part 3a1722403f8daf8ea152c72004fb1021f8a7241ee7f51fb0e6adeeb50881f001 guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu-debug.tar.gz 3b7c1f2361ef4832c305ff4b0d9eb7419f787f8cf537952d7c20be549debe0af guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu.tar.gz 329cb5bc932621785a6aeca43af307279c47d87a4983ee3d59636f8e3dc27afa guix-build-13601da17e7a/output/arm-linux-gnueabihf/SHA256SUMS.part 4030f344c4c31cc0877c11d3b89f6ea93f930a4ae7e7976d49ad5123cc31a367 guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf-debug.tar.gz ab50945c416b256b4c92ea0a50c0b7ec241e4c1f5803a4e7cb4ba83a6c5db888 guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf.tar.gz 604557cc73c4065697255c6971547a46cd0d6ad1cdf74261d4c73d002abe8c46 guix-build-13601da17e7a/output/arm64-apple-darwin/SHA256SUMS.part 11e781c64fab7933df4a9b4f56357ad18dd8f149b3c9195bf2d310b58355851d guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.dmg e3fe9e278310f3dc97f463bb8cf2b930b587dba5095e18a7f38c4ef76338daad guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.tar.gz 00828a9bfd74013a439b7f0254bd72904b99ff1e3a9503ef6307ee57de81c5eb guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin.tar.gz d80032d2509a982dc81790b3ef3cd8d44551b41047082ebc506f01bbb8830de1 guix-build-13601da17e7a/output/dist-archive/bitcoin-13601da17e7a.tar.gz 61655cdf7c081c43275da57e5b42c21e33d7864378f3784652969ffdf7c3c2b2 guix-build-13601da17e7a/output/powerpc64-linux-gnu/SHA256SUMS.part 3d213e2f25ca72dc0c3d372c0ad3f6803865825a233b29dd80b5cff3e3963621 guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu-debug.tar.gz ef8cad747428b6b46c5d2c598fb7896b320a5321cf9a0c9dba2209c638bfbc7b guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu.tar.gz 2302e022394ca46570c70bc5977f35bbed258bfbb19c2c6d80f1982a725c9e35 guix-build-13601da17e7a/output/powerpc64le-linux-gnu/SHA256SUMS.part 5ca3104b7d546c7d905f82dfd92b5350af754e3973b533adc50c6cbde8f59f96 guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu-debug.tar.gz 2781824d8d08f8ac6663925db8b2d1b50b80165e67ed69df86580438284f0c3b guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu.tar.gz 24a73f91c5ab9e72f2471cd7b31482c702a3de8dade9aff6b76af34253748cec guix-build-13601da17e7a/output/riscv64-linux-gnu/SHA256SUMS.part b09658af4bd24eb5e76bacbfc7f8750a8941f117511b5c55a44ef1beffec8367 guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu-debug.tar.gz 56bde3f3df115dbf801944e4f923a08752fd05cda0bbf0e0e3c915387f98e4a8 guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu.tar.gz ca9a5acb332fb2ffda42e44d84b58e273a769e94f0abaaa0623ed1d1c5267dde guix-build-13601da17e7a/output/x86_64-apple-darwin/SHA256SUMS.part ccae805bca5d4075d1bccbaeca7ac40bb4dac0a97f4fd4c3c80b2d6134d6acb0 guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.dmg b12c9682b69b3662150abd6680bb60f9fef656a1fdc3cd21951c2da571be40cc guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.tar.gz fd3378e4d60f0ef3ae1b18f526e96ed9e838df4def021de332dd0b6cd20ed0c4 guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin.tar.gz 47c7af42153850a94d70de6489389f6faf8772d6adc88269705a12e6b894e84e guix-build-13601da17e7a/output/x86_64-linux-gnu/SHA256SUMS.part 876898d116041680ea6fa3bbce1becb05e45ea5bdbaf973a1465fde4bd2df26d guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu-debug.tar.gz 56671e22f25ba695c7315de916c6a2d1b57d5f00982b331c68a43912ac3ebc44 guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu.tar.gz f5b9b7d83ad34b7b6c3cb98b9d7878795a1f6fb7b422ffb02b23266beb76d3a6 guix-build-13601da17e7a/output/x86_64-w64-mingw32/SHA256SUMS.part a72cfb4ce41cad3bb24df2e4bb318edd05370e12fc31f9ba21637b3fd412dccd guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-debug.zip 4b175eac7355715884be279dd4595665912b62815f1d0186ca9874cb9e6424cb guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-setup-unsigned.exe c45d927f0adedc3eb0a01cee0f9fa734c17d9e9a6692b0f416a3830c007b52cc guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-unsigned.tar.gz 360a5b8806c72dbfcfed616d5cec78606461d664e21fb28a44bd473a2b7c9326 guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64.zip ``` ACKs for top commit: hebasto: ACK 13601da, I have reviewed the code and it looks OK, I agree it can be merged. theuni: ACK 13601da Tree-SHA512: 1450618714a456d8969fa5bfc3ed700452e0737213af50656a0a1e0764e6063390fb528eb1889d8bf1e02e451f601f0a5bc63a02ac34ef10aeb7dc80fe41acd1
1a463c7 Squashed 'src/leveldb/' changes from 22f1e4a02f..e2f10b4e47 (fanquake) Pull request description: Pulls in bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings Related to bitcoin#26090, bitcoin#25972. Guix Build: ```bash a8c49e700309e9268ad0a503e7813775f58daf37813501775ae5831eab0cf26a guix-build-13601da17e7a/output/aarch64-linux-gnu/SHA256SUMS.part 3a1722403f8daf8ea152c72004fb1021f8a7241ee7f51fb0e6adeeb50881f001 guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu-debug.tar.gz 3b7c1f2361ef4832c305ff4b0d9eb7419f787f8cf537952d7c20be549debe0af guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu.tar.gz 329cb5bc932621785a6aeca43af307279c47d87a4983ee3d59636f8e3dc27afa guix-build-13601da17e7a/output/arm-linux-gnueabihf/SHA256SUMS.part 4030f344c4c31cc0877c11d3b89f6ea93f930a4ae7e7976d49ad5123cc31a367 guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf-debug.tar.gz ab50945c416b256b4c92ea0a50c0b7ec241e4c1f5803a4e7cb4ba83a6c5db888 guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf.tar.gz 604557cc73c4065697255c6971547a46cd0d6ad1cdf74261d4c73d002abe8c46 guix-build-13601da17e7a/output/arm64-apple-darwin/SHA256SUMS.part 11e781c64fab7933df4a9b4f56357ad18dd8f149b3c9195bf2d310b58355851d guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.dmg e3fe9e278310f3dc97f463bb8cf2b930b587dba5095e18a7f38c4ef76338daad guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.tar.gz 00828a9bfd74013a439b7f0254bd72904b99ff1e3a9503ef6307ee57de81c5eb guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin.tar.gz d80032d2509a982dc81790b3ef3cd8d44551b41047082ebc506f01bbb8830de1 guix-build-13601da17e7a/output/dist-archive/bitcoin-13601da17e7a.tar.gz 61655cdf7c081c43275da57e5b42c21e33d7864378f3784652969ffdf7c3c2b2 guix-build-13601da17e7a/output/powerpc64-linux-gnu/SHA256SUMS.part 3d213e2f25ca72dc0c3d372c0ad3f6803865825a233b29dd80b5cff3e3963621 guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu-debug.tar.gz ef8cad747428b6b46c5d2c598fb7896b320a5321cf9a0c9dba2209c638bfbc7b guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu.tar.gz 2302e022394ca46570c70bc5977f35bbed258bfbb19c2c6d80f1982a725c9e35 guix-build-13601da17e7a/output/powerpc64le-linux-gnu/SHA256SUMS.part 5ca3104b7d546c7d905f82dfd92b5350af754e3973b533adc50c6cbde8f59f96 guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu-debug.tar.gz 2781824d8d08f8ac6663925db8b2d1b50b80165e67ed69df86580438284f0c3b guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu.tar.gz 24a73f91c5ab9e72f2471cd7b31482c702a3de8dade9aff6b76af34253748cec guix-build-13601da17e7a/output/riscv64-linux-gnu/SHA256SUMS.part b09658af4bd24eb5e76bacbfc7f8750a8941f117511b5c55a44ef1beffec8367 guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu-debug.tar.gz 56bde3f3df115dbf801944e4f923a08752fd05cda0bbf0e0e3c915387f98e4a8 guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu.tar.gz ca9a5acb332fb2ffda42e44d84b58e273a769e94f0abaaa0623ed1d1c5267dde guix-build-13601da17e7a/output/x86_64-apple-darwin/SHA256SUMS.part ccae805bca5d4075d1bccbaeca7ac40bb4dac0a97f4fd4c3c80b2d6134d6acb0 guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.dmg b12c9682b69b3662150abd6680bb60f9fef656a1fdc3cd21951c2da571be40cc guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.tar.gz fd3378e4d60f0ef3ae1b18f526e96ed9e838df4def021de332dd0b6cd20ed0c4 guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin.tar.gz 47c7af42153850a94d70de6489389f6faf8772d6adc88269705a12e6b894e84e guix-build-13601da17e7a/output/x86_64-linux-gnu/SHA256SUMS.part 876898d116041680ea6fa3bbce1becb05e45ea5bdbaf973a1465fde4bd2df26d guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu-debug.tar.gz 56671e22f25ba695c7315de916c6a2d1b57d5f00982b331c68a43912ac3ebc44 guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu.tar.gz f5b9b7d83ad34b7b6c3cb98b9d7878795a1f6fb7b422ffb02b23266beb76d3a6 guix-build-13601da17e7a/output/x86_64-w64-mingw32/SHA256SUMS.part a72cfb4ce41cad3bb24df2e4bb318edd05370e12fc31f9ba21637b3fd412dccd guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-debug.zip 4b175eac7355715884be279dd4595665912b62815f1d0186ca9874cb9e6424cb guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-setup-unsigned.exe c45d927f0adedc3eb0a01cee0f9fa734c17d9e9a6692b0f416a3830c007b52cc guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-unsigned.tar.gz 360a5b8806c72dbfcfed616d5cec78606461d664e21fb28a44bd473a2b7c9326 guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64.zip ``` ACKs for top commit: hebasto: ACK 13601da, I have reviewed the code and it looks OK, I agree it can be merged. theuni: ACK 13601da Tree-SHA512: 1450618714a456d8969fa5bfc3ed700452e0737213af50656a0a1e0764e6063390fb528eb1889d8bf1e02e451f601f0a5bc63a02ac34ef10aeb7dc80fe41acd1
688561cba Merge bitcoin-core/leveldb-subtree#41: Ignore clang's self-assignment check 7045a90ed Ignore clang's self-assignment check e2f10b4e4 Merge bitcoin-core/leveldb-subtree#34: win32: fix -Wmissing-field-initializers warnings 12c52b392 win32: fix -Wmissing-field-initializers warnings 22f1e4a02 Merge bitcoin-core/leveldb-subtree#32: fix macro HAVE_O_CLOEXEC when O_CLOEXEC not found 1eeb1cb87 fix macro HAVE_O_CLOEXEC when O_CLOEXEC not found git-subtree-dir: src/leveldb git-subtree-split: 688561cba8746482893f835c4829e4eb4a5b7615
When building with
-Wmissing-field-initializers
, the following warning is emitted:Submitted upstream: google#1053