Unable to link with libc++-8 (undefined reference to symbol '_ZNSt18condition_variable10notify_oneEv@@GLIBCXX_3.4.11') #22326

issue MarcoFalke opened this issue on June 23, 2021
  1. MarcoFalke commented at 12:20 PM on June 23, 2021: member

    Steps to reproduce on current master (567670bec5ecf9bc252e91370382be53fd81ccee):

    # ./configure CC=clang-8 CXX="clang++-8 -stdlib=libc++"
    ...
    
    
    # make V=1
    Making all in src
    make[1]: Entering directory '/bitcoin/src'
    make[2]: Entering directory '/bitcoin/src'
    make[3]: Entering directory '/bitcoin'
    make[3]: Leaving directory '/bitcoin'
    /bin/bash ../libtool  --tag=CXX --preserve-dup-deps  --mode=link /usr/bin/ccache clang++-8 -stdlib=libc++ -std=c++17 -fdebug-prefix-map=/bitcoin/src=. -Wstack-protector -fstack-protector-all -fcf-protection=full -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wswitch -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunused-variable -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Wsign-compare -Woverloaded-virtual -Wunreachable-code-loop-increment -Wno-unused-parameter -Wno-self-assign -Wno-unused-local-typedef -Wno-implicit-fallthrough    -fPIE -g -O2   -Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code -pie     -pthread -lpthread  -o bitcoind bitcoind-bitcoind.o  init/bitcoind-bitcoind.o libbitcoin_server.a libbitcoin_wallet.a libbitcoin_common.a libbitcoin_util.a univalue/libunivalue.la  libbitcoin_consensus.a crypto/libbitcoin_crypto_base.a crypto/libbitcoin_crypto_sse41.a crypto/libbitcoin_crypto_avx2.a crypto/libbitcoin_crypto_shani.a leveldb/libleveldb.a crc32c/libcrc32c.a crc32c/libcrc32c_sse42.a   leveldb/libmemenv.a secp256k1/libsecp256k1.la -L/usr/lib/x86_64-linux-gnu -lboost_system -lboost_filesystem -ldb_cxx   -levent_pthreads -levent -levent  -lsqlite3 
    libtool: link: /usr/bin/ccache clang++-8 -stdlib=libc++ -std=c++17 -fdebug-prefix-map=/bitcoin/src=. -Wstack-protector -fstack-protector-all -fcf-protection=full -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wswitch -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunused-variable -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Wsign-compare -Woverloaded-virtual -Wunreachable-code-loop-increment -Wno-unused-parameter -Wno-self-assign -Wno-unused-local-typedef -Wno-implicit-fallthrough -fPIE -g -O2 -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,-z -Wl,separate-code -pie -pthread -o bitcoind bitcoind-bitcoind.o init/bitcoind-bitcoind.o  -lpthread libbitcoin_server.a libbitcoin_wallet.a libbitcoin_common.a libbitcoin_util.a univalue/.libs/libunivalue.a libbitcoin_consensus.a crypto/libbitcoin_crypto_base.a crypto/libbitcoin_crypto_sse41.a crypto/libbitcoin_crypto_avx2.a crypto/libbitcoin_crypto_shani.a leveldb/libleveldb.a crc32c/libcrc32c.a crc32c/libcrc32c_sse42.a leveldb/libmemenv.a secp256k1/.libs/libsecp256k1.a -L/usr/lib/x86_64-linux-gnu -lboost_system -lboost_filesystem -ldb_cxx -levent_pthreads -levent -levent /usr/lib/x86_64-linux-gnu/libsqlite3.so -pthread
    /usr/bin/ld: leveldb/libleveldb.a(leveldb_libleveldb_a-env_posix.o): undefined reference to symbol '_ZNSt18condition_variable10notify_oneEv@@GLIBCXX_3.4.11'
    //usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    Makefile:5271: recipe for target 'bitcoind' failed
    make[2]: *** [bitcoind] Error 1
    make[2]: Leaving directory '/bitcoin/src'
    Makefile:15489: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/bitcoin/src'
    Makefile:820: recipe for target 'all-recursive' failed
    make: *** [all-recursive] Error 1
    

    <!-- 7 -> 8 export DEBIAN_FRONTEND=noninteractive && apt update && apt install curl wget htop git vim ccache -y && git clone https://github.com/bitcoin/bitcoin.git && cd bitcoin && git checkout master && apt install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3-zmq libevent-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev libsqlite3-dev libdb++-dev -y && ./autogen.sh && apt install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools -y && apt install clang-7 llvm-7 libc++abi-7-dev libc++-7-dev -y && ./configure CC=clang-7 CXX="clang++-7 -stdlib=libc++" --with-incompatible-bdb && make -j $(nproc) src/bitcoind && make -j 9

  2. MarcoFalke added the label Bug on Jun 23, 2021
  3. MarcoFalke added the label Build system on Jun 23, 2021
  4. MarcoFalke commented at 12:45 PM on June 23, 2021: member

    Another issue on libc++-12:

    # make V=1
    Making all in src
    make[1]: Entering directory '/bitcoin/src'
    make[2]: Entering directory '/bitcoin/src'
    make[3]: Entering directory '/bitcoin'
    make[3]: Leaving directory '/bitcoin'
    /bin/bash ../libtool  --tag=CXX --preserve-dup-deps  --mode=link /usr/bin/ccache clang++ -stdlib=libc++ -std=c++17 -fdebug-prefix-map=/bitcoin/src=. -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wswitch -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunused-variable -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Wsign-compare -Woverloaded-virtual -Wsuggest-override -Wunreachable-code-loop-increment -Wno-unused-parameter -Wno-self-assign -Wno-unused-local-typedef -Wno-implicit-fallthrough -Wno-deprecated-copy    -fPIE -g -O2   -Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code -pie     -pthread -lpthread  -o bitcoind bitcoind-bitcoind.o  init/bitcoind-bitcoind.o libbitcoin_server.a libbitcoin_wallet.a libbitcoin_common.a libbitcoin_util.a univalue/libunivalue.la  libbitcoin_consensus.a crypto/libbitcoin_crypto_base.a crypto/libbitcoin_crypto_sse41.a crypto/libbitcoin_crypto_avx2.a crypto/libbitcoin_crypto_shani.a leveldb/libleveldb.a crc32c/libcrc32c.a crc32c/libcrc32c_sse42.a   leveldb/libmemenv.a secp256k1/libsecp256k1.la -L/usr/lib/x86_64-linux-gnu -lboost_system -lboost_filesystem -ldb_cxx   -levent_pthreads -levent -levent  -lsqlite3 
    libtool: link: /usr/bin/ccache clang++ -stdlib=libc++ -std=c++17 -fdebug-prefix-map=/bitcoin/src=. -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wswitch -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunused-variable -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Wsign-compare -Woverloaded-virtual -Wsuggest-override -Wunreachable-code-loop-increment -Wno-unused-parameter -Wno-self-assign -Wno-unused-local-typedef -Wno-implicit-fallthrough -Wno-deprecated-copy -fPIE -g -O2 -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,-z -Wl,separate-code -pie -pthread -o bitcoind bitcoind-bitcoind.o init/bitcoind-bitcoind.o  -lpthread libbitcoin_server.a libbitcoin_wallet.a libbitcoin_common.a libbitcoin_util.a univalue/.libs/libunivalue.a libbitcoin_consensus.a crypto/libbitcoin_crypto_base.a crypto/libbitcoin_crypto_sse41.a crypto/libbitcoin_crypto_avx2.a crypto/libbitcoin_crypto_shani.a leveldb/libleveldb.a crc32c/libcrc32c.a crc32c/libcrc32c_sse42.a leveldb/libmemenv.a secp256k1/.libs/libsecp256k1.a -L/usr/lib/x86_64-linux-gnu -lboost_system -lboost_filesystem -ldb_cxx -levent_pthreads -levent -levent -lsqlite3 -pthread
    /usr/bin/ld: libbitcoin_wallet.a(libbitcoin_wallet_a-bdb.o): in function `BerkeleyDatabase::Verify(bilingual_str&)':
    ./wallet/bdb.cpp:275: undefined reference to `Db::verify(char const*, char const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >*, unsigned int)'
    /usr/bin/ld: libbitcoin_util.a(libbitcoin_util_a-system.o): in function `SetupEnvironment()':
    ./util/system.cpp:1314: undefined reference to `boost::filesystem::path::imbue(std::__1::locale const&)'
    /usr/bin/ld: ./util/system.cpp:1316: undefined reference to `boost::filesystem::path::imbue(std::__1::locale const&)'
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[2]: *** [Makefile:5919: bitcoind] Error 1
    make[2]: Leaving directory '/bitcoin/src'
    make[1]: *** [Makefile:16142: all-recursive] Error 1
    make[1]: Leaving directory '/bitcoin/src'
    make: *** [Makefile:822: all-recursive] Error 1
    
    
    
    # clang --version 
    Ubuntu clang version 12.0.1-+rc1-1ubuntu1
    Target: x86_64-pc-linux-gnu
    Thread model: posix
    InstalledDir: /usr/bin
    
  5. MarcoFalke added this to the milestone 22.0 on Jun 23, 2021
  6. MarcoFalke removed this from the milestone 22.0 on Jun 23, 2021
  7. MarcoFalke commented at 2:53 PM on June 23, 2021: member

    Not sure if this ever worked?

  8. hebasto commented at 6:20 AM on June 24, 2021: member

    I think issues with glibc symbols are expected when building with -stdlib=libc++.

    Building with depends that were built with CC=clang CXX='clang++ -stdlib=libc++' should fix them, no?

  9. MarcoFalke commented at 6:38 AM on June 24, 2021: member

    So it is only possible to use libc++ with depends?

  10. MarcoFalke removed the label Bug on Jun 24, 2021
  11. MarcoFalke added the label Questions and Help on Jun 24, 2021
  12. hebasto commented at 6:50 AM on June 24, 2021: member

    Looks like that.

    On Thu, 24 Jun 2021 at 09:38 MarcoFalke @.***> wrote:

    So it is only possible to use libc++ with depends?

    — You are receiving this because you commented.

    Reply to this email directly, view it on GitHub https://github.com/bitcoin/bitcoin/issues/22326#issuecomment-867381383, or unsubscribe https://github.com/notifications/unsubscribe-auth/AH3PXPWROHJCHJ5VNADJR6TTULHG7ANCNFSM47FV3QVQ .

    --

    -- Hennadii Stepanov

  13. MarcoFalke closed this on Jun 24, 2021

  14. DrahtBot locked this on Aug 18, 2022

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-17 06:14 UTC

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