From 52b7600626b1e74404528361d83245b6df4e1006 Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Sun, 15 Dec 2024 12:23:08 -0500 Subject: [PATCH 1/9] ROCm-SMI: update to 6.3.0. --- srcpkgs/ROCm-SMI/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/ROCm-SMI/template b/srcpkgs/ROCm-SMI/template index dd6149863c36f1..1a75e628016da9 100644 --- a/srcpkgs/ROCm-SMI/template +++ b/srcpkgs/ROCm-SMI/template @@ -1,6 +1,6 @@ # Template file for 'ROCm-SMI' pkgname=ROCm-SMI -version=6.2.2 +version=6.3.0 revision=1 build_style=cmake short_desc="ROCm System Management Interface" @@ -9,7 +9,7 @@ license="NCSA" homepage="https://github.com/ROCm/rocm_smi_lib" changelog="https://raw.githubusercontent.com/ROCm/rocm_smi_lib/rocm-${version}/CHANGELOG.md" distfiles="https://github.com/ROCm/rocm_smi_lib/archive/refs/tags/rocm-${version}.tar.gz" -checksum=c0701ef131dcd591ef2d4d2f1719af59cbed35bc3eccd3ce9523f55293fa1a37 +checksum=573cfb759f8c7700fdcb0c28d045aed0f2d950692bb66a10bd589b89b8f48d0f ROCm-SMI-devel_package() { short_desc+=" - development files" From bccdb1dff98a6ca0da178cf0429f8f74b0f67ceb Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Tue, 30 Apr 2024 22:26:22 -0400 Subject: [PATCH 2/9] New package: ROCm-cmake-6.3.0 --- srcpkgs/ROCm-cmake/template | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 srcpkgs/ROCm-cmake/template diff --git a/srcpkgs/ROCm-cmake/template b/srcpkgs/ROCm-cmake/template new file mode 100644 index 00000000000000..4be6c9e6aa5c53 --- /dev/null +++ b/srcpkgs/ROCm-cmake/template @@ -0,0 +1,18 @@ +# Template file for 'ROCm-cmake' +pkgname=ROCm-cmake +version=6.3.0 +revision=1 +build_style=cmake +_rocm_prefix=/usr/lib/rocm +configure_args=" -DCMAKE_INSTALL_PREFIX=${_rocm_prefix} " +short_desc="Cmake modules for ROCm" +maintainer="Daniel Martinez " +license="MIT" +homepage="https://github.com/ROCm/rocm-cmake" +changelog="https://raw.githubusercontent.com/ROCm/rocm-cmake/refs/heads/develop/CHANGELOG.md" +distfiles="https://github.com/ROCm/rocm-cmake/archive/refs/tags/rocm-${version}.tar.gz" +checksum=45a1b96f85ae28a7f62895ddc4d6648500b883af250f52f6417bafb31b3cc75d + +post_install() { + vlicense LICENSE +} From db8c0002b69cf3c0f741b74f6ba590d840c63083 Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Tue, 30 Apr 2024 22:37:17 -0400 Subject: [PATCH 3/9] New package: ROCt-Thunk-Interface-6.2.0 --- common/shlibs | 1 + srcpkgs/ROCt-Thunk-Interface-devel | 1 + srcpkgs/ROCt-Thunk-Interface/template | 28 +++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 120000 srcpkgs/ROCt-Thunk-Interface-devel create mode 100644 srcpkgs/ROCt-Thunk-Interface/template diff --git a/common/shlibs b/common/shlibs index befb37d1b1e5ad..6d764af67c636b 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4543,3 +4543,4 @@ libflashrom.so.1 flashrom-1.4.0_1 libpyside6.so.6.7 libpyside6-6.7.2_1 libpyside6qml.so.6.7 libpyside6-6.7.2_1 libshiboken6.so.6.7 libshiboken6-6.7.2_1 +libhsakmt.so.1 ROCt-Thunk-Interface-6.2.0_1 diff --git a/srcpkgs/ROCt-Thunk-Interface-devel b/srcpkgs/ROCt-Thunk-Interface-devel new file mode 120000 index 00000000000000..1773cfdde8226c --- /dev/null +++ b/srcpkgs/ROCt-Thunk-Interface-devel @@ -0,0 +1 @@ +ROCt-Thunk-Interface \ No newline at end of file diff --git a/srcpkgs/ROCt-Thunk-Interface/template b/srcpkgs/ROCt-Thunk-Interface/template new file mode 100644 index 00000000000000..5e5ca079045bcf --- /dev/null +++ b/srcpkgs/ROCt-Thunk-Interface/template @@ -0,0 +1,28 @@ +# Template file for 'ROCt-Thunk-Interface' +pkgname=ROCt-Thunk-Interface +version=6.2.0 +revision=1 +build_style=cmake +configure_args="-DBUILD_SHARED_LIBS=ON" +hostmakedepends="pkg-config ROCm-cmake" +makedepends="libnuma-devel libdrm-devel" +short_desc="ROCm's Thunk Interfaces" +maintainer="Daniel Martinez " +license="MIT" +homepage="https://github.com/ROCm/ROCT-Thunk-Interface" +distfiles="https://github.com/ROCm/ROCT-Thunk-Interface/archive/refs/tags/rocm-${version}.tar.gz" +checksum=73df98ca2be8a887cb76554c23f148ef6556bdbccfac99f34111fa1f87fd7c5d + +post_install() { + vlicense LICENSE.md +} + +ROCt-Thunk-Interface-devel_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc+=" - development files" + pkg_install() { + vmove usr/lib/cmake + vmove usr/include + vmove usr/lib/pkgconfig + } +} From 4406e0032b8cf9053417c957347fe8597c6df2cb Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Fri, 3 May 2024 08:09:10 -0400 Subject: [PATCH 4/9] New package: ROCr-Runtime-6.3.0 --- common/shlibs | 1 + srcpkgs/ROCr-Runtime-devel | 1 + srcpkgs/ROCr-Runtime/patches/musl.patch | 290 ++++++++++++++++++++++++ srcpkgs/ROCr-Runtime/template | 44 ++++ 4 files changed, 336 insertions(+) create mode 120000 srcpkgs/ROCr-Runtime-devel create mode 100644 srcpkgs/ROCr-Runtime/patches/musl.patch create mode 100644 srcpkgs/ROCr-Runtime/template diff --git a/common/shlibs b/common/shlibs index 6d764af67c636b..1abcd35675f5a8 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4544,3 +4544,4 @@ libpyside6.so.6.7 libpyside6-6.7.2_1 libpyside6qml.so.6.7 libpyside6-6.7.2_1 libshiboken6.so.6.7 libshiboken6-6.7.2_1 libhsakmt.so.1 ROCt-Thunk-Interface-6.2.0_1 +libhsa-runtime64.so.1 ROCr-Runtime-6.3.0_1 diff --git a/srcpkgs/ROCr-Runtime-devel b/srcpkgs/ROCr-Runtime-devel new file mode 120000 index 00000000000000..440584e3ef6555 --- /dev/null +++ b/srcpkgs/ROCr-Runtime-devel @@ -0,0 +1 @@ +ROCr-Runtime \ No newline at end of file diff --git a/srcpkgs/ROCr-Runtime/patches/musl.patch b/srcpkgs/ROCr-Runtime/patches/musl.patch new file mode 100644 index 00000000000000..31ecbc48e43183 --- /dev/null +++ b/srcpkgs/ROCr-Runtime/patches/musl.patch @@ -0,0 +1,290 @@ +From 8d4ea25572bf615ef05b17e2038a4b6cf3e7353e Mon Sep 17 00:00:00 2001 +From: "Sv. Lockal" +Date: Sun, 15 Dec 2024 17:50:23 +0000 +Subject: [PATCH 1/3] Fix build issues for musl libc + +This fixes few issues, which allow to build and pass kfdtest on musl-based systems: + +1) result of https://github.com/ROCm/ROCR-Runtime/commit/daad183bf8a3e1153a652b9e8fda06306b7c94ef#diff-681b7d40f71f20573413d5072e1c381fde6c02aed03a56307afcbe82cf3f5e5eR36-R37f - `extern int hsakmt_page_shift` is under `ifndef`, while it should not +``` +/var/tmp/portage/dev-libs/roct-thunk-interface-6.3.0/work/ROCR-Runtime-rocm-6.3.0/libhsakmt/src/openclose.c: In function 'init_page_size': +/var/tmp/portage/dev-libs/roct-thunk-interface-6.3.0/work/ROCR-Runtime-rocm-6.3.0/libhsakmt/src/openclose.c:117:9: error: 'hsakmt_page_size' undeclared (first use in this function); did you mean 'hsakmt_page_shift'? + 117 | hsakmt_page_size = sysconf(_SC_PAGESIZE); + | ^~~~~~~~~~~~~~~~ + | hsakmt_page_shift +``` + +2) warning of `PAGE_SIZE` macro redefinition (defined previously in `limits.h`) + +3) no operator to compare 0 with std::nullptr_t (null is defined as nullptr_t, following https://eel.is/c++draft/support.types.nullptr) +``` +In file included from /var/tmp/portage/dev-libs/roct-thunk-interface-6.3.0/work/ROCR-Runtime-rocm-6.3.0/libhsakmt/tests/kfdtest/src/KFDTestUtil.hpp:27, + from /var/tmp/portage/dev-libs/roct-thunk-interface-6.3.0/work/ROCR-Runtime-rocm-6.3.0/libhsakmt/tests/kfdtest/src/BaseQueue.hpp:28, + from /var/tmp/portage/dev-libs/roct-thunk-interface-6.3.0/work/ROCR-Runtime-rocm-6.3.0/libhsakmt/tests/kfdtest/src/SDMAQueue.hpp:27, + from /var/tmp/portage/dev-libs/roct-thunk-interface-6.3.0/work/ROCR-Runtime-rocm-6.3.0/libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp:28: +/var/tmp/portage/dev-libs/roct-thunk-interface-6.3.0/work/ROCR-Runtime-rocm-6.3.0/libhsakmt/tests/kfdtest/gtest-1.6.0/gtest/gtest.h: In instantiation of 'testing::AssertionResult testing::internal::CmpHelperNE(const char*, const char*, const T1&, const T2&) [with T1 = long unsigned int; T2 = std::nullptr_t]': +/var/tmp/portage/dev-libs/roct-thunk-interface-6.3.0/work/ROCR-Runtime-rocm-6.3.0/libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp:60:29: required from here +19072 | GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2),\ + | ^ +/var/tmp/portage/dev-libs/roct-thunk-interface-6.3.0/work/ROCR-Runtime-rocm-6.3.0/libhsakmt/tests/kfdtest/gtest-1.6.0/gtest/gtest.h:18573:28: error: invalid operands of types 'const long unsigned int' and 'std::nullptr_t' to binary 'operator!=' +18573 | GTEST_IMPL_CMP_HELPER_(NE, !=); + | ^ +/var/tmp/portage/dev-libs/roct-thunk-interface-6.3.0/work/ROCR-Runtime-rocm-6.3.0/libhsakmt/tests/kfdtest/gtest-1.6.0/gtest/gtest.h:18558:12: note: in definition of macro 'GTEST_IMPL_CMP_HELPER_' +18558 | if (val1 op val2) {\ + | ^~ +``` + +Closes: https://github.com/ROCm/ROCR-Runtime/issues/267 +Signed-off-by: Sv. Lockal +--- + libhsakmt/src/libhsakmt.h | 5 +++-- + libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp | 6 +++--- + libhsakmt/tests/kfdtest/src/OSWrapper.hpp | 4 ++-- + 3 files changed, 8 insertions(+), 7 deletions(-) + +diff --git a/libhsakmt/src/libhsakmt.h b/libhsakmt/src/libhsakmt.h +index 63ef17d9..70a9eed4 100644 +--- a/libhsakmt/src/libhsakmt.h ++++ b/libhsakmt/src/libhsakmt.h +@@ -64,14 +64,15 @@ extern HsaVersionInfo hsakmt_kfd_version_info; + do { if ((minor) > hsakmt_kfd_version_info.KernelInterfaceMinorVersion)\ + return HSAKMT_STATUS_NOT_SUPPORTED; } while (0) + ++extern int hsakmt_page_size; ++extern int hsakmt_page_shift; ++ + /* Might be defined in limits.h on platforms where it is constant (used by musl) */ + /* See also: https://pubs.opengroup.org/onlinepubs/7908799/xsh/limits.h.html */ + #ifndef PAGE_SIZE +-extern int hsakmt_page_size; + #define PAGE_SIZE hsakmt_page_size + #endif + #ifndef PAGE_SHIFT +-extern int hsakmt_page_shift; + #define PAGE_SHIFT hsakmt_page_shift + #endif + +diff --git a/libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp b/libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp +index 8f9b857a..47f66e8e 100644 +--- a/libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp ++++ b/libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp +@@ -57,13 +57,13 @@ class AsyncMPSQ { + void PlacePacketOnNode(PacketList &packetList, int node, TSPattern tsp); + + /* Run the packets placed on nodes and return immediately.*/ +- void Submit(void) { ASSERT_NE((HSAuint64)m_queue, NULL); m_queue->SubmitPacket(); } ++ void Submit(void) { ASSERT_NE(m_queue, NULL); m_queue->SubmitPacket(); } + + /* Return only when all packets are consumed. + * If there is any packet issues some IO operations, wait these IO to complete too. + */ + void Wait(void) { +- ASSERT_NE((HSAuint64)m_queue, NULL); ++ ASSERT_NE(m_queue, NULL); + m_queue->Wait4PacketConsumption(m_event, std::max((unsigned int)6000, g_TestTimeOut)); + } + +@@ -244,7 +244,7 @@ HSAuint64 AsyncMPSQ::Report(int indexOfPacket, HSAuint64 &begin, HSAuint64 &end) + if (m_ts_pattern == HEAD_TAIL) + indexOfPacket = 0; + +- EXPECT_NE((HSAuint64)m_ts, NULL) ++ EXPECT_NE(m_ts, NULL) + << " Error " << ++error << ": No timestamp buf!" << std::endl; + /* m_ts_count is equal to packets count + 1, see PlacePacketOnNode(). + * So the max index of a packet is m_ts_count - 2. +diff --git a/libhsakmt/tests/kfdtest/src/OSWrapper.hpp b/libhsakmt/tests/kfdtest/src/OSWrapper.hpp +index 6c3b24f1..ce4bfecb 100644 +--- a/libhsakmt/tests/kfdtest/src/OSWrapper.hpp ++++ b/libhsakmt/tests/kfdtest/src/OSWrapper.hpp +@@ -23,6 +23,8 @@ + + #include + #include ++#include ++#include + #include + + #include "KFDTestFlags.hpp" +@@ -33,10 +35,8 @@ + + #ifndef PAGE_SIZE + #define PAGE_SIZE (1<<12) +-#define PAGE_SHIFT (12) + #endif + #ifndef PAGE_SHIFT +-#define PAGE_SIZE (1<<12) + #define PAGE_SHIFT (12) + #endif + +-- +2.47.1 + + +From 3e0dc82144316eb38f1bf68cb540d240121e2a53 Mon Sep 17 00:00:00 2001 +From: "Sv. Lockal" +Date: Sun, 15 Dec 2024 21:29:13 +0000 +Subject: [PATCH 2/3] Fix musl compilation for hsa-runtime + +This commit applies a similar change, that was reverted in 1cee8656df62e13f83dc2dfda4f13ad5be2e8747, with major issues fixed. + +1) reverted commit checked if `pthread_attr_setaffinity_np` symbol exists, but this check did not work (and effectively disabled better path), because this symbol requires `#define _GNU_SOURCE` (see https://man7.org/linux/man-pages/man3/pthread_attr_setaffinity_np.3.html) + +2) non-reverted part implied that `pthread_rwlockattr_setkind` function replaces `pthread_rwlockattr_setkind_np`, which is incorrect. This function is non-portable, serves as a hint and has no alternatives. + +Signed-off-by: Sv. Lockal +--- + runtime/hsa-ext-finalize/CMakeLists.txt | 12 +++++++++++ + runtime/hsa-runtime/CMakeLists.txt | 12 +++++++++++ + .../hsa-runtime/core/util/lnx/os_linux.cpp | 21 ++++++++++++------- + 3 files changed, 38 insertions(+), 7 deletions(-) + +diff --git a/runtime/hsa-ext-finalize/CMakeLists.txt b/runtime/hsa-ext-finalize/CMakeLists.txt +index 6c6dbdcb..f18b0991 100755 +--- a/runtime/hsa-ext-finalize/CMakeLists.txt ++++ b/runtime/hsa-ext-finalize/CMakeLists.txt +@@ -101,6 +101,18 @@ if( NOT DEFINED OPEN_SOURCE_DIR ) + set ( OPEN_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/.." ) + endif() + ++## Check for _GNU_SOURCE pthread extensions ++set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) ++CHECK_SYMBOL_EXISTS ( "pthread_attr_setaffinity_np" "pthread.h" HAVE_PTHREAD_ATTR_SETAFFINITY_NP ) ++CHECK_SYMBOL_EXISTS ( "pthread_rwlockattr_setkind_np" "pthread.h" HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP ) ++unset(CMAKE_REQUIRED_DEFINITIONS) ++if ( HAVE_PTHREAD_ATTR_SETAFFINITY_NP ) ++ target_compile_definitions(${CORE_RUNTIME_TARGET} PRIVATE HAVE_PTHREAD_ATTR_SETAFFINITY_NP ) ++endif() ++if ( HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP ) ++ target_compile_definitions(${CORE_RUNTIME_TARGET} PRIVATE HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP ) ++endif() ++ + ## ------------------------- Linux Compiler and Linker options ------------------------- + set ( CMAKE_CXX_FLAGS "-std=c++11 " ) + +diff --git a/runtime/hsa-runtime/CMakeLists.txt b/runtime/hsa-runtime/CMakeLists.txt +index fbbcaf03..03a36a50 100644 +--- a/runtime/hsa-runtime/CMakeLists.txt ++++ b/runtime/hsa-runtime/CMakeLists.txt +@@ -109,6 +109,18 @@ if ( HAVE_MEMFD_CREATE ) + target_compile_definitions(${CORE_RUNTIME_TARGET} PRIVATE HAVE_MEMFD_CREATE ) + endif() + ++## Check for _GNU_SOURCE pthread extensions ++set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) ++CHECK_SYMBOL_EXISTS ( "pthread_attr_setaffinity_np" "pthread.h" HAVE_PTHREAD_ATTR_SETAFFINITY_NP ) ++CHECK_SYMBOL_EXISTS ( "pthread_rwlockattr_setkind_np" "pthread.h" HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP ) ++unset(CMAKE_REQUIRED_DEFINITIONS) ++if ( HAVE_PTHREAD_ATTR_SETAFFINITY_NP ) ++ target_compile_definitions(${CORE_RUNTIME_TARGET} PRIVATE HAVE_PTHREAD_ATTR_SETAFFINITY_NP ) ++endif() ++if ( HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP ) ++ target_compile_definitions(${CORE_RUNTIME_TARGET} PRIVATE HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP ) ++endif() ++ + ## Set include directories for ROCr runtime + target_include_directories( ${CORE_RUNTIME_TARGET} + PUBLIC +diff --git a/runtime/hsa-runtime/core/util/lnx/os_linux.cpp b/runtime/hsa-runtime/core/util/lnx/os_linux.cpp +index 84021f15..eba037ab 100644 +--- a/runtime/hsa-runtime/core/util/lnx/os_linux.cpp ++++ b/runtime/hsa-runtime/core/util/lnx/os_linux.cpp +@@ -137,12 +137,14 @@ class os_thread { + for (int i = 0; i < cores; i++) { + CPU_SET_S(i, CPU_ALLOC_SIZE(cores), cpuset); + } ++#ifdef HAVE_PTHREAD_ATTR_SETAFFINITY_NP + err = pthread_attr_setaffinity_np(&attrib, CPU_ALLOC_SIZE(cores), cpuset); + CPU_FREE(cpuset); + if (err != 0) { + fprintf(stderr, "pthread_setaffinity_np failed: %s\n", strerror(err)); + return; + } ++#endif + } + + do { +@@ -166,6 +168,17 @@ class os_thread { + } while (stackSize < 20 * 1024 * 1024); + + args.release(); ++#ifndef HAVE_PTHREAD_ATTR_SETAFFINITY_NP ++ if (cores && cpuset) { ++ err = pthread_setaffinity_np(thread, CPU_ALLOC_SIZE(cores), cpuset); ++ CPU_FREE(cpuset); ++ if (err != 0) { ++ fprintf(stderr, "pthread_setaffinity_np failed: %s\n", strerror(err)); ++ thread = 0; ++ return; ++ } ++ } ++#endif + } + + os_thread(os_thread&& rhs) { +@@ -655,18 +668,12 @@ SharedMutex CreateSharedMutex() { + return nullptr; + } + +-#ifdef __GLIBC__ ++#ifdef HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP + err = pthread_rwlockattr_setkind_np(&attrib, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP); + if (err != 0) { + fprintf(stderr, "Set rw lock attribute failure: %s\n", strerror(err)); + return nullptr; + } +-#else +- err = pthread_rwlockattr_setkind(&attrib, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP); +- if (err != 0) { +- fprintf(stderr, "Set rw lock attribute failure: %s\n", strerror(err)); +- return nullptr; +- } + #endif + + pthread_rwlock_t* lock = new pthread_rwlock_t; +-- +2.47.1 + + +From 0ac899eca61b2cb2c22eb722fdd941e6cec155a1 Mon Sep 17 00:00:00 2001 +From: "Sv. Lockal" +Date: Sun, 15 Dec 2024 22:05:43 +0000 +Subject: [PATCH 3/3] Fix comparisons of pointers with nulls + +The macro NULL sometimes is defined as 0, sometimes as nullptr_t-typed value (following [support.types.nullptr]), so to compare with pointers without warnings nullptr should be used +--- + libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp b/libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp +index 47f66e8e..aa709f3a 100644 +--- a/libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp ++++ b/libhsakmt/tests/kfdtest/src/KFDTestUtilQueue.cpp +@@ -57,13 +57,13 @@ class AsyncMPSQ { + void PlacePacketOnNode(PacketList &packetList, int node, TSPattern tsp); + + /* Run the packets placed on nodes and return immediately.*/ +- void Submit(void) { ASSERT_NE(m_queue, NULL); m_queue->SubmitPacket(); } ++ void Submit(void) { ASSERT_NE(m_queue, nullptr); m_queue->SubmitPacket(); } + + /* Return only when all packets are consumed. + * If there is any packet issues some IO operations, wait these IO to complete too. + */ + void Wait(void) { +- ASSERT_NE(m_queue, NULL); ++ ASSERT_NE(m_queue, nullptr); + m_queue->Wait4PacketConsumption(m_event, std::max((unsigned int)6000, g_TestTimeOut)); + } + +@@ -244,7 +244,7 @@ HSAuint64 AsyncMPSQ::Report(int indexOfPacket, HSAuint64 &begin, HSAuint64 &end) + if (m_ts_pattern == HEAD_TAIL) + indexOfPacket = 0; + +- EXPECT_NE(m_ts, NULL) ++ EXPECT_NE(m_ts, nullptr) + << " Error " << ++error << ": No timestamp buf!" << std::endl; + /* m_ts_count is equal to packets count + 1, see PlacePacketOnNode(). + * So the max index of a packet is m_ts_count - 2. +-- +2.47.1 + diff --git a/srcpkgs/ROCr-Runtime/template b/srcpkgs/ROCr-Runtime/template new file mode 100644 index 00000000000000..639addee1df3ca --- /dev/null +++ b/srcpkgs/ROCr-Runtime/template @@ -0,0 +1,44 @@ +# Template file for 'ROCr-Runtime' +pkgname=ROCr-Runtime +version=6.3.0 +revision=1 +build_style=cmake +_rocm_prefix="usr/lib/rocm" +configure_args=" + -DCMAKE_PREFIX_PATH=${XBPS_CROSS_BASE}/${_rocm_prefix};${XBPS_CROSS_BASE}/${_rocm_prefix}/lib/llvm + -DBUILD_SHARED_LIBS=ON " +hostmakedepends="ROCm-cmake pkg-config llvm-amd-devel xxd" +makedepends="llvm-amd-devel ROCm-Device-Libs ROCt-Thunk-Interface-devel +libnuma-devel elfutils-devel libdrm-devel libffi-devel libxml2-devel ncurses-libtinfo-devel libedit-devel" +short_desc="HSA Runtime API and runtime for ROCm" +maintainer="Daniel Martinez " +license="NCSA" +homepage="https://github.com/ROCm/ROCR-Runtime" +distfiles="https://github.com/ROCm/ROCR-Runtime/archive/refs/tags/rocm-${version}.tar.gz" +checksum=8fd6bcd6a5afd0ae5a59e33b786a525f575183d38c34049c2dab6b9270a1ca3b + +#if [ $XBPS_TARGET_LIBC == "musl" ]; then +# broken="TODO: requires pthread_np extensions not available on musl" +#fi + +post_install() { + # files copied from ROCt-Thunk-Interface-devel + rm ${DESTDIR}/usr/include/hsakmt/hsakmt.h + rm ${DESTDIR}/usr/include/hsakmt/hsakmttypes.h + rm ${DESTDIR}/usr/lib/cmake/hsakmt/hsakmt-config-version.cmake + rm ${DESTDIR}/usr/lib/cmake/hsakmt/hsakmt-config.cmake + rm ${DESTDIR}/usr/lib/cmake/hsakmt/hsakmtTargets-none.cmake + rm ${DESTDIR}/usr/lib/cmake/hsakmt/hsakmtTargets.cmake + rm ${DESTDIR}/usr/lib/pkgconfig/libhsakmt.pc +} + +ROCr-Runtime-devel_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc+=" - development files" + pkg_install() { + vmove usr/lib/cmake + vmove usr/include + vmove usr/lib/pkgconfig + vmove "usr/lib/*.a" + } +} From e4157c7903630df672f92ccc63497cba94191f6e Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Sat, 14 Dec 2024 22:24:43 -0500 Subject: [PATCH 5/9] New package: rocminfo-6.3.0 --- srcpkgs/rocminfo/template | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 srcpkgs/rocminfo/template diff --git a/srcpkgs/rocminfo/template b/srcpkgs/rocminfo/template new file mode 100644 index 00000000000000..cd9e7e6fb74a25 --- /dev/null +++ b/srcpkgs/rocminfo/template @@ -0,0 +1,25 @@ +# Template file for 'rocminfo' +pkgname=rocminfo +version=6.3.0 +revision=1 +_rocm_prefix=usr/lib/rocm +build_style=cmake +configure_args=" -DROCRTST_BLD_TYPE=Release + -DCMAKE_INSTALL_PREFIX=/${_rocm_prefix} + -DCMAKE_PREFIX_PATH=${XBPS_CROSS_BASE}/${_rocm_prefix}" +makedepends="ROCm-cmake ROCr-Runtime-devel" +short_desc="ROCm Application for Reporting System Info" +maintainer="Daniel Martinez " +license="NCSA" +homepage="https://github.com/ROCm/rocminfo" +distfiles="https://github.com/ROCm/rocminfo/archive/refs/tags/rocm-${version}.tar.gz" +checksum=40e2ef89e135770196022761cb929af93c80c41869082b3ef80e42b7772267d0 + +post_install() { + vlicense License.txt + vmkdir "usr/bin" + for _f in ${DESTDIR}/${_rocm_prefix}/bin/*; do + local _base=$(basename "${_f}") + ln -s "../lib/rocm/bin/${_base}" "${DESTDIR}/usr/bin" + done +} From f70431a29c97432ac1497f77602e44f6a95198d2 Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Sat, 14 Dec 2024 22:28:46 -0500 Subject: [PATCH 6/9] New package: llvm-amd-6.3.0 --- common/shlibs | 1 + srcpkgs/ROCm-Device-Libs | 1 + srcpkgs/comgr | 1 + srcpkgs/hipcc | 1 + srcpkgs/llvm-amd-devel | 1 + srcpkgs/llvm-amd/template | 153 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 158 insertions(+) create mode 120000 srcpkgs/ROCm-Device-Libs create mode 120000 srcpkgs/comgr create mode 120000 srcpkgs/hipcc create mode 120000 srcpkgs/llvm-amd-devel create mode 100644 srcpkgs/llvm-amd/template diff --git a/common/shlibs b/common/shlibs index 1abcd35675f5a8..fe27f62d49c858 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4545,3 +4545,4 @@ libpyside6qml.so.6.7 libpyside6-6.7.2_1 libshiboken6.so.6.7 libshiboken6-6.7.2_1 libhsakmt.so.1 ROCt-Thunk-Interface-6.2.0_1 libhsa-runtime64.so.1 ROCr-Runtime-6.3.0_1 +libamd_comgr.so.2 comgr-6.3.0_1 diff --git a/srcpkgs/ROCm-Device-Libs b/srcpkgs/ROCm-Device-Libs new file mode 120000 index 00000000000000..419bb5dddf5859 --- /dev/null +++ b/srcpkgs/ROCm-Device-Libs @@ -0,0 +1 @@ +llvm-amd \ No newline at end of file diff --git a/srcpkgs/comgr b/srcpkgs/comgr new file mode 120000 index 00000000000000..419bb5dddf5859 --- /dev/null +++ b/srcpkgs/comgr @@ -0,0 +1 @@ +llvm-amd \ No newline at end of file diff --git a/srcpkgs/hipcc b/srcpkgs/hipcc new file mode 120000 index 00000000000000..419bb5dddf5859 --- /dev/null +++ b/srcpkgs/hipcc @@ -0,0 +1 @@ +llvm-amd \ No newline at end of file diff --git a/srcpkgs/llvm-amd-devel b/srcpkgs/llvm-amd-devel new file mode 120000 index 00000000000000..419bb5dddf5859 --- /dev/null +++ b/srcpkgs/llvm-amd-devel @@ -0,0 +1 @@ +llvm-amd \ No newline at end of file diff --git a/srcpkgs/llvm-amd/template b/srcpkgs/llvm-amd/template new file mode 100644 index 00000000000000..5690d7f1206534 --- /dev/null +++ b/srcpkgs/llvm-amd/template @@ -0,0 +1,153 @@ +# Template file for 'llvm-amd' +pkgname=llvm-amd +version=6.3.0 +revision=1 +_rocm_prefix=usr/lib/rocm +_llvm_root="${XBPS_BUILDDIR}/${pkgname}-${version}" +_device_libs="${_llvm_root}/amd/device-libs" +_comgr="${_llvm_root}/amd/comgr" +_hipcc="${_llvm_root}/amd/hipcc" +build_wrksrc=llvm +build_style=cmake +configure_args=" -DCMAKE_BUILD_TYPE=Release + -DCMAKE_PREFIX_PATH=${XBPS_CROSS_BASE}/${_rocm_prefix} + -DCMAKE_INSTALL_PREFIX=/${_rocm_prefix}/lib/llvm + -DLLVM_ENABLE_PROJECTS=llvm;clang;lld + -DLLVM_ENABLE_BINDINGS=OFF + -DLLVM_INCLUDE_BENCHMARKS=OFF + -DLLVM_BUILD_LLVM_DYLIB=OFF + -DLLVM_LINK_LLVM_DYLIB=OFF + -DCLANG_LINK_CLANG_DYLIB=OFF + -DLIBCLANG_BUILD_STATIC=ON + -DENABLE_SHARED=OFF + -DBUILD_TESTING=OFF +" +hostmakedepends="pkg-config git python3 ROCm-cmake" +makedepends="libffi-devel ncurses-libtinfo-devel zlib-devel libxml2-devel libzstd-devel libedit-devel" +short_desc="LLVM Project for ROCm" +maintainer="Daniel Martinez " +license="Apache-2.0 AND NCSA AND MIT AND custom:Apache-2.0-with-llvm-exception" +homepage="https://github.com/RadeonOpenCompute/llvm-project" +distfiles="https://github.com/ROCm/llvm-project/archive/refs/tags/rocm-${version}.tar.gz" +checksum=79580508b039ca6c50dfdfd7c4f6fbcf489fe1931037ca51324818851eea0c1c +python_version=3 +nocross="Fixable, but a PITA. aarch64 devices with AMDGPU are not widely available" + +if [ ${XBPS_TARGET_WORDSIZE} != 64 ]; then + broken="error: token \"=\" is not valid in preprocessor expressions" +fi + + +pre_configure() { + case "$XBPS_TARGET_MACHINE" in + i686*) _arch="X86";; + x86_64*) _arch="X86";; + armv5*) _arch="Armv5te";; + armv6*) _arch="Armv6";; + armv7*) _arch="Armv7";; + aarch64*) _arch="AArch64";; + mips*) _arch="Mips";; + ppc*) _arch="PowerPC";; + riscv64*) _arch="RISCV64";; + esac + + local _triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET} + + configure_args+=" -DLLVM_TARGET_ARCH=${_arch}" + configure_args+=" -DLLVM_HOST_TRIPLE=${_triplet}" + configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${_triplet}" + echo $configure_args +} + +post_build() { + + local _prefix_path="${XBPS_CROSS_BASE}/${_rocm_prefix};${_llvm_root}/llvm/build" + + mkdir "${_device_libs}/build" + cd "${_device_libs}/build" + + cmake -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="/${_rocm_prefix}" \ + -DCMAKE_PREFIX_PATH="${_prefix_path}" \ + -G Ninja \ + .. + + ninja ${makejobs} + + _prefix_path+=";${_device_libs}/build" + mkdir "${_comgr}/build" + cd "${_comgr}/build" + + cmake -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="/${_rocm_prefix}" \ + -DCMAKE_PREFIX_PATH="${_prefix_path}" \ + -DBUILD_TESTING=OFF \ + -G Ninja \ + .. + + ninja ${makejobs} + + _prefix_path+=";${_comgr}/build" + mkdir "${_hipcc}/build" + cd "${_hipcc}/build" + + cmake -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="/${_rocm_prefix}" \ + -DCMAKE_PREFIX_PATH="${_prefix_path}" \ + -G Ninja \ + .. + + ninja ${makejobs} +} + +post_install() { + ln -s lib/llvm $DESTDIR/${_rocm_prefix}/ + vlicense LICENSE.TXT +} + +llvm-amd-devel_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc+=" - development files" + pkg_install() { + vmove ${_rocm_prefix}/lib/llvm/lib/cmake + vmove ${_rocm_prefix}/lib/llvm/include + vmove "${_rocm_prefix}/lib/llvm/lib/*.a" + vmove "${_rocm_prefix}/lib/llvm/lib/*.so" + } +} + +comgr_package() { + short_desc="ROCm Code Object Manager" + pkg_install() { + cd "${_comgr}/build" + DESTDIR=${PKGDESTDIR} ninja install + + for _f in ${PKGDESTDIR}/${_rocm_prefix}/lib64/lib*; do + local _base=$(basename "${_f}") + ln -s "rocm/lib64/${_base}" "${PKGDESTDIR}/usr/lib" + done + } +} + +hipcc_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc="ROCm HIP Compiler Driver" + pkg_install() { + cd "${_hipcc}/build" + DESTDIR=${PKGDESTDIR} ninja install + vmkdir "usr/bin" + for _f in ${PKGDESTDIR}/${_rocm_prefix}/bin/*; do + local _base=$(basename "${_f}") + ln -s "../lib/rocm/bin/${_base}" "${PKGDESTDIR}/usr/bin" + done + } +} + +ROCm-Device-Libs_package() { + short_desc="ROCm Device Bitcode Libraries" + pkg_install() { + cd "${_device_libs}/build" + DESTDIR=${PKGDESTDIR} ninja install + ln -s lib/rocm/amdgcn ${PKGDESTDIR}/usr/ + } +} From c59d276541c84631b7fc91bb10e6bb473ad517a9 Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Sat, 14 Dec 2024 23:57:03 -0500 Subject: [PATCH 7/9] New package: python3-robotpy-cppheaderparser-5.1.1 --- .../python3-robotpy-cppheaderparser/template | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 srcpkgs/python3-robotpy-cppheaderparser/template diff --git a/srcpkgs/python3-robotpy-cppheaderparser/template b/srcpkgs/python3-robotpy-cppheaderparser/template new file mode 100644 index 00000000000000..821f8a08277b4b --- /dev/null +++ b/srcpkgs/python3-robotpy-cppheaderparser/template @@ -0,0 +1,17 @@ +# Template file for 'python3-robotpy-cppheaderparser' +pkgname=python3-robotpy-cppheaderparser +version=5.1.1 +revision=1 +build_style=python3-module +hostmakedepends="python3-setuptools" +depends="python3-setuptools python3-ply" +short_desc="CPP Header Parser" +maintainer="Daniel Martinez " +license="BSD-3-Clause" +homepage="https://github.com/robotpy/robotpy-cppheaderparser" +distfiles="$PYPI_SITE/r/robotpy-cppheaderparser/robotpy-cppheaderparser-${version}.tar.gz" +checksum=bd39c58fad279f6742e0ac8a49e7ca6136b46530267aba5ac92701c5965ad0b0 + +post_install() { + vlicense LICENSE.txt +} From a89b22e2069cff5b7190d9f3d8a9224e4f308ec0 Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Sat, 14 Dec 2024 23:58:02 -0500 Subject: [PATCH 8/9] New package: ROCm-clr-6.3.0 --- common/shlibs | 2 + srcpkgs/ROCm-clr/patches/musl.patch | 37 +++++++++++++ .../ROCm-clr/patches/skip-install-hipcc.patch | 27 ++++++++++ srcpkgs/ROCm-clr/template | 54 +++++++++++++++++++ 4 files changed, 120 insertions(+) create mode 100644 srcpkgs/ROCm-clr/patches/musl.patch create mode 100644 srcpkgs/ROCm-clr/patches/skip-install-hipcc.patch create mode 100644 srcpkgs/ROCm-clr/template diff --git a/common/shlibs b/common/shlibs index fe27f62d49c858..1bdb5f1a92e5e3 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4546,3 +4546,5 @@ libshiboken6.so.6.7 libshiboken6-6.7.2_1 libhsakmt.so.1 ROCt-Thunk-Interface-6.2.0_1 libhsa-runtime64.so.1 ROCr-Runtime-6.3.0_1 libamd_comgr.so.2 comgr-6.3.0_1 +libamdhip64.so.6 ROCm-clr-6.3.0_1 +libhiprtc.so.6 ROCm-clr-6.3.0_1 diff --git a/srcpkgs/ROCm-clr/patches/musl.patch b/srcpkgs/ROCm-clr/patches/musl.patch new file mode 100644 index 00000000000000..1cd64d6509a814 --- /dev/null +++ b/srcpkgs/ROCm-clr/patches/musl.patch @@ -0,0 +1,37 @@ +From 3f640c1037b9ee899a61a4a9de941524e3bb738b Mon Sep 17 00:00:00 2001 +From: "Sv. Lockal" +Date: Wed, 22 May 2024 09:36:24 +0000 +Subject: [PATCH] Fix compilation errors with musl libc + +1. According to POSIX specification, basename(3) belongs to libgen.h +2. __cpu_mask is an internal type of glibc's cpu_set implementation, +not part of the POSIX definition, so musl does not support it too. + +Signed-off-by: Sv. Lockal +--- + rocclr/os/os.hpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/rocclr/os/os.hpp b/rocclr/os/os.hpp +index 8509cc362..9b8689207 100644 +--- a/rocclr/os/os.hpp ++++ b/rocclr/os/os.hpp +@@ -29,6 +29,7 @@ + + #if defined(__linux__) + #include ++#include + #endif + + #ifdef _WIN32 +@@ -374,6 +375,10 @@ ALWAYSINLINE address Os::currentStackPtr() { + + #if defined(__linux__) + ++#ifndef __GLIBC__ ++typedef unsigned long int __cpu_mask; ++#endif ++ + inline void Os::ThreadAffinityMask::init() { CPU_ZERO(&mask_); } + + inline void Os::ThreadAffinityMask::set(uint cpu) { CPU_SET(cpu, &mask_); } diff --git a/srcpkgs/ROCm-clr/patches/skip-install-hipcc.patch b/srcpkgs/ROCm-clr/patches/skip-install-hipcc.patch new file mode 100644 index 00000000000000..5cf87de5250f99 --- /dev/null +++ b/srcpkgs/ROCm-clr/patches/skip-install-hipcc.patch @@ -0,0 +1,27 @@ +diff --git a/hipamd/CMakeLists.txt b/hipamd/CMakeLists.txt +index f0c6d7f91..71d4318de 100755 +--- a/hipamd/CMakeLists.txt ++++ b/hipamd/CMakeLists.txt +@@ -393,22 +393,6 @@ endif() + install(FILES ${PROJECT_BINARY_DIR}/include/hip/hip_version.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hip) + +-if (NOT ${HIPCC_BIN_DIR} STREQUAL "") +- file(TO_CMAKE_PATH "${HIPCC_BIN_DIR}" HIPCC_BIN_DIR) +- if(EXISTS ${HIPCC_BIN_DIR}) +- install(PROGRAMS ${HIPCC_BIN_DIR}/${HIPCC_EXECUTABLE} DESTINATION bin) +- install(PROGRAMS ${HIPCC_BIN_DIR}/${HIPCONFIG_EXECUTABLE} DESTINATION bin) +- install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.pl DESTINATION bin) +- install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.pl DESTINATION bin) +- install(PROGRAMS ${HIPCC_BIN_DIR}/hipvars.pm DESTINATION bin) +- +- if(NOT UNIX) +- install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin) +- install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin) +- endif() +- endif() +-endif() +- + ############################# + # hip-config + ############################# diff --git a/srcpkgs/ROCm-clr/template b/srcpkgs/ROCm-clr/template new file mode 100644 index 00000000000000..271618ee873097 --- /dev/null +++ b/srcpkgs/ROCm-clr/template @@ -0,0 +1,54 @@ +# Template file for 'ROCm-clr' +pkgname=ROCm-clr +version=6.3.0 +revision=1 +build_style=cmake +_clr_dir="${XBPS_BUILDDIR}/${pkgname}-${version}" +_hip_dir="${_clr_dir}/HIP" +_rocm_prefix=usr/lib/rocm +configure_args=" + -DCMAKE_INSTALL_PREFIX=/${_rocm_prefix} + -DCMAKE_PREFIX_PATH=${XBPS_CROSS_BASE}/${_rocm_prefix} + -DCLR_BUILD_HIP=ON + -DHIP_ENABLE_ROCPROFILER_REGISTER=OFF + -DHIP_COMMON_DIR=${_hip_dir} + -DHIPCC_BIN_DIR=/${_rocm_prefix}/bin + -DROCM_PATH=/${_rocm_prefix} +" +hostmakedepends="pkg-config xxd git python3-robotpy-cppheaderparser" +makedepends="llvm-amd-devel ROCm-cmake hipcc ROCr-Runtime-devel comgr libnuma-devel + libffi-devel libedit-devel MesaLib-devel ncurses-libtinfo-devel libxml2-devel libzstd-devel" +depends="hipcc" +short_desc="AMD CLR - Compute Language Runtimes" +maintainer="Daniel Martinez " +license="MIT" +homepage="https://github.com/ROCm-Developer-Tools/clr" +distfiles="https://github.com/ROCm-Developer-Tools/clr/archive/refs/tags/rocm-${version}.tar.gz + https://github.com/ROCm-Developer-Tools/HIP/archive/refs/tags/rocm-${version}.tar.gz>HIP-${version}.tar.gz" +checksum="829e61a5c54d0c8325d02b0191c0c8254b5740e63b8bfdb05eec9e03d48f7d2c + d8dba8cdf05463afb7879de2833983cafa6a006ba719815a35b96d9b92fc7fc4" +skip_extraction="HIP-${version}.tar.gz" + +export CLR_DIR="${_clr_dir}" +export HIP_DIR="${_hip_dir}" +export ROCM_PATH="/${_rocm_prefix}" + +post_extract() { + vsrcextract -C ${_hip_dir} HIP-${version}.tar.gz +} + +post_install() { + vlicense ${_clr_dir}/LICENCE + vlicense ${_clr_dir}/hipamd/LICENSE.txt + + vmkdir "usr/bin" + for _f in ${DESTDIR}/${_rocm_prefix}/bin/*; do + local _base=$(basename "${_f}") + ln -s "../lib/rocm/bin/${_base}" "${DESTDIR}/usr/bin" + done + + for _f in ${DESTDIR}/${_rocm_prefix}/lib64/lib*; do + local _base=$(basename "${_f}") + ln -s "rocm/lib64/${_base}" "${DESTDIR}/usr/lib" + done +} From 185679e8e80ebe7e6c1fcad93abd0ba90fb755e3 Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Sun, 15 Dec 2024 11:25:11 -0500 Subject: [PATCH 9/9] New package: ROCm-0.1 --- srcpkgs/ROCm-devel | 1 + srcpkgs/ROCm/template | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 120000 srcpkgs/ROCm-devel create mode 100644 srcpkgs/ROCm/template diff --git a/srcpkgs/ROCm-devel b/srcpkgs/ROCm-devel new file mode 120000 index 00000000000000..040f0f682b5418 --- /dev/null +++ b/srcpkgs/ROCm-devel @@ -0,0 +1 @@ +ROCm \ No newline at end of file diff --git a/srcpkgs/ROCm/template b/srcpkgs/ROCm/template new file mode 100644 index 00000000000000..a3d3212ce66afa --- /dev/null +++ b/srcpkgs/ROCm/template @@ -0,0 +1,19 @@ +# Template file for 'ROCm' +pkgname=ROCm +version=0.1 +revision=1 +build_style=meta +depends="ROCm-clr llvm-amd hipcc ROCm-Device-Libs comgr + rocminfo ROCt-Thunk-Interface ROCr-Runtime ROCm-SMI" +short_desc="ROCm meta package" +maintainer="Daniel Martinez " +license="Public Domain" +homepage="https://rocm.docs.amd.com" + +ROCm-devel_package() { + build_style=meta + depends="${sourcepkg}>=${version}_${revision} + llvm-amd-devel ROCr-Runtime-devel ROCt-Thunk-Interface-devel + ROCm-SMI-devel ROCm-cmake" + short_desc+=" - development files" +}