Source: mujoco Version: 2.2.2-2 Severity: important Tags: ftbfs patch Justification: fails to build from source (but built successfully in the past) User: debian-ri...@lists.debian.org Usertags: riscv64 X-Debbugs-Cc: i...@hack3r.moe, debian-ri...@lists.debian.org
Dear maintainer, mujoco failed to build on riscv64 due to missing symbols for sub-word atomic functions: ``` [66/71] : && /usr/bin/c++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,--gc-sections simulate/CMakeFiles/simulate.dir/main.cc.o simulate/CMakeFiles/simulate.dir/glfw_dispatch.cc.o simulate/CMakeFiles/simulate.dir/simulate.cc.o simulate/CMakeFiles/simulate.dir/uitools.cc.o -o bin/simulate -Wl,-rpath,"\$ORIGIN/../lib/riscv64-linux-gnu" lib/riscv64-linux-gnu/liblibsimulate.a lib/riscv64-linux-gnu/libmujoco.so.2.2.2 /usr/lib/riscv64-linux-gnu/libglfw.so.3.3 /usr/lib/riscv64-linux-gnu/liblodepng.so && : FAILED: bin/simulate : && /usr/bin/c++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,--gc-sections simulate/CMakeFiles/simulate.dir/main.cc.o simulate/CMakeFiles/simulate.dir/glfw_dispatch.cc.o simulate/CMakeFiles/simulate.dir/simulate.cc.o simulate/CMakeFiles/simulate.dir/uitools.cc.o -o bin/simulate -Wl,-rpath,"\$ORIGIN/../lib/riscv64-linux-gnu" lib/riscv64-linux-gnu/liblibsimulate.a lib/riscv64-linux-gnu/libmujoco.so.2.2.2 /usr/lib/riscv64-linux-gnu/libglfw.so.3.3 /usr/lib/riscv64-linux-gnu/liblodepng.so && : /usr/bin/ld: simulate/CMakeFiles/simulate.dir/simulate.cc.o: in function `std::__atomic_base<bool>::exchange(bool, std::memory_order)': ./obj-riscv64-linux-gnu/./simulate/simulate.cc:513: undefined reference to `__atomic_exchange_1' collect2: error: ld returned 1 exit status ``` Full buildd log: https://buildd.debian.org/status/fetch.php?pkg=mujoco&arch=riscv64&ver=2.2.2-1&stamp=1664815613&raw=0 Attached is a patch that links libatomic to bin/simulate on riscv64 platform and fix FTBFS. If more help is needed, please let me know. Cheers, Eric
--- a/simulate/CMakeLists.txt +++ b/simulate/CMakeLists.txt @@ -245,3 +245,7 @@ endif() endif() endif() + +if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "riscv64") + target_link_libraries(simulate atomic) +endif()