build: no-longer disable WARN_CXXFLAGS when CXXFLAGS is set #25972

pull fanquake wants to merge 4 commits into bitcoin:master from fanquake:use_cxxflags_with_depends changing 3 files +31 −33
  1. fanquake commented at 2:22 pm on September 1, 2022: member

    Now that CXXFLAGS are back in user control, I don’t think there’s a reason to no-longer use our warning flags when CXXFLAGS has been overriden (this includes, by default, when building from depends).

    Anyone can suppress warnings from third-party code by passing the relevant -Wno- options in CXXFLAGS.

    Closes: #18092.

  2. fanquake added the label Build system on Sep 1, 2022
  3. fanquake added the label DrahtBot Guix build requested on Sep 1, 2022
  4. hebasto commented at 2:44 pm on September 1, 2022: member
    Concept ACK.
  5. fanquake commented at 3:34 pm on September 1, 2022: member
    Looks like the CI failures (due to -Werror) are a mix of (older) compiler bugs, and and some things that can actually be improved in our code.
  6. jarolrod commented at 12:31 pm on September 2, 2022: member

    GUIX hashes

    x86:

     0decb8702f105372aca1f9b0f0ddb71a911e5d443b198bcb4042cc269cb4ff852  guix-build-0d813df8bb08/output/aarch64-linux-gnu/SHA256SUMS.part
     127ade9862b5d37b1f164b5b2a32d26c5f054cdcb3d96544ebb6c978f6f723636  guix-build-0d813df8bb08/output/aarch64-linux-gnu/bitcoin-0d813df8bb08-aarch64-linux-gnu-debug.tar.gz
     2030fc357f9baca61122cf190a6b90bf843377aab7e75c0a818e4ba1e4905c7fd  guix-build-0d813df8bb08/output/aarch64-linux-gnu/bitcoin-0d813df8bb08-aarch64-linux-gnu.tar.gz
     3280e0f611532792b9c2160c7b0ed9055425db034132d2321e36c0307cd8cad18  guix-build-0d813df8bb08/output/arm-linux-gnueabihf/SHA256SUMS.part
     44d3f6b629b671d99c827d3baa1318da5b72eb6221d07222918dacab405f3254f  guix-build-0d813df8bb08/output/arm-linux-gnueabihf/bitcoin-0d813df8bb08-arm-linux-gnueabihf-debug.tar.gz
     569d7a61b63d12f127f94113261acbfac373fe81d5889dc83ec68d3af5b67105f  guix-build-0d813df8bb08/output/arm-linux-gnueabihf/bitcoin-0d813df8bb08-arm-linux-gnueabihf.tar.gz
     65236f466cedc1e1e47e379e59e35f440847062ba4e47cbd57f70c221a0531905  guix-build-0d813df8bb08/output/arm64-apple-darwin/SHA256SUMS.part
     7b0867f75af65d5dd0d5ce1e181fa014ab5681d892ffeca5618d0dcb9c7c85652  guix-build-0d813df8bb08/output/arm64-apple-darwin/bitcoin-0d813df8bb08-arm64-apple-darwin-unsigned.dmg
     8e8a986eef824442076f7db6cf91a611b9d069b3bdb7d6defae8864e8f955272f  guix-build-0d813df8bb08/output/arm64-apple-darwin/bitcoin-0d813df8bb08-arm64-apple-darwin-unsigned.tar.gz
     98955b1ddee5b8063f84f1313b10bab8c02610b200b7166d256a56b867ae02b01  guix-build-0d813df8bb08/output/arm64-apple-darwin/bitcoin-0d813df8bb08-arm64-apple-darwin.tar.gz
    10759272f39d4b403f3e77483a43a5f86ab8ff58ef5c598dd52a13474af884070d  guix-build-0d813df8bb08/output/dist-archive/bitcoin-0d813df8bb08.tar.gz
    110388d6fae623d574efab893a4df6b45bc5d54fa4875fb56fec5c1e62f9230ac5  guix-build-0d813df8bb08/output/powerpc64-linux-gnu/SHA256SUMS.part
    122893f906f203d9c9087b5d7149da217010d27b47795fb0cb6f841aa7b5ebe975  guix-build-0d813df8bb08/output/powerpc64-linux-gnu/bitcoin-0d813df8bb08-powerpc64-linux-gnu-debug.tar.gz
    132c00544580672579d9aa5d384172598d3e3e64e79d533baa82a49b9cb0734150  guix-build-0d813df8bb08/output/powerpc64-linux-gnu/bitcoin-0d813df8bb08-powerpc64-linux-gnu.tar.gz
    14875b87899e9fcebf470dd5ef5cb88f850cd23fbc396da07862390c895591a6a5  guix-build-0d813df8bb08/output/powerpc64le-linux-gnu/SHA256SUMS.part
    1548fab23a31ba8730fa7ab2a005a6481b1eb49720812cae23b6b23544eb2d0422  guix-build-0d813df8bb08/output/powerpc64le-linux-gnu/bitcoin-0d813df8bb08-powerpc64le-linux-gnu-debug.tar.gz
    16f10672237509f4f34d431e91f9610a35db9a1cfbe58e79e661ed7e62acf11bae  guix-build-0d813df8bb08/output/powerpc64le-linux-gnu/bitcoin-0d813df8bb08-powerpc64le-linux-gnu.tar.gz
    179f2a5e1ccc630ed76958e2e01e8378ccac52614154598363018cf96b8e040100  guix-build-0d813df8bb08/output/riscv64-linux-gnu/SHA256SUMS.part
    180e5b394f9734e12a21f8a667cbb126d0277b3c74fe4bb1f1ced8e7437396ef1c  guix-build-0d813df8bb08/output/riscv64-linux-gnu/bitcoin-0d813df8bb08-riscv64-linux-gnu-debug.tar.gz
    19fcfe5c7e864860d90c67b74903d5d1f48b8445594f7054cd532270a099c601fc  guix-build-0d813df8bb08/output/riscv64-linux-gnu/bitcoin-0d813df8bb08-riscv64-linux-gnu.tar.gz
    201dcbf133c9bee14a6fcf56529dd3be53e448b8a587eccd94e9657e9f047baf7d  guix-build-0d813df8bb08/output/x86_64-apple-darwin/SHA256SUMS.part
    216aa4ef971d8a2733b7f5a49c60e997d3141ea0512494e1392bc8e3556b83e0df  guix-build-0d813df8bb08/output/x86_64-apple-darwin/bitcoin-0d813df8bb08-x86_64-apple-darwin-unsigned.dmg
    222ad9a69d1bf2b2a1bd9249051030f04dfc7455028d07220e5334927485276902  guix-build-0d813df8bb08/output/x86_64-apple-darwin/bitcoin-0d813df8bb08-x86_64-apple-darwin-unsigned.tar.gz
    230641782cfa61a90d22ed44580419cfc446a8e2ca63c5469d89d13bc8ab7d5878  guix-build-0d813df8bb08/output/x86_64-apple-darwin/bitcoin-0d813df8bb08-x86_64-apple-darwin.tar.gz
    24668e4cadcbdaa215d9082a3f762a23cc4ca402703211e931f5c9149c7ddd69a6  guix-build-0d813df8bb08/output/x86_64-linux-gnu/SHA256SUMS.part
    25df202b4b1f4e45e45f33c93db58c14b3c6a709bd2622a29ba87a3f200662911d  guix-build-0d813df8bb08/output/x86_64-linux-gnu/bitcoin-0d813df8bb08-x86_64-linux-gnu-debug.tar.gz
    261709f2b99d7ef9aed33a63e272706cbea6aeb702720b3f68494671c06a231b50  guix-build-0d813df8bb08/output/x86_64-linux-gnu/bitcoin-0d813df8bb08-x86_64-linux-gnu.tar.gz
    274f7cc1e902a4afa627ef093327cd41349ac2f03cdf6a9e535187108b4a5cdf12  guix-build-0d813df8bb08/output/x86_64-w64-mingw32/SHA256SUMS.part
    28a245445900b04bf681d9f428ab066aaee3206d09e5cf75e6b30ac6e09d006d00  guix-build-0d813df8bb08/output/x86_64-w64-mingw32/bitcoin-0d813df8bb08-win64-debug.zip
    298d4579e1e06584f81b2c85ecbea491f462872440d53210388946082ef286ed1e  guix-build-0d813df8bb08/output/x86_64-w64-mingw32/bitcoin-0d813df8bb08-win64-setup-unsigned.exe
    309b25a931b8d2515447cc6ec238a36bac86f74b8550c6b44513a45f6a5242e146  guix-build-0d813df8bb08/output/x86_64-w64-mingw32/bitcoin-0d813df8bb08-win64-unsigned.tar.gz
    315dc6e99f10c522cdf6dd41589017171fd00c20afb9fd2149539e0ea2ba425303  guix-build-0d813df8bb08/output/x86_64-w64-mingw32/bitcoin-0d813df8bb08-win64.zip
    

    arm64:

     0decb8702f105372aca1f9b0f0ddb71a911e5d443b198bcb4042cc269cb4ff852  guix-build-0d813df8bb08/output/aarch64-linux-gnu/SHA256SUMS.part
     127ade9862b5d37b1f164b5b2a32d26c5f054cdcb3d96544ebb6c978f6f723636  guix-build-0d813df8bb08/output/aarch64-linux-gnu/bitcoin-0d813df8bb08-aarch64-linux-gnu-debug.tar.gz
     2030fc357f9baca61122cf190a6b90bf843377aab7e75c0a818e4ba1e4905c7fd  guix-build-0d813df8bb08/output/aarch64-linux-gnu/bitcoin-0d813df8bb08-aarch64-linux-gnu.tar.gz
     3280e0f611532792b9c2160c7b0ed9055425db034132d2321e36c0307cd8cad18  guix-build-0d813df8bb08/output/arm-linux-gnueabihf/SHA256SUMS.part
     44d3f6b629b671d99c827d3baa1318da5b72eb6221d07222918dacab405f3254f  guix-build-0d813df8bb08/output/arm-linux-gnueabihf/bitcoin-0d813df8bb08-arm-linux-gnueabihf-debug.tar.gz
     569d7a61b63d12f127f94113261acbfac373fe81d5889dc83ec68d3af5b67105f  guix-build-0d813df8bb08/output/arm-linux-gnueabihf/bitcoin-0d813df8bb08-arm-linux-gnueabihf.tar.gz
     65236f466cedc1e1e47e379e59e35f440847062ba4e47cbd57f70c221a0531905  guix-build-0d813df8bb08/output/arm64-apple-darwin/SHA256SUMS.part
     7b0867f75af65d5dd0d5ce1e181fa014ab5681d892ffeca5618d0dcb9c7c85652  guix-build-0d813df8bb08/output/arm64-apple-darwin/bitcoin-0d813df8bb08-arm64-apple-darwin-unsigned.dmg
     8e8a986eef824442076f7db6cf91a611b9d069b3bdb7d6defae8864e8f955272f  guix-build-0d813df8bb08/output/arm64-apple-darwin/bitcoin-0d813df8bb08-arm64-apple-darwin-unsigned.tar.gz
     98955b1ddee5b8063f84f1313b10bab8c02610b200b7166d256a56b867ae02b01  guix-build-0d813df8bb08/output/arm64-apple-darwin/bitcoin-0d813df8bb08-arm64-apple-darwin.tar.gz
    10759272f39d4b403f3e77483a43a5f86ab8ff58ef5c598dd52a13474af884070d  guix-build-0d813df8bb08/output/dist-archive/bitcoin-0d813df8bb08.tar.gz
    110388d6fae623d574efab893a4df6b45bc5d54fa4875fb56fec5c1e62f9230ac5  guix-build-0d813df8bb08/output/powerpc64-linux-gnu/SHA256SUMS.part
    122893f906f203d9c9087b5d7149da217010d27b47795fb0cb6f841aa7b5ebe975  guix-build-0d813df8bb08/output/powerpc64-linux-gnu/bitcoin-0d813df8bb08-powerpc64-linux-gnu-debug.tar.gz
    132c00544580672579d9aa5d384172598d3e3e64e79d533baa82a49b9cb0734150  guix-build-0d813df8bb08/output/powerpc64-linux-gnu/bitcoin-0d813df8bb08-powerpc64-linux-gnu.tar.gz
    14875b87899e9fcebf470dd5ef5cb88f850cd23fbc396da07862390c895591a6a5  guix-build-0d813df8bb08/output/powerpc64le-linux-gnu/SHA256SUMS.part
    1548fab23a31ba8730fa7ab2a005a6481b1eb49720812cae23b6b23544eb2d0422  guix-build-0d813df8bb08/output/powerpc64le-linux-gnu/bitcoin-0d813df8bb08-powerpc64le-linux-gnu-debug.tar.gz
    16f10672237509f4f34d431e91f9610a35db9a1cfbe58e79e661ed7e62acf11bae  guix-build-0d813df8bb08/output/powerpc64le-linux-gnu/bitcoin-0d813df8bb08-powerpc64le-linux-gnu.tar.gz
    179f2a5e1ccc630ed76958e2e01e8378ccac52614154598363018cf96b8e040100  guix-build-0d813df8bb08/output/riscv64-linux-gnu/SHA256SUMS.part
    180e5b394f9734e12a21f8a667cbb126d0277b3c74fe4bb1f1ced8e7437396ef1c  guix-build-0d813df8bb08/output/riscv64-linux-gnu/bitcoin-0d813df8bb08-riscv64-linux-gnu-debug.tar.gz
    19fcfe5c7e864860d90c67b74903d5d1f48b8445594f7054cd532270a099c601fc  guix-build-0d813df8bb08/output/riscv64-linux-gnu/bitcoin-0d813df8bb08-riscv64-linux-gnu.tar.gz
    201dcbf133c9bee14a6fcf56529dd3be53e448b8a587eccd94e9657e9f047baf7d  guix-build-0d813df8bb08/output/x86_64-apple-darwin/SHA256SUMS.part
    216aa4ef971d8a2733b7f5a49c60e997d3141ea0512494e1392bc8e3556b83e0df  guix-build-0d813df8bb08/output/x86_64-apple-darwin/bitcoin-0d813df8bb08-x86_64-apple-darwin-unsigned.dmg
    222ad9a69d1bf2b2a1bd9249051030f04dfc7455028d07220e5334927485276902  guix-build-0d813df8bb08/output/x86_64-apple-darwin/bitcoin-0d813df8bb08-x86_64-apple-darwin-unsigned.tar.gz
    230641782cfa61a90d22ed44580419cfc446a8e2ca63c5469d89d13bc8ab7d5878  guix-build-0d813df8bb08/output/x86_64-apple-darwin/bitcoin-0d813df8bb08-x86_64-apple-darwin.tar.gz
    24668e4cadcbdaa215d9082a3f762a23cc4ca402703211e931f5c9149c7ddd69a6  guix-build-0d813df8bb08/output/x86_64-linux-gnu/SHA256SUMS.part
    25df202b4b1f4e45e45f33c93db58c14b3c6a709bd2622a29ba87a3f200662911d  guix-build-0d813df8bb08/output/x86_64-linux-gnu/bitcoin-0d813df8bb08-x86_64-linux-gnu-debug.tar.gz
    261709f2b99d7ef9aed33a63e272706cbea6aeb702720b3f68494671c06a231b50  guix-build-0d813df8bb08/output/x86_64-linux-gnu/bitcoin-0d813df8bb08-x86_64-linux-gnu.tar.gz
    274f7cc1e902a4afa627ef093327cd41349ac2f03cdf6a9e535187108b4a5cdf12  guix-build-0d813df8bb08/output/x86_64-w64-mingw32/SHA256SUMS.part
    28a245445900b04bf681d9f428ab066aaee3206d09e5cf75e6b30ac6e09d006d00  guix-build-0d813df8bb08/output/x86_64-w64-mingw32/bitcoin-0d813df8bb08-win64-debug.zip
    298d4579e1e06584f81b2c85ecbea491f462872440d53210388946082ef286ed1e  guix-build-0d813df8bb08/output/x86_64-w64-mingw32/bitcoin-0d813df8bb08-win64-setup-unsigned.exe
    309b25a931b8d2515447cc6ec238a36bac86f74b8550c6b44513a45f6a5242e146  guix-build-0d813df8bb08/output/x86_64-w64-mingw32/bitcoin-0d813df8bb08-win64-unsigned.tar.gz
    315dc6e99f10c522cdf6dd41589017171fd00c20afb9fd2149539e0ea2ba425303  guix-build-0d813df8bb08/output/x86_64-w64-mingw32/bitcoin-0d813df8bb08-win64.zip
    
  7. DrahtBot removed the label DrahtBot Guix build requested on Sep 5, 2022
  8. fanquake commented at 1:32 pm on September 13, 2022: member
    cc @theuni. See: https://github.com/bitcoin/bitcoin/pull/25972/checks?check_run_id=8137548994, for an example of unsuppressed sdt.h warnings.
  9. theuni commented at 7:03 pm on September 13, 2022: member

    As @fanquake mentioned, some of these are only warnings in older compilers. I’m going through them to double-check that they are indeed non-issues, as opposed to missed warnings in newer compilers.

    (I’m ignoring the sdt.h warnings for now and focusing on what’s in our code. I will look at that header next.)

    I’ve pushed commits that implement the following suggestions here: https://github.com/theuni/bitcoin/commits/use_cxxflags_with_depends

    For this one:

    script/descriptor.cpp:1555:21: error: loop variable ‘keyspan’ of type ‘const Span’ creates a copy from type ‘const Span’ [-Werror,-Wrange-loop-analysis] for (const auto keyspan : match->second) {

    This was a warning in clang-9 but not clang-10. The warning was removed here: https://reviews.llvm.org/D72212

    tl;dr: copies are allowed for POD types less than 64bytes.

    We can confirm this by adding a dummy char foo[65] to Span, which causes newer clang to warn as expected.

    That seems reasonable enough, but I think we may as well just fix it up to take a const ref to remove any ambiguity.

    for this one:

    script/descriptor.cpp: In function ‘std::unique_ptr<{anonymous}::DescriptorImpl> {anonymous}::InferScript(const CScript&, {anonymous}::ParseScriptContext, const SigningProvider&)’: script/descriptor.cpp:1262:17: error: ‘’ may be used uninitialized in this function [-Werror=maybe-uninitialized] return {};

    I can reproduce this with gcc9 but not gcc10. My best guess is that it’s related to: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635

    Though I’m having trouble recreating a minimal test-case that fails with gcc9 and succeeds with gcc10.

    Changing these from return {} to return std::nullopt avoids the problem and makes the code more clear too, so again, I suggest simply appeasing the dumb compiler because there’s not really a reason not to.

    For this one:

    fs.cpp: In member function ‘bool fsbridge::FileLock::TryLock()’: fs.cpp:129:32: error: missing initializer for member ‘_OVERLAPPED::InternalHigh’ [-Werror=missing-field-initializers] 129 | _OVERLAPPED overlapped = {0};

    This one looks legitimate. Suggest fixing by initializing to {}.

    For this one:

    test/fuzz/float.cpp: In function ‘void float_fuzz_target(FuzzBufferType)’: test/fuzz/float.cpp:50:40: error: ‘tmp’ may be used uninitialized in this function [-Werror=maybe-uninitialized] uint64_t encoded = EncodeDouble(d);

    (This applies to x86_64 as well)

    Again, gcc10 is smart enough to figure this out, but gcc9 complains. Initializing to zero is harmless, so again I suggest just initializing to 0 to quiet the old compilers.

  10. theuni commented at 8:38 pm on September 13, 2022: member
    I also pushed a patch for systemtap in depends that gets rid of those compiler warnings. From what I can tell, the variadic is completely unused there, but I’m not at all confident in that change yet.
  11. theuni commented at 8:38 pm on September 13, 2022: member
    Concept ACK, btw :)
  12. fanquake force-pushed on Sep 14, 2022
  13. fanquake commented at 11:00 am on September 14, 2022: member

    This one looks legitimate. Suggest fixing by initializing to {}.

    I had opened #26006, to see if anyone would jump in with the change, but at this point will just PR your commit separate to this.

    For the remaining of the changes, I’ve rebased on top of your branch I think the changes are fairly uncontreversial (aside from sdt.h), and are better than adding -Wno-x for older compilers / CI jobs, which is better again than going the #pragma in our source code route. Although given they are changes to code, they can also be split out of here if wanted.

    I also pushed a patch for systemtap in depends that gets rid of those compiler warnings. From what I can tell, the variadic is completely unused there, but I’m not at all confident in that change yet.

    Maybe @0xB10C can weigh in?

  14. fanquake commented at 11:33 am on September 14, 2022: member

    With the _OVERLAPPED fix applied, the Win64 job fails differently:

    0/usr/bin/ccache x86_64-w64-mingw32-g++-posix -std=c++17 -DHAVE_CONFIG_H -I. -I../src/config  -fmacro-prefix-map=/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-w64-mingw32=. -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -DHAVE_BUILD_INFO -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0601 -D_WIN32_IE=0x0501 -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_FILE_OFFSET_BITS=64 -DPROVIDE_FUZZ_MAIN_FUNCTION -I. -I./minisketch/include -I./secp256k1/include -I./univalue/include -I./leveldb/include -I/tmp/cirrus-ci-build/depends/x86_64-w64-mingw32/include/  -fdebug-prefix-map=/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-w64-mingw32=. -fstack-reuse=none -Wstack-protector -fstack-protector-all -fcf-protection=full -Wall -Wextra -Wformat -Wformat-security -Wvla -Wredundant-decls -Wdate-time -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Woverloaded-virtual -Wsuggest-override -Wimplicit-fallthrough -Wno-unused-parameter -Werror -Wno-error=return-type    -fno-extended-identifiers -fvisibility=hidden -fPIE -pipe -std=c++17 -O2  -c -o script/libbitcoin_consensus_a-interpreter.o `test -f 'script/interpreter.cpp' || echo './'`script/interpreter.cpp
    1script/interpreter.cpp: In function ‘bool SignatureHashSchnorr(uint256&, ScriptExecutionData&, const T&, uint32_t, uint8_t, SigVersion, const PrecomputedTransactionData&, MissingDataBehavior) [with T = CTransaction]’:
    2script/interpreter.cpp:1530:42: error: ‘ext_flag’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
    3 1530 |     const uint8_t spend_type = (ext_flag << 1) + (have_annex ? 1 : 0); // The low bit indicates whether an annex is present.
    4      |                                ~~~~~~~~~~^~~~~
    5script/interpreter.cpp: In function ‘bool SignatureHashSchnorr(uint256&, ScriptExecutionData&, const T&, uint32_t, uint8_t, SigVersion, const PrecomputedTransactionData&, MissingDataBehavior) [with T = CMutableTransaction]’:
    6script/interpreter.cpp:1530:42: error: ‘ext_flag’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
    7 1530 |     const uint8_t spend_type = (ext_flag << 1) + (have_annex ? 1 : 0); // The low bit indicates whether an annex is present.
    8      |                                ~~~~~~~~~~^~~~~
    

    This looks like another false-positive, as ext_flag should always be either 0 or 1, or we would have asserted: https://github.com/bitcoin/bitcoin/blob/a8c3590890640aff039491b9b4e0c8eee0c7fdb6/src/script/interpreter.cpp#L1480.

  15. 0xB10C commented at 12:36 pm on September 14, 2022: contributor

    I also pushed a patch for systemtap in depends that gets rid of those compiler warnings. From what I can tell, the variadic is completely unused there, but I’m not at all confident in that change yet.

    Maybe @0xB10C can weigh in?

    I too think that we don’t use the variadic and it’s Ok to drop it in the patch:

    We use, for example, the DTRACE_PROBE6(context, event, a, b, c, d, e, f) macro which expands to STAP_PROBE6(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6) expanding too _SDT_PROBE(provider, name, 6, (arg1, arg2, arg3, arg4, arg5, arg6)) and again expanding too (_SDT_ASM_BODY(provider, name, _SDT_ASM_ARGS, (n)) which is defined as _SDT_ASM_BODY(provider, name, pack_args, args, ...) containing the variadic. We only fill in the provider, name, pack_args, args and don’t use the variadic.

    See e.g. this warning in https://cirrus-ci.com/task/4790719054348288?logs=ci#L2368.

     0...
     1usr/bin/ccache clang++ -m32 -std=c++17 -DHAVE_CONFIG_H -I. -I../src/config  -DDEBUG -DDEBUG_LOCKORDER -DDEBUG_LOCKCONTENTION -DRPC_DOC_CHECK -DABORT_ON_FAILED_ASSUME -fmacro-prefix-map=/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-i686-pc-linux-gnu=.  -DHAVE_BUILD_INFO -D_FILE_OFFSET_BITS=64 -DPROVIDE_FUZZ_MAIN_FUNCTION -I. -I./minisketch/include -I./secp256k1/include -I./univalue/include -isystem /tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DBOOST_NO_CXX98_FUNCTION_BASE -DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE -I./leveldb/include   -isystem /tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include -pthread -I/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include  -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_LIBCPP_DEBUG=1 -I/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include/  -O0 -g3 -ftrapv -fdebug-prefix-map=/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-i686-pc-linux-gnu=. -Wstack-protector -fstack-protector-all -fcf-protection=full -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Woverloaded-virtual -Wunreachable-code-loop-increment -Wimplicit-fallthrough -Wdocumentation -Wno-unused-parameter -Wno-self-assign -Werror     -fPIE -pipe -std=c++17 -O1  -c -o libbitcoin_node_a-net.o `test -f 'net.cpp' || echo './'`net.cpp
     2net.cpp:2767:5: error: must specify at least one argument for '...' parameter of variadic macro [-Werror,-Wgnu-zero-variadic-macro-arguments]
     3    TRACE6(net, outbound_message,
     4    ^
     5./util/trace.h:18:50: note: expanded from macro 'TRACE6'
     6#define TRACE6(context, event, a, b, c, d, e, f) DTRACE_PROBE6(context, event, a, b, c, d, e, f)
     7                                                 ^
     8/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include/sys/sdt.h:496:3: note: expanded from macro 'DTRACE_PROBE6'
     9  STAP_PROBE6(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6)
    10  ^
    11/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include/sys/sdt.h:382:3: note: expanded from macro 'STAP_PROBE6'
    12  _SDT_PROBE(provider, name, 6, (arg1, arg2, arg3, arg4, arg5, arg6))
    13  ^
    14/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include/sys/sdt.h:78:75: note: expanded from macro '_SDT_PROBE'
    15    __asm__ __volatile__ (_SDT_ASM_BODY(provider, name, _SDT_ASM_ARGS, (n)) \
    16                                                                          ^
    17/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include/sys/sdt.h:285:9: note: macro '_SDT_ASM_BODY' defined here
    18#define _SDT_ASM_BODY(provider, name, pack_args, args, ...)                   \
    19        ^
    201 error generated.
    21make[2]: *** [Makefile:9699: libbitcoin_node_a-net.o] Error 1
    22make[2]: Leaving directory '/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-i686-pc-linux-gnu/src'
    23make[1]: *** [Makefile:18924: install-recursive] Error 1
    24make[1]: Leaving directory '/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-i686-pc-linux-gnu/src'
    25make: *** [Makefile:821: install-recursive] Error 1
    

    The the tracepoint tests in this task succeed. Also, for reference, this also came up in #25528 (comment) and the variadic was only recently re-added in sytemtap@ecab2afe. If needed, we could also have our own sdt.h at some point with everything we don’t use thrown out.

  16. fanquake commented at 2:02 pm on September 14, 2022: member

    I’ve opened an upstream issue: https://github.com/chaincodelabs/libmultiprocess/issues/77, for the warnings in the multiprocess CI job:

     0/usr/bin/ccache clang++ -m32 -std=c++17 -DHAVE_CONFIG_H -I. -I../src/config  -DDEBUG -DDEBUG_LOCKORDER -DDEBUG_LOCKCONTENTION -DRPC_DOC_CHECK -DABORT_ON_FAILED_ASSUME -fmacro-prefix-map=/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-i686-pc-linux-gnu=.  -DHAVE_BUILD_INFO -D_FILE_OFFSET_BITS=64 -DPROVIDE_FUZZ_MAIN_FUNCTION -I. -I./minisketch/include -I./secp256k1/include -I./univalue/include -I./leveldb/include -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_LIBCPP_DEBUG=1 -I/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include/  -O0 -g3 -ftrapv -fdebug-prefix-map=/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-i686-pc-linux-gnu=. -Wstack-protector -fstack-protector-all -fcf-protection=full -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Woverloaded-virtual -Wunreachable-code-loop-increment -Wimplicit-fallthrough -Wdocumentation -Wno-unused-parameter -Wno-self-assign -Werror     -fPIE -std=c++17 -pthread -I/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include -pipe -std=c++17 -O1  -c -o ipc/capnp/libbitcoin_ipc_a-protocol.o `test -f 'ipc/capnp/protocol.cpp' || echo './'`ipc/capnp/protocol.cpp
     1In file included from ipc/capnp/protocol.cpp:14:
     2/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include/mp/proxy-io.h:33:37: error: parameter 'connection' shadows member inherited from type 'InvokeContext' [-Werror,-Wshadow-field]
     3    ClientInvokeContext(Connection& connection, ThreadContext& thread_context)
     4                                    ^
     5/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include/mp/proxy-io.h:27:17: note: declared here
     6    Connection& connection;
     7                ^
     8/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include/mp/proxy-io.h:160:16: error: moving a local object in a return statement prevents copy elision [-Werror,-Wpessimizing-move]
     9        return std::move(logger);
    10               ^
    11/tmp/cirrus-ci-build/depends/i686-pc-linux-gnu/include/mp/proxy-io.h:160:16: note: remove std::move call here
    12        return std::move(logger);
    13               ^~~~~~~~~~      ~
    142 errors generated.
    

    as they are from the multiprocess code:

  17. theuni commented at 3:14 pm on September 14, 2022: member

    With the _OVERLAPPED fix applied, the Win64 job fails differently:

    0/usr/bin/ccache x86_64-w64-mingw32-g++-posix -std=c++17 -DHAVE_CONFIG_H -I. -I../src/config  -fmacro-prefix-map=/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-w64-mingw32=. -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -DHAVE_BUILD_INFO -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0601 -D_WIN32_IE=0x0501 -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_FILE_OFFSET_BITS=64 -DPROVIDE_FUZZ_MAIN_FUNCTION -I. -I./minisketch/include -I./secp256k1/include -I./univalue/include -I./leveldb/include -I/tmp/cirrus-ci-build/depends/x86_64-w64-mingw32/include/  -fdebug-prefix-map=/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-w64-mingw32=. -fstack-reuse=none -Wstack-protector -fstack-protector-all -fcf-protection=full -Wall -Wextra -Wformat -Wformat-security -Wvla -Wredundant-decls -Wdate-time -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Woverloaded-virtual -Wsuggest-override -Wimplicit-fallthrough -Wno-unused-parameter -Werror -Wno-error=return-type    -fno-extended-identifiers -fvisibility=hidden -fPIE -pipe -std=c++17 -O2  -c -o script/libbitcoin_consensus_a-interpreter.o `test -f 'script/interpreter.cpp' || echo './'`script/interpreter.cpp
    1script/interpreter.cpp: In function ‘bool SignatureHashSchnorr(uint256&, ScriptExecutionData&, const T&, uint32_t, uint8_t, SigVersion, const PrecomputedTransactionData&, MissingDataBehavior) [with T = CTransaction]’:
    2script/interpreter.cpp:1530:42: error: ‘ext_flag’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
    3 1530 |     const uint8_t spend_type = (ext_flag << 1) + (have_annex ? 1 : 0); // The low bit indicates whether an annex is present.
    4      |                                ~~~~~~~~~~^~~~~
    5script/interpreter.cpp: In function ‘bool SignatureHashSchnorr(uint256&, ScriptExecutionData&, const T&, uint32_t, uint8_t, SigVersion, const PrecomputedTransactionData&, MissingDataBehavior) [with T = CMutableTransaction]’:
    6script/interpreter.cpp:1530:42: error: ‘ext_flag’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
    7 1530 |     const uint8_t spend_type = (ext_flag << 1) + (have_annex ? 1 : 0); // The low bit indicates whether an annex is present.
    8      |                                ~~~~~~~~~~^~~~~
    

    This looks like another false-positive, as ext_flag should always be either 0 or 1, or we would have asserted:

    https://github.com/bitcoin/bitcoin/blob/a8c3590890640aff039491b9b4e0c8eee0c7fdb6/src/script/interpreter.cpp#L1480 .

    Bumping #25065 (review) again.

    assert(0) doesn’t prevent this code from being hit in -DNDEBUG builds, so I believe this warning is correct.

    Long-term, I think we could either drop the -DDEBUG requirement and:

    • return false instead of asserting and teach the callers to understand the meaning
    • templatize the sigversion

    Short-term, the simple/obvious solution is just to initialize to zero, which wouldn’t affect the meaning of the code.

  18. maflcko commented at 3:18 pm on September 14, 2022: member

    assert(0) doesn’t prevent this code from being hit in -DNDEBUG builds, so I believe this warning is correct.

    There is also Assert(0), which shouldn’t have this static analysis problem.

    Edit: Ok, maybe it does. Though annotating assertion_fail with [[noreturn]] might fix that. Otherwise a macro could help, see #24812 (review) ?

  19. theuni commented at 3:57 pm on September 14, 2022: member

    Here’s a slightly more invasive change that eliminates the possibility of undefined behavior by filtering out script versions that can’t be consumed by these functions: https://github.com/theuni/bitcoin/commits/explicit-v1-scriptver

    The key idea is here: https://github.com/theuni/bitcoin/commit/5f26e4a86763f17c4b6aafb090d21958928752f2#diff-da9625bc8e6928c0ec3239921e739c32b9d0abdfbca9773c550a3cdd818230b8R196

    The second commit is just a small cleanup.

    I think it’s a nice improvement. Will PR if there’s any interest.

  20. theuni commented at 8:15 pm on September 14, 2022: member

    I too think that we don’t use the variadic and it’s Ok to drop it in the patch:

    We use, for example, the DTRACE_PROBE6(context, event, a, b, c, d, e, f) macro which expands to STAP_PROBE6(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6) expanding too _SDT_PROBE(provider, name, 6, (arg1, arg2, arg3, arg4, arg5, arg6)) and again expanding too (_SDT_ASM_BODY(provider, name, _SDT_ASM_ARGS, (n)) which is defined as _SDT_ASM_BODY(provider, name, pack_args, args, ...) containing the variadic. We only fill in the provider, name, pack_args, args and don’t use the variadic.

    See e.g. this warning in https://cirrus-ci.com/task/4790719054348288?logs=ci#L2368.

    The the tracepoint tests in this task succeed. Also, for reference, this also came up in #25528 (comment) and the variadic was only recently re-added in sytemtap@ecab2afe. If needed, we could also have our own sdt.h at some point with everything we don’t use thrown out.

    Note that not only do we do not use the variadic, it’s not even hooked up to anything. _SDT_ASM_BODY doesn’t use __VA_ARGS__ at all, so any extra args passed in would just be discarded anyway. I’m assuming this is a placeholder for some later upstream feature (or maybe something someone forgot to remove), but for now it’s doing nothing but triggering a warning.

  21. DrahtBot commented at 11:26 pm on September 14, 2022: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage

    For detailed information about the code coverage, see the test coverage report.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK maflcko, hebasto, theuni, TheCharlatan
    Concept ACK mruddy

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

    Conflicts

    No conflicts as of last run.

  22. maflcko commented at 6:14 am on September 15, 2022: member

    Here’s a slightly more invasive change that eliminates the possibility of undefined behavior

    Strictly speaking, this will keep the UB. Recall that an enum class is allowed to hold any integral value as long as it fits in the underlying type (even if the value is not named in the enum). So you’d have to re-add the assert to avoid UB (an uninitialized value), in which case the warning would likely re-appear.

  23. theuni commented at 1:12 pm on September 15, 2022: member

    Here’s a slightly more invasive change that eliminates the possibility of undefined behavior

    Strictly speaking, this will keep the UB. Recall that an enum class is allowed to hold any integral value as long as it fits in the underlying type (even if the value is not named in the enum). So you’d have to re-add the assert to avoid UB (an uninitialized value), in which case the warning would likely re-appear.

    Heh, I suppose I invited the pedantry there.

    Correct, it wouldn’t eliminate UB potential entirely here, but it would put it on par with every other switch/case over an fully-handled enum class without a default in our codebase. I don’t think you’re suggesting adding default: assert(0) for the others? :)

    As I see it it’d be strictly an improvement (though admittedly not bulletproof) as the intent is better communicated to callers, and would cleanly eliminate this warning. Would you NACK it as a PR?

  24. fanquake referenced this in commit f332c4f64d on Sep 15, 2022
  25. maflcko commented at 2:36 pm on September 15, 2022: member

    I don’t think you’re suggesting adding default: assert(0) for the others? :)

    No, but generally we still put an assert in the fallthrough case. Putting the assert after the switch is equivalent, assuming the cases return. See for example https://github.com/bitcoin/bitcoin/blob/f332c4f64d52e82211c1199bbd5bab2c6bfc57f4/src/kernel/coinstats.cpp#L169-L173

  26. sidhujag referenced this in commit 1c746cca25 on Sep 15, 2022
  27. fanquake referenced this in commit 44a29758a0 on Oct 4, 2022
  28. fanquake force-pushed on Oct 4, 2022
  29. sidhujag referenced this in commit 73e27f2fe2 on Oct 4, 2022
  30. mruddy commented at 1:44 am on November 1, 2022: contributor

    Concept ACK on enabling the warning messages when CXXFLAGS is set. These changes would benefit what I was working on in #26393. I’d probably support defaulting --enable-suppress-external-warnings, but that can be done later/separate.

    I rebased the current 6 commits onto the current master, 43e813cab266eef42e622519836f171f6a18d426, and did a build with depends using: CONFIG_SITE="$PWD/depends/x86_64-pc-linux-gnu/share/config.site" ./configure --enable-debug CXXFLAGS="-O0" and got a ton of boost warnings related to -Wsuggest-override.

    I went back and did another build using: CONFIG_SITE="$PWD/depends/x86_64-pc-linux-gnu/share/config.site" ./configure --enable-suppress-external-warnings --enable-debug CXXFLAGS="-O0" and got a clean build.

  31. fanquake referenced this in commit e1fb7381be on Dec 10, 2022
  32. hebasto commented at 3:38 pm on December 10, 2022: member

    assert(0) doesn’t prevent this code from being hit in -DNDEBUG builds, so I believe this warning is correct.

    There is also Assert(0), which shouldn’t have this static analysis problem.

    Edit: Ok, maybe it does. Though annotating assertion_fail with [[noreturn]] might fix that.

    Assert(0) combined with [[noreturn]] assertion_fail does fix the warning.

    Otherwise a macro could help, see #24812 (comment) ?

    A macro could also help for wider use. See #26504.

  33. sidhujag referenced this in commit e603e70e7a on Dec 10, 2022
  34. fanquake force-pushed on Dec 12, 2022
  35. fanquake commented at 12:16 pm on December 12, 2022: member
    Rebased past #26672.
  36. in src/test/fuzz/float.cpp:22 in 0269c90d60 outdated
    18@@ -19,7 +19,7 @@ FUZZ_TARGET(float)
    19 
    20     {
    21         const double d{[&] {
    22-            double tmp;
    23+            double tmp{0};
    


    maflcko commented at 12:38 pm on December 12, 2022:
    Not sure if we want to maim code to please broken and ancient compilers

    hebasto commented at 10:12 am on January 24, 2023:
    This only change is better than disabling a useful warning, isn’t it?

    maflcko commented at 10:20 am on January 24, 2023:

    No. C++ allows for uninitialized values, and allows for valgrind to find code logic errors based on this.

    I fail to see how using a warning emitted by a known-broken compiler is an excuse to worsen the code.

    Either the compiler shouldn’t be used or the warning be disabled on the compiler.


    maflcko commented at 12:01 pm on February 1, 2023:
    Looks like this (and other changes) can be dropped after #27013
  37. bitcoin deleted a comment on Jan 23, 2023
  38. DrahtBot added the label Needs rebase on Jan 24, 2023
  39. fanquake force-pushed on Jan 24, 2023
  40. maflcko dismissed
  41. maflcko commented at 10:20 am on January 24, 2023: member
    idk. Probably NACK?
  42. DrahtBot removed the label Needs rebase on Jan 24, 2023
  43. fanquake commented at 11:32 am on January 24, 2023: member

    idk. Probably NACK?

    Are you NACKING the whole (concept of the) pull, or the single fuzz change? I agree some of these changes are not ideal, and I would rather avoid the use of old/broken compilers entirely. I’ll continue to split out changes where they make sense, and look at fixing issues in another way.

    The main issue here is the use of old/broken compilers in the CI, in combination with -Werror, as we’re essentially converting incorrect output from old/broken compilers, into progress blocking issues, as the CI will be red.

  44. maflcko commented at 11:49 am on January 24, 2023: member

    In the OP you mention that it is possible to pass “the relevant -Wno- option in CXXFLAGS.” So I wonder why you opted to change the code (https://github.com/bitcoin/bitcoin/pull/25972#discussion_r1045780114) instead of using your suggestion to simply disable the broken warning?

    The main issue here is the use of old/broken compilers in the CI

    I presume the reason we are using those compilers is, that they are the versions used when cross-compiling to Windows (by the average user, or by our guix build). So unless the average user, or at least the guix build is using a different version, we are stuck with them.

  45. fanquake commented at 11:57 am on January 24, 2023: member

    In the OP you mention that it is possible to pass “the relevant -Wno- option

    If you’re happy for us to maintain various -Wno options throughout the CI configs, to suppress warnings from the broken compilers, I’m happy to convert to that approach. I’d say, in general, if we can make a single line code change, vs adding further configuration complexitiy to our CI, that would seem preferred? In the op I was also generally referring to 3rd party code, as that is what is packaged in depends, and is usually, the primary cause of copious amounts of warnings.

    I presume the reason we are using those compilers is,

    I’m not arguing against testing the older compilers, I’m saying I don’t think we should be testing them with -Werror, when we already know they are broken, going to produce garbage output, and cause pointless build failures.

  46. maflcko commented at 12:05 pm on January 24, 2023: member

    a single line code change, vs adding further configuration complexitiy to our CI, that would seem preferred?

    I don’t think a single line code change is enough? The CI currently fails with:

    0script/interpreter.cpp:1530:42: error: ext_flag may be used uninitialized in this function [-Werror=maybe-uninitialized]
    1 1530 |     const uint8_t spend_type = (ext_flag << 1) + (have_annex ? 1 : 0); // The low bit indicates whether an annex is present.
    

    When the options are to refactor consensus code, potentially introducing a consensus bug, or disabling a harmless, but broken compiler warning, I think the answer should be clear? This is also the approach we take with sanitizer suppressions.

  47. fanquake commented at 12:07 pm on January 24, 2023: member

    I don’t think a single line code change is enough? The CI currently fails with:

    A single line change was enough to fix all other warnings. The one you are referencing, clearly not, which is why the fix was split off into #26101 for further discussion. The other issue there is that we probably don’t want to turn off -Wmaybe-uninitialized warnings, for GCC 10, which is currently our release compiler.

  48. maflcko commented at 12:48 pm on January 24, 2023: member
    In any case, if this is currently not for merge (CI is red) and depending on another change, maybe close or mark as draft for now?
  49. fanquake marked this as a draft on Jan 24, 2023
  50. fanquake commented at 1:18 pm on January 24, 2023: member

    maybe close or mark as draft for now?

    Drafted. This is based on #26945 and may use #26101. May also change the approach to suppressions instead.

  51. fanquake referenced this in commit eee2c28985 on Jan 26, 2023
  52. DrahtBot added the label Needs rebase on Jan 26, 2023
  53. fanquake force-pushed on Jan 26, 2023
  54. fanquake commented at 1:58 pm on January 26, 2023: member

    Rebased for #26945 and rebased on top of #26101 for now/CI. However note that this is now failing with what is likely another false positive, in some recently introduced code:

     0test/fuzz/partially_downloaded_block.cpp: In function ‘void partially_downloaded_block_fuzz_target(FuzzBufferType)’:
     1test/fuzz/partially_downloaded_block.cpp:122:46: error: ‘iftmp.71’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
     2     pdb.m_check_block_mock = FuzzedCheckBlock(
     3                              ~~~~~~~~~~~~~~~~^
     4         fail_check_block ?
     5         ~~~~~~~~~~~~~~~~~~                    
     6             std::optional<BlockValidationResult>{validation_result} :
     7             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     8             std::nullopt);
     9             ~~~~~~~~~~~~~                     
    10cc1plus: all warnings being treated as errors
    11make[2]: *** [Makefile:16735: test/fuzz/fuzz-partially_downloaded_block.o] Error 1
    

    It’s clear that using -Werror with older/broken compilers is going to be impossible to maintain, and trying to suppress individual classes of warnings is a constantly moving target. Will PR some changes to improve this.

  55. maflcko commented at 2:39 pm on January 26, 2023: member
    Right, so the previous patch just happened to be a single-line fixup. Though, for newly written code you’ll harass devs with incorrect errors and force them to regress their code. So I’ll remain Approach NACK on the current state of this pull.
  56. fanquake commented at 2:54 pm on January 26, 2023: member

    you’ll harass devs with incorrect errors and force them to regress their code

    No, the (global) use of -Werror with old, broken compilers, in the CI, would be harassing them. Which is what I alluded to fixing in my previous comment. Warnings in our code when built with depends (relases), have always existed, but have either been suppressed, or ignored entirely, by not actually turning on any warning flags. The point of this pull is to turn on the flags with depends (release) builds, so that you actually get (useful/meaningful) output. This is now possible given there are less warnings produced by the depends libs in general, and we have the infra in our build system to easily suppress warnings that are not coming from our own code.

    Given the same source code, and two versions of the same compiler, I don’t see why we have decided that turning the CI red, when the older (known broken) compiler spits out a false-positive warning, is something we need to deal with. If devs/users want to compile their code with an older compiler, that’s fine, and we’ll continue to do our best to support that, but there is no-reason for that older compiler, producing an incorrect warning, to be some sort of blocker in our CI.

  57. DrahtBot removed the label Needs rebase on Jan 26, 2023
  58. sidhujag referenced this in commit 53564628e1 on Jan 26, 2023
  59. fanquake force-pushed on Feb 1, 2023
  60. fanquake commented at 3:28 pm on February 1, 2023: member
    Dropped some changes out of here, and rebased on top of #27013.
  61. in src/script/interpreter.cpp:1495 in 4242db9259 outdated
    1493         // An upgradable public key version (with a size not 32-byte) may
    1494         // request a different key_version with a new sigversion.
    1495         key_version = 0;
    1496         break;
    1497-    default:
    1498-        assert(false);
    


    maflcko commented at 9:41 am on February 2, 2023:
    looks like you are still changing the code instead of suppressing the incorrect warning?

    fanquake commented at 10:17 am on February 2, 2023:
    Dropped all code changes from here for now, to look at the current state of things.
  62. fanquake force-pushed on Feb 2, 2023
  63. hebasto commented at 1:19 pm on February 2, 2023: member
    #26688 + #26504 could help with Windows cross build.
  64. fanquake force-pushed on Feb 28, 2023
  65. fanquake force-pushed on Mar 17, 2023
  66. fanquake force-pushed on Mar 31, 2023
  67. fanquake commented at 1:49 pm on April 3, 2023: member
    Rebased now that #27381 is resolved.
  68. fanquake force-pushed on Apr 3, 2023
  69. fanquake force-pushed on Apr 20, 2023
  70. DrahtBot added the label CI failed on Apr 20, 2023
  71. fanquake force-pushed on May 2, 2023
  72. fanquake force-pushed on May 17, 2023
  73. fanquake force-pushed on Jun 2, 2023
  74. fanquake force-pushed on Jun 15, 2023
  75. fanquake force-pushed on Jun 15, 2023
  76. maflcko commented at 4:24 pm on June 15, 2023: member
    Can you bump the g++-mingw-w64-x86-64-posix task to debian:bookworm to see what happens?
  77. fanquake force-pushed on Jun 16, 2023
  78. fanquake commented at 8:19 am on June 16, 2023: member

    Can you bump the g++-mingw-w64-x86-64-posix task to debian:bookworm to see what happens?

    Added a commit. Also rebased, and fixed up the commit messages after #27872.

  79. maflcko commented at 8:50 am on June 16, 2023: member
    The error is still there, which means you’ll have to set Wno for -Werror=maybe-uninitialized for g++-mingw-w64-x86-64-posix?
  80. fanquake force-pushed on Jun 17, 2023
  81. maflcko commented at 7:38 am on June 19, 2023: member

    Looks like there are others now:

     0leveldb/db/db_impl.cc:740:28: error: too many arguments for format [-Werror=format-extra-args]
     1  740 |     Log(options_.info_log, "Moved #%lld to level-%d %lld bytes %s: %s\n",
     2      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     3leveldb/db/db_impl.cc: In member function ‘leveldb::Status leveldb::DBImpl::FinishCompactionOutputFile(leveldb::DBImpl::CompactionState*, leveldb::Iterator*)’:
     4leveldb/db/db_impl.cc:861:50: error: unknown conversion type character ‘l’ in format [-Werror=format=]
     5  861 |       Log(options_.info_log, "Generated table #%llu@%d: %lld keys, %lld bytes",
     6      |                                                  ^
     7leveldb/db/db_impl.cc:861:54: error: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘uint64_t’ {aka ‘long long unsigned int’} [-Werror=format=]
     8  861 |       Log(options_.info_log, "Generated table #%llu@%d: %lld keys, %lld bytes",
     9      |                                                     ~^
    10      |                                                      |
    11      |                                                      int
    12      |                                                     %I64d
    13  862 |           (unsigned long long)output_number, compact->compaction->level(),
    14      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
    15      |           |
    16      |           uint64_t {aka long long unsigned int}
    17leveldb/db/db_impl.cc:861:59: error: unknown conversion type character ‘l’ in format [-Werror=format=]
    18  861 |       Log(options_.info_log, "Generated table #%llu@%d: %lld keys, %lld bytes",
    19      |                                                           ^
    20leveldb/db/db_impl.cc:861:70: error: unknown conversion type character ‘l’ in format [-Werror=format=]
    21  861 |       Log(options_.info_log, "Generated table #%llu@%d: %lld keys, %lld bytes",
    22      |                                                                      ^
    23leveldb/db/db_impl.cc:861:30: error: too many arguments for format [-Werror=format-extra-args]
    24  861 |       Log(options_.info_log, "Generated table #%llu@%d: %lld keys, %lld bytes",
    25      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    26leveldb/db/db_impl.cc: In member function ‘leveldb::Status leveldb::DBImpl::InstallCompactionResults(leveldb::DBImpl::CompactionState*)’:
    27leveldb/db/db_impl.cc:872:62: error: unknown conversion type character ‘l’ in format [-Werror=format=]
    28  872 |   Log(options_.info_log, "Compacted %d@%d + %d@%d files => %lld bytes",
    29      |                                                              ^
    30leveldb/db/db_impl.cc:872:26: error: too many arguments for format [-Werror=format-extra-args]
    31  872 |   Log(options_.info_log, "Compacted %d@%d + %d@%d files => %lld bytes",
    32      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    33cc1plus: all warnings being treated as errors
    

    Those will be fixed in debian:bookworm, though there are others popping up as well …

  82. fanquake force-pushed on Jun 28, 2023
  83. fanquake commented at 11:14 am on June 28, 2023: member

    though there are others popping up as well …

    I think at least for the (windows) ones coming out of leveldb, we could filter them out, as we do with other warnings there.

  84. DrahtBot added the label Needs rebase on Jul 27, 2023
  85. fanquake force-pushed on Jul 27, 2023
  86. DrahtBot removed the label Needs rebase on Jul 27, 2023
  87. glozow referenced this in commit 7c66a4b610 on Aug 3, 2023
  88. fanquake force-pushed on Aug 3, 2023
  89. fanquake force-pushed on Aug 7, 2023
  90. fanquake force-pushed on Aug 23, 2023
  91. maflcko commented at 8:19 am on August 24, 2023: member
    Why not disable this for the windows build temporarily? #25972 (comment)
  92. fanquake commented at 3:37 pm on August 30, 2023: member

    Why not disable this for the windows build temporarily? #25972 (comment)

    I’m going to put this ontop of the GCC 12 commits and work from there, given that’s the direction we’re going.

  93. fanquake force-pushed on Aug 30, 2023
  94. in ci/test/00_setup_env_win64.sh:1 in 3043536a86


    maflcko commented at 3:49 pm on August 30, 2023:
    Can also remove the changes from 08eb5f1b67e2af009549717eb5c66b7d7905731f now, no?

    fanquake commented at 4:19 pm on August 30, 2023:
    I don’t think so, as Bookworm is still shipping 10.0.0, https://packages.debian.org/bookworm/mingw-w64?
  95. maflcko commented at 7:30 am on August 31, 2023: member

    Still fails:

     0/usr/bin/ccache x86_64-w64-mingw32-g++-posix -std=c++17 -DHAVE_CONFIG_H -I. -I../src/config  -fmacro-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-w64-mingw32=. -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -DHAVE_BUILD_INFO -DSECP256K1_STATIC -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0601 -D_WIN32_IE=0x0501 -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_FILE_OFFSET_BITS=64 -DPROVIDE_FUZZ_MAIN_FUNCTION -I. -I./minisketch/include -I./secp256k1/include -I./univalue/include -I./leveldb/include -isystem /ci_container_base/depends/x86_64-w64-mingw32/include -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DMINIUPNP_STATICLIB -DSTATICLIB -DNATPMP_STATICLIB -isystem /ci_container_base/depends/x86_64-w64-mingw32/include   -I/ci_container_base/depends/x86_64-w64-mingw32/include/  -fdebug-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-w64-mingw32=. -fstack-reuse=none -Wstack-protector -fstack-protector-all -fcf-protection=full -Wall -Wextra -Wformat -Wformat-security -Wvla -Wredundant-decls -Wdate-time -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Woverloaded-virtual -Wsuggest-override -Wimplicit-fallthrough -Wno-unused-parameter -Werror    -fno-extended-identifiers -fvisibility=hidden -fPIE -pipe -std=c++17 -O2 -Wno-return-type -c -o libbitcoin_node_a-torcontrol.o `test -f 'torcontrol.cpp' || echo './'`torcontrol.cpp
     1torcontrol.cpp: In static member function static void TorControlConnection::readcb(bufferevent*, void*):
     2torcontrol.cpp:94:28: error: result may be used uninitialized [-Werror=maybe-uninitialized]
     3   94 |         self->message.code = ToIntegral<int>(s.substr(0, 3)).value_or(0);
     4      |         ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     5In file included from ./netaddress.h:18,
     6                 from ./torcontrol.h:11,
     7                 from torcontrol.cpp:6:
     8./util/strencodings.h:184:7: note: result was declared here
     9  184 |     T result;
    10      |       ^~~~~~
    11cc1plus: all warnings being treated as errors
    12make[2]: *** [Makefile:11058: libbitcoin_node_a-torcontrol.o] Error 1
    13make[2]: Leaving directory '/ci_container_base/ci/scratch/build/bitcoin-x86_64-w64-mingw32/src'
    14make[1]: *** [Makefile:20080: all-recursive] Error 1
    15make[1]: Leaving directory '/ci_container_base/ci/scratch/build/bitcoin-x86_64-w64-mingw32/src'
    16make: *** [Makefile:815: all-recursive] Error 1
    17
    18Exit status: 2������������������������
    
  96. fanquake force-pushed on Sep 7, 2023
  97. fanquake commented at 1:23 pm on September 7, 2023: member

    still fails

    That one can be worked around, see fixup commit, but looks like we just end up back where we started:

     0script/interpreter.cpp: In function ‘bool SignatureHashSchnorr(uint256&, ScriptExecutionData&, const T&, uint32_t, uint8_t, SigVersion, const PrecomputedTransactionData&, MissingDataBehavior) [with T = CMutableTransaction]’:
     1script/interpreter.cpp:1530:42: error: ‘ext_flag’ may be used uninitialized [-Werror=maybe-uninitialized]
     2 1530 |     const uint8_t spend_type = (ext_flag << 1) + (have_annex ? 1 : 0); // The low bit indicates whether an annex is present.
     3      |                                ~~~~~~~~~~^~~~~
     4script/interpreter.cpp:1480:13: note: ‘ext_flag’ was declared here
     5 1480 |     uint8_t ext_flag, key_version;
     6      |             ^~~~~~~~
     7script/interpreter.cpp: In function ‘bool SignatureHashSchnorr(uint256&, ScriptExecutionData&, const T&, uint32_t, uint8_t, SigVersion, const PrecomputedTransactionData&, MissingDataBehavior) [with T = CTransaction]’:
     8script/interpreter.cpp:1530:42: error: ‘ext_flag’ may be used uninitialized [-Werror=maybe-uninitialized]
     9 1530 |     const uint8_t spend_type = (ext_flag << 1) + (have_annex ? 1 : 0); // The low bit indicates whether an annex is present.
    10      |                                ~~~~~~~~~~^~~~~
    11script/interpreter.cpp:1480:13: note: ‘ext_flag’ was declared here
    12 1480 |     uint8_t ext_flag, key_version;
    13      |             ^~~~~~~~
    14cc1plus: all warnings being treated as errors
    

    From what I can tell GCC for Windows is just broken, untill GCC 13 (i.e building locally with these changes).

  98. maflcko commented at 4:04 pm on September 10, 2023: member
    Seems ok to disable this for windows for now, if the other tasks are useful? See #25972 (comment) and #28230 (review) etc …
  99. hebasto commented at 2:25 pm on September 11, 2023: member

    From what I can tell GCC for Windows is just broken, untill GCC 13 (i.e building locally with these changes).

    On Ubuntu Mantic, the build produces the only warning:

    0$ x86_64-w64-mingw32-gcc --version | head -1
    1x86_64-w64-mingw32-gcc (GCC) 12-posix
    2$ make -C depends  HOST=x86_64-w64-mingw32
    3$ ./configure CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site
    4$ make > /dev/null
    5qt/winshutdownmonitor.cpp: In static member function static void WinShutdownMonitor::registerShutdownBlockReason(const QString&, HWND__* const&):
    6qt/winshutdownmonitor.cpp:46:42: warning: cast between incompatible function types from FARPROC {aka long long int (*)()} to PSHUTDOWNBRCREATE {aka int (*)(HWND__*, const wchar_t*)} [-Wcast-function-type]
    7   46 |     PSHUTDOWNBRCREATE shutdownBRCreate = (PSHUTDOWNBRCREATE)GetProcAddress(GetModuleHandleA("User32.dll"), "ShutdownBlockReasonCreate");
    8      |                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    

    UPD. Might be fixed with the intermediate cast to void*.

  100. fanquake commented at 2:52 pm on September 11, 2023: member

    On Ubuntu Mantic, the build produces the only warning:

    Can you explain why they are producing different output, given they are the same compiler? i.e mantic vs bookworm used here. https://packages.ubuntu.com/mantic/g++-mingw-w64 https://packages.debian.org/bookworm/g++-mingw-w64

  101. hebasto commented at 3:12 pm on September 11, 2023: member

    On Ubuntu Mantic, the build produces the only warning:

    Can you explain why they are producing different output, given they are the same compiler? i.e mantic vs bookworm used here. packages.ubuntu.com/mantic/g++-mingw-w64 packages.debian.org/bookworm/g++-mingw-w64

    I’m not sure, but might be related to the change you mentioned in #28092:

    ?

  102. hebasto referenced this in commit befb42f146 on Sep 11, 2023
  103. fanquake referenced this in commit ea864a9c6f on Sep 12, 2023
  104. fanquake referenced this in commit 0f1124c4ac on Sep 12, 2023
  105. fanquake force-pushed on Sep 12, 2023
  106. DrahtBot removed the label CI failed on Sep 12, 2023
  107. fanquake referenced this in commit cf8e68280f on Sep 20, 2023
  108. fanquake force-pushed on Sep 20, 2023
  109. in src/torcontrol.cpp:94 in 134bcef93f outdated
    90@@ -91,7 +91,7 @@ void TorControlConnection::readcb(struct bufferevent *bev, void *ctx)
    91         if (s.size() < 4) // Short line
    92             continue;
    93         // <status>(-|+| )<data><CRLF>
    94-        self->message.code = ToIntegral<int>(s.substr(0, 3)).value_or(0);
    95+        self->message.code = ToIntegral<size_t>(s.substr(0, 3)).value_or(0);
    


    maflcko commented at 5:26 pm on September 20, 2023:

    Not sure

    Is this even still needed?


    fanquake commented at 2:10 pm on September 21, 2023:

    The changes here will fail without it:

     0torcontrol.cpp: In static member function ‘static void TorControlConnection::readcb(bufferevent*, void*)’:
     1torcontrol.cpp:94:28: error: ‘result’ may be used uninitialized [-Werror=maybe-uninitialized]
     2   94 |         self->message.code = ToIntegral<int>(s.substr(0, 3)).value_or(0);
     3      |         ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     4In file included from ./netaddress.h:18,
     5                 from ./torcontrol.h:11,
     6                 from torcontrol.cpp:6:
     7./util/strencodings.h:184:7: note: ‘result’ was declared here
     8  184 |     T result;
     9      |       ^~~~~~
    10cc1plus: all warnings being treated as errors
    11make[2]: *** [Makefile:11088: libbitcoin_node_a-torcontrol.o] Error 1
    12make[2]: Leaving directory '/ci_container_base/ci/scratch/build/bitcoin-x86_64-w64-mingw32/src'
    13make[1]: *** [Makefile:20110: all-recursive] Error 1
    14make[1]: Leaving directory '/ci_container_base/ci/scratch/build/bitcoin-x86_64-w64-mingw32/src'
    15make: *** [Makefile:814: all-recursive] Error 1
    

    maflcko commented at 2:15 pm on September 21, 2023:

    Seems like your change may be fine here, but I think generally it will cause issues if this pull is going to be merged.

    Imagine another place that needs error checking for exactly int. What are they supposed to do?

    Seems better to include the workaround here, than to transform it into a blocker for another patch.


    fanquake commented at 9:32 am on September 26, 2023:
    Switched to -Wno-error=maybe-uninitialized
  110. hebasto referenced this in commit 2e1d4bf444 on Sep 22, 2023
  111. Frank-GER referenced this in commit 5ca8948475 on Sep 25, 2023
  112. fanquake force-pushed on Sep 26, 2023
  113. fanquake commented at 9:33 am on September 26, 2023: member
    Rebased for https://github.com/bitcoin-core/gui/pull/755, and switched to using -Wno-error=maybe-uninitialized for Windows builds.
  114. maflcko approved
  115. maflcko commented at 9:35 am on September 26, 2023: member
    lgtm
  116. fanquake marked this as ready for review on Sep 26, 2023
  117. sidhujag referenced this in commit 109e98bd01 on Sep 26, 2023
  118. in ci/test/00_setup_env_win64.sh:10 in ef94d73804 outdated
     6@@ -7,13 +7,10 @@
     7 export LC_ALL=C.UTF-8
     8 
     9 export CONTAINER_NAME=ci_win64
    10-export CI_IMAGE_NAME_TAG="docker.io/amd64/ubuntu:22.04"  # Check that Jammy can cross-compile to win64
    11+export CI_IMAGE_NAME_TAG="docker.io/amd64/ubuntu:23.10"  # Check that https://packages.ubuntu.com/mantic/g++-mingw-w64-x86-64-posix (version 12.2, similar to guix)  can cross-compile
    


    maflcko commented at 12:30 pm on September 29, 2023:

    Just for the order in which to merge things, I’d prefer to keep this in sync with guix, so merging “https://github.com/bitcoin/bitcoin/pull/27897 (guix: use GCC 12.3.0 to build releases by fanquake)” first would be better.

    Also, it would be good to stay on some LTS release to avoid having to touch CI every few months.

    Maybe use the 24.04 tag, once it is available in a month or two?


    fanquake commented at 10:41 am on October 2, 2023:
    Yea. Rebased this back on #27897, and moved this to draft for now.
  119. fanquake force-pushed on Oct 2, 2023
  120. fanquake marked this as a draft on Oct 2, 2023
  121. Retropex referenced this in commit 32fc68d9b1 on Oct 4, 2023
  122. fanquake force-pushed on Oct 4, 2023
  123. fanquake force-pushed on Oct 13, 2023
  124. fanquake force-pushed on Oct 30, 2023
  125. fanquake force-pushed on Nov 3, 2023
  126. fanquake force-pushed on Nov 8, 2023
  127. DrahtBot added the label Needs rebase on Nov 13, 2023
  128. fanquake force-pushed on Nov 13, 2023
  129. DrahtBot removed the label Needs rebase on Nov 13, 2023
  130. fanquake force-pushed on Nov 16, 2023
  131. fanquake force-pushed on Nov 22, 2023
  132. fanquake force-pushed on Nov 28, 2023
  133. div72 referenced this in commit 5c57147426 on Dec 3, 2023
  134. fanquake force-pushed on Dec 7, 2023
  135. DrahtBot added the label CI failed on Dec 7, 2023
  136. fanquake force-pushed on Dec 8, 2023
  137. maflcko commented at 2:46 pm on December 8, 2023: member
    0./prevector.h:159:9: error: unknown pragma ignored [clang-diagnostic-unknown-pragmas]
    1  159 | #pragma pack(pop)
    2      |         ^
    3clang-tidy-17 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/net_processing.cpp
    4./prevector.h:151:9: error: unknown pragma ignored [clang-diagnostic-unknown-pragmas]
    5  151 | #pragma pack(push, 1)
    6      |         ^
    
  138. maflcko commented at 3:39 pm on December 8, 2023: member

    This one’s fixed in clang-14:

    0libtool: link: /usr/bin/ccache clang++-13 -stdlib=libc++ -std=c++20 -fdebug-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu=. -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wthread-safety -Wloop-analysis -Wredundant-decls -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Woverloaded-virtual -Wsuggest-override -Wunreachable-code-loop-increment -Wimplicit-fallthrough -Wdocumentation -Wno-unused-parameter -Wno-self-assign -Werror -fvisibility=hidden -fPIE -pipe -std=c++20 -O2 -Wl,--exclude-libs -Wl,ALL -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,-z -Wl,separate-code -pie -pthread -o qt/bitcoin-qt qt/bitcoin_qt-main.o init/qt_bitcoin_qt-bitcoin-qt.o  -lpthread -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib qt/libbitcoinqt.a libbitcoin_node.a libbitcoin_zmq.a -lzmq -lpthread -lrt libbitcoin_cli.a libbitcoin_common.a libbitcoin_util.a libbitcoin_consensus.a crypto/.libs/libbitcoin_crypto_base.a crypto/.libs/libbitcoin_crypto_sse41.a crypto/.libs/libbitcoin_crypto_avx2.a crypto/.libs/libbitcoin_crypto_x86_shani.a ./.libs/libunivalue.a leveldb/.libs/libleveldb.a crc32c/.libs/libcrc32c.a crc32c/.libs/libcrc32c_sse42.a leveldb/.libs/libmemenv.a -lqxcb -lqminimal -L//ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5XkbCommonSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lxkbcommon -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5XcbQpa /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5ServiceSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5ThemeSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5FontDatabaseSupport.a -lfontconfig -lfreetype /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5XkbCommonSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5EdidSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -lpthread -lxcb-icccm -lxcb-image -lxcb-shm -lxcb-keysyms -lxcb-randr -lxcb-render-util -lxcb-render -lxcb-shape -lxcb-sync -lxcb-xfixes -lxcb-xinerama -lxcb-xkb -lxcb -lxkbcommon-x11 -lxkbcommon -ldl -lQt5ServiceSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5DBus /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5ThemeSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5FontDatabaseSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lfontconfig -lfreetype -lQt5EdidSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5XkbCommonSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lxkbcommon -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5ServiceSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5DBus /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5InputSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DeviceDiscoverySupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5DeviceDiscoverySupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5ThemeSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5FontDatabaseSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lfontconfig -lfreetype -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5FbSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5EventDispatcherSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5EdidSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5DeviceDiscoverySupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5AccessibilitySupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Network /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Widgets /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/plugins/platforms -lQt5DBus /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lqrencode -lpthread -lminiupnpc -lnatpmp secp256k1/.libs/libsecp256k1.a -levent_pthreads -levent -levent -pthread
    1/bin/bash ../libtool  --tag=CXX --preserve-dup-deps  --mode=link /usr/bin/ccache clang++-13 -stdlib=libc++ -std=c++20 -fdebug-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu=. -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wthread-safety -Wloop-analysis -Wredundant-decls -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Woverloaded-virtual -Wsuggest-override -Wunreachable-code-loop-increment -Wimplicit-fallthrough -Wdocumentation -Wno-unused-parameter -Wno-self-assign -Werror    -fvisibility=hidden -fPIE -pipe -std=c++20 -O2  -Wl,--exclude-libs,ALL  -Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code -pie       -pthread -lpthread -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib  -o qt/test/test_bitcoin-qt init/qt_test_test_bitcoin_qt-bitcoin-qt.o qt/test/test_bitcoin_qt-apptests.o qt/test/test_bitcoin_qt-optiontests.o qt/test/test_bitcoin_qt-rpcnestedtests.o qt/test/test_bitcoin_qt-test_main.o qt/test/test_bitcoin_qt-uritests.o qt/test/test_bitcoin_qt-util.o   qt/test/test_bitcoin_qt-moc_apptests.o qt/test/test_bitcoin_qt-moc_optiontests.o qt/test/test_bitcoin_qt-moc_rpcnestedtests.o qt/test/test_bitcoin_qt-moc_uritests.o  qt/libbitcoinqt.a libbitcoin_node.a libtest_util.a  libbitcoin_zmq.a -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lzmq -lpthread -lrt libbitcoin_cli.a libbitcoin_common.a libbitcoin_util.a libbitcoin_consensus.a crypto/libbitcoin_crypto_base.la crypto/libbitcoin_crypto_sse41.la crypto/libbitcoin_crypto_avx2.la crypto/libbitcoin_crypto_x86_shani.la  libunivalue.la leveldb/libleveldb.la crc32c/libcrc32c.la crc32c/libcrc32c_sse42.la  leveldb/libmemenv.la -lqxcb -lqminimal -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -L//ci_container_base/depends/x86_64-pc-linux-gnu/lib -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5XkbCommonSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lxkbcommon -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -L//ci_container_base/depends/x86_64-pc-linux-gnu/lib -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -L//ci_container_base/depends/x86_64-pc-linux-gnu/lib -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -L//ci_container_base/depends/x86_64-pc-linux-gnu/lib -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5XcbQpa /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5ServiceSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5ThemeSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5FontDatabaseSupport.a -lfontconfig -lfreetype /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5XkbCommonSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5EdidSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -lpthread -lxcb-icccm -lxcb-image -lxcb-shm -lxcb-keysyms -lxcb-randr -lxcb-render-util -lxcb-render -lxcb-shape -lxcb-sync -lxcb-xfixes -lxcb-xinerama -lxcb-xkb -lxcb -lxkbcommon-x11 -lxkbcommon -ldl -lQt5ServiceSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5DBus /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5ThemeSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5FontDatabaseSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lfontconfig -lfreetype -lQt5EdidSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5XkbCommonSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lxkbcommon -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5ServiceSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5DBus /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5InputSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DeviceDiscoverySupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5DeviceDiscoverySupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5ThemeSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -L//ci_container_base/depends/x86_64-pc-linux-gnu/lib -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5FontDatabaseSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lfontconfig -lfreetype -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5FbSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5EventDispatcherSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5EdidSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5DeviceDiscoverySupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5AccessibilitySupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5Network /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5Widgets /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl  -L/ci_container_base/depends/x86_64-pc-linux-gnu/plugins/platforms -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5DBus /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5Test /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -lqrencode -lpthread  -lminiupnpc -lnatpmp secp256k1/libsecp256k1.la -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -levent_pthreads -levent -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib -levent  
    2libtool: link: /usr/bin/ccache clang++-13 -stdlib=libc++ -std=c++20 -fdebug-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu=. -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wthread-safety -Wloop-analysis -Wredundant-decls -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Woverloaded-virtual -Wsuggest-override -Wunreachable-code-loop-increment -Wimplicit-fallthrough -Wdocumentation -Wno-unused-parameter -Wno-self-assign -Werror -fvisibility=hidden -fPIE -pipe -std=c++20 -O2 -Wl,--exclude-libs -Wl,ALL -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,-z -Wl,separate-code -pie -pthread -o qt/test/test_bitcoin-qt init/qt_test_test_bitcoin_qt-bitcoin-qt.o qt/test/test_bitcoin_qt-apptests.o qt/test/test_bitcoin_qt-optiontests.o qt/test/test_bitcoin_qt-rpcnestedtests.o qt/test/test_bitcoin_qt-test_main.o qt/test/test_bitcoin_qt-uritests.o qt/test/test_bitcoin_qt-util.o qt/test/test_bitcoin_qt-moc_apptests.o qt/test/test_bitcoin_qt-moc_optiontests.o qt/test/test_bitcoin_qt-moc_rpcnestedtests.o qt/test/test_bitcoin_qt-moc_uritests.o  -lpthread -L/ci_container_base/depends/x86_64-pc-linux-gnu/lib qt/libbitcoinqt.a libbitcoin_node.a libtest_util.a libbitcoin_zmq.a -lzmq -lpthread -lrt libbitcoin_cli.a libbitcoin_common.a libbitcoin_util.a libbitcoin_consensus.a crypto/.libs/libbitcoin_crypto_base.a crypto/.libs/libbitcoin_crypto_sse41.a crypto/.libs/libbitcoin_crypto_avx2.a crypto/.libs/libbitcoin_crypto_x86_shani.a ./.libs/libunivalue.a leveldb/.libs/libleveldb.a crc32c/.libs/libcrc32c.a crc32c/.libs/libcrc32c_sse42.a leveldb/.libs/libmemenv.a -lqxcb -lqminimal -L//ci_container_base/depends/x86_64-pc-linux-gnu/lib -lQt5XkbCommonSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lxkbcommon -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5XcbQpa /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5ServiceSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5ThemeSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5FontDatabaseSupport.a -lfontconfig -lfreetype /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5XkbCommonSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5EdidSupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -lpthread -lxcb-icccm -lxcb-image -lxcb-shm -lxcb-keysyms -lxcb-randr -lxcb-render-util -lxcb-render -lxcb-shape -lxcb-sync -lxcb-xfixes -lxcb-xinerama -lxcb-xkb -lxcb -lxkbcommon-x11 -lxkbcommon -ldl -lQt5ServiceSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5DBus /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5ThemeSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5FontDatabaseSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lfontconfig -lfreetype -lQt5EdidSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5XkbCommonSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lxkbcommon -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5ServiceSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5DBus /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5InputSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DeviceDiscoverySupport.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5DeviceDiscoverySupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5ThemeSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5DBus.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5FontDatabaseSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lfontconfig -lfreetype -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5FbSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5EventDispatcherSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5EdidSupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5DeviceDiscoverySupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5AccessibilitySupport /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Network /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Widgets /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Gui.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Gui /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtlibpng.a /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtharfbuzz.a -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -L/ci_container_base/depends/x86_64-pc-linux-gnu/plugins/platforms -lQt5DBus /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lQt5Test /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libQt5Core.a -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lpthread -lQt5Core -lpthread -lm /ci_container_base/depends/x86_64-pc-linux-gnu/lib/libqtpcre2.a -ldl -lqrencode -lpthread -lminiupnpc -lnatpmp secp256k1/.libs/libsecp256k1.a -levent_pthreads -levent -levent -pthread
    3/usr/bin/ccache clang++-13 -stdlib=libc++ -std=c++20 -DHAVE_CONFIG_H -I. -I../src/config  -fmacro-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu=. -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -DHAVE_BUILD_INFO -DPROVIDE_FUZZ_MAIN_FUNCTION -I. -I./minisketch/include -I./secp256k1/include -I./univalue/include -isystem /ci_container_base/depends/x86_64-pc-linux-gnu/include -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DBOOST_NO_CXX98_FUNCTION_BASE -I/ci_container_base/depends/x86_64-pc-linux-gnu/include/  -fdebug-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu=. -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wthread-safety -Wloop-analysis -Wredundant-decls -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Woverloaded-virtual -Wsuggest-override -Wunreachable-code-loop-increment -Wimplicit-fallthrough -Wdocumentation -Wno-unused-parameter -Wno-self-assign -Werror    -fvisibility=hidden -fPIE -pipe -std=c++20 -O2  -c -o test/fuzz/fuzz-addition_overflow.o `test -f 'test/fuzz/addition_overflow.cpp' || echo './'`test/fuzz/addition_overflow.cpp
    4test/fuzz/addition_overflow.cpp:53:1: error: must specify at least one argument for '...' parameter of variadic macro [-Werror,-Wgnu-zero-variadic-macro-arguments]
    5FUZZ_TARGET(addition_overflow)
    
  139. fanquake force-pushed on Dec 11, 2023
  140. DrahtBot added the label Needs rebase on Dec 13, 2023
  141. fanquake force-pushed on Dec 22, 2023
  142. DrahtBot removed the label Needs rebase on Dec 22, 2023
  143. fanquake force-pushed on Jan 15, 2024
  144. fanquake force-pushed on Feb 20, 2024
  145. fanquake force-pushed on Feb 28, 2024
  146. maflcko commented at 8:30 am on February 29, 2024: member
    Looks like the tidy task fails?
  147. PastaPastaPasta referenced this in commit cc8ea6484b on Feb 29, 2024
  148. PastaPastaPasta referenced this in commit 49a919f18a on Feb 29, 2024
  149. PastaPastaPasta referenced this in commit b74e2b3a0e on Feb 29, 2024
  150. PastaPastaPasta referenced this in commit 023eb917a8 on Feb 29, 2024
  151. PastaPastaPasta referenced this in commit d31fe6c750 on Mar 3, 2024
  152. PastaPastaPasta referenced this in commit 3b7f29ff6e on Mar 4, 2024
  153. PastaPastaPasta referenced this in commit f9b526bd31 on Mar 5, 2024
  154. fanquake force-pushed on Mar 14, 2024
  155. in ci/test/00_setup_env_win64.sh:10 in d72888c4d5 outdated
     6@@ -7,13 +7,10 @@
     7 export LC_ALL=C.UTF-8
     8 
     9 export CONTAINER_NAME=ci_win64
    10-export CI_IMAGE_NAME_TAG="docker.io/amd64/debian:bookworm"  # Check that https://packages.debian.org/bookworm/g++-mingw-w64-x86-64-posix (version 12.2, similar to guix) can cross-compile
    11+export CI_IMAGE_NAME_TAG="docker.io/amd64/ubuntu:23.10"  # Check that https://packages.ubuntu.com/mantic/g++-mingw-w64-x86-64-posix (version 12.3, similar to guix)  can cross-compile
    


    maflcko commented at 10:51 am on March 14, 2024:
    Why is this needed?

    fanquake commented at 10:55 am on March 14, 2024:
    It’s needed if we want mingw-w64 11.x (which fixes the return type issues). Bookworm only ships 10. It could be dropped if we want to retain the workarounds. Mantic: https://packages.ubuntu.com/mantic/mingw-w64-x86-64-dev Bookworm: https://packages.debian.org/bookworm/mingw-w64-x86-64-dev

    fanquake commented at 10:58 am on March 14, 2024:
    Will add it’s also a better match to Guix, as there we are using GCC 12.3.0 & 11.x headers, and that is what would be used on Mantic, vs GCC 12.2.0 and 10.x on Debian.

    maflcko commented at 11:01 am on March 14, 2024:
    mantic will be EOL in 3 months, so it is not an option. But seems fine to document this

    fanquake commented at 11:06 am on March 14, 2024:

    will be EOL in 3 months, so it is not an option.

    Is there a particular reason it can’t be used in the interim, so we have a better matching CI and less workarounds to maintain? I assume we are going to switch to Noble when it releases in April, so Mantic going EOL in July isn’t an issue?


    maflcko commented at 11:10 am on March 14, 2024:
    https://packages.ubuntu.com/noble/g++-mingw-w64-x86-64-posix is 13.2, but I am not sure which mismatch is least bad.

    fanquake commented at 3:39 pm on March 14, 2024:
    Going to drop this for now, we can retain the mingw-w64 header workaround, and the smaller mismatch.
  156. fanquake force-pushed on Mar 14, 2024
  157. fanquake commented at 4:01 pm on March 14, 2024: member
    Dropped the Mantic bump, rebased on top of #29165, which should fix the failing multiprocess CI (Clang bump to 15), and added a commit to fix the tidy job (works around a bug in llvm 17, fixed in 18).
  158. fanquake commented at 11:05 am on March 15, 2024: member

    More Windows issues:

     0/bin/bash ../libtool  --tag=CXX --preserve-dup-deps  --mode=compile /usr/bin/ccache x86_64-w64-mingw32-g++-posix -std=c++20 -DHAVE_CONFIG_H -I. -I../src/config  -fmacro-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-w64-mingw32=. -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -DHAVE_BUILD_INFO -DSECP256K1_STATIC -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0601 -D_WIN32_IE=0x0501 -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_FILE_OFFSET_BITS=64 -DPROVIDE_FUZZ_MAIN_FUNCTION -I./leveldb -I./crc32c/include -D__STDC_LIMIT_MACROS -DHAVE_SNAPPY=0 -DHAVE_CRC32C=1 -DHAVE_FDATASYNC=0 -DHAVE_FULLFSYNC=0 -DHAVE_O_CLOEXEC=0 -DFALLTHROUGH_INTENDED=[[fallthrough]]  -DLEVELDB_IS_BIG_ENDIAN=0 -DLEVELDB_PLATFORM_WINDOWS -D_UNICODE -DUNICODE -D__USE_MINGW_ANSI_STDIO=1  -I./leveldb/include -I/ci_container_base/depends/x86_64-w64-mingw32/include/  -g -O2 -fno-extended-identifiers -fstack-reuse=none -Wa,-muse-unaligned-vector-move -fvisibility=hidden -fdebug-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-w64-mingw32=. -Wstack-protector -fstack-protector-all -fcf-protection=full -Wall -Wextra -Wformat -Wformat-security -Wvla -Wredundant-decls -Wdate-time -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Woverloaded-virtual -Wimplicit-fallthrough -Wunreachable-code -Wno-unused-parameter -Werror -fPIE -static -pipe -std=c++20 -O2 -Wno-return-type -Wno-error=maybe-uninitialized -c -o leveldb/db/libleveldb_la-memtable.lo `test -f 'leveldb/db/memtable.cc' || echo './'`leveldb/db/memtable.cc
     1libtool: compile:  /usr/bin/ccache x86_64-w64-mingw32-g++-posix -std=c++20 -DHAVE_CONFIG_H -I. -I../src/config -fmacro-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-w64-mingw32=. -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -DHAVE_BUILD_INFO -DSECP256K1_STATIC -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0601 -D_WIN32_IE=0x0501 -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_FILE_OFFSET_BITS=64 -DPROVIDE_FUZZ_MAIN_FUNCTION -I./leveldb -I./crc32c/include -D__STDC_LIMIT_MACROS -DHAVE_SNAPPY=0 -DHAVE_CRC32C=1 -DHAVE_FDATASYNC=0 -DHAVE_FULLFSYNC=0 -DHAVE_O_CLOEXEC=0 "-DFALLTHROUGH_INTENDED=[[fallthrough]]" -DLEVELDB_IS_BIG_ENDIAN=0 -DLEVELDB_PLATFORM_WINDOWS -D_UNICODE -DUNICODE -D__USE_MINGW_ANSI_STDIO=1 -I./leveldb/include -I/ci_container_base/depends/x86_64-w64-mingw32/include/ -g -O2 -fno-extended-identifiers -fstack-reuse=none -Wa,-muse-unaligned-vector-move -fvisibility=hidden -fdebug-prefix-map=/ci_container_base/ci/scratch/build/bitcoin-x86_64-w64-mingw32=. -Wstack-protector -fstack-protector-all -fcf-protection=full -Wall -Wextra -Wformat -Wformat-security -Wvla -Wredundant-decls -Wdate-time -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Woverloaded-virtual -Wimplicit-fallthrough -Wunreachable-code -Wno-unused-parameter -Werror -pipe -std=c++20 -O2 -Wno-return-type -Wno-error=maybe-uninitialized -c leveldb/db/memtable.cc -fPIE -o leveldb/db/libleveldb_la-memtable.o
     2In file included from ./leveldb/db/memtable.h:11,
     3                 from leveldb/db/memtable.cc:5:
     4In member function ‘leveldb::SkipList<Key, Comparator>::Node* leveldb::SkipList<Key, Comparator>::Node::Next(int) [with Key = const char*; Comparator = leveldb::MemTable::KeyComparator]’,
     5    inlined from ‘leveldb::SkipList<Key, Comparator>::Node* leveldb::SkipList<Key, Comparator>::FindLast() const [with Key = const char*; Comparator = leveldb::MemTable::KeyComparator]’ at ./leveldb/db/skiplist.h:310:25,
     6    inlined from ‘void leveldb::SkipList<Key, Comparator>::Iterator::SeekToLast() [with Key = const char*; Comparator = leveldb::MemTable::KeyComparator]’ at ./leveldb/db/skiplist.h:235:26,
     7    inlined from ‘virtual void leveldb::MemTableIterator::SeekToLast()’ at leveldb/db/memtable.cc:58:48:
     8./leveldb/db/skiplist.h:157:25: error: array subscript -1 is below array bounds of ‘std::atomic<leveldb::SkipList<const char*, leveldb::MemTable::KeyComparator>::Node*> [1][-Werror=array-bounds]
     9  157 |     return next_[n].load(std::memory_order_acquire);
    10      |            ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
    11./leveldb/db/skiplist.h: In member function ‘virtual void leveldb::MemTableIterator::SeekToLast()’:
    12./leveldb/db/skiplist.h:178:22: note: while referencing ‘leveldb::SkipList<const char*, leveldb::MemTable::KeyComparator>::Node::next_’
    13  178 |   std::atomic<Node*> next_[1];
    14      |                      ^~~~~
    15In member function ‘leveldb::SkipList<Key, Comparator>::Node* leveldb::SkipList<Key, Comparator>::Node::Next(int) [with Key = const char*; Comparator = leveldb::MemTable::KeyComparator]’,
    16    inlined from ‘leveldb::SkipList<Key, Comparator>::Node* leveldb::SkipList<Key, Comparator>::FindLessThan(const Key&) const [with Key = const char*; Comparator = leveldb::MemTable::KeyComparator]’ at ./leveldb/db/skiplist.h:290:25:
    17./leveldb/db/skiplist.h:157:25: error: array subscript -1 is below array bounds of ‘std::atomic<leveldb::SkipList<const char*, leveldb::MemTable::KeyComparator>::Node*> [1][-Werror=array-bounds]
    18  157 |     return next_[n].load(std::memory_order_acquire);
    19      |            ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
    20./leveldb/db/skiplist.h: In member function ‘leveldb::SkipList<Key, Comparator>::Node* leveldb::SkipList<Key, Comparator>::FindLessThan(const Key&) const [with Key = const char*; Comparator = leveldb::MemTable::KeyComparator]’:
    21./leveldb/db/skiplist.h:178:22: note: while referencing ‘leveldb::SkipList<const char*, leveldb::MemTable::KeyComparator>::Node::next_’
    22  178 |   std::atomic<Node*> next_[1];
    23      |                      ^~~~~
    24cc1plus: all warnings being treated as errors
    25make[2]: *** [Makefile:14808: leveldb/db/libleveldb_la-memtable.lo] Error 1
    
  159. hebasto commented at 11:07 am on March 15, 2024: member

    More Windows issues:

    Should we ignore subtree warnings?

  160. maflcko commented at 11:08 am on March 15, 2024: member

    More Windows issues:

    I guess this one is fixed in g++-13, given that the previous push didn’t fail?

  161. fanquake force-pushed on Mar 18, 2024
  162. fanquake commented at 4:20 pm on March 18, 2024: member

    I guess this one is fixed in g++-13, given that the previous push didn’t fail?

    I guess. So we can either diverge from Guix on Windows, or we can just supress more for Windows.

    Rebased and dropped the tidy workaround now that we’ve got LLVM 18 in that job.

  163. maflcko added the label DrahtBot Guix build requested on Mar 19, 2024
  164. fanquake force-pushed on Mar 19, 2024
  165. DrahtBot removed the label CI failed on Mar 19, 2024
  166. DrahtBot commented at 9:31 pm on March 19, 2024: contributor

    Guix builds (on x86_64)

    File commit 5d045c31a537b417fe840271c6ed961f1d5cb130(master) commit 1407507c80eefa912d33fd318e50d8ad8f861a88(master and this pull)
    SHA256SUMS.part 809aed301ff8b9e5... 5c61dd6e2cde3d05...
    *-aarch64-linux-gnu-debug.tar.gz 0e3b07f59f0f4c99... 58f1c43946baef70...
    *-aarch64-linux-gnu.tar.gz fa7a1044e52953da... a187a32e9f2689c3...
    *-arm-linux-gnueabihf-debug.tar.gz e9f2fe00f9c22706... 3761b5fbc23ca51a...
    *-arm-linux-gnueabihf.tar.gz 0946d8ec6468c624... f9ce4467a42df6f1...
    *-arm64-apple-darwin-unsigned.tar.gz 9b9672f33e488b30... 4ec47ce48ad382d9...
    *-arm64-apple-darwin-unsigned.zip 3bf9c92b1d64ff9c... e944ae5fa91feca4...
    *-arm64-apple-darwin.tar.gz 0c29f8b9a161ce17... 65a3f98d788ea2e3...
    *-powerpc64-linux-gnu-debug.tar.gz a2d56a46dd325fe2... 4a13af0a1a2451ff...
    *-powerpc64-linux-gnu.tar.gz 1db308988c8f7ee5... ab7c210d0468f437...
    *-riscv64-linux-gnu-debug.tar.gz debd4a6b170e3262... 8638d8f6b30891d8...
    *-riscv64-linux-gnu.tar.gz 1d4ac8875fc68c7e... 335e2bebc05437f4...
    *-x86_64-apple-darwin-unsigned.tar.gz 31f94a6ff65a5616... 08265aa4d798080d...
    *-x86_64-apple-darwin-unsigned.zip 4f2ea7f3ce709d41... cc5f5959416b3270...
    *-x86_64-apple-darwin.tar.gz e1a925b74649b303... 3a45bbd694f26784...
    *-x86_64-linux-gnu-debug.tar.gz 935d6a71805a4032... a7a758c94dd41869...
    *-x86_64-linux-gnu.tar.gz 48053325e45ae5e7... f783447e7f40b992...
    *.tar.gz fbfea13acd4d867a... 44991636563ed7df...
    guix_build.log 5b388141802142e6... 4e9858a35c379018...
    guix_build.log.diff 327979af79386938...
  167. DrahtBot removed the label DrahtBot Guix build requested on Mar 19, 2024
  168. fanquake force-pushed on Mar 20, 2024
  169. fanquake force-pushed on Mar 26, 2024
  170. fanquake force-pushed on Apr 1, 2024
  171. DrahtBot added the label CI failed on Apr 1, 2024
  172. janus referenced this in commit 7bfb1b86db on Apr 1, 2024
  173. DrahtBot removed the label CI failed on Apr 5, 2024
  174. fanquake force-pushed on Apr 6, 2024
  175. hebasto commented at 5:48 pm on April 6, 2024: member

    Tested 8d2622f96f7bd25a4ab9c667bd00f374cfcc15a6.

    The CI script ci/test/00_setup_env_native_valgrind.sh fail locally:

     0wallet/walletdb.cpp:1431:15: error: code will never be executed [-Werror,-Wunreachable-code]
     1        error = Untranslated(strprintf("Failed to open database path '%s'. Build does not support Berkeley DB database format.", fs::PathToString(path)));
     2              ^
     3wallet/walletdb.cpp:1426:19: note: silence by adding parentheses to mark code as explicitly dead
     4    if constexpr (true) {
     5                  ^
     6                  /* DISABLES CODE */ ( )
     7wallet/walletdb.cpp:1419:19: error: code will never be executed [-Werror,-Wunreachable-code]
     8            error = Untranslated(strprintf("Failed to open database path '%s'. Build does not support SQLite database format.", fs::PathToString(path)));
     9                  ^
    10wallet/walletdb.cpp:1414:23: note: silence by adding parentheses to mark code as explicitly dead
    11        if constexpr (true) {
    12                      ^
    13                      /* DISABLES CODE */ ( )
    142 errors generated.
    
  176. fanquake commented at 5:58 pm on April 6, 2024: member

    The CI script ci/test/00_setup_env_native_valgrind.sh fail locally:

    That is a bug in Clang 14. Fixed in 15.

  177. fanquake force-pushed on Apr 10, 2024
  178. DrahtBot added the label CI failed on Apr 10, 2024
  179. fanquake force-pushed on Apr 14, 2024
  180. DrahtBot removed the label CI failed on Apr 14, 2024
  181. maflcko added the label DrahtBot Guix build requested on Apr 23, 2024
  182. DrahtBot commented at 4:36 pm on April 23, 2024: contributor

    Guix builds (on x86_64)

    File commit 256e1703197fdddd78bc6d659431cd0fc3b63cde(master) commit cbe6284824efb3a969983798ca56a296c56220df(master and this pull)
    SHA256SUMS.part 00eab72274179fe7... 53841541e653f363...
    *-aarch64-linux-gnu-debug.tar.gz d04f0b4d80086b72... b1780cda426ed692...
    *-aarch64-linux-gnu.tar.gz 8050d94ad880883f... 771e7113167ae745...
    *-arm-linux-gnueabihf-debug.tar.gz dcd4f78c20440791... a49ca6d6944b712c...
    *-arm-linux-gnueabihf.tar.gz 23a05437170e6a51... bd131c309e26e44c...
    *-arm64-apple-darwin-unsigned.tar.gz a97fb69b2952ea1d... 2ec3678064995326...
    *-arm64-apple-darwin-unsigned.zip f014c949acc62072... 69395e89509021a7...
    *-arm64-apple-darwin.tar.gz 11643a1efcfaa96c... 2a61afed3ae488dd...
    *-powerpc64-linux-gnu-debug.tar.gz 56a3bd497ae4fce1... 12d42ac6d8a73ea6...
    *-powerpc64-linux-gnu.tar.gz f1a1192e029126ed... 059d79d0f325aa4a...
    *-riscv64-linux-gnu-debug.tar.gz 4fb2ab51b566b993... 98532b240d63a687...
    *-riscv64-linux-gnu.tar.gz 6f7d4347970bb5fd... 92deab0850c93b7e...
    *-x86_64-apple-darwin-unsigned.tar.gz 0d05f625a846da92... b9769b48cda2a3b9...
    *-x86_64-apple-darwin-unsigned.zip deb829bd88c3c61b... 964e51cb7e0ac7fc...
    *-x86_64-apple-darwin.tar.gz d0fe685e1baef21b... 7c558a729f099dbb...
    *-x86_64-linux-gnu-debug.tar.gz acfc17a0dbdd889a... 4d1e2c29a102e4d5...
    *-x86_64-linux-gnu.tar.gz 32eef3357757b70d... 29f93cd25aaee90f...
    *.tar.gz ece9c1a39a5c57a1... 10ee723dd9d74d84...
    guix_build.log 731e35863dde15b0... f9f1b99e9fe88a54...
    guix_build.log.diff aca367bc7217db60...
  183. DrahtBot removed the label DrahtBot Guix build requested on Apr 23, 2024
  184. fanquake force-pushed on Apr 25, 2024
  185. DrahtBot added the label CI failed on Apr 26, 2024
  186. DrahtBot commented at 1:06 am on April 26, 2024: contributor

    🚧 At least one of the CI tasks failed. Make sure to run all tests locally, according to the documentation.

    Possibly this is due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    Leave a comment here, if you need help tracking down a confusing failure.

    Debug: https://github.com/bitcoin/bitcoin/runs/24257306970

  187. fanquake force-pushed on Apr 26, 2024
  188. DrahtBot removed the label CI failed on Apr 26, 2024
  189. fanquake force-pushed on Apr 29, 2024
  190. theuni commented at 6:22 pm on May 1, 2024: member
    What’s the status of this?
  191. fanquake commented at 1:18 am on May 2, 2024: member
    It’s waiting for the PR linked in the description. Otherwise, should be mergable.
  192. maflcko added the label Needs CMake port on May 2, 2024
  193. fanquake force-pushed on May 2, 2024
  194. fanquake commented at 1:26 pm on May 2, 2024: member
    This will likely fail one last time, but should be good after #30012.
  195. fanquake force-pushed on May 2, 2024
  196. DrahtBot added the label CI failed on May 2, 2024
  197. DrahtBot commented at 2:05 pm on May 2, 2024: contributor

    🚧 At least one of the CI tasks failed. Make sure to run all tests locally, according to the documentation.

    Possibly this is due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    Leave a comment here, if you need help tracking down a confusing failure.

    Debug: https://github.com/bitcoin/bitcoin/runs/24511515887

  198. fanquake marked this as ready for review on May 2, 2024
  199. DrahtBot removed the label CI failed on May 2, 2024
  200. ci: disable -Werror=maybe-uninitialized for Windows builds
    This produces false positives, such as:
    ```bash
    torcontrol.cpp: In static member function ‘static void TorControlConnection::readcb(bufferevent*, void*)’:
    torcontrol.cpp:94:28: error: ‘result’ may be used uninitialized [-Werror=maybe-uninitialized]
       94 |         self->message.code = ToIntegral<int>(s.substr(0, 3)).value_or(0);
          |         ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from ./netaddress.h:18,
                     from ./torcontrol.h:11,
                     from torcontrol.cpp:6:
    ./util/strencodings.h:184:7: note: ‘result’ was declared here
      184 |     T result;
          |       ^~~~~~
    cc1plus: all warnings being treated as errors
    make[2]: *** [Makefile:11088: libbitcoin_node_a-torcontrol.o] Error 1
    ```
    7469ac7032
  201. ci: remove -Warray-bounds from -Werror for win64
    These warnings are coming from leveldb, and appear to be fixed starting
    with GCC 13.
    bec6a88fbc
  202. ci: remove -Wdocumentation from -Werror in multiprocess CI
    The issues here are coming from Boost Test code.
    b088062e68
  203. build: no-longer disable WARN_CXXFLAGS when CXXFLAGS is set
    Now that CXXFLAGS are back in user control, I don't think there's a
    reason to no-longer use our warning flags when CXXFLAGS has been
    overriden (this includes when building from depends).
    
    Anyone can suppress warnings from third-party code by
    passing the relevant `-Wno-` options in CXXFLAGS.
    
    Fixes: #18092.
    f0e22be69a
  204. fanquake force-pushed on May 3, 2024
  205. fanquake added the label DrahtBot Guix build requested on May 3, 2024
  206. maflcko commented at 9:39 am on May 3, 2024: member

    Would it make sense to mention that -Wno-error=... should be passed, when needed, in the compile docs?

    utACK f0e22be69a15248c42964d57f44ce8c37a36081d 🍡

    Signature:

    0untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
    1RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
    2trusted comment: utACK f0e22be69a15248c42964d57f44ce8c37a36081d 🍡
    3vBxoHilXIAccIn8maseZr4k9PlbsNC+EF53i//yO3OEBMcPEVz9reyJkwVIrCLY4DaAwvqIwXqgWBZt0N+XZBA==
    
  207. DrahtBot requested review from hebasto on May 3, 2024
  208. fanquake requested review from TheCharlatan on May 3, 2024
  209. fanquake commented at 10:33 am on May 3, 2024: member

    Guix Build (aarch64):

     0a416b91cfcc2ed18250021e67b5130e46d407998a642cdaed49996c0be79dd08  guix-build-f0e22be69a15/output/aarch64-linux-gnu/SHA256SUMS.part
     1569dc4cf491fe4f07009ce8f9d202c05f29a18eec6963fa3e7286a944dd93a82  guix-build-f0e22be69a15/output/aarch64-linux-gnu/bitcoin-f0e22be69a15-aarch64-linux-gnu-debug.tar.gz
     2126a3b9712bb7685e89e84f6b0d18cce6389bf580e3e66136a976e1f2f50f76f  guix-build-f0e22be69a15/output/aarch64-linux-gnu/bitcoin-f0e22be69a15-aarch64-linux-gnu.tar.gz
     390a78669828d32025c50fce357131f009d3a3fb887d84385dd94d82e8d973bdf  guix-build-f0e22be69a15/output/arm-linux-gnueabihf/SHA256SUMS.part
     456988aa072006b96fdde476c4a32ed54acc908504b9d858c5e230d43612f4833  guix-build-f0e22be69a15/output/arm-linux-gnueabihf/bitcoin-f0e22be69a15-arm-linux-gnueabihf-debug.tar.gz
     51b8a9b3bfbfad88eb10f787623a4ad60f1f87803c0d4040bbe1bf24c4da1e308  guix-build-f0e22be69a15/output/arm-linux-gnueabihf/bitcoin-f0e22be69a15-arm-linux-gnueabihf.tar.gz
     65cb8e8f0a4b9aa8a4334623225fd4d329842769f273ec46075dd6079cc283a0d  guix-build-f0e22be69a15/output/arm64-apple-darwin/SHA256SUMS.part
     7fece504ef26647e11bdf3adc747b895e1dc69576e17c6dc17c61d3471bf810d7  guix-build-f0e22be69a15/output/arm64-apple-darwin/bitcoin-f0e22be69a15-arm64-apple-darwin-unsigned.tar.gz
     81d34f9419cc66d5143d19bbcb1a24d14381cb1d32a9e0599b529a93e4bd7d6fd  guix-build-f0e22be69a15/output/arm64-apple-darwin/bitcoin-f0e22be69a15-arm64-apple-darwin-unsigned.zip
     959144930e85db21845a6b3887405b75a6106657b18aa3ede4ab12e99d9fcffdb  guix-build-f0e22be69a15/output/arm64-apple-darwin/bitcoin-f0e22be69a15-arm64-apple-darwin.tar.gz
    1010eb6357756af723a8d204e0bc4604ee10f91004d7a65c57a6259cfb01d02f34  guix-build-f0e22be69a15/output/dist-archive/bitcoin-f0e22be69a15.tar.gz
    11aa34b3c18d342c8bad11fafbc92628c74aee33a9e1261f31f62449bc05e4a4f9  guix-build-f0e22be69a15/output/powerpc64-linux-gnu/SHA256SUMS.part
    121719ecffad40d62beb6e94e65f6b9956ed8e0eb68d5e94b7a2a812ea7d3241da  guix-build-f0e22be69a15/output/powerpc64-linux-gnu/bitcoin-f0e22be69a15-powerpc64-linux-gnu-debug.tar.gz
    13cbcad735319c6838813617cdc12ff14bde2d81b5f8c35cf6e57c8a9ebe00dbf6  guix-build-f0e22be69a15/output/powerpc64-linux-gnu/bitcoin-f0e22be69a15-powerpc64-linux-gnu.tar.gz
    146c644fc29cd8e0fb2cd7bcd3a397f8c9d06ae8701e26096f93f6659b10d66a86  guix-build-f0e22be69a15/output/riscv64-linux-gnu/SHA256SUMS.part
    1570e2cd91d72e6d1e1835cfbc3d7cb4e3c38af906195e65636ad7706f1f959f11  guix-build-f0e22be69a15/output/riscv64-linux-gnu/bitcoin-f0e22be69a15-riscv64-linux-gnu-debug.tar.gz
    16fac50f4a7eeed00a8a2fafb3dcaead6ffb14a8e2fe5fda95dd2c76527e3fd612  guix-build-f0e22be69a15/output/riscv64-linux-gnu/bitcoin-f0e22be69a15-riscv64-linux-gnu.tar.gz
    172232949e9fea2f17fe7ebdf219db6892a4448988271114fbe6f21015048a9b13  guix-build-f0e22be69a15/output/x86_64-apple-darwin/SHA256SUMS.part
    184c307c6f96d13e2521b1ed2a5c8faa1c11b246074c8b22a8e53b00e60f72ff1b  guix-build-f0e22be69a15/output/x86_64-apple-darwin/bitcoin-f0e22be69a15-x86_64-apple-darwin-unsigned.tar.gz
    19f268a0de8a7a45aa2b625e089af1ce83097bc0a079b46578d4000f78c4547b90  guix-build-f0e22be69a15/output/x86_64-apple-darwin/bitcoin-f0e22be69a15-x86_64-apple-darwin-unsigned.zip
    20d248cc1686997b73ade7cb7353a23cb9a6a1d19c0718a4a014e27480d0d7c356  guix-build-f0e22be69a15/output/x86_64-apple-darwin/bitcoin-f0e22be69a15-x86_64-apple-darwin.tar.gz
    21417921fe8a58abca99111e21da7663eba019183cdc2a132dab05cf020d374227  guix-build-f0e22be69a15/output/x86_64-linux-gnu/SHA256SUMS.part
    22f9cd999dd1e9cb149718a70b720b5514aceddf8e059cde75358ae9e0a3eb72ae  guix-build-f0e22be69a15/output/x86_64-linux-gnu/bitcoin-f0e22be69a15-x86_64-linux-gnu-debug.tar.gz
    23e95cc49e5467f49b5afa63b9358ef0b2afea3df90256982f6a1dfc49ffde9a33  guix-build-f0e22be69a15/output/x86_64-linux-gnu/bitcoin-f0e22be69a15-x86_64-linux-gnu.tar.gz
    248c3d88b8437feefd651fd55b03da15114f7d7eba72a674de1a1af4c3bc341208  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/SHA256SUMS.part
    2506fe5199d3da1b8cb305a652402f18ef586e3a3c4dc1267a512e921284b6561f  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64-debug.zip
    26a5ffc57c3cd232ab644052ee071b6e49ffe1b29f624879632b6af57c8ea3a8e7  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64-setup-unsigned.exe
    2790a0bd945c60f88d8fef06d11c0b01810e7247988aa937cdc4a09fd7cc214941  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64-unsigned.tar.gz
    2803d46a89b69a93b395f8bb47826c6f0e98b060f086a6afa14ed9d6c8b61e1517  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64.zip
    
  210. hebasto approved
  211. hebasto commented at 11:05 am on May 3, 2024: member

    ACK f0e22be69a15248c42964d57f44ce8c37a36081d.

    My Guix builds:

     0x86_64
     1a416b91cfcc2ed18250021e67b5130e46d407998a642cdaed49996c0be79dd08  guix-build-f0e22be69a15/output/aarch64-linux-gnu/SHA256SUMS.part
     2569dc4cf491fe4f07009ce8f9d202c05f29a18eec6963fa3e7286a944dd93a82  guix-build-f0e22be69a15/output/aarch64-linux-gnu/bitcoin-f0e22be69a15-aarch64-linux-gnu-debug.tar.gz
     3126a3b9712bb7685e89e84f6b0d18cce6389bf580e3e66136a976e1f2f50f76f  guix-build-f0e22be69a15/output/aarch64-linux-gnu/bitcoin-f0e22be69a15-aarch64-linux-gnu.tar.gz
     490a78669828d32025c50fce357131f009d3a3fb887d84385dd94d82e8d973bdf  guix-build-f0e22be69a15/output/arm-linux-gnueabihf/SHA256SUMS.part
     556988aa072006b96fdde476c4a32ed54acc908504b9d858c5e230d43612f4833  guix-build-f0e22be69a15/output/arm-linux-gnueabihf/bitcoin-f0e22be69a15-arm-linux-gnueabihf-debug.tar.gz
     61b8a9b3bfbfad88eb10f787623a4ad60f1f87803c0d4040bbe1bf24c4da1e308  guix-build-f0e22be69a15/output/arm-linux-gnueabihf/bitcoin-f0e22be69a15-arm-linux-gnueabihf.tar.gz
     75cb8e8f0a4b9aa8a4334623225fd4d329842769f273ec46075dd6079cc283a0d  guix-build-f0e22be69a15/output/arm64-apple-darwin/SHA256SUMS.part
     8fece504ef26647e11bdf3adc747b895e1dc69576e17c6dc17c61d3471bf810d7  guix-build-f0e22be69a15/output/arm64-apple-darwin/bitcoin-f0e22be69a15-arm64-apple-darwin-unsigned.tar.gz
     91d34f9419cc66d5143d19bbcb1a24d14381cb1d32a9e0599b529a93e4bd7d6fd  guix-build-f0e22be69a15/output/arm64-apple-darwin/bitcoin-f0e22be69a15-arm64-apple-darwin-unsigned.zip
    1059144930e85db21845a6b3887405b75a6106657b18aa3ede4ab12e99d9fcffdb  guix-build-f0e22be69a15/output/arm64-apple-darwin/bitcoin-f0e22be69a15-arm64-apple-darwin.tar.gz
    1110eb6357756af723a8d204e0bc4604ee10f91004d7a65c57a6259cfb01d02f34  guix-build-f0e22be69a15/output/dist-archive/bitcoin-f0e22be69a15.tar.gz
    12aa34b3c18d342c8bad11fafbc92628c74aee33a9e1261f31f62449bc05e4a4f9  guix-build-f0e22be69a15/output/powerpc64-linux-gnu/SHA256SUMS.part
    131719ecffad40d62beb6e94e65f6b9956ed8e0eb68d5e94b7a2a812ea7d3241da  guix-build-f0e22be69a15/output/powerpc64-linux-gnu/bitcoin-f0e22be69a15-powerpc64-linux-gnu-debug.tar.gz
    14cbcad735319c6838813617cdc12ff14bde2d81b5f8c35cf6e57c8a9ebe00dbf6  guix-build-f0e22be69a15/output/powerpc64-linux-gnu/bitcoin-f0e22be69a15-powerpc64-linux-gnu.tar.gz
    156c644fc29cd8e0fb2cd7bcd3a397f8c9d06ae8701e26096f93f6659b10d66a86  guix-build-f0e22be69a15/output/riscv64-linux-gnu/SHA256SUMS.part
    1670e2cd91d72e6d1e1835cfbc3d7cb4e3c38af906195e65636ad7706f1f959f11  guix-build-f0e22be69a15/output/riscv64-linux-gnu/bitcoin-f0e22be69a15-riscv64-linux-gnu-debug.tar.gz
    17fac50f4a7eeed00a8a2fafb3dcaead6ffb14a8e2fe5fda95dd2c76527e3fd612  guix-build-f0e22be69a15/output/riscv64-linux-gnu/bitcoin-f0e22be69a15-riscv64-linux-gnu.tar.gz
    182232949e9fea2f17fe7ebdf219db6892a4448988271114fbe6f21015048a9b13  guix-build-f0e22be69a15/output/x86_64-apple-darwin/SHA256SUMS.part
    194c307c6f96d13e2521b1ed2a5c8faa1c11b246074c8b22a8e53b00e60f72ff1b  guix-build-f0e22be69a15/output/x86_64-apple-darwin/bitcoin-f0e22be69a15-x86_64-apple-darwin-unsigned.tar.gz
    20f268a0de8a7a45aa2b625e089af1ce83097bc0a079b46578d4000f78c4547b90  guix-build-f0e22be69a15/output/x86_64-apple-darwin/bitcoin-f0e22be69a15-x86_64-apple-darwin-unsigned.zip
    21d248cc1686997b73ade7cb7353a23cb9a6a1d19c0718a4a014e27480d0d7c356  guix-build-f0e22be69a15/output/x86_64-apple-darwin/bitcoin-f0e22be69a15-x86_64-apple-darwin.tar.gz
    22417921fe8a58abca99111e21da7663eba019183cdc2a132dab05cf020d374227  guix-build-f0e22be69a15/output/x86_64-linux-gnu/SHA256SUMS.part
    23f9cd999dd1e9cb149718a70b720b5514aceddf8e059cde75358ae9e0a3eb72ae  guix-build-f0e22be69a15/output/x86_64-linux-gnu/bitcoin-f0e22be69a15-x86_64-linux-gnu-debug.tar.gz
    24e95cc49e5467f49b5afa63b9358ef0b2afea3df90256982f6a1dfc49ffde9a33  guix-build-f0e22be69a15/output/x86_64-linux-gnu/bitcoin-f0e22be69a15-x86_64-linux-gnu.tar.gz
    258c3d88b8437feefd651fd55b03da15114f7d7eba72a674de1a1af4c3bc341208  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/SHA256SUMS.part
    2606fe5199d3da1b8cb305a652402f18ef586e3a3c4dc1267a512e921284b6561f  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64-debug.zip
    27a5ffc57c3cd232ab644052ee071b6e49ffe1b29f624879632b6af57c8ea3a8e7  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64-setup-unsigned.exe
    2890a0bd945c60f88d8fef06d11c0b01810e7247988aa937cdc4a09fd7cc214941  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64-unsigned.tar.gz
    2903d46a89b69a93b395f8bb47826c6f0e98b060f086a6afa14ed9d6c8b61e1517  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64.zip
    
  212. TheCharlatan commented at 1:15 pm on May 3, 2024: contributor

    Guix builds (aarch64)

     0a416b91cfcc2ed18250021e67b5130e46d407998a642cdaed49996c0be79dd08  guix-build-f0e22be69a15/output/aarch64-linux-gnu/SHA256SUMS.part
     1569dc4cf491fe4f07009ce8f9d202c05f29a18eec6963fa3e7286a944dd93a82  guix-build-f0e22be69a15/output/aarch64-linux-gnu/bitcoin-f0e22be69a15-aarch64-linux-gnu-debug.tar.gz
     2126a3b9712bb7685e89e84f6b0d18cce6389bf580e3e66136a976e1f2f50f76f  guix-build-f0e22be69a15/output/aarch64-linux-gnu/bitcoin-f0e22be69a15-aarch64-linux-gnu.tar.gz
     390a78669828d32025c50fce357131f009d3a3fb887d84385dd94d82e8d973bdf  guix-build-f0e22be69a15/output/arm-linux-gnueabihf/SHA256SUMS.part
     456988aa072006b96fdde476c4a32ed54acc908504b9d858c5e230d43612f4833  guix-build-f0e22be69a15/output/arm-linux-gnueabihf/bitcoin-f0e22be69a15-arm-linux-gnueabihf-debug.tar.gz
     51b8a9b3bfbfad88eb10f787623a4ad60f1f87803c0d4040bbe1bf24c4da1e308  guix-build-f0e22be69a15/output/arm-linux-gnueabihf/bitcoin-f0e22be69a15-arm-linux-gnueabihf.tar.gz
     65cb8e8f0a4b9aa8a4334623225fd4d329842769f273ec46075dd6079cc283a0d  guix-build-f0e22be69a15/output/arm64-apple-darwin/SHA256SUMS.part
     7fece504ef26647e11bdf3adc747b895e1dc69576e17c6dc17c61d3471bf810d7  guix-build-f0e22be69a15/output/arm64-apple-darwin/bitcoin-f0e22be69a15-arm64-apple-darwin-unsigned.tar.gz
     81d34f9419cc66d5143d19bbcb1a24d14381cb1d32a9e0599b529a93e4bd7d6fd  guix-build-f0e22be69a15/output/arm64-apple-darwin/bitcoin-f0e22be69a15-arm64-apple-darwin-unsigned.zip
     959144930e85db21845a6b3887405b75a6106657b18aa3ede4ab12e99d9fcffdb  guix-build-f0e22be69a15/output/arm64-apple-darwin/bitcoin-f0e22be69a15-arm64-apple-darwin.tar.gz
    1010eb6357756af723a8d204e0bc4604ee10f91004d7a65c57a6259cfb01d02f34  guix-build-f0e22be69a15/output/dist-archive/bitcoin-f0e22be69a15.tar.gz
    11aa34b3c18d342c8bad11fafbc92628c74aee33a9e1261f31f62449bc05e4a4f9  guix-build-f0e22be69a15/output/powerpc64-linux-gnu/SHA256SUMS.part
    121719ecffad40d62beb6e94e65f6b9956ed8e0eb68d5e94b7a2a812ea7d3241da  guix-build-f0e22be69a15/output/powerpc64-linux-gnu/bitcoin-f0e22be69a15-powerpc64-linux-gnu-debug.tar.gz
    13cbcad735319c6838813617cdc12ff14bde2d81b5f8c35cf6e57c8a9ebe00dbf6  guix-build-f0e22be69a15/output/powerpc64-linux-gnu/bitcoin-f0e22be69a15-powerpc64-linux-gnu.tar.gz
    146c644fc29cd8e0fb2cd7bcd3a397f8c9d06ae8701e26096f93f6659b10d66a86  guix-build-f0e22be69a15/output/riscv64-linux-gnu/SHA256SUMS.part
    1570e2cd91d72e6d1e1835cfbc3d7cb4e3c38af906195e65636ad7706f1f959f11  guix-build-f0e22be69a15/output/riscv64-linux-gnu/bitcoin-f0e22be69a15-riscv64-linux-gnu-debug.tar.gz
    16fac50f4a7eeed00a8a2fafb3dcaead6ffb14a8e2fe5fda95dd2c76527e3fd612  guix-build-f0e22be69a15/output/riscv64-linux-gnu/bitcoin-f0e22be69a15-riscv64-linux-gnu.tar.gz
    172232949e9fea2f17fe7ebdf219db6892a4448988271114fbe6f21015048a9b13  guix-build-f0e22be69a15/output/x86_64-apple-darwin/SHA256SUMS.part
    184c307c6f96d13e2521b1ed2a5c8faa1c11b246074c8b22a8e53b00e60f72ff1b  guix-build-f0e22be69a15/output/x86_64-apple-darwin/bitcoin-f0e22be69a15-x86_64-apple-darwin-unsigned.tar.gz
    19f268a0de8a7a45aa2b625e089af1ce83097bc0a079b46578d4000f78c4547b90  guix-build-f0e22be69a15/output/x86_64-apple-darwin/bitcoin-f0e22be69a15-x86_64-apple-darwin-unsigned.zip
    20d248cc1686997b73ade7cb7353a23cb9a6a1d19c0718a4a014e27480d0d7c356  guix-build-f0e22be69a15/output/x86_64-apple-darwin/bitcoin-f0e22be69a15-x86_64-apple-darwin.tar.gz
    21417921fe8a58abca99111e21da7663eba019183cdc2a132dab05cf020d374227  guix-build-f0e22be69a15/output/x86_64-linux-gnu/SHA256SUMS.part
    22f9cd999dd1e9cb149718a70b720b5514aceddf8e059cde75358ae9e0a3eb72ae  guix-build-f0e22be69a15/output/x86_64-linux-gnu/bitcoin-f0e22be69a15-x86_64-linux-gnu-debug.tar.gz
    23e95cc49e5467f49b5afa63b9358ef0b2afea3df90256982f6a1dfc49ffde9a33  guix-build-f0e22be69a15/output/x86_64-linux-gnu/bitcoin-f0e22be69a15-x86_64-linux-gnu.tar.gz
    248c3d88b8437feefd651fd55b03da15114f7d7eba72a674de1a1af4c3bc341208  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/SHA256SUMS.part
    2506fe5199d3da1b8cb305a652402f18ef586e3a3c4dc1267a512e921284b6561f  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64-debug.zip
    26a5ffc57c3cd232ab644052ee071b6e49ffe1b29f624879632b6af57c8ea3a8e7  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64-setup-unsigned.exe
    2790a0bd945c60f88d8fef06d11c0b01810e7247988aa937cdc4a09fd7cc214941  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64-unsigned.tar.gz
    2803d46a89b69a93b395f8bb47826c6f0e98b060f086a6afa14ed9d6c8b61e1517  guix-build-f0e22be69a15/output/x86_64-w64-mingw32/bitcoin-f0e22be69a15-win64.zip
    
  213. theuni commented at 1:32 pm on May 3, 2024: member

    I can’t repro the -Wmaybe-uninitialized issue. Might it be possible to just add the initializations (even if they’re unnecessary) rather than disabling?

    Like for the example provided, making it:

    0T result{};
    

    Edit: nm, I see there are other false-positives as well.

  214. theuni approved
  215. theuni commented at 1:38 pm on May 3, 2024: member
    ACK f0e22be69a15248c42964d57f44ce8c37a36081d. It’ll be nice to have this fixed.
  216. maflcko commented at 1:43 pm on May 3, 2024: member

    I can’t repro the -Wmaybe-uninitialized issue.

    It should repro in the CI env, at least. Or you can grep the CI log: https://cirrus-ci.com/task/6169505322237952?logs=ci#L3768

  217. DrahtBot commented at 6:30 pm on May 3, 2024: contributor

    Guix builds (on x86_64) [untrusted test-only build, possibly unsafe, not for production use]

    File commit 99d7538cdb2a0ab7a7a2116cd5f33b95fc52b00e(master) commit d8d9671cd3bedd66d5632cea9b203f449e0f678a(master and this pull)
    SHA256SUMS.part 2d37ee006e42acbb... 14b39fcddbe53b60...
    *-aarch64-linux-gnu-debug.tar.gz 2fc5a4c0d2994de9... f7a7763ccb552c8a...
    *-aarch64-linux-gnu.tar.gz b05b39619c69080e... 600622f681e128c7...
    *-arm-linux-gnueabihf-debug.tar.gz c34f642cd99b82c6... 730dc69ae58bf1aa...
    *-arm-linux-gnueabihf.tar.gz 76fbe6ef414cc8ff... 3d7bd879fb77f965...
    *-arm64-apple-darwin-unsigned.tar.gz ae6edc9bc96874a3... d08513bb136812fa...
    *-arm64-apple-darwin-unsigned.zip 2401cd650040cf60... 70add25fbaa1f1ca...
    *-arm64-apple-darwin.tar.gz 5315c7233fb206a5... 9342de9b3a32c46e...
    *-powerpc64-linux-gnu-debug.tar.gz 63a1c68ee85d0e80... 4816d075a5c9e0f9...
    *-powerpc64-linux-gnu.tar.gz 1f70493198c2b2e1... 36a8499e2b375eeb...
    *-riscv64-linux-gnu-debug.tar.gz e5c8ae0919d4faa3... 898472569ad18d03...
    *-riscv64-linux-gnu.tar.gz 56bb869ec1166776... b622721d43d399da...
    *-x86_64-apple-darwin-unsigned.tar.gz 77020cf43485ad4e... bea425a4fc43fa34...
    *-x86_64-apple-darwin-unsigned.zip bfb96ca11469209a... 02e984df1abea15f...
    *-x86_64-apple-darwin.tar.gz 6670c292aef914b9... 0e5cf4dd8926f4bb...
    *-x86_64-linux-gnu-debug.tar.gz 21e71d0b876b2efb... 2413a3a26e5c1ecb...
    *-x86_64-linux-gnu.tar.gz acc2c6ef070804ef... d8b117ddd17c4aa6...
    *.tar.gz 502b24f208bb3556... 62e6518439272b98...
    guix_build.log 032c73808c40d082... 982802f94c631bda...
    guix_build.log.diff e67731a6b2fa1c45...
  218. DrahtBot removed the label DrahtBot Guix build requested on May 3, 2024
  219. TheCharlatan approved
  220. TheCharlatan commented at 7:36 pm on May 3, 2024: contributor
    ACK f0e22be69a15248c42964d57f44ce8c37a36081d
  221. fanquake commented at 0:37 am on May 4, 2024: member

    Would it make sense to mention that -Wno-error=… should be passed, when needed, in the compile docs?

    Maybe into the CI or dev docs, given we’ll never use -Werror by default for compilation?

  222. fanquake merged this on May 4, 2024
  223. fanquake closed this on May 4, 2024

  224. fanquake deleted the branch on May 4, 2024
  225. maflcko commented at 8:45 am on May 4, 2024: member

    Maybe into the CI or dev docs, given we’ll never use -Werror by default for compilation?

    Oh I see. --enable-werror is only set in the CI in this project. Seems fine to leave as-is.

  226. hebasto commented at 1:36 pm on May 4, 2024: member
    Ported to the CMake-based build system in https://github.com/hebasto/bitcoin/pull/188.
  227. hebasto removed the label Needs CMake port on May 4, 2024

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-22 15:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me