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. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
		
							parent
							
								
									25809f5a40
								
							
						
					
					
						commit
						67c30ff8ad
					
				
					 7 changed files with 114 additions and 125 deletions
				
			
		| 
						 | 
					@ -1762,9 +1762,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/rnp-disable-ruby-rnp-tests.patch		\
 | 
					  %D%/packages/patches/rnp-disable-ruby-rnp-tests.patch		\
 | 
				
			||||||
  %D%/packages/patches/rnp-unbundle-googletest.patch		\
 | 
					  %D%/packages/patches/rnp-unbundle-googletest.patch		\
 | 
				
			||||||
  %D%/packages/patches/rocm-comgr-3.1.0-dependencies.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-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/rocm-opencl-runtime-4.3-noopencl.patch \
 | 
				
			||||||
  %D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
 | 
					  %D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
 | 
				
			||||||
  %D%/packages/patches/ruby-sanitize-system-libxml.patch	\
 | 
					  %D%/packages/patches/ruby-sanitize-system-libxml.patch	\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,11 +11,11 @@ Without these additional required dependencies, linking fails with errors such a
 | 
				
			||||||
 CMakeLists.txt | 20 ++++++++++++++++++--
 | 
					 CMakeLists.txt | 20 ++++++++++++++++++--
 | 
				
			||||||
 1 file changed, 18 insertions(+), 2 deletions(-)
 | 
					 1 file changed, 18 insertions(+), 2 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
 | 
					diff --git a/lib/comgr/CMakeLists.txt b/lib/comgr/CMakeLists.txt
 | 
				
			||||||
index 1794a07..c7b852a 100644
 | 
					index 8b5ca2f..a7d226f 100644
 | 
				
			||||||
--- a/lib/comgr/CMakeLists.txt
 | 
					--- a/lib/comgr/CMakeLists.txt
 | 
				
			||||||
