multiprocess: build failure on Alpine with depends & DEBUG=1 #31455

issue fanquake openend this issue on December 10, 2024
  1. fanquake commented at 11:04 am on December 10, 2024: member

    Alpine 3.21 aarch64 gcc (Alpine 14.2.0) 14.2.0

     0make -C depends/ NO_USDT=1 NO_WALLET=1 NO_QT=1 NO_ZMQ=1 MULTIPROCESS=1 DEBUG=1
     1cmake -B build --toolchain /bitcoin/depends/aarch64-unknown-linux-musl/toolchain.cmake
     2cmake --build build --target bitcoin-node
     3<snip>
     4[100%] Linking CXX executable bitcoin-node
     5/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(init.capnp.proxy-client.c++.o): in function `mp::ProxyClientBase<ipc::capnp::messages::Echo, interfaces::Echo>::ProxyClientBase(ipc::capnp::messages::Echo::Client, mp::Connection*, bool)::{lambda()#2}::operator()() const':
     6/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-io.h:409:(.text._ZNSt17_Function_handlerIFvvEZN2mp15ProxyClientBaseIN3ipc5capnp8messages4EchoEN10interfaces4EchoEEC4ENS6_6ClientEPNS1_10ConnectionEbEUlvE0_E9_M_invokeERKSt9_Any_data[_ZNSt17_Function_handlerIFvvEZN2mp15ProxyClientBaseIN3ipc5capnp8messages4EchoEN10interfaces4EchoEEC4ENS6_6ClientEPNS1_10ConnectionEbEUlvE0_E9_M_invokeERKSt9_Any_data]+0x40): undefined reference to `mp::Connection::removeSyncCleanup(std::_List_iterator<std::function<void ()> >)'
     7/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(init.capnp.proxy-client.c++.o): in function `mp::ProxyClientBase<ipc::capnp::messages::Mining, interfaces::Mining>::ProxyClientBase(ipc::capnp::messages::Mining::Client, mp::Connection*, bool)::{lambda()#2}::operator()() const':
     8/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-io.h:409:(.text._ZNSt17_Function_handlerIFvvEZN2mp15ProxyClientBaseIN3ipc5capnp8messages6MiningEN10interfaces6MiningEEC4ENS6_6ClientEPNS1_10ConnectionEbEUlvE0_E9_M_invokeERKSt9_Any_data[_ZNSt17_Function_handlerIFvvEZN2mp15ProxyClientBaseIN3ipc5capnp8messages6MiningEN10interfaces6MiningEEC4ENS6_6ClientEPNS1_10ConnectionEbEUlvE0_E9_M_invokeERKSt9_Any_data]+0x40): undefined reference to `mp::Connection::removeSyncCleanup(std::_List_iterator<std::function<void ()> >)'
     9/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(init.capnp.proxy-client.c++.o): in function `_ZN2mp16CustomBuildFieldINS_11StructFieldINS_8AccessorINS_11init_fields7ContextELi17EEEN5capnp7RequestIN3ipc5capnp8messages4Init14MakeEchoParamsENSB_15MakeEchoResultsEEEEEEEvNS_8TypeListIJEEENS_8PriorityILi1EEERNS_19ClientInvokeContextEOT_PNSt9enable_ifIXsrSt7is_sameIDTcldtfL0p2_3getEENS_7Context7BuilderEE5valueEvE4typeE':
    10/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:71:(.text._ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages4InitEEEMNS5_6ClientEFN5capnp7RequestINS5_14MakeEchoParamsENS5_15MakeEchoResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_11init_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi18EEEJRSt10unique_ptrIN10interfaces4EchoESt14default_deleteIST_EEEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv[_ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages4InitEEEMNS5_6ClientEFN5capnp7RequestINS5_14MakeEchoParamsENS5_15MakeEchoResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_11init_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi18EEEJRSt10unique_ptrIN10interfaces4EchoESt14default_deleteIST_EEEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv]+0xa4): undefined reference to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)'
    11/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:89:(.text._ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages4InitEEEMNS5_6ClientEFN5capnp7RequestINS5_14MakeEchoParamsENS5_15MakeEchoResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_11init_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi18EEEJRSt10unique_ptrIN10interfaces4EchoESt14default_deleteIST_EEEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv[_ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages4InitEEEMNS5_6ClientEFN5capnp7RequestINS5_14MakeEchoParamsENS5_15MakeEchoResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_11init_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi18EEEJRSt10unique_ptrIN10interfaces4EchoESt14default_deleteIST_EEEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv]+0xf0): undefined reference to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)'
    12/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(init.capnp.proxy-client.c++.o): in function `_ZN2mp16CustomBuildFieldINS_11StructFieldINS_8AccessorINS_11init_fields7ContextELi17EEEN5capnp7RequestIN3ipc5capnp8messages4Init16MakeMiningParamsENSB_17MakeMiningResultsEEEEEEEvNS_8TypeListIJEEENS_8PriorityILi1EEERNS_19ClientInvokeContextEOT_PNSt9enable_ifIXsrSt7is_sameIDTcldtfL0p2_3getEENS_7Context7BuilderEE5valueEvE4typeE':
    13/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:71:(.text._ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages4InitEEEMNS5_6ClientEFN5capnp7RequestINS5_16MakeMiningParamsENS5_17MakeMiningResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_11init_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi18EEEJRSt10unique_ptrIN10interfaces6MiningESt14default_deleteIST_EEEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv[_ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages4InitEEEMNS5_6ClientEFN5capnp7RequestINS5_16MakeMiningParamsENS5_17MakeMiningResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_11init_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi18EEEJRSt10unique_ptrIN10interfaces6MiningESt14default_deleteIST_EEEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv]+0xa4): undefined reference to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)'
    14/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:89:(.text._ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages4InitEEEMNS5_6ClientEFN5capnp7RequestINS5_16MakeMiningParamsENS5_17MakeMiningResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_11init_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi18EEEJRSt10unique_ptrIN10interfaces6MiningESt14default_deleteIST_EEEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv[_ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages4InitEEEMNS5_6ClientEFN5capnp7RequestINS5_16MakeMiningParamsENS5_17MakeMiningResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_11init_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi18EEEJRSt10unique_ptrIN10interfaces6MiningESt14default_deleteIST_EEEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv]+0xf0): undefined reference to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)'
    15/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(echo.capnp.proxy-client.c++.o): in function `_ZN2mp16CustomBuildFieldINS_11StructFieldINS_8AccessorINS_11echo_fields7ContextELi17EEEN5capnp7RequestIN3ipc5capnp8messages4Echo13DestroyParamsENSB_14DestroyResultsEEEEEEEvNS_8TypeListIJEEENS_8PriorityILi1EEERNS_19ClientInvokeContextEOT_PNSt9enable_ifIXsrSt7is_sameIDTcldtfL0p2_3getEENS_7Context7BuilderEE5valueEvE4typeE':
    16/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:71:(.text._ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages4EchoEEEMNS5_6ClientEFN5capnp7RequestINS5_13DestroyParamsENS5_14DestroyResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_11echo_fields7ContextELi17EEEJEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv[_ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages4EchoEEEMNS5_6ClientEFN5capnp7RequestINS5_13DestroyParamsENS5_14DestroyResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_11echo_fields7ContextELi17EEEJEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv]+0xa4): undefined reference to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)'
    17/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(echo.capnp.proxy-client.c++.o):/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:89: more undefined references to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)' follow
    18/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(mining.capnp.proxy-client.c++.o): in function `mp::ProxyClientBase<ipc::capnp::messages::BlockTemplate, interfaces::BlockTemplate>::ProxyClientBase(ipc::capnp::messages::BlockTemplate::Client, mp::Connection*, bool)::{lambda()#2}::operator()() const':
    19/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-io.h:409:(.text._ZNSt17_Function_handlerIFvvEZN2mp15ProxyClientBaseIN3ipc5capnp8messages13BlockTemplateEN10interfaces13BlockTemplateEEC4ENS6_6ClientEPNS1_10ConnectionEbEUlvE0_E9_M_invokeERKSt9_Any_data[_ZNSt17_Function_handlerIFvvEZN2mp15ProxyClientBaseIN3ipc5capnp8messages13BlockTemplateEN10interfaces13BlockTemplateEEC4ENS6_6ClientEPNS1_10ConnectionEbEUlvE0_E9_M_invokeERKSt9_Any_data]+0x40): undefined reference to `mp::Connection::removeSyncCleanup(std::_List_iterator<std::function<void ()> >)'
    20/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(mining.capnp.proxy-client.c++.o): in function `_ZN2mp16CustomBuildFieldINS_11StructFieldINS_8AccessorINS_13mining_fields7ContextELi17EEEN5capnp7RequestIN3ipc5capnp8messages6Mining17IsTestChainParamsENSB_18IsTestChainResultsEEEEEEEvNS_8TypeListIJEEENS_8PriorityILi1EEERNS_19ClientInvokeContextEOT_PNSt9enable_ifIXsrSt7is_sameIDTcldtfL0p2_3getEENS_7Context7BuilderEE5valueEvE4typeE':
    21/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:71:(.text._ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages6MiningEEEMNS5_6ClientEFN5capnp7RequestINS5_17IsTestChainParamsENS5_18IsTestChainResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_13mining_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi2EEEJRbEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv[_ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages6MiningEEEMNS5_6ClientEFN5capnp7RequestINS5_17IsTestChainParamsENS5_18IsTestChainResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_13mining_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi2EEEJRbEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv]+0xa0): undefined reference to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)'
    22/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:89:(.text._ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages6MiningEEEMNS5_6ClientEFN5capnp7RequestINS5_17IsTestChainParamsENS5_18IsTestChainResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_13mining_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi2EEEJRbEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv[_ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages6MiningEEEMNS5_6ClientEFN5capnp7RequestINS5_17IsTestChainParamsENS5_18IsTestChainResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_13mining_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi2EEEJRbEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv]+0xdc): undefined reference to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)'
    23/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(mining.capnp.proxy-client.c++.o): in function `_ZN2mp16CustomBuildFieldINS_11StructFieldINS_8AccessorINS_13mining_fields7ContextELi17EEEN5capnp7RequestIN3ipc5capnp8messages6Mining28IsInitialBlockDownloadParamsENSB_29IsInitialBlockDownloadResultsEEEEEEEvNS_8TypeListIJEEENS_8PriorityILi1EEERNS_19ClientInvokeContextEOT_PNSt9enable_ifIXsrSt7is_sameIDTcldtfL0p2_3getEENS_7Context7BuilderEE5valueEvE4typeE':
    24/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:71:(.text._ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages6MiningEEEMNS5_6ClientEFN5capnp7RequestINS5_28IsInitialBlockDownloadParamsENS5_29IsInitialBlockDownloadResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_13mining_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi2EEEJRbEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv[_ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages6MiningEEEMNS5_6ClientEFN5capnp7RequestINS5_28IsInitialBlockDownloadParamsENS5_29IsInitialBlockDownloadResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_13mining_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi2EEEJRbEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv]+0xa0): undefined reference to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)'
    25/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:89:(.text._ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages6MiningEEEMNS5_6ClientEFN5capnp7RequestINS5_28IsInitialBlockDownloadParamsENS5_29IsInitialBlockDownloadResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_13mining_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi2EEEJRbEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv[_ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages6MiningEEEMNS5_6ClientEFN5capnp7RequestINS5_28IsInitialBlockDownloadParamsENS5_29IsInitialBlockDownloadResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_13mining_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi2EEEJRbEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv]+0xdc): undefined reference to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)'
    26/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(mining.capnp.proxy-client.c++.o): in function `_ZN2mp16CustomBuildFieldINS_11StructFieldINS_8AccessorINS_13mining_fields7ContextELi17EEEN5capnp7RequestIN3ipc5capnp8messages6Mining12GetTipParamsENSB_13GetTipResultsEEEEEEEvNS_8TypeListIJEEENS_8PriorityILi1EEERNS_19ClientInvokeContextEOT_PNSt9enable_ifIXsrSt7is_sameIDTcldtfL0p2_3getEENS_7Context7BuilderEE5valueEvE4typeE':
    27/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:71:(.text._ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages6MiningEEEMNS5_6ClientEFN5capnp7RequestINS5_12GetTipParamsENS5_13GetTipResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_13mining_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi22EEEJRSt8optionalIN10interfaces8BlockRefEEEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv[_ZZN2mp12clientInvokeINS_11ProxyClientIN3ipc5capnp8messages6MiningEEEMNS5_6ClientEFN5capnp7RequestINS5_12GetTipParamsENS5_13GetTipResultsEEEN2kj5MaybeINS8_11MessageSizeEEEEJNS_11ClientParamINS_8AccessorINS_13mining_fields7ContextELi17EEEJEEENSJ_INSK_INSL_6ResultELi22EEEJRSt8optionalIN10interfaces8BlockRefEEEEEEEEvRT_RKT0_DpOT1_ENKUlvE_clEv]+0xa0): undefined reference to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)'
    28/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(mining.capnp.proxy-client.c++.o):/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-types.h:89: more undefined references to `mp::SetThread(std::map<mp::Connection*, mp::ProxyClient<mp::Thread>, std::less<mp::Connection*>, std::allocator<std::pair<mp::Connection* const, mp::ProxyClient<mp::Thread> > > >&, std::mutex&, mp::Connection*, std::function<mp::Thread::Client ()>)' follow
    29/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(process.cpp.o): in function `ipc::(anonymous namespace)::ProcessImpl::spawn(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, fs::path const&, int&)':
    30/bitcoin/build/src/ipc/./ipc/process.cpp:36:(.text+0x260): undefined reference to `mp::SpawnProcess(int&, std::function<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > (int)>&&)'
    31/usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: ipc/libbitcoin_ipc.a(protocol.cpp.o): in function `mp::ProxyClientBase<ipc::capnp::messages::Init, interfaces::Init>::ProxyClientBase(ipc::capnp::messages::Init::Client, mp::Connection*, bool)::{lambda()#2}::operator()() const':
    32/bitcoin/depends/aarch64-unknown-linux-musl/include/mp/proxy-io.h:409:(.text._ZNSt17_Function_handlerIFvvEZN2mp15ProxyClientBaseIN3ipc5capnp8messages4InitEN10interfaces4InitEEC4ENS6_6ClientEPNS1_10ConnectionEbEUlvE0_E9_M_invokeERKSt9_Any_data[_ZNSt17_Function_handlerIFvvEZN2mp15ProxyClientBaseIN3ipc5capnp8messages4InitEN10interfaces4InitEEC4ENS6_6ClientEPNS1_10ConnectionEbEUlvE0_E9_M_invokeERKSt9_Any_data]+0x40): undefined reference to `mp::Connection::removeSyncCleanup(std::_List_iterator<std::function<void ()> >)'
    33collect2: error: ld returned 1 exit status
    
  2. maflcko added the label Build system on Dec 10, 2024
  3. maflcko added the label interfaces on Dec 10, 2024
  4. maflcko added the label Tests on Dec 10, 2024
  5. maflcko removed the label Tests on Dec 10, 2024
  6. ryanofsky commented at 2:55 pm on December 10, 2024: contributor

    The missing symbols in that error message should be in the libmultiprocess.a library, so I’d expect to see these errors if bitcoin-node were being compiled without -lmultiprocess link flag. It could be helpful to see which flags were being used by adding VERBOSE=1 to cmake –build command line.

    If library is not being linked it could be a problem with cmake build and maybe specifying the dependency explicitly could be a workaround:

     0--- a/src/CMakeLists.txt
     1+++ b/src/CMakeLists.txt
     2@@ -331,6 +331,7 @@ if(WITH_MULTIPROCESS)
     3     bitcoin_ipc
     4     $<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
     5   )
     6+  target_link_libraries(bitcoin-node Libmultiprocess::multiprocess)
     7   list(APPEND installable_targets bitcoin-node)
     8 
     9   if(BUILD_TESTS)
    10--- a/src/ipc/CMakeLists.txt
    11+++ b/src/ipc/CMakeLists.txt
    12@@ -20,4 +20,6 @@ target_link_libraries(bitcoin_ipc
    13   PRIVATE
    14     core_interface
    15     univalue
    16+  PUBLIC
    17+    Libmultiprocess::multiprocess
    18 )
    

    Another possibility could be that libmultiprocess.a is being linked against but it doesn’t contain the right symbols. In that case it could be useful to see the output of nm libmultiprocess.a to see what symbols it is exporting.

  7. hebasto commented at 9:32 am on December 17, 2024: member

    I can reproduce the issue when cross-compiling on x86_64 to arm-linux-gnueabihf .

    UPD. It is irreproducible when using depends built with DEBUG=1 and is not Alpine-specific.

  8. hebasto commented at 11:33 am on December 17, 2024: member
    Does configuring with -DCMAKE_BUILD_TYPE=Debug, which pulls debug-specific macros, fix the issue?

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-21 12:12 UTC

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