essej/aooserver

Can this service run on an ARM device?

DoudouMee opened this issue · 9 comments

I am hoping to deploy it on my router, is it possible?

essej commented

Assuming the router runs Linux and you can cross compile for it, theoretically yes?

After my research I think it‘s possible to run on my openwrt router, an ARM architecture device by cross compiling.

I have download the official openwrt SDK and get toolchain for the device. And the problem is that I don't know how to compile with this toolchain. I have no idea how this project compiles to get an executable file. What files do I need to change of this project?

After a period of testing, I found that the compilation will report an error at juce_core.cpp
image

How can I modify it to compile it correctly?

essej commented

Based on that error, it looks like there would need to be patches in the JUCE portion to avoid using execinfo because openwrt doesn’t use glibc. Hints found here: nodejs/node#8233

I’m afraid this could snowball to be a real pain to port, and I don’t really have the time to do that…

Thank you a lot. I found it still works when I delete the execinfo.h and its part. But when I try to compile for openwrt, it jumps errors.

Compiling client.cpp
mipsel-openwrt-linux-g++
Compiling codec_pcm.cpp
Compiling common.cpp
Compiling net_utils.cpp
Compiling server.cpp
Compiling sink.cpp
Compiling source.cpp
Compiling sync.cpp
Compiling time.cpp
Compiling md5.c
Compiling OscOutboundPacketStream.cpp
Compiling OscPrintReceivedElements.cpp
Compiling OscReceivedElements.cpp
Compiling OscTypes.cpp
Compiling Main.cpp
Compiling include_juce_audio_basics.cpp
Compiling include_juce_audio_formats.cpp
Compiling include_juce_core.cpp
In file included from ../../JuceLibraryCode/modules/juce_core/juce_core.cpp:70,
from ../../JuceLibraryCode/include_juce_core.cpp:9:
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/include/sys/errno.h:1:2: warning: #warning redirecting incorrect #include <sys/errno.h> to <errno.h> [-Wcpp]
#warning redirecting incorrect #include <sys/errno.h> to <errno.h>
^~~~~~~
Compiling include_juce_cryptography.cpp
Compiling include_juce_data_structures.cpp
Compiling include_juce_events.cpp
Linking aooserver - ConsoleApp
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/md5_22b917f0.o: Relocations in generic ELF (EM: 62)
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/md5_22b917f0.o: Relocations in generic ELF (EM: 62)
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/md5_22b917f0.o: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status
make: *** [Makefile:104: build/aooserver] Error 1

I have solved the lib problem (may be), and now it keep showing xxxx: undefined reference to 'xxxx '

Linking aooserver - ConsoleApp /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/sink_75e48a76.o: in function aoo::source_desc::handle_ping(aoo::sink const&, aoo::time_tag) [clone .constprop.153]':
sink.cpp:(.text+0x1a0): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: sink.cpp:(.text+0x1b4): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/sink_75e48a76.o: in function aoo::source_desc::handle_ping(aoo::sink const&, aoo::time_tag)': sink.cpp:(.text+0x1924): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: sink.cpp:(.text+0x1938): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/sink_75e48a76.o: in function aoo::source_desc::send_notifications(aoo::sink const&)':
sink.cpp:(.text+0x4f64): undefined reference to __atomic_exchange_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: sink.cpp:(.text+0x4fe8): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/sink_75e48a76.o: in function aoo::source_desc::do_update(aoo::sink const&) [clone .part.148]': sink.cpp:(.text+0x623c): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: sink.cpp:(.text+0x6250): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_audio_formats_15f82001.o: in function juce::BufferingAudioReader::readSamples(int**, int, int, long long, int)':
include_juce_audio_formats.cpp:(.text+0xc5f8): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_audio_formats_15f82001.o: in function juce::BufferingAudioReader::readNextBufferChunk()':
include_juce_audio_formats.cpp:(.text+0x622b4): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_core_f26d17db.o: in function juce::Random::setSeedRandomly()':
include_juce_core.cpp:(.text+0x28484): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x28968): undefined reference to __atomic_fetch_xor_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_core_f26d17db.o: in function juce::WebInputStream::WebInputStream(juce::URL const&, bool)': include_juce_core.cpp:(.text+0x5781c): undefined reference to curl_easy_init'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57820): undefined reference to curl_easy_init' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57828): undefined reference to curl_easy_setopt'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x5782c): undefined reference to curl_easy_setopt' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57834): undefined reference to curl_easy_cleanup'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57838): undefined reference to curl_easy_cleanup' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57840): undefined reference to curl_easy_getinfo'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57844): undefined reference to curl_easy_getinfo' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x5784c): undefined reference to curl_multi_add_handle'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57850): undefined reference to curl_multi_add_handle' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57858): undefined reference to curl_multi_cleanup'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x5785c): undefined reference to curl_multi_cleanup' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57864): undefined reference to curl_multi_fdset'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57868): undefined reference to curl_multi_fdset' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57870): undefined reference to curl_multi_info_read'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57874): undefined reference to curl_multi_info_read' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x5787c): undefined reference to curl_multi_init'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57880): undefined reference to curl_multi_init' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57888): undefined reference to curl_multi_perform'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x5788c): undefined reference to curl_multi_perform' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57894): undefined reference to curl_multi_remove_handle'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x57898): undefined reference to curl_multi_remove_handle' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x578a0): undefined reference to curl_multi_timeout'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x578a4): undefined reference to curl_multi_timeout' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x578ac): undefined reference to curl_slist_append'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x578b0): undefined reference to curl_slist_append' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x578b8): undefined reference to curl_slist_free_all'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x578bc): undefined reference to curl_slist_free_all' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x578c4): undefined reference to curl_version_info'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_core.cpp:(.text+0x578c8): undefined reference to curl_version_info' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/common_3542764e.o: in function aoo::timer::timer(aoo::timer const&)':
common.cpp:(.text+0x2690): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x26a8): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x26b4): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x26c8): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/common_3542764e.o: in function aoo::timer::operator=(aoo::timer const&)': common.cpp:(.text+0x2768): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x2780): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x278c): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x27a0): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/common_3542764e.o: in function aoo::timer::setup(int, int)':
common.cpp:(.text+0x2894): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x28a8): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/common_3542764e.o: in function aoo::timer::reset()': common.cpp:(.text+0x2954): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x2968): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/common_3542764e.o: in function aoo::timer::get_elapsed() const':
common.cpp:(.text+0x29e8): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/common_3542764e.o: in function aoo::timer::get_absolute() const':
common.cpp:(.text+0x2a18): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/common_3542764e.o: in function aoo::timer::update(aoo::time_tag, double&)':
common.cpp:(.text+0x2a88): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x2ab0): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x2ae4): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x2b10): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: common.cpp:(.text+0x2c10): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_audio_basics_8a4e984a.o: in function juce::BufferingAudioSource::setNextReadPosition(long long)':
include_juce_audio_basics.cpp:(.text+0x21fc): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_audio_basics_8a4e984a.o: in function juce::BufferingAudioSource::getNextReadPosition() const':
include_juce_audio_basics.cpp:(.text+0x8be8): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x8cdc): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_audio_basics_8a4e984a.o: in function juce::BufferingAudioSource::prepareToPlay(int, double)': include_juce_audio_basics.cpp:(.text+0xa988): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0xa99c): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0xa9d0): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0xa9e4): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_audio_basics_8a4e984a.o: in function juce::BufferingAudioSource::waitForNextAudioBlockReady(juce::AudioSourceChannelInfo const&, unsigned int)':
include_juce_audio_basics.cpp:(.text+0x2cb14): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2cbc8): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2cbe4): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_audio_basics_8a4e984a.o:include_juce_audio_basics.cpp:(.text+0x2cbfc): more undefined references to __atomic_load_8' follow
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_audio_basics_8a4e984a.o: in function juce::BufferingAudioSource::readBufferSection(long long, int, int)': include_juce_audio_basics.cpp:(.text+0x2ced0): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_audio_basics_8a4e984a.o: in function juce::BufferingAudioSource::readNextBufferChunk()': include_juce_audio_basics.cpp:(.text+0x2d118): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d12c): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d138): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d184): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d1c4): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d1dc): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d284): undefined reference to __atomic_store_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d298): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d388): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d3b4): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d3d8): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d400): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d42c): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d44c): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d458): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x2d480): undefined reference to __atomic_store_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: build/intermediate/Release/include_juce_audio_basics_8a4e984a.o: in function juce::BufferingAudioSource::getNextAudioBlock(juce::AudioSourceChannelInfo const&)':
include_juce_audio_basics.cpp:(.text+0x32084): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x320a0): undefined reference to __atomic_load_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x320b8): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x3215c): undefined reference to __atomic_fetch_add_8'
/home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x322a4): undefined reference to __atomic_load_8' /home/admin/op7621/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: include_juce_audio_basics.cpp:(.text+0x322d4): undefined reference to __atomic_load_8'
collect2: error: ld returned 1 exit status
make: *** [Makefile:114: build/aooserver] Error 1
`

The part undefined reference to __atomic_xxx_xx is solved by adding atomic library.

I have managed the cross-compiling. And after adding some needed library, now it works on a router.
Anyway thank you.

essej commented

It would be great if you could share exactly what changes you made or what command line you used with cmake that provided the options that worked for you, thanks!

Sorry to reply so late, I have a lot of things these days.
My work is still lacking, so I uploaded to my repositories to share with you. It contains compiled library and executable files, as well as the makefile I modified from yours, can be used for testing and reference. Hope it is helpful for this project to run on none-PC devices.