Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crashes on make (Ubuntu 24.10) -> support/lockedpool.cpp:99:20: error: ‘runtime_error’ is not a member of ‘std’ #1263

Open
yhilgjff opened this issue Nov 28, 2024 · 0 comments

Comments

@yhilgjff
Copy link

On my Ubuntu 24.10 system, the make process crashes when building using the latest git branch:

$ uname -a
Linux MYBOX 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 13:41:20 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

make output:

[...]
CC       algo/libraven_server_a-sph_sha2.o
  CC       algo/libraven_server_a-gost_streebog.o
  AR       libraven_server.a
  CXX      libraven_common_a-base58.o
  CXX      libraven_common_a-chainparams.o
  CXX      libraven_common_a-coins.o
In file included from /usr/include/c++/14/bits/stl_iterator.h:66,
                 from /usr/include/c++/14/iterator:63,
                 from ./prevector.h:14,
                 from ./script/script.h:11,
                 from primitives/transaction.h:12,
                 from coins.h:10,
                 from coins.cpp:6:
In function ‘std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) [with _Tp = prevector<28, unsigned char>::direct_or_indirect]’,
    inlined from ‘void prevector<N, T, Size, Diff>::swap(prevector<N, T, Size, Diff>&) [with unsigned int N = 28; T = unsigned char; Size = unsigned int; Diff = int]’ at ./prevector.h:442:18,
    inlined from ‘prevector<N, T, Size, Diff>::prevector(prevector<N, T, Size, Diff>&&) [with unsigned int N = 28; T = unsigned char; Size = unsigned int; Diff = int]’ at ./prevector.h:260:13,
    inlined from ‘CScript::CScript(CScript&&)’ at ./script/script.h:396:7,
    inlined from ‘CTxOut::CTxOut(CTxOut&&)’ at primitives/transaction.h:137:7,
    inlined from ‘Coin::Coin(Coin&&)’ at coins.h:32:7,
    inlined from ‘CCoinsCacheEntry::CCoinsCacheEntry(Coin&&)’ at coins.h:126:47,
    inlined from ‘std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>) [with _Args1 = {const COutPoint&}; long unsigned int ..._Indexes1 = {0}; _Args2 = {Coin&&}; long unsigned int ..._Indexes2 = {0}; _T1 = const COutPoint; _T2 = CCoinsCacheEntry]’ at /usr/include/c++/14/tuple:2888:2,
    inlined from ‘std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>) [with _Args1 = {const COutPoint&}; _Args2 = {Coin&&}; _T1 = const COutPoint; _T2 = CCoinsCacheEntry]’ at /usr/include/c++/14/tuple:2877:63,
    inlined from ‘void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = std::pair<const COutPoint, CCoinsCacheEntry>; _Args = {const std::piecewise_construct_t&, std::tuple<const COutPoint&>, std::tuple<Coin&&>}; _Tp = std::__detail::_Hash_node<std::pair<const COutPoint, CCoinsCacheEntry>, true>]’ at /usr/include/c++/14/bits/new_allocator.h:191:4,
    inlined from ‘static void std::allocator_traits<std::allocator<_CharT> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = std::pair<const COutPoint, CCoinsCacheEntry>; _Args = {const std::piecewise_construct_t&, std::tuple<const COutPoint&>, std::tuple<Coin&&>}; _Tp = std::__detail::_Hash_node<std::pair<const COutPoint, CCoinsCacheEntry>, true>]’ at /usr/include/c++/14/bits/alloc_traits.h:534:17,
    inlined from ‘std::__detail::_Hashtable_alloc<_NodeAlloc>::__node_type* std::__detail::_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const COutPoint&>, std::tuple<Coin&&>}; _NodeAlloc = std::allocator<std::__detail::_Hash_node<std::pair<const COutPoint, CCoinsCacheEntry>, true> >]’ at /usr/include/c++/14/bits/hashtable_policy.h:2024:36,
    inlined from ‘std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::_Scoped_node::_Scoped_node(std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::__hashtable_alloc*, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const COutPoint&>, std::tuple<Coin&&>}; _Key = COutPoint; _Value = std::pair<const COutPoint, CCoinsCacheEntry>; _Alloc = std::allocator<std::pair<const COutPoint, CCoinsCacheEntry> >; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<COutPoint>; _Hash = SaltedOutpointHasher; _RangeHash = std::__detail::_Mod_range_hashing; _Unused = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, false, true>]’ at /usr/include/c++/14/bits/hashtable.h:312:35,
    inlined from ‘std::pair<typename std::__detail::_Insert<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::iterator, bool> std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::_M_emplace(std::true_type, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const COutPoint&>, std::tuple<Coin&&>}; _Key = COutPoint; _Value = std::pair<const COutPoint, CCoinsCacheEntry>; _Alloc = std::allocator<std::pair<const COutPoint, CCoinsCacheEntry> >; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<COutPoint>; _Hash = SaltedOutpointHasher; _RangeHash = std::__detail::_Mod_range_hashing; _Unused = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, false, true>]’ at /usr/include/c++/14/bits/hashtable.h:2143:15,
    inlined from ‘std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::__ireturn_type std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::emplace(_Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const COutPoint&>, std::tuple<Coin&&>}; _Key = COutPoint; _Value = std::pair<const COutPoint, CCoinsCacheEntry>; _Alloc = std::allocator<std::pair<const COutPoint, CCoinsCacheEntry> >; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<COutPoint>; _Hash = SaltedOutpointHasher; _RangeHash = std::__detail::_Mod_range_hashing; _Unused = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, false, true>]’ at /usr/include/c++/14/bits/hashtable.h:1001:21,
    inlined from ‘std::pair<typename std::_Hashtable<_Key, std::pair<const _Key, _Tp>, _Alloc, std::__detail::_Select1st, _Pred, _Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<std::__not_<std::__and_<std::__is_fast_hash<_Hash>, std::__is_nothrow_invocable<const _Hash&, const _Key&> > >::value, false, true> >::iterator, bool> std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::emplace(_Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const COutPoint&>, std::tuple<Coin&&>}; _Key = COutPoint; _Tp = CCoinsCacheEntry; _Hash = SaltedOutpointHasher; _Pred = std::equal_to<COutPoint>; _Alloc = std::allocator<std::pair<const COutPoint, CCoinsCacheEntry> >]’ at /usr/include/c++/14/bits/unordered_map.h:396:23,
    inlined from ‘std::unordered_map<COutPoint, CCoinsCacheEntry, SaltedOutpointHasher>::iterator CCoinsViewCache::FetchCoin(const COutPoint&) const’ at coins.cpp:57:49:
