Bitcoin-ABC / Bitcoin-ABC/bitcoin-abc
Centos 7 Compile failure src/leveldb/db/version_set.cc:1267
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 788
- PR merge metrics
- No merged PRs in 30d
Description
### Describe the issue
compiling v0.17.0 is hitting an error on centos 7. v0.16.2 compiled and running successfully.
### Can you reliably reproduce the issue?
yes
#### If so, please list the steps to reproduce below:
install all dependencies (v0.16.2 was compiled and running already so I know this is good)
git clone https://github.com/Bitcoin-ABC/bitcoin-abc
cd bitcoin-abc
git checkout v0.17.0
vi src/amount.h ### comment out line 123 because of can't initialize friend function 'operator*' error
./autogen.sh
./configure --without-gui --without-miniupnpc
make
### Expected behaviour
compile successfully
### Actual behaviour
compiling ends early with:
CXX crypto/crypto_libbitcoin_crypto_a-sha512.o
CXX crypto/crypto_libbitcoin_crypto_a-sha256_sse4.o
AR crypto/libbitcoin_crypto.a
CXXLD bitcoind
univalue/.libs/libunivalue.a(libunivalue_la-univalue.o): In function std::vectr >::_M_range_check(unsigned long) const':
/opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/bits/stl_vector.h:803: undefine reference tostd::throw_out_of_range_fmt(char const*, ...)'
/opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/bits/stl_vector.h:803: undefine reference to `std::throw_out_of_range_fmt(char const, ...)'
/opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/bits/stl_vector.h:803: undefine reference to `std::__throw_out_of_range_fmt(char const, ...)'
/opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/bits/stl_vector.h:803: undefine reference to std::__throw_out_of_range_fmt(char const*, ...)'
univalue/.libs/libunivalue.a(libunivalue_la-univalue_write.o): In functionstd:vector >::_M_range_check(unsigned long) cont':
/opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/bits/stl_vector.h:803: undefine reference to std::__throw_out_of_range_fmt(char const*, ...)'
leveldb/libleveldb.a(leveldb_libleveldb_a-version_set.o): In functionleveldb:VersionSet::MakeInputIterator(leveldb::Compaction*)':
/var/www/bitcoin-abc/src/leveldb/db/version_set.cc:1267: undefined reference to__cxa_throw_bad_array_new_length'
collect2: error: ld returned 1 exit status
make[2]: *** [bitcoind] Error 1
make[2]: Leaving directory/home/www/bitcoin-abc/src'
make[1]: [all-recursive] Error 1
make[1]: Leaving directory `/home/www/bitcoin-abc/src'
make: [all-recursive] Error 1
Contributor guide
Research direction
Reproduce the v0.17.0 build on CentOS 7 with the listed git checkout, autogen.sh, configure, and make commands, noting the manual change to src/amount.h. Start by comparing the linker failures from univalue and src/leveldb/db/version_set.cc:1267 with the successful v0.16.2 build. Done means v0.17.0 compiles successfully without unexplained linker errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- centos, cpp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100