dev-libs/rocr-runtime: add 6.3.0, drop 6.2.4

Closes: https://bugs.gentoo.org/940510
Closes: https://bugs.gentoo.org/937528
Closes: https://bugs.gentoo.org/937428
Closes: https://bugs.gentoo.org/935627
Signed-off-by: Sv. Lockal <lockalsash@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sv. Lockal
2024-12-08 13:35:27 +00:00
committed by Sam James
parent e4d636c887
commit 8a94c8570e
8 changed files with 202 additions and 12 deletions

View File

@@ -5,4 +5,4 @@ DIST rocr-runtime-5.5.1.tar.gz 816175 BLAKE2B e588d98cbd0d9a753b950ba676d6cddeed
DIST rocr-runtime-5.7.1.tar.gz 832009 BLAKE2B 67e4a64ee03b1f6edc43923c7ac44113ab58f78b032dc0a01952b2dd5b2ca37404044811effb9c8d83002ac4ea344a5d95ac62f3c66012bff2884ef55285cdb5 SHA512 a6547a104303032244d17b662a3eda48039732c215debb6178c0af8842c01c60f80989793420c101bd554e58332d215205da0c228dfc25538c56499f47dc6832
DIST rocr-runtime-6.1.1.tar.gz 903611 BLAKE2B 175e7267bfd9d70fb805135e765004cf2b43b2d66354f0cef857d417c8dac4ce7638ec1b90a1088324aa5f90ed8354c66b56846115368d68d622a215350d84dd SHA512 5e6e28dee29ef9df9d617f56038b2e52022738d5510833cd8e1738defe1049d0a957db4d9f63bbf55d8efca3a4ea349b95919dd1b6b35b9814ebba575a67af57
DIST rocr-runtime-6.1.2.tar.gz 903633 BLAKE2B 058492c6c37bb80e8cdb29752f3f1404ac88108dcfd5137042e4fdaff521db01d64bd14bdcbed9e53b8984f8bbb22b126f1a798bd064c393b5bcf76c1d3311ca SHA512 2893aff72a5fbf03bfde67ab64fcf00f4e10b5e5b11ff4617e94ae0c019a24a9b80601d8629d4e119e6a4957dc0aaf03d645111063979af60090fe3b232a477e
DIST rocr-runtime-6.2.4.tar.gz 959982 BLAKE2B a4cc3960c7e559c7c1837e009c998784832c861ca59c0cbf9388c8ae081670b4e45c4e5b032dbd17a4c2efe8708a1330c9ff66c814196e29df5c7a6735a6d3e9 SHA512 cdd84ddf2120f494eec282b78d0858970e0603ea096213f25731af5a97f652d058ff93122bb3a0813c45cb87f625af6f33c2c108d8fb5db63d62674b13e40c71
DIST rocr-runtime-6.3.0.tar.gz 2258605 BLAKE2B 53b43a8bc4a327c2138e39db20f5217b2def6866d1b52e48017c41e6c3c8541e6bdce76f5a7669cdffccfb34a4cfa863e56e0ce4058d23c5f38d9d0900903751 SHA512 451e74d88875b8d0a1f21d95c543fd93610d966e69258b50fe4b8796381c58f5ea381384e199e5bcf01a80369a59e5a093d8f318fbe2ed1ca6a97dc915060f7a

View File

@@ -0,0 +1,17 @@
Fix "symbol not defined" when linking with ld.lld >= 17
https://github.com/ROCm/ROCR-Runtime/issues/204
--- a/hsacore.so.def
+++ b/hsacore.so.def
@@ -247,12 +247,6 @@ global:
hsa_amd_vmem_retain_alloc_handle;
hsa_amd_vmem_get_alloc_properties_from_handle;
hsa_amd_agent_set_async_scratch_limit;
- hsa_tools_scratch_event_alloc_start;
- hsa_tools_scratch_event_alloc_end;
- hsa_tools_scratch_event_free_start;
- hsa_tools_scratch_event_free_end;
- hsa_tools_scratch_event_async_reclaim_start;
- hsa_tools_scratch_event_async_reclaim_end;
hsa_ven_amd_pcs_iterate_configuration;
hsa_ven_amd_pcs_create;
hsa_ven_amd_pcs_create_from_id;

View File

