Bug#948109: z3: FTBFS on riscv64, needs -latomic, blocks rustc:riscv64

Aurelien Jarno aurelien at aurel32.net
Thu Jan 9 16:22:32 GMT 2020


On 2020-01-09 14:18, Ximin Luo wrote:
> Fabian Wolff:
> > Thank you for your MR, Ximin!
> > 
> > Do you need anything else? I see you haven't added -pthread anywhere yet; is
> > this not necessary with CMake (maybe CMake adds it automatically?), and have
> > you tried building on/for riscv64 again to verify that it works now?
> > 
> 
> I only tried cross-compiling and in fact I get this error about pthreads:
> 
> /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: cannot find -lpthreads
> 
> z3's source code doesn't mention this flag so probably cmake is adding it itself.
> 
> $ rg -i pthreads /usr/share/cmake*
> /usr/share/cmake-3.15/Modules/FindThreads.cmake
> [..]
> 
> So setting CMAKE_USE_PTHREADS might work.

Yep, I confirm that works. In short with the following patch, z3 builds
natively on riscv64:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0e2c8ac..e4f6b81 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -314,6 +314,7 @@ endif()
 ################################################################################
 # Threading support
 ################################################################################
+set(THREADS_PREFER_PTHREAD_FLAG TRUE)
 find_package(Threads)
 list(APPEND Z3_DEPENDENT_LIBS ${CMAKE_THREAD_LIBS_INIT})
 

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien at aurel32.net                 http://www.aurel32.net



More information about the Pkg-llvm-team mailing list