SWDEV-350674 - Added backward compatibility for binary files and rdc.service

With file reorganization changes binaries are moved to /opt/rocm-ver/bin.
Similarly rdc.service moved to /opt/rocm-ver/libexec/rdc
Test suites still used old paths
Once test suites changes are made, backward compatibility for binaries and rdc.service can be removed
Corrcted binary path in rdc.service.in
Corrected GRPC runpath

Change-Id: I306924d81cedc19586305a79d51eea8af6e70e83
This commit is contained in:
Ranjith Ramakrishnan
2022-08-08 23:29:48 -07:00
parent ba9633b74b
commit c3ea96dd71
6 changed files with 32 additions and 8 deletions
+1 -1
View File
@@ -22,7 +22,7 @@
#ifndef @include_guard@
#define @include_guard@
#pragma message("This file is deprecated. Use file from include path /opt/rocm-ver/include/ and prefix with rdc")
#pragma message("This file is deprecated. Use file from include path /opt/rocm-ver/include/ and include as rdc/@header_name@")
@include_statements@
#endif
+26 -2
View File
@@ -23,6 +23,7 @@ set(RDC_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
set(RDC_WRAPPER_DIR ${RDC_BUILD_DIR}/wrapper_dir)
set(RDC_WRAPPER_INC_DIR ${RDC_WRAPPER_DIR}/include/rdc)
set(RDC_WRAPPER_LIB_DIR ${RDC_WRAPPER_DIR}/lib)
set(RDC_WRAPPER_BIN_DIR ${RDC_WRAPPER_DIR}/bin)
set(RDC_SRC_INC_DIR ${RDC_SRC_ROOT}/include/rdc)
#use header template file and generate wrapper header files
@@ -33,11 +34,12 @@ function(generate_wrapper_header)
set(include_guard "RDC_WRAPPER_INCLUDE_RDC_H")
#set #include statement
set(file_name "rdc.h")
set(header_name ${file_name})
set(include_statements "#include \"../../../${CMAKE_INSTALL_INCLUDEDIR}/rdc/${file_name}\"\n")
configure_file(${RDC_SRC_ROOT}/header_template.hpp.in ${RDC_WRAPPER_INC_DIR}/${file_name})
endfunction()
#function to create symlink to libraries
# function to create symlink to libraries
function(create_library_symlink)
file(MAKE_DIRECTORY ${RDC_WRAPPER_LIB_DIR})
set(LIB_RDC "librdc.so")
@@ -69,12 +71,34 @@ function(create_library_symlink)
COMMAND ${CMAKE_COMMAND} -E create_symlink
../../${CMAKE_INSTALL_LIBDIR}/${RDC}/${file_name} ${RDC_WRAPPER_LIB_DIR}/${file_name})
endforeach()
# create symlink to rdc.service
set(file_name "rdc.service")
add_custom_target(link_${file_name} ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E create_symlink
../../${CMAKE_INSTALL_LIBEXECDIR}/${RDC}/${file_name} ${RDC_WRAPPER_LIB_DIR}/${file_name})
endfunction()
#Use template header file and generate wrapper header files
# function to create symlink to binaries
function(create_binary_symlink)
file(MAKE_DIRECTORY ${RDC_WRAPPER_BIN_DIR})
# create symlink for rdcd and rdci
set(binary_files "rdcd" "rdci")
foreach(file_name ${binary_files})
add_custom_target(link_${file_name} ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E create_symlink
../../${CMAKE_INSTALL_BINDIR}/${file_name} ${RDC_WRAPPER_BIN_DIR}/${file_name})
endforeach()
endfunction()
# Use template header file and generate wrapper header files
generate_wrapper_header()
install(DIRECTORY ${RDC_WRAPPER_INC_DIR} DESTINATION DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/include COMPONENT ${CLIENT_COMPONENT})
# Create symlink to library files
create_library_symlink()
install(DIRECTORY ${RDC_WRAPPER_LIB_DIR} DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC} COMPONENT ${CLIENT_COMPONENT})
# Create symlink to library binaries
create_binary_symlink()
install(DIRECTORY ${RDC_WRAPPER_BIN_DIR} DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC} COMPONENT ${CLIENT_COMPONENT})
+2 -2
View File
@@ -89,7 +89,7 @@ link_directories(${RSMI_LIB_DIR} "${GRPC_ROOT}/lib" "${GRPC_ROOT}/lib64")
## Set RUNPATH if ROCM_RPATH is defined and passed by the environment
## RUNPATH should help to run "rdcd" without the usage of ldconfig
if (DEFINED ENV{ROCM_RPATH})
set (GRPC_RUNPATH "\$ORIGIN/../lib:\$ORIGIN/../lib64:\$ORIGIN/../lib/rdc:\$ORIGIN/../lib64/rdc;\$ORIGIN/../grpc/lib:\$ORIGIN/../grpc/lib64:\$ORIGIN/../lib/rdc/grpc/lib:\$ORIGIN/../lib/rdc/grpc/lib64")
set (GRPC_RUNPATH "\$ORIGIN/../lib:\$ORIGIN/../lib64:\$ORIGIN/../lib/rdc:\$ORIGIN/../lib64/rdc;\$ORIGIN/../grpc/lib:\$ORIGIN/../grpc/lib64:\$ORIGIN/../lib/rdc/grpc/lib:\$ORIGIN/../lib64/rdc/grpc/lib64")
set (CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags -Wl,--no-as-needed -Wl,-z,origin")
set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${GRPC_RUNPATH}")
set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
@@ -122,7 +122,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${SERVER_DAEMON_EXE}
DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}
COMPONENT ${SERVER_COMPONENT})
install(FILES ${PROJECT_BINARY_DIR}/${SERVICE_FILE_NAME}
DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/${RDC}
COMPONENT ${SERVER_COMPONENT})
message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
+1 -1
View File
@@ -24,7 +24,7 @@ AmbientCapabilities=CAP_DAC_OVERRIDE
# If we need to start anything before rdcd, use this
# ExecStartPre=
ExecStart=/@RDC_CLIENT_INSTALL_PREFIX@/rdc/bin/rdcd
ExecStart=/@RDC_CLIENT_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/rdcd
# If we need to start anything after rdcd use this
# ExecStartPost=
+1 -1
View File
@@ -22,7 +22,7 @@ case "$1" in
configure)
do_create_rdc_user
#Symlink RDC Service
ln -s -f -r /@RDC_CLIENT_INSTALL_PREFIX@/lib/rdc.service /lib/systemd/system/rdc.service
ln -s -f -r /@RDC_CLIENT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/rdc/rdc.service /lib/systemd/system/rdc.service
reload_systemd
exit 0
;;
+1 -1
View File
@@ -19,7 +19,7 @@ reload_systemd() {
do_create_rdc_user
#Symlink RDC Service
ln -s -f -r /@RDC_CLIENT_INSTALL_PREFIX@/lib/rdc.service @DISTRO_ROOT@/rdc.service
ln -s -f -r /@RDC_CLIENT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/rdc/rdc.service @DISTRO_ROOT@/rdc.service
#Request systemctl to reload file since RDC is adding new file/service
reload_systemd