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


[ROCm/rdc commit: c3ea96dd71]
This commit is contained in:
Ranjith Ramakrishnan
2022-08-08 23:29:48 -07:00
rodzic 1e80f183d8
commit 92e6ab4bb8
6 zmienionych plików z 32 dodań i 8 usunięć
+1 -1
Wyświetl plik
@@ -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
Wyświetl plik
@@ -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
Wyświetl plik
@@ -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
Wyświetl plik
@@ -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
Wyświetl plik
@@ -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
Wyświetl plik
@@ -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