diff --git a/CMakeLists.txt b/CMakeLists.txt index 06c6d70123..841d060911 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,6 +38,8 @@ option(BUILD_RASLIB "Build targets for raslib" OFF) # When cmake -DBUILD_ROCRTEST=off, it will not build the librdc_rocr.so # which requires the Rocm run time. option(BUILD_ROCRTEST "Build targets for librdc_rocr.so" ON) +#File reorganization enable/disable +option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" ON) if( NOT EXISTS "${CMAKE_SOURCE_DIR}/raslib/.git" AND BUILD_RASLIB) message( FATAL_ERROR "The git submodule raslib is not available. Please run @@ -211,24 +213,24 @@ set(CLIENT_COMPONENT "client") if(BUILD_STANDALONE) install(DIRECTORY ${GRPC_ROOT}/lib USE_SOURCE_PERMISSIONS - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/grpc + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${RDC}/grpc COMPONENT ${SERVER_COMPONENT}) # In SLES, The libprotobuf is created under lib64 folder, install it as well if(EXISTS ${GRPC_ROOT}/lib64) install(DIRECTORY ${GRPC_ROOT}/lib64/ USE_SOURCE_PERMISSIONS - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/grpc/lib + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${RDC}/grpc/lib COMPONENT ${SERVER_COMPONENT}) - endif() + endif() # Also include dev setup for people do not want to build grpc install(DIRECTORY ${GRPC_ROOT}/bin USE_SOURCE_PERMISSIONS - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/grpc + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${RDC}/grpc COMPONENT ${SERVER_COMPONENT}) install(DIRECTORY ${GRPC_ROOT}/include USE_SOURCE_PERMISSIONS - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/grpc + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${RDC}/grpc COMPONENT ${SERVER_COMPONENT}) add_subdirectory("server") @@ -266,8 +268,8 @@ set(CONF_LIBS "librdc_bootstrap.so") configure_file(rdc-config.cmake.in "${PROJECT_BINARY_DIR}/rdc-config.cmake" @ONLY) # ... for the install tree -set(CONF_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}${RDC_CLIENT_INSTALL_PREFIX}/rdc/include") -set(CONF_LIB_DIR "${CMAKE_INSTALL_PREFIX}${RDC_CLIENT_INSTALL_PREFIX}/rdc/lib") +set(CONF_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") +set(CONF_LIB_DIR "${CMAKE_INSTALL_PREFIX}${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") set(CONF_LIBS "librdc_bootstrap.so") configure_file(rdc-config.cmake.in @@ -279,10 +281,10 @@ configure_file(rdc-config-version.cmake.in install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/rdc-config.cmake" "${PROJECT_BINARY_DIR}/rdc-config-version.cmake" - DESTINATION "${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/lib/cmake" COMPONENT dev) + DESTINATION "${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${RDC}" COMPONENT dev) # Install the export set for use with the install-tree install(EXPORT rdcTargets DESTINATION - "${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/lib/cmake" COMPONENT dev) + "${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${RDC}" COMPONENT dev) # License file @@ -291,21 +293,21 @@ install( FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${RDC_CLIENT_INSTALL_P # Python binding and example install(DIRECTORY ${PROJECT_SOURCE_DIR}/python_binding - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC} + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) install(DIRECTORY ${PROJECT_SOURCE_DIR}/example - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC} + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) # Prebuild packages to install install(FILES ${PROJECT_SOURCE_DIR}/ras_prebuild/librdc_ras.so - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/lib + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) install(DIRECTORY ${PROJECT_SOURCE_DIR}/ras_prebuild/config - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/lib + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) install(DIRECTORY ${PROJECT_SOURCE_DIR}/ras_prebuild/sp3 - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/lib + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) @@ -337,7 +339,10 @@ configure_file( configure_file( "${PROJECT_SOURCE_DIR}/src/RPM_postun.in" "${PROJECT_SOURCE_DIR}/RPM/rpm_postun" FILE_PERMISSIONS ${INST_SCR_PERM}) - +#backward compatibility for file reorganization +if(FILE_REORG_BACKWARD_COMPATIBILITY) + include(rdc-backward-compat.cmake) +endif() if ( DEFINED ENV{ROCM_LIBPATCH_VERSION} ) set ( CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.$ENV{ROCM_LIBPATCH_VERSION}" ) message ( "Using CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}" ) diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 66cec04f06..40f34fe929 100755 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -159,10 +159,10 @@ endif () ## Add the install directives for the runtime library. install(TARGETS ${CLIENT_LIB} - LIBRARY DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/lib + LIBRARY DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) install(DIRECTORY ${SOURCE_DIR}/authentication - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC} + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) # Generate Doxygen documentation for client api manual @@ -190,10 +190,10 @@ if (DOXYGEN_FOUND AND LATEX_FOUND) add_dependencies(${CLIENT_LIB} docs) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/docs/${RDC_MANUAL_NAME}.pdf - COMPONENT ${CLIENT_COMPONENT}) + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_DOCDIR} + COMPONENT ${CLIENT_COMPONENT} RENAME ${RDC_MANUAL_NAME}.pdf) install(FILES ${PROJECT_SOURCE_DIR}/README.md - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/docs/ + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_DOCDIR} COMPONENT ${CLIENT_COMPONENT}) else() message("Doxygen or Latex is not found. Will not generate documents.") diff --git a/header_template.hpp.in b/header_template.hpp.in new file mode 100644 index 0000000000..18673a37f9 --- /dev/null +++ b/header_template.hpp.in @@ -0,0 +1,28 @@ +/* + Copyright (c) 2022 Advanced Micro Devices, Inc. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + */ +#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") +@include_statements@ + +#endif diff --git a/python_binding/rdc_bootstrap.py b/python_binding/rdc_bootstrap.py index 6e9ced859a..e6d9fca8fd 100644 --- a/python_binding/rdc_bootstrap.py +++ b/python_binding/rdc_bootstrap.py @@ -10,8 +10,8 @@ librdc = "librdc_bootstrap.so" # Search librdc_bootstrap.so paths current_folder = os.path.dirname(os.path.realpath(__file__)) rdc_paths = [ "", # without path - current_folder+"/../lib/", # package installation - current_folder+"/../lib64/", # package installation + current_folder+"/../../../lib/", # package installation + current_folder+"/../../../lib64/", # package installation current_folder+"/../build/rdc_libs/" # build from source code ] diff --git a/ras_prebuild/librdc_ras.so b/ras_prebuild/librdc_ras.so index 3993b1489f..e9b0179532 100644 Binary files a/ras_prebuild/librdc_ras.so and b/ras_prebuild/librdc_ras.so differ diff --git a/rdc-backward-compat.cmake b/rdc-backward-compat.cmake new file mode 100644 index 0000000000..b3d0a85828 --- /dev/null +++ b/rdc-backward-compat.cmake @@ -0,0 +1,80 @@ +# Copyright (c) 2022 Advanced Micro Devices, Inc. All Rights Reserved. +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +cmake_minimum_required(VERSION 3.16.8) + +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_SRC_INC_DIR ${RDC_SRC_ROOT}/include/rdc) + +#use header template file and generate wrapper header files +function(generate_wrapper_header) + file(MAKE_DIRECTORY ${RDC_WRAPPER_INC_DIR}) + #Only rdc.h header file used in packaging + # set include guard + set(include_guard "RDC_WRAPPER_INCLUDE_RDC_H") + #set #include statement + set(file_name "rdc.h") + 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(create_library_symlink) + file(MAKE_DIRECTORY ${RDC_WRAPPER_LIB_DIR}) + set(LIB_RDC "librdc.so") + set(LIB_RDC_BOOTSTRAP "librdc_bootstrap.so") + set(LIB_RDC_CLIENT "librdc_client.so") + set(MAJ_VERSION "${VERSION_MAJOR}") + set(SO_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}") + set(library_files "${LIB_RDC}" "${LIB_RDC}.${MAJ_VERSION}" "${LIB_RDC}.${SO_VERSION}") + set(library_files "${library_files}" "${LIB_RDC_BOOTSTRAP}" "${LIB_RDC_BOOTSTRAP}.${MAJ_VERSION}" "${LIB_RDC_BOOTSTRAP}.${SO_VERSION}" ) + set(library_files "${library_files}" "${LIB_RDC_CLIENT}" "${LIB_RDC_CLIENT}.${MAJ_VERSION}" "${LIB_RDC_CLIENT}.${SO_VERSION}" ) + + foreach(file_name ${library_files}) + add_custom_target(link_${file_name} ALL + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${CMAKE_COMMAND} -E create_symlink + ../../${CMAKE_INSTALL_LIBDIR}/${file_name} ${RDC_WRAPPER_LIB_DIR}/${file_name}) + endforeach() + # Symlink for private libraries + set(LIB_RDC_ROCR "librdc_rocr.so") + set(LIB_RDC_RAS "librdc_ras.so") + set(LIB_RDC_CLIENT_SMI "librdc_client_smi.so") + set(library_files "${LIB_RDC_ROCR}" "${LIB_RDC_ROCR}.${MAJ_VERSION}" "${LIB_RDC_ROCR}.${SO_VERSION}" ) + set(library_files "${library_files}" "${LIB_RDC_CLIENT_SMI}" "${LIB_RDC_CLIENT_SMI}.${MAJ_VERSION}" "${LIB_RDC_CLIENT_SMI}.${SO_VERSION}" ) + set(library_files "${library_files}" "${LIB_RDC_RAS}") + + foreach(file_name ${library_files}) + add_custom_target(link_${file_name} ALL + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${CMAKE_COMMAND} -E create_symlink + ../../${CMAKE_INSTALL_LIBDIR}/${RDC}/${file_name} ${RDC_WRAPPER_LIB_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}) diff --git a/rdc_libs/CMakeLists.txt b/rdc_libs/CMakeLists.txt index 786fc69eb9..acd84d4583 100755 --- a/rdc_libs/CMakeLists.txt +++ b/rdc_libs/CMakeLists.txt @@ -68,7 +68,7 @@ set(COMMON_DIR "${PROJECT_SOURCE_DIR}/common") ## 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 (LIB_RUNPATH "\$ORIGIN/../lib:\$ORIGIN/../lib64:\$ORIGIN/../grpc/lib:\$ORIGIN/../grpc/lib64") + set (LIB_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 (CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-new-dtags -Wl,--no-as-needed -Wl,-z,origin") set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${LIB_RUNPATH}") set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) @@ -321,29 +321,37 @@ endif () target_include_directories(${BOOTSTRAP_LIB} PUBLIC "$" - "$" + "$" ) ## Add the install directives for the runtime library. if(BUILD_STANDALONE) - install(TARGETS ${BOOTSTRAP_LIB} ${RDC_LIB} ${RDCCLIENT_LIB} ${DIAGNOSTIC_LIB} + install(TARGETS ${BOOTSTRAP_LIB} ${RDC_LIB} ${RDCCLIENT_LIB} EXPORT rdcTargets - LIBRARY DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/lib + LIBRARY DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR} + COMPONENT ${CLIENT_COMPONENT}) + install(TARGETS ${DIAGNOSTIC_LIB} + EXPORT rdcTargets + LIBRARY DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) else() - install(TARGETS ${BOOTSTRAP_LIB} ${RDC_LIB} ${DIAGNOSTIC_LIB} + install(TARGETS ${BOOTSTRAP_LIB} ${RDC_LIB} EXPORT rdcTargets - LIBRARY DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/lib + LIBRARY DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR} + COMPONENT ${CLIENT_COMPONENT}) + install(TARGETS ${DIAGNOSTIC_LIB} + EXPORT rdcTargets + LIBRARY DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) endif() install(FILES ${SOURCE_DIR}/include/rdc/rdc.h - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/include/rdc + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) # Install the kernel files install(DIRECTORY ${PROJECT_SOURCE_DIR}/rdc_libs/rdc_modules/kernels/hsaco - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/lib + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT}) diff --git a/rdc_libs/rdc_modules/rdc_rocr/base_rocr_utils.cc b/rdc_libs/rdc_modules/rdc_rocr/base_rocr_utils.cc index 944f826682..2be3fdac02 100755 --- a/rdc_libs/rdc_modules/rdc_rocr/base_rocr_utils.cc +++ b/rdc_libs/rdc_modules/rdc_rocr/base_rocr_utils.cc @@ -548,6 +548,8 @@ std::string search_hsaco_full_path(const char* hsaco_file_name, path_to_search.push_back(std::string("./")+hsaco_file_name); path_to_search.push_back(app_dir+"/"+hsaco_file_name); path_to_search.push_back(lib_dir+"/"+hsaco_file_name); + path_to_search.push_back(lib_dir+"/rdc/hsaco/"+ agent_name + + "/" + hsaco_file_name); path_to_search.push_back(lib_dir+"/hsaco/"+ agent_name + "/" + hsaco_file_name); // for dev structure diff --git a/rdci/CMakeLists.txt b/rdci/CMakeLists.txt index 3ca87c0ae8..2af6705731 100644 --- a/rdci/CMakeLists.txt +++ b/rdci/CMakeLists.txt @@ -92,8 +92,8 @@ add_executable(${RDCI_EXE} "${RDCI_SRC_LIST}") ## RUNPATH should help to run "rdci" without the usage of ldconfig if (DEFINED ENV{ROCM_RPATH}) - set(RDC_RUNPATH "\$ORIGIN:\$ORIGIN/../lib:\$ORIGIN/../lib64") - set(GRPC_RUNPATH "\$ORIGIN/../grpc/lib:\$ORIGIN/../grpc/lib64") + set(RDC_RUNPATH "\$ORIGIN:\$ORIGIN/../lib:\$ORIGIN/../lib64:\$ORIGIN/../lib/rdc:\$ORIGIN/../lib64/rdc") + set(GRPC_RUNPATH "\$ORIGIN/../grpc/lib:\$ORIGIN/../grpc/lib64:\$ORIGIN/../lib/rdc/grpc/lib:\$ORIGIN/../lib/rdc/grpc/lib64") set(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags -Wl,--rpath,${RDC_RUNPATH}:${GRPC_RUNPATH} -Wl,--no-as-needed -Wl,-z,origin") set(CMAKE_SKIP_BUILD_RPATH TRUE) set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) @@ -116,7 +116,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${RDCI_EXE} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE COMPONENT ${CLIENT_COMPONENT} - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${RDC}/bin) + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}) message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt index a9ec427d89..6ab743e255 100755 --- a/server/CMakeLists.txt +++ b/server/CMakeLists.txt @@ -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/../grpc/lib:\$ORIGIN/../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/../lib/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) @@ -119,10 +119,10 @@ target_link_libraries(${SERVER_DAEMON_EXE} ${RDCD_EXTRA_LIB} pthread rt grpc grp install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${SERVER_DAEMON_EXE} PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/rdc/bin + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR} COMPONENT ${SERVER_COMPONENT}) install(FILES ${PROJECT_BINARY_DIR}/${SERVICE_FILE_NAME} - DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/rdc/lib + DESTINATION ${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR} COMPONENT ${SERVER_COMPONENT}) message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") diff --git a/src/DEBIAN_postinst.in b/src/DEBIAN_postinst.in index a878cf688b..4d882255ef 100755 --- a/src/DEBIAN_postinst.in +++ b/src/DEBIAN_postinst.in @@ -22,7 +22,7 @@ case "$1" in configure) do_create_rdc_user #Symlink RDC Service - ln -s -f -r /@RDC_CLIENT_INSTALL_PREFIX@/rdc/lib/rdc.service /lib/systemd/system/rdc.service + ln -s -f -r /@RDC_CLIENT_INSTALL_PREFIX@/lib/rdc.service /lib/systemd/system/rdc.service reload_systemd exit 0 ;; diff --git a/src/RPM_rpm_post.in b/src/RPM_rpm_post.in index 3e535e6b39..514c00a727 100755 --- a/src/RPM_rpm_post.in +++ b/src/RPM_rpm_post.in @@ -19,7 +19,7 @@ reload_systemd() { do_create_rdc_user #Symlink RDC Service -ln -s -f -r /@RDC_CLIENT_INSTALL_PREFIX@/rdc/lib/rdc.service @DISTRO_ROOT@/rdc.service +ln -s -f -r /@RDC_CLIENT_INSTALL_PREFIX@/lib/rdc.service @DISTRO_ROOT@/rdc.service #Request systemctl to reload file since RDC is adding new file/service reload_systemd diff --git a/tests/rdc_tests/CMakeLists.txt b/tests/rdc_tests/CMakeLists.txt index 499f83cd88..67d1a25560 100755 --- a/tests/rdc_tests/CMakeLists.txt +++ b/tests/rdc_tests/CMakeLists.txt @@ -43,8 +43,8 @@ endif() # Required Defines first: set(RDC_CLIENT_INSTALL_PREFIX "opt/rocm") -set(RDC_INC_DIR ${ROCM_DIR}/${RDC_CLIENT_INSTALL_PREFIX}/include) -set(RDC_LIB_DIR ${ROCM_DIR}/${RDC_CLIENT_INSTALL_PREFIX}/rdc/lib) +set(RDC_INC_DIR ${ROCM_DIR}/${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}) +set(RDC_LIB_DIR ${ROCM_DIR}/${RDC_CLIENT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) # # Determine RDC Header files are present @@ -155,7 +155,7 @@ aux_source_directory(${RDCTST_ROOT}/functional functionalSources) # to be linked against for building ROC Perf applications # -link_directories(${ROCM_DIR}/lib) +link_directories(${ROCM_DIR}/${CMAKE_INSTALL_LIBDIR}) # # Source files for building rocrtst # @@ -166,7 +166,7 @@ add_executable(${RDCTST} ${rdctstSources} ${functionalSources}) # Header file include path target_include_directories(${RDCTST} PRIVATE ${RDC_INC_DIR} - PRIVATE ${ROCM_DIR}/include + PRIVATE ${ROCM_DIR}/${CMAKE_INSTALL_INCLUDEDIR} PRIVATE ${RDCTST_ROOT}/.. PRIVATE ${RDCTST_ROOT}/gtest/include)