commit:     2cf5fac5e9a35809a0f2eb7b4b4ad0a8caa0170a
Author:     Sv. Lockal <lockalsash <AT> gmail <DOT> com>
AuthorDate: Wed Nov  8 21:12:05 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Mar  8 19:21:57 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2cf5fac5

dev-libs/rccl: add 5.7.1

Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-libs/rccl/Manifest                             |  1 +
 .../rccl/files/rccl-5.7.1-remove-chrpath.patch     | 17 +++++
 dev-libs/rccl/rccl-5.7.1.ebuild                    | 78 ++++++++++++++++++++++
 3 files changed, 96 insertions(+)

diff --git a/dev-libs/rccl/Manifest b/dev-libs/rccl/Manifest
index 50be3ed5b7b8..baeaa02c7d4e 100644
--- a/dev-libs/rccl/Manifest
+++ b/dev-libs/rccl/Manifest
@@ -1 +1,2 @@
 DIST rccl-5.1.3.tar.gz 908274 BLAKE2B 
46bff7b6e3d60d5884ccd7e19c54b2f47f90a337a8fdc6dca1a3cfee147e3652e1f912642cc134d4a82bf8daabd9f1391edff139d0517ab1078bd3d9650481d7
 SHA512 
20deb27c7ef3e6b6b73409950ac0d51286b4634f7002ce36a9a02cdd1d5b1f2db51f6decf773af83364c94f58cc96837da25299f5f5494fc15d8559a1b3c7fcc
+DIST rccl-5.7.1.tar.gz 1425561 BLAKE2B 
852c111ad806d5c99f48b3c65c8cf37315c68b969f9544bfa14c1faf1d5557edcc57cdc21705ced6ded4a0288d42b1076e65fb67b3f89b4fa78cfba9d317b23e
 SHA512 
5913b8ff67fa787714713b7d5b571374898be740d56c77db9f04fe7a3e6ca74023fa930a3494d8a6f984ac9e68ee318343835e110049d08700fe773376618af4

diff --git a/dev-libs/rccl/files/rccl-5.7.1-remove-chrpath.patch 
b/dev-libs/rccl/files/rccl-5.7.1-remove-chrpath.patch
new file mode 100644
index 000000000000..a9184f1c7b98
--- /dev/null
+++ b/dev-libs/rccl/files/rccl-5.7.1-remove-chrpath.patch
@@ -0,0 +1,17 @@
+chrpath is not used in rccl 5.7.1
+
+Upstream fix: https://github.com/ROCmSoftwarePlatform/rccl/pull/811
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -7,11 +7,6 @@ if(BUILD_TESTS)
+ 
+   message("Building rccl unit tests (Installed in /test/rccl-UnitTests)")
+ 
+-  find_program(CHRPATH chrpath)
+-  if(NOT CHRPATH)
+-      message(FATAL_ERROR "chrpath is required for rccl-UnitTests. Please 
install (e.g. sudo apt-get install chrpath)")
+-  endif()
+-
+   find_package(hsa-runtime64 PATHS /opt/rocm )
+   if(${hsa-runtime64_FOUND})
+     message("hsa-runtime64 found @  ${hsa-runtime64_DIR} ")

diff --git a/dev-libs/rccl/rccl-5.7.1.ebuild b/dev-libs/rccl/rccl-5.7.1.ebuild
new file mode 100644
index 000000000000..1ebf9619a55b
--- /dev/null
+++ b/dev-libs/rccl/rccl-5.7.1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ROCM_VERSION=${PV}
+
+inherit cmake edo rocm flag-o-matic
+
+DESCRIPTION="ROCm Communication Collectives Library (RCCL)"
+HOMEPAGE="https://github.com/ROCmSoftwarePlatform/rccl";
+SRC_URI="https://github.com/ROCmSoftwarePlatform/rccl/archive/rocm-${PV}.tar.gz
 -> rccl-${PV}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64"
+SLOT="0/$(ver_cut 1-2)"
+IUSE="test"
+
+RDEPEND="
+       =dev-util/hip-5*
+       dev-util/rocm-smi:${SLOT}"
+DEPEND="${RDEPEND}
+       sys-libs/binutils-libs"
+BDEPEND="
+       >=dev-build/cmake-3.22
+       >=dev-build/rocm-cmake-5.0.2-r1
+       dev-util/hipify-clang:${SLOT}
+       test? ( dev-cpp/gtest )"
+
+RESTRICT="!test? ( test )"
+S="${WORKDIR}/rccl-rocm-${PV}"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-5.7.1-remove-chrpath.patch"
+)
+
+src_prepare() {
+       cmake_src_prepare
+
+       # https://reviews.llvm.org/D69582 - clang does not support parallel jobs
+       sed -i 's/-parallel-jobs=[0-9][0-9]//g' CMakeLists.txt || die
+
+       # https://github.com/ROCmSoftwarePlatform/rccl/pull/860 - bad escape
+       sed -i 's/\\%/%/' src/include/msccl/msccl_struct.h || die
+
+       # https://github.com/ROCmSoftwarePlatform/rccl/issues/958 - fix 
AMDGPU_TARGETS
+       sed -i '/set(AMDGPU_TARGETS/s/ FORCE//' CMakeLists.txt || die
+}
+
+src_configure() {
+       addpredict /dev/kfd
+       addpredict /dev/dri/
+
+       # https://github.com/llvm/llvm-project/issues/71711 - fix issue of clang
+       append-ldflags -Wl,-z,noexecstack
+
+       local mycmakeargs=(
+               -DCMAKE_SKIP_RPATH=ON
+               -DAMDGPU_TARGETS="$(get_amdgpu_flags)"
+               -DBUILD_TESTS=$(usex test ON OFF)
+               -DROCM_SYMLINK_LIBS=OFF
+               -Wno-dev
+       )
+
+       CXX=hipcc cmake_src_configure
+}
+
+src_test() {
+       CHECK_AMDGPU
+       LD_LIBRARY_PATH="${BUILD_DIR}" edob test/rccl-UnitTests
+}
+
+src_install() {
+       cmake_src_install
+
+       # remove extra copy of headers
+       rm -r "${ED}"/usr/rccl || die
+}

Reply via email to