/usr/include/c++/14/bits/move.h:221:11: warning: ‘((prevector<28, unsigned char, unsigned int, int>::direct_or_indirect*)((char*)<unknown> + 4))[2]’ may be used uninitialized [-Wmaybe-uninitialized]
  221 |       _Tp __tmp = _GLIBCXX_MOVE(__a);
      |           ^~~~~
  CXX      libraven_common_a-compressor.o
  CXX      libraven_common_a-core_read.o
  CXX      libraven_common_a-core_write.o
  CXX      libraven_common_a-key.o
  CXX      libraven_common_a-keystore.o
  CXX      libraven_common_a-netaddress.o
  CXX      libraven_common_a-netbase.o
  CXX      policy/libraven_common_a-feerate.o
  CXX      libraven_common_a-protocol.o
protocol.cpp: In constructor ‘CMessageHeader::CMessageHeader(const unsigned char (&)[4], const char*, unsigned int)’:
protocol.cpp:96:12: warning: ‘char* __builtin_strncpy(char*, const char*, long unsigned int)’ specified bound 12 equals destination size [-Wstringop-truncation]
   96 |     strncpy(pchCommand, pszCommand, COMMAND_SIZE);
      |            ^
  CXX      libraven_common_a-scheduler.o
  CXX      script/libraven_common_a-sign.o
  CXX      script/libraven_common_a-standard.o
script/standard.cpp: In function ‘bool Solver(const CScript&, txnouttype&, std::vector<std::vector<unsigned char> >&)’:
script/standard.cpp:127:48: warning: loop variable ‘tplate’ of type ‘const std::pair<txnouttype, CScript>&’ binds to a temporary constructed from type ‘std::pair<const txnouttype, CScript>’ [-Wrange-loop-construct]
  127 |     for (const std::pair<txnouttype, CScript>& tplate : mTemplates)
      |                                                ^~~~~~
script/standard.cpp:127:48: note: use non-reference type ‘const std::pair<txnouttype, CScript>’ to make the copy explicit or ‘const std::pair<const txnouttype, CScript>&’ to prevent copying
In file included from /usr/include/c++/14/bits/new_allocator.h:36,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/c++allocator.h:33,
                 from /usr/include/c++/14/bits/allocator.h:46,
                 from /usr/include/c++/14/memory:65,
                 from ./chainparamsbase.h:9,
                 from ./chainparams.h:10,
                 from ./base58.h:18,
                 from script/standard.cpp:7:
In function ‘std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) [with _Tp = prevector<28, unsigned char>::direct_or_indirect]’,
    inlined from ‘void prevector<N, T, Size, Diff>::swap(prevector<N, T, Size, Diff>&) [with unsigned int N = 28; T = unsigned char; Size = unsigned int; Diff = int]’ at ./prevector.h:442:18,
    inlined from ‘prevector<N, T, Size, Diff>::prevector(prevector<N, T, Size, Diff>&&) [with unsigned int N = 28; T = unsigned char; Size = unsigned int; Diff = int]’ at ./prevector.h:260:13,
    inlined from ‘CScript::CScript(CScript&&)’ at ./script/script.h:396:7,
    inlined from ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_U1, _U2>&&) [with _U1 = txnouttype; _U2 = CScript; typename std::enable_if<(std::_PCC<((! std::is_same<_T1, _U1>::value) || (! std::is_same<_T2, _U2>::value)), _T1, _T2>::_MoveConstructiblePair<_U1, _U2>() && std::_PCC<((! std::is_same<_T1, _U1>::value) || (! std::is_same<_T2, _U2>::value)), _T1, _T2>::_ImplicitlyMoveConvertiblePair<_U1, _U2>()), bool>::type <anonymous> = true; _T1 = const txnouttype; _T2 = CScript]’ at /usr/include/c++/14/bits/stl_pair.h:904:4,
    inlined from ‘void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = std::pair<const txnouttype, CScript>; _Args = {std::pair<txnouttype, CScript>}; _Tp = std::_Rb_tree_node<std::pair<const txnouttype, CScript> >]’ at /usr/include/c++/14/bits/new_allocator.h:191:4,
    inlined from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = std::pair<const txnouttype, CScript>; _Args = {std::pair<txnouttype, CScript>}; _Tp = std::_Rb_tree_node<std::pair<const txnouttype, CScript> >]’ at /usr/include/c++/14/bits/alloc_traits.h:534:17,
    inlined from ‘void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_construct_node(_Link_type, _Args&& ...) [with _Args = {std::pair<txnouttype, CScript>}; _Key = txnouttype; _Val = std::pair<const txnouttype, CScript>; _KeyOfValue = std::_Select1st<std::pair<const txnouttype, CScript> >; _Compare = std::less<txnouttype>; _Alloc = std::allocator<std::pair<const txnouttype, CScript> >]’ at /usr/include/c++/14/bits/stl_tree.h:593:32,
    inlined from ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {std::pair<txnouttype, CScript>}; _Key = txnouttype; _Val = std::pair<const txnouttype, CScript>; _KeyOfValue = std::_Select1st<std::pair<const txnouttype, CScript> >; _Compare = std::less<txnouttype>; _Alloc = std::allocator<std::pair<const txnouttype, CScript> >]’ at /usr/include/c++/14/bits/stl_tree.h:610:21,
    inlined from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Auto_node::_Auto_node(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&, _Args&& ...) [with _Args = {std::pair<txnouttype, CScript>}; _Key = txnouttype; _Val = std::pair<const txnouttype, CScript>; _KeyOfValue = std::_Select1st<std::pair<const txnouttype, CScript> >; _Compare = std::less<txnouttype>; _Alloc = std::allocator<std::pair<const txnouttype, CScript> >]’ at /usr/include/c++/14/bits/stl_tree.h:1633:32,
    inlined from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_equal(_Args&& ...) [with _Args = {std::pair<txnouttype, CScript>}; _Key = txnouttype; _Val = std::pair<const txnouttype, CScript>; _KeyOfValue = std::_Select1st<std::pair<const txnouttype, CScript> >; _Compare = std::less<txnouttype>; _Alloc = std::allocator<std::pair<const txnouttype, CScript> >]’ at /usr/include/c++/14/bits/stl_tree.h:2445:13:
