Feathercoin daemon and wallet production version 0.17.0.1

Alpine Segfault when calling neoscrypt()


  • Moderators | Tip 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?


  • | Tip Trancendence

    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~.


  • Moderators | Tip Wellenreiter

    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


  • | Tip Trancendence

    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
    

  • | Tip Trancendence

    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… ?


  • Moderators | Tip 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?


  • | Tip 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


  • | Tip Trancendence

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

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


  • | Tip Trancendence

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

    docker run matthewhartstonge/ftc-core:alpine-v0.17.0.1a
    

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


  • Moderators | Tip Wellenreiter

    @Trancendence

    Thanks a lot.
    👍