Bitcoin-ABC / Bitcoin-ABC/bitcoin-abc

Centos 7 Compile failure src/leveldb/db/version_set.cc:1267

Open
#193 4 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.