diasurgical/devilutionX

[Issue Report]: riscv64 build failure - linking

DoktorCranium opened this issue · 3 comments

Operating System

Other (please specify)

DevilutionX version

1.5.3

Describe

Build on riscv64 (Ubuntu 24.04) linking fails with following error

[ 77%] Linking CXX executable devilutionx
/usr/bin/ld: _deps/libzt-build/lib/libzt.a(Events.cpp.o): in function std::atomic<bool>::compare_exchange_strong(bool&, bool, std::memory_order, std::memory_order)': Events.cpp:(.text._ZNSt6atomicIbE23compare_exchange_strongERbbSt12memory_orderS2_[_ZNSt6atomicIbE23compare_exchange_strongERbbSt12memory_orderS2_]+0x7e): undefined reference to __atomic_compare_exchange_1'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/devilutionx.dir/build.make:511: devilutionx] Error 1
make[1]: *** [CMakeFiles/Makefile2:1373: CMakeFiles/devilutionx.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

To Reproduce

cmake ..
build -j8

Expected Behavior

No response

Additional context

No response

riscv64 isn't tested or supported at this time. Since the issue happens in ZeroTier you should take it up with them.
If you don't need ZeroTier multiplayer you could build it without it using -DDISABLE_ZERO_TIER=ON with the cmake configuration command.

Thanks - yes this helps, the build finishes fine.

gtk