Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling on Raspberry Pi 4 #420

Open
KryptoBilko opened this issue Dec 22, 2019 · 11 comments
Open

Compiling on Raspberry Pi 4 #420

KryptoBilko opened this issue Dec 22, 2019 · 11 comments

Comments

@KryptoBilko
Copy link

KryptoBilko commented Dec 22, 2019

Im trying to build the supernode on a Raspberry Pi 4, i made changes to the Cmakelist for compiling on Raspbian Armv7.
The power of an actual Raspberry Pi 4 with 4 GB Ram (doing some optimizations like increasing /tmp to 2048mb and slight overclock) should be enough to compile and run a graftnode & supernode on this small device.

Compiling the graftnode works like a charm, of course the synchronization stucks at block 299200 (direct after switching form v11 to v12), maybe you got a hint for me, i tried everything and build the blockchain 5 times with diffderent options, it stucks everytime at he same block.

The compiling of the supernode works until 98% then it failed...

Some Ideas or changes for compiling the supernode on Raspbian armv7 ?
I tried Crosscompiling without success.

Im still working on a out-of-the box solution for the new Raspberry Pi 4, including a working Graft & Supernode with an actual lmdb on Board, changes will be here in my new pi fork: https://github.com/KryptoBilko/pigraft

This will push the Graft Network, if everyone can easily setup a supernode at home :-)

@mbg033
Copy link
Contributor

mbg033 commented Dec 24, 2019

Compiling the graftnode works like a charm, of course the synchronization stucks at block 299200 (direct after switching form v11 to v12), maybe you got a hint for me, i tried everything and build the blockchain 5 times with diffderent options, it stucks everytime at he same block.

Does it stuck only on Raspberry Pi? Just tried on Linux PC, block 299200 synced ok:

2019-12-24 19:18:46.936	    7f08bae4e7c0	INFO 	global	src/cryptonote_core/cryptonote_core.cpp:609	Loading checkpoints
2019-12-24 19:18:46.936	    7f08bae4e7c0	INFO 	global	src/daemon/core.h:92	Core initialized OK
2019-12-24 19:18:46.936	    7f08bae4e7c0	INFO 	global	src/daemon/rpc.h:78	Starting core rpc server with 4 threads...
2019-12-24 19:18:46.937	[SRV_MAIN]	INFO 	global	src/daemon/rpc.h:83	core RPC server started ok
2019-12-24 19:18:46.938	[SRV_MAIN]	INFO 	global	src/daemon/p2p.h:78	Starting p2p net loop...
2019-12-24 19:18:48.195	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:310	[167.86.101.148:18980 OUT] Sync data returned a new top block candidate: 299125 -> 509284 [Your node is 210159 blocks (291 days) behind] 
SYNCHRONIZATION started
2019-12-24 19:18:51.479	[P2P4]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299145/509284 (58% 210139 blocks remaining)
2019-12-24 19:18:52.148	[P2P4]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299165/509284 (58% 210119 blocks remaining)
2019-12-24 19:18:53.140	[P2P4]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299185/509284 (58% 210099 blocks remaining)
2019-12-24 19:18:54.701	[P2P4]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299205/509284 (58% 210079 blocks remaining)
2019-12-24 19:18:55.999	[P2P4]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299225/509284 (58% 210059 blocks remaining)
2019-12-24 19:18:56.466	[P2P4]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299245/509284 (58% 210039 blocks remaining)
2019-12-24 19:18:57.109	[P2P4]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299265/509284 (58% 210019 blocks remaining)
2019-12-24 19:18:58.748	[P2P4]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299285/509284 (58% 209999 blocks remaining)
2019-12-24 19:19:02.064	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299305/509284 (58% 209979 blocks remaining)
2019-12-24 19:19:02.951	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299325/509284 (58% 209959 blocks remaining)
2019-12-24 19:19:03.703	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299345/509284 (58% 209939 blocks remaining)
2019-12-24 19:19:07.565	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299365/509284 (58% 209919 blocks remaining)
2019-12-24 19:19:10.116	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299385/509284 (58% 209899 blocks remaining)
2019-12-24 19:19:10.673	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299405/509284 (58% 209879 blocks remaining)
2019-12-24 19:19:13.752	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299425/509284 (58% 209859 blocks remaining)
2019-12-24 19:19:16.415	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299445/509284 (58% 209839 blocks remaining)
2019-12-24 19:19:19.132	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299465/509284 (58% 209819 blocks remaining)
2019-12-24 19:19:21.901	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299485/509284 (58% 209799 blocks remaining)
2019-12-24 19:19:24.097	[P2P2]	INFO 	global	src/cryptonote_protocol/cryptonote_protocol_handler.inl:1179	[167.86.101.148:18980 OUT]  Synced 299505/509284 (58% 209779 blocks remaining)

(didn't tried to sync from 0, only popped my blockchain to some point prior block 299200)

The compiling of the supernode works until 98% then it failed...
Some Ideas or changes for compiling the supernode on Raspbian armv7 ?
I tried Crosscompiling without success.

Unfortunately I don't have RPi4 hardware, so I can only try cross-compiling when I have a time for this (don't have much time right now). If you have some howtos/tips on how to setup environment - please share.

@KryptoBilko
Copy link
Author

KryptoBilko commented Dec 25, 2019

Thanks for your response :-)
I got another Node on Ubuntu 18.04 and it works well, the problem is only at Raspbian.
I tried a raw import of an actual lmdb from my ubuntu node, the import works until block 299200, then i got a verification problem...

If i try the import without verification, it imports, of course the blockchain doesnt synchronize with the actual network and stucks at the last imported block.
It seems there is a verification problem beginning at v12 (block 299200). (maybe some swap size problems ?)
My raspbian graftnode is on actual version 1.9.2.
I made some optimizations for compiling like increasing /tmp and swap, better cooling and overclocking to 1800 MHz.

When it all works, im going to create a step-by-step tutorial, for setting up a graft&supernode on a raspberry pi 4 including all tweaks. :-)

At this moment i try to compile the supernode on raspbian again with some new settings, i will post it here with detailed logs.

Do you got some ideas for compiling settings on raspbian ?

@mbg033
Copy link
Contributor

mbg033 commented Dec 25, 2019

In near future i'll be only able to help to check your logs - in particular graftnoded's logs while it stuck with synchronizing around the block 299200 and build log. For runtime log:

  • please pop few blocks with ./graft-blockchain-import --data-dir mainnet_data --pop-blocks N (where N - is a number of blocks you want to pop from blockchain) so you have e.g. 299000 blocks in your blockchain before capturing the log
  • run graftnoded with extra --log-level 2 arg
  • once it stuck, save the log and upload somewhere

For build issue - please either pass me a build log or some howto describing how to setup cross-compile environment (toolchain, libraries, etc) so i could try to build myself. But only RPi is have is the RPi3

@KryptoBilko
Copy link
Author

KryptoBilko commented Dec 25, 2019

Thats my building log, it seems to be a problem with "undefined reference to `__atomic_load_8'"
cmake version 3.13.4
libboost 1.6.7

Last try log:

[ 93%] Linking CXX executable ../../bin/graft-blockchain-export
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::mdb_txn_safe(bool)': /usr/include/c++/8/bits/atomic_base.h:514: undefined reference to __atomic_fetch_add_8'
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::wait_no_active_txns()': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::~mdb_txn_safe()': /usr/include/c++/8/bits/atomic_base.h:524: undefined reference to __atomic_fetch_sub_8'
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::num_active_tx() const': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): in function cryptonote::get_hash_stats(unsigned long long&, unsigned long long&, unsigned long long&, unsigned long long&)': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): in function cryptonote::get_transaction_hash(cryptonote::transaction const&, crypto::hash&, unsigned int*)':
/usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8'
/usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): in function cryptonote::get_block_hash(cryptonote::block const&, crypto::hash&)': /usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::merge_hr()':
/usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::background_worker_thread()':
/usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::worker_thread()':
/usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::get_speed() const': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
collect2: error: ld returned 1 exit status
make[5]: *** [src/blockchain_utilities/CMakeFiles/blockchain_export.dir/build.make:143: bin/graft-blockchain-export] Fehler 1
make[4]: *** [CMakeFiles/Makefile2:2169: src/blockchain_utilities/CMakeFiles/blockchain_export.dir/all] Fehler 2
make[4]: *** Es wird auf noch nicht beendete Prozesse gewartet....
[ 93%] Linking CXX executable ../../bin/graft-blockchain-import
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::mdb_txn_safe(bool)': /usr/include/c++/8/bits/atomic_base.h:514: undefined reference to __atomic_fetch_add_8'
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::wait_no_active_txns()': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::~mdb_txn_safe()': /usr/include/c++/8/bits/atomic_base.h:524: undefined reference to __atomic_fetch_sub_8'
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::num_active_tx() const': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): in function cryptonote::get_hash_stats(unsigned long long&, unsigned long long&, unsigned long long&, unsigned long long&)': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): in function cryptonote::get_transaction_hash(cryptonote::transaction const&, crypto::hash&, unsigned int*)':
/usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8'
/usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): in function cryptonote::get_block_hash(cryptonote::block const&, crypto::hash&)': /usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::merge_hr()':
/usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::background_worker_thread()':
/usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::worker_thread()':
/usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::get_speed() const': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
collect2: error: ld returned 1 exit status
make[5]: *** [src/blockchain_utilities/CMakeFiles/blockchain_import.dir/build.make:143: bin/graft-blockchain-import] Fehler 1
make[4]: *** [CMakeFiles/Makefile2:2218: src/blockchain_utilities/CMakeFiles/blockchain_import.dir/all] Fehler 2
make[3]: *** [Makefile:141: all] Fehler 2
make[2]: *** [CMakeFiles/cryptonode.dir/build.make:111: STAMP/cryptonode/cryptonode-build] Fehler 2
make[1]: *** [CMakeFiles/Makefile2:192: CMakeFiles/cryptonode.dir/all] Fehler 2
make: *** [Makefile:84: all] Fehler 2

@KryptoBilko
Copy link
Author

Cmake Output:
==> The configuration is RelWithDebInfo. Debug info will be extracted into separate files.
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found Git: /usr/bin/git
-- Found Boost Version: 106700
-- Found Boost Version: 106700
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/graft/graft-ng/build

@mbg033
Copy link
Contributor

mbg033 commented Dec 25, 2019

it seems to be a problem with "undefined reference to `__atomic_load_8'"

So you have this issue while building it as part of graft-ng build but if you build GraftNetwork separately it goes ok, right? if so, i would dump and compare make command line invoked while building in both cases. Or, as quick-and-dirty fix, just add libatomic library for arm target, e.g. like this:

set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic")

@KryptoBilko
Copy link
Author

KryptoBilko commented Dec 25, 2019

Thanks for your help, it belongs only to graft-ng.
I will try your fix now. :-)

I found something useful for crosscompiling here:
http://jensd.be/800/linux/cross-compiling-for-arm-with-ubuntu-16-04-lts
http://amgaera.github.io/blog/2014/04/10/cross-compiling-for-raspberry-pi-on-64-bit-linux/

@KryptoBilko
Copy link
Author

Tried it with:
endif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)

set(CMAKE_C_FLAGS "-march=armv7")
set(CMAKE_CXX_FLAGS "-march=armv7")
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic")
project(graft_server)

option(OPT_BUILD_TESTS "Build tests." OFF)

Result:
[ 93%] Linking CXX executable ../../bin/graft-blockchain-import
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::mdb_txn_safe(bool)': /usr/include/c++/8/bits/atomic_base.h:514: undefined reference to __atomic_fetch_add_8'
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::wait_no_active_txns()': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::~mdb_txn_safe()': /usr/include/c++/8/bits/atomic_base.h:524: undefined reference to __atomic_fetch_sub_8'
/usr/bin/ld: ../blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): in function cryptonote::mdb_txn_safe::num_active_tx() const': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): in function cryptonote::get_hash_stats(unsigned long long&, unsigned long long&, unsigned long long&, unsigned long long&)': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): in function cryptonote::get_transaction_hash(cryptonote::transaction const&, crypto::hash&, unsigned int*)':
/usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8'
/usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(cryptonote_format_utils.cpp.o): in function cryptonote::get_block_hash(cryptonote::block const&, crypto::hash&)': /usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::merge_hr()':
/usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::background_worker_thread()':
/usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8'
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::worker_thread()':
/usr/include/c++/8/bits/atomic_base.h:296: undefined reference to __atomic_fetch_add_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
/usr/bin/ld: ../cryptonote_basic/libcryptonote_basic.a(miner.cpp.o): in function cryptonote::miner::get_speed() const': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8'
collect2: error: ld returned 1 exit status
make[5]: *** [src/blockchain_utilities/CMakeFiles/blockchain_import.dir/build.make:143: bin/graft-blockchain-import] Fehler 1
make[4]: *** [CMakeFiles/Makefile2:2218: src/blockchain_utilities/CMakeFiles/blockchain_import.dir/all] Fehler 2
make[3]: *** [Makefile:141: all] Fehler 2
make[2]: *** [CMakeFiles/cryptonode.dir/build.make:111: STAMP/cryptonode/cryptonode-build] Fehler 2
make[1]: *** [CMakeFiles/Makefile2:192: CMakeFiles/cryptonode.dir/all] Fehler 2
make: *** [Makefile:84: all] Fehler 2

Am i wrong with these settings ?

@KryptoBilko
Copy link
Author

KryptoBilko commented Dec 25, 2019

If youre successfull with crosscompiling, please add a compiled arm release ;-)
I will help you with testing. Before that, i have to solve the graftnode synchronization problem.

@KryptoBilko
Copy link
Author

KryptoBilko commented Dec 26, 2019

I extracted from my actual SD-Card an raspbian environment including Toolchain for Crosscompiling:
https://mega.nz/#!VNoj1ASD!s-wAiWOMpVViXIXtJ4mM5Ko2KjTHNseKP8g2FoHn8CM
graft-ng is also there... :-)
Please take a look at the CMakelist i made some changes, commented out:
#set(CMAKE_C_FLAGS "-march=native")
#set(CMAKE_CXX_FLAGS "-march=native")
correct it, before doing cmake ;-)

@KryptoBilko
Copy link
Author

This is far better for compiling & testing:
https://www.osboxes.org/raspbian/#raspbian-2019-04-vbox

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants