Bug#1022065: mujoco: FTBFS on riscv64
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-riscv@lists.debian.org
Usertags: riscv64
X-Debbugs-Cc: i@hack3r.moe, debian-riscv@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()
Reply to: