On Fri May 18, 2018 at 11:47:48AM -0400, Joseph Mayer wrote: > 2018-05-07 3:21 GMT+08:00 Rafael Sadowski <raf...@sizeofvoid.org>: > > It doesn't build with ports-gcc > > I got it built using ports not too long ago. > > What issues did you get trying to build it using gcc-ports (GCC 4.9.4)?
Please find attached my GCC output. The same linker call works with clang but not with ports-gcc. > > The only issue was the difficulty of install Berkeley DB, which can be > resolved by either building and installing (how?) or something like > --disable-wallet, as only the wallet subfunctionality uses it anyhow, > not the central router. > > Do you build the QT and wallet parts? Please check the ports Makefile. > > > and you already said it: "... you wouldn't want to run this on a > > machine that doesn't have clang available to it since it's probably > > far too slow." > > Clang may be working well for many projects, this one included, but > there are also projects today where Clang consistently performs > disastrously, so GCC will remain having a valid niche, maybe for very > long. > It's about architectures not projects.
/usr/bin/libtool --tag=CXX --mode=link c++ -Wstack-protector -fstack-protector-all -fPIE -O2 -pipe -std=c++14 -pthread -Wl,-z,relro -Wl,-z,now -L/usr/X11R6/lib -L/usr/local/lib -L/usr/local/lib/db4 -o bitcoind bitcoind-bitcoind.o libbitcoin_server.a libbitcoin_common.a univalue/libunivalue.la libbitcoin_util.a libbitcoin_wallet.a libbitcoin_zmq.a libbitcoin_consensus.a crypto/libbitcoin_crypto.a leveldb/libleveldb.a leveldb/libleveldb_sse42.a leveldb/libmemenv.a secp256k1/libsecp256k1.la -pthread -L/usr/local/lib -lboost_system -lboost_filesystem -lboost_program_options-mt -lboost_thread-mt -lboost_chrono-mt -ldb_cxx -lssl -lcrypto -lcrypto -lminiupnpc -L/usr/local/lib -levent_pthreads -levent_extra -levent_core -L/usr/local/lib -levent_extra -levent_core -L/usr/local/lib -lzmq libtool: link: c++ -o .libs/bitcoind -pthread -Wstack-protector -fstack-protector-all -fPIE -O2 -pipe -std=c++14 -Wl,-z -Wl,relro -Wl,-z -Wl,now bitcoind-bitcoind.o libbitcoin_server.a libbitcoin_common.a libbitcoin_util.a libbitcoin_wallet.a libbitcoin_zmq.a libbitcoin_consensus.a crypto/libbitcoin_crypto.a leveldb/libleveldb.a leveldb/libleveldb_sse42.a leveldb/libmemenv.a -L.libs -lunivalue -lsecp256k1 -lboost_system -lc++ -lc++abi -lpthread -lm -lboost_filesystem -lboost_program_options-mt -lboost_thread-mt -lboost_system-mt -lboost_chrono-mt -ldb_cxx -lssl -lcrypto -lminiupnpc -levent_pthreads -levent_extra -levent_core -lzmq -lsodium -Wl,-rpath-link,/usr/local/lib .libs/libzmq.so.4.2: warning: sprintf() is often misused, please use snprintf() .libs/libzmq.so.4.2: warning: strcat() is almost always misused, please use strlcat() .libs/libevent_core.so.1.1: warning: random() may return deterministic values, is that what you want? .libs/libboost_filesystem.so.8.0: warning: strcpy() is almost always misused, please use strlcpy() .libs/libdb_cxx.so.6.0: warning: rand() may return deterministic values, is that what you want? libbitcoin_util.a(libbitcoin_util_a-util.o): In function `SetupEnvironment()': util.cpp:(.text+0x12ca): undefined reference to `boost::filesystem::path::imbue(std::locale const&)' util.cpp:(.text+0x12d5): undefined reference to `boost::filesystem::path::imbue(std::locale const&)' libbitcoin_util.a(libbitcoin_util_a-util.o): In function `boost::program_options::detail::basic_config_file_iterator<char>::getline(std::string&)': util.cpp:(.text._ZN5boost15program_options6detail26basic_config_file_iteratorIcE7getlineERSs[_ZN5boost15program_options6detail26basic_config_file_iteratorIcE7getlineERSs]+0x98): undefined reference to `boost::program_options::to_internal(std::string const&)' libbitcoin_util.a(libbitcoin_util_a-util.o): In function `boost::program_options::detail::basic_config_file_iterator<char>::basic_config_file_iterator(std::istream&, std::set<std::string, std::less<std::string>, std::allocator<std::string> > const&, bool)': util.cpp:(.text._ZN5boost15program_options6detail26basic_config_file_iteratorIcEC2ERSiRKSt3setISsSt4lessISsESaISsEEb[_ZN5boost15program_options6detail26basic_config_file_iteratorIcEC5ERSiRKSt3setISsSt4lessISsESaISsEEb]+0x21): undefined reference to `boost::program_options::detail::common_config_file_iterator::common_config_file_iterator(std::set<std::string, std::less<std::string>, std::allocator<std::string> > const&, bool)' libbitcoin_wallet.a(libbitcoin_wallet_a-db.o): In function `CDBEnv::Verify(std::string const&, bool (*)(std::string const&, std::string&), std::string&)': db.cpp:(.text+0x6812): undefined reference to `Db::verify(char const*, char const*, std::ostream*, unsigned int)' libbitcoin_wallet.a(libbitcoin_wallet_a-db.o): In function `CDBEnv::Salvage(std::string const&, bool, std::vector<std::pair<std::vector<unsigned char, std::allocator<unsigned char> >, std::vector<unsigned char, std::allocator<unsigned char> > >, std::allocator<std::pair<std::vector<unsigned char, std::allocator<unsigned char> >, std::vector<unsigned char, std::allocator<unsigned char> > > > >&)': db.cpp:(.text+0x6e81): undefined reference to `Db::verify(char const*, char const*, std::ostream*, unsigned int)' collect2: error: ld returned 1 exit status Error while executing c++ -o .libs/bitcoind -pthread -Wstack-protector -fstack-protector-all -fPIE -O2 -pipe -std=c++14 -Wl,-z -Wl,relro -Wl,-z -Wl,now bitcoind-bitcoind.o libbitcoin_server.a libbitcoin_common.a libbitcoin_util.a libbitcoin_wallet.a libbitcoin_zmq.a libbitcoin_consensus.a crypto/libbitcoin_crypto.a leveldb/libleveldb.a leveldb/libleveldb_sse42.a leveldb/libmemenv.a -L.libs -lunivalue -lsecp256k1 -lboost_system -lc++ -lc++abi -lpthread -lm -lboost_filesystem -lboost_program_options-mt -lboost_thread-mt -lboost_system-mt -lboost_chrono-mt -ldb_cxx -lssl -lcrypto -lminiupnpc -levent_pthreads -levent_extra -levent_core -lzmq -lsodium -Wl,-rpath-link,/usr/local/lib gmake[2]: *** [Makefile:3677: bitcoind] Error 2 gmake[2]: Leaving directory '/usr/ports/pobj/bitcoin-0.16.0/bitcoin-0.16.0/src' gmake[1]: *** [Makefile:9449: all-recursive] Error 1 gmake[1]: Leaving directory '/usr/ports/pobj/bitcoin-0.16.0/bitcoin-0.16.0/src' gmake: *** [Makefile:735: all-recursive] Error 1 *** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2701 '/usr/ports/pobj/bitcoin-0.16.0/.build_done') *** Error 1 in /usr/ports/mystuff/openbsd-wip/net/bitcoin (/usr/ports/infrastructure/mk/bsd.port.mk:2380 'all')