+++ b/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}")
 | 
					   DESTINATION "${AMD_COMGR_PACKAGE_PREFIX}")
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 set(CLANG_LIBS
 | 
					 set(CLANG_LIBS
 | 
				
			||||||
| 
						 | 
					@ -28,7 +28,7 @@ index 1794a07..c7b852a 100644
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 set(LLD_LIBS
 | 
					 set(LLD_LIBS
 | 
				
			||||||
   lldELF
 | 
					   lldELF
 | 
				
			||||||
@@ -218,8 +222,20 @@ if (LLVM_LINK_LLVM_DYLIB)
 | 
					@@ -305,8 +309,21 @@ if (LLVM_LINK_LLVM_DYLIB)
 | 
				
			||||||
 else()
 | 
					 else()
 | 
				
			||||||
   llvm_map_components_to_libnames(LLVM_LIBS
 | 
					   llvm_map_components_to_libnames(LLVM_LIBS
 | 
				
			||||||
     ${LLVM_TARGETS_TO_BUILD}
 | 
					     ${LLVM_TARGETS_TO_BUILD}
 | 
				
			||||||
| 
						 | 
					@ -46,7 +46,8 @@ index 1794a07..c7b852a 100644
 | 
				
			||||||
+    IRReader
 | 
					+    IRReader
 | 
				
			||||||
+    CodeGen
 | 
					+    CodeGen
 | 
				
			||||||
+    Linker
 | 
					+    Linker
 | 
				
			||||||
 | 
					+    Demangle
 | 
				
			||||||
+    BinaryFormat)
 | 
					+    BinaryFormat)
 | 
				
			||||||
 endif()
 | 
					 endif()
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 target_link_libraries(amd_comgr
 | 
					 target_link_options(amd_comgr
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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"))
 | 
					 | 
				
			||||||
| 
						 | 
					@ -4,25 +4,26 @@ diff --git a/CMakeLists.txt.orig b/CMakeLists.txt
 | 
				
			||||||
index 76847d3..3f62bfe 100644
 | 
					index 76847d3..3f62bfe 100644
 | 
				
			||||||
--- a/CMakeLists.txt.orig
 | 
					--- a/CMakeLists.txt.orig
 | 
				
			||||||
+++ b/CMakeLists.txt
 | 
					+++ 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(amdocl)
 | 
				
			||||||
-add_subdirectory(tools/clinfo)
 | 
					-add_subdirectory(tools/clinfo)
 | 
				
			||||||
+#add_subdirectory(tools/clinfo)
 | 
					+#add_subdirectory(tools/clinfo)
 | 
				
			||||||
 add_subdirectory(tools/cltrace)
 | 
					 add_subdirectory(tools/cltrace)
 | 
				
			||||||
 if(BUILD_TESTS)
 | 
					 if(BUILD_TESTS)
 | 
				
			||||||
   add_subdirectory(tests/ocltst)
 | 
					   add_subdirectory(tests/ocltst)
 | 
				
			||||||
@@ -108,9 +108,9 @@ endif()
 | 
					diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt
 | 
				
			||||||
 ###--- Packaging ------------------------------------------------------------###
 | 
					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(TARGETS clinfo DESTINATION bin COMPONENT binary)
 | 
				
			||||||
-install(PROGRAMS $<TARGET_FILE:clinfo>
 | 
					+#install(TARGETS clinfo DESTINATION bin COMPONENT binary)
 | 
				
			||||||
-        DESTINATION bin
 | 
					 install(TARGETS amdocl DESTINATION lib COMPONENT binary)
 | 
				
			||||||
-        COMPONENT MAIN)
 | 
					 install(FILES ${CMAKE_SOURCE_DIR}/LICENSE.txt DESTINATION share/doc/${CMAKE_PROJECT_NAME} COMPONENT binary)
 | 
				
			||||||
+#install(PROGRAMS $<TARGET_FILE:clinfo>
 | 
					 | 
				
			||||||
+#        DESTINATION bin
 | 
					 | 
				
			||||||
+#        COMPONENT MAIN)
 | 
					 | 
				
			||||||
 install(PROGRAMS $<TARGET_FILE:cltrace>
 | 
					 | 
				
			||||||
         DESTINATION lib
 | 
					 | 
				
			||||||
         COMPONENT MAIN)
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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)
 | 
					 | 
				
			||||||
| 
						 | 
					@ -2,36 +2,21 @@ Do not build and install libOpenCL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
--- b/CMakeLists.txt
 | 
					--- b/CMakeLists.txt
 | 
				
			||||||
+++ b/CMakeLists.txt
 | 
					+++ b/CMakeLists.txt
 | 
				
			||||||
@@ -70,7 +70,7 @@
 | 
					@@ -15,9 +15,9 @@ option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorganization backward co
 | 
				
			||||||
     ${ROCclr_DIR}
 | 
					 | 
				
			||||||
     ${LIBROCclr_STATIC_DIR})
 | 
					 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 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(khronos/icd)
 | 
					+#add_subdirectory(khronos/icd)
 | 
				
			||||||
 add_subdirectory(amdocl)
 | 
					 add_subdirectory(amdocl)
 | 
				
			||||||
 #add_subdirectory(tools/clinfo)
 | 
					 add_subdirectory(tools/clinfo)
 | 
				
			||||||
 add_subdirectory(tools/cltrace)
 | 
					 add_subdirectory(tools/cltrace)
 | 
				
			||||||
@@ -93,9 +93,6 @@
 | 
					 if(BUILD_TESTS)
 | 
				
			||||||
     OUTPUT_VARIABLE OPENCL_VERSION_GITDATE
 | 
					   add_subdirectory(tests/ocltst)
 | 
				
			||||||
     OUTPUT_STRIP_TRAILING_WHITESPACE)
 | 
					@@ -25,16 +25,6 @@ endif()
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
-get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION)
 | 
					 ###--- Packaging ------------------------------------------------------------###
 | 
				
			||||||
-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
 | 
					-# DEV package
 | 
				
			||||||
-install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2/CL"
 | 
					-install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2/CL"
 | 
				
			||||||
-        DESTINATION include
 | 
					-        DESTINATION include
 | 
				
			||||||
| 
						 | 
					@ -41,15 +26,26 @@ Do not build and install libOpenCL.
 | 
				
			||||||
-        PATTERN cl_d3d11.h EXCLUDE
 | 
					-        PATTERN cl_d3d11.h EXCLUDE
 | 
				
			||||||
-        PATTERN cl_dx9_media_sharing.h EXCLUDE
 | 
					-        PATTERN cl_dx9_media_sharing.h EXCLUDE
 | 
				
			||||||
-        PATTERN cl_egl.h EXCLUDE)
 | 
					-        PATTERN cl_egl.h EXCLUDE)
 | 
				
			||||||
-install(PROGRAMS $<TARGET_LINKER_FILE:OpenCL>
 | 
					-
 | 
				
			||||||
-        DESTINATION lib
 | 
					 | 
				
			||||||
-        COMPONENT DEV)
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 #############################
 | 
					 #############################
 | 
				
			||||||
 # Packaging steps
 | 
					 # 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
 | 
					--- 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
 | 
					+++ 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)
 | 
					     add_subdirectory (test)
 | 
				
			||||||
 endif()
 | 
					 endif()
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
| 
						 | 
					@ -61,3 +57,14 @@ Do not build and install libOpenCL.
 | 
				
			||||||
