Skip to content

macOS Build Issue on v0.31.0 #35133

@arik-so

Description

@arik-so

Is there an existing issue for this?

  • I have searched the existing issues

Current behaviour

When building on macOS Sequoia 15.5, at about the 89% mark, I run into the following compilation issue:

In file included from […]/bitcoin/src/rpc/mempool.cpp:6:
In file included from […]/bitcoin/src/rpc/blockchain.h:9:
In file included from […]/bitcoin/src/core_io.h:9:
In file included from […]/bitcoin/src/util/result.h:9:
In file included from […]/bitcoin/src/util/translation.h:8:
In file included from […]/bitcoin/src/tinyformat.h:144:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/algorithm:1778:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/inplace_merge.h:28:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/unique_ptr.h:19:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/allocator_traits.h:304:9: error: no matching function for call to 'construct_at'
_VSTD::construct_at(__p, _VSTD::forward<_Args>(__args)...);
^~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__config:897:17: note: expanded from macro '_VSTD'

define _VSTD std

            ^

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:919:21: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator>::construct<Entry, COutPoint, const UniValue &, UniValue, void, void>' requested here
__alloc_traits::construct(this->__alloc(), std::__to_address(__tx._pos),
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:1678:9: note: in instantiation of function template specialization 'std::vector::__construct_one_at_end<COutPoint, const UniValue &, UniValue>' requested here
__construct_one_at_end(std::forward<_Args>(__args)...);
^
[…]/bitcoin/src/rpc/mempool.cpp:975:26: note: in instantiation of function template specialization 'std::vector::emplace_back<COutPoint, const UniValue &, UniValue>' requested here
prevouts.emplace_back(COutPoint{txid, uint32_t(nOutput)}, o, UniValue{});
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/construct_at.h:39:38: note: candidate template ignored: substitution failure [with _Tp = Entry, _Args = <COutPoint, const UniValue &, UniValue>]: no matching constructor for initialization of 'Entry'
_LIBCPP_HIDE_FROM_ABI constexpr _Tp* construct_at(_Tp* __location, _Args&&... __args) {
^
1 error generated.
make[2]: *** [src/CMakeFiles/bitcoin_node.dir/rpc/mempool.cpp.o] Error 1

I can run a binary search to see where the issue first appears. I will note that I haven't run into this with any of the 0.30.x versions.

Expected behaviour

The build should be able to complete all the way.

Steps to reproduce

I cannot be certain if a different version of macOS or Xcode would still produce this issue, so these steps to reproduce might prove too imprecise, in which case feel free to close the issue. My build configuration is this:

-DENABLE_WALLET=OFF -DBUILD_TESTS=OFF -DBUILD_GUI=OFF -DBUILD_WALLET_TOOL=OFF -DENABLE_EXTERNAL_SIGNER=OFF -DENABLE_IPC=OFF

macOS: 15.5 (24F74)

Xcode 15.4
Build version 15F31d

Relevant log output

In file included from […]/bitcoin/src/rpc/mempool.cpp:6:
In file included from […]/bitcoin/src/rpc/blockchain.h:9:
In file included from […]/bitcoin/src/core_io.h:9:
In file included from […]/bitcoin/src/util/result.h:9:
In file included from […]/bitcoin/src/util/translation.h:8:
In file included from […]/bitcoin/src/tinyformat.h:144:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/algorithm:1778:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/inplace_merge.h:28:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/unique_ptr.h:19:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/allocator_traits.h:304:9: error: no matching function for call to 'construct_at'
_VSTD::construct_at(__p, _VSTD::forward<_Args>(__args)...);
^~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__config:897:17: note: expanded from macro '_VSTD'

define _VSTD std

            ^

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:919:21: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator>::construct<Entry, COutPoint, const UniValue &, UniValue, void, void>' requested here
__alloc_traits::construct(this->__alloc(), std::__to_address(__tx._pos),
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:1678:9: note: in instantiation of function template specialization 'std::vector::__construct_one_at_end<COutPoint, const UniValue &, UniValue>' requested here
__construct_one_at_end(std::forward<_Args>(__args)...);
^
[…]/bitcoin/src/rpc/mempool.cpp:975:26: note: in instantiation of function template specialization 'std::vector::emplace_back<COutPoint, const UniValue &, UniValue>' requested here
prevouts.emplace_back(COutPoint{txid, uint32_t(nOutput)}, o, UniValue{});
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/construct_at.h:39:38: note: candidate template ignored: substitution failure [with _Tp = Entry, _Args = <COutPoint, const UniValue &, UniValue>]: no matching constructor for initialization of 'Entry'
_LIBCPP_HIDE_FROM_ABI constexpr _Tp* construct_at(_Tp* __location, _Args&&... __args) {
^
1 error generated.
make[2]: *** [src/CMakeFiles/bitcoin_node.dir/rpc/mempool.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/bitcoin_node.dir/all] Error 2
make: *** [all] Error 2

How did you obtain Bitcoin Core

Compiled from source

What version of Bitcoin Core are you using?

v0.31.0

Operating system and version

macOS 15.5 (24F74)

Machine specifications

It's a compilation issue, so I very strongly doubt the CPU, disk type, and network connectivity are pertinent.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions