summaryrefslogtreecommitdiff
path: root/dev-libs/rocm-opencl-runtime
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/rocm-opencl-runtime')
-rw-r--r--dev-libs/rocm-opencl-runtime/Manifest5
-rw-r--r--dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-amdocl64icd.patch13
-rw-r--r--dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-change-AMDCompilerh.patch79
-rw-r--r--dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-change-opencl.patch70
-rw-r--r--dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-update-README.patch41
-rw-r--r--dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.0.0-change-install-location.patch147
-rw-r--r--dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-amdocl64icd.patch11
-rw-r--r--dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-change-install-location.patch77
-rw-r--r--dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-do-not-install-libopencl.patch14
-rw-r--r--dev-libs/rocm-opencl-runtime/metadata.xml14
-rw-r--r--dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.0.0.ebuild55
-rw-r--r--dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.1.0.ebuild54
-rw-r--r--dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.3.0.ebuild54
-rw-r--r--dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.5.0.ebuild58
14 files changed, 692 insertions, 0 deletions
diff --git a/dev-libs/rocm-opencl-runtime/Manifest b/dev-libs/rocm-opencl-runtime/Manifest
new file mode 100644
index 0000000..61c9de0
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/Manifest
@@ -0,0 +1,5 @@
+DIST OpenCL-ICD-Loader-6c03f8b58fafd9dd693eaac826749a5cfad515f8.tar.gz 63248 BLAKE2B 7c311d98e5a209d01f1f1dbad7471ceb3de66e10f7cee48686ed176efcde1e7ba48ea12bdbf2af61d5f72e5b8eda69b2fae6829d265a8b88ad46c4ec4995d8d4 SHA512 5033d6fb0ef2515e56b0d9c31baf6fe02e90613989c417fbde20efd79e0ac2841df1a98ff799e60cc469b79244cdc756d15950df6c9baead7d31febe7cad0418
+DIST rocm-opencl-runtime-3.0.0.tar.gz 974702 BLAKE2B 2cc1eaf1aa8d8cc80de698b587bf38cfebd51b31959b9d0150e4f01ea1b41240b0311cad156c48cf531207f1a120d2151f38679a8bc4cef1e73c9c8e56dcaf45 SHA512 2a47deda34544832421fd8110dd437eaeab3a1fca498a9ac14e825402d48e81fb9fe065d078bc8bf112e0534a750fdf81a29bf5979b42f9925b1561f7bcbf6e7
+DIST rocm-opencl-runtime-3.1.0.tar.gz 969782 BLAKE2B efe3cba6122273900fec80f577c45b5a93816cfd3cadbffaa36df258ea163ecc9d47530da0aa012fd7797c431506deb96fd3642c160470e2b78af75bc9fd56f6 SHA512 1665c30349547e6404563b1b1dd4258af5ab8106a66d65d6f94e7eb3ef51b2da9bc71878330c0c7ec21842e17a97e910a36be9b06fbdeab3de84bebe3a65c9db
+DIST rocm-opencl-runtime-3.3.0.tar.gz 969871 BLAKE2B 5dae88abc5861752b45f2b7e72a4d774786d0363a6da633d2ca1386a002374243a0655e8c5bc4aaa7a7db528f3c9bd5e6e1298561d3b06ce935865b6f0106172 SHA512 10c892cebca3db031b69ef3e1521fa11e49f40b18b621983f4f0902c9f563ff178d543fd1a05f6217f817838499436adaac883f7b474b64a54ce9eeb482382e5
+DIST rocm-opencl-runtime-3.5.0.tar.gz 734076 BLAKE2B cc6992999188968c628b378f637c8073c99381fab42e05d7d9d89d75fe9f2bd3d573f61f00a18c078542f7fc4a3a856385d0f34fa9bb599dd63de8be18594bdf SHA512 658649c3f13d32308f8f031f26b62c20bda4841059b5ea0db5c6a827af26b07aa0bdee07a461cc4b3c37108b3f25ae59b1658fab30125f84c0729fb57c2fa014
diff --git a/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-amdocl64icd.patch b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-amdocl64icd.patch
new file mode 100644
index 0000000..f399f36
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-amdocl64icd.patch
@@ -0,0 +1,13 @@
+diff --git a/api/opencl/amdocl/CMakeLists.txt b/api/opencl/amdocl/CMakeLists.txt
+index 8ea8517..d1223ed 100644
+--- a/api/opencl/amdocl/CMakeLists.txt
++++ b/api/opencl/amdocl/CMakeLists.txt
+@@ -82,3 +82,7 @@ if(${USE_COMGR_LIBRARY} MATCHES "yes")
+ else()
+ target_link_libraries(amdocl64 opencl_driver oclelf pthread dl ${ROCT_LIBRARIES} ${ROCR_LIBRARIES})
+ endif()
++
++file(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/amdocl64.icd" CONTENT "$<TARGET_FILE_NAME:amdocl64>")
++install(FILES "${CMAKE_BINARY_DIR}/amdocl64.icd" DESTINATION "${CMAKE_INSTALL_FULL_SYSCONFDIR}/OpenCL/vendors/")
++
+
diff --git a/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-change-AMDCompilerh.patch b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-change-AMDCompilerh.patch
new file mode 100644
index 0000000..796277e
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-change-AMDCompilerh.patch
@@ -0,0 +1,79 @@
+diff --git a/runtime/device/device.hpp b/runtime/device/device.hpp
+index 9eb45b2..a721463 100644
+--- a/runtime/device/device.hpp
++++ b/runtime/device/device.hpp
+@@ -21,7 +21,7 @@
+
+ #if defined(WITH_LIGHTNING_COMPILER) && !defined(USE_COMGR_LIBRARY)
+ #include "caching/cache.hpp"
+-#include "driver/AmdCompiler.h"
++#include "AmdCompiler.h"
+ #endif // defined(WITH_LIGHTNING_COMPILER) && ! defined(USE_COMGR_LIBRARY)
+ #include "acl.h"
+
+diff --git a/runtime/device/devprogram.cpp b/runtime/device/devprogram.cpp
+index 587e950..dc233f3 100644
+--- a/runtime/device/devprogram.cpp
++++ b/runtime/device/devprogram.cpp
+@@ -14,7 +14,7 @@
+
+ #if defined(WITH_LIGHTNING_COMPILER) || defined(USE_COMGR_LIBRARY)
+ #ifndef USE_COMGR_LIBRARY
+-#include "driver/AmdCompiler.h"
++#include "AmdCompiler.h"
+ #include "libraries.amdgcn.inc"
+ #include "opencl1.2-c.amdgcn.inc"
+ #include "opencl2.0-c.amdgcn.inc"
+diff --git a/runtime/device/devprogram.hpp b/runtime/device/devprogram.hpp
+index 68de7ba..8b91ba2 100644
+--- a/runtime/device/devprogram.hpp
++++ b/runtime/device/devprogram.hpp
+@@ -11,7 +11,7 @@
+
+ #if defined(WITH_LIGHTNING_COMPILER) || defined(USE_COMGR_LIBRARY)
+ #ifndef USE_COMGR_LIBRARY
+-#include "driver/AmdCompiler.h"
++#include "AmdCompiler.h"
+ #else
+ #include "amd_comgr.h"
+ #endif
+diff --git a/runtime/device/rocm/rocdevice.cpp b/runtime/device/rocm/rocdevice.cpp
+index 4cba9d7..7ab30ed 100644
+--- a/runtime/device/rocm/rocdevice.cpp
++++ b/runtime/device/rocm/rocdevice.cpp
+@@ -20,7 +20,7 @@
+ #include "device/rocm/rocvirtual.hpp"
+ #include "device/rocm/rocprogram.hpp"
+ #if defined(WITH_LIGHTNING_COMPILER) && ! defined(USE_COMGR_LIBRARY)
+-#include "driver/AmdCompiler.h"
++#include "AmdCompiler.h"
+ #endif // defined(WITH_LIGHTNING_COMPILER) && ! defined(USE_COMGR_LIBRARY)
+ #include "device/rocm/rocmemory.hpp"
+ #include "device/rocm/rocglinterop.hpp"
+diff --git a/runtime/device/rocm/rockernel.cpp b/runtime/device/rocm/rockernel.cpp
+index 8a28acc..7d5b62d 100644
+--- a/runtime/device/rocm/rockernel.cpp
++++ b/runtime/device/rocm/rockernel.cpp
+@@ -11,7 +11,7 @@
+
+ #if defined(WITH_LIGHTNING_COMPILER) || defined(USE_COMGR_LIBRARY)
+ #ifndef USE_COMGR_LIBRARY
+-#include "driver/AmdCompiler.h"
++#include "AmdCompiler.h"
+ #endif
+ #include "llvm/Support/AMDGPUMetadata.h"
+
+diff --git a/runtime/device/rocm/rocprogram.cpp b/runtime/device/rocm/rocprogram.cpp
+index 0155dc2..613d00d 100644
+--- a/runtime/device/rocm/rocprogram.cpp
++++ b/runtime/device/rocm/rocprogram.cpp
+@@ -10,7 +10,7 @@
+ #if defined(WITH_LIGHTNING_COMPILER) || defined(USE_COMGR_LIBRARY)
+ #include <gelf.h>
+ #ifndef USE_COMGR_LIBRARY
+-#include "driver/AmdCompiler.h"
++#include "AmdCompiler.h"
+ #include "libraries.amdgcn.inc"
+ #endif
+ #endif // defined(WITH_LIGHTNING_COMPILER) || defined(USE_COMGR_LIBRARY)
+
diff --git a/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-change-opencl.patch b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-change-opencl.patch
new file mode 100644
index 0000000..cd6695e
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-change-opencl.patch
@@ -0,0 +1,70 @@
+diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt
+index 2c9dfd6..863b4bf 100644
+--- a/runtime/CMakeLists.txt
++++ b/runtime/CMakeLists.txt
+@@ -23,7 +23,6 @@ if (${USE_COMGR_LIBRARY} STREQUAL "no")
+ include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/include)
+ endif() # if (${USE_COMGR_LIBRARY} STREQUAL "no")
+
+-include_directories(${CMAKE_SOURCE_DIR}/compiler/driver/src)
+ include_directories(${CMAKE_SOURCE_DIR}/compiler/lib)
+ include_directories(${CMAKE_SOURCE_DIR}/compiler/lib/include)
+ include_directories(${CMAKE_SOURCE_DIR}/compiler/lib/backends/common)
+@@ -79,6 +78,8 @@ add_library(oclruntime OBJECT
+ ${COMGR_CPP}
+ )
+ set_target_properties(oclruntime PROPERTIES POSITION_INDEPENDENT_CODE ON)
++#add_dependencies(oclruntime opencl1.2-c.amdgcn.inc_target)
++#add_dependencies(oclruntime opencl2.0-c.amdgcn.inc_target)
+
+ set(AMDGCN_DEP_LIST)
+ if(AMDGCN_TARGETS_LIB_DEPS)
+diff --git a/runtime/device/rocm/CMakeLists.txt b/runtime/device/rocm/CMakeLists.txt
+index 5870b65..39166f3 100644
+--- a/runtime/device/rocm/CMakeLists.txt
++++ b/runtime/device/rocm/CMakeLists.txt
+@@ -1,3 +1,21 @@
++find_package(Clang REQUIRED CONFIG)
++
++# FIXME: CLANG_CMAKE_DIR seems like the most stable way to find this, but
++# really there is no way to reliably discover this header.
++#
++# We effectively back up to the Clang output directory (for the case of a build
++# tree) or install prefix (for the case of an installed copy), and then search
++# for a file named opencl-c.h anywhere below that. We take the first result in
++# the case where there are multiple (e.g. if there is an installed copy nested
++# in a build directory). This is a bit imprecise, but it covers cases like MSVC
++# adding some additional configuration-specific subdirectories to the build
++# tree but not to an installed copy.
++file(GLOB_RECURSE OPENCL_C_H_LIST "${CLANG_CMAKE_DIR}/../../../*/opencl-c.h")
++list(GET OPENCL_C_H_LIST 0 OPENCL_C_H)
++if (NOT EXISTS "${OPENCL_C_H}" OR IS_DIRECTORY "${OPENCL_C_H}")
++ message(FATAL_ERROR "Unable to locate opencl-c.h from the supplied Clang. The path '${CLANG_CMAKE_DIR}/../../../*' was searched.")
++endif()
++
+ include(bc2h)
+
+ set(INC_SUFFIX "amdgcn.inc")
+@@ -82,8 +100,8 @@ if (${USE_COMGR_LIBRARY} STREQUAL "no")
+
+ # generating opencl*.inc files
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/opencl1.2-c.amdgcn.pch
+- COMMAND clang -cc1 -x cl-header -triple amdgcn-amd-amdhsa -Werror -O3 -DNDEBUG -cl-std=CL1.2 -emit-pch -o ${CMAKE_CURRENT_BINARY_DIR}/opencl1.2-c.amdgcn.pch < ${CMAKE_SOURCE_DIR}/compiler/llvm/tools/clang/lib/Headers/opencl-c.h
+- DEPENDS clang ${CMAKE_SOURCE_DIR}/compiler/llvm/tools/clang/lib/Headers/opencl-c.h
++ COMMAND clang -cc1 -x cl-header -triple amdgcn-amd-amdhsa -Werror -O3 -DNDEBUG -cl-std=CL1.2 -emit-pch -o ${CMAKE_CURRENT_BINARY_DIR}/opencl1.2-c.amdgcn.pch < ${OPENCL_C_H}
++ DEPENDS clang ${OPENCL_C_H}
+ COMMENT "Generating opencl1.2-c.amdgcn.pch"
+ )
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/opencl1.2-c.amdgcn.inc
+@@ -96,8 +114,8 @@ if (${USE_COMGR_LIBRARY} STREQUAL "no")
+ add_dependencies(oclrocm opencl1.2-c.amdgcn.inc_target)
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/opencl2.0-c.amdgcn.pch
+- COMMAND clang -cc1 -x cl-header -triple amdgcn-amd-amdhsa -Werror -O3 -DNDEBUG -cl-std=CL2.0 -emit-pch -o ${CMAKE_CURRENT_BINARY_DIR}/opencl2.0-c.amdgcn.pch < ${CMAKE_SOURCE_DIR}/compiler/llvm/tools/clang/lib/Headers/opencl-c.h
+- DEPENDS clang ${CMAKE_SOURCE_DIR}/compiler/llvm/tools/clang/lib/Headers/opencl-c.h
++ COMMAND clang -cc1 -x cl-header -triple amdgcn-amd-amdhsa -Werror -O3 -DNDEBUG -cl-std=CL2.0 -emit-pch -o ${CMAKE_CURRENT_BINARY_DIR}/opencl2.0-c.amdgcn.pch < ${OPENCL_C_H}
++ DEPENDS clang ${OPENCL_C_H}
+ COMMENT "Generating opencl2.0-c.amdgcn.pch"
+ )
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/opencl2.0-c.amdgcn.inc
+
diff --git a/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-update-README.patch b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-update-README.patch
new file mode 100644
index 0000000..741faf2
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-update-README.patch
@@ -0,0 +1,41 @@
+diff --git a/README.md b/README.md
+index a834965..7fea026 100644
+--- a/README.md
++++ b/README.md
+@@ -8,12 +8,6 @@ Developer preview Version 2 of the new
+
+
+ ## GETTING REPO
+-
+-Repo is a git wrapper that manages a collection of git repositories. Install this tool and add it to the command search PATH:
+-
+- curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
+- chmod a+x ~/bin/repo
+-
+ ## GETTING THE SOURCE CODE
+
+ Main OpenCLâ„¢ Compatible Components:
+@@ -26,11 +20,6 @@ Main OpenCLâ„¢ Compatible Components:
+ * https://github.com/RadeonOpenCompute/lld
+ * https://github.com/KhronosGroup/OpenCL-ICD-Loader
+
+-Download the git projects with the following commands:
+-
+- ~/bin/repo init -u https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime.git -b master -m opencl.xml
+- ~/bin/repo sync
+-
+ ## INSTALL ROCm
+
+ Follow the instructions at https://rocm.github.io/install.html to install ROCm.
+@@ -45,6 +34,11 @@ Copy the amdocl64.icd file to /etc/OpenCL/vendors
+
+ To install additional dependencies:
+
++* ROCm-OpenCL-Runtime
++* ROCm-OpenCL-Driver
++* ROC versions of LLVM, Clang, and lld
++* ROCm-Device-Libs
++* OpenCL-ICD-Loade
+ * OCaml
+ * findlib
+ * A Python 2 environment or active virtualenv with the Microsoft Z3 package
diff --git a/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.0.0-change-install-location.patch b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.0.0-change-install-location.patch
new file mode 100644
index 0000000..eb1901f
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.0.0-change-install-location.patch
@@ -0,0 +1,147 @@
+--- a/CMakeLists.txt 2019-12-28 09:34:17.470030419 +0100
++++ b/CMakeLists.txt 2019-12-28 09:32:14.939030886 +0100
+@@ -21,12 +21,26 @@
+
+ project(rocm-opencl)
+
++include (GNUInstallDirs)
++
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
+ set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/api/opencl/khronos/headers/opencl2.2" CACHE PATH "")
+
+ find_package(ROCT REQUIRED)
+ find_package(ROCR REQUIRED)
+
++find_package(LLVM REQUIRED CONFIG PATHS ${LLVM_DIR} "/opt/rocm/llvm" NO_DEFAULT_PATH)
++set(USE_COMGR_LIBRARY "yes")
++find_package(amd_comgr REQUIRED CONFIG)
++add_definitions(-DUSE_COMGR_LIBRARY)
++FOREACH(DIR ${LLVM_INCLUDE_DIRS})
++ include_directories("${DIR}")
++ include_directories("${DIR}/clang")
++ include_directories("${DIR}/lld")
++ # TODO: move AMDGPU.h header to include folder
++ include_directories("${DIR}/llvm/Target/AMDGPU")
++ENDFOREACH()
++
+ # FIXME: Remove following if block after enabling COMGR by default
+ if (${USE_COMGR_LIBRARY} STREQUAL "no")
+ set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
+@@ -39,29 +53,19 @@
+ # override default option value in library and driver
+ set(GENERIC_IS_ZERO ON CACHE BOOL ON FORCE)
+
+- add_subdirectory(compiler/llvm EXCLUDE_FROM_ALL)
+-
+- find_package(LLVM REQUIRED CONFIG PATHS ${CMAKE_BINARY_DIR}/compiler/llvm NO_DEFAULT_PATH)
++ find_package(LLVM REQUIRED CONFIG PATHS ${LLVM_DIR} "/opt/rocm/llvm" NO_DEFAULT_PATH)
+
+ list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
+ include(AddLLVM)
+
+ add_definitions(${LLVM_DEFINITIONS})
+- # TODO: add find_package for Clang and lld, and also use LLVM/Clang variables got from their config
+- include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/tools/clang/include)
+- include_directories(${CMAKE_BINARY_DIR}/compiler/llvm/tools/clang/include)
+- include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/tools/lld/include)
+-
+- # TODO: move AMDGPU.h header to include folder
+- include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/lib/Target/AMDGPU)
+- include_directories(${CMAKE_BINARY_DIR}/compiler/llvm/lib/Target/AMDGPU)
+
+ set(BUILD_HC_LIB OFF CACHE BOOL "")
+ set(ROCM_DEVICELIB_INCLUDE_TESTS OFF CACHE BOOL "")
+ set(AMDGCN_TARGETS_LIB_LIST "AMDGCN_LIB_TARGETS")
+ set(AMDGCN_TARGETS_LIB_DEPS "AMDGCN_DEP_TARGETS")
+ set(AMDGPU_TARGET_TRIPLE "amdgcn-amd-amdhsa")
+- add_subdirectory(library/amdgcn EXCLUDE_FROM_ALL)
++
+ add_subdirectory(compiler/driver EXCLUDE_FROM_ALL)
+
+ install(PROGRAMS $<TARGET_FILE:clang> $<TARGET_FILE:lld>
+@@ -77,22 +81,22 @@
+ endforeach()
+ endif() # if (${USE_COMGR_LIBRARY} STREQUAL "no")
+
+-if(${USE_COMGR_LIBRARY} MATCHES "yes")
+- set(COMGR_DYN_DLL "yes")
+- add_definitions(-DCOMGR_DYN_DLL)
+- add_definitions(-DUSE_COMGR_LIBRARY)
+- if( ${BUILD_HIP} MATCHES "yes")
+- add_subdirectory(api/hip)
+- endif()
+-endif()
++#if(${USE_COMGR_LIBRARY} MATCHES "yes")
++# set(COMGR_DYN_DLL "yes")
++# add_definitions(-DCOMGR_DYN_DLL)
++# add_definitions(-DUSE_COMGR_LIBRARY)
++# if( ${BUILD_HIP} MATCHES "yes")
++# add_subdirectory(api/hip)
++# endif()
++#endif()
+
+ add_subdirectory(api/opencl/amdocl)
+ add_subdirectory(compiler/lib/loaders/elf/utils/libelf)
+ add_subdirectory(runtime)
+-add_subdirectory(tools/clinfo)
++#add_subdirectory(tools/clinfo)
+
+ set(BUILD_SHARED_LIBS "Build shared libs" ON)
+-add_subdirectory(api/opencl/khronos/icd)
++#add_subdirectory(api/opencl/khronos/icd)
+
+ ###--- Packaging ------------------------------------------------------------###
+
+@@ -101,31 +105,31 @@
+ rocm_setup_version( VERSION "2.0.0" )
+
+ # MAIN package
+-install(PROGRAMS $<TARGET_FILE:clinfo>
+- DESTINATION bin/x86_64
+- COMPONENT MAIN)
++#install(PROGRAMS $<TARGET_FILE:clinfo>
++# DESTINATION bin/x86_64
++# COMPONENT MAIN)
+ install(PROGRAMS $<TARGET_FILE:amdocl64>
+- DESTINATION lib/x86_64
+- COMPONENT MAIN)
+-install(PROGRAMS $<TARGET_FILE:OpenCL>
+- DESTINATION lib/x86_64
+- COMPONENT MAIN)
+-install(PROGRAMS $<TARGET_SONAME_FILE:OpenCL>
+- DESTINATION lib/x86_64
++ DESTINATION lib64
+ COMPONENT MAIN)
++#install(PROGRAMS $<TARGET_FILE:OpenCL>
++# DESTINATION lib/x86_64
++# COMPONENT MAIN)
++#install(PROGRAMS $<TARGET_SONAME_FILE:OpenCL>
++# DESTINATION lib/x86_64
++# COMPONENT MAIN)
+
+ # DEV package
+-install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/api/opencl/khronos/headers/opencl2.2/CL"
+- DESTINATION include
+- COMPONENT DEV
+- USE_SOURCE_PERMISSIONS
+- PATTERN cl_d3d10.h EXCLUDE
+- PATTERN cl_d3d11.h EXCLUDE
+- PATTERN cl_dx9_media_sharing.h EXCLUDE
+- PATTERN cl_egl.h EXCLUDE)
+-install(PROGRAMS $<TARGET_LINKER_FILE:OpenCL>
+- DESTINATION lib/x86_64
+- COMPONENT DEV)
++#install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/api/opencl/khronos/headers/opencl2.2/CL"
++# DESTINATION include
++# COMPONENT DEV
++# USE_SOURCE_PERMISSIONS
++# PATTERN cl_d3d10.h EXCLUDE
++# PATTERN cl_d3d11.h EXCLUDE
++# PATTERN cl_dx9_media_sharing.h EXCLUDE
++# PATTERN cl_egl.h EXCLUDE)
++#install(PROGRAMS $<TARGET_LINKER_FILE:OpenCL>
++# DESTINATION lib/x86_64
++# COMPONENT DEV)
+
+ # Generic CPACK variables
+ set(CPACK_GENERATOR "DEB;RPM" CACHE STRING "Default packaging generators")
diff --git a/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-amdocl64icd.patch b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-amdocl64icd.patch
new file mode 100644
index 0000000..dadf212
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-amdocl64icd.patch
@@ -0,0 +1,11 @@
+--- a/amdocl/CMakeLists.txt 2020-06-07 14:38:38.827042792 +0200
++++ b/amdocl/CMakeLists.txt 2020-06-07 14:38:27.505042835 +0200
+@@ -109,3 +109,8 @@
+ find_package(Threads REQUIRED)
+
+ target_link_libraries(amdocl64 amdrocclr_static Threads::Threads dl)
++
++file(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/amdocl64.icd" CONTENT "$<TARGET_FILE_NAME:amdocl64>")
++install(FILES "${CMAKE_BINARY_DIR}/amdocl64.icd" DESTINATION "${CMAKE_INSTALL_FULL_SYSCONFDIR}/OpenCL/vendors/")
++
++
diff --git a/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-change-install-location.patch b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-change-install-location.patch
new file mode 100644
index 0000000..5de4804
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-change-install-location.patch
@@ -0,0 +1,77 @@
+--- a/CMakeLists.txt 2020-06-07 13:41:57.205055768 +0200
++++ b/CMakeLists.txt 2020-06-07 16:02:45.704023540 +0200
+@@ -10,12 +10,14 @@
+ #example command:
+ #cmake -DROCclr_DIR=/rocclr -DUSE_COMGR_LIBRARY=yes -DLIBROCclr_STATIC_DIR=/build ..
+
++include (GNUInstallDirs)
++
+ set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2" CACHE PATH "")
+ set(BUILD_SHARED_LIBS "Build shared libs" ON)
+
+ add_subdirectory(khronos/icd)
+ add_subdirectory(amdocl)
+-add_subdirectory(tools/clinfo)
++#add_subdirectory(tools/clinfo)
+ add_subdirectory(tools/cltrace)
+
+ # get date information based on UTC
+@@ -45,34 +47,34 @@
+ ###--- Packaging ------------------------------------------------------------###
+
+ # MAIN package
+-install(PROGRAMS $<TARGET_FILE:clinfo>
+- DESTINATION bin
+- COMPONENT MAIN)
+-install(PROGRAMS $<TARGET_FILE:cltrace>
+- DESTINATION lib
+- COMPONENT MAIN)
++#install(PROGRAMS $<TARGET_FILE:clinfo>
++# DESTINATION bin
++# COMPONENT MAIN)
++#install(PROGRAMS $<TARGET_FILE:cltrace>
++# DESTINATION lib64
++# COMPONENT MAIN)
+ install(PROGRAMS $<TARGET_FILE:amdocl64>
+- DESTINATION lib
+- COMPONENT MAIN)
+-install(PROGRAMS $<TARGET_FILE:OpenCL>
+- DESTINATION lib
+- COMPONENT MAIN)
+-install(PROGRAMS $<TARGET_SONAME_FILE:OpenCL>
+- DESTINATION lib
++ DESTINATION lib64
+ COMPONENT MAIN)
++#install(PROGRAMS $<TARGET_FILE:OpenCL>
++# DESTINATION lib
++# COMPONENT MAIN)
++#install(PROGRAMS $<TARGET_SONAME_FILE:OpenCL>
++# DESTINATION lib
++# COMPONENT MAIN)
+
+ # DEV package
+-install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2/CL"
+- DESTINATION include
+- COMPONENT DEV
+- USE_SOURCE_PERMISSIONS
+- PATTERN cl_d3d10.h EXCLUDE
+- PATTERN cl_d3d11.h EXCLUDE
+- PATTERN cl_dx9_media_sharing.h EXCLUDE
+- PATTERN cl_egl.h EXCLUDE)
+-install(PROGRAMS $<TARGET_LINKER_FILE:OpenCL>
+- DESTINATION lib
+- COMPONENT DEV)
++#install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2/CL"
++# DESTINATION include
++# COMPONENT DEV
++# USE_SOURCE_PERMISSIONS
++# PATTERN cl_d3d10.h EXCLUDE
++# PATTERN cl_d3d11.h EXCLUDE
++# PATTERN cl_dx9_media_sharing.h EXCLUDE
++# PATTERN cl_egl.h EXCLUDE)
++#install(PROGRAMS $<TARGET_LINKER_FILE:OpenCL>
++# DESTINATION lib
++# COMPONENT DEV)
+
+ #############################
+ # Packaging steps
diff --git a/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-do-not-install-libopencl.patch b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-do-not-install-libopencl.patch
new file mode 100644
index 0000000..a74b236
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-do-not-install-libopencl.patch
@@ -0,0 +1,14 @@
+--- a/khronos/icd/CMakeLists.txt 2020-06-07 16:05:32.425022904 +0200
++++ b/khronos/icd/CMakeLists.txt 2020-06-07 16:06:03.273022786 +0200
+@@ -132,7 +132,7 @@
+ add_subdirectory (test)
+ endif()
+
+-install (TARGETS OpenCL
+- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++#install (TARGETS OpenCL
++# RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++# ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
diff --git a/dev-libs/rocm-opencl-runtime/metadata.xml b/dev-libs/rocm-opencl-runtime/metadata.xml
new file mode 100644
index 0000000..359755b
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>candrews@gentoo.org</email>
+ <name>Craig Andrews</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">RadeonOpenCompute/ROCm-OpenCL-Runtime</remote-id>
+ </upstream>
+ <longdescription lang="en">
+ Radeon Open Compute OpenCL Compatible Runtime
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.0.0.ebuild b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.0.0.ebuild
new file mode 100644
index 0000000..4de178c
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.0.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+OPENCL_ICD_COMMIT="6c03f8b58fafd9dd693eaac826749a5cfad515f8"
+SRC_URI="https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/${OPENCL_ICD_COMMIT}.tar.gz -> OpenCL-ICD-Loader-${OPENCL_ICD_COMMIT}.tar.gz"
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/"
+ inherit git-r3
+else
+ SRC_URI+=" https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/roc-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/ROCm-OpenCL-Runtime-roc-${PV}"
+fi
+
+DESCRIPTION="Radeon Open Compute OpenCL Compatible Runtime"
+HOMEPAGE="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime"
+
+LICENSE="Apache-2.0 MIT"
+SLOT="0/$(ver_cut 1-2)"
+
+RDEPEND=">=dev-libs/rocr-runtime-${PV}
+ >=dev-libs/rocm-comgr-${PV}
+ >=dev-libs/rocm-device-libs-${PV}
+ >=virtual/opencl-3
+ media-libs/mesa"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/rocm-cmake-${PV}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.0.0-change-install-location.patch"
+ "${FILESDIR}/${PN}-2.8.0-change-AMDCompilerh.patch"
+ "${FILESDIR}/${PN}-2.8.0-change-opencl.patch"
+ "${FILESDIR}/${PN}-2.8.0-update-README.patch"
+ "${FILESDIR}/${PN}-2.8.0-amdocl64icd.patch"
+)
+
+src_prepare() {
+ mkdir -p "${S}"/api/opencl/khronos/ || die
+ mv "${WORKDIR}/OpenCL-ICD-Loader-${OPENCL_ICD_COMMIT}" "${S}"/api/opencl/khronos/icd || die
+ [ -d tools/clinfo ] && rm -rf tools/clinfo || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSE_COMGR_LIBRARY=yes
+ -DLLVM_DIR="${EPREFIX}/usr/lib/llvm/roc/"
+ -DClang_DIR="${EPREFIX}/usr/lib/llvm/roc/lib/cmake/clang/"
+ )
+ cmake_src_configure
+}
diff --git a/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.1.0.ebuild b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.1.0.ebuild
new file mode 100644
index 0000000..9aa26f1
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.1.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+OPENCL_ICD_COMMIT="6c03f8b58fafd9dd693eaac826749a5cfad515f8"
+SRC_URI="https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/${OPENCL_ICD_COMMIT}.tar.gz -> OpenCL-ICD-Loader-${OPENCL_ICD_COMMIT}.tar.gz"
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/"
+ inherit git-r3
+else
+ SRC_URI+=" https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/roc-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/ROCm-OpenCL-Runtime-roc-${PV}"
+fi
+
+DESCRIPTION="Radeon Open Compute OpenCL Compatible Runtime"
+HOMEPAGE="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime"
+
+LICENSE="Apache-2.0 MIT"
+SLOT="0/$(ver_cut 1-2)"
+
+RDEPEND=">=dev-libs/rocr-runtime-${PV}
+ >=dev-libs/rocm-comgr-${PV}
+ >=dev-libs/rocm-device-libs-${PV}
+ >=virtual/opencl-3
+ media-libs/mesa"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/rocm-cmake-3.0.0"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.0.0-change-install-location.patch"
+ "${FILESDIR}/${PN}-2.8.0-change-opencl.patch"
+ "${FILESDIR}/${PN}-2.8.0-update-README.patch"
+ "${FILESDIR}/${PN}-2.8.0-amdocl64icd.patch"
+)
+
+src_prepare() {
+ mkdir -p "${S}"/api/opencl/khronos/ || die
+ mv "${WORKDIR}/OpenCL-ICD-Loader-${OPENCL_ICD_COMMIT}" "${S}"/api/opencl/khronos/icd || die
+ [ -d tools/clinfo ] && rm -rf tools/clinfo || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSE_COMGR_LIBRARY=yes
+ -DLLVM_DIR="${EPREFIX}/usr/lib/llvm/roc/"
+ -DClang_DIR="${EPREFIX}/usr/lib/llvm/roc/lib/cmake/clang/"
+ )
+ cmake_src_configure
+}
diff --git a/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.3.0.ebuild b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.3.0.ebuild
new file mode 100644
index 0000000..9aa26f1
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.3.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+OPENCL_ICD_COMMIT="6c03f8b58fafd9dd693eaac826749a5cfad515f8"
+SRC_URI="https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/${OPENCL_ICD_COMMIT}.tar.gz -> OpenCL-ICD-Loader-${OPENCL_ICD_COMMIT}.tar.gz"
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/"
+ inherit git-r3
+else
+ SRC_URI+=" https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/roc-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/ROCm-OpenCL-Runtime-roc-${PV}"
+fi
+
+DESCRIPTION="Radeon Open Compute OpenCL Compatible Runtime"
+HOMEPAGE="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime"
+
+LICENSE="Apache-2.0 MIT"
+SLOT="0/$(ver_cut 1-2)"
+
+RDEPEND=">=dev-libs/rocr-runtime-${PV}
+ >=dev-libs/rocm-comgr-${PV}
+ >=dev-libs/rocm-device-libs-${PV}
+ >=virtual/opencl-3
+ media-libs/mesa"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/rocm-cmake-3.0.0"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.0.0-change-install-location.patch"
+ "${FILESDIR}/${PN}-2.8.0-change-opencl.patch"
+ "${FILESDIR}/${PN}-2.8.0-update-README.patch"
+ "${FILESDIR}/${PN}-2.8.0-amdocl64icd.patch"
+)
+
+src_prepare() {
+ mkdir -p "${S}"/api/opencl/khronos/ || die
+ mv "${WORKDIR}/OpenCL-ICD-Loader-${OPENCL_ICD_COMMIT}" "${S}"/api/opencl/khronos/icd || die
+ [ -d tools/clinfo ] && rm -rf tools/clinfo || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSE_COMGR_LIBRARY=yes
+ -DLLVM_DIR="${EPREFIX}/usr/lib/llvm/roc/"
+ -DClang_DIR="${EPREFIX}/usr/lib/llvm/roc/lib/cmake/clang/"
+ )
+ cmake_src_configure
+}
diff --git a/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.5.0.ebuild b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.5.0.ebuild
new file mode 100644
index 0000000..a9abb8d
--- /dev/null
+++ b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.5.0.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/roc-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/ROCm-OpenCL-Runtime-roc-${PV}"
+fi
+
+DESCRIPTION="Radeon Open Compute OpenCL Compatible Runtime"
+HOMEPAGE="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime"
+
+LICENSE="Apache-2.0 MIT"
+SLOT="0/$(ver_cut 1-2)"
+
+RDEPEND=">=dev-libs/rocr-runtime-${PV}
+ >=dev-libs/rocclr-${PV}
+ >=dev-libs/rocm-comgr-${PV}
+ >=dev-libs/rocm-device-libs-${PV}
+ >=virtual/opencl-3
+ media-libs/mesa"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/rocm-cmake-${PV}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.5.0-change-install-location.patch"
+ "${FILESDIR}/${PN}-3.5.0-do-not-install-libopencl.patch"
+ "${FILESDIR}/${PN}-3.5.0-amdocl64icd.patch"
+)
+
+src_prepare() {
+ # Remove "clinfo" - use "dev-util/clinfo" instead
+ [ -d tools/clinfo ] && rm -rf tools/clinfo || die
+
+ # Wrong position of a '"' results in a list of strings instead of a single string and the build fails...
+ sed -e "s:set(CMAKE_SHARED_LINKER_FLAGS \${CMAKE_SHARED_LINKER_FLAGS} \":set(CMAKE_SHARED_LINKER_FLAGS \"\${CMAKE_SHARED_LINKER_FLAGS} :" -i "${S}/amdocl/CMakeLists.txt"
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # Reported upstream: https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/issues/120
+ append-cflags -fcommon
+
+ local mycmakeargs=(
+ -DUSE_COMGR_LIBRARY=yes
+ -DROCclr_DIR=/usr/include/rocclr
+ -DLIBROCclr_STATIC_DIR=/usr/lib64/cmake/rocclr
+ )
+ cmake_src_configure
+}