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()

Reply via email to