diff --git a/CMakeLists.txt b/CMakeLists.txt index 7311daf845..98a25655b1 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,6 +191,9 @@ if(BUILD_STANDALONE) endif() message("-----------ROCM_DIR : " ${ROCM_DIR}) +# this is needed for INSTALL_RPATH "\$ORIGIN" property to work correctly +set(CMAKE_BUILD_RPATH_USE_ORIGIN TRUE CACHE BOOL "Set all RPATH to be ORIGIN-based") + ## Add address sanitizer if(${ADDRESS_SANITIZER}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -g") diff --git a/ras_prebuild/librdc_ras.so b/ras_prebuild/librdc_ras.so index 4e5ccac1a5..8778e4de89 100755 Binary files a/ras_prebuild/librdc_ras.so and b/ras_prebuild/librdc_ras.so differ diff --git a/rdc_libs/CMakeLists.txt b/rdc_libs/CMakeLists.txt index 225632cc7e..eaa4dff634 100755 --- a/rdc_libs/CMakeLists.txt +++ b/rdc_libs/CMakeLists.txt @@ -129,6 +129,8 @@ if(RDC_LIB_MODULES) EXPORT rdcTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) + set_target_properties(${RDC_LIB_MODULES} + PROPERTIES INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..") endif() install(FILES ${PROJECT_SOURCE_DIR}/include/rdc/rdc.h diff --git a/rdc_libs/bootstrap/CMakeLists.txt b/rdc_libs/bootstrap/CMakeLists.txt index 28dac1c2ff..f73d1e29da 100644 --- a/rdc_libs/bootstrap/CMakeLists.txt +++ b/rdc_libs/bootstrap/CMakeLists.txt @@ -40,6 +40,8 @@ set_property(TARGET ${BOOTSTRAP_LIB} PROPERTY SOVERSION "${VERSION_MAJOR}") set_property(TARGET ${BOOTSTRAP_LIB} PROPERTY VERSION "${SO_VERSION_STRING}") +set_target_properties(${BOOTSTRAP_LIB} + PROPERTIES INSTALL_RPATH "\$ORIGIN:\$ORIGIN/rdc") # If the library is a release, strip the target library if("${CMAKE_BUILD_TYPE}" STREQUAL Release) diff --git a/rdc_libs/rdc/CMakeLists.txt b/rdc_libs/rdc/CMakeLists.txt index be5ff033e2..14ad3d1167 100644 --- a/rdc_libs/rdc/CMakeLists.txt +++ b/rdc_libs/rdc/CMakeLists.txt @@ -75,6 +75,8 @@ set_property(TARGET ${RDC_LIB} PROPERTY SOVERSION "${VERSION_MAJOR}") set_property(TARGET ${RDC_LIB} PROPERTY VERSION "${SO_VERSION_STRING}") +set_target_properties(${RDC_LIB} + PROPERTIES INSTALL_RPATH "\$ORIGIN") # If the library is a release, strip the target library if("${CMAKE_BUILD_TYPE}" STREQUAL Release) diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt index 5d2696adf1..6e525bb7b6 100755 --- a/server/CMakeLists.txt +++ b/server/CMakeLists.txt @@ -80,6 +80,10 @@ link_directories(${RSMI_LIB_DIR}) add_executable(${SERVER_DAEMON_EXE} "${SERVER_SRC_LIST}") +# help find librdc_bootstrap.so at runtime +set_target_properties(${SERVER_DAEMON_EXE} + PROPERTIES INSTALL_RPATH "\$ORIGIN/../lib") + target_link_libraries(${SERVER_DAEMON_EXE} pthread rt gRPC::grpc++ cap dl rocm_smi64 rdc_bootstrap)