This is an automated email from the ASF dual-hosted git repository.
junrushao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm-ffi.git
The following commit(s) were added to refs/heads/main by this push:
new 8b9f28d fix(build): Link dl and pthread dependencies for tvm_ffi
(#360)
8b9f28d is described below
commit 8b9f28d484d568f4d5d410cb860759e0a6d87657
Author: Junru Shao <[email protected]>
AuthorDate: Wed Dec 24 13:57:00 2025 -0800
fix(build): Link dl and pthread dependencies for tvm_ffi (#360)
Should fix https://github.com/apache/tvm-ffi/issues/344.
There are two linking issues:
- `std::mutex` is used in `src/ffi/backtrace.cc`, which means
`libtvm_ffi.so` in theory should link with pthread.
- `dlsym`, `dlopen`, etc are used in
`src/ffi/extra/library_module_dynamic_lib.cc`, which means it has to be
linked with dl.
This PR adds those two dependencies.
---
CMakeLists.txt | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5e2fb4e..8181138 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,6 +23,8 @@ option(TVM_FFI_USE_LIBBACKTRACE "Enable libbacktrace" ON)
option(TVM_FFI_USE_EXTRA_CXX_API "Enable extra CXX API in shared lib" ON)
option(TVM_FFI_BACKTRACE_ON_SEGFAULT "Set signal handler to print backtrace on
segfault" ON)
+find_package(Threads REQUIRED)
+
include(${CMAKE_CURRENT_LIST_DIR}/cmake/Utils/DetectTargetTriple.cmake)
if (TVM_FFI_USE_LIBBACKTRACE)
@@ -122,6 +124,14 @@ endif ()
tvm_ffi_add_msvc_flags(tvm_ffi_objs)
tvm_ffi_add_target_from_obj(tvm_ffi tvm_ffi_objs)
+target_link_libraries(tvm_ffi_shared PRIVATE Threads::Threads)
+target_link_libraries(tvm_ffi_static INTERFACE Threads::Threads)
+
+if (TVM_FFI_USE_EXTRA_CXX_API AND CMAKE_DL_LIBS)
+ target_link_libraries(tvm_ffi_shared PRIVATE ${CMAKE_DL_LIBS})
+ target_link_libraries(tvm_ffi_static INTERFACE ${CMAKE_DL_LIBS})
+endif ()
+
if (TARGET libbacktrace)
target_link_libraries(tvm_ffi_objs PRIVATE libbacktrace)
target_link_libraries(tvm_ffi_shared PRIVATE libbacktrace)