From 65dbba594de4791efbdf8345b121a406d92e8177 Mon Sep 17 00:00:00 2001 From: foreman Date: Mon, 22 Jul 2019 17:19:35 -0400 Subject: [PATCH] P4 to Git Change 1971654 by kzhuravl@kzhuravl-spot-ocl on 2019/07/22 17:15:57 SWDEV-79445 - Bring cmake related changes from git http://git.amd.com:8080/c/compute/ec/opencl/+/229473 http://git.amd.com:8080/c/compute/ec/opencl/+/229474 http://git.amd.com:8080/c/compute/ec/opencl/+/233268 + Payam's changes for comgr Affected files ... ... //depot/stg/opencl/drivers/opencl/CMakeLists.txt#24 edit ... //depot/stg/opencl/drivers/opencl/DEB/postinst#1 add ... //depot/stg/opencl/drivers/opencl/DEB/prerm#1 add ... //depot/stg/opencl/drivers/opencl/RPM/rpm_post#1 add ... //depot/stg/opencl/drivers/opencl/RPM/rpm_postun#1 add ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/CMakeLists.txt#18 edit ... //depot/stg/opencl/drivers/opencl/cmake/modules/FindROCR.cmake#3 edit ... //depot/stg/opencl/drivers/opencl/cmake/modules/FindROCT.cmake#1 add ... //depot/stg/opencl/drivers/opencl/runtime/CMakeLists.txt#15 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/CMakeLists.txt#20 edit [ROCm/clr commit: 29a575e268823134af23cf4cd283917554a52c5b] --- projects/clr/opencl/CMakeLists.txt | 68 ++++--------------- projects/clr/opencl/DEB/postinst | 20 ++++++ projects/clr/opencl/DEB/prerm | 19 ++++++ projects/clr/opencl/RPM/rpm_post | 2 + projects/clr/opencl/RPM/rpm_postun | 4 ++ .../opencl/api/opencl/amdocl/CMakeLists.txt | 16 +++-- 6 files changed, 69 insertions(+), 60 deletions(-) create mode 100644 projects/clr/opencl/DEB/postinst create mode 100644 projects/clr/opencl/DEB/prerm create mode 100644 projects/clr/opencl/RPM/rpm_post create mode 100644 projects/clr/opencl/RPM/rpm_postun diff --git a/projects/clr/opencl/CMakeLists.txt b/projects/clr/opencl/CMakeLists.txt index 4c5fcc5952..63df360043 100644 --- a/projects/clr/opencl/CMakeLists.txt +++ b/projects/clr/opencl/CMakeLists.txt @@ -55,7 +55,14 @@ include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/tools/lld/include) include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/lib/Target/AMDGPU) include_directories(${CMAKE_BINARY_DIR}/compiler/llvm/lib/Target/AMDGPU) -add_subdirectory(compiler/driver EXCLUDE_FROM_ALL) +if(${USE_COMGR_LIBRARY} MATCHES "yes") + set(COMGR_DYN_DLL "yes") + add_definitions(-DCOMGR_DYN_DLL="yes") + include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/include) + add_definitions(-DUSE_COMGR_LIBRARY) +else() + add_subdirectory(compiler/driver EXCLUDE_FROM_ALL) +endif() set(BUILD_HC_LIB OFF CACHE BOOL "") set(ROCM_DEVICELIB_INCLUDE_TESTS OFF CACHE BOOL "") @@ -66,6 +73,7 @@ add_subdirectory(library/amdgcn EXCLUDE_FROM_ALL) add_subdirectory(compiler/lib/loaders/elf/utils/libelf) +find_package(ROCT REQUIRED) find_package(ROCR REQUIRED) add_subdirectory(runtime) @@ -119,50 +127,6 @@ set ( CPACK_GENERATOR RPM DEB ) set ( CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm/opencl" ) ## Debian package values -file(GENERATE OUTPUT "postinst" - CONTENT "#!/bin/bash - -set -e - -do_ldconfig() { - echo /opt/rocm/opencl/lib/x86_64 > /etc/ld.so.conf.d/x86_64-rocm-opencl.conf && ldconfig - mkdir -p /etc/OpenCL/vendors && (echo libamdocl64.so > /etc/OpenCL/vendors/amdocl64.icd) -} - -case \"$1\" in - configure) - do_ldconfig - ;; - abort-upgrade|abort-remove|abort-deconfigure) - echo \"$1\" - ;; - *) - exit 0 - ;; -esac -") - -file(GENERATE OUTPUT "prerm" - CONTENT "#!/bin/bash - -set -e - -rm_ldconfig() { - rm -f /etc/OpenCL/vendors/amdocl64.icd - rm -f /etc/ld.so.conf.d/x86_64-rocm-opencl.conf && ldconfig -} - -case \"$1\" in - remove) - rm_ldconfig - ;; - purge) - ;; - *) - exit 0 - ;; -esac -") set ( CPACK_DEBIAN_PACKAGE_MAINTAINER "AMD" ) set ( CPACK_DEBIAN_PACKAGE_DEPENDS "" ) @@ -172,26 +136,18 @@ set ( CPACK_DEBIAN_applications_FILE_NAME "rocm-opencl-1.2.0.deb" ) set ( CPACK_DEBIAN_libraries_PACKAGE_NAME "rocm-opencl-dev" ) set ( CPACK_DEBIAN_libraries_FILE_NAME "rocm-opencl-dev-1.2.0.deb" ) set ( CPACK_DEBIAN_libraries_PACKAGE_DEPENDS "rocm-opencl" ) -set ( CPACK_DEBIAN_applications_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/prerm;${CMAKE_CURRENT_BINARY_DIR}/postinst" ) +set ( CPACK_DEBIAN_applications_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/DEB/postinst;${CMAKE_CURRENT_SOURCE_DIR}/DEB/prerm" ) ## RPM package values -file(GENERATE OUTPUT "rpm_postinst" - CONTENT "echo /opt/rocm/opencl/lib/x86_64 > /etc/ld.so.conf.d/x86_64-rocm-opencl.conf && ldconfig; -mkdir -p /etc/OpenCL/vendors && (echo libamdocl64.so > /etc/OpenCL/vendors/amdocl64.icd)") -file(GENERATE OUTPUT "rpm_prerm" - CONTENT "rm -f /etc/OpenCL/vendors/amdocl64.icd -rm -f /etc/ld.so.conf.d/x86_64-rocm-opencl.conf && ldconfig") - set ( CPACK_RPM_COMPONENT_INSTALL ON) set ( CPACK_RPM_applications_PACKAGE_NAME "rocm-opencl" ) set ( CPACK_RPM_applications_FILE_NAME "rocm-opencl-1.2.0.rpm" ) set ( CPACK_RPM_libraries_PACKAGE_NAME "rocm-opencl-devel" ) set ( CPACK_RPM_libraries_FILE_NAME "rocm-opencl-devel-1.2.0.rpm" ) set ( CPACK_RPM_libraries_PACKAGE_DEPENDS "rocm-opencl" ) -set ( CPACK_RPM_applications_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/rpm_postinst" ) -set ( CPACK_RPM_applications_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/rpm_prerm" ) - +set ( CPACK_RPM_applications_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_post" ) +set ( CPACK_RPM_applications_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_postun" ) set ( CPACK_COMPONENTS_ALL applications libraries ) include ( CPack ) diff --git a/projects/clr/opencl/DEB/postinst b/projects/clr/opencl/DEB/postinst new file mode 100644 index 0000000000..db4fbb36b6 --- /dev/null +++ b/projects/clr/opencl/DEB/postinst @@ -0,0 +1,20 @@ +#!/bin/bash + +set -e + +do_ldconfig() { + echo /opt/rocm/opencl/lib/x86_64 > /etc/ld.so.conf.d/x86_64-rocm-opencl.conf && ldconfig + mkdir -p /etc/OpenCL/vendors && (echo libamdocl64.so > /etc/OpenCL/vendors/amdocl64.icd) +} + +case "$1" in + abort-deconfigure|abort-remove|abort-upgrade) + echo "$1" + ;; + configure) + do_ldconfig + ;; + *) + exit 0 + ;; +esac diff --git a/projects/clr/opencl/DEB/prerm b/projects/clr/opencl/DEB/prerm new file mode 100644 index 0000000000..fe887671db --- /dev/null +++ b/projects/clr/opencl/DEB/prerm @@ -0,0 +1,19 @@ +#!/bin/bash + +set -e + +rm_ldconfig() { + rm -f /etc/ld.so.conf.d/x86_64-rocm-opencl.conf && ldconfig + rm -f /etc/OpenCL/vendors/amdocl64.icd +} + +case "$1" in + purge) + ;; + remove) + rm_ldconfig + ;; + *) + exit 0 + ;; +esac diff --git a/projects/clr/opencl/RPM/rpm_post b/projects/clr/opencl/RPM/rpm_post new file mode 100644 index 0000000000..438a21c87f --- /dev/null +++ b/projects/clr/opencl/RPM/rpm_post @@ -0,0 +1,2 @@ +echo /opt/rocm/opencl/lib/x86_64 > /etc/ld.so.conf.d/x86_64-rocm-opencl.conf && ldconfig +mkdir -p /etc/OpenCL/vendors && (echo libamdocl64.so > /etc/OpenCL/vendors/amdocl64.icd) diff --git a/projects/clr/opencl/RPM/rpm_postun b/projects/clr/opencl/RPM/rpm_postun new file mode 100644 index 0000000000..cd20887bf9 --- /dev/null +++ b/projects/clr/opencl/RPM/rpm_postun @@ -0,0 +1,4 @@ +if [ $1 -eq 0 ]; then + rm -f /etc/ld.so.conf.d/x86_64-rocm-opencl.conf && ldconfig + rm -f /etc/OpenCL/vendors/amdocl64.icd +fi diff --git a/projects/clr/opencl/api/opencl/amdocl/CMakeLists.txt b/projects/clr/opencl/api/opencl/amdocl/CMakeLists.txt index 91bd42f192..642ce8c296 100644 --- a/projects/clr/opencl/api/opencl/amdocl/CMakeLists.txt +++ b/projects/clr/opencl/api/opencl/amdocl/CMakeLists.txt @@ -21,7 +21,13 @@ include_directories(${CMAKE_SOURCE_DIR}/api/opencl) include_directories(${CMAKE_SOURCE_DIR}/api/opencl/khronos) include_directories(${CMAKE_SOURCE_DIR}/api/opencl/khronos/headers) include_directories(${CMAKE_SOURCE_DIR}/api/opencl/khronos/headers/opencl2.2) -include_directories(${CMAKE_SOURCE_DIR}/compiler/driver/src) +if(${USE_COMGR_LIBRARY} MATCHES "yes") + add_definitions(-DUSE_COMGR_LIBRARY -DCOMGR_DYN_DLL) + find_package(amd_comgr REQUIRED CONFIG) + include_directories("$") +else() + include_directories(${CMAKE_SOURCE_DIR}/compiler/driver/src) +endif() include_directories(${CMAKE_SOURCE_DIR}/compiler/lib) include_directories(${CMAKE_SOURCE_DIR}/compiler/lib/include) include_directories(${CMAKE_SOURCE_DIR}/compiler/lib/backends/common) @@ -66,7 +72,9 @@ add_library(amdocl64 SHARED $ ${ADDITIONAL_LIBRARIES} ) - -target_link_libraries(amdocl64 opencl_driver oclelf pthread dl ${ROCR_LIBRARIES}) - +if(${USE_COMGR_LIBRARY} MATCHES "yes") + target_link_libraries(amdocl64 oclelf pthread dl ${ROCT_LIBRARIES} ${ROCR_LIBRARIES}) +else() + target_link_libraries(amdocl64 opencl_driver oclelf pthread dl ${ROCT_LIBRARIES} ${ROCR_LIBRARIES}) +endif() install(TARGETS amdocl64 LIBRARY DESTINATION lib/x86_64 COMPONENT applications)