From be9d25964b12d103b4129dbfbc6f4fcffac7fad3 Mon Sep 17 00:00:00 2001 From: "Alex Xu (Hello71)" Date: Tue, 4 Aug 2020 13:48:06 -0400 Subject: dev-libs/rocm-opencl-runtime: import remove unnecessary deps --- dev-libs/rocm-opencl-runtime/Manifest | 5 + .../rocm-opencl-runtime-2.8.0-amdocl64icd.patch | 13 ++ ...-opencl-runtime-2.8.0-change-AMDCompilerh.patch | 79 +++++++++++ .../rocm-opencl-runtime-2.8.0-change-opencl.patch | 70 ++++++++++ .../rocm-opencl-runtime-2.8.0-update-README.patch | 41 ++++++ ...ncl-runtime-3.0.0-change-install-location.patch | 147 +++++++++++++++++++++ .../rocm-opencl-runtime-3.5.0-amdocl64icd.patch | 11 ++ ...ncl-runtime-3.5.0-change-install-location.patch | 77 +++++++++++ ...cl-runtime-3.5.0-do-not-install-libopencl.patch | 14 ++ dev-libs/rocm-opencl-runtime/metadata.xml | 14 ++ .../rocm-opencl-runtime-3.0.0.ebuild | 55 ++++++++ .../rocm-opencl-runtime-3.1.0.ebuild | 54 ++++++++ .../rocm-opencl-runtime-3.3.0.ebuild | 54 ++++++++ .../rocm-opencl-runtime-3.5.0.ebuild | 58 ++++++++ 14 files changed, 692 insertions(+) create mode 100644 dev-libs/rocm-opencl-runtime/Manifest create mode 100644 dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-amdocl64icd.patch create mode 100644 dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-change-AMDCompilerh.patch create mode 100644 dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-change-opencl.patch create mode 100644 dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-2.8.0-update-README.patch create mode 100644 dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.0.0-change-install-location.patch create mode 100644 dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-amdocl64icd.patch create mode 100644 dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-change-install-location.patch create mode 100644 dev-libs/rocm-opencl-runtime/files/rocm-opencl-runtime-3.5.0-do-not-install-libopencl.patch create mode 100644 dev-libs/rocm-opencl-runtime/metadata.xml create mode 100644 dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.0.0.ebuild create mode 100644 dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.1.0.ebuild create mode 100644 dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.3.0.ebuild create mode 100644 dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-3.5.0.ebuild 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 "$") ++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 + #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 $ $ +@@ -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 $ +- DESTINATION bin/x86_64 +- COMPONENT MAIN) ++#install(PROGRAMS $ ++# DESTINATION bin/x86_64 ++# COMPONENT MAIN) + install(PROGRAMS $ +- DESTINATION lib/x86_64 +- COMPONENT MAIN) +-install(PROGRAMS $ +- DESTINATION lib/x86_64 +- COMPONENT MAIN) +-install(PROGRAMS $ +- DESTINATION lib/x86_64 ++ DESTINATION lib64 + COMPONENT MAIN) ++#install(PROGRAMS $ ++# DESTINATION lib/x86_64 ++# COMPONENT MAIN) ++#install(PROGRAMS $ ++# 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 $ +- 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 $ ++# 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 "$") ++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 $ +- DESTINATION bin +- COMPONENT MAIN) +-install(PROGRAMS $ +- DESTINATION lib +- COMPONENT MAIN) ++#install(PROGRAMS $ ++# DESTINATION bin ++# COMPONENT MAIN) ++#install(PROGRAMS $ ++# DESTINATION lib64 ++# COMPONENT MAIN) + install(PROGRAMS $ +- DESTINATION lib +- COMPONENT MAIN) +-install(PROGRAMS $ +- DESTINATION lib +- COMPONENT MAIN) +-install(PROGRAMS $ +- DESTINATION lib ++ DESTINATION lib64 + COMPONENT MAIN) ++#install(PROGRAMS $ ++# DESTINATION lib ++# COMPONENT MAIN) ++#install(PROGRAMS $ ++# 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 $ +- 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 $ ++# 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 @@ + + + + + candrews@gentoo.org + Craig Andrews + + + RadeonOpenCompute/ROCm-OpenCL-Runtime + + + Radeon Open Compute OpenCL Compatible Runtime + + 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 +} -- cgit v1.2.3-70-g09d2