build: x86 afl++ ASan build broken "error: inline assembly requires more registers than available" #31913

issue dergoegge opened this issue on February 20, 2025
  1. dergoegge commented at 11:27 AM on February 20, 2025: member

    Dockerfile to reproduce: https://gist.github.com/dergoegge/fc97743028f60719759b5498f5f022bf

    Building with clang-19 and -fsantize=address fails with:

    7.574 /bitcoin/src/secp256k1/src/scalar_4x64_impl.h:356:5: error: inline assembly requires more registers than available
    7.574   356 |     "movq 32(%%rsi), %%r11\n"
    7.574       |     ^
    7.575 /bitcoin/src/secp256k1/src/scalar_4x64_impl.h:356:5: error: inline assembly requires more registers than available
    7.575 /bitcoin/src/secp256k1/src/scalar_4x64_impl.h:356:5: error: inline assembly requires more registers than available
    7.643 [ 24%] Building CXX object src/CMakeFiles/bitcoin_consensus.dir/uint256.cpp.o
    7.722 3 errors generated.
    7.738 gmake[3]: *** [src/secp256k1/src/CMakeFiles/secp256k1.dir/build.make:76: src/secp256k1/src/CMakeFiles/secp256k1.dir/secp256k1.c.o] Error 1
    7.738 gmake[2]: *** [CMakeFiles/Makefile2:1020: src/secp256k1/src/CMakeFiles/secp256k1.dir/all] Error 2
    

    Since this looks secp256k1 related I tried reproducing on a separate secp build but couldn't. This could very well be a compiler/linker bug.

    I am surprised that I'm the only one running into this, we don't have a x86 ASan job anywhere? I think I first observed this sometime mid last year.

  2. maflcko commented at 2:07 PM on February 20, 2025: member

    For reference, the compiler command (without docker) is:

    # /usr/bin/clang-20  -DUSE_ASM_X86_64=1   -std=c90   -o secp256k1.c.o -c /bitcoin/src/secp256k1/src/secp256k1.c -fsanitize=address 
    In file included from /bitcoin/src/secp256k1/src/secp256k1.c:28:
    In file included from /bitcoin/src/secp256k1/src/scalar_impl.h:20:
    /bitcoin/src/secp256k1/src/scalar_4x64_impl.h:356:5: error: inline assembly requires more registers than available
      356 |     "movq 32(%%rsi), %%r11\n"
          |     ^
    1 error generated.
    
  3. sipa commented at 2:11 PM on February 20, 2025: member

    This looks familiar. Can you try if -fomit-frame-pointer fixes it?

  4. dergoegge commented at 2:38 PM on February 20, 2025: member

    Can you try if -fomit-frame-pointer fixes it?

    Still the same issue.

    root@7069ec4b9a4e:/# clang-19  -DUSE_ASM_X86_64=1 -std=c90   -o secp256k1.c.o -c /bitcoin/src/secp256k1/src/secp256k1.c -fsanitize=address -fomit-frame-pointer
    In file included from /bitcoin/src/secp256k1/src/secp256k1.c:28:
    In file included from /bitcoin/src/secp256k1/src/scalar_impl.h:20:
    /bitcoin/src/secp256k1/src/scalar_4x64_impl.h:356:5: error: inline assembly requires more registers than available
      356 |     "movq 32(%%rsi), %%r11\n"
          |     ^
    /bitcoin/src/secp256k1/src/scalar_4x64_impl.h:356:5: error: inline assembly requires more registers than available
    /bitcoin/src/secp256k1/src/scalar_4x64_impl.h:356:5: error: inline assembly requires more registers than available
    3 errors generated.
    

    Not using -DUSE_ASM_X86_64=1 obviously works. Could be a work around once #31379 is merged.

  5. sipa commented at 2:41 PM on February 20, 2025: member

    I believe the explanation here is just that they're incompatible. The asm code in libsecp256k1 requires many registers; an amount which is generally available in builds. But presumably, asan instrumentation reduces the set of general-purpose available register from use in the instrumentation itself, and as a result the code doesn't compile anymore.

  6. maflcko commented at 2:55 PM on February 20, 2025: member

    You can also set -O1 instead of -O0, but I guess you don't want that?

  7. maflcko added the label Build system on Feb 20, 2025
  8. maflcko removed the label Build system on Feb 20, 2025
  9. dergoegge commented at 3:02 PM on February 20, 2025: member

    I wonder if this is related to it: https://github.com/llvm/llvm-project/blob/1c4e9863fa1cba6d28be92026e0912808b01780d/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp#L3096-L3107. Currently limited to 32-bit but maybe it's also broken for 64-bit?

    You can also set -O1 instead of -O0, but I guess you don't want that?

    -O1 works but -O0 does not. Could be a workaround as well.

    Interestingly using afl-clang-{lto,fast} does not fail to compile /bitcoin/src/secp256k1/src/secp256k1.c but it does fail to link bitcoind with a similar message: error: LLVM gold plugin: inline assembly requires more registers than available at line 2171 (maybe an entirely separate issue).

  10. sipa commented at 3:02 PM on February 20, 2025: member

    Does -O0 even work with -DUSE_ASM_X86_64=1, absent asan?

  11. dergoegge commented at 3:04 PM on February 20, 2025: member

    Does -O0 even work with -DUSE_ASM_X86_64=1, absent asan?

    Looks like it.

    You can also set -O1 instead of -O0, but I guess you don't want that?

    Just re-read your message, isn't -O2 our default? i.e. I don't think I was using -O0 when I first saw this.

  12. maflcko commented at 8:44 PM on February 20, 2025: member

    You can also set -O1 instead of -O0, but I guess you don't want that?

    Just re-read your message, isn't -O2 our default? i.e. I don't think I was using -O0 when I first saw this.

    You explicitly set it to the empty string in -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="" and IIRC the default for compilers is -O0, so I presumed that this was intentional.

  13. dergoegge commented at 8:55 AM on February 21, 2025: member

    You explicitly set it to the empty string in -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="" and IIRC the default for compilers is -O0, so I presumed that this was intentional.

    Ah yes. The actual setup involved setting flags like we do in oss-fuzz https://github.com/google/oss-fuzz/blob/1472130318ff69f8dcfc44db7aa9fe0610423c57/projects/bitcoin-core/build.sh#L70. So it doesn't work with O0 or O2.

    I wonder if the afl++ build failure is also why we don't see any afl++ fuzzing on oss-fuzz anymore (https://github.com/google/oss-fuzz/issues/13020).

  14. maflcko commented at 9:08 AM on February 21, 2025: member

    I wonder if the afl++ build failure is also why we don't see any afl++ fuzzing on oss-fuzz anymore (google/oss-fuzz#13020).

    oss-fuzz has -O1 set, so I think the build should succeed. See also https://oss-fuzz-build-logs.storage.googleapis.com/index.html#bitcoin-core

    Excerpt:

    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": C++ compiler .......................... Clang 18.1.8, /src/aflplusplus/afl-clang-fast++
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": CMAKE_BUILD_TYPE ...................... RelWithDebInfo
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": Preprocessor defined macros ........... FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION _LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG BOOST_MULTI_INDEX_ENABLE_SAFE_MODE
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": C++ compiler flags .................... -O1 -fno-omit-frame-pointer -gline-tables-only -Wno-error=enum-constexpr-conversion -Wno-error=incompatible-function-pointer-types -Wno-error=int-conversion -Wno-error=deprecated-declarations -Wno-error=implicit-function-declaration -Wno-error=implicit-int -Wno-error=vla-cxx-extension -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -stdlib=libc++ -std=c++20 -fPIC -fdebug-prefix-map=/src/bitcoin-core/src=. -fmacro-prefix-map=/src/bitcoin-core/src=. -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 -Wimplicit-fallthrough -Wunreachable-code -Wdocumentation -Wself-assign -Wundef -Wno-unused-parameter -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": Linker flags .......................... -O1 -fno-omit-frame-pointer -gline-tables-only -Wno-error=enum-constexpr-conversion -Wno-error=incompatible-function-pointer-types -Wno-error=int-conversion -Wno-error=deprecated-declarations -Wno-error=implicit-function-declaration -Wno-error=implicit-int -Wno-error=vla-cxx-extension -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -stdlib=libc++ /usr/lib/libFuzzingEngine.a -fstack-protector-all -fcf-protection=full -fstack-clash-protection -Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code -fPIE -pie
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": 
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": NOTE: The summary above may not exactly match the final applied build flags
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64":       if any additional CMAKE_* or environment variables have been modified.
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64":       To see the exact flags applied, build with the --verbose option.
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": 
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": Attempt to harden executables ......... ON
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": Treat compiler warnings as errors ..... OFF
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": Use ccache for compiling .............. ON
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": 
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": 
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": -- Configuring done (14.8s)
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": -- Generating done (0.1s)
    Step [#3](/bitcoin-bitcoin/3/) - "compile-afl-address-x86_64": -- Build files have been written to: /src/bitcoin-core/build_fuzz
    
  15. dergoegge commented at 9:20 AM on February 21, 2025: member

    For me the afl-clang-{fast,lto} build fails even with -O1 but you're right the oss-fuzz build logs look fine. I'll try using the afl++ version they use, maybe there's a bug in the newer version I use. In any case the afl++ issue seems separate from the secp asm failure with plain clang (even though the error message is almost the same).

  16. dergoegge commented at 2:29 PM on February 21, 2025: member

    So turns out newer versions of afl++ (i.e. newer than the one oss-fuzz is using) will insert -flto when -fcf-protection is detected. That results in -flto -fcf-protection -fsanitize=address and for some reason that combination doesn't work, not sure if it's just not supported or there's a bug but for us a simple workaround is to simply set -DENABLE_HARDENING=OFF when fuzzing with afl++ and ASan on x86. The PR that changed this on the afl++ side is: https://github.com/AFLplusplus/AFLplusplus/pull/1966.

    In conclusion, for a plain clang build on x86 with ASan use either -O1 or disable the secp256k1 custom assembly and for a afl-clang-* build with ASan use our -DENABLE_HARDENING=OFF cmake option (this will become relevant for our oss-fuzz build once they bump afl++).

    I don't think there is anything for us left to do here, so closing.

  17. dergoegge closed this on Feb 21, 2025

  18. dergoegge reopened this on Apr 29, 2025

  19. dergoegge commented at 3:43 PM on April 29, 2025: member

    Now that we've removed ENABLE_HARDENING this is happening again. The suggested workaround of injecting flags manually via APPEND_* does not work.

    This is an issue for me with https://github.com/dergoegge/fuzzamoto and it''ll also be a problem on oss-fuzz, when they bump their afl++ version.

  20. dergoegge renamed this:
    build: x86 ASan build broken "error: inline assembly requires more registers than available"
    build: x86 afl++ ASan build broken "error: inline assembly requires more registers than available"
    on Apr 29, 2025
  21. hebasto commented at 3:50 PM on April 29, 2025: member

    Now that we've removed ENABLE_HARDENING this is happening again. The suggested workaround of injecting flags manually via APPEND_* does not work.

    Which suggestion exactly?

  22. dergoegge commented at 3:52 PM on April 29, 2025: member

    Sorry forgot to link it, from the PR description here: #32071.

  23. dergoegge referenced this in commit 08b832ccf1 on Apr 29, 2025
  24. fanquake commented at 4:55 PM on April 29, 2025: member

    I think the issue here is similar to #32323. The user provided flags (to override the hardening options) aren't checked during CMake compiler checks, which means the disabling doesn't actually happen when using afl. As far as I can tell this also isn't fixed by #32367. Will open a PR to further patch fcf-protection out.

  25. maflcko commented at 4:37 PM on April 30, 2025: member

    Now that we've removed ENABLE_HARDENING this is happening again. The suggested workaround of injecting flags manually via APPEND_* does not work.

    To clarify, now it is a configure failure, as opposed to a build (make) failure?

    edit: and the new steps to reproduce are https://github.com/dergoegge/fuzzamoto/blob/master/Dockerfile ?

  26. fanquake commented at 4:42 PM on April 30, 2025: member

    To clarify, now it is a configure failure, as opposed to a build (make) failure?

    It's still a build failure, with no way to override the offending flag, as the APPEND options don't currently work properly.

  27. hebasto commented at 4:45 PM on April 30, 2025: member

    To clarify, now it is a configure failure, as opposed to a build (make) failure?

    It's still a build failure, with no way to override the offending flag, as the APPEND options don't currently work properly.

    Could someone provide configuration options and a line from the verbose build to show what exactly is broken?

  28. maflcko commented at 5:24 PM on April 30, 2025: member

    I checked the original non-afl asan dockerfile and the existing workaround should still apply there (Don't use -O0, or disable secp256k1 asm).

    Thus, my guess is the new issue is about afl only and the new dockerfile is https://github.com/dergoegge/fuzzamoto/blob/master/Dockerfile?

  29. davidgumberg commented at 9:24 PM on April 30, 2025: contributor

    Could someone provide configuration options and a line from the verbose build to show what exactly is broken?

    Reproduced as follows:

    # clone and checkout hash before addr san was disabled
    git clone git@github.com:dergoegge/fuzzamoto.git && cd fuzzamoto && git checkout 3f72735 
    docker build .
    # or, to get full logs
    docker build --no-cache --progress=plain . 2>&1 | tee build.log
    

    Here is the configure line, and noteworthy output:

    $ cmake -B build_fuzz       --toolchain ./depends/$(./depends/config.guess)/toolchain.cmake       -DSANITIZERS="address"       -DAPPEND_CPPFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"       -DAPPEND_CFLAGS="-fcf-protection=none"       -DAPPEND_CXXFLAGS="-fcf-protection=none"       -DAPPEND_LDFLAGS="-fcf-protection=none"
    C++ compiler flags .................... -pipe -std=c++20 -O2 -g -std=c++20 -fPIC -fdebug-prefix-map=/bitcoin/src=. -fmacro-prefix-map=/bitcoin/src=. -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection -fsanitize=address -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 -Wimplicit-fallthrough -Wunreachable-code -Wdocumentation -Wself-assign -Wundef -Wno-unused-parameter -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fcf-protection=none
    Linker flags .......................... -pipe -std=c++20 -O2 -g -fstack-protector-all -fcf-protection=full -fstack-clash-protection -Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code -fsanitize=address -fPIE -pie -fcf-protection=none
    

    <details>

    <summary>Full configure output</summary>

    [#26](/bitcoin-bitcoin/26/) [22/44] RUN cd bitcoin/ && cmake -B build_fuzz       --toolchain ./depends/$(./depends/config.guess)/toolchain.cmake       -DSANITIZERS="address"       -DAPPEND_CPPFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"       -DAPPEND_CFLAGS="-fcf-protection=none"       -DAPPEND_CXXFLAGS="-fcf-protection=none"       -DAPPEND_LDFLAGS="-fcf-protection=none"
    [#26](/bitcoin-bitcoin/26/) 0.231 -- The CXX compiler identification is Clang 19.1.7
    [#26](/bitcoin-bitcoin/26/) 0.234 -- Detecting CXX compiler ABI info
    [#26](/bitcoin-bitcoin/26/) 0.298 -- Detecting CXX compiler ABI info - done
    [#26](/bitcoin-bitcoin/26/) 0.303 -- Check for working CXX compiler: /AFLplusplus/afl-clang-fast++ - skipped
    [#26](/bitcoin-bitcoin/26/) 0.303 -- Detecting CXX compile features
    [#26](/bitcoin-bitcoin/26/) 0.303 -- Detecting CXX compile features - done
    [#26](/bitcoin-bitcoin/26/) 0.304 -- Setting build type to "RelWithDebInfo" as none was specified
    [#26](/bitcoin-bitcoin/26/) 0.304 -- Performing Test CXX_SUPPORTS__WERROR
    [#26](/bitcoin-bitcoin/26/) 0.347 -- Performing Test CXX_SUPPORTS__WERROR - Success
    [#26](/bitcoin-bitcoin/26/) 0.347 -- Performing Test CXX_SUPPORTS__G3
    [#26](/bitcoin-bitcoin/26/) 0.391 -- Performing Test CXX_SUPPORTS__G3 - Success
    [#26](/bitcoin-bitcoin/26/) 0.391 -- Performing Test LINKER_SUPPORTS__G3
    [#26](/bitcoin-bitcoin/26/) 0.452 -- Performing Test LINKER_SUPPORTS__G3 - Success
    [#26](/bitcoin-bitcoin/26/) 0.452 -- Performing Test CXX_SUPPORTS__FTRAPV
    [#26](/bitcoin-bitcoin/26/) 0.498 -- Performing Test CXX_SUPPORTS__FTRAPV - Success
    [#26](/bitcoin-bitcoin/26/) 0.498 -- Performing Test LINKER_SUPPORTS__FTRAPV
    [#26](/bitcoin-bitcoin/26/) 0.558 -- Performing Test LINKER_SUPPORTS__FTRAPV - Success
    [#26](/bitcoin-bitcoin/26/) 0.559 -- Found SQLite3: /bitcoin/depends/x86_64-pc-linux-gnu/include (found suitable version "3.46.1", minimum required is "3.7.17") 
    [#26](/bitcoin-bitcoin/26/) 0.701 -- Performing Test LINKER_SUPPORTS__WL___FATAL_WARNINGS
    [#26](/bitcoin-bitcoin/26/) 0.776 -- Performing Test LINKER_SUPPORTS__WL___FATAL_WARNINGS - Success
    [#26](/bitcoin-bitcoin/26/) 0.777 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
    [#26](/bitcoin-bitcoin/26/) 0.853 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
    [#26](/bitcoin-bitcoin/26/) 0.853 -- Found Threads: TRUE  
    [#26](/bitcoin-bitcoin/26/) 0.854 -- Performing Test CXX_SUPPORTS__FSANITIZE_ADDRESS
    [#26](/bitcoin-bitcoin/26/) 0.898 -- Performing Test CXX_SUPPORTS__FSANITIZE_ADDRESS - Success
    [#26](/bitcoin-bitcoin/26/) 0.898 -- Performing Test LINKER_SUPPORTS__FSANITIZE_ADDRESS_6231
    [#26](/bitcoin-bitcoin/26/) 1.001 -- Performing Test LINKER_SUPPORTS__FSANITIZE_ADDRESS_6231 - Success
    [#26](/bitcoin-bitcoin/26/) 1.007 -- Found Boost: /bitcoin/depends/x86_64-pc-linux-gnu/include (found suitable version "1.81.0", minimum required is "1.73.0")  
    [#26](/bitcoin-bitcoin/26/) 1.007 -- Performing Test NO_DIAGNOSTICS_BOOST_NO_CXX98_FUNCTION_BASE
    [#26](/bitcoin-bitcoin/26/) 1.036 -- Performing Test NO_DIAGNOSTICS_BOOST_NO_CXX98_FUNCTION_BASE - Failed
    [#26](/bitcoin-bitcoin/26/) 1.037 -- Found Libevent: /bitcoin/depends/x86_64-pc-linux-gnu/lib/cmake/libevent (found suitable version "2.1.12", minimum required is "2.1.8") 
    [#26](/bitcoin-bitcoin/26/) 1.037 -- Performing Test HAVE_EVHTTP_CONNECTION_GET_PEER_CONST_CHAR
    [#26](/bitcoin-bitcoin/26/) 1.065 -- Performing Test HAVE_EVHTTP_CONNECTION_GET_PEER_CONST_CHAR - Failed
    [#26](/bitcoin-bitcoin/26/) 1.065 -- Looking for C++ include sys/prctl.h
    [#26](/bitcoin-bitcoin/26/) 1.136 -- Looking for C++ include sys/prctl.h - found
    [#26](/bitcoin-bitcoin/26/) 1.136 -- Looking for C++ include sys/resources.h
    [#26](/bitcoin-bitcoin/26/) 1.157 -- Looking for C++ include sys/resources.h - not found
    [#26](/bitcoin-bitcoin/26/) 1.157 -- Looking for C++ include sys/vmmeter.h
    [#26](/bitcoin-bitcoin/26/) 1.178 -- Looking for C++ include sys/vmmeter.h - not found
    [#26](/bitcoin-bitcoin/26/) 1.178 -- Looking for C++ include vm/vm_param.h
    [#26](/bitcoin-bitcoin/26/) 1.198 -- Looking for C++ include vm/vm_param.h - not found
    [#26](/bitcoin-bitcoin/26/) 1.198 -- Looking for O_CLOEXEC
    [#26](/bitcoin-bitcoin/26/) 1.270 -- Looking for O_CLOEXEC - found
    [#26](/bitcoin-bitcoin/26/) 1.270 -- Looking for fdatasync
    [#26](/bitcoin-bitcoin/26/) 1.345 -- Looking for fdatasync - found
    [#26](/bitcoin-bitcoin/26/) 1.345 -- Looking for fork
    [#26](/bitcoin-bitcoin/26/) 1.418 -- Looking for fork - found
    [#26](/bitcoin-bitcoin/26/) 1.418 -- Looking for pipe2
    [#26](/bitcoin-bitcoin/26/) 1.491 -- Looking for pipe2 - found
    [#26](/bitcoin-bitcoin/26/) 1.491 -- Looking for setsid
    [#26](/bitcoin-bitcoin/26/) 1.566 -- Looking for setsid - found
    [#26](/bitcoin-bitcoin/26/) 1.566 -- Looking for C++ include sys/types.h
    [#26](/bitcoin-bitcoin/26/) 1.640 -- Looking for C++ include sys/types.h - found
    [#26](/bitcoin-bitcoin/26/) 1.640 -- Looking for C++ include ifaddrs.h
    [#26](/bitcoin-bitcoin/26/) 1.715 -- Looking for C++ include ifaddrs.h - found
    [#26](/bitcoin-bitcoin/26/) 1.715 -- Performing Test IFADDR_LINKS_WITHOUT_LIBSOCKET
    [#26](/bitcoin-bitcoin/26/) 1.792 -- Performing Test IFADDR_LINKS_WITHOUT_LIBSOCKET - Success
    [#26](/bitcoin-bitcoin/26/) 1.792 -- Performing Test STD_ATOMIC_LINKS_WITHOUT_LIBATOMIC
    [#26](/bitcoin-bitcoin/26/) 2.058 -- Performing Test STD_ATOMIC_LINKS_WITHOUT_LIBATOMIC - Success
    [#26](/bitcoin-bitcoin/26/) 2.058 -- Looking for std::system
    [#26](/bitcoin-bitcoin/26/) 2.139 -- Looking for std::system - found
    [#26](/bitcoin-bitcoin/26/) 2.139 -- Looking for ::_wsystem
    [#26](/bitcoin-bitcoin/26/) 2.164 -- Looking for ::_wsystem - not found
    [#26](/bitcoin-bitcoin/26/) 2.164 -- Performing Test STRERROR_R_CHAR_P
    [#26](/bitcoin-bitcoin/26/) 2.238 -- Performing Test STRERROR_R_CHAR_P - Success
    [#26](/bitcoin-bitcoin/26/) 2.238 -- Looking for malloc_info
    [#26](/bitcoin-bitcoin/26/) 2.313 -- Looking for malloc_info - found
    [#26](/bitcoin-bitcoin/26/) 2.313 -- Performing Test HAVE_MALLOPT_ARENA_MAX
    [#26](/bitcoin-bitcoin/26/) 2.386 -- Performing Test HAVE_MALLOPT_ARENA_MAX - Success
    [#26](/bitcoin-bitcoin/26/) 2.386 -- Performing Test HAVE_POSIX_FALLOCATE
    [#26](/bitcoin-bitcoin/26/) 2.460 -- Performing Test HAVE_POSIX_FALLOCATE - Success
    [#26](/bitcoin-bitcoin/26/) 2.460 -- Performing Test HAVE_STRONG_GETAUXVAL
    [#26](/bitcoin-bitcoin/26/) 2.532 -- Performing Test HAVE_STRONG_GETAUXVAL - Success
    [#26](/bitcoin-bitcoin/26/) 2.532 -- Performing Test HAVE_SOCKADDR_UN
    [#26](/bitcoin-bitcoin/26/) 2.607 -- Performing Test HAVE_SOCKADDR_UN - Success
    [#26](/bitcoin-bitcoin/26/) 2.607 -- Performing Test HAVE_GETRANDOM
    [#26](/bitcoin-bitcoin/26/) 2.680 -- Performing Test HAVE_GETRANDOM - Success
    [#26](/bitcoin-bitcoin/26/) 2.680 -- Performing Test HAVE_GETENTROPY_RAND
    [#26](/bitcoin-bitcoin/26/) 2.757 -- Performing Test HAVE_GETENTROPY_RAND - Success
    [#26](/bitcoin-bitcoin/26/) 2.757 -- Performing Test HAVE_SYSCTL
    [#26](/bitcoin-bitcoin/26/) 2.780 -- Performing Test HAVE_SYSCTL - Failed
    [#26](/bitcoin-bitcoin/26/) 2.780 -- Performing Test HAVE_SYSCTL_ARND
    [#26](/bitcoin-bitcoin/26/) 2.802 -- Performing Test HAVE_SYSCTL_ARND - Failed
    [#26](/bitcoin-bitcoin/26/) 2.802 -- Performing Test HAVE_SSE41
    [#26](/bitcoin-bitcoin/26/) 2.965 -- Performing Test HAVE_SSE41 - Success
    [#26](/bitcoin-bitcoin/26/) 2.965 -- Performing Test HAVE_AVX2
    [#26](/bitcoin-bitcoin/26/) 3.127 -- Performing Test HAVE_AVX2 - Success
    [#26](/bitcoin-bitcoin/26/) 3.127 -- Performing Test HAVE_X86_SHANI
    [#26](/bitcoin-bitcoin/26/) 3.284 -- Performing Test HAVE_X86_SHANI - Success
    [#26](/bitcoin-bitcoin/26/) 3.284 -- Performing Test HAVE_ARM_SHANI
    [#26](/bitcoin-bitcoin/26/) 3.304 -- Performing Test HAVE_ARM_SHANI - Failed
    [#26](/bitcoin-bitcoin/26/) 3.304 -- Performing Test CXX_SUPPORTS__WALL
    [#26](/bitcoin-bitcoin/26/) 3.346 -- Performing Test CXX_SUPPORTS__WALL - Success
    [#26](/bitcoin-bitcoin/26/) 3.346 -- Performing Test CXX_SUPPORTS__WEXTRA
    [#26](/bitcoin-bitcoin/26/) 3.388 -- Performing Test CXX_SUPPORTS__WEXTRA - Success
    [#26](/bitcoin-bitcoin/26/) 3.388 -- Performing Test CXX_SUPPORTS__WGNU
    [#26](/bitcoin-bitcoin/26/) 3.431 -- Performing Test CXX_SUPPORTS__WGNU - Success
    [#26](/bitcoin-bitcoin/26/) 3.431 -- Performing Test CXX_SUPPORTS__WFORMAT__WFORMAT_SECURITY
    [#26](/bitcoin-bitcoin/26/) 3.474 -- Performing Test CXX_SUPPORTS__WFORMAT__WFORMAT_SECURITY - Success
    [#26](/bitcoin-bitcoin/26/) 3.474 -- Performing Test CXX_SUPPORTS__WVLA
    [#26](/bitcoin-bitcoin/26/) 3.517 -- Performing Test CXX_SUPPORTS__WVLA - Success
    [#26](/bitcoin-bitcoin/26/) 3.517 -- Performing Test CXX_SUPPORTS__WSHADOW_FIELD
    [#26](/bitcoin-bitcoin/26/) 3.557 -- Performing Test CXX_SUPPORTS__WSHADOW_FIELD - Success
    [#26](/bitcoin-bitcoin/26/) 3.558 -- Performing Test CXX_SUPPORTS__WTHREAD_SAFETY
    [#26](/bitcoin-bitcoin/26/) 3.599 -- Performing Test CXX_SUPPORTS__WTHREAD_SAFETY - Success
    [#26](/bitcoin-bitcoin/26/) 3.599 -- Performing Test CXX_SUPPORTS__WLOOP_ANALYSIS
    [#26](/bitcoin-bitcoin/26/) 3.644 -- Performing Test CXX_SUPPORTS__WLOOP_ANALYSIS - Success
    [#26](/bitcoin-bitcoin/26/) 3.644 -- Performing Test CXX_SUPPORTS__WREDUNDANT_DECLS
    [#26](/bitcoin-bitcoin/26/) 3.686 -- Performing Test CXX_SUPPORTS__WREDUNDANT_DECLS - Success
    [#26](/bitcoin-bitcoin/26/) 3.687 -- Performing Test CXX_SUPPORTS__WUNUSED_MEMBER_FUNCTION
    [#26](/bitcoin-bitcoin/26/) 3.727 -- Performing Test CXX_SUPPORTS__WUNUSED_MEMBER_FUNCTION - Success
    [#26](/bitcoin-bitcoin/26/) 3.727 -- Performing Test CXX_SUPPORTS__WDATE_TIME
    [#26](/bitcoin-bitcoin/26/) 3.769 -- Performing Test CXX_SUPPORTS__WDATE_TIME - Success
    [#26](/bitcoin-bitcoin/26/) 3.769 -- Performing Test CXX_SUPPORTS__WCONDITIONAL_UNINITIALIZED
    [#26](/bitcoin-bitcoin/26/) 3.811 -- Performing Test CXX_SUPPORTS__WCONDITIONAL_UNINITIALIZED - Success
    [#26](/bitcoin-bitcoin/26/) 3.811 -- Performing Test CXX_SUPPORTS__WDUPLICATED_BRANCHES
    [#26](/bitcoin-bitcoin/26/) 3.830 -- Performing Test CXX_SUPPORTS__WDUPLICATED_BRANCHES - Failed
    [#26](/bitcoin-bitcoin/26/) 3.830 -- Performing Test CXX_SUPPORTS__WDUPLICATED_COND
    [#26](/bitcoin-bitcoin/26/) 3.848 -- Performing Test CXX_SUPPORTS__WDUPLICATED_COND - Failed
    [#26](/bitcoin-bitcoin/26/) 3.848 -- Performing Test CXX_SUPPORTS__WLOGICAL_OP
    [#26](/bitcoin-bitcoin/26/) 3.867 -- Performing Test CXX_SUPPORTS__WLOGICAL_OP - Failed
    [#26](/bitcoin-bitcoin/26/) 3.867 -- Performing Test CXX_SUPPORTS__WOVERLOADED_VIRTUAL
    [#26](/bitcoin-bitcoin/26/) 3.908 -- Performing Test CXX_SUPPORTS__WOVERLOADED_VIRTUAL - Success
    [#26](/bitcoin-bitcoin/26/) 3.909 -- Performing Test CXX_SUPPORTS__WSUGGEST_OVERRIDE
    [#26](/bitcoin-bitcoin/26/) 3.949 -- Performing Test CXX_SUPPORTS__WSUGGEST_OVERRIDE - Success
    [#26](/bitcoin-bitcoin/26/) 3.949 -- Performing Test CXX_SUPPORTS__WIMPLICIT_FALLTHROUGH
    [#26](/bitcoin-bitcoin/26/) 3.989 -- Performing Test CXX_SUPPORTS__WIMPLICIT_FALLTHROUGH - Success
    [#26](/bitcoin-bitcoin/26/) 3.990 -- Performing Test CXX_SUPPORTS__WUNREACHABLE_CODE
    [#26](/bitcoin-bitcoin/26/) 4.030 -- Performing Test CXX_SUPPORTS__WUNREACHABLE_CODE - Success
    [#26](/bitcoin-bitcoin/26/) 4.030 -- Performing Test CXX_SUPPORTS__WDOCUMENTATION
    [#26](/bitcoin-bitcoin/26/) 4.072 -- Performing Test CXX_SUPPORTS__WDOCUMENTATION - Success
    [#26](/bitcoin-bitcoin/26/) 4.072 -- Performing Test CXX_SUPPORTS__WSELF_ASSIGN
    [#26](/bitcoin-bitcoin/26/) 4.114 -- Performing Test CXX_SUPPORTS__WSELF_ASSIGN - Success
    [#26](/bitcoin-bitcoin/26/) 4.114 -- Performing Test CXX_SUPPORTS__WBIDI_CHARS_ANY
    [#26](/bitcoin-bitcoin/26/) 4.133 -- Performing Test CXX_SUPPORTS__WBIDI_CHARS_ANY - Failed
    [#26](/bitcoin-bitcoin/26/) 4.133 -- Performing Test CXX_SUPPORTS__WUNDEF
    [#26](/bitcoin-bitcoin/26/) 4.175 -- Performing Test CXX_SUPPORTS__WUNDEF - Success
    [#26](/bitcoin-bitcoin/26/) 4.175 -- Performing Test CXX_SUPPORTS__WUNUSED_PARAMETER
    [#26](/bitcoin-bitcoin/26/) 4.217 -- Performing Test CXX_SUPPORTS__WUNUSED_PARAMETER - Success
    [#26](/bitcoin-bitcoin/26/) 4.217 -- Performing Test CXX_SUPPORTS__FNO_EXTENDED_IDENTIFIERS
    [#26](/bitcoin-bitcoin/26/) 4.236 -- Performing Test CXX_SUPPORTS__FNO_EXTENDED_IDENTIFIERS - Failed
    [#26](/bitcoin-bitcoin/26/) 4.236 -- Performing Test CXX_SUPPORTS__FDEBUG_PREFIX_MAP_A_B
    [#26](/bitcoin-bitcoin/26/) 4.278 -- Performing Test CXX_SUPPORTS__FDEBUG_PREFIX_MAP_A_B - Success
    [#26](/bitcoin-bitcoin/26/) 4.278 -- Performing Test CXX_SUPPORTS__FMACRO_PREFIX_MAP_A_B
    [#26](/bitcoin-bitcoin/26/) 4.321 -- Performing Test CXX_SUPPORTS__FMACRO_PREFIX_MAP_A_B - Success
    [#26](/bitcoin-bitcoin/26/) 4.321 -- Performing Test CXX_SUPPORTS__FSTACK_REUSE_NONE
    [#26](/bitcoin-bitcoin/26/) 4.340 -- Performing Test CXX_SUPPORTS__FSTACK_REUSE_NONE - Failed
    [#26](/bitcoin-bitcoin/26/) 4.340 -- Performing Test CXX_SUPPORTS__U_FORTIFY_SOURCE__D_FORTIFY_SOURCE_3_2d08
    [#26](/bitcoin-bitcoin/26/) 4.381 -- Performing Test CXX_SUPPORTS__U_FORTIFY_SOURCE__D_FORTIFY_SOURCE_3_2d08 - Success
    [#26](/bitcoin-bitcoin/26/) 4.381 -- Performing Test LINKER_SUPPORTS__U_FORTIFY_SOURCE__D_FORTIFY_SOURCE_3_2d08
    [#26](/bitcoin-bitcoin/26/) 4.449 -- Performing Test LINKER_SUPPORTS__U_FORTIFY_SOURCE__D_FORTIFY_SOURCE_3_2d08 - Success
    [#26](/bitcoin-bitcoin/26/) 4.449 -- Performing Test CXX_SUPPORTS__WSTACK_PROTECTOR
    [#26](/bitcoin-bitcoin/26/) 4.491 -- Performing Test CXX_SUPPORTS__WSTACK_PROTECTOR - Success
    [#26](/bitcoin-bitcoin/26/) 4.491 -- Performing Test CXX_SUPPORTS__FSTACK_PROTECTOR_ALL
    [#26](/bitcoin-bitcoin/26/) 4.534 -- Performing Test CXX_SUPPORTS__FSTACK_PROTECTOR_ALL - Success
    [#26](/bitcoin-bitcoin/26/) 4.534 -- Performing Test LINKER_SUPPORTS__FSTACK_PROTECTOR_ALL
    [#26](/bitcoin-bitcoin/26/) 4.603 -- Performing Test LINKER_SUPPORTS__FSTACK_PROTECTOR_ALL - Success
    [#26](/bitcoin-bitcoin/26/) 4.603 -- Performing Test CXX_SUPPORTS__FCF_PROTECTION_FULL
    [#26](/bitcoin-bitcoin/26/) 4.646 -- Performing Test CXX_SUPPORTS__FCF_PROTECTION_FULL - Success
    [#26](/bitcoin-bitcoin/26/) 4.647 -- Performing Test LINKER_SUPPORTS__FCF_PROTECTION_FULL
    [#26](/bitcoin-bitcoin/26/) 4.714 -- Performing Test LINKER_SUPPORTS__FCF_PROTECTION_FULL - Success
    [#26](/bitcoin-bitcoin/26/) 4.714 -- Performing Test CXX_SUPPORTS__FSTACK_CLASH_PROTECTION
    [#26](/bitcoin-bitcoin/26/) 4.757 -- Performing Test CXX_SUPPORTS__FSTACK_CLASH_PROTECTION - Success
    [#26](/bitcoin-bitcoin/26/) 4.757 -- Performing Test LINKER_SUPPORTS__FSTACK_CLASH_PROTECTION
    [#26](/bitcoin-bitcoin/26/) 4.825 -- Performing Test LINKER_SUPPORTS__FSTACK_CLASH_PROTECTION - Success
    [#26](/bitcoin-bitcoin/26/) 4.825 -- Performing Test LINKER_SUPPORTS__WL___ENABLE_RELOC_SECTION
    [#26](/bitcoin-bitcoin/26/) 4.868 -- Performing Test LINKER_SUPPORTS__WL___ENABLE_RELOC_SECTION - Failed
    [#26](/bitcoin-bitcoin/26/) 4.868 -- Performing Test LINKER_SUPPORTS__WL___DYNAMICBASE
    [#26](/bitcoin-bitcoin/26/) 4.910 -- Performing Test LINKER_SUPPORTS__WL___DYNAMICBASE - Failed
    [#26](/bitcoin-bitcoin/26/) 4.910 -- Performing Test LINKER_SUPPORTS__WL___NXCOMPAT
    [#26](/bitcoin-bitcoin/26/) 4.953 -- Performing Test LINKER_SUPPORTS__WL___NXCOMPAT - Failed
    [#26](/bitcoin-bitcoin/26/) 4.953 -- Performing Test LINKER_SUPPORTS__WL___HIGH_ENTROPY_VA
    [#26](/bitcoin-bitcoin/26/) 4.996 -- Performing Test LINKER_SUPPORTS__WL___HIGH_ENTROPY_VA - Failed
    [#26](/bitcoin-bitcoin/26/) 4.997 -- Performing Test LINKER_SUPPORTS__WL__Z_RELRO
    [#26](/bitcoin-bitcoin/26/) 5.065 -- Performing Test LINKER_SUPPORTS__WL__Z_RELRO - Success
    [#26](/bitcoin-bitcoin/26/) 5.065 -- Performing Test LINKER_SUPPORTS__WL__Z_NOW
    [#26](/bitcoin-bitcoin/26/) 5.134 -- Performing Test LINKER_SUPPORTS__WL__Z_NOW - Success
    [#26](/bitcoin-bitcoin/26/) 5.134 -- Performing Test LINKER_SUPPORTS__WL__Z_SEPARATE_CODE
    [#26](/bitcoin-bitcoin/26/) 5.205 -- Performing Test LINKER_SUPPORTS__WL__Z_SEPARATE_CODE - Success
    [#26](/bitcoin-bitcoin/26/) 5.247 -- Found Python3: /usr/bin/python3 (found suitable version "3.11.2", minimum required is "3.10") found components: Interpreter 
    [#26](/bitcoin-bitcoin/26/) 5.253 -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE dot) 
    [#26](/bitcoin-bitcoin/26/) 5.255 -- Performing Test HAVE_BUILTIN_PREFETCH
    [#26](/bitcoin-bitcoin/26/) 5.329 -- Performing Test HAVE_BUILTIN_PREFETCH - Success
    [#26](/bitcoin-bitcoin/26/) 5.329 -- Performing Test HAVE_MM_PREFETCH
    [#26](/bitcoin-bitcoin/26/) 5.413 -- Performing Test HAVE_MM_PREFETCH - Success
    [#26](/bitcoin-bitcoin/26/) 5.413 -- Performing Test HAVE_SSE42
    [#26](/bitcoin-bitcoin/26/) 5.498 -- Performing Test HAVE_SSE42 - Success
    [#26](/bitcoin-bitcoin/26/) 5.498 -- Performing Test HAVE_ARM64_CRC32C
    [#26](/bitcoin-bitcoin/26/) 5.518 -- Performing Test HAVE_ARM64_CRC32C - Failed
    [#26](/bitcoin-bitcoin/26/) 5.518 -- Looking for F_FULLFSYNC
    [#26](/bitcoin-bitcoin/26/) 5.538 -- Looking for F_FULLFSYNC - not found
    [#26](/bitcoin-bitcoin/26/) 5.539 -- Performing Test HAVE_CLMUL
    [#26](/bitcoin-bitcoin/26/) 5.697 -- Performing Test HAVE_CLMUL - Success
    [#26](/bitcoin-bitcoin/26/) 5.698 
    [#26](/bitcoin-bitcoin/26/) 5.698 Configuring secp256k1 subtree...
    [#26](/bitcoin-bitcoin/26/) 5.732 -- The C compiler identification is Clang 19.1.7
    [#26](/bitcoin-bitcoin/26/) 5.735 -- Detecting C compiler ABI info
    [#26](/bitcoin-bitcoin/26/) 5.783 -- Detecting C compiler ABI info - done
    [#26](/bitcoin-bitcoin/26/) 5.788 -- Check for working C compiler: /AFLplusplus/afl-clang-fast - skipped
    [#26](/bitcoin-bitcoin/26/) 5.788 -- Detecting C compile features
    [#26](/bitcoin-bitcoin/26/) 5.788 -- Detecting C compile features - done
    [#26](/bitcoin-bitcoin/26/) 5.789 -- Performing Test HAVE_X86_64_ASM
    [#26](/bitcoin-bitcoin/26/) 5.835 -- Performing Test HAVE_X86_64_ASM - Success
    [#26](/bitcoin-bitcoin/26/) 5.836 -- Could NOT find Valgrind (missing: Valgrind_INCLUDE_DIR Valgrind_WORKS) 
    [#26](/bitcoin-bitcoin/26/) 5.836 -- Performing Test C_SUPPORTS__PEDANTIC
    [#26](/bitcoin-bitcoin/26/) 5.881 -- Performing Test C_SUPPORTS__PEDANTIC - Success
    [#26](/bitcoin-bitcoin/26/) 5.882 -- Performing Test C_SUPPORTS__WALL
    [#26](/bitcoin-bitcoin/26/) 5.924 -- Performing Test C_SUPPORTS__WALL - Success
    [#26](/bitcoin-bitcoin/26/) 5.924 -- Performing Test C_SUPPORTS__WCAST_ALIGN
    [#26](/bitcoin-bitcoin/26/) 5.968 -- Performing Test C_SUPPORTS__WCAST_ALIGN - Success
    [#26](/bitcoin-bitcoin/26/) 5.968 -- Performing Test C_SUPPORTS__WCAST_ALIGN_STRICT
    [#26](/bitcoin-bitcoin/26/) 5.987 -- Performing Test C_SUPPORTS__WCAST_ALIGN_STRICT - Failed
    [#26](/bitcoin-bitcoin/26/) 5.987 -- Performing Test C_SUPPORTS__WCONDITIONAL_UNINITIALIZED
    [#26](/bitcoin-bitcoin/26/) 6.030 -- Performing Test C_SUPPORTS__WCONDITIONAL_UNINITIALIZED - Success
    [#26](/bitcoin-bitcoin/26/) 6.031 -- Performing Test C_SUPPORTS__WEXTRA
    [#26](/bitcoin-bitcoin/26/) 6.074 -- Performing Test C_SUPPORTS__WEXTRA - Success
    [#26](/bitcoin-bitcoin/26/) 6.074 -- Performing Test C_SUPPORTS__WNESTED_EXTERNS
    [#26](/bitcoin-bitcoin/26/) 6.116 -- Performing Test C_SUPPORTS__WNESTED_EXTERNS - Success
    [#26](/bitcoin-bitcoin/26/) 6.117 -- Performing Test C_SUPPORTS__WNO_LONG_LONG
    [#26](/bitcoin-bitcoin/26/) 6.161 -- Performing Test C_SUPPORTS__WNO_LONG_LONG - Success
    [#26](/bitcoin-bitcoin/26/) 6.162 -- Performing Test C_SUPPORTS__WNO_OVERLENGTH_STRINGS
    [#26](/bitcoin-bitcoin/26/) 6.204 -- Performing Test C_SUPPORTS__WNO_OVERLENGTH_STRINGS - Success
    [#26](/bitcoin-bitcoin/26/) 6.204 -- Performing Test C_SUPPORTS__WNO_UNUSED_FUNCTION
    [#26](/bitcoin-bitcoin/26/) 6.246 -- Performing Test C_SUPPORTS__WNO_UNUSED_FUNCTION - Success
    [#26](/bitcoin-bitcoin/26/) 6.247 -- Performing Test C_SUPPORTS__WRESERVED_IDENTIFIER
    [#26](/bitcoin-bitcoin/26/) 6.290 -- Performing Test C_SUPPORTS__WRESERVED_IDENTIFIER - Success
    [#26](/bitcoin-bitcoin/26/) 6.291 -- Performing Test C_SUPPORTS__WSHADOW
    [#26](/bitcoin-bitcoin/26/) 6.333 -- Performing Test C_SUPPORTS__WSHADOW - Success
    [#26](/bitcoin-bitcoin/26/) 6.334 -- Performing Test C_SUPPORTS__WSTRICT_PROTOTYPES
    [#26](/bitcoin-bitcoin/26/) 6.377 -- Performing Test C_SUPPORTS__WSTRICT_PROTOTYPES - Success
    [#26](/bitcoin-bitcoin/26/) 6.378 -- Performing Test C_SUPPORTS__WUNDEF
    [#26](/bitcoin-bitcoin/26/) 6.420 -- Performing Test C_SUPPORTS__WUNDEF - Success
    [#26](/bitcoin-bitcoin/26/) 6.422 
    [#26](/bitcoin-bitcoin/26/) 6.422 
    [#26](/bitcoin-bitcoin/26/) 6.422 secp256k1 configure summary
    [#26](/bitcoin-bitcoin/26/) 6.422 ===========================
    [#26](/bitcoin-bitcoin/26/) 6.422 Build artifacts:
    [#26](/bitcoin-bitcoin/26/) 6.422   library type ........................ Static
    [#26](/bitcoin-bitcoin/26/) 6.422 Optional modules:
    [#26](/bitcoin-bitcoin/26/) 6.422   ECDH ................................ OFF
    [#26](/bitcoin-bitcoin/26/) 6.422   ECDSA pubkey recovery ............... ON
    [#26](/bitcoin-bitcoin/26/) 6.422   extrakeys ........................... ON
    [#26](/bitcoin-bitcoin/26/) 6.422   schnorrsig .......................... ON
    [#26](/bitcoin-bitcoin/26/) 6.422   musig ............................... OFF
    [#26](/bitcoin-bitcoin/26/) 6.422   ElligatorSwift ...................... ON
    [#26](/bitcoin-bitcoin/26/) 6.422 Parameters:
    [#26](/bitcoin-bitcoin/26/) 6.422   ecmult window size .................. 15
    [#26](/bitcoin-bitcoin/26/) 6.422   ecmult gen table size ............... 86 KiB
    [#26](/bitcoin-bitcoin/26/) 6.422 Optional features:
    [#26](/bitcoin-bitcoin/26/) 6.422   assembly ............................ x86_64
    [#26](/bitcoin-bitcoin/26/) 6.422   external callbacks .................. OFF
    [#26](/bitcoin-bitcoin/26/) 6.422 Optional binaries:
    [#26](/bitcoin-bitcoin/26/) 6.422   benchmark ........................... OFF
    [#26](/bitcoin-bitcoin/26/) 6.422   noverify_tests ...................... ON
    [#26](/bitcoin-bitcoin/26/) 6.422   tests ............................... ON
    [#26](/bitcoin-bitcoin/26/) 6.422   exhaustive tests .................... ON
    [#26](/bitcoin-bitcoin/26/) 6.422   ctime_tests ......................... OFF
    [#26](/bitcoin-bitcoin/26/) 6.422   examples ............................ OFF
    [#26](/bitcoin-bitcoin/26/) 6.422 
    [#26](/bitcoin-bitcoin/26/) 6.422 Cross compiling ....................... FALSE
    [#26](/bitcoin-bitcoin/26/) 6.422 Valgrind .............................. OFF
    [#26](/bitcoin-bitcoin/26/) 6.422 Preprocessor defined macros ........... ENABLE_MODULE_ELLSWIFT=1 ENABLE_MODULE_SCHNORRSIG=1 ENABLE_MODULE_EXTRAKEYS=1 ENABLE_MODULE_RECOVERY=1 ECMULT_WINDOW_SIZE=15 COMB_BLOCKS=43 COMB_TEETH=6 USE_ASM_X86_64=1
    [#26](/bitcoin-bitcoin/26/) 6.422 C compiler ............................ Clang 19.1.7, /AFLplusplus/afl-clang-fast
    [#26](/bitcoin-bitcoin/26/) 6.422 CFLAGS ................................ -pipe -std=c11
    [#26](/bitcoin-bitcoin/26/) 6.422 Compile options ....................... -pedantic -Wall -Wcast-align -Wconditional-uninitialized -Wextra -Wnested-externs -Wno-long-long -Wno-overlength-strings -Wno-unused-function -Wreserved-identifier -Wshadow -Wstrict-prototypes -Wundef
    [#26](/bitcoin-bitcoin/26/) 6.422 Build type:
    [#26](/bitcoin-bitcoin/26/) 6.422  - CMAKE_BUILD_TYPE ................... RelWithDebInfo
    [#26](/bitcoin-bitcoin/26/) 6.422  - CFLAGS ............................. -O2 -g 
    [#26](/bitcoin-bitcoin/26/) 6.422  - LDFLAGS for executables ............ 
    [#26](/bitcoin-bitcoin/26/) 6.422  - LDFLAGS for shared libraries ....... 
    [#26](/bitcoin-bitcoin/26/) 6.422 SECP256K1_APPEND_CFLAGS ............... -fsanitize=address -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fcf-protection=none
    [#26](/bitcoin-bitcoin/26/) 6.422 SECP256K1_APPEND_LDFLAGS .............. -fsanitize=address -fcf-protection=none
    [#26](/bitcoin-bitcoin/26/) 6.422 
    [#26](/bitcoin-bitcoin/26/) 6.430 
    [#26](/bitcoin-bitcoin/26/) 6.430 
    [#26](/bitcoin-bitcoin/26/) 6.430 Configure summary
    [#26](/bitcoin-bitcoin/26/) 6.430 =================
    [#26](/bitcoin-bitcoin/26/) 6.430 Executables:
    [#26](/bitcoin-bitcoin/26/) 6.430   bitcoind ............................ ON
    [#26](/bitcoin-bitcoin/26/) 6.430   bitcoin-node (multiprocess) ......... OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   bitcoin-qt (GUI) .................... OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   bitcoin-gui (GUI, multiprocess) ..... OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   bitcoin-cli ......................... ON
    [#26](/bitcoin-bitcoin/26/) 6.430   bitcoin-tx .......................... ON
    [#26](/bitcoin-bitcoin/26/) 6.430   bitcoin-util ........................ ON
    [#26](/bitcoin-bitcoin/26/) 6.430   bitcoin-wallet ...................... ON
    [#26](/bitcoin-bitcoin/26/) 6.430   bitcoin-chainstate (experimental) ... OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   libbitcoinkernel (experimental) ..... OFF
    [#26](/bitcoin-bitcoin/26/) 6.430 Optional features:
    [#26](/bitcoin-bitcoin/26/) 6.430   wallet support ...................... ON
    [#26](/bitcoin-bitcoin/26/) 6.430    - legacy wallets (Berkeley DB) ..... OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   external signer ..................... ON
    [#26](/bitcoin-bitcoin/26/) 6.430   ZeroMQ .............................. OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   IPC ................................. OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   USDT tracing ........................ OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   QR code (GUI) ....................... OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   DBus (GUI, Linux only) .............. OFF
    [#26](/bitcoin-bitcoin/26/) 6.430 Tests:
    [#26](/bitcoin-bitcoin/26/) 6.430   test_bitcoin ........................ ON
    [#26](/bitcoin-bitcoin/26/) 6.430   test_bitcoin-qt ..................... OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   bench_bitcoin ....................... OFF
    [#26](/bitcoin-bitcoin/26/) 6.430   fuzz binary ......................... OFF
    [#26](/bitcoin-bitcoin/26/) 6.430 
    [#26](/bitcoin-bitcoin/26/) 6.430 Cross compiling ....................... FALSE
    [#26](/bitcoin-bitcoin/26/) 6.430 C++ compiler .......................... Clang 19.1.7, /AFLplusplus/afl-clang-fast++
    [#26](/bitcoin-bitcoin/26/) 6.431 CMAKE_BUILD_TYPE ...................... RelWithDebInfo
    [#26](/bitcoin-bitcoin/26/) 6.431 Preprocessor defined macros ........... 
    [#26](/bitcoin-bitcoin/26/) 6.431 C++ compiler flags .................... -pipe -std=c++20 -O2 -g -std=c++20 -fPIC -fdebug-prefix-map=/bitcoin/src=. -fmacro-prefix-map=/bitcoin/src=. -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection -fsanitize=address -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 -Wimplicit-fallthrough -Wunreachable-code -Wdocumentation -Wself-assign -Wundef -Wno-unused-parameter -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fcf-protection=none
    [#26](/bitcoin-bitcoin/26/) 6.431 Linker flags .......................... -pipe -std=c++20 -O2 -g -fstack-protector-all -fcf-protection=full -fstack-clash-protection -Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code -fsanitize=address -fPIE -pie -fcf-protection=none
    [#26](/bitcoin-bitcoin/26/) 6.431 
    [#26](/bitcoin-bitcoin/26/) 6.431 NOTE: The summary above may not exactly match the final applied build flags
    [#26](/bitcoin-bitcoin/26/) 6.431       if any additional CMAKE_* or environment variables have been modified.
    [#26](/bitcoin-bitcoin/26/) 6.431       To see the exact flags applied, build with the --verbose option.
    [#26](/bitcoin-bitcoin/26/) 6.431 
    [#26](/bitcoin-bitcoin/26/) 6.431 Treat compiler warnings as errors ..... OFF
    [#26](/bitcoin-bitcoin/26/) 6.431 Use ccache for compiling .............. OFF
    [#26](/bitcoin-bitcoin/26/) 6.431 
    [#26](/bitcoin-bitcoin/26/) 6.431 
    [#26](/bitcoin-bitcoin/26/) 6.431 -- Configuring done
    [#26](/bitcoin-bitcoin/26/) 6.471 -- Generating done
    [#26](/bitcoin-bitcoin/26/) 6.473 -- Build files have been written to: /bitcoin/build_fuzz
    [#26](/bitcoin-bitcoin/26/) DONE 6.5s
    

    </details>

    And, (modifying the Dockerfile to make the cmake --build --verbose) here is the build command that fails:

    [#27](/bitcoin-bitcoin/27/) 25.07 [100%] Linking CXX executable ../bin/bitcoind
    [#27](/bitcoin-bitcoin/27/) 25.07 cd /bitcoin/build_fuzz/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/bitcoind.dir/link.txt --verbose=1
    [#27](/bitcoin-bitcoin/27/) 25.07 /AFLplusplus/afl-clang-fast++ -pipe -std=c++20 -O2 -g -fstack-protector-all -fcf-protection=full -fstack-clash
    -protection -Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code -fsanitize=address -fPIE -pie CMakeFiles/bitcoind.dir/bitcoind.
    cpp.o CMakeFiles/bitcoind.dir/init/bitcoind.cpp.o -o ../bin/bitcoind  ../lib/libbitcoin_node.a ../lib/libbitcoin_wallet.
    a libleveldb.a libcrc32c.a libminisketch.a /bitcoin/depends/x86_64-pc-linux-gnu/lib/libevent_extra.a /bitcoin/depends/x8
    6_64-pc-linux-gnu/lib/libevent_pthreads.a /bitcoin/depends/x86_64-pc-linux-gnu/lib/libevent_core.a ../lib/libbitcoin_com
    mon.a ../lib/libbitcoin_util.a ../lib/libbitcoin_clientversion.a ../lib/libbitcoin_consensus.a ../lib/libbitcoin_crypto.
    a secp256k1/lib/libsecp256k1.a univalue/libunivalue.a /bitcoin/depends/x86_64-pc-linux-gnu/lib/libsqlite3.a  -fcf-protec
    tion=none
    [#27](/bitcoin-bitcoin/27/) 218.8 /usr/bin/ld: error: LLVM gold plugin: inline assembly requires more registers than available at line 2171
    [#27](/bitcoin-bitcoin/27/) 218.9 clang++: error: linker command failed with exit code 1 (use -v to see invocation)
    
  30. hebasto commented at 10:13 PM on April 30, 2025: member

    @davidgumberg

    Could someone provide configuration options and a line from the verbose build to show what exactly is broken?

    Reproduced as follows:

    Thank you!

    Could you please try the following patch:

    diff --git a/CMakeLists.txt b/CMakeLists.txt
    index 99490f742a..47d50b6ba7 100644
    --- a/CMakeLists.txt
    +++ b/CMakeLists.txt
    @@ -192,9 +192,9 @@ set(APPEND_CXXFLAGS "" CACHE STRING "(Objective) C++ compiler flags that are app
     set(APPEND_LDFLAGS "" CACHE STRING "Linker flags that are appended to the command line after all other flags added by the build system. This variable is intended for debugging and special builds.")
     # Appending to this low-level rule variables is the only way to
     # guarantee that the flags appear at the end of the command line.
    -string(APPEND CMAKE_CXX_COMPILE_OBJECT " ${APPEND_CPPFLAGS} ${APPEND_CXXFLAGS}")
    -string(APPEND CMAKE_CXX_CREATE_SHARED_LIBRARY " ${APPEND_LDFLAGS}")
    -string(APPEND CMAKE_CXX_LINK_EXECUTABLE " ${APPEND_LDFLAGS}")
    +string(REPLACE "<FLAGS>" "<FLAGS> ${APPEND_CPPFLAGS} ${APPEND_CXXFLAGS}" CMAKE_CXX_COMPILE_OBJECT "${CMAKE_CXX_COMPILE_OBJECT}")
    +string(REPLACE "<LINK_FLAGS>" "<LINK_FLAGS> ${APPEND_LDFLAGS}" CMAKE_CXX_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
    +string(REPLACE "<LINK_FLAGS>" "<LINK_FLAGS> ${APPEND_LDFLAGS}" CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE}")
     
     set(configure_warnings)
     
    diff --git a/src/secp256k1/CMakeLists.txt b/src/secp256k1/CMakeLists.txt
    index 041bfa3dca..9f4f2fd40d 100644
    --- a/src/secp256k1/CMakeLists.txt
    +++ b/src/secp256k1/CMakeLists.txt
    @@ -284,15 +284,15 @@ set(SECP256K1_APPEND_CFLAGS "" CACHE STRING "Compiler flags that are appended to
     if(SECP256K1_APPEND_CFLAGS)
       # Appending to this low-level rule variable is the only way to
       # guarantee that the flags appear at the end of the command line.
    -  string(APPEND CMAKE_C_COMPILE_OBJECT " ${SECP256K1_APPEND_CFLAGS}")
    +  string(REPLACE "<FLAGS>" "<FLAGS> ${SECP256K1_APPEND_CFLAGS}" CMAKE_C_COMPILE_OBJECT "${CMAKE_C_COMPILE_OBJECT}")
     endif()
     
     set(SECP256K1_APPEND_LDFLAGS "" CACHE STRING "Linker flags that are appended to the command line after all other flags added by the build system. This variable is intended for debugging and special builds.")
     if(SECP256K1_APPEND_LDFLAGS)
       # Appending to this low-level rule variable is the only way to
       # guarantee that the flags appear at the end of the command line.
    -  string(APPEND CMAKE_C_CREATE_SHARED_LIBRARY " ${SECP256K1_APPEND_LDFLAGS}")
    -  string(APPEND CMAKE_C_LINK_EXECUTABLE " ${SECP256K1_APPEND_LDFLAGS}")
    +  string(REPLACE "<LINK_FLAGS>" "<LINK_FLAGS> ${SECP256K1_APPEND_LDFLAGS}" CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_C_CREATE_SHARED_LIBRARY}")
    +  string(REPLACE "<LINK_FLAGS>" "<LINK_FLAGS> ${SECP256K1_APPEND_LDFLAGS}" CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_LINK_EXECUTABLE}")
     endif()
     
     if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
    

    ?

  31. davidgumberg referenced this in commit 7b0cf3d852 on Apr 30, 2025
  32. davidgumberg commented at 1:26 AM on May 1, 2025: contributor

    Could you please try the following patch:

    [...]

    It failed with this build command:

    26.64 /AFLplusplus/afl-clang-fast++ -pipe -std=c++20 -O2 -g -fstack-protector-all -fcf-protection=full -fstack-clash-pro
    tection -Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code -fsanitize=address -fPIE -pie -fcf-protection=none CMakeFiles/bitco
    ind.dir/bitcoind.cpp.o CMakeFiles/bitcoind.dir/init/bitcoind.cpp.o -o ../bin/bitcoind  ../lib/libbitcoin_node.a ../lib/l
    ibbitcoin_wallet.a libleveldb.a libcrc32c.a libminisketch.a /bitcoin/depends/x86_64-pc-linux-gnu/lib/libevent_extra.a /b
    itcoin/depends/x86_64-pc-linux-gnu/lib/libevent_pthreads.a /bitcoin/depends/x86_64-pc-linux-gnu/lib/libevent_core.a ../l
    ib/libbitcoin_common.a ../lib/libbitcoin_util.a ../lib/libbitcoin_clientversion.a ../lib/libbitcoin_consensus.a ../lib/l
    ibbitcoin_crypto.a secp256k1/lib/libsecp256k1.a univalue/libunivalue.a /bitcoin/depends/x86_64-pc-linux-gnu/lib/libsqlit
    e3.a
    231.7 /usr/bin/ld: error: LLVM gold plugin: inline assembly requires more registers than available at line 2171
    231.9 clang++: error: linker command failed with exit code 1 (use -v to see invocation)
    
  33. hebasto commented at 2:45 PM on May 2, 2025: member

    My guess is that /AFLplusplus/afl-clang-fast++ fails to handle the -fcf-protection=full -fcf-protection=none flags properly.

  34. fanquake referenced this in commit 18163a87f7 on May 7, 2025
  35. fanquake referenced this in commit b47d267a0b on May 7, 2025
  36. fanquake referenced this in commit 4e8ab5e00f on May 7, 2025
  37. fanquake added the label Build system on May 7, 2025
  38. fanquake closed this on May 8, 2025

  39. fanquake referenced this in commit 03ebdd0793 on May 8, 2025

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: 2026-04-26 09:13 UTC

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