Forum Home
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular

    Alpine Segfault when calling neoscrypt()

    Technical Development
    2
    12
    4216
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Trancendence
      Trancendence last edited by Trancendence

      I’ve been playing around with getting FTC running successfully on Alpine Linux (docker gold standard due to 2MB base size) but am getting a segfault dropping into neoscypt’s neoscrypt_pbkdf2_sha256 function…

      I’ve tried to poke around a little, as it would be nice to have it working on Alpine (musl, not glibc) but I’m at a point where I need a bit of hints around how to debug it, or maybe if I let sleeping dogs lie, and just use deb… haha

      The following stacktrace contains normal startup behavior:

      (gdb) run
      Starting program: /repos/Feathercoin/src/feathercoind
      2018-12-09T08:43:18Z Feathercoin Core version v0.17.99.0 (debug build)
      2018-12-09T08:43:18Z InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
      2018-12-09T08:43:18Z Assuming ancestors of block bb4955cff435b39df717aeb144d60ecc2c47b8a133ca7663df66bace6dea97c6 have valid signatures.
      2018-12-09T08:43:18Z Setting nMinimumChainWork=00000000000000000000000000000000000000000000000005383a3c6486afe6
      2018-12-09T08:43:18Z Using the 'standard' SHA256 implementation
      2018-12-09T08:43:18Z Using RdRand as an additional entropy source
      2018-12-09T08:43:18Z Default data directory /root/.feathercoin
      2018-12-09T08:43:18Z Using data directory /root/.feathercoin
      2018-12-09T08:43:18Z Config file: /root/.feathercoin/feathercoin.conf (not found, skipping)
      2018-12-09T08:43:18Z Using at most 125 automatic connections (1024 file descriptors available)
      2018-12-09T08:43:18Z Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements
      2018-12-09T08:43:18Z Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements
      2018-12-09T08:43:18Z Using 6 threads for script verification
      [New LWP 46860]
      [New LWP 46861]
      [New LWP 46862]
      [New LWP 46863]
      [New LWP 46864]
      [New LWP 46865]
      2018-12-09T08:43:18Z scheduler thread start
      2018-12-09T08:43:18Z HTTP: creating work queue of depth 16
      2018-12-09T08:43:18Z No rpcpassword set - using random cookie authentication.
      2018-12-09T08:43:18Z Generated RPC authentication cookie /root/.feathercoin/.cookie
      2018-12-09T08:43:18Z HTTP: starting 4 worker threads
      [New LWP 46866]
      [New LWP 46867]
      [New LWP 46868]
      [New LWP 46869]
      [New LWP 46870]
      2018-12-09T08:43:18Z Using wallet directory /root/.feathercoin/wallets
      2018-12-09T08:43:18Z init message: Verifying wallet(s)...
      2018-12-09T08:43:18Z Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
      2018-12-09T08:43:18Z Using wallet wallet.dat
      2018-12-09T08:43:18Z BerkeleyEnvironment::Open: LogDir=/root/.feathercoin/wallets/database ErrorFile=/root/.feathercoin/wallets/db.log
      2018-12-09T08:43:18Z Cache configuration:
      2018-12-09T08:43:18Z * Using 2.0MiB for block index database
      2018-12-09T08:43:18Z * Using 8.0MiB for chain state database
      2018-12-09T08:43:18Z * Using 440.0MiB for in-memory UTXO set (plus up to 286.1MiB of unused mempool space)
      2018-12-09T08:43:18Z init message: Loading block index...
      2018-12-09T08:43:18Z Opening LevelDB in /root/.feathercoin/blocks/index
      2018-12-09T08:43:18Z Opened LevelDB successfully
      2018-12-09T08:43:18Z Using obfuscation key for /root/.feathercoin/blocks/index: 0000000000000000
      2018-12-09T08:43:18Z LoadBlockIndexDB: last block file = 0
      2018-12-09T08:43:18Z LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=0, size=0, heights=0...0, time=1970-01-01...1970-01-01)
      2018-12-09T08:43:18Z LoadBlockIndexDB(): synchronized checkpoint not read
      2018-12-09T08:43:18Z Checking all blk files are present...
      2018-12-09T08:43:18Z Initializing databases...
      2018-12-09T08:43:18Z Pre-allocating up to position 0x1000000 in blk00000.dat
      2018-12-09T08:43:18Z Opening LevelDB in /root/.feathercoin/chainstate
      2018-12-09T08:43:18Z Opened LevelDB successfully
      2018-12-09T08:43:18Z Wrote new obfuscate key for /root/.feathercoin/chainstate: 879412189ca9bec1
      2018-12-09T08:43:18Z Using obfuscation key for /root/.feathercoin/chainstate: 879412189ca9bec1
      2018-12-09T08:43:18Z init message: Rewinding blocks...
      2018-12-09T08:43:18Z init message: Checking ACP ...
      2018-12-09T08:43:18Z  block index              76ms
      2018-12-09T08:43:18Z init message: Loading wallet...
      2018-12-09T08:43:18Z [default wallet] nFileVersion = 179900
      2018-12-09T08:43:18Z [default wallet] Keys: 0 plaintext, 0 encrypted, 0 w/ metadata, 0 total. Unknown wallet records: 0
      2018-12-09T08:43:18Z [default wallet] Performing wallet upgrade to 169900
      2018-12-09T08:43:19Z [default wallet] keypool added 2000 keys (1000 internal), size=2000 (1000 internal)
      2018-12-09T08:43:19Z [default wallet] Wallet completed loading in            1157ms
      2018-12-09T08:43:19Z [default wallet] setKeyPool.size() = 2000
      2018-12-09T08:43:19Z [default wallet] mapWallet.size() = 0
      2018-12-09T08:43:19Z [default wallet] mapAddressBook.size() = 0
      [New LWP 46871]
      
      Thread 13 "bitcoin-loadblk" received signal SIGSEGV, Segmentation fault.
      [Switching to LWP 46871]
      0x000055555595448e in neoscrypt (password=password@entry=0x555556de5bf0 "\001", output=output@entry=0x7ffff30dfa50 "", profile=<optimized out>) at crypto/neoscrypt.c:2328
      2328                neoscrypt_pbkdf2_sha256(password, 80, password, 80, 1,
      (gdb) backtrace
      #0  0x000055555595448e in neoscrypt (password=password@entry=0x555556de5bf0 "\001", output=output@entry=0x7ffff30dfa50 "", profile=<optimized out>) at crypto/neoscrypt.c:2328
      #1  0x000055555593b734 in CBlockHeader::GetPoWHash (this=this@entry=0x555556de5bf0, profile=<optimized out>) at primitives/block.cpp:25
      #2  0x0000555555744cf2 in ReadBlockFromDisk (block=..., pos=..., consensusParams=...) at validation.cpp:1092
      #3  0x0000555555744f7b in ReadBlockFromDisk (block=..., pindex=pindex@entry=0x555556b55340, consensusParams=...) at validation.cpp:1106
      #4  0x000055555574707c in CChainState::ConnectTip (this=this@entry=0x555555e4ad20 <g_chainstate>, state=..., chainparams=..., pindexNew=0x555556b55340, pblock=..., connectTrace=..., disconnectpool=...)
          at validation.cpp:2361
      #5  0x00005555557483f0 in CChainState::ActivateBestChainStep (this=this@entry=0x555555e4ad20 <g_chainstate>, state=..., chainparams=..., pindexMostWork=pindexMostWork@entry=0x555556b55340, pblock=...,
          fInvalidFound=@0x7ffff30dff9f: false, connectTrace=...) at validation.cpp:2521
      #6  0x00005555557492bb in CChainState::ActivateBestChain (this=this@entry=0x555555e4ad20 <g_chainstate>, state=..., chainparams=..., pblock=...) at validation.cpp:2644
      #7  0x0000555555749938 in ActivateBestChain (state=..., chainparams=..., pblock=...) at validation.cpp:2696
      #8  0x0000555555592c5c in ThreadImport (vImportFiles=...) at init.cpp:672
      #9  0x00005555555a737d in boost::_bi::list1<boost::_bi::value<std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> > > >::operator()<void (*)(std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> >), boost::_bi::list0> (a=<synthetic pointer>..., f=<optimized out>, this=<optimized out>) at /usr/include/boost/bind/bind.hpp:259
      #10 boost::_bi::bind_t<void, void (*)(std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> >), boost::_bi::list1<boost::_bi::value<std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> > > > >::operator() (this=<optimized out>) at /usr/include/boost/bind/bind.hpp:1294
      #11 boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> >), boost::_bi::list1<boost::_bi::value<std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> > > > > >::run (this=<optimized out>) at /usr/include/boost/thread/detail/thread.hpp:116
      #12 0x00007ffff77399fd in ?? () from /usr/lib/libboost_thread-mt.so.1.66.0
      #13 0x00007ffff7dbf6c2 in ?? () from /lib/ld-musl-x86_64.so.1
      #14 0x0000000000000000 in ?? ()
      

      Just tested building from v0.16.3 and a segfault occurs at the exact same point:

      Starting program: /repos/Feathercoin/src/feathercoind
      [New LWP 27590]
      [New LWP 27591]
      [New LWP 27592]
      [New LWP 27593]
      [New LWP 27594]
      [New LWP 27595]
      [New LWP 27596]
      [New LWP 27597]
      [New LWP 27598]
      [New LWP 27599]
      [New LWP 27600]
      [New LWP 27601]
      
      Thread 13 "bitcoin-loadblk" received signal SIGSEGV, Segmentation fault.
      [Switching to LWP 27601]
      0x0000555555ba04fd in neoscrypt (password=0x555556f5ab90 "\001", output=0x7ffff39bdaa0 "", profile=3) at crypto/neoscrypt.c:2328
      2328                neoscrypt_pbkdf2_sha256(password, 80, password, 80, 1,
      (gdb) backtrace
      #0  0x0000555555ba04fd in neoscrypt (password=0x555556f5ab90 "\001", output=0x7ffff39bdaa0 "", profile=3) at crypto/neoscrypt.c:2328
      #1  0x0000555555b86486 in CBlockHeader::GetPoWHash (this=0x555556f5ab90, profile=3) at primitives/block.cpp:23
      #2  0x0000555555885fc4 in ReadBlockFromDisk (block=..., pos=..., consensusParams=...) at validation.cpp:1130
      #3  0x00005555558861e0 in ReadBlockFromDisk (block=..., pindex=0x555556cd1bc0, consensusParams=...) at validation.cpp:1144
      #4  0x000055555588f9ea in CChainState::ConnectTip (this=0x555555feb580 <g_chainstate>, state=..., chainparams=..., pindexNew=0x555556cd1bc0, pblock=..., connectTrace=..., disconnectpool=...)
          at validation.cpp:2340
      #5  0x0000555555891b2b in CChainState::ActivateBestChainStep (this=0x555555feb580 <g_chainstate>, state=..., chainparams=..., pindexMostWork=0x555556cd1bc0, pblock=...,
          fInvalidFound=@0x7ffff39be089: false, connectTrace=...) at validation.cpp:2500
      #6  0x00005555558920eb in CChainState::ActivateBestChain (this=0x555555feb580 <g_chainstate>, state=..., chainparams=..., pblock=...) at validation.cpp:2615
      #7  0x00005555558925a3 in ActivateBestChain (state=..., chainparams=..., pblock=...) at validation.cpp:2667
      #8  0x00005555555ad96e in ThreadImport (vImportFiles=...) at init.cpp:688
      #9  0x000055555561da2c in boost::_bi::list1<boost::_bi::value<std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> > > >::operator()<void (*)(std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> >), boost::_bi::list0> (this=0x555556f5a0e0,
          f=@0x555556f5a0d8: 0x5555555ad2ef <ThreadImport(std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> >)>, a=...) at /usr/include/boost/bind/bind.hpp:259
      #10 0x000055555561d108 in boost::_bi::bind_t<void, void (*)(std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> >), boost::_bi::list1<boost::_bi::value<std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> > > > >::operator() (this=0x555556f5a0d8) at /usr/include/boost/bind/bind.hpp:1294
      #11 0x000055555561c68b in boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> >), boost::_bi::list1<boost::_bi::value<std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> > > > > >::run (this=0x555556f59fa0) at /usr/include/boost/thread/detail/thread.hpp:117
      #12 0x00007ffff76b14dd in ?? () from /usr/lib/libboost_thread-mt.so.1.67.0
      #13 0x00007ffff7fbe95b in ?? () from /lib/ld-musl-x86_64.so.1
      #14 0x0000000000000000 in ?? ()
      

      Any thoughts on how to debug/fix this?

      1 Reply Last reply Reply Quote 0
      • Trancendence
        Trancendence last edited by Trancendence

        If you’re keen to have a debug play with the exact same dev environment here’s my in progress Dockerfile:

        FROM alpine:latest
        
        ENV BUILD_DIR /tmp
        ENV DB_VERSION 4.8.30.NC
        ENV DB_SHASUM 12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef
        ENV FTC_VERSION v0.17.0.1
        
        RUN apk add --no-cache --virtual .build-deps \
                # Build tooling
                autoconf \
                automake \
                g++ \
                git \
                libtool \
                make \
                # Required deps
                libressl-dev \
                boost-dev \
                libevent-dev \
                # Optional deps
                miniupnpc-dev \
                zeromq-dev \
            # Obtain and build BerkleyDB
            && wget -P ${BUILD_DIR} http://download.oracle.com/berkeley-db/db-${DB_VERSION}.tar.gz \
            && (echo "${DB_SHASUM}  ${BUILD_DIR}/db-${DB_VERSION}.tar.gz" | sha256sum -c) \
            && tar -xvf ${BUILD_DIR}/db-${DB_VERSION}.tar.gz -C ${BUILD_DIR}/ \
            && cd ${BUILD_DIR}/db-${DB_VERSION}/build_unix \
            && sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BUILD_DIR}/db-${DB_VERSION}/dbinc/atomic.h \
            && ../dist/configure \
                --prefix=/usr/ \
                --includedir=/usr/include/db4 \
                --enable-cxx \
                --enable-compat185 \
                --disable-shared \
                --with-pic \
            && make install \
            # Obtain and build Feathercoin
            && git clone https://github.com/feathercoin/feathercoin.git ${BUILD_DIR}/feathercoin \
            && cd ${BUILD_DIR}/feathercoin \
            && git fetch --tags \
            && git checkout ${FTC_VERSION} \
            && ./autogen.sh \
            && ./configure \
                --prefix=/usr/ \
                --disable-shared \
                --disable-asm \
                --enable-static \
                --without-gui \
                # --disable-wallet \
            # Compile, shrink and install binaries...
            && make \
            #&& strip -s $BUILD_DIR/feathercoin/src/feathercoind \
            #&& strip -s $BUILD_DIR/feathercoin/src/feathercoin-cli \
            #&& strip -s $BUILD_DIR/feathercoin/src/feathercoin-tx \
            && make install \
            # Clean up dev dependencies
            && cd ${BUILD_DIR}/db-${DB_VERSION}/build_unix \
            && make uninstall \
            && rm -Rf ${BUILD_DIR} \
            && apk del .build-deps \
            # Install required libs \
            && apk add --no-cache \
                boost \
                boost-filesystem \
                boost-system \
                boost-thread \
                libevent \
                libgcc \
                libstdc++ \
                libzmq \
                miniupnpc
        
        EXPOSE 9336 9337 19336 19337
        

        Do the 'ole:

        docker build -t ftc .
         ~ leave an age to compile ~
        docker run -it ftc sh
        # / feathercoind
        2018-12-09T08:43:18Z Feathercoin Core version v0.17.0.1
        2018-12-09T08:43:18Z InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
        ...
        Segmentation fault
        
        1 Reply Last reply Reply Quote 0
        • Wellenreiter
          Wellenreiter Moderators last edited by Wellenreiter

          @Trancendence
          At the moment I have no real idea, what is happening on your system.
          I assume you are using a default feathercoin.conf?
          Can you provide it with rpcuser/passwords deleted
          or if you use commandline parameters only, can you provide these?

          Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
          Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

          1 Reply Last reply Reply Quote 0
          • Trancendence
            Trancendence last edited by

            Hey @Wellenreiter!
            Yeah, using whatever the defaults are used on startup (without a config).
            Even with a super default feathercoin.conf file it blows out on first up:

            server=1
            rpcbind=127.0.0.1
            rpcallowip=127.0.0.1
            rpcuser=admin
            rpcpassword=admin
            rest=1
            

            Now, here’s the weird thing (I thought I’d try as a last ditch effort):
            If I SCP my local chainstate and blocks from Windows into Alpine, it generates a wallet and loads up happily… Even stopping/restarting it it kicks off fine.

            If I run -reindex it’ll progress until it segfaults, then the data becomes corrupt and segfaults yet again calling neoscrypt.
            So it seems limited to first load and blowing out on the first block after 16MB~.

            1 Reply Last reply Reply Quote 0
            • Wellenreiter
              Wellenreiter Moderators last edited by

              I had the same message

               InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
              

              in the testnet today, but only once.

              Situation:

              • clean .feathercoin directory without the testnet folder
              • first run after install
              • fully working feathercoin.conf
              • but an instance of testnet-client running

              I got the error once, stopped the other testnet daemon and my new one started working without any errors

              Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
              Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

              1 Reply Last reply Reply Quote 0
              • Trancendence
                Trancendence last edited by

                Yeah, strangely that message comes up all the time on start up… I just shortened it from what was printed out above.

                Here’s my build config log:

                localhost:/repos/Feathercoin# ./configure \
                >     --prefix=/usr/ \
                >     --disable-shared \
                >     --disable-asm \
                >     --enable-static \
                >     --without-gui \
                >     --enable-debug
                checking for gcc... gcc
                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 gcc accepts -g... yes
                checking for gcc option to accept ISO C89... none needed
                checking whether gcc understands -c and -o together... yes
                checking whether make supports the include directive... yes (GNU style)
                checking dependency style of gcc... gcc3
                checking build system type... x86_64-pc-linux-musl
                checking host system type... x86_64-pc-linux-musl
                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 dependency style of gcc... gcc3
                checking whether to enable maintainer-specific portions of Makefiles... yes
                checking whether make supports nested variables... (cached) yes
                checking for g++... g++
                checking whether we are using the GNU C++ compiler... yes
                checking whether g++ accepts -g... yes
                checking dependency style of g++... gcc3
                checking whether g++ supports C++11 features with -std=c++11... yes
                checking whether std::atomic can be used without link library... yes
                checking whether we are using the GNU Objective C++ compiler... no
                checking whether g++ -std=c++11 accepts -g... no
                checking dependency style of g++ -std=c++11... gcc3
                checking how to print strings... printf
                checking for a sed that does not truncate output... /bin/sed
                checking for grep that handles long lines and -e... /bin/grep
                checking for egrep... /bin/grep -E
                checking for fgrep... /bin/grep -F
                checking for ld used by gcc... /usr/x86_64-alpine-linux-musl/bin/ld
                checking if the linker (/usr/x86_64-alpine-linux-musl/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... 98304
                checking how to convert x86_64-pc-linux-musl file names to x86_64-pc-linux-musl format... func_convert_file_noop
                checking how to convert x86_64-pc-linux-musl file names to toolchain format... func_convert_file_noop
                checking for /usr/x86_64-alpine-linux-musl/bin/ld option to reload object files... -r
                checking for objdump... objdump
                checking how to recognize dependent libraries... pass_all
                checking for dlltool... no
                checking how to associate runtime and link libraries... printf %s\n
                checking for ar... ar
                checking for archiver @FILE support... @
                checking for strip... strip
                checking for ranlib... ranlib
                checking command to parse /usr/bin/nm -B output from gcc object... ok
                checking for sysroot... no
                checking for a working dd... /bin/dd
                checking how to truncate binary pipes... /bin/dd bs=4096 count=1
                ./configure: line 1: /usr/bin/file: not found
                checking for mt... no
                checking if : is a manifest tool... no
                checking how to run the C preprocessor... gcc -E
                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 gcc supports -fno-rtti -fno-exceptions... no
                checking for gcc option to produce PIC... -fPIC -DPIC
                checking if gcc PIC flag -fPIC -DPIC works... yes
                checking if gcc static flag -static works... yes
                checking if gcc supports -c -o file.o... yes
                checking if gcc supports -c -o file.o... (cached) yes
                checking whether the gcc linker (/usr/x86_64-alpine-linux-musl/bin/ld) supports shared libraries... yes
                checking dynamic linker characteristics... GNU/Linux 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 how to run the C++ preprocessor... g++ -std=c++11 -E
                checking for ld used by g++ -std=c++11... /usr/x86_64-alpine-linux-musl/bin/ld
                checking if the linker (/usr/x86_64-alpine-linux-musl/bin/ld) is GNU ld... yes
                checking whether the g++ -std=c++11 linker (/usr/x86_64-alpine-linux-musl/bin/ld) supports shared libraries... yes
                checking for g++ -std=c++11 option to produce PIC... -fPIC -DPIC
                checking if g++ -std=c++11 PIC flag -fPIC -DPIC works... yes
                checking if g++ -std=c++11 static flag -static works... yes
                checking if g++ -std=c++11 supports -c -o file.o... yes
                checking if g++ -std=c++11 supports -c -o file.o... (cached) yes
                checking whether the g++ -std=c++11 linker (/usr/x86_64-alpine-linux-musl/bin/ld) supports shared libraries... yes
                checking dynamic linker characteristics... (cached) GNU/Linux 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 python3.7... no
                checking for python3.6... /usr/bin/python3.6
                checking for genhtml... no
                checking for git... /usr/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 objcopy... /usr/bin/objcopy
                checking for doxygen... no
                configure: WARNING: Doxygen not found
                checking whether C++ compiler accepts -Werror... yes
                checking whether C++ compiler accepts -Og... yes
                checking whether C++ compiler accepts -g3... yes
                checking whether C++ preprocessor accepts -DDEBUG... yes
                checking whether C++ preprocessor accepts -DDEBUG_LOCKORDER... yes
                checking whether C++ compiler accepts -ftrapv... yes
                checking whether C++ compiler accepts -Wall... yes
                checking whether C++ compiler accepts -Wextra... yes
                checking whether C++ compiler accepts -Wformat... yes
                checking whether C++ compiler accepts -Wvla... yes
                checking whether C++ compiler accepts -Wformat-security... yes
                checking whether C++ compiler accepts -Wthread-safety-analysis... no
                checking whether C++ compiler accepts -Wrange-loop-analysis... no
                checking whether C++ compiler accepts -Wunused-parameter... yes
                checking whether C++ compiler accepts -Wself-assign... no
                checking whether C++ compiler accepts -Wunused-local-typedef... no
                checking whether C++ compiler accepts -Wdeprecated-register... no
                checking whether C++ compiler accepts -Wimplicit-fallthrough... yes
                checking whether C++ compiler accepts -msse4.2... yes
                checking whether C++ compiler accepts -msse4.1... yes
                checking whether C++ compiler accepts -mavx -mavx2... yes
                checking whether C++ compiler accepts -msse4 -msha... yes
                checking for assembler crc32 support... yes
                checking for SSE4.1 intrinsics... yes
                checking for AVX2 intrinsics... yes
                checking for SHA-NI intrinsics... yes
                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 whether gcc is Clang... no
                checking whether pthreads work with -pthread... yes
                checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
                checking whether 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,--high-entropy-va... no
                checking whether the linker accepts -Wl,-z,relro... yes
                checking whether the linker accepts -Wl,-z,now... yes
                checking whether the linker accepts -fPIE -pie... yes
                checking endian.h usability... yes
                checking endian.h presence... yes
                checking for endian.h... yes
                checking sys/endian.h usability... no
                checking sys/endian.h presence... no
                checking for sys/endian.h... no
                checking byteswap.h usability... yes
                checking byteswap.h presence... yes
                checking for byteswap.h... yes
                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... yes
                checking sys/prctl.h presence... yes
                checking for sys/prctl.h... yes
                checking whether strnlen is declared... yes
                checking whether daemon 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... yes
                checking whether bswap_32 is declared... yes
                checking whether bswap_64 is declared... yes
                checking whether __builtin_clz is declared... yes
                checking whether __builtin_clzl is declared... yes
                checking whether __builtin_clzll is declared... yes
                checking for getmemoryinfo... no
                checking for mallopt M_ARENA_MAX... no
                checking for visibility attribute... yes
                checking for thread_local support... yes
                checking for Linux getrandom syscall... yes
                checking for getentropy... yes
                checking for getentropy via random.h... yes
                checking for sysctl KERN_ARND... no
                checking for if type char equals int8_t... no
                checking for Berkeley DB C++ headers... /usr/include/db4/
                checking for main in -ldb_cxx-4.8... yes
                checking miniupnpc/miniwget.h usability... yes
                checking miniupnpc/miniwget.h presence... yes
                checking for miniupnpc/miniwget.h... yes
                checking for upnpDiscover in -lminiupnpc... yes
                checking miniupnpc/miniupnpc.h usability... yes
                checking miniupnpc/miniupnpc.h presence... yes
                checking for miniupnpc/miniupnpc.h... yes
                checking for upnpDiscover in -lminiupnpc... (cached) yes
                checking miniupnpc/upnpcommands.h usability... yes
                checking miniupnpc/upnpcommands.h presence... yes
                checking for miniupnpc/upnpcommands.h... yes
                checking for upnpDiscover in -lminiupnpc... (cached) yes
                checking miniupnpc/upnperrors.h usability... yes
                checking miniupnpc/upnperrors.h presence... yes
                checking for miniupnpc/upnperrors.h... yes
                checking for upnpDiscover in -lminiupnpc... (cached) yes
                checking whether to build Feathercoin Core GUI... no (Qt5)
                checking for boostlib >= 1.47.0... yes
                checking whether the Boost::System library is available... yes
                checking for exit in -lboost_system... yes
                checking whether the Boost::Filesystem library is available... yes
                checking for exit in -lboost_filesystem... yes
                checking whether the Boost::Thread library is available... yes
                checking for exit in -lboost_thread-mt... yes
                checking whether the Boost::Chrono library is available... yes
                checking for exit in -lboost_chrono-mt... yes
                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... yes
                checking whether EVP_MD_CTX_new is declared... yes
                checking whether to build feathercoind... yes
                checking whether to build utils (feathercoin-cli feathercoin-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... yes
                checking whether to build with UPnP enabled by default... no
                checking whether to build test_feathercoin... no
                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 doc/man/Makefile
                config.status: creating share/setup.nsi
                config.status: creating share/qt/Info.plist
                config.status: creating test/config.ini
                config.status: creating contrib/devtools/split-debug.sh
                config.status: creating src/config/bitcoin-config.h
                config.status: executing depfiles commands
                config.status: executing libtool commands
                === configuring in src/univalue (/repos/Feathercoin/src/univalue)
                configure: running /bin/sh ./configure --disable-option-checking '--prefix=/usr'  '--disable-shared' '--disable-asm' '--enable-static' '--without-gui' '--enable-debug' '--disable-shared' '--with-pic' '--with-bignum=no' '--enable-module-recovery' '--disable-jni' --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-pc-linux-musl
                checking host system type... x86_64-pc-linux-musl
                checking how to print strings... printf
                checking whether make supports the include directive... yes (GNU style)
                checking for gcc... gcc
                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 gcc accepts -g... yes
                checking for gcc option to accept ISO C89... none needed
                checking whether gcc understands -c and -o together... yes
                checking dependency style of gcc... gcc3
                checking for a sed that does not truncate output... /bin/sed
                checking for grep that handles long lines and -e... /bin/grep
                checking for egrep... /bin/grep -E
                checking for fgrep... /bin/grep -F
                checking for ld used by gcc... /usr/x86_64-alpine-linux-musl/bin/ld
                checking if the linker (/usr/x86_64-alpine-linux-musl/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... 98304
                checking how to convert x86_64-pc-linux-musl file names to x86_64-pc-linux-musl format... func_convert_file_noop
                checking how to convert x86_64-pc-linux-musl file names to toolchain format... func_convert_file_noop
                checking for /usr/x86_64-alpine-linux-musl/bin/ld option to reload object files... -r
                checking for objdump... objdump
                checking how to recognize dependent libraries... pass_all
                checking for dlltool... no
                checking how to associate runtime and link libraries... printf %s\n
                checking for ar... ar
                checking for archiver @FILE support... @
                checking for strip... strip
                checking for ranlib... ranlib
                checking command to parse /usr/bin/nm -B output from gcc object... ok
                checking for sysroot... no
                checking for a working dd... /bin/dd
                checking how to truncate binary pipes... /bin/dd bs=4096 count=1
                ./configure: line 1: /usr/bin/file: not found
                checking for mt... no
                checking if : is a manifest tool... no
                checking how to run the C preprocessor... gcc -E
                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 gcc supports -fno-rtti -fno-exceptions... no
                checking for gcc option to produce PIC... -fPIC -DPIC
                checking if gcc PIC flag -fPIC -DPIC works... yes
                checking if gcc static flag -static works... yes
                checking if gcc supports -c -o file.o... yes
                checking if gcc supports -c -o file.o... (cached) yes
                checking whether the gcc linker (/usr/x86_64-alpine-linux-musl/bin/ld) supports shared libraries... yes
                checking dynamic linker characteristics... GNU/Linux 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 for g++... g++
                checking whether we are using the GNU C++ compiler... yes
                checking whether g++ accepts -g... yes
                checking dependency style of g++... gcc3
                checking how to run the C++ preprocessor... g++ -E
                checking for ld used by g++... /usr/x86_64-alpine-linux-musl/bin/ld
                checking if the linker (/usr/x86_64-alpine-linux-musl/bin/ld) is GNU ld... yes
                checking whether the g++ linker (/usr/x86_64-alpine-linux-musl/bin/ld) supports shared libraries... yes
                checking for g++ option to produce PIC... -fPIC -DPIC
                checking if g++ PIC flag -fPIC -DPIC works... yes
                checking if g++ static flag -static works... yes
                checking if g++ supports -c -o file.o... yes
                checking if g++ supports -c -o file.o... (cached) yes
                checking whether the g++ linker (/usr/x86_64-alpine-linux-musl/bin/ld) supports shared libraries... yes
                checking dynamic linker characteristics... (cached) GNU/Linux 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: univalue-config.h is unchanged
                config.status: executing depfiles commands
                config.status: executing libtool commands
                === configuring in src/secp256k1 (/repos/Feathercoin/src/secp256k1)
                configure: running /bin/sh ./configure --disable-option-checking '--prefix=/usr'  '--disable-shared' '--disable-asm' '--enable-static' '--without-gui' '--enable-debug' '--disable-shared' '--with-pic' '--with-bignum=no' '--enable-module-recovery' '--disable-jni' --cache-file=/dev/null --srcdir=.
                checking build system type... x86_64-pc-linux-musl
                checking host system type... x86_64-pc-linux-musl
                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... printf
                checking whether make supports the include directive... yes (GNU style)
                checking for gcc... gcc
                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 gcc accepts -g... yes
                checking for gcc option to accept ISO C89... none needed
                checking whether gcc understands -c and -o together... yes
                checking dependency style of gcc... gcc3
                checking for a sed that does not truncate output... /bin/sed
                checking for grep that handles long lines and -e... /bin/grep
                checking for egrep... /bin/grep -E
                checking for fgrep... /bin/grep -F
                checking for ld used by gcc... /usr/x86_64-alpine-linux-musl/bin/ld
                checking if the linker (/usr/x86_64-alpine-linux-musl/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... 98304
                checking how to convert x86_64-pc-linux-musl file names to x86_64-pc-linux-musl format... func_convert_file_noop
                checking how to convert x86_64-pc-linux-musl file names to toolchain format... func_convert_file_noop
                checking for /usr/x86_64-alpine-linux-musl/bin/ld option to reload object files... -r
                checking for objdump... objdump
                checking how to recognize dependent libraries... pass_all
                checking for dlltool... no
                checking how to associate runtime and link libraries... printf %s\n
                checking for ar... ar
                checking for archiver @FILE support... @
                checking for strip... strip
                checking for ranlib... ranlib
                checking command to parse /usr/bin/nm -B output from gcc object... ok
                checking for sysroot... no
                checking for a working dd... /bin/dd
                checking how to truncate binary pipes... /bin/dd bs=4096 count=1
                ./configure: line 1: /usr/bin/file: not found
                checking for mt... no
                checking if : is a manifest tool... no
                checking how to run the C preprocessor... gcc -E
                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 gcc supports -fno-rtti -fno-exceptions... no
                checking for gcc option to produce PIC... -fPIC -DPIC
                checking if gcc PIC flag -fPIC -DPIC works... yes
                checking if gcc static flag -static works... yes
                checking if gcc supports -c -o file.o... yes
                checking if gcc supports -c -o file.o... (cached) yes
                checking whether the gcc linker (/usr/x86_64-alpine-linux-musl/bin/ld) supports shared libraries... yes
                checking dynamic linker characteristics... GNU/Linux 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 gcc option to accept ISO C89... (cached) none needed
                checking dependency style of gcc... gcc3
                checking if gcc 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 gcc supports -fvisibility=hidden... yes
                checking for __int128... yes
                checking for __builtin_expect... yes
                checking native compiler: gcc... ok
                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 static precomputation: yes
                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 for coverage analysis: no
                configure: Building ECDH module: no
                configure: Building ECDSA pubkey recovery module: yes
                configure: Using jni: no
                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: src/libsecp256k1-config.h is unchanged
                config.status: executing depfiles commands
                config.status: executing libtool commands
                
                Options used to compile and link:
                  with wallet   = yes
                  with gui / qt = no
                  with zmq      = yes
                  with test     = no
                  with bench    = no
                  with upnp     = yes
                  use asm       = no
                  sanitizers    =
                  debug enabled = yes
                  gprof enabled = no
                  werror        = no
                
                  target os     = linux
                  build os      =
                
                  CC            = gcc
                  CFLAGS        = -g -O2 -fPIC
                  CPPFLAGS      =  -DDEBUG -DDEBUG_LOCKORDER  -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2  -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS -fPIC
                  CXX           = g++ -std=c++11
                  CXXFLAGS      =  -Og -g3 -ftrapv  -Wstack-protector -fstack-protector-all  -Wall -Wextra -Wformat -Wvla -Wformat-security  -Wno-unused-parameter -Wno-implicit-fallthrough    -fPIC
                  LDFLAGS       = -pthread  -Wl,-z,relro -Wl,-z,now -pie
                  ARFLAGS       = cr
                
                1 Reply Last reply Reply Quote 0
                • Trancendence
                  Trancendence last edited by

                  And here’s my make log:

                  Making all in src
                  make[1]: Entering directory '/repos/Feathercoin/src'
                  make[2]: Entering directory '/repos/Feathercoin/src'
                  make[3]: Entering directory '/repos/Feathercoin'
                  make[3]: Leaving directory '/repos/Feathercoin'
                    CXX      libbitcoin_server_a-shutdown.o
                    CXX      libbitcoin_server_a-timedata.o
                    CXX      libbitcoin_server_a-torcontrol.o
                    CXX      libbitcoin_server_a-txdb.o
                    CXX      libbitcoin_server_a-txmempool.o
                    CXX      libbitcoin_server_a-ui_interface.o
                    CXX      libbitcoin_server_a-validation.o
                    CXX      libbitcoin_server_a-validationinterface.o
                    CXX      libbitcoin_server_a-versionbits.o
                    CXX      interfaces/libbitcoin_wallet_a-wallet.o
                    CXX      wallet/libbitcoin_wallet_a-coincontrol.o
                    CXX      wallet/libbitcoin_wallet_a-crypter.o
                    CXX      wallet/libbitcoin_wallet_a-db.o
                    CXX      wallet/libbitcoin_wallet_a-feebumper.o
                    CXX      wallet/libbitcoin_wallet_a-fees.o
                    CXX      wallet/libbitcoin_wallet_a-init.o
                    CXX      wallet/libbitcoin_wallet_a-rpcdump.o
                    CXX      wallet/libbitcoin_wallet_a-rpcwallet.o
                    CXX      wallet/libbitcoin_wallet_a-wallet.o
                    CXX      wallet/libbitcoin_wallet_a-walletdb.o
                    CXX      wallet/libbitcoin_wallet_a-walletutil.o
                    CXX      wallet/libbitcoin_wallet_a-coinselection.o
                    CXX      libbitcoin_common_a-base58.o
                    CXX      libbitcoin_common_a-bech32.o
                    CXX      libbitcoin_common_a-chainparams.o
                  In file included from ./script/script.h:10,
                                   from ./primitives/transaction.h:11,
                                   from ./primitives/block.h:9,
                                   from ./chainparams.h:11,
                                   from chainparams.cpp:6:
                  ./prevector.h: In function 'CBlock CreateGenesisBlock(uint32_t, uint32_t, uint32_t, int32_t, const CAmount&)':
                  ./prevector.h:162:79: warning: 'genesisOutputScript.prevector<28, unsigned char>::_union.prevector<28, unsigned char>::direct_or_indirect::<anonymous>.prevector<28, unsigned char>::direct_or_indirect::<unnamed struct>::indirect' may be used uninitialized in this function [-Wmaybe-uninitialized]
                       T* indirect_ptr(difference_type pos) { return reinterpret_cast<T*>(_union.indirect) + pos; }
                                                                                          ~~~~~~~^~~~~~~~
                  ./prevector.h:181:69: warning: 'genesisOutputScript.prevector<28, unsigned char>::_union.prevector<28, unsigned char>::direct_or_indirect::<anonymous>.prevector<28, unsigned char>::direct_or_indirect::<unnamed struct>::indirect' may be used uninitialized in this function [-Wmaybe-uninitialized]
                                   _union.indirect = static_cast<char*>(realloc(_union.indirect, ((size_t)sizeof(T)) * new_capacity));
                                                                                ~~~~~~~^~~~~~~~
                    CXX      libbitcoin_common_a-coins.o
                    CXX      libbitcoin_common_a-compressor.o
                  In file included from ./script/script.h:10,
                                   from ./primitives/transaction.h:11,
                                   from ./coins.h:9,
                                   from coins.cpp:5:
                  ./prevector.h: In function 'void AddCoins(CCoinsViewCache&, const CTransaction&, int, bool)':
                  ./prevector.h:162:79: warning: '*((void*)(&<anonymous>)+8).prevector<28, unsigned char>::_union.prevector<28, unsigned char>::direct_or_indirect::<anonymous>.prevector<28, unsigned char>::direct_or_indirect::<unnamed struct>::indirect' may be used uninitialized in this function [-Wmaybe-uninitialized]
                       T* indirect_ptr(difference_type pos) { return reinterpret_cast<T*>(_union.indirect) + pos; }
                                                                                          ~~~~~~~^~~~~~~~
                  ./prevector.h:181:69: warning: '*((void*)(&<anonymous>)+8).prevector<28, unsigned char>::_union.prevector<28, unsigned char>::direct_or_indirect::<anonymous>.prevector<28, unsigned char>::direct_or_indirect::<unnamed struct>::indirect' may be used uninitialized in this function [-Wmaybe-uninitialized]
                                   _union.indirect = static_cast<char*>(realloc(_union.indirect, ((size_t)sizeof(T)) * new_capacity));
                                                                                ~~~~~~~^~~~~~~~
                    CXX      libbitcoin_common_a-core_read.o
                    CXX      libbitcoin_common_a-core_write.o
                    CXX      libbitcoin_common_a-key.o
                    CXX      libbitcoin_common_a-key_io.o
                    CXX      libbitcoin_common_a-keystore.o
                    CXX      libbitcoin_common_a-netaddress.o
                    CXX      libbitcoin_common_a-netbase.o
                    CXX      policy/libbitcoin_common_a-feerate.o
                    CXX      libbitcoin_common_a-protocol.o
                    CXX      libbitcoin_common_a-scheduler.o
                    CXX      script/libbitcoin_common_a-descriptor.o
                    CXX      script/libbitcoin_common_a-ismine.o
                    CXX      script/libbitcoin_common_a-sign.o
                    CXX      script/libbitcoin_common_a-standard.o
                    CXX      libbitcoin_common_a-warnings.o
                  make[3]: Entering directory '/repos/Feathercoin/src/univalue'
                    CXX      lib/libunivalue_la-univalue.lo
                    CXX      support/libbitcoin_util_a-lockedpool.o
                    CXX      libbitcoin_util_a-chainparamsbase.o
                    CXX      lib/libunivalue_la-univalue_get.lo
                    CXX      lib/libunivalue_la-univalue_read.lo
                    CXX      compat/libbitcoin_util_a-glibc_sanity.o
                    CXX      compat/libbitcoin_util_a-glibcxx_sanity.o
                    CXX      compat/libbitcoin_util_a-strnlen.o
                    CXX      libbitcoin_util_a-fs.o
                    CXX      interfaces/libbitcoin_util_a-handler.o
                    CXX      interfaces/libbitcoin_util_a-node.o
                    CXX      libbitcoin_util_a-logging.o
                    CXX      libbitcoin_util_a-random.o
                    CXX      rpc/libbitcoin_util_a-protocol.o
                    CXX      support/libbitcoin_util_a-cleanse.o
                    CXX      libbitcoin_util_a-sync.o
                    CXX      libbitcoin_util_a-threadinterrupt.o
                    CXX      libbitcoin_util_a-util.o
                    CXX      libbitcoin_util_a-utilmoneystr.o
                    CXX      libbitcoin_util_a-utilstrencodings.o
                    CXX      libbitcoin_util_a-utiltime.o
                    CXX      zmq/libbitcoin_zmq_a-zmqabstractnotifier.o
                  util.cpp: In function 'int ScheduleBatchPriority()':
                  util.cpp:1248:37: warning: missing initializer for member 'sched_param::sched_ss_low_priority' [-Wmissing-field-initializers]
                       const static sched_param param{0};
                                                       ^
                  util.cpp:1248:37: warning: missing initializer for member 'sched_param::sched_ss_repl_period' [-Wmissing-field-initializers]
                  util.cpp:1248:37: warning: missing initializer for member 'sched_param::sched_ss_init_budget' [-Wmissing-field-initializers]
                  util.cpp:1248:37: warning: missing initializer for member 'sched_param::sched_ss_max_repl' [-Wmissing-field-initializers]
                    CXX      zmq/libbitcoin_zmq_a-zmqnotificationinterface.o
                    CXX      zmq/libbitcoin_zmq_a-zmqpublishnotifier.o
                    CXX      zmq/libbitcoin_zmq_a-zmqrpc.o
                    CXX      libbitcoin_consensus_a-arith_uint256.o
                    CXX      consensus/libbitcoin_consensus_a-merkle.o
                    CXX      libbitcoin_consensus_a-hash.o
                    CXX      primitives/libbitcoin_consensus_a-block.o
                    CXX      primitives/libbitcoin_consensus_a-transaction.o
                    CXX      libbitcoin_consensus_a-pubkey.o
                    CXX      script/libbitcoin_consensus_a-bitcoinconsensus.o
                    CXX      script/libbitcoin_consensus_a-interpreter.o
                    CXX      script/libbitcoin_consensus_a-script.o
                    CXX      libbitcoin_consensus_a-uint256.o
                    CXX      libbitcoin_consensus_a-utilstrencodings.o
                    CXX      crypto/libbitcoin_crypto_base_a-aes.o
                    CXX      crypto/libbitcoin_crypto_base_a-chacha20.o
                    CXX      crypto/libbitcoin_crypto_base_a-hmac_sha256.o
                    CXX      crypto/libbitcoin_crypto_base_a-hmac_sha512.o
                    CC       crypto/libbitcoin_crypto_base_a-neoscrypt.o
                    CXX      crypto/libbitcoin_crypto_base_a-ripemd160.o
                    CXX      crypto/libbitcoin_crypto_base_a-sha1.o
                    CXX      crypto/libbitcoin_crypto_base_a-sha256.o
                    CXX      crypto/libbitcoin_crypto_base_a-sha512.o
                    CXX      crypto/libbitcoin_crypto_sse41_a-sha256_sse41.o
                    CXX      crypto/libbitcoin_crypto_avx2_a-sha256_avx2.o
                    CXX      crypto/libbitcoin_crypto_shani_a-sha256_shani.o
                    CXX      leveldb/db/libleveldb_a-builder.o
                    CXX      leveldb/db/libleveldb_a-c.o
                    CXX      leveldb/db/libleveldb_a-dbformat.o
                    CXX      lib/libunivalue_la-univalue_write.lo
                    CXX      leveldb/db/libleveldb_a-db_impl.o
                    CXX      leveldb/db/libleveldb_a-db_iter.o
                    CXX      leveldb/db/libleveldb_a-dumpfile.o
                    CXX      leveldb/db/libleveldb_a-filename.o
                    CXXLD    libunivalue.la
                  ar: `u' modifier ignored since `D' is the default (see `U')
                  make[3]: Leaving directory '/repos/Feathercoin/src/univalue'
                    CXX      leveldb/db/libleveldb_a-log_reader.o
                    CXX      leveldb/db/libleveldb_a-log_writer.o
                    CXX      leveldb/db/libleveldb_a-memtable.o
                    CXX      leveldb/db/libleveldb_a-repair.o
                    CXX      leveldb/db/libleveldb_a-table_cache.o
                    CXX      leveldb/db/libleveldb_a-version_edit.o
                    CXX      leveldb/db/libleveldb_a-version_set.o
                    CXX      leveldb/db/libleveldb_a-write_batch.o
                    CXX      leveldb/table/libleveldb_a-block_builder.o
                    CXX      leveldb/table/libleveldb_a-block.o
                    CXX      leveldb/table/libleveldb_a-filter_block.o
                    CXX      leveldb/table/libleveldb_a-format.o
                    CXX      leveldb/table/libleveldb_a-iterator.o
                    CXX      leveldb/table/libleveldb_a-merger.o
                    CXX      leveldb/table/libleveldb_a-table_builder.o
                    CXX      leveldb/table/libleveldb_a-table.o
                    CXX      leveldb/table/libleveldb_a-two_level_iterator.o
                    CXX      leveldb/util/libleveldb_a-arena.o
                    CXX      leveldb/util/libleveldb_a-bloom.o
                    CXX      leveldb/util/libleveldb_a-cache.o
                    CXX      leveldb/util/libleveldb_a-coding.o
                    CXX      leveldb/util/libleveldb_a-comparator.o
                    CXX      leveldb/util/libleveldb_a-crc32c.o
                    CXX      leveldb/util/libleveldb_a-env.o
                    CXX      leveldb/util/libleveldb_a-env_posix.o
                    CXX      leveldb/util/libleveldb_a-filter_policy.o
                    CXX      leveldb/util/libleveldb_a-hash.o
                    CXX      leveldb/util/libleveldb_a-histogram.o
                    CXX      leveldb/util/libleveldb_a-logging.o
                    CXX      leveldb/util/libleveldb_a-options.o
                    CXX      leveldb/util/libleveldb_a-status.o
                    CXX      leveldb/port/libleveldb_a-port_posix.o
                  leveldb/util/logging.cc: In function 'bool leveldb::ConsumeDecimalNumber(leveldb::Slice*, uint64_t*)':
                  leveldb/util/logging.cc:58:40: warning: comparison of integer expressions of different signedness: 'const int' and 'uint64_t' {aka 'long unsigned int'} [-Wsign-compare]
                             (v == kMaxUint64/10 && delta > kMaxUint64%10)) {
                                                    ~~~~~~^~~~~~~~~~~~~~~
                    CXX      leveldb/port/libleveldb_sse42_a-port_posix_sse.o
                    CXX      leveldb/helpers/memenv/libmemenv_a-memenv.o
                    CXX      feathercoin_cli-bitcoin-cli.o
                    CXX      rpc/libbitcoin_cli_a-client.o
                  leveldb/port/port_posix.cc: In function 'bool leveldb::port::HasAcceleratedCRC32C()':
                  leveldb/port/port_posix.cc:60:15: warning: 'ecx' may be used uninitialized in this function [-Wmaybe-uninitialized]
                     return (ecx & (1 << 20)) != 0;
                            ~~~~~^~~~~~~~~~~~
                    CXX      feathercoin_tx-bitcoin-tx.o
                    CXX      crypto/libbitcoinconsensus_la-aes.lo
                    CXX      crypto/libbitcoinconsensus_la-chacha20.lo
                    CXX      crypto/libbitcoinconsensus_la-hmac_sha256.lo
                    CXX      crypto/libbitcoinconsensus_la-hmac_sha512.lo
                    CC       crypto/libbitcoinconsensus_la-neoscrypt.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      libbitcoinconsensus_la-uint256.lo
                    CXX      libbitcoinconsensus_la-utilstrencodings.lo
                    CXX      feathercoind-bitcoind.o
                    CXX      libbitcoin_server_a-addrdb.o
                    CXX      libbitcoin_server_a-addrman.o
                    CXX      libbitcoin_server_a-alert.o
                    CXX      libbitcoin_server_a-bloom.o
                    CXX      libbitcoin_server_a-blockencodings.o
                    CXX      libbitcoin_server_a-chain.o
                    CXX      libbitcoin_server_a-checkpoints.o
                    CXX      libbitcoin_server_a-checkpointsync.o
                    CXX      consensus/libbitcoin_server_a-tx_verify.o
                    CXX      libbitcoin_server_a-httprpc.o
                    CXX      libbitcoin_server_a-httpserver.o
                    CXX      index/libbitcoin_server_a-base.o
                    CXX      index/libbitcoin_server_a-txindex.o
                    CXX      libbitcoin_server_a-init.o
                    CXX      libbitcoin_server_a-dbwrapper.o
                    CXX      libbitcoin_server_a-merkleblock.o
                    CXX      libbitcoin_server_a-miner.o
                    CXX      libbitcoin_server_a-net.o
                    CXX      libbitcoin_server_a-net_processing.o
                    CXX      libbitcoin_server_a-noui.o
                    CXX      libbitcoin_server_a-outputtype.o
                    CXX      policy/libbitcoin_server_a-fees.o
                    CXX      policy/libbitcoin_server_a-policy.o
                    CXX      policy/libbitcoin_server_a-rbf.o
                    CXX      libbitcoin_server_a-pow.o
                    CXX      libbitcoin_server_a-rest.o
                    CXX      rpc/libbitcoin_server_a-blockchain.o
                  In file included from ./serialize.h:24,
                                   from ./policy/feerate.h:10,
                                   from ./policy/policy.h:10,
                                   from policy/policy.cpp:8:
                  ./prevector.h: In function 'bool IsWitnessStandard(const CTransaction&, const CCoinsViewCache&)':
                  ./prevector.h:162:79: warning: 'prevScript.prevector<28, unsigned char>::_union.prevector<28, unsigned char>::direct_or_indirect::<anonymous>.prevector<28, unsigned char>::direct_or_indirect::<unnamed struct>::indirect' may be used uninitialized in this function [-Wmaybe-uninitialized]
                       T* indirect_ptr(difference_type pos) { return reinterpret_cast<T*>(_union.indirect) + pos; }
                                                                                          ~~~~~~~^~~~~~~~
                  ./prevector.h:181:69: warning: 'prevScript.prevector<28, unsigned char>::_union.prevector<28, unsigned char>::direct_or_indirect::<anonymous>.prevector<28, unsigned char>::direct_or_indirect::<unnamed struct>::indirect' may be used uninitialized in this function [-Wmaybe-uninitialized]
                                   _union.indirect = static_cast<char*>(realloc(_union.indirect, ((size_t)sizeof(T)) * new_capacity));
                                                                                ~~~~~~~^~~~~~~~
                    CXX      rpc/libbitcoin_server_a-mining.o
                    CXX      rpc/libbitcoin_server_a-misc.o
                    CXX      rpc/libbitcoin_server_a-net.o
                    CXX      rpc/libbitcoin_server_a-rawtransaction.o
                    CXX      rpc/libbitcoin_server_a-server.o
                    CXX      rpc/libbitcoin_server_a-util.o
                    CXX      script/libbitcoin_server_a-sigcache.o
                    AR       libbitcoin_wallet.a
                    AR       libbitcoin_common.a
                    CXX      libbitcoin_util_a-clientversion.o
                    AR       libbitcoin_zmq.a
                    AR       libbitcoin_consensus.a
                    AR       crypto/libbitcoin_crypto_base.a
                    AR       crypto/libbitcoin_crypto_sse41.a
                    AR       crypto/libbitcoin_crypto_avx2.a
                    AR       crypto/libbitcoin_crypto_shani.a
                    AR       leveldb/libleveldb.a
                    AR       leveldb/libleveldb_sse42.a
                    AR       leveldb/libmemenv.a
                    AR       libbitcoin_cli.a
                    CXXLD    libbitcoinconsensus.la
                    AR       libbitcoin_util.a
                  /usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
                    CXXLD    feathercoin-cli
                    CXXLD    feathercoin-tx
                    AR       libbitcoin_server.a
                    CXXLD    feathercoind
                  make[2]: Leaving directory '/repos/Feathercoin/src'
                  make[1]: Leaving directory '/repos/Feathercoin/src'
                  Making all in doc/man
                  make[1]: Entering directory '/repos/Feathercoin/doc/man'
                  make[1]: Nothing to be done for 'all'.
                  make[1]: Leaving directory '/repos/Feathercoin/doc/man'
                  make[1]: Entering directory '/repos/Feathercoin'
                  make[1]: Nothing to be done for 'all-am'.
                  make[1]: Leaving directory '/repos/Feathercoin'
                  

                  Should be nothing out of the ordinary… ?

                  Wellenreiter 1 Reply Last reply Reply Quote 0
                  • Wellenreiter
                    Wellenreiter Moderators @Trancendence last edited by Wellenreiter

                    @trancendence said in Alpine Segfault when calling neoscrypt():

                    Should be nothing out of the ordinary… ?

                    I can’t tell by heart.
                    The only thing I can think of is an incompability of one of the installed libraries.

                    What you could try is to use the code in the depends folder and compile the required dependencies there.
                    You then can link against these libs and check if the client works.

                    The code is working on all major Linux distributions out of the box. Exceptions are the Systems using openssl v1.1 which causes problems during compile and need the openssl v1.0 contained in the depends folder.
                    Once the code is compiled we didn’t get any feedbacks about problems.
                    I have informed @Bushstar about your problems already.
                    He will try to set up an Alpine environment, but probably it’s not at the top of his todo list, sorry

                    I get it right, you got the segfault with 016.3 and 0.17.1?

                    Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
                    Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

                    1 Reply Last reply Reply Quote 0
                    • Trancendence
                      Trancendence last edited by Trancendence

                      Oh! Totally didn’t know about the depends folder!!

                      I’m currently trying to do a build from the depends sources and see if everything comes up happy. In my head it makes a lot more sense to use the exact required deps! I was using some devel packages from alpine which hopefully was throwing it off…

                      Will update with progress…

                      So far I’ve had to add a monkey patch to force OpenSSL to use TERMIOS instead of TERMIO.
                      Currently building… fingers and toes crossed XD

                      1 Reply Last reply Reply Quote 0
                      • Trancendence
                        Trancendence last edited by

                        Well, that produced a much cleaner compile, but still blows out at the exact same point… :cry:

                        I’ll push what I’ve managed to get to into a Dockerfile to Github over the coming days. :ok_hand:

                        1 Reply Last reply Reply Quote 0
                        • Trancendence
                          Trancendence last edited by Trancendence

                          Oky Dokey, feel free to have a poke at these guys:

                          • Docker Image
                          • Docker Image Github Repository under alpine/Dockerfile
                          docker run matthewhartstonge/ftc-core:alpine-v0.17.0.1a
                          

                          Came down to pullable image size of 9MBs! (19.6MBs uncompressed).

                          1 Reply Last reply Reply Quote 0
                          • Wellenreiter
                            Wellenreiter Moderators last edited by

                            @Trancendence

                            Thanks a lot.
                            :thumbsup:

                            Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
                            Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post