/usr/include/c++/14/bits/move.h:221:11: warning: ‘((prevector<28, unsigned char, unsigned int, int>::direct_or_indirect*)((char*)<unknown> + 12))[1]’ is used uninitialized [-Wuninitialized]
  221 |       _Tp __tmp = _GLIBCXX_MOVE(__a);
      |           ^~~~~
  CXX      libraven_common_a-warnings.o
  CC       algo/libraven_common_a-groestl.o
  CC       algo/libraven_common_a-blake.o
  CC       algo/libraven_common_a-bmw.o
  CC       algo/libraven_common_a-cubehash.o
  CC       algo/libraven_common_a-echo.o
  CC       algo/libraven_common_a-jh.o
  CC       algo/libraven_common_a-keccak.o
  CC       algo/libraven_common_a-luffa.o
  CC       algo/libraven_common_a-shavite.o
  CC       algo/libraven_common_a-simd.o
  CC       algo/libraven_common_a-skein.o
  CC       algo/libraven_common_a-hamsi.o
  CC       algo/libraven_common_a-whirlpool.o
  CC       algo/libraven_common_a-shabal.o
  CC       algo/libraven_common_a-fugue.o
  CC       algo/libraven_common_a-sha2.o
  CC       algo/libraven_common_a-extra.o
  CC       algo/libraven_common_a-sph_sha2big.o
  CC       algo/libraven_common_a-haval.o
  CXX      algo/libraven_common_a-tiger.o
  CXX      algo/libraven_common_a-lyra2.o
  CXX      algo/libraven_common_a-sponge.o
  CC       algo/libraven_common_a-sph_sha2.o
  CC       algo/libraven_common_a-gost_streebog.o
  AR       libraven_common.a
make[3]: Entering directory '/myRVN/path/Ravencoin/src/univalue'
  CXX      lib/libunivalue_la-univalue.lo
  CXX      lib/libunivalue_la-univalue_get.lo
  CXX      lib/libunivalue_la-univalue_read.lo
  CXX      lib/libunivalue_la-univalue_write.lo
  CXXLD    libunivalue.la
make[3]: Leaving directory '/myRVN/path/Ravencoin/src/univalue'
  CXX      support/libraven_util_a-lockedpool.o
support/lockedpool.cpp: In member function ‘void Arena::free(void*)’:
support/lockedpool.cpp:99:20: error: ‘runtime_error’ is not a member of ‘std’
   99 |         throw std::runtime_error("Arena: invalid or double free");
      |                    ^~~~~~~~~~~~~
support/lockedpool.cpp:31:1: note: ‘std::runtime_error’ is defined in header ‘<stdexcept>’; this is probably fixable by adding ‘#include <stdexcept>’
   30 | #include <algorithm>
  +++ |+#include <stdexcept>
   31 | 
support/lockedpool.cpp: In member function ‘void LockedPool::free(void*)’:
support/lockedpool.cpp:307:16: error: ‘runtime_error’ is not a member of ‘std’
  307 |     throw std::runtime_error("LockedPool: invalid address not pointing to any arena");
      |                ^~~~~~~~~~~~~
support/lockedpool.cpp:307:16: note: ‘std::runtime_error’ is defined in header ‘<stdexcept>’; this is probably fixable by adding ‘#include <stdexcept>’
make[2]: *** [Makefile:10458: support/libraven_util_a-lockedpool.o] Error 1
make[2]: Leaving directory '/myRVN/path/Ravencoin/src'
make[1]: *** [Makefile:14612: all-recursive] Error 1
make[1]: Leaving directory '/myRVN/path/Ravencoin/src'
make: *** [Makefile:773: all-recursive] Error 1
FAIL

This after having ran ./autogen.sh and ./configure successfully but add to pair --with-incompatible-bdb for configure

Downloading the .tar.gz from /releases and running that proved to work fine out of the box.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant