blob: db6a96cd19977ffa2982d0240c875c6e602a64c8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
Add explicit link_directories and target_link_libraries for rvslib so the
shared library resolves all its symbols at link time. Also avoid linking rvs
against OpenMP::OpenMP_CXX because upstream calls find_package(OpenMP) before
switching CMAKE_CXX_COMPILER to hipcc, so clean builds may not create the CXX
imported target.
--- a/rvslib/CMakeLists.txt
+++ b/rvslib/CMakeLists.txt
@@ -120,6 +120,6 @@ include_directories(./ ../ ../rvs
${AMD_SMI_INC_DIR} ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPBLASLT_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${MXDATAGENERATOR_INC_DIR})
-link_directories(${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR})
+link_directories(${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCR_LIB_DIR} ${HIPBLASLT_LIB_DIR} ${HIPRAND_LIB_DIR})
## define common source files
set(SOURCES
@@ -173,6 +173,7 @@ set_target_properties(${RVS_TARGET}
PROPERTIES SUFFIX .so.${LIB_VERSION_STRING}
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
-target_link_libraries(${RVS_TARGET} ${AMD_SMI_LIB})
+target_link_libraries(${RVS_TARGET} ${AMD_SMI_LIB} rocblas hsa-runtime64::hsa-runtime64 pci ${YAML_CPP_TARGET} hipblaslt hiprand omp)
+target_link_options(${RVS_TARGET} PRIVATE "LINKER:--no-as-needed" "LINKER:-z,defs")
## Install shared library librvslib.so
add_custom_command(TARGET ${RVS_TARGET} POST_BUILD
COMMAND ln -fs ./lib${RVS}.so.${LIB_VERSION_STRING} lib${RVS}.so.${VERSION_MAJOR} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
--- a/rvs/CMakeLists.txt
+++ b/rvs/CMakeLists.txt
@@ -131,1 +131,1 @@
-target_link_libraries(${RVS_TARGET} rvslib OpenMP::OpenMP_CXX
+target_link_libraries(${RVS_TARGET} rvslib omp
|