Unable to fuzz in local on MacOS 15.4.1 #33667

issue rkrux openend this issue on October 21, 2025
  1. rkrux commented at 11:38 am on October 21, 2025: contributor

    Reproduction steps as per libfuzzer:

    0$ brew install llvm lld
    1$ cmake --preset=libfuzzer \
    2   -DCMAKE_C_COMPILER="$(brew --prefix llvm)/bin/clang" \
    3   -DCMAKE_CXX_COMPILER="$(brew --prefix llvm)/bin/clang++" \
    4   -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld"
    5$ cmake --build build_fuzz
    
     0[ 99%] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/__/__/wallet/test/fuzz/spend.cpp.o
     1[100%] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/__/__/wallet/test/fuzz/scriptpubkeyman.cpp.o
     2[100%] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/__/__/wallet/test/fuzz/wallet_bdb_parser.cpp.o
     3[100%] Linking CXX executable ../../../bin/fuzz
     4ld64.lld: error: undefined symbol: std::__1::__hash_memory(void const*, unsigned long)
     5>>> referenced by /Users/rkrux/projects/rkrux/bitcoin/build_fuzz/src/util/./support/lockedpool.cpp
     6>>>               ../../../lib/libbitcoin_util.a(lockedpool.cpp.o):(symbol std::__1::pair<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<void*, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, void*>*>, bool> std::__1::__hash_table<std::__1::__hash_value_type<void*, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, std::__1::__unordered_map_hasher<void*, std::__1::pair<void* const, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, std::__1::hash<void*>, std::__1::equal_to<void*>, true>, std::__1::__unordered_map_equal<void*, std::__1::pair<void* const, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, std::__1::equal_to<void*>, std::__1::hash<void*>, true>, std::__1::allocator<std::__1::pair<void* const, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>>>::__emplace_unique_key_args<void*, void*&, std::__1::__map_iterator<std::__1::__tree_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>&>(void* const&, void*&, std::__1::__map_iterator<std::__1::__tree_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>&)+0x100)
     7>>> referenced by /Users/rkrux/projects/rkrux/bitcoin/build_fuzz/src/util/./support/lockedpool.cpp
     8>>>               ../../../lib/libbitcoin_util.a(lockedpool.cpp.o):(symbol std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<void*, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<void*, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, void*>>>> std::__1::__hash_table<std::__1::__hash_value_type<void*, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, std::__1::__unordered_map_hasher<void*, std::__1::pair<void* const, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, std::__1::hash<void*>, std::__1::equal_to<void*>, true>, std::__1::__unordered_map_equal<void*, std::__1::pair<void* const, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, std::__1::equal_to<void*>, std::__1::hash<void*>, true>, std::__1::allocator<std::__1::pair<void* const, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>>>::__construct_node<char*, std::__1::__map_iterator<std::__1::__tree_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>&>(char*&&, std::__1::__map_iterator<std::__1::__tree_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>&)+0x2d1)
     9>>> referenced by /Users/rkrux/projects/rkrux/bitcoin/build_fuzz/src/util/./support/lockedpool.cpp
    10>>>               ../../../lib/libbitcoin_util.a(lockedpool.cpp.o):(symbol std::__1::__hash_table<std::__1::__hash_value_type<void*, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, std::__1::__unordered_map_hasher<void*, std::__1::pair<void* const, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, std::__1::hash<void*>, std::__1::equal_to<void*>, true>, std::__1::__unordered_map_equal<void*, std::__1::pair<void* const, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, std::__1::equal_to<void*>, std::__1::hash<void*>, true>, std::__1::allocator<std::__1::pair<void* const, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>>>::__node_insert_unique(std::__1::__hash_node<std::__1::__hash_value_type<void*, std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<unsigned long, void*>, std::__1::__tree_node<std::__1::__value_type<unsigned long, void*>, void*>*, long>>>, void*>*)+0x116)
    11>>> referenced 19 more times
    12clang++: error: linker command failed with exit code 1 (use -v to see invocation)
    13make[2]: *** [bin/fuzz] Error 1
    14make[1]: *** [src/test/fuzz/CMakeFiles/fuzz.dir/all] Error 2
    15make: *** [all] Error 2
    
  2. maflcko added the label Tests on Oct 21, 2025
  3. maflcko added the label Docs on Oct 21, 2025
  4. maflcko added the label macOS on Oct 21, 2025
  5. maflcko commented at 12:59 pm on October 21, 2025: member

    There are some prior issues/pulls/discussions:

    Though, this one seems to be a new link-time error.

  6. fanquake commented at 10:28 am on October 25, 2025: member
  7. maflcko commented at 11:06 am on October 25, 2025: member
    So I guess this can be fixed by using the homebrew libc++?
  8. fanquake added the label Fuzzing on Oct 30, 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: 2025-10-31 00:13 UTC

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