recipe for target 'libbitcoin_server_a-init.o' failed #7515

issue dotgodly opened this issue on February 11, 2016
  1. dotgodly commented at 11:00 AM on February 11, 2016: none

    Trying to build on OpenBSD 5.8.

    # gmake
    Making all in src
    gmake[1]: Entering directory '/home/bitcoin/bitcoin/src'
    gmake[2]: Entering directory '/home/bitcoin/bitcoin/src'
      CXX      crypto/libbitcoinconsensus_la-hmac_sha256.lo
      CXX      crypto/libbitcoinconsensus_la-hmac_sha512.lo
      CXX      crypto/libbitcoinconsensus_la-ripemd160.lo
      CXX      crypto/libbitcoinconsensus_la-sha1.lo
      CXX      crypto/libbitcoinconsensus_la-sha256.lo
      CXX      crypto/libbitcoinconsensus_la-sha512.lo
      CXX      libbitcoinconsensus_la-arith_uint256.lo
      CXX      consensus/libbitcoinconsensus_la-merkle.lo
      CXX      libbitcoinconsensus_la-hash.lo
      CXX      primitives/libbitcoinconsensus_la-block.lo
      CXX      primitives/libbitcoinconsensus_la-transaction.lo
      CXX      libbitcoinconsensus_la-pubkey.lo
      CXX      script/libbitcoinconsensus_la-bitcoinconsensus.lo
      CXX      script/libbitcoinconsensus_la-interpreter.lo
      CXX      script/libbitcoinconsensus_la-script.lo
      CXX      script/libbitcoinconsensus_la-script_error.lo
      CXX      libbitcoinconsensus_la-uint256.lo
      CXX      libbitcoinconsensus_la-utilstrencodings.lo
    gmake[3]: Entering directory '/home/bitcoin/bitcoin/src/secp256k1'
    gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
    gcc gen_context.o -o gen_context
    ./gen_context
      CC       src/libsecp256k1_la-secp256k1.lo
      CCLD     libsecp256k1.la
    gmake[3]: Leaving directory '/home/bitcoin/bitcoin/src/secp256k1'
      CXXLD    libbitcoinconsensus.la
    
    *** Warning: This system can not link to static lib archive secp256k1/libsecp256k1.la.
    *** I have the capability to make that library automatically link in when
    *** you link to this library.  But I can only do this if you have a
    *** shared version of the library, which you do not appear to have.
      CXX      bitcoind-bitcoind.o
      CXX      libbitcoin_server_a-addrman.o
      CXX      libbitcoin_server_a-alert.o
      CXX      libbitcoin_server_a-bloom.o
      CXX      libbitcoin_server_a-chain.o
      CXX      libbitcoin_server_a-checkpoints.o
      CXX      libbitcoin_server_a-httprpc.o
    In file included from ui_interface.h:12:0,
                     from httprpc.cpp:16:
    /home/bitcoin/bitcoin/boost/include/boost/signals2/last_value.hpp: In member function 'boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::result_type boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::operator()(T1, T2, T3) [with R = bool; T1 = const std::basic_string<char>&; T2 = const std::basic_string<char>&; T3 = unsigned int; Combiner = boost::signals2::last_value<bool>; Group = int; GroupCompare = std::less<int>; SlotFunction = boost::function<bool(const std::basic_string<char>&, const std::basic_string<char>&, unsigned int)>; ExtendedSlotFunction = boost::function<bool(const boost::signals2::connection&, const std::basic_string<char>&, const std::basic_string<char>&, unsigned int)>; Mutex = boost::signals2::mutex; boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::result_type = bool]':
    /home/bitcoin/bitcoin/boost/include/boost/signals2/last_value.hpp:51:36: warning: '*((void*)& value +1)' may be used uninitialized in this function [-Wmaybe-uninitialized]
             if(value) return value.get();
                                        ^
    /home/bitcoin/bitcoin/boost/include/boost/signals2/last_value.hpp:41:21: note: '*((void*)& value +1)' was declared here
             optional<T> value;
                         ^
    At global scope:
    cc1plus: warning: unrecognized command line option "-Wno-self-assign"
      CXX      libbitcoin_server_a-httpserver.o
    In file included from ui_interface.h:12:0,
                     from httpserver.cpp:13:
    /home/bitcoin/bitcoin/boost/include/boost/signals2/last_value.hpp: In member function 'boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::result_type boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::operator()(T1, T2, T3) [with R = bool; T1 = const std::basic_string<char>&; T2 = const std::basic_string<char>&; T3 = unsigned int; Combiner = boost::signals2::last_value<bool>; Group = int; GroupCompare = std::less<int>; SlotFunction = boost::function<bool(const std::basic_string<char>&, const std::basic_string<char>&, unsigned int)>; ExtendedSlotFunction = boost::function<bool(const boost::signals2::connection&, const std::basic_string<char>&, const std::basic_string<char>&, unsigned int)>; Mutex = boost::signals2::mutex; boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::result_type = bool]':
    /home/bitcoin/bitcoin/boost/include/boost/signals2/last_value.hpp:51:36: warning: '*((void*)& value +1)' may be used uninitialized in this function [-Wmaybe-uninitialized]
             if(value) return value.get();
                                        ^
    /home/bitcoin/bitcoin/boost/include/boost/signals2/last_value.hpp:41:21: note: '*((void*)& value +1)' was declared here
             optional<T> value;
                         ^
    At global scope:
    cc1plus: warning: unrecognized command line option "-Wno-self-assign"
      CXX      libbitcoin_server_a-init.o
    In file included from addrman.h:14:0,
                     from init.cpp:12:
    init.cpp: In function 'bool AppInit2(boost::thread_group&, CScheduler&)':
    init.cpp:1095:61: error: 'OPENSSL_VERSION' was not declared in this scope
         LogPrintf("Using OpenSSL version %s\n", OpenSSL_version(OPENSSL_VERSION));
                                                                 ^
    util.h:77:39: note: in definition of macro 'LogPrintf'
     #define LogPrintf(...) LogPrint(NULL, __VA_ARGS__)
                                           ^
    init.cpp:1095:76: error: 'OpenSSL_version' was not declared in this scope
         LogPrintf("Using OpenSSL version %s\n", OpenSSL_version(OPENSSL_VERSION));
                                                                                ^
    util.h:77:39: note: in definition of macro 'LogPrintf'
     #define LogPrintf(...) LogPrint(NULL, __VA_ARGS__)
                                           ^
    In file included from /home/bitcoin/bitcoin/boost/include/boost/system/system_error.hpp:14:0,
                     from /home/bitcoin/bitcoin/boost/include/boost/thread/exceptions.hpp:22,
                     from /home/bitcoin/bitcoin/boost/include/boost/thread/pthread/thread_data.hpp:10,
                     from /home/bitcoin/bitcoin/boost/include/boost/thread/pthread/condition_variable.hpp:12,
                     from /home/bitcoin/bitcoin/boost/include/boost/thread/condition_variable.hpp:16,
                     from sync.h:11,
                     from addrman.h:12,
                     from init.cpp:12:
    /home/bitcoin/bitcoin/boost/include/boost/system/error_code.hpp: At global scope:
    /home/bitcoin/bitcoin/boost/include/boost/system/error_code.hpp:221:36: warning: 'boost::system::posix_category' defined but not used [-Wunused-variable]
         static const error_category &  posix_category = generic_category();
                                        ^
    /home/bitcoin/bitcoin/boost/include/boost/system/error_code.hpp:222:36: warning: 'boost::system::errno_ecat' defined but not used [-Wunused-variable]
         static const error_category &  errno_ecat     = generic_category();
                                        ^
    /home/bitcoin/bitcoin/boost/include/boost/system/error_code.hpp:223:36: warning: 'boost::system::native_ecat' defined but not used [-Wunused-variable]
         static const error_category &  native_ecat    = system_category();
                                        ^
    cc1plus: warning: unrecognized command line option "-Wno-self-assign"
    Makefile:3916: recipe for target 'libbitcoin_server_a-init.o' failed
    gmake[2]: *** [libbitcoin_server_a-init.o] Error 1
    gmake[2]: Leaving directory '/home/bitcoin/bitcoin/src'
    Makefile:7057: recipe for target 'all-recursive' failed
    gmake[1]: *** [all-recursive] Error 1
    gmake[1]: Leaving directory '/home/bitcoin/bitcoin/src'
    Makefile:666: recipe for target 'all-recursive' failed
    gmake: *** [all-recursive] Error 1
    
  2. paveljanik commented at 11:07 AM on February 11, 2016: contributor
    init.cpp:1095:61: error: 'OPENSSL_VERSION' was not declared in this scope
    

    OpenBSD is probably using LibreSSL...

  3. paveljanik commented at 11:07 AM on February 11, 2016: contributor

    Can you please post configure output and config.log?

  4. paveljanik commented at 11:11 AM on February 11, 2016: contributor

    See also #7447.

  5. dotgodly commented at 11:52 AM on February 11, 2016: none

    #7447 fixes my issue. More specifally, running pkg_add openssl and adding -I/usr/local/include/eopenssl/ to CPPFLAGS worked.

  6. dotgodly closed this on Feb 11, 2016

  7. laanwj commented at 12:01 PM on February 11, 2016: member

    Strange. This construction was made to avoid this:

    #if (OPENSSL_VERSION_NUMBER < 0x10100000L)
        LogPrintf("Using OpenSSL version %s\n", SSLeay_version(SSLEAY_VERSION));
    #else
        LogPrintf("Using OpenSSL version %s\n", OpenSSL_version(OPENSSL_VERSION));
    #endif
    

    So old OpenSSLs have SSLEAY_VERSION, newer ones OPENSSL_VERSION. Maybe the threshold was set at the wrong point?

    OpenBSD is probably using LibreSSL...

    Bitcoin should be compatible with that, especially now that OpenSSL is no longer part of the consensus there should be no reason why you'd not use LibreSSL, which is supposed to be a compatible drop-in replacement. Maybe the above construct broke that?

  8. paveljanik commented at 12:11 PM on February 11, 2016: contributor
  9. paveljanik commented at 12:17 PM on February 11, 2016: contributor

    So maybe something like

    #if (OPENSSL_VERSION_NUMBER < 0x10100000L)
        LogPrintf("Using OpenSSL version %s\n", SSLeay_version(SSLEAY_VERSION));
    #else if defined OPENSSL_VERSION
        LogPrintf("Using OpenSSL version %s\n", OpenSSL_version(OPENSSL_VERSION));
    #else if defined LIBRESSL_VERSION_TEXT
       LogPrintf("Using %s\n", LIBRESSL_VERSION_TEXT);
    #endif
    

    not tested...

  10. laanwj commented at 12:46 PM on February 11, 2016: member

    Yes something like that would make sense.

  11. paveljanik commented at 2:39 PM on February 11, 2016: contributor

    @984541351684 Can you please test it (after removing the newly added package)?

  12. dotgodly commented at 5:52 PM on February 11, 2016: none

    Should I just add it to init.cpp? (Line 1092) I'm not a C++ developer, so excuse my ignorance.

  13. paveljanik commented at 6:17 PM on February 11, 2016: contributor

    Just replace the construction used there in init.cpp. The file contains:

    #if (OPENSSL_VERSION_NUMBER < 0x10100000L)
        LogPrintf("Using OpenSSL version %s\n", SSLeay_version(SSLEAY_VERSION));
    #else
        LogPrintf("Using OpenSSL version %s\n", OpenSSL_version(OPENSSL_VERSION));
    #endif
    

    Remove it all and replace it with:

    #if (OPENSSL_VERSION_NUMBER < 0x10100000L)
        LogPrintf("Using OpenSSL version %s\n", SSLeay_version(SSLEAY_VERSION));
    #else if defined OPENSSL_VERSION
        LogPrintf("Using OpenSSL version %s\n", OpenSSL_version(OPENSSL_VERSION));
    #else if defined LIBRESSL_VERSION_TEXT
       LogPrintf("Using %s\n", LIBRESSL_VERSION_TEXT);
    #endif
    
  14. dotgodly commented at 6:56 PM on February 11, 2016: none

    Nope, doesn't work for me.

    Here's my configure:

    
    # ./configure --with-gui=no --with-boost=$BOOST_PREFIX \
    >     CC=egcc CXX=eg++ CPP=ecpp \
    >     LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/"
    checking build system type... x86_64-unknown-openbsd5.8
    checking host system type... x86_64-unknown-openbsd5.8
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
    checking for gawk... no
    checking for mawk... no
    checking for nawk... no
    checking for awk... awk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking whether to enable maintainer-specific portions of Makefiles... yes
    checking whether make supports nested variables... (cached) yes
    checking whether the C++ compiler works... yes
    checking for C++ compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C++ compiler... yes
    checking whether eg++ accepts -g... yes
    checking for style of include used by make... GNU
    checking dependency style of eg++... gcc3
    checking for g++... g++
    checking whether we are using the GNU Objective C++ compiler... no
    checking whether g++ accepts -g... no
    checking dependency style of g++... gcc3
    checking how to print strings... print -r
    checking for gcc... egcc
    checking whether we are using the GNU C compiler... yes
    checking whether egcc accepts -g... yes
    checking for egcc option to accept ISO C89... none needed
    checking whether egcc understands -c and -o together... yes
    checking dependency style of egcc... gcc3
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for fgrep... /usr/bin/grep -F
    checking for ld used by egcc... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 196608
    checking whether the shell understands some XSI constructs... yes
    checking whether the shell understands "+="... no
    checking how to convert x86_64-unknown-openbsd5.8 file names to x86_64-unknown-openbsd5.8 format... func_convert_file_noop
    checking how to convert x86_64-unknown-openbsd5.8 file names to toolchain format... func_convert_file_noop
    checking for /usr/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$
    checking for dlltool... no
    checking how to associate runtime and link libraries... print -r --
    checking for ar... ar
    checking for archiver [@FILE](/bitcoin-bitcoin/contributor/file/) support... @
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/bin/nm -B output from egcc object... ok
    checking for sysroot... no
    checking for mt... mt
    checking if mt is a manifest tool... no
    checking how to run the C preprocessor... ecpp
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if egcc supports -fno-rtti -fno-exceptions... no
    checking for egcc option to produce PIC... -fPIC -DPIC
    checking if egcc PIC flag -fPIC -DPIC works... yes
    checking if egcc static flag -static works... yes
    checking if egcc supports -c -o file.o... yes
    checking if egcc supports -c -o file.o... (cached) yes
    checking whether the egcc linker (/usr/bin/ld) supports shared libraries... yes
    checking whether -lc should be explicitly linked in... yes
    checking dynamic linker characteristics... openbsd5.8 ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... yes
    checking how to run the C++ preprocessor... eg++ -E
    checking for ld used by eg++... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking whether the eg++ linker (/usr/bin/ld) supports shared libraries... yes
    checking for eg++ option to produce PIC... -fPIC -DPIC
    checking if eg++ PIC flag -fPIC -DPIC works... yes
    checking if eg++ static flag -static works... yes
    checking if eg++ supports -c -o file.o... yes
    checking if eg++ supports -c -o file.o... (cached) yes
    checking whether the eg++ linker (/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... openbsd5.8 ld.so
    checking how to hardcode library paths into programs... immediate
    checking for ar... /usr/bin/ar
    checking for ranlib... /usr/bin/ranlib
    checking for strip... /usr/bin/strip
    checking for gcov... /usr/bin/gcov
    checking for lcov... no
    checking for java... no
    checking for python... no
    checking for genhtml... no
    checking for git... /usr/local/bin/git
    checking for ccache... no
    checking for xgettext... no
    checking for hexdump... /usr/bin/hexdump
    checking for readelf... /usr/bin/readelf
    checking for c++filt... /usr/bin/c++filt
    checking for pkg-config... /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking whether byte ordering is bigendian... no
    checking if compiler needs -Werror to reject unknown flags... no
    checking for the pthreads library -lpthreads... no
    checking whether pthreads work without any flags... no
    checking whether pthreads work with -Kthread... no
    checking whether pthreads work with -kthread... no
    checking for the pthreads library -llthread... no
    checking whether pthreads work with -pthread... yes
    checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
    checking if more special flags are required for pthreads... no
    checking for PTHREAD_PRIO_INHERIT... yes
    checking for special C compiler options needed for large files... no
    checking for _FILE_OFFSET_BITS value needed for large files... no
    checking whether strerror_r is declared... yes
    checking for strerror_r... yes
    checking whether strerror_r returns char *... no
    checking whether the linker accepts -Wl,--large-address-aware... no
    checking for __attribute__((visibility))... yes
    checking for __attribute__((dllexport))... no
    checking for __attribute__((dllimport))... no
    checking for library containing clock_gettime... none required
    checking whether C++ compiler accepts -fPIC... yes
    checking whether C++ compiler accepts -Wstack-protector... yes
    checking whether C++ compiler accepts -fstack-protector-all... yes
    checking whether C++ preprocessor accepts -D_FORTIFY_SOURCE=2... yes
    checking whether C++ preprocessor accepts -U_FORTIFY_SOURCE... yes
    checking whether the linker accepts -Wl,--dynamicbase... no
    checking whether the linker accepts -Wl,--nxcompat... no
    checking whether the linker accepts -Wl,-z,relro... yes
    checking whether the linker accepts -Wl,-z,now... yes
    checking whether C++ compiler accepts -fPIE... yes
    checking whether the linker accepts -pie... yes
    checking endian.h usability... yes
    checking endian.h presence... yes
    checking for endian.h... yes
    checking sys/endian.h usability... yes
    checking sys/endian.h presence... yes
    checking for sys/endian.h... yes
    checking byteswap.h usability... no
    checking byteswap.h presence... no
    checking for byteswap.h... no
    checking stdio.h usability... yes
    checking stdio.h presence... yes
    checking for stdio.h... yes
    checking for stdlib.h... (cached) yes
    checking for unistd.h... (cached) yes
    checking for strings.h... (cached) yes
    checking for sys/types.h... (cached) yes
    checking for sys/stat.h... (cached) yes
    checking sys/select.h usability... yes
    checking sys/select.h presence... yes
    checking for sys/select.h... yes
    checking sys/prctl.h usability... no
    checking sys/prctl.h presence... no
    checking for sys/prctl.h... no
    checking for library containing getaddrinfo_a... no
    checking for library containing inet_pton... none required
    checking whether strnlen is declared... yes
    checking whether le16toh is declared... yes
    checking whether le32toh is declared... yes
    checking whether le64toh is declared... yes
    checking whether htole16 is declared... yes
    checking whether htole32 is declared... yes
    checking whether htole64 is declared... yes
    checking whether be16toh is declared... yes
    checking whether be32toh is declared... yes
    checking whether be64toh is declared... yes
    checking whether htobe16 is declared... yes
    checking whether htobe32 is declared... yes
    checking whether htobe64 is declared... yes
    checking whether bswap_16 is declared... no
    checking whether bswap_32 is declared... no
    checking whether bswap_64 is declared... no
    checking for MSG_NOSIGNAL... yes
    checking for visibility attribute... yes
    checking for Berkeley DB C++ headers... default
    checking for main in -ldb_cxx-4.8... yes
    checking miniupnpc/miniwget.h usability... no
    checking miniupnpc/miniwget.h presence... no
    checking for miniupnpc/miniwget.h... no
    checking miniupnpc/miniupnpc.h usability... no
    checking miniupnpc/miniupnpc.h presence... no
    checking for miniupnpc/miniupnpc.h... no
    checking miniupnpc/upnpcommands.h usability... no
    checking miniupnpc/upnpcommands.h presence... no
    checking for miniupnpc/upnpcommands.h... no
    checking miniupnpc/upnperrors.h usability... no
    checking miniupnpc/upnperrors.h presence... no
    checking for miniupnpc/upnperrors.h... no
    checking whether to build Bitcoin Core GUI... no (Qt)
    checking for boostlib >= 1.20.0... yes
    checking whether the Boost::System library is available... yes
    checking for exit in -lboost_system-mt... yes
    checking whether the Boost::Filesystem library is available... yes
    checking for exit in -lboost_filesystem-mt... yes
    checking whether the Boost::Program_Options library is available... yes
    checking for exit in -lboost_program_options-mt... yes
    checking whether the Boost::Thread library is available... yes
    ./configure: break: cannot break
    checking for exit in -lboost_thread-mt... yes
    ./configure: break: cannot break
    checking whether the Boost::Chrono library is available... yes
    checking for exit in -lboost_chrono-mt... yes
    checking whether the Boost::Unit_Test_Framework library is available... yes
    checking for dynamic linked boost test... no
    checking for mismatched boost c++11 scoped enums... ok
    checking for SSL... yes
    checking for CRYPTO... yes
    checking for EVENT... yes
    checking for EVENT_PTHREADS... yes
    checking for ZMQ... no
    configure: WARNING: libzmq version 4.x or greater not found, disabling
    checking openssl/ec.h usability... yes
    checking openssl/ec.h presence... yes
    checking for openssl/ec.h... yes
    checking whether to build bitcoind... yes
    checking whether to build utils (bitcoin-cli bitcoin-tx)... yes
    checking whether to build libraries... yes
    checking if ccache should be used... no
    checking if wallet should be enabled... yes
    checking whether to build with support for UPnP... no
    checking whether to build test_bitcoin... yes
    checking whether to reduce exports... no
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating libbitcoinconsensus.pc
    config.status: creating Makefile
    config.status: creating src/Makefile
    config.status: creating share/setup.nsi
    config.status: creating share/qt/Info.plist
    config.status: creating src/test/buildenv.py
    config.status: creating qa/pull-tester/run-bitcoind-for-test.sh
    config.status: creating qa/pull-tester/tests_config.py
    config.status: creating src/config/bitcoin-config.h
    config.status: executing depfiles commands
    config.status: executing libtool commands
    === configuring in src/univalue (/home/bitcoin/src/univalue)
    configure: running /bin/sh ./configure --disable-option-checking '--prefix=/usr/local'  '--with-gui=no' '--with-boost=/home/bitcoin/boost' 'CC=egcc' 'CXX=eg++' 'CPP=ecpp' 'LDFLAGS=-L/home/bitcoin/db4/lib/' 'CPPFLAGS=-I/home/bitcoin/db4/include/' '--disable-shared' '--with-pic' '--with-bignum=no' '--enable-module-recovery' --cache-file=/dev/null --srcdir=.
    checking whether make supports nested variables... yes
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
    checking for gawk... no
    checking for mawk... no
    checking for nawk... no
    checking for awk... awk
    checking whether make sets $(MAKE)... yes
    checking build system type... x86_64-unknown-openbsd5.8
    checking host system type... x86_64-unknown-openbsd5.8
    checking how to print strings... print -r
    checking for style of include used by make... GNU
    checking for gcc... egcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether egcc accepts -g... yes
    checking for egcc option to accept ISO C89... none needed
    checking whether egcc understands -c and -o together... yes
    checking dependency style of egcc... gcc3
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for fgrep... /usr/bin/grep -F
    checking for ld used by egcc... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 196608
    checking whether the shell understands some XSI constructs... yes
    checking whether the shell understands "+="... no
    checking how to convert x86_64-unknown-openbsd5.8 file names to x86_64-unknown-openbsd5.8 format... func_convert_file_noop
    checking how to convert x86_64-unknown-openbsd5.8 file names to toolchain format... func_convert_file_noop
    checking for /usr/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$
    checking for dlltool... no
    checking how to associate runtime and link libraries... print -r --
    checking for ar... ar
    checking for archiver [@FILE](/bitcoin-bitcoin/contributor/file/) support... @
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/bin/nm -B output from egcc object... ok
    checking for sysroot... no
    checking for mt... mt
    checking if mt is a manifest tool... no
    checking how to run the C preprocessor... ecpp
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if egcc supports -fno-rtti -fno-exceptions... no
    checking for egcc option to produce PIC... -fPIC -DPIC
    checking if egcc PIC flag -fPIC -DPIC works... yes
    checking if egcc static flag -static works... yes
    checking if egcc supports -c -o file.o... yes
    checking if egcc supports -c -o file.o... (cached) yes
    checking whether the egcc linker (/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... openbsd5.8 ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... no
    checking whether to build static libraries... yes
    checking whether we are using the GNU C++ compiler... yes
    checking whether eg++ accepts -g... yes
    checking dependency style of eg++... gcc3
    checking how to run the C++ preprocessor... eg++ -E
    checking for ld used by eg++... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking whether the eg++ linker (/usr/bin/ld) supports shared libraries... yes
    checking for eg++ option to produce PIC... -fPIC -DPIC
    checking if eg++ PIC flag -fPIC -DPIC works... yes
    checking if eg++ static flag -static works... yes
    checking if eg++ supports -c -o file.o... yes
    checking if eg++ supports -c -o file.o... (cached) yes
    checking whether the eg++ linker (/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... openbsd5.8 ld.so
    checking how to hardcode library paths into programs... immediate
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating pc/libunivalue.pc
    config.status: creating pc/libunivalue-uninstalled.pc
    config.status: creating univalue-config.h
    config.status: executing depfiles commands
    config.status: executing libtool commands
    === configuring in src/secp256k1 (/home/bitcoin/src/secp256k1)
    configure: running /bin/sh ./configure --disable-option-checking '--prefix=/usr/local'  '--with-gui=no' '--with-boost=/home/bitcoin/boost' 'CC=egcc' 'CXX=eg++' 'CPP=ecpp' 'LDFLAGS=-L/home/bitcoin/db4/lib/' 'CPPFLAGS=-I/home/bitcoin/db4/include/' '--disable-shared' '--with-pic' '--with-bignum=no' '--enable-module-recovery' --cache-file=/dev/null --srcdir=.
    checking build system type... x86_64-unknown-openbsd5.8
    checking host system type... x86_64-unknown-openbsd5.8
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
    checking for gawk... no
    checking for mawk... no
    checking for nawk... no
    checking for awk... awk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking how to print strings... print -r
    checking for style of include used by make... GNU
    checking for gcc... egcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether egcc accepts -g... yes
    checking for egcc option to accept ISO C89... none needed
    checking whether egcc understands -c and -o together... yes
    checking dependency style of egcc... gcc3
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for fgrep... /usr/bin/grep -F
    checking for ld used by egcc... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 196608
    checking whether the shell understands some XSI constructs... yes
    checking whether the shell understands "+="... no
    checking how to convert x86_64-unknown-openbsd5.8 file names to x86_64-unknown-openbsd5.8 format... func_convert_file_noop
    checking how to convert x86_64-unknown-openbsd5.8 file names to toolchain format... func_convert_file_noop
    checking for /usr/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$
    checking for dlltool... no
    checking how to associate runtime and link libraries... print -r --
    checking for ar... ar
    checking for archiver [@FILE](/bitcoin-bitcoin/contributor/file/) support... @
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/bin/nm -B output from egcc object... ok
    checking for sysroot... no
    checking for mt... mt
    checking if mt is a manifest tool... no
    checking how to run the C preprocessor... ecpp
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if egcc supports -fno-rtti -fno-exceptions... no
    checking for egcc option to produce PIC... -fPIC -DPIC
    checking if egcc PIC flag -fPIC -DPIC works... yes
    checking if egcc static flag -static works... yes
    checking if egcc supports -c -o file.o... yes
    checking if egcc supports -c -o file.o... (cached) yes
    checking whether the egcc linker (/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... openbsd5.8 ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... no
    checking whether to build static libraries... yes
    checking whether make supports nested variables... (cached) yes
    checking for pkg-config... /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking for ar... /usr/bin/ar
    checking for ranlib... /usr/bin/ranlib
    checking for strip... /usr/bin/strip
    checking for gcc... gcc
    checking whether we are using the GNU C compiler... (cached) yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... (cached) none needed
    checking whether gcc understands -c and -o together... (cached) yes
    checking dependency style of gcc... (cached) gcc3
    checking how to run the C preprocessor... gcc -E
    checking for egcc option to accept ISO C89... (cached) none needed
    checking if egcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
    checking if egcc supports -fvisibility=hidden... yes
    checking for __int128... yes
    checking for __builtin_expect... yes
    checking for x86_64 assembly availability... yes
    checking for CRYPTO... yes
    checking for main in -lcrypto... yes
    checking for EC functions in libcrypto... yes
    checking whether byte ordering is bigendian... no
    configure: Using assembly optimizations: x86_64
    configure: Using field implementation: 64bit
    configure: Using bignum implementation: no
    configure: Using scalar implementation: 64bit
    configure: Using endomorphism optimizations: no
    configure: Building ECDH module: no
    configure: Building Schnorr signatures module: no
    configure: Building ECDSA pubkey recovery module: yes
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating libsecp256k1.pc
    config.status: creating src/libsecp256k1-config.h
    config.status: executing depfiles commands
    config.status: executing libtool commands
    

    and the build:

    
    # gmake
    Making all in src
    gmake[1]: Entering directory '/home/bitcoin/src'
    gmake[2]: Entering directory '/home/bitcoin/src'
      CXX      crypto/libbitcoinconsensus_la-hmac_sha256.lo
      CXX      crypto/libbitcoinconsensus_la-hmac_sha512.lo
      CXX      crypto/libbitcoinconsensus_la-ripemd160.lo
      CXX      crypto/libbitcoinconsensus_la-sha1.lo
      CXX      crypto/libbitcoinconsensus_la-sha256.lo
      CXX      crypto/libbitcoinconsensus_la-sha512.lo
      CXX      libbitcoinconsensus_la-arith_uint256.lo
      CXX      consensus/libbitcoinconsensus_la-merkle.lo
      CXX      libbitcoinconsensus_la-hash.lo
      CXX      primitives/libbitcoinconsensus_la-block.lo
      CXX      primitives/libbitcoinconsensus_la-transaction.lo
      CXX      libbitcoinconsensus_la-pubkey.lo
      CXX      script/libbitcoinconsensus_la-bitcoinconsensus.lo
      CXX      script/libbitcoinconsensus_la-interpreter.lo
      CXX      script/libbitcoinconsensus_la-script.lo
      CXX      script/libbitcoinconsensus_la-script_error.lo
      CXX      libbitcoinconsensus_la-uint256.lo
      CXX      libbitcoinconsensus_la-utilstrencodings.lo
    gmake[3]: Entering directory '/home/bitcoin/src/secp256k1'
    gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
    gcc gen_context.o -o gen_context
    ./gen_context
      CC       src/libsecp256k1_la-secp256k1.lo
      CCLD     libsecp256k1.la
    gmake[3]: Leaving directory '/home/bitcoin/src/secp256k1'
      CXXLD    libbitcoinconsensus.la
    
    *** Warning: This system can not link to static lib archive secp256k1/libsecp256k1.la.
    *** I have the capability to make that library automatically link in when
    *** you link to this library.  But I can only do this if you have a
    *** shared version of the library, which you do not appear to have.
      CXX      bitcoind-bitcoind.o
      CXX      libbitcoin_server_a-addrman.o
      CXX      libbitcoin_server_a-alert.o
      CXX      libbitcoin_server_a-bloom.o
      CXX      libbitcoin_server_a-chain.o
      CXX      libbitcoin_server_a-checkpoints.o
      CXX      libbitcoin_server_a-httprpc.o
    In file included from ui_interface.h:12:0,
                     from httprpc.cpp:16:
    /home/bitcoin/boost/include/boost/signals2/last_value.hpp: In member function 'boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::result_type boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::operator()(T1, T2, T3) [with R = bool; T1 = const std::basic_string<char>&; T2 = const std::basic_string<char>&; T3 = unsigned int; Combiner = boost::signals2::last_value<bool>; Group = int; GroupCompare = std::less<int>; SlotFunction = boost::function<bool(const std::basic_string<char>&, const std::basic_string<char>&, unsigned int)>; ExtendedSlotFunction = boost::function<bool(const boost::signals2::connection&, const std::basic_string<char>&, const std::basic_string<char>&, unsigned int)>; Mutex = boost::signals2::mutex; boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::result_type = bool]':
    /home/bitcoin/boost/include/boost/signals2/last_value.hpp:51:36: warning: '*((void*)& value +1)' may be used uninitialized in this function [-Wmaybe-uninitialized]
             if(value) return value.get();
                                        ^
    /home/bitcoin/boost/include/boost/signals2/last_value.hpp:41:21: note: '*((void*)& value +1)' was declared here
             optional<T> value;
                         ^
    At global scope:
    cc1plus: warning: unrecognized command line option "-Wno-self-assign"
      CXX      libbitcoin_server_a-httpserver.o
    In file included from ui_interface.h:12:0,
                     from httpserver.cpp:13:
    /home/bitcoin/boost/include/boost/signals2/last_value.hpp: In member function 'boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::result_type boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::operator()(T1, T2, T3) [with R = bool; T1 = const std::basic_string<char>&; T2 = const std::basic_string<char>&; T3 = unsigned int; Combiner = boost::signals2::last_value<bool>; Group = int; GroupCompare = std::less<int>; SlotFunction = boost::function<bool(const std::basic_string<char>&, const std::basic_string<char>&, unsigned int)>; ExtendedSlotFunction = boost::function<bool(const boost::signals2::connection&, const std::basic_string<char>&, const std::basic_string<char>&, unsigned int)>; Mutex = boost::signals2::mutex; boost::signals2::detail::signal3_impl<R, T1, T2, T3, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex>::result_type = bool]':
    /home/bitcoin/boost/include/boost/signals2/last_value.hpp:51:36: warning: '*((void*)& value +1)' may be used uninitialized in this function [-Wmaybe-uninitialized]
             if(value) return value.get();
                                        ^
    /home/bitcoin/boost/include/boost/signals2/last_value.hpp:41:21: note: '*((void*)& value +1)' was declared here
             optional<T> value;
                         ^
    At global scope:
    cc1plus: warning: unrecognized command line option "-Wno-self-assign"
      CXX      libbitcoin_server_a-init.o
    init.cpp:1094:7: warning: extra tokens at end of #else directive
     #else if defined OPENSSL_VERSION
           ^
    init.cpp:1096:2: error: #else after #else
     #else if defined LIBRESSL_VERSION_TEXT
      ^
    init.cpp:1092:0: error: the conditional began here
     #if (OPENSSL_VERSION_NUMBER < 0x10100000L)
     ^
    init.cpp:1096:7: warning: extra tokens at end of #else directive
     #else if defined LIBRESSL_VERSION_TEXT
           ^
    In file included from addrman.h:14:0,
                     from init.cpp:12:
    init.cpp: In function 'bool AppInit2(boost::thread_group&, CScheduler&)':
    init.cpp:1095:61: error: 'OPENSSL_VERSION' was not declared in this scope
         LogPrintf("Using OpenSSL version %s\n", OpenSSL_version(OPENSSL_VERSION));
                                                                 ^
    util.h:77:39: note: in definition of macro 'LogPrintf'
     #define LogPrintf(...) LogPrint(NULL, __VA_ARGS__)
                                           ^
    init.cpp:1095:76: error: 'OpenSSL_version' was not declared in this scope
         LogPrintf("Using OpenSSL version %s\n", OpenSSL_version(OPENSSL_VERSION));
                                                                                ^
    util.h:77:39: note: in definition of macro 'LogPrintf'
     #define LogPrintf(...) LogPrint(NULL, __VA_ARGS__)
                                           ^
    In file included from /home/bitcoin/boost/include/boost/system/system_error.hpp:14:0,
                     from /home/bitcoin/boost/include/boost/thread/exceptions.hpp:22,
                     from /home/bitcoin/boost/include/boost/thread/pthread/thread_data.hpp:10,
                     from /home/bitcoin/boost/include/boost/thread/pthread/condition_variable.hpp:12,
                     from /home/bitcoin/boost/include/boost/thread/condition_variable.hpp:16,
                     from sync.h:11,
                     from addrman.h:12,
                     from init.cpp:12:
    /home/bitcoin/boost/include/boost/system/error_code.hpp: At global scope:
    /home/bitcoin/boost/include/boost/system/error_code.hpp:221:36: warning: 'boost::system::posix_category' defined but not used [-Wunused-variable]
         static const error_category &  posix_category = generic_category();
                                        ^
    /home/bitcoin/boost/include/boost/system/error_code.hpp:222:36: warning: 'boost::system::errno_ecat' defined but not used [-Wunused-variable]
         static const error_category &  errno_ecat     = generic_category();
                                        ^
    /home/bitcoin/boost/include/boost/system/error_code.hpp:223:36: warning: 'boost::system::native_ecat' defined but not used [-Wunused-variable]
         static const error_category &  native_ecat    = system_category();
                                        ^
    cc1plus: warning: unrecognized command line option "-Wno-self-assign"
    Makefile:3916: recipe for target 'libbitcoin_server_a-init.o' failed
    gmake[2]: *** [libbitcoin_server_a-init.o] Error 1
    gmake[2]: Leaving directory '/home/bitcoin/src'
    Makefile:7057: recipe for target 'all-recursive' failed
    gmake[1]: *** [all-recursive] Error 1
    gmake[1]: Leaving directory '/home/bitcoin/src'
    Makefile:666: recipe for target 'all-recursive' failed
    gmake: *** [all-recursive] Error 1
    
  15. paveljanik commented at 7:21 PM on February 11, 2016: contributor

    Ah, please use this instead, sorry:

    #if (OPENSSL_VERSION_NUMBER < 0x10100000L)
        LogPrintf("Using OpenSSL version %s\n", SSLeay_version(SSLEAY_VERSION));
    #elif defined OPENSSL_VERSION
        LogPrintf("Using OpenSSL version %s\n", OpenSSL_version(OPENSSL_VERSION));
    #elif defined LIBRESSL_VERSION_TEXT
       LogPrintf("Using %s\n", LIBRESSL_VERSION_TEXT);
    #endif
    
  16. dotgodly commented at 7:55 PM on February 11, 2016: none

    Yep, the build succeeds. Do you need the ouput from gmake?

  17. paveljanik commented at 8:06 PM on February 11, 2016: contributor

    No, no, thank you for testing. I'll PR the change for inclusion tomorrow.

  18. paveljanik commented at 8:19 PM on February 11, 2016: contributor

    Just of curiosity, can you please run the following?

    ./bitcoind -debug -printtoconsole | grep Using
    

    Does it print your LibreSSL version correctly?

  19. dotgodly commented at 8:29 PM on February 11, 2016: none

    Yep!

    # ./bitcoind -debug -printtoconsole | grep Using
    2016-02-11 20:28:23 Using LibreSSL 2.2.2
    2016-02-11 20:28:23 Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
    2016-02-11 20:28:23 Using data directory /root/.bitcoin
    2016-02-11 20:28:23 Using config file /root/.bitcoin/bitcoin.conf
    2016-02-11 20:28:23 Using at most 125 connections (275 file descriptors available)
    2016-02-11 20:28:23 Using 0 threads for script verification
    2016-02-11 20:28:23 Using wallet wallet.dat
    2016-02-11 20:28:23 * Using 2.0MiB for block index database
    2016-02-11 20:28:23 * Using 32.5MiB for chain state database
    2016-02-11 20:28:23 * Using 65.5MiB for in-memory UTXO set
    
  20. paveljanik commented at 8:32 PM on February 11, 2016: contributor

    @dotgodly Great! Thanks for checking the fix.

  21. paveljanik commented at 9:03 PM on February 11, 2016: contributor

    BTW - I do not recommend to run bitcoind as root...

  22. dotgodly commented at 9:17 PM on February 11, 2016: none

    Just testing it haha. I've been trying to build for 3 days.

  23. laanwj added the label Linux/Unix on Feb 16, 2016
  24. DrahtBot locked this on Sep 8, 2021

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-13 15:15 UTC

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