@@ -0,0 +1,27 @@
libhsa-amd-aqlprofile64 library is not packaged
Bug: https://github.com/ROCm/ROCm/issues/1781
--- a/core/runtime/amd_gpu_agent.cpp
+++ b/core/runtime/amd_gpu_agent.cpp
@@ -1333,11 +1333,6 @@ hsa_status_t GpuAgent::GetInfo(hsa_agent_info_t attribute, void* value) const {
setFlag(HSA_EXTENSION_AMD_PC_SAMPLING);
}
- if (os::LibHandle lib = os::LoadLib(kAqlProfileLib)) {
- os::CloseLib(lib);
- setFlag(HSA_EXTENSION_AMD_AQLPROFILE);
- }
-
setFlag(HSA_EXTENSION_AMD_PROFILER);
break;
--- a/core/runtime/hsa.cpp
+++ b/core/runtime/hsa.cpp
@@ -490,7 +490,7 @@ hsa_status_t hsa_system_get_major_extension_table(uint16_t extension, uint16_t v
return HSA_STATUS_SUCCESS;
}
- if (extension == HSA_EXTENSION_AMD_AQLPROFILE) {
+ if (0) {
if (version_major != hsa_ven_amd_aqlprofile_VERSION_MAJOR) {
debug_print("aqlprofile API incompatible ver %d, current ver %d\n",
version_major, hsa_ven_amd_aqlprofile_VERSION_MAJOR);

View File

@@ -0,0 +1,11 @@
https://github.com/ROCm/ROCR-Runtime/issues/227
--- a/core/inc/amd_elf_image.hpp
+++ b/core/inc/amd_elf_image.hpp
@@ -47,6 +47,7 @@
#include <sstream>
#include <vector>
#include <memory>
+#include <cstdint>
namespace rocr {
namespace amd {

View File

@@ -0,0 +1,107 @@
--- 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 " )
--- a/runtime/hsa-runtime/CMakeLists.txt
+++ b/runtime/hsa-runtime/CMakeLists.txt
@@ -47,7 +47,7 @@ cmake_minimum_required ( VERSION 3.7 )
## Need an update to CMake 3.12 to remove this hack. See CMake policy change CMP0073.
unset ( hsa-runtime64_LIB_DEPENDS CACHE )
-set(CMAKE_VERBOSE_MAKEFILE ON)
+#_cmake_modify_IGNORE set(CMAKE_VERBOSE_MAKEFILE ON)
## Set core runtime module name and project name.
set ( CORE_RUNTIME_NAME "hsa-runtime64" )
@@ -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
--- 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 {
@@ -165,6 +167,18 @@ class os_thread {
}
} while (stackSize < 20 * 1024 * 1024);
+#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
+
args.release();
}
@@ -655,18 +669,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;

View File

@@ -0,0 +1,20 @@
libhsakmt is a part of dev-libs/roct-thunk-interface
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -96,11 +96,16 @@ if (HSA_DEP_ROCPROFILER_REGISTER)
string(APPEND CPACK_RPM_BINARY_PACKAGE_REQUIRES " rocprofiler-register")
endif()
+if (BUILD_HSAKMT)
add_rocm_subdir(libhsakmt "${THUNK_DEFINITIONS}")
set_target_properties(hsakmt PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/libhsakmt/archive"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/libhsakmt/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/libhsakmt/runtime")
+else()
+ find_package(hsakmt REQUIRED)
+ add_library(hsakmt ALIAS hsakmt::hsakmt)
+endif()
if (BUILD_ROCR)
add_rocm_subdir(runtime/hsa-runtime "${ROCR_DEFINITIONS}")

View File

@@ -33,8 +33,8 @@ IUSE="debug"
COMMON_DEPEND="dev-libs/elfutils
x11-libs/libdrm"
DEPEND="${COMMON_DEPEND}
>=dev-libs/roct-thunk-interface-${PV}
>=dev-libs/rocm-device-libs-${PV}
dev-libs/roct-thunk-interface:${SLOT}
dev-libs/rocm-device-libs:${SLOT}
$(llvm_gen_dep '
llvm-core/clang:${LLVM_SLOT}=
llvm-core/lld:${LLVM_SLOT}=

View File

@@ -3,26 +3,22 @@
EAPI=8
LLVM_COMPAT=( 18 )
LLVM_COMPAT=( 19 )
inherit cmake flag-o-matic llvm-r1
if [[ ${PV} == *9999 ]] ; then
EGIT_REPO_URI="https://github.com/ROCm/ROCR-Runtime/"
inherit git-r3
S="${WORKDIR}/${P}/src"
S="${WORKDIR}/${P}"
else
SRC_URI="https://github.com/ROCm/ROCR-Runtime/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/ROCR-Runtime-rocm-${PV}/src"
S="${WORKDIR}/ROCR-Runtime-rocm-${PV}"
KEYWORDS="~amd64"
fi
DESCRIPTION="Radeon Open Compute Runtime"
HOMEPAGE="https://github.com/ROCm/ROCR-Runtime"
PATCHES=(
"${FILESDIR}/${PN}-4.3.0_no-aqlprofiler.patch"
"${FILESDIR}/${PN}-5.7.1-extend-isa-compatibility-check.patch"
)
LICENSE="MIT"
SLOT="0/$(ver_cut 1-2)"
@@ -31,8 +27,8 @@ IUSE="debug"
COMMON_DEPEND="dev-libs/elfutils
x11-libs/libdrm"
DEPEND="${COMMON_DEPEND}
>=dev-libs/roct-thunk-interface-${PV}
>=dev-libs/rocm-device-libs-${PV}
dev-libs/roct-thunk-interface:${SLOT}
dev-libs/rocm-device-libs:${SLOT}
$(llvm_gen_dep '
llvm-core/clang:${LLVM_SLOT}=
llvm-core/lld:${LLVM_SLOT}=
@@ -42,10 +38,21 @@ RDEPEND="${DEPEND}"
BDEPEND="app-editors/vim-core"
# vim-core is needed for "xxd"
PATCHES=(
"${FILESDIR}/${PN}-6.3.0-use-system-hsakmt.patch"
"${FILESDIR}/${PN}-6.3.0-musl.patch"
)
src_prepare() {
cd "${S}/runtime/hsa-runtime" || die
eapply "${FILESDIR}/${PN}-4.3.0_no-aqlprofiler.patch"
eapply "${FILESDIR}/${PN}-5.7.1-extend-isa-compatibility-check.patch"
eapply "${FILESDIR}/${PN}-6.2.2-gcc15-stdint.patch"
# Gentoo installs "*.bc" to "/usr/lib" instead of a "[path]/bitcode" directory ...
sed -e "s:-O2:--rocm-path=${EPREFIX}/usr/lib/ -O2:" -i image/blit_src/CMakeLists.txt || die
cd "${S}" || die
cmake_src_prepare
}
@@ -56,5 +63,6 @@ src_configure() {
filter-lto
use debug || append-cxxflags "-DNDEBUG"
cmake_src_configure
}