+#    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 | 
					+#    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 | 
				
			||||||
+#    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
					+#    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
				
			||||||
+#    LIBRARY 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)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
 | 
					;;; 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
 | 
					;;; 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
 | 
					;;; under the terms of the GNU General Public License as published by
 | 
				
			||||||
| 
						 | 
					@ -18,21 +19,25 @@
 | 
				
			||||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
					  #:use-module ((guix licenses) #:prefix license:)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
  #:use-module (guix build-system cmake)
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages elf)
 | 
					  #:use-module (gnu packages elf)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages gcc)
 | 
				
			||||||
  #:use-module (gnu packages gl)
 | 
					  #:use-module (gnu packages gl)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (gnu packages llvm)
 | 
					  #:use-module (gnu packages llvm)
 | 
				
			||||||
  #:use-module (gnu packages opencl)
 | 
					  #:use-module (gnu packages opencl)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
  #:use-module (gnu packages version-control)
 | 
					  #: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
 | 
					;; 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.
 | 
					;; 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
 | 
					(define-public rocm-cmake
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -46,7 +51,7 @@
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0sic2zxmzl2pb2865vvq55mbpcr8pby8v19pjdlm08pypqw5h6h6"))))
 | 
					                "1bn3l04qnc1ls9abs15s1sgsrwmkfk0g8jgdjqshrcr3ab8ffcpf"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments `(#:tests? #f)) ; Tests try to use git commit
 | 
					    (arguments `(#:tests? #f)) ; Tests try to use git commit
 | 
				
			||||||
    (native-inputs (list git))
 | 
					    (native-inputs (list git))
 | 
				
			||||||
| 
						 | 
					@ -68,7 +73,7 @@ tasks needed for the ROCM software stack.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1f8xsylfajpxqjk6ayjnrry53y8b0a6lh9d72pd41nffxfyzvw3w"))))
 | 
					                "07vkrxxc49i72r0lcl6dap0qcw1bignsw920rj4h1mac3bwa8q4j"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
| 
						 | 
					@ -93,7 +98,7 @@ oclc, ocml, ockl, opencl, hip and hc.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0bakbm7shr0l67lph44b5cnc9psd6rivg1mp79qizaawkn380x60"))
 | 
					                "1achb3216cbm7x2d05xj7j7ivn24y11q2d2p5whw3v4ykgfqql6f"))
 | 
				
			||||||
              (patches
 | 
					              (patches
 | 
				
			||||||
               (search-patches "rocm-comgr-3.1.0-dependencies.patch"))))
 | 
					               (search-patches "rocm-comgr-3.1.0-dependencies.patch"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
| 
						 | 
					@ -125,10 +130,11 @@ AMDGPU code objects.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0ffqhrrscmcydfqf61dk58d7nnxk6n2k68jhqfj7a4hvhlphb74f"))))
 | 
					                "0k5bchq1jhgraqrhj9q47b45n33wnd2ipwrrj39q51jzxmyyzxj2"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments `(#:tests? #f)) ; Not sure how to run tests.
 | 
					    (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")
 | 
					    (home-page "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface")
 | 
				
			||||||
    (synopsis "Radeon Open Compute Thunk Interface")
 | 
					    (synopsis "Radeon Open Compute Thunk Interface")
 | 
				
			||||||
    (description "User-mode API interfaces used to interact with the ROCk
 | 
					    (description "User-mode API interfaces used to interact with the ROCk
 | 
				
			||||||
| 
						 | 
					@ -147,7 +153,7 @@ driver.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0jqfqf5ymwlbpac065bhigmkgsk7mbyimdgvca7ymn38wpf80ka7"))))
 | 
					                "1j1cy64w13plgsy20mir4xm6x4xnwkyil3g03xnda6ynhd7bkhv7"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
| 
						 | 
					@ -174,10 +180,23 @@ driver.")
 | 
				
			||||||
applications to launch compute kernels to available HSA ROCm kernel agents.")
 | 
					applications to launch compute kernels to available HSA ROCm kernel agents.")
 | 
				
			||||||
    (license license:ncsa)))
 | 
					    (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
 | 
					  (package
 | 
				
			||||||
    (name "rocclr")
 | 
					    (name "rocclr-4")
 | 
				
			||||||
    (version %rocm-version)
 | 
					    (version "4.3.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -232,39 +251,41 @@ allows runtimes to work on Windows as well as on Linux without much effort.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1cglpiaj3ny1z74ssmy6j63vj92sfy4q38ix6qsga0mg3b2wvqz3"))
 | 
					                "1rirvc8h0ahicw1vw4js4jq5gw25x47gmg3gczmyz97c72wvgfiv"))
 | 
				
			||||||
              (patches
 | 
					              (patches
 | 
				
			||||||
               (search-patches
 | 
					               (search-patches
 | 
				
			||||||
                "rocm-opencl-runtime-3.10.0-includes.patch"
 | 
					 | 
				
			||||||
                ;; Do not install libOpenCL, which ocl-icd provides.
 | 
					                ;; Do not install libOpenCL, which ocl-icd provides.
 | 
				
			||||||
                "rocm-opencl-runtime-4.3-noopencl.patch"
 | 
					                "rocm-opencl-runtime-4.3-noopencl.patch"
 | 
				
			||||||
                ;; Guix includes a program clinfo already.
 | 
					                ;; Guix includes a program clinfo already.
 | 
				
			||||||
                "rocm-opencl-runtime-4.3-noclinfo.patch"
 | 
					                "rocm-opencl-runtime-4.3-noclinfo.patch"))))
 | 
				
			||||||
                ;; cltrace linking fails, remove it.
 | 
					 | 
				
			||||||
                "rocm-opencl-runtime-4.3-nocltrace.patch"))))
 | 
					 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; Not sure how to run them.
 | 
					     (list
 | 
				
			||||||
       #:phases
 | 
					      #:tests? #f ; Not sure how to run them.
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					      #:configure-flags
 | 
				
			||||||
         (add-after 'install 'create-icd
 | 
					      #~(list
 | 
				
			||||||
           ;; Manually install ICD, which simply consists of dumping
 | 
					         (string-append "-DAMD_OPENCL_PATH=" #$(package-source this-package))
 | 
				
			||||||
           ;; the path of the .so into the correct file.
 | 
					         ;; The ROCclr source is needed to build the runtime.
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					         (string-append "-DROCCLR_PATH=" #$rocclr-src)
 | 
				
			||||||
             (let* ((out (assoc-ref outputs "out"))
 | 
					         (string-append "-DROCM_PATH=" #$output))
 | 
				
			||||||
                    (vendors (string-append out "/etc/OpenCL/vendors"))
 | 
					      #:phases
 | 
				
			||||||
                    (sopath (string-append out "/lib/libamdocl64.so")))
 | 
					      #~(modify-phases %standard-phases
 | 
				
			||||||
               (mkdir-p vendors)
 | 
					          (add-after 'install 'create-icd
 | 
				
			||||||
               (with-output-to-file (string-append vendors "/amdocl64.icd")
 | 
					            ;; Manually install ICD, which simply consists of dumping
 | 
				
			||||||
                 (lambda _ (display sopath)))))))))
 | 
					            ;; 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
 | 
					    (inputs
 | 
				
			||||||
     (list mesa
 | 
					     (list glew
 | 
				
			||||||
           rocm-comgr
 | 
					           mesa
 | 
				
			||||||
           rocr-runtime
 | 
					           numactl
 | 
				
			||||||
           rocclr
 | 
					 | 
				
			||||||
           opencl-icd-loader
 | 
					           opencl-icd-loader
 | 
				
			||||||
           glew))
 | 
					           rocm-comgr
 | 
				
			||||||
    (native-inputs `())
 | 
					           rocr-runtime))
 | 
				
			||||||
    (synopsis "ROCm OpenCL Runtime")
 | 
					    (synopsis "ROCm OpenCL Runtime")
 | 
				
			||||||
    (description "OpenCL 2.0 compatible language runtime, supporting offline
 | 
					    (description "OpenCL 2.0 compatible language runtime, supporting offline
 | 
				
			||||||
and in-process/in-memory compilation.")
 | 
					and in-process/in-memory compilation.")
 | 
				
			||||||
| 
						 | 
					@ -282,7 +303,7 @@ and in-process/in-memory compilation.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0pcm308vwkjrwnrk507iya20mkil8j0vx699w9jk2gas4n4jvkcz"))))
 | 
					                "0hdfbvn55h5lk5s8vqlmri5r94vlas8v8yjxwd9d70igslk0kr67"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; No tests.
 | 
					     `(#:tests? #f ; No tests.
 | 
				
			||||||
| 
						 | 
					@ -314,7 +335,7 @@ available to ROCm and show their properties.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0a14kwkjpiyljgzxblh031qibn6xgbxp6m12zdy1pmwb2c44jjmm"))))
 | 
					                "0rnn2ms68mvzpcp31dk304sfqnv352i7vb48k7rw3qjahhrjm48c"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments `(#:tests? #f)) ; No tests.
 | 
					    (arguments `(#:tests? #f)) ; No tests.
 | 
				
			||||||
    (inputs (list rocr-runtime))
 | 
					    (inputs (list rocr-runtime))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue