essej / aooserver

AoO console server
76 stars 26 forks source link

Can this service run on an ARM device? #3

Closed DoudouMee closed 2 years ago

DoudouMee commented 2 years ago

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

essej commented 2 years ago

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

DoudouMee commented 2 years ago

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?

DoudouMee commented 2 years ago

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 2 years ago

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: https://github.com/nodejs/node/issues/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…

DoudouMee commented 2 years ago

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 [-Wcpp]

warning redirecting incorrect #include <sys/errno.h> to

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

DoudouMee commented 2 years ago

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 functionaoo::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 toatomic_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 toatomic_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 functionaoo::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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 tocurl_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 functionaoo::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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 functionaoo::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 functionaoo::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 functionaoo::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 toatomic_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 toatomic_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 toatomic_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 functionjuce::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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 functionjuce::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 functionjuce::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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 toatomic_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 toatomic_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

DoudouMee commented 2 years ago

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 2 years ago

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!

DoudouMee commented 2 years ago

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.