RandomX ARM64 (aarch64) cross compile fails #202

Closed
opened 2 years ago by jahway603 · 22 comments
Collaborator

While testing the build on the dev branch on ARM64 (aarch64), by cross compiling on x86 in Docker, I can not get it to build (as it would before randomx)... it bombs out with RandomX stuff. I added a check to the build-arm.sh script for cmake & it is installed on this container.

Excerpt from the log

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
Fixing libtool for -rpath problems.

Options used to compile and link:
  with wallet   = yes
  with test     = no
  debug enabled = no
  werror        = no

  target os     = linux
  build os      = 

  CC            = /hush3/depends/aarch64-linux-gnu/share/../native/bin/ccache aarch64-linux-gnu-gcc
  CFLAGS        = -pipe -O3 
  CPPFLAGS      = -I/hush3/depends/aarch64-linux-gnu/share/../include/  -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS
  CXX           = /hush3/depends/aarch64-linux-gnu/share/../native/bin/ccache aarch64-linux-gnu-g++ -std=c++11
  CXXFLAGS      = -pipe -O3 -g -fwrapv -fno-strict-aliasing -Wno-builtin-declaration-mismatch
  LDFLAGS       = -L/hush3/depends/aarch64-linux-gnu/share/../lib 
  ARFLAGS       = cr

+ WD=/hush3
+ cd src/cc
+ echo /hush3/src/cc
/hush3/src/cc
+ ./makecustom

Linux
Building cclib to src/
LINUX ARM 64bit 
aarch64-linux-gnu-g++ -Wno-write-strings -DBUILD_CUSTOMCC -std=c++11 -I../secp256k1/include -I../../depends/x86_64-unknown-linux-gnu/include -I../univalue/include -I../cryptoconditions/include -I../cryptoconditions/src -I../cryptoconditions/src/asn -I.. -I. -fPIC -shared -O0 -D _DEBUG -o customcc.so -c cclib.cpp
cp customcc.so ../libcc.so
CUSTOMCC BUILD SUCCESSFUL
+ cd /hush3
+ cd src/RandomX
+ '[' -d build ']'
+ ls -la build/librandomx.a
-rw-r--r-- 1 root root 753024 Sep 19 05:28 build/librandomx.a
+ cd /hush3
+ make -j16 V=1
Making all in src
make[1]: Entering directory '/hush3/src'
make[2]: Entering directory '/hush3/src'
make  -C secp256k1 libsecp256k1.la OPTFLAGS="-O2 -g "
make  -C cryptoconditions libcryptoconditions_core.la OPTFLAGS="-O2 -g "
make[3]: Entering directory '/hush3/src/secp256k1'
make[3]: Leaving directory '/hush3/src/secp256k1'
make[3]: Entering directory '/hush3/src/cryptoconditions'
make[3]: 'libcryptoconditions_core.la' is up to date.
make[3]: Leaving directory '/hush3/src/cryptoconditions'
/bin/bash ../libtool  --tag=CXX   --mode=link /hush3/depends/aarch64-linux-gnu/share/../native/bin/ccache aarch64-linux-gnu-g++ -std=c++11 -fPIC  -Wformat -Wformat-security -Wstack-protector -fstack-protector-all  -fPIE -pipe -O3 -g -fwrapv -fno-strict-aliasing -Wno-builtin-declaration-mismatch  -pthread   -Wl,-z,relro -Wl,-z,now -pie   -L/hush3/depends/aarch64-linux-gnu/share/../lib  -o hushd hushd-bitcoind.o  libbitcoin_server.a -lcurl libbitcoin_common.a univalue/libunivalue.la libbitcoin_util.a crypto/libbitcoin_crypto.a libzcash.a libhush.a ./leveldb/libleveldb.a ./leveldb/libmemenv.a secp256k1/libsecp256k1.la cryptoconditions/libcryptoconditions_core.la RandomX/build/librandomx.a libbitcoin_wallet.a -L/hush3/depends/aarch64-linux-gnu/share/../lib -lboost_system -lboost_filesystem -lboost_program_options -lboost_thread -lboost_chrono -ldb_cxx-6.2 -L/hush3/depends/aarch64-linux-gnu/lib -lwolfssl -L/hush3/depends/aarch64-linux-gnu/lib -lwolfssl -L/hush3/depends/aarch64-linux-gnu/lib -levent_pthreads -levent -L/hush3/depends/aarch64-linux-gnu/lib -levent crypto/libbitcoin_crypto.a -lgmp -lgmpxx -lboost_system -lwolfssl -lsodium -lrustzcash -ldl   libcc.so secp256k1/libsecp256k1.la -lanl 
libtool: link: /hush3/depends/aarch64-linux-gnu/share/../native/bin/ccache aarch64-linux-gnu-g++ -std=c++11 -fPIC -Wformat -Wformat-security -Wstack-protector -fstack-protector-all -fPIE -pipe -O3 -g -fwrapv -fno-strict-aliasing -Wno-builtin-declaration-mismatch -pthread -Wl,-z -Wl,relro -Wl,-z -Wl,now -pie -o hushd hushd-bitcoind.o libcc.so  -L/hush3/depends/aarch64-linux-gnu/share/../lib libbitcoin_server.a /hush3/depends/aarch64-linux-gnu/lib/libcurl.a -L/hush3/depends/aarch64-linux-gnu/lib -L/lib libbitcoin_common.a univalue/.libs/libunivalue.a libbitcoin_util.a libzcash.a libhush.a ./leveldb/libleveldb.a ./leveldb/libmemenv.a cryptoconditions/.libs/libcryptoconditions_core.a RandomX/build/librandomx.a libbitcoin_wallet.a -lboost_filesystem -lboost_program_options -lboost_thread -lboost_chrono -ldb_cxx-6.2 /hush3/depends/aarch64-linux-gnu/lib/libevent_pthreads.a /hush3/depends/aarch64-linux-gnu/lib/libevent.a crypto/libbitcoin_crypto.a /hush3/depends/aarch64-linux-gnu/lib/libgmpxx.a /hush3/depends/aarch64-linux-gnu/lib/libgmp.a -lboost_system /hush3/depends/aarch64-linux-gnu/lib/libwolfssl.a -lm /hush3/depends/aarch64-linux-gnu/lib/libsodium.a -lrustzcash -ldl secp256k1/.libs/libsecp256k1.a -lanl -pthread
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:2241: hushd] Error 1
make[2]: Leaving directory '/hush3/src'
make[1]: *** [Makefile:4840: all-recursive] Error 1
make[1]: Leaving directory '/hush3/src'
make: *** [Makefile:637: all-recursive] Error 1
While testing the build on the dev branch on ARM64 (aarch64), by [cross compiling on x86 in Docker](https://git.hush.is/jahway603/hush-docs/src/branch/master/advanced/cross-compile-hush-full-node-to-aarch64-with-docker.md), I can not get it to build (as it would before randomx)... it bombs out with RandomX stuff. I added a check to the build-arm.sh script for cmake & it is installed on this container. Excerpt from the log ``` 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 Fixing libtool for -rpath problems. Options used to compile and link: with wallet = yes with test = no debug enabled = no werror = no target os = linux build os = CC = /hush3/depends/aarch64-linux-gnu/share/../native/bin/ccache aarch64-linux-gnu-gcc CFLAGS = -pipe -O3 CPPFLAGS = -I/hush3/depends/aarch64-linux-gnu/share/../include/ -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS CXX = /hush3/depends/aarch64-linux-gnu/share/../native/bin/ccache aarch64-linux-gnu-g++ -std=c++11 CXXFLAGS = -pipe -O3 -g -fwrapv -fno-strict-aliasing -Wno-builtin-declaration-mismatch LDFLAGS = -L/hush3/depends/aarch64-linux-gnu/share/../lib ARFLAGS = cr + WD=/hush3 + cd src/cc + echo /hush3/src/cc /hush3/src/cc + ./makecustom Linux Building cclib to src/ LINUX ARM 64bit aarch64-linux-gnu-g++ -Wno-write-strings -DBUILD_CUSTOMCC -std=c++11 -I../secp256k1/include -I../../depends/x86_64-unknown-linux-gnu/include -I../univalue/include -I../cryptoconditions/include -I../cryptoconditions/src -I../cryptoconditions/src/asn -I.. -I. -fPIC -shared -O0 -D _DEBUG -o customcc.so -c cclib.cpp cp customcc.so ../libcc.so CUSTOMCC BUILD SUCCESSFUL + cd /hush3 + cd src/RandomX + '[' -d build ']' + ls -la build/librandomx.a -rw-r--r-- 1 root root 753024 Sep 19 05:28 build/librandomx.a + cd /hush3 + make -j16 V=1 Making all in src make[1]: Entering directory '/hush3/src' make[2]: Entering directory '/hush3/src' make -C secp256k1 libsecp256k1.la OPTFLAGS="-O2 -g " make -C cryptoconditions libcryptoconditions_core.la OPTFLAGS="-O2 -g " make[3]: Entering directory '/hush3/src/secp256k1' make[3]: Leaving directory '/hush3/src/secp256k1' make[3]: Entering directory '/hush3/src/cryptoconditions' make[3]: 'libcryptoconditions_core.la' is up to date. make[3]: Leaving directory '/hush3/src/cryptoconditions' /bin/bash ../libtool --tag=CXX --mode=link /hush3/depends/aarch64-linux-gnu/share/../native/bin/ccache aarch64-linux-gnu-g++ -std=c++11 -fPIC -Wformat -Wformat-security -Wstack-protector -fstack-protector-all -fPIE -pipe -O3 -g -fwrapv -fno-strict-aliasing -Wno-builtin-declaration-mismatch -pthread -Wl,-z,relro -Wl,-z,now -pie -L/hush3/depends/aarch64-linux-gnu/share/../lib -o hushd hushd-bitcoind.o libbitcoin_server.a -lcurl libbitcoin_common.a univalue/libunivalue.la libbitcoin_util.a crypto/libbitcoin_crypto.a libzcash.a libhush.a ./leveldb/libleveldb.a ./leveldb/libmemenv.a secp256k1/libsecp256k1.la cryptoconditions/libcryptoconditions_core.la RandomX/build/librandomx.a libbitcoin_wallet.a -L/hush3/depends/aarch64-linux-gnu/share/../lib -lboost_system -lboost_filesystem -lboost_program_options -lboost_thread -lboost_chrono -ldb_cxx-6.2 -L/hush3/depends/aarch64-linux-gnu/lib -lwolfssl -L/hush3/depends/aarch64-linux-gnu/lib -lwolfssl -L/hush3/depends/aarch64-linux-gnu/lib -levent_pthreads -levent -L/hush3/depends/aarch64-linux-gnu/lib -levent crypto/libbitcoin_crypto.a -lgmp -lgmpxx -lboost_system -lwolfssl -lsodium -lrustzcash -ldl libcc.so secp256k1/libsecp256k1.la -lanl libtool: link: /hush3/depends/aarch64-linux-gnu/share/../native/bin/ccache aarch64-linux-gnu-g++ -std=c++11 -fPIC -Wformat -Wformat-security -Wstack-protector -fstack-protector-all -fPIE -pipe -O3 -g -fwrapv -fno-strict-aliasing -Wno-builtin-declaration-mismatch -pthread -Wl,-z -Wl,relro -Wl,-z -Wl,now -pie -o hushd hushd-bitcoind.o libcc.so -L/hush3/depends/aarch64-linux-gnu/share/../lib libbitcoin_server.a /hush3/depends/aarch64-linux-gnu/lib/libcurl.a -L/hush3/depends/aarch64-linux-gnu/lib -L/lib libbitcoin_common.a univalue/.libs/libunivalue.a libbitcoin_util.a libzcash.a libhush.a ./leveldb/libleveldb.a ./leveldb/libmemenv.a cryptoconditions/.libs/libcryptoconditions_core.a RandomX/build/librandomx.a libbitcoin_wallet.a -lboost_filesystem -lboost_program_options -lboost_thread -lboost_chrono -ldb_cxx-6.2 /hush3/depends/aarch64-linux-gnu/lib/libevent_pthreads.a /hush3/depends/aarch64-linux-gnu/lib/libevent.a crypto/libbitcoin_crypto.a /hush3/depends/aarch64-linux-gnu/lib/libgmpxx.a /hush3/depends/aarch64-linux-gnu/lib/libgmp.a -lboost_system /hush3/depends/aarch64-linux-gnu/lib/libwolfssl.a -lm /hush3/depends/aarch64-linux-gnu/lib/libsodium.a -lrustzcash -ldl secp256k1/.libs/libsecp256k1.a -lanl -pthread /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a: error adding symbols: file in wrong format collect2: error: ld returned 1 exit status make[2]: *** [Makefile:2241: hushd] Error 1 make[2]: Leaving directory '/hush3/src' make[1]: *** [Makefile:4840: all-recursive] Error 1 make[1]: Leaving directory '/hush3/src' make: *** [Makefile:637: all-recursive] Error 1 ```
Owner

@jahway603 can you send the build-arm.sh cmake code changes as a PR or just commit directly to dev branch?

As for the above error, it feels like we need a similar change to how @fekt fixed how cmake is used in Windows. It seems that the build system code I wrote for cmake works fine in a normal build, but needs extra help when doing a cross compile. The rest of the build system passes around various variables to make cross-compiles work, but I never tested cross compiles with cmake.

The above error is a link-time error, not a compile time error.

This looks relevant: https://stackoverflow.com/questions/23185341/relocations-in-generic-elf-em-40

@jahway603 can you send the build-arm.sh cmake code changes as a PR or just commit directly to dev branch? As for the above error, it feels like we need a similar change to how @fekt fixed how cmake is used in Windows. It seems that the build system code I wrote for cmake works fine in a normal build, but needs extra help when doing a cross compile. The rest of the build system passes around various variables to make cross-compiles work, but I never tested cross compiles with cmake. The above error is a link-time error, not a compile time error. This looks relevant: https://stackoverflow.com/questions/23185341/relocations-in-generic-elf-em-40
Owner

@jahway603 I added randomx to build-arm.sh to dev branch, along with the kind of fix that @fekt did to fix windows cross-compiles, please test that. If you have uncommitted changes to build-arm.sh in your git repo, you can type "git stash" to locally save those somewhere and give you a "clean slate" to do a "git pull" on

@jahway603 I added randomx to build-arm.sh to dev branch, along with the kind of fix that @fekt did to fix windows cross-compiles, please test that. If you have uncommitted changes to build-arm.sh in your git repo, you can type "git stash" to locally save those somewhere and give you a "clean slate" to do a "git pull" on
duke added this to the 3.9.2 milestone 2 years ago
jahway603 was assigned by duke 2 years ago
duke self-assigned this 2 years ago
Poster
Collaborator

Note Have successfully tested hush v3.9.1 & It does cross-compile successfully for ARM64 (on a Linux Intel/AMD64-based system) using the instructions linked in the OP.

new note
I was not able to compile 3.9.1 release (or current dev branch) natively on a Rasp Pi4 ARM64 because ARM does not have the g++-multilib library available on its architecture. Only working way to build these is via cross-compiling.

***Note*** Have successfully tested hush v3.9.1 & It does cross-compile successfully for ARM64 (on a Linux Intel/AMD64-based system) using the instructions linked in the OP. ***new note*** I was not able to compile 3.9.1 release (or current dev branch) natively on a Rasp Pi4 ARM64 because ARM does not have the `g++-multilib` library available on its architecture. Only working way to build these is via cross-compiling.
Owner

@jahway603 is the current failure in compiling 3.9.2 the same as before? The build script has changed since you made this issue

@jahway603 is the current failure in compiling 3.9.2 the same as before? The build script has changed since you made this issue

I noticed the build-arm.sh doesn't have the same configuration. These instructions worked for me before the changes: https://git.hush.is/oDinZu/docs/src/branch/master/advanced/cross-compile-hush-full-node-to-aarch64-with-docker.md

This worked for me before: HOST=aarch64-linux-gnu

The extra deps I installed were: libboost-dev, libdb++-dev, libwolssl-dev and g++-aarch64-linux-gnu

my docker container was: debian:bullseye

Also, duke said: randomx requires cmake, and now the Hush build requires make and cmake. The current issues are related to the new randomx/cmake stuff not passing along the right config options

I noticed the build-arm.sh doesn't have the same configuration. These instructions worked for me before the changes: https://git.hush.is/oDinZu/docs/src/branch/master/advanced/cross-compile-hush-full-node-to-aarch64-with-docker.md This worked for me before: `HOST=aarch64-linux-gnu` The extra deps I installed were: `libboost-dev, libdb++-dev, libwolssl-dev and g++-aarch64-linux-gnu` my docker container was: `debian:bullseye` Also, duke said: ```randomx requires cmake, and now the Hush build requires make and cmake. The current issues are related to the new randomx/cmake stuff not passing along the right config options```
Owner

I don't think this should block 3.9.2 so I am removing it from the 3.9.2 milestone

I don't think this should block 3.9.2 so I am removing it from the 3.9.2 milestone
duke removed this from the 3.9.2 milestone 2 years ago
onryo self-assigned this 2 years ago
Poster
Collaborator

With hushd 3.9.3 on the way - any ideas on how to get this working on ARM64 (aarch64)?

With hushd 3.9.3 on the way - any ideas on how to get this working on ARM64 (aarch64)?
duke commented 1 year ago
Owner

@jahway603 have you tested with the latest code? There have been some build system changes mentioning armv8 and arm64

@jahway603 have you tested with the latest code? There have been some build system changes mentioning armv8 and arm64
Poster
Collaborator

@duke will test latest dev branch, but I believe it's still failing due to the RandomX code

@duke will test latest dev branch, but I believe it's still failing due to the RandomX code
duke commented 1 year ago
Owner

@jahway603 The high level problem is likely that "the build scripts do not pass along important things to cmake of RandomX, such as cross-compile options/etc" but as to the exact problem, I am not sure

@jahway603 The high level problem is likely that "the build scripts do not pass along important things to cmake of RandomX, such as cross-compile options/etc" but as to the exact problem, I am not sure
duke commented 1 year ago
Owner

@jahway603 one way to debug might be to see if you can correctly compile/cross-compile RandomX in the src/RandomX subdir, and then when you find the correct options/etc, we can make the build scripts pass those along. Are you able to compile src/RandomX subdir ?

@jahway603 one way to debug might be to see if you can correctly compile/cross-compile RandomX in the src/RandomX subdir, and then when you find the correct options/etc, we can make the build scripts pass those along. Are you able to compile src/RandomX subdir ?
Poster
Collaborator

@jahway603 have you tested with the latest code? There have been some build system changes mentioning armv8 and arm64

It bails, spams the first line below a ton and then bombs with the following (as it also did in the original issue post)

/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:2270: hushd] Error 1
make[2]: Leaving directory '/hush3/src'
make[1]: *** [Makefile:4959: all-recursive] Error 1
make[1]: Leaving directory '/hush3/src'
make: *** [Makefile:637: all-recursive] Error 1

I saved all the stdout (2.1MB txt file) if you need to look at that or if I should attach it here.

> @jahway603 have you tested with the latest code? There have been some build system changes mentioning armv8 and arm64 It bails, spams the first line below a ton and then bombs with the following (as it also did in the original issue post) ``` /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62) /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a: error adding symbols: file in wrong format collect2: error: ld returned 1 exit status make[2]: *** [Makefile:2270: hushd] Error 1 make[2]: Leaving directory '/hush3/src' make[1]: *** [Makefile:4959: all-recursive] Error 1 make[1]: Leaving directory '/hush3/src' make: *** [Makefile:637: all-recursive] Error 1 ``` I saved all the stdout (2.1MB txt file) if you need to look at that or if I should attach it here.
duke added the
build
arm
labels 1 year ago
Poster
Collaborator

This is holding back users of the HushBox and anyone else that decides they want to use hushd on a single board computer with ARM CPU. Unsure of what needs to happen here to work on this as my expertise is an ARM user.

Building on the ARM CPU requires g++-multilib & gcc-multilib to be available on ARM & these wishlist bugs have been opened with the Debian project here:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1033145
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1033146

For now, getting this to compile in Docker on x86_64 for ARM is what needs to happen. The instructions to do this last worked on hushd 3.9.1 before the RandomX code was introducted.

This is holding back users of the HushBox and anyone else that decides they want to use hushd on a single board computer with ARM CPU. Unsure of what needs to happen here to work on this as my expertise is an ARM user. Building on the ARM CPU requires g++-multilib & gcc-multilib to be available on ARM & these wishlist bugs have been opened with the Debian project here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1033145 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1033146 For now, getting this to compile in Docker on x86_64 for ARM is what needs to happen. [The instructions](https://git.hush.is/jahway603/hush-docs/src/branch/master/advanced/cross-compile-hush-full-node-to-aarch64-with-docker.md) to do this last worked on hushd 3.9.1 before the RandomX code was introducted.
duke commented 1 year ago
Owner

@jahway603 if you want to work on this together in a pairing session, I am up for it

@jahway603 if you want to work on this together in a pairing session, I am up for it
duke added the
high priority
label 1 year ago
duke commented 1 year ago
Owner

@jahway603 we will need a mandatory update release soon and if this is not figured out by then, no ARM devices will be able to connect to the network. If you want to work on this together, let me know

@jahway603 we will need a mandatory update release soon and if this is not figured out by then, no ARM devices will be able to connect to the network. If you want to work on this together, let me know
duke commented 1 year ago
Owner

@jahway603 try the arm branch and let us know how it goes.

Make sure it uses a fresh clone or manually delete the already built librandomx.a :

rm src/RandomX/build/librandomx.a
@jahway603 try the `arm` branch and let us know how it goes. Make sure it uses a fresh clone or manually delete the already built librandomx.a : ``` rm src/RandomX/build/librandomx.a ```
Poster
Collaborator

@duke tried arm branch & having the same issue originally reported, which it spams
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)

It's a fresh docker container with a fresh clone.

@duke tried arm branch & having the same issue originally reported, which it spams `/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: RandomX/build/librandomx.a(randomx.cpp.o): Relocations in generic ELF (EM: 62)` It's a fresh docker container with a fresh clone.
duke commented 1 year ago
Owner

@jahway603 I think at this point the best thing to do is to create an issue on https://github.com/tevador/RandomX and explain to them that we are using RandomX in a production mainnet, everything works fine on x86, but we run into this linking error on aarch64 and ask them exactly what flags to cmake need to be given to make it cross-compile correctly.

@jahway603 I think at this point the best thing to do is to create an issue on https://github.com/tevador/RandomX and explain to them that we are using RandomX in a production mainnet, everything works fine on x86, but we run into this linking error on aarch64 and ask them exactly what flags to `cmake` need to be given to make it cross-compile correctly.
Poster
Collaborator

Created RandomX Issue #264 asking "Exactly what flags to cmake need to be given to make it cross-compile correctly for aarch64 (ARM64) architecture?"

Created [RandomX Issue #264](https://github.com/tevador/RandomX/issues/264) asking "Exactly what flags to cmake need to be given to make it cross-compile correctly for aarch64 (ARM64) architecture?"
Poster
Collaborator
RandomX dev's advice was helpful and worked. * [Script to cross-compile hushd for ARM64 (aarch64) is here](https://git.hush.is/hush/hush3/commit/12f746b391432b2c95a2f9e7f7c6e98a4ed2bec0) * [Documentation on how to cross-compile hushd for ARM64 (aarch64) is here](https://git.hush.is/jahway603/hush-docs/src/branch/master/advanced/cross-compile-hush-full-node-to-aarch64-with-docker.md)
Poster
Collaborator

Built fine on dev branch and now building master branch to release a hush 3.9.3 deb for ARM 💯

Built fine on dev branch and now building master branch to release a hush 3.9.3 deb for ARM 💯
Poster
Collaborator

We now have a HSC-compatible hushd for ARM

hush-3.9.3-aarch64.deb is now live in 3.9.3 release

We now have a HSC-compatible hushd for ARM `hush-3.9.3-aarch64.deb` is [now live in 3.9.3 release](https://git.hush.is/hush/hush3/src/tag/v3.9.3)
jahway603 closed this issue 1 year ago
Sign in to join this conversation.
No Milestone
No project
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.