Skip to content

build: multiprocess compile failure on macOS #29248

@fanquake

Description

@fanquake

master @ 28ccc70

Apple clang version 15.0.0 (clang-1500.1.0.2.5)

make -C depends -j12 MULTIPROCESS=1 NO_QT=1 NO_WALLET=1 NO_NATPMP=1 NO_UPNP=1 NO_ZMQ=1
./autogen.sh
CONFIG_SITE=/bitcoin/depends/aarch64-apple-darwin23.2.0/share/config.site ./configure
make
In file included from ipc/capnp/echo.capnp.proxy-client.c++:3:
In file included from ./ipc/capnp/echo.capnp.proxy-types.h:6:
In file included from ./ipc/capnp/echo.capnp.proxy.h:9:
In file included from /bitcoin/depends/aarch64-apple-darwin23.2.0/include/mp/proxy.h:8:
/bitcoin/depends/aarch64-apple-darwin23.2.0/include/mp/util.h:128:23: error: no type named 'result_of' in namespace 'std'
        typename std::result_of<Base(BoundArgs&..., BindArg&, FreeArgs...)>::type
        ~~~~~~~~~~~~~~^~~~~~~~~
/bitcoin/depends/aarch64-apple-darwin23.2.0/include/mp/util.h:128:32: error: expected ';' at end of declaration list
        typename std::result_of<Base(BoundArgs&..., BindArg&, FreeArgs...)>::type
                               ^
                               ;
2 errors generated.

std::result_of was removed in C++20, but we are still using it in multiprocess: https://github.com/chaincodelabs/libmultiprocess/blob/2cbbd09d8b9972a8f5c68b510c0dae9a9f7a22da/include/mp/util.h#L128.

By the looks of it, we can probably remove most of the code in that file, given we now require C++20.
cc @ryanofsky.

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