Alpine Segfault when calling neoscrypt()
-
@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? -
Hey @Wellenreiter!
Yeah, using whatever the defaults are used on startup (without a config).
Even with a super defaultfeathercoin.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~. -
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
-
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
-
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… ?
-
@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, sorryI get it right, you got the segfault with 016.3 and 0.17.1?
-
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 ofTERMIO
.
Currently building… fingers and toes crossed XD -
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: -
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).
-
Thanks a lot.
:thumbsup: