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)