From 444de646b5ed7eea4c912aa37f1809bb043c117e Mon Sep 17 00:00:00 2001 From: "Sv. Lockal" Date: Sun, 12 Oct 2025 07:07:58 +0000 Subject: [PATCH] dev-libs/rocm-comgr: add 7.0.2 Bug: https://bugs.gentoo.org/964799 Signed-off-by: Sv. Lockal Part-of: https://github.com/gentoo/gentoo/pull/44165 Signed-off-by: Sam James --- dev-libs/rocm-comgr/Manifest | 1 + .../rocm-comgr-7.0.1-llvm-20-compat.patch | 22 +++++ dev-libs/rocm-comgr/rocm-comgr-7.0.2.ebuild | 94 +++++++++++++++++++ 3 files changed, 117 insertions(+) create mode 100644 dev-libs/rocm-comgr/files/rocm-comgr-7.0.1-llvm-20-compat.patch create mode 100644 dev-libs/rocm-comgr/rocm-comgr-7.0.2.ebuild diff --git a/dev-libs/rocm-comgr/Manifest b/dev-libs/rocm-comgr/Manifest index 25ce599d73ad1..c3924faef9ec5 100644 --- a/dev-libs/rocm-comgr/Manifest +++ b/dev-libs/rocm-comgr/Manifest @@ -1,2 +1,3 @@ DIST llvm-project-rocm-6.3.3.tar.gz 206663912 BLAKE2B 939527dbbcd0c4b4785e5cdbd7144149f169120506c2b5b00e84e8208e3877109e24cf58501a1317d1f9dcce0614cf47a0290cb2e0e10aa7b164bcb064c2ffbc SHA512 380d6ca72dd215b1996b14fe9b54f4981bd1d275aae22ed89f4f3efc46ec2988054cc98dcc45e1c678812c2bd3488ed6cf375ca193af4ad272a6cff7f2388872 DIST llvm-project-rocm-6.4.3.tar.gz 218920681 BLAKE2B 85c29c1f66f9d23fa7fb6d98baf60cb08a8507a7b3a4c0a5054d9d4d3bc1fb7de56ddae583e37a36c7a3f17f9e57bd49777deca7560ca8b4882c1eea1db5b421 SHA512 b6b4149c6426793f4497dfd1200079b0caef4d5a6f49c1f3a301d70f5f7b322b850085ff2f89d55df1dfab6d6a97948fe4084d4ec14654ee97cdab26e71a45c0 +DIST llvm-project-rocm-7.0.2.tar.gz 228207703 BLAKE2B 0a46338e43eeb9ee484cf9b79488f38b96983ba0a5736d606b1b1d450b9c7aa214047200c3d6712b8053d742e2f014333b2db28feca7d0c8b6928282604e1f4e SHA512 b7916941711ec062aad518d752d213d2e6c846875956ade650da01fa02df94b2a8501c656c1333bb2febb1d46cc8266dd98fd509c72ac0c9c29321276a919450 diff --git a/dev-libs/rocm-comgr/files/rocm-comgr-7.0.1-llvm-20-compat.patch b/dev-libs/rocm-comgr/files/rocm-comgr-7.0.1-llvm-20-compat.patch new file mode 100644 index 0000000000000..2acd29e54f2d1 --- /dev/null +++ b/dev-libs/rocm-comgr/files/rocm-comgr-7.0.1-llvm-20-compat.patch @@ -0,0 +1,22 @@ +--- a/src/comgr-cache.cpp ++++ b/src/comgr-cache.cpp +@@ -130,7 +130,6 @@ void saveCommandOutput(CachedCommandAdaptor &C, AddStreamFn &AddStream, + + CachedFileStream *CFS = FileOrErr->get(); + serializeCacheEntry(*CFS->OS, *Buffer, CapturedLogS); +- ErrorHandler(CFS->commit(), "when commiting file stream"); + } + + bool readEntryFromCache(CachedCommandAdaptor &C, MemoryBuffer &CachedBuffer, +--- a/src/comgr-cache-bundler-command.cpp ++++ b/src/comgr-cache-bundler-command.cpp +@@ -155,7 +155,8 @@ void UnbundleCommand::addOptionsIdentifier(HashAlgorithm &H) const { + Error UnbundleCommand::addInputIdentifier(HashAlgorithm &H) const { + StringRef InputFilename = Config.InputFileNames.front(); + +- constexpr size_t LargestHeaderSize = CompressedOffloadBundle::V3HeaderSize; ++ constexpr size_t LargestHeaderSize = 4 + sizeof(uint16_t) + sizeof(uint32_t) + sizeof(uint16_t) + ++ sizeof(uint32_t) + sizeof(uint64_t); + + ErrorOr> MaybeInputBuffer = + MemoryBuffer::getFileSlice(InputFilename, LargestHeaderSize, 0); diff --git a/dev-libs/rocm-comgr/rocm-comgr-7.0.2.ebuild b/dev-libs/rocm-comgr/rocm-comgr-7.0.2.ebuild new file mode 100644 index 0000000000000..e428cc3018dc5 --- /dev/null +++ b/dev-libs/rocm-comgr/rocm-comgr-7.0.2.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 20 ) + +inherit cmake llvm-r1 + +MY_P=llvm-project-rocm-${PV} +components=( "amd/comgr" ) + +DESCRIPTION="Radeon Open Compute Code Object Manager" +HOMEPAGE="https://github.com/ROCm/llvm-project/tree/amd-staging/amd/comgr" +SRC_URI="https://github.com/ROCm/llvm-project/archive/rocm-${PV}.tar.gz -> ${MY_P}.tar.gz" +S="${WORKDIR}/${MY_P}/${components[0]}" + +LICENSE="MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +IUSE="test" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/0001-Find-CLANG_RESOURCE_DIR-using-clang-print-resource-d.patch" + "${FILESDIR}/${PN}-6.4.1-extend-isa-compatibility-check.patch" + "${FILESDIR}/${PN}-6.4.1-fix-comgr-default-flags.patch" + "${FILESDIR}/${PN}-6.1.0-dont-add-nogpulib.patch" + "${FILESDIR}/${PN}-7.0.1-llvm-20-compat.patch" +) + +RDEPEND=" + dev-libs/rocm-device-libs:${SLOT} + llvm-runtimes/clang-runtime:= + $(llvm_gen_dep " + llvm-core/clang:\${LLVM_SLOT}= + llvm-core/lld:\${LLVM_SLOT}= + ") + dev-util/hipcc:${SLOT} +" +DEPEND="${RDEPEND}" + +# Circular dependency: to build tests, hip compiler must be functional +BDEPEND="test? ( dev-util/hip:${SLOT} )" + +CMAKE_BUILD_TYPE=Release + +src_unpack() { + if [[ ${PV} == *9999 ]] ; then + git-r3_fetch + git-r3_checkout '' . '' "${components[@]}" + else + archive="${MY_P}.tar.gz" + ebegin "Unpacking from ${archive}" + tar -x -z -o \ + -f "${DISTDIR}/${archive}" \ + "${components[@]/#/${MY_P}/}" || die + eend ${?} + fi +} + +src_prepare() { + sed '/sys::path::append(HIPPath/s,"hip","",' -i src/comgr-env.cpp || die + sed "/return LLVMPath;/s,LLVMPath,llvm::SmallString<128>(\"$(get_llvm_prefix)\")," -i src/comgr-env.cpp || die + + cmake_src_prepare + + # Replace @CLANG_RESOURCE_DIR@ in patches + local CLANG_RESOURCE_DIR="$("$(get_llvm_prefix)"/bin/clang -print-resource-dir)" + sed -e "s,@CLANG_RESOURCE_DIR@,\"${CLANG_RESOURCE_DIR}\"," \ + -e "s/\"lib\"/\"$(get_libdir)\"/" \ + -i src/comgr-compiler.cpp || die +} + +src_configure() { + llvm_prepend_path "${LLVM_SLOT}" + + local mycmakeargs=( + -DCMAKE_STRIP="" # disable stripping defined at lib/comgr/CMakeLists.txt:58 + -DBUILD_TESTING=$(usex test ON OFF) + -DCOMGR_DISABLE_SPIRV=ON # requires ROCm/SPIRV-LLVM-Translator (fork of dev-util/spirv-llvm-translator) + ) + # Prevent CMake from finding systemwide hip, which breaks tests + use test && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_hip=ON ) + cmake_src_configure +} + +src_test() { + local CMAKE_SKIP_TESTS=( + comgr_nested_kernel_test # See https://github.com/ROCm/llvm-project/issues/35 + ) + cmake_src_tesRt +}