* [bug#55948] [PATCH 1/2] gnu: Update llvm-for-rocm to 5.1.3.
2022-06-13 17:23 [bug#55948] [PATCH 0/2] gnu: Update rocm to 5.1.3 John Kehayias via Guix-patches via
@ 2022-06-13 17:25 ` John Kehayias via Guix-patches via
2022-06-13 17:26 ` [bug#55948] [PATCH 2/2] gnu: rocm: Update " John Kehayias via Guix-patches via
2022-06-16 11:35 ` bug#55948: [PATCH 0/2] gnu: Update rocm " Ludovic Courtès
2 siblings, 0 replies; 8+ messages in thread
From: John Kehayias via Guix-patches via @ 2022-06-13 17:25 UTC (permalink / raw)
To: 55948@debbugs.gnu.org
[-- Attachment #1: Type: text/plain, Size: 13 bytes --]
Empty Message
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Update-llvm-for-rocm-Update-to-5.1.3.patch --]
[-- Type: text/x-patch; name=0001-gnu-Update-llvm-for-rocm-Update-to-5.1.3.patch, Size: 6745 bytes --]
From a4e57b69b4de183952a85cdb0d86c3d952b9d990 Mon Sep 17 00:00:00 2001
From: John Kehayias <john.kehayias@protonmail.com>
Date: Sun, 12 Jun 2022 17:03:40 -0400
Subject: [PATCH 1/2] gnu: Update llvm-for-rocm: Update to 5.1.3.
* gnu/packages/llvm.scm (llvm-for-rocm): Update to 5.1.3, now based on llvm-14.
[source]{patches}: Remove unneeded patches (add_Object and add_libraries) and add new one (linkdl).
* gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch,
gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch: Delete files.
* gnu/packages/patches/llvm-roc-5.0.0-linkdl.patch: New file.
* gnu/local.mk (dist_patch_DATA): Update to match current patches.
---
gnu/local.mk | 3 +--
gnu/packages/llvm.scm | 14 ++++++------
.../llvm-roc-3.0.0-add_libraries.patch | 22 -------------------
.../patches/llvm-roc-4.2.0-add_Object.patch | 13 -----------
.../patches/llvm-roc-5.0.0-linkdl.patch | 15 +++++++++++++
5 files changed, 23 insertions(+), 44 deletions(-)
delete mode 100644 gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch
delete mode 100644 gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch
create mode 100644 gnu/packages/patches/llvm-roc-5.0.0-linkdl.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 03e180cc85..ddf843ab3a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1451,9 +1451,8 @@ dist_patch_DATA = \
%D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch \
%D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch \
%D%/packages/patches/llvm-9-fix-scev-miscompilation.patch \
- %D%/packages/patches/llvm-roc-3.0.0-add_libraries.patch \
%D%/packages/patches/llvm-roc-4.0.0-remove-isystem-usr-include.patch \
- %D%/packages/patches/llvm-roc-4.2.0-add_Object.patch \
+ %D%/packages/patches/llvm-roc-5.0.0-linkdl.patch \
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \
%D%/packages/patches/lrcalc-includes.patch \
%D%/packages/patches/lsh-fix-x11-forwarding.patch \
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 8bc9e8904c..98c4e0122d 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -23,6 +23,7 @@
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1109,10 +1110,10 @@ (define-public clang-toolchain clang-toolchain-13)
(define-public llvm-for-rocm
(package
- ;; Actually based on LLVM 13 as of v4.3, but llvm-12 works just fine.
- (inherit llvm-12)
+ ;; Based on LLVM 14 as of v5.0.0
+ (inherit llvm-14)
(name "llvm-for-rocm")
- (version "4.3.0") ;this must match '%rocm-version'
+ (version "5.1.3") ;this must match '%rocm-version'
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1121,10 +1122,9 @@ (define-public llvm-for-rocm
(file-name (git-file-name name version))
(sha256
(base32
- "0p75nr1qpmy6crymdax5hm40wkimman4lnglz4x5cnbiqindya7s"))
+ "0j6ydfkwrxwskgnhxc3cmry42n5faqbnwf2747qgf7lz5id8h8g5"))
(patches
- (search-patches "llvm-roc-4.2.0-add_Object.patch"
- "llvm-roc-3.0.0-add_libraries.patch"
+ (search-patches "llvm-roc-5.0.0-linkdl.patch"
"llvm-roc-4.0.0-remove-isystem-usr-include.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments llvm-12)
@@ -1141,7 +1141,7 @@ (define-public llvm-for-rocm
"-DBUILD_SHARED_LIBS:BOOL=TRUE"
"-DLLVM_VERSION_SUFFIX="))))
(properties `((hidden? . #t)
- ,@(package-properties llvm-12)))))
+ ,@(package-properties llvm-14)))))
\f
diff --git a/gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch b/gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch
deleted file mode 100644
index f6bc639f33..0000000000
--- a/gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Taken from https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/llvm-roc/files
-
-diff -Naur a/clang/lib/Basic/CMakeLists.txt b/clang/lib/Basic/CMakeLists.txt
---- a/clang/lib/Basic/CMakeLists.txt 2019-12-28 07:42:49.119055933 +0100
-+++ b/clang/lib/Basic/CMakeLists.txt 2019-12-28 07:42:13.265056070 +0100
-@@ -2,6 +2,7 @@
- Core
- MC
- Support
-+ Option
- )
-
- find_first_existing_vc_file("${LLVM_MAIN_SRC_DIR}" llvm_vc)
-diff -Naur a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
---- a/clang/lib/Driver/CMakeLists.txt 2019-12-28 07:41:39.521056199 +0100
-+++ b/clang/lib/Driver/CMakeLists.txt 2019-12-28 07:40:23.998056487 +0100
-@@ -79,4 +79,5 @@
- LINK_LIBS
- clangBasic
- ${system_libs}
-+ pthread
- )
diff --git a/gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch b/gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch
deleted file mode 100644
index f1762a558b..0000000000
--- a/gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Taken from https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/llvm-roc/files
-
-diff --color -uprN orig/lib/Target/AMDGPU/Disassembler/CMakeLists.txt llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
---- a/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt 2021-06-14 11:57:54.222796911 +0800
-+++ b/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt 2021-06-14 11:58:35.206796875 +0800
-@@ -11,6 +11,7 @@ add_llvm_component_library(LLVMAMDGPUDis
- MC
- MCDisassembler
- Support
-+ Object
-
- ADD_TO_COMPONENT
- AMDGPU
diff --git a/gnu/packages/patches/llvm-roc-5.0.0-linkdl.patch b/gnu/packages/patches/llvm-roc-5.0.0-linkdl.patch
new file mode 100644
index 0000000000..d6ed3aef93
--- /dev/null
+++ b/gnu/packages/patches/llvm-roc-5.0.0-linkdl.patch
@@ -0,0 +1,15 @@
+Taken from the Gentoo patch:
+https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/llvm-roc/files/llvm-roc-5.0.0-linkdl.patch
+
+LLVMOffloadArch should link libdl to fix undefined symbol 'dlsym' when linking
+
+--- a/llvm/lib/OffloadArch/offload-arch/CMakeLists.txt
++++ b/llvm/lib/OffloadArch/offload-arch/CMakeLists.txt
+@@ -3,6 +3,7 @@ add_llvm_tool(offload-arch
+ ${CMAKE_CURRENT_SOURCE_DIR}/offload-arch.cpp
+ DEPENDS generated-table LLVMOffloadArch
+ )
++target_link_libraries(LLVMOffloadArch PRIVATE ${CMAKE_DL_LIBS})
+ target_link_libraries(offload-arch PRIVATE LLVMOffloadArch)
+
+ if(CMAKE_HOST_UNIX)
--
2.36.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#55948] [PATCH 2/2] gnu: rocm: Update to 5.1.3.
2022-06-13 17:23 [bug#55948] [PATCH 0/2] gnu: Update rocm to 5.1.3 John Kehayias via Guix-patches via
2022-06-13 17:25 ` [bug#55948] [PATCH 1/2] gnu: Update llvm-for-rocm " John Kehayias via Guix-patches via
@ 2022-06-13 17:26 ` John Kehayias via Guix-patches via
2022-06-16 11:35 ` bug#55948: [PATCH 0/2] gnu: Update rocm " Ludovic Courtès
2 siblings, 0 replies; 8+ messages in thread
From: John Kehayias via Guix-patches via @ 2022-06-13 17:26 UTC (permalink / raw)
To: 55948@debbugs.gnu.org
[-- Attachment #1: Type: text/plain, Size: 13 bytes --]
Empty Message
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-gnu-rocm-Update-to-5.1.3.patch --]
[-- Type: text/x-patch; name=0002-gnu-rocm-Update-to-5.1.3.patch, Size: 20440 bytes --]
From ea4977f27d1758d7affb3e954edd6c77f4851981 Mon Sep 17 00:00:00 2001
From: John Kehayias <john.kehayias@protonmail.com>
Date: Mon, 13 Jun 2022 11:36:23 -0400
Subject: [PATCH 2/2] gnu: rocm: Update to 5.1.3.
All packages updated at the same time as they have a shared version. rocclr is
no longer a stand-alone package, so the previous version is kept as rocclr-4
and the current version is just the source, rocclr-src, needed by rocm-opencl-runtime.
* gnu/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch,
gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): Remove them.
* gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch,
gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch,
gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch: Update patches.
* gnu/packages/rocm.scm (rocm-cmake, rocm-device-libs, rocm-comgr,
roct-thunk-interface, rocr-runtime, rocm-opencl-runtime, rocminfo,
rocm-bandwidth-test): Update to 5.1.3.
(roct-thunk-interface)[inputs]: Add libdrm.
[native-inputs]: Add gcc:lib and pkg-config.
(rocclr-src): New variable.
(rocclr-4): New variable (previous version of the package).
(rocm-opencl-runtime)[source]: Remove obsolete patches.
[arguments]: Rewrite with gexps. Add needed #:configure-flags.
[inputs]: Remove rocclr, add numactl.
---
gnu/local.mk | 2 -
.../rocm-comgr-3.1.0-dependencies.patch | 11 ++-
.../rocm-opencl-runtime-3.10.0-includes.patch | 14 ---
.../rocm-opencl-runtime-4.3-noclinfo.patch | 29 +++---
.../rocm-opencl-runtime-4.3-nocltrace.patch | 25 -----
.../rocm-opencl-runtime-4.3-noopencl.patch | 65 +++++++------
gnu/packages/rocm.scm | 95 +++++++++++--------
7 files changed, 115 insertions(+), 126 deletions(-)
delete mode 100644 gnu/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch
delete mode 100644 gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index ddf843ab3a..c8a24e3ef3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1758,9 +1758,7 @@ dist_patch_DATA = \
%D%/packages/patches/rnp-disable-ruby-rnp-tests.patch \
%D%/packages/patches/rnp-unbundle-googletest.patch \
%D%/packages/patches/rocm-comgr-3.1.0-dependencies.patch \
- %D%/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \
- %D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
%D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
%D%/packages/patches/ruby-sanitize-system-libxml.patch \
diff --git a/gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch b/gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch
index c91d273f92..fc2c74718a 100644
--- a/gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch
+++ b/gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch
@@ -11,11 +11,11 @@ Without these additional required dependencies, linking fails with errors such a
CMakeLists.txt | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1794a07..c7b852a 100644
+diff --git a/lib/comgr/CMakeLists.txt b/lib/comgr/CMakeLists.txt
+index 8b5ca2f..a7d226f 100644
--- a/lib/comgr/CMakeLists.txt
+++ b/lib/comgr/CMakeLists.txt
-@@ -207,7 +207,11 @@ install(FILES
+@@ -294,7 +294,11 @@ install(FILES
DESTINATION "${AMD_COMGR_PACKAGE_PREFIX}")
set(CLANG_LIBS
@@ -28,7 +28,7 @@ index 1794a07..c7b852a 100644
set(LLD_LIBS
lldELF
-@@ -218,8 +222,20 @@ if (LLVM_LINK_LLVM_DYLIB)
+@@ -305,8 +309,21 @@ if (LLVM_LINK_LLVM_DYLIB)
else()
llvm_map_components_to_libnames(LLVM_LIBS
${LLVM_TARGETS_TO_BUILD}
@@ -46,7 +46,8 @@ index 1794a07..c7b852a 100644
+ IRReader
+ CodeGen
+ Linker
++ Demangle
+ BinaryFormat)
endif()
- target_link_libraries(amd_comgr
+ target_link_options(amd_comgr
diff --git a/gnu/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch b/gnu/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch
deleted file mode 100644
index d81bb0747f..0000000000
--- a/gnu/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Add missing include dirs for ROCclr.
-
---- a/amdocl/CMakeLists.txt 2020-12-05 22:05:55.838529158 +0100
-+++ b/amdocl/CMakeLists.txt 2020-12-05 22:07:35.677524507 +0100
-@@ -23,6 +23,9 @@
- include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos)
- include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos/headers)
- include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos/headers/opencl2.2)
-+include_directories(${ROCclr_DIR}/../../../include)
-+include_directories(${ROCclr_DIR}/../../../include/compiler/lib/include/)
-+include_directories(${ROCclr_DIR}/../../../include/elf/)
-
- if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR
- (CMAKE_${COMPILER}_COMPILER_ID MATCHES "Clang"))
diff --git a/gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch b/gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch
index 5709e0d19a..97376fd421 100644
--- a/gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch
+++ b/gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch
@@ -4,25 +4,26 @@ diff --git a/CMakeLists.txt.orig b/CMakeLists.txt
index 76847d3..3f62bfe 100644
--- a/CMakeLists.txt.orig
+++ b/CMakeLists.txt
-@@ -72,7 +72,7 @@ find_package(ROCclr REQUIRED CONFIG
+@@ -15,9 +15,9 @@ option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorganization backward co
- add_subdirectory(khronos/icd)
+
+ set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_LIST_DIR}/khronos/headers/opencl2.2" CACHE PATH "")
+ #add_subdirectory(khronos/icd)
add_subdirectory(amdocl)
-add_subdirectory(tools/clinfo)
+#add_subdirectory(tools/clinfo)
add_subdirectory(tools/cltrace)
if(BUILD_TESTS)
add_subdirectory(tests/ocltst)
-@@ -108,9 +108,9 @@ endif()
- ###--- Packaging ------------------------------------------------------------###
+diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt
+index 48353eb..cd1e7c1 100644
+--- a/packaging/CMakeLists.txt
++++ b/packaging/CMakeLists.txt
+@@ -5,6 +5,6 @@ set(CPACK_COMPONENTS_ALL binary dev icd)
+ set(CPACK_DEB_COMPONENT_INSTALL ON)
+ set(CPACK_RPM_COMPONENT_INSTALL ON)
- # MAIN package
--install(PROGRAMS $<TARGET_FILE:clinfo>
-- DESTINATION bin
-- COMPONENT MAIN)
-+#install(PROGRAMS $<TARGET_FILE:clinfo>
-+# DESTINATION bin
-+# COMPONENT MAIN)
- install(PROGRAMS $<TARGET_FILE:cltrace>
- DESTINATION lib
- COMPONENT MAIN)
+-install(TARGETS clinfo DESTINATION bin COMPONENT binary)
++#install(TARGETS clinfo DESTINATION bin COMPONENT binary)
+ install(TARGETS amdocl DESTINATION lib COMPONENT binary)
+ install(FILES ${CMAKE_SOURCE_DIR}/LICENSE.txt DESTINATION share/doc/${CMAKE_PROJECT_NAME} COMPONENT binary)
diff --git a/gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch b/gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch
deleted file mode 100644
index e0328d7734..0000000000
--- a/gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Do not build and install cltrace.
-
-diff --git a/CMakeLists.txt.orig b/CMakeLists.txt
-index c449db4..9cff673 100644
---- a/CMakeLists.txt.orig
-+++ b/CMakeLists.txt
-@@ -73,7 +73,7 @@ find_package(ROCclr REQUIRED CONFIG
- #add_subdirectory(khronos/icd)
- add_subdirectory(amdocl)
- #add_subdirectory(tools/clinfo)
--add_subdirectory(tools/cltrace)
-+#add_subdirectory(tools/cltrace)
- if(BUILD_TESTS)
- add_subdirectory(tests/ocltst)
- endif()
-@@ -108,9 +108,6 @@ endif()
- #install(PROGRAMS $<TARGET_FILE:clinfo>
- # DESTINATION bin
- # COMPONENT MAIN)
--install(PROGRAMS $<TARGET_FILE:cltrace>
-- DESTINATION lib
-- COMPONENT MAIN)
- install(PROGRAMS $<TARGET_FILE:amdocl64>
- DESTINATION lib
- COMPONENT MAIN)
diff --git a/gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch b/gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch
index ed20f02503..9f80d7da9d 100644
--- a/gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch
+++ b/gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch
@@ -2,36 +2,21 @@ Do not build and install libOpenCL.
--- b/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -70,7 +70,7 @@
- ${ROCclr_DIR}
- ${LIBROCclr_STATIC_DIR})
+@@ -15,9 +15,9 @@ option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorganization backward co
+
+ set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_LIST_DIR}/khronos/headers/opencl2.2" CACHE PATH "")
-add_subdirectory(khronos/icd)
+#add_subdirectory(khronos/icd)
add_subdirectory(amdocl)
- #add_subdirectory(tools/clinfo)
+ add_subdirectory(tools/clinfo)
add_subdirectory(tools/cltrace)
-@@ -93,9 +93,6 @@
- OUTPUT_VARIABLE OPENCL_VERSION_GITDATE
- OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(BUILD_TESTS)
+ add_subdirectory(tests/ocltst)
+@@ -25,16 +25,6 @@ endif()
+
+ ###--- Packaging ------------------------------------------------------------###
--get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION)
--get_target_property(OPENCL_LIB_VERSION_STRING OpenCL VERSION)
--
- find_package(ROCM QUIET CONFIG PATHS /opt/rocm)
-
- if(ROCM_FOUND)
-@@ -117,25 +114,6 @@
- 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
-- COMPONENT MAIN)
--
-# DEV package
-install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2/CL"
- DESTINATION include
@@ -41,15 +26,26 @@ Do not build and install libOpenCL.
- 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
+ #############################
+@@ -53,8 +43,8 @@ if (DEFINED ROCM_PATCH_VERSION)
+ set(OPENCL_AMD_ICD_FILE "amdocl64_${ROCM_PATCH_VERSION}.icd")
+ endif()
+
+-get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION)
+-get_target_property(OPENCL_LIB_VERSION_STRING OpenCL VERSION)
++#get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION)
++#get_target_property(OPENCL_LIB_VERSION_STRING OpenCL VERSION)
+
+ #Set Package Version
+ set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
+diff --git a/khronos/icd/CMakeLists.txt b/khronos/icd/CMakeLists.txt
+index 4bafa86..987dd6f 100644
--- 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 @@
+@@ -132,7 +132,7 @@ if (BUILD_TESTING)
add_subdirectory (test)
endif()
@@ -61,3 +57,14 @@ Do not build and install libOpenCL.
+# RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+# ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt
+index 48353eb..cd1e7c1 100644
+--- a/packaging/CMakeLists.txt
++++ b/packaging/CMakeLists.txt
+@@ -17,5 +17,5 @@ install(DIRECTORY ${CMAKE_SOURCE_DIR}/khronos/headers/opencl2.2/CL
+ PATTERN cl_dx9_media_sharing.h EXCLUDE
+ PATTERN cl_egl.h EXCLUDE )
+
+-install(TARGETS OpenCL DESTINATION lib COMPONENT icd )
++#install(TARGETS OpenCL DESTINATION lib COMPONENT icd )
+ install(FILES ${CMAKE_SOURCE_DIR}/khronos/icd/LICENSE DESTINATION share/doc/rocm-ocl-icd COMPONENT icd)
diff --git a/gnu/packages/rocm.scm b/gnu/packages/rocm.scm
index 2ccc6d3251..6c1a83cc88 100644
--- a/gnu/packages/rocm.scm
+++ b/gnu/packages/rocm.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This program is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
@@ -18,21 +19,25 @@ (define-module (gnu packages rocm)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages gl)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages opencl)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages version-control)
- #:use-module (gnu packages vim))
+ #:use-module (gnu packages vim)
+ #:use-module (gnu packages xdisorg))
;; The components are tightly integrated and can only be upgraded as a unit. If
;; you want to upgrade ROCm, bump this version number and update hashes below.
-(define %rocm-version "4.3.0")
+(define %rocm-version "5.1.3")
(define-public rocm-cmake
(package
@@ -46,7 +51,7 @@ (define-public rocm-cmake
(file-name (git-file-name name version))
(sha256
(base32
- "0sic2zxmzl2pb2865vvq55mbpcr8pby8v19pjdlm08pypqw5h6h6"))))
+ "1bn3l04qnc1ls9abs15s1sgsrwmkfk0g8jgdjqshrcr3ab8ffcpf"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; Tests try to use git commit
(native-inputs (list git))
@@ -68,7 +73,7 @@ (define-public rocm-device-libs
(file-name (git-file-name name version))
(sha256
(base32
- "1f8xsylfajpxqjk6ayjnrry53y8b0a6lh9d72pd41nffxfyzvw3w"))))
+ "07vkrxxc49i72r0lcl6dap0qcw1bignsw920rj4h1mac3bwa8q4j"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@@ -93,7 +98,7 @@ (define-public rocm-comgr
(file-name (git-file-name name version))
(sha256
(base32
- "0bakbm7shr0l67lph44b5cnc9psd6rivg1mp79qizaawkn380x60"))
+ "1achb3216cbm7x2d05xj7j7ivn24y11q2d2p5whw3v4ykgfqql6f"))
(patches
(search-patches "rocm-comgr-3.1.0-dependencies.patch"))))
(build-system cmake-build-system)
@@ -125,10 +130,11 @@ (define-public roct-thunk-interface
(file-name (git-file-name name version))
(sha256
(base32
- "0ffqhrrscmcydfqf61dk58d7nnxk6n2k68jhqfj7a4hvhlphb74f"))))
+ "0k5bchq1jhgraqrhj9q47b45n33wnd2ipwrrj39q51jzxmyyzxj2"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; Not sure how to run tests.
- (inputs (list numactl))
+ (inputs (list libdrm numactl))
+ (native-inputs (list `(,gcc "lib") pkg-config))
(home-page "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface")
(synopsis "Radeon Open Compute Thunk Interface")
(description "User-mode API interfaces used to interact with the ROCk
@@ -147,7 +153,7 @@ (define-public rocr-runtime
(file-name (git-file-name name version))
(sha256
(base32
- "0jqfqf5ymwlbpac065bhigmkgsk7mbyimdgvca7ymn38wpf80ka7"))))
+ "1j1cy64w13plgsy20mir4xm6x4xnwkyil3g03xnda6ynhd7bkhv7"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@@ -174,10 +180,23 @@ (define-public rocr-runtime
applications to launch compute kernels to available HSA ROCm kernel agents.")
(license license:ncsa)))
-(define-public rocclr
+;; This is the source only for ROCclr as from v4.5 it should only be built as
+;; part of a client. A warning is output if attempting to build stand-alone
+;; and there is no install. The previous version is kept as rocclr-4.
+(define rocclr-src
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ROCm-Developer-Tools/ROCclr.git")
+ (commit (string-append "rocm-" %rocm-version))))
+ (sha256
+ (base32
+ "0x1frzpz9j1s516vscbdm9g5cqirvv5w7wmq2kyljcygnci7yqar"))))
+
+(define-public rocclr-4
(package
- (name "rocclr")
- (version %rocm-version)
+ (name "rocclr-4")
+ (version "4.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -232,39 +251,41 @@ (define-public rocm-opencl-runtime
(file-name (git-file-name name version))
(sha256
(base32
- "1cglpiaj3ny1z74ssmy6j63vj92sfy4q38ix6qsga0mg3b2wvqz3"))
+ "1rirvc8h0ahicw1vw4js4jq5gw25x47gmg3gczmyz97c72wvgfiv"))
(patches
(search-patches
- "rocm-opencl-runtime-3.10.0-includes.patch"
;; Do not install libOpenCL, which ocl-icd provides.
"rocm-opencl-runtime-4.3-noopencl.patch"
;; Guix includes a program clinfo already.
- "rocm-opencl-runtime-4.3-noclinfo.patch"
- ;; cltrace linking fails, remove it.
- "rocm-opencl-runtime-4.3-nocltrace.patch"))))
+ "rocm-opencl-runtime-4.3-noclinfo.patch"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; Not sure how to run them.
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'create-icd
- ;; Manually install ICD, which simply consists of dumping
- ;; the path of the .so into the correct file.
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (vendors (string-append out "/etc/OpenCL/vendors"))
- (sopath (string-append out "/lib/libamdocl64.so")))
- (mkdir-p vendors)
- (with-output-to-file (string-append vendors "/amdocl64.icd")
- (lambda _ (display sopath)))))))))
+ (list
+ #:tests? #f ; Not sure how to run them.
+ #:configure-flags
+ #~(list
+ (string-append "-DAMD_OPENCL_PATH=" #$(package-source this-package))
+ ;; The ROCclr source is needed to build the runtime.
+ (string-append "-DROCCLR_PATH=" #$rocclr-src)
+ (string-append "-DROCM_PATH=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'create-icd
+ ;; Manually install ICD, which simply consists of dumping
+ ;; the path of the .so into the correct file.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((vendors (string-append #$output "/etc/OpenCL/vendors"))
+ (sopath (string-append #$output "/lib/libamdocl64.so")))
+ (mkdir-p vendors)
+ (with-output-to-file (string-append vendors "/amdocl64.icd")
+ (lambda _ (display sopath)))))))))
(inputs
- (list mesa
- rocm-comgr
- rocr-runtime
- rocclr
+ (list glew
+ mesa
+ numactl
opencl-icd-loader
- glew))
- (native-inputs `())
+ rocm-comgr
+ rocr-runtime))
(synopsis "ROCm OpenCL Runtime")
(description "OpenCL 2.0 compatible language runtime, supporting offline
and in-process/in-memory compilation.")
@@ -282,7 +303,7 @@ (define-public rocminfo
(file-name (git-file-name name version))
(sha256
(base32
- "0pcm308vwkjrwnrk507iya20mkil8j0vx699w9jk2gas4n4jvkcz"))))
+ "0hdfbvn55h5lk5s8vqlmri5r94vlas8v8yjxwd9d70igslk0kr67"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No tests.
@@ -314,7 +335,7 @@ (define-public rocm-bandwidth-test
(file-name (git-file-name name version))
(sha256
(base32
- "0a14kwkjpiyljgzxblh031qibn6xgbxp6m12zdy1pmwb2c44jjmm"))))
+ "0rnn2ms68mvzpcp31dk304sfqnv352i7vb48k7rw3qjahhrjm48c"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; No tests.
(inputs (list rocr-runtime))
--
2.36.1
^ permalink raw reply related [flat|nested] 8+ messages in thread