commit:     7c7eb40abddd7a2f66e1c690a304f1519182348e
Author:     Patrick Lauer <patrick <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  7 14:58:56 2025 +0000
Commit:     Patrick Lauer <patrick <AT> gentoo <DOT> org>
CommitDate: Sat Feb  8 10:07:07 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7c7eb40a

dev-util/hip: add 6.3.2

Signed-off-by: Patrick Lauer <patrick <AT> gentoo.org>

 dev-util/hip/Manifest         |   3 +
 dev-util/hip/hip-6.3.2.ebuild | 255 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 258 insertions(+)

diff --git a/dev-util/hip/Manifest b/dev-util/hip/Manifest
index 414978813b6f..62d21b5ec098 100644
--- a/dev-util/hip/Manifest
+++ b/dev-util/hip/Manifest
@@ -3,9 +3,11 @@ DIST hip-5.7.1.tar.gz 553774 BLAKE2B 
f88c235f688d3a662ec6cb4ad7fe3f82c0015015997
 DIST hip-6.1.1.tar.gz 247192 BLAKE2B 
c40bb483fb61b3037693f456e546046598df7e0dd81a1f1c8d222ab0d9c0752092ce85c8533bd355f883dda5ce1f32f7ff2b2a58cebac50d53e0e7f4d85ca3ae
 SHA512 
3e6162938294a74af51bc2161ada38dc4ba19614e182238f320f2052a9025be6ea413e40f00cb80f4e86696793d6c4431e2417ea798a2330886a3f3e66aedf0d
 DIST hip-6.1.2.tar.gz 247193 BLAKE2B 
e343bdf233752e40cdefa0c2bbd56858bbb471155045ae1adcf651ddff2ed40dc7c7069998a35e9b26324fdf1c972e13e1222406bc52ae2591c23a45611864c5
 SHA512 
771f6494c7ff0ddb7d22193dfdbb3fb9461f6e4be347ecb879bb84c5a01a95fb4c4d3f7a0f039265d5369f6c6a5b66949af7bc91ed220f5e81a5b15ec98a68eb
 DIST hip-6.3.0.tar.gz 1486630 BLAKE2B 
97759fa9cbedf9c87dba85b7e3caf030a6f72429aaf63651bfb9fd208a6f6b03e564f5dd973b94dfc07c6b6aea8296c1f9de6a049565a010c14319dc29f2db7a
 SHA512 
86f7c1c18d3ebd14b4e0f6a5b662017145634dd672142ed9d60b4c2310f356b0d7480748b273f3652a4e2fdeaa6a4185a69cd6d45a462c73028a6741c11f092d
+DIST hip-6.3.2.tar.gz 1486601 BLAKE2B 
033a02c9b4bdcfcd8d23281df74f061e557b0027e95a76431a5b7f56922306a317d36896619bfb5106103cb34ac2369b85fd603c7dfd9e4f2a6cc1537b168f81
 SHA512 
839d19d47326c56ae5f44b39a2f62c215692cf9ddbc292becb3ce5b5d1784d92c98ce8f73bc1a294a2cd7c875568b38c9e2053b3646513516b31a9ab1e91d688
 DIST hip-test-6.1.1.tar.gz 1080605 BLAKE2B 
7eddf648be31365479baa0cd4fd1c060a682a6b44d923cac1c4840c0768782db2fef4e5d97318ef0423be1e5c85b1a0cc6b9d324db789dad28be17f64ab38cae
 SHA512 
0dd679c5b94a59e192bea5789f4448b53ac23c8a03b24a347758b1d70ff692483fd4aaea0b19345eb6ffb82a4492ed21958398b53ae6244a244a660dfa33412f
 DIST hip-test-6.1.2.tar.gz 1080493 BLAKE2B 
ff501ab92c1d3207e330f5e9630e3300aa52f7c2acfae2173a964a2843952db90eea2b4ecf5db1ec6ba65d7764750b9eae3f2a9641d1a3fc71d5172e3a7264a8
 SHA512 
09fa4243c8b73ddbe163ff4c60f0f8f4182f1a37071e9747bf95ecdc219ba3a0407bdf1e2391481f537b223565a38f16e918667194666558a469d94f88a1e236
 DIST hip-test-6.3.0.tar.gz 1446413 BLAKE2B 
c24c352eb16fc54099329edd94a88f59270c92d87b12f86ca4728ae0afdefe6b774bb59927d7c9ec74bd291ef3754a676ad446574abc01170dd7bdc3e5fcb084
 SHA512 
b10a437a1eb7a8caa80234b9f9d21fbd1442e9f5c0d0bcb237c10743f40a40aef2675128c97f9592af256bad08c93fcc3288e4a289a7efcc626302aba77f149f
+DIST hip-test-6.3.2.tar.gz 1446861 BLAKE2B 
c82f8b52807bdae7ea32bd85cccaaea8e01fda440c36ef68603c3cac5d31032b10a21e3828702fec556fa8c262797f08cc2395e042d5db8c6ae601968d47ed8a
 SHA512 
aa162ab73e0ef2b739a8652cdd34eb4fbef130d75ac7aaece030263d820ef0abfb124a10692937da529ac523c386ba2b8241c9a205c820b41e6b7090770653e2
 DIST rocclr-5.1.3.tar.gz 618606 BLAKE2B 
02b7732ddd03c0883bee49c56466cd21c649159f801bfb2537eea6e640c65613eb57b37d942f465a9deb83d65735f51212dde5e4f77ba8239d1a6b7037e1800c
 SHA512 
89fd2eca39ed84a1cf525b2c606089ef39f64c1f997c4880e10722da6de4864110752640e1508db1aeb9d15c48ba4e6fe5dbe7a9e56718853ece42548028b2ca
 DIST rocclr-5.3.3.tar.gz 625944 BLAKE2B 
0cdbc1415a355e1d56628834846aaa8587c9827eeea59f4312b788e868265dcb42197181fd5ef411416da2e11662c7f665f578aa750ab88c3a5405bcc58ee449
 SHA512 
3f85532cffc09c2ca8e7cd1770263d1c1a38633ed2bc5cfe62072e12a6f8f669db400519950718be31f6b77693d372e2ef905f06c7f02e126aa9ff7d2da97924
 DIST rocclr-5.4.3.tar.gz 640557 BLAKE2B 
9ab91bab7ffb06c9c0d1c2ae79533fccc597071dda289ac375e32eb2965c638a7029951d2a49d46eeead9d7d242fe3a0cedb3e444d877af1bbf0e2d801c91e11
 SHA512 
c1d1a2ca08c2d762a221c04d394469aa7aff46086151333b145e0db9a7c7eb3dbbf8b9693e50d816aa9a13c16b4ebacf5ff3d5d8ff3393a8a764728ef5172d3a
@@ -15,6 +17,7 @@ DIST rocm-clr-5.7.1.tar.gz 2008647 BLAKE2B 
3db0760d6f83504e60caf88a2dd5e0bc02c7d
 DIST rocm-clr-6.1.1.tar.gz 2031034 BLAKE2B 
b0485bb015d31986f4988d1db0c029c826856e50b5bb1b58fac2097c14b3966668f1b8d41ec198889e27ac860497a8b3c081ec31d52390d5c9ff5db092bf7cce
 SHA512 
86925e8b9a9e77b06a57daefbc7279887b4ef7c6a79c3717bc2f2d3bf29926281c60063fd17e21c65d7def520d9f579bf88f69051d053a38750ba968f69ca3fc
 DIST rocm-clr-6.1.2.tar.gz 2031283 BLAKE2B 
d51d32a77794ea97f1a3817786c9fd6b482106b665eea6e2c9b4c11e4dce19a3486386eb5ba111554c2d82c30e2a93add7502eed5768caf3fb709fb5fbb2e71b
 SHA512 
e97224451864efe0084c4117f54893c9624a6a9f365a0b4abad08fd9635f008dea742dc589429fbb714e1b8177d06362c0f5a741f6c4a050d0fd4d48da72d54b
 DIST rocm-clr-6.3.0.tar.gz 2093572 BLAKE2B 
14f75f9f5dc4000a2abf28e523659def8cd96112c9c8b95abb634c33433077faa3ddab3fbe659e0ed2e1f309f63a93b7eb03fa6f246b4cea06ca8c512c13308a
 SHA512 
f005baaf2a8f63946811db990e2d373906b31a4085a51427d407c9e4c1d877a14aeb713190a285953cadb960b5517570941c60e2f998adb2b1f9833f1d2f5925
+DIST rocm-clr-6.3.2.tar.gz 2095677 BLAKE2B 
2f1122a2058f8ba358fe48a46473f23c46a5413fef16515f103c21a8ae13bb76522fbe587cb9c9e6e3dd06f968402b6a881391823c80381c0c41072597c845ac
 SHA512 
5bade294dc6fc60bf459bfd7124c354f2b0079167d3c8776a9e3d6d8320bb9b1a2a0770a466987e164994293024bf47de158ba207f077968dfccb7bf20fb884b
 DIST rocm-hip-5.1.3.tar.gz 967696 BLAKE2B 
15cb52b5934b84acf515fe9c83b7c8982e00a23e20af933bdd2c4bc5b56fd42b08c8a08e840c85d2e0a8386d5a0e9c110504f68499989de1aaad00e9a5efcf43
 SHA512 
6b6fd6c12d73788df1711b12326b97fc7a184f319e0db114947b7967b75f2ee131f81e42e43a4981456b507221a6013133731120409f90214e13304299ccbc24
 DIST rocm-hip-5.3.3.tar.gz 1151858 BLAKE2B 
5f460b2078c850b3eb4414fcec4a6f951a3b282aa9828f77ba5d5adfdc0ee8d2e62c856e112a154c340daaf7dad49f4871412edd7b38f7fae2e6b17840ee144b
 SHA512 
e747cc10e78cd09009cac762f0e060be13f3447af7ec2a4a2889cbdc09cd76ecb1b5b58c89f09a3b45a8296c2c71e1c55baf113e58a5a12434af3de7168b8d87
 DIST rocm-hip-5.4.3.tar.gz 1195173 BLAKE2B 
7452ee7a874bc4703b0d3aaaf9fa2a51e223d5650c65c34982a9981dbe14e8ec70c93d7e70c5ad36a8d02c3d2214fa6a393e20502a01418fb3320d8cfe363feb
 SHA512 
1f4100e114576dcbad83aae453e21ab85cf25bd8a6ada380bb11cfc30e5f92ba903055b7257a099321a84b65adb444dd52b8258e82567f4bc882e65d89369b43

diff --git a/dev-util/hip/hip-6.3.2.ebuild b/dev-util/hip/hip-6.3.2.ebuild
new file mode 100644
index 000000000000..de84397fe9fc
--- /dev/null
+++ b/dev-util/hip/hip-6.3.2.ebuild
@@ -0,0 +1,255 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOCS_BUILDER="doxygen"
+DOCS_DEPEND="media-gfx/graphviz"
+ROCM_SKIP_GLOBALS=1
+
+LLVM_COMPAT=( 19 )
+
+inherit cmake docs flag-o-matic llvm-r1 rocm
+
+TEST_PV=${PV}
+
+DESCRIPTION="C++ Heterogeneous-Compute Interface for Portability"
+HOMEPAGE="https://github.com/ROCm/clr";
+SRC_URI="
+       https://github.com/ROCm/clr/archive/refs/tags/rocm-${PV}.tar.gz -> 
rocm-clr-${PV}.tar.gz
+       https://github.com/ROCm/HIP/archive/refs/tags/rocm-${PV}.tar.gz -> 
hip-${PV}.tar.gz
+       test? (
+               
https://github.com/ROCm/hip-tests/archive/refs/tags/rocm-${TEST_PV}.tar.gz -> 
hip-test-${TEST_PV}.tar.gz
+       )
+"
+S="${WORKDIR}/clr-rocm-${PV}/"
+TEST_S="${WORKDIR}/hip-tests-rocm-${TEST_PV}/catch"
+HIP_S="${WORKDIR}/HIP-rocm-${PV}"
+
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+
+IUSE="debug +hip opencl test video_cards_amdgpu video_cards_nvidia"
+
+# some tests are broken
+RESTRICT="test"
+
+REQUIRED_USE="
+       || ( hip opencl )
+       ^^ ( video_cards_amdgpu video_cards_nvidia )
+"
+
+DEPEND="
+       video_cards_amdgpu? (
+               dev-util/rocminfo:${SLOT}
+               dev-libs/rocm-comgr:${SLOT}
+               dev-libs/rocr-runtime:${SLOT}
+       )
+       video_cards_nvidia? (
+               dev-libs/hipother:${SLOT}
+       )
+       x11-base/xorg-proto
+       virtual/opengl
+"
+BDEPEND="
+       video_cards_amdgpu? (
+               dev-util/hipcc:${SLOT}[${LLVM_USEDEP}]
+       )
+       test? (
+               media-libs/freeglut
+       )
+"
+RDEPEND="${DEPEND}
+       opencl? (
+               !dev-libs/opencl-icd-loader
+               !dev-libs/rocm-opencl-runtime
+               !dev-util/clinfo
+               !dev-util/opencl-headers
+       )
+       video_cards_amdgpu? (
+               dev-util/hipcc:${SLOT}[${LLVM_USEDEP}]
+               dev-libs/rocm-device-libs:${SLOT}
+               dev-libs/roct-thunk-interface:${SLOT}
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-5.7.1-no_asan_doc.patch"
+       "${FILESDIR}/${PN}-6.3.0-install.patch"
+       "${FILESDIR}/${PN}-6.1.1-fix-musl.patch"
+       "${FILESDIR}/${PN}-6.2.4-libcxx.patch"
+       "${FILESDIR}/${PN}-6.3.0-no-isystem-usr-include.patch"
+       "${FILESDIR}/${PN}-6.3.0-clr-fix-libcxx.patch"
+)
+
+hip_test_wrapper() {
+       local CMAKE_USE_DIR="${TEST_S}"
+       local BUILD_DIR="${TEST_S}_build"
+       cd "${TEST_S}" || die
+       "${@}"
+}
+
+src_prepare() {
+       # NOTE We do this head stand to safe the patch size.
+       # NOTE Adjust when we drop 5.7.1
+       sed \
+               -e 's:kAmdgcnTargetTriple:AMDGCN_TARGET_TRIPLE:g' \
+               -i hipamd/src/hip_code_object.cpp || die
+       eapply "${FILESDIR}/${PN}-5.7.1-extend-isa-compatibility-check.patch"
+       sed \
+               -e 's:AMDGCN_TARGET_TRIPLE:kAmdgcnTargetTriple:g' \
+               -i hipamd/src/hip_code_object.cpp || die
+
+       pushd "${HIP_S}" >/dev/null || die
+       eapply "${FILESDIR}/${PN}-6.3.0-hip-fix-libcxx.patch"
+
+       # hipamd is itself built by cmake, and should never provide a
+       # FindHIP.cmake module. But the reality is some package relies on it.
+       # Set HIP and HIP Clang paths directly, don't search using heuristics
+       sed -e "s:# Search for HIP installation:set(HIP_ROOT_DIR 
\"${EPREFIX}/usr\"):" \
+               -e "s:#Set HIP_CLANG_PATH:set(HIP_CLANG_PATH 
\"$(get_llvm_prefix -d)/bin\"):" \
+               -i "cmake/FindHIP.cmake" || die
+       popd >/dev/null || die
+
+       sed -e "s/ -Werror//g" -i "hipamd/src/CMakeLists.txt" || die
+
+       cmake_src_prepare
+
+       if use test; then
+               local PATCHES=(
+                       "${FILESDIR}"/hip-test-6.3.0-hipcc-system-install.patch
+                       
"${FILESDIR}"/hip-test-5.7.1-remove-incompatible-flag.patch
+                       "${FILESDIR}"/hip-test-6.1.1-fix-musl.patch
+               )
+               sed -e "s/-Werror //" -e "s/-Wall -Wextra //" -i 
"${TEST_S}/CMakeLists.txt" || die
+
+               hip_test_wrapper cmake_src_prepare
+       fi
+}
+
+src_configure() {
+       # -Werror=strict-aliasing
+       # https://bugs.gentoo.org/858383
+       # https://github.com/ROCm/clr/issues/64
+       #
+       # Do not trust it for LTO either
+       append-flags -fno-strict-aliasing
+       filter-lto
+
+       use debug && CMAKE_BUILD_TYPE="Debug"
+
+       # Fix ld.lld linker error: https://github.com/ROCm/HIP/issues/3382
+       # See also: https://github.com/gentoo/gentoo/pull/29097
+       append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+
+       local mycmakeargs=(
+               -DCMAKE_PREFIX_PATH="$(get_llvm_prefix)"
+               -DCMAKE_SKIP_RPATH=ON
+               -D__HIP_ENABLE_PCH=OFF
+
+               -DCLR_BUILD_HIP="$(usex hip)"
+               -DCLR_BUILD_OCL="$(usex opencl)"
+
+               -DHIP_COMMON_DIR="${HIP_S}"
+               -DHIP_ENABLE_ROCPROFILER_REGISTER=OFF
+               -DHIPCC_BIN_DIR="${EPREFIX}/usr/bin"
+               -DROCM_PATH="${EPREFIX}/usr"
+               -DUSE_PROF_API=OFF
+               -DFILE_REORG_BACKWARD_COMPATIBILITY=OFF
+
+               -DOpenGL_GL_PREFERENCE="GLVND"
+               -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
+       )
+
+       if use video_cards_amdgpu; then
+               mycmakeargs+=(
+                       -DHIP_PLATFORM="amd"
+               )
+       elif use video_cards_nvidia; then
+               mycmakeargs+=(
+                       -DHIPNV_DIR="${EPREFIX}/usr"
+                       -DHIP_PLATFORM="nvidia"
+               )
+       fi
+
+       cmake_src_configure
+
+       if use test; then
+               local mycmakeargs=(
+                       
-DCMAKE_MODULE_PATH="${TEST_S}/external/Catch2/cmake/Catch2"
+                       -DROCM_PATH="${EPREFIX}/usr"
+                       -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON
+                       -Wno-dev
+
+                       # 1) Use custom build of hipamd instead of system one
+                       # 2) Build fails with libc++: 
https://github.com/llvm/llvm-project/issues/119076
+                       -DCMAKE_CXX_FLAGS="-I${BUILD_DIR}/hipamd/include 
-stdlib=libstdc++"
+                       -DCMAKE_EXE_LINKER_FLAGS="-L${BUILD_DIR}/hipamd/lib"
+               )
+               if use video_cards_amdgpu; then
+                       mycmakeargs+=(
+                               -DHIP_PLATFORM="amd"
+                       )
+               elif use video_cards_nvidia; then
+                       mycmakeargs+=(
+                               -DHIP_PLATFORM="nvidia"
+                       )
+               fi
+               hip_test_wrapper cmake_src_configure
+       fi
+}
+
+src_compile() {
+       cmake_src_compile
+
+       if use test; then
+               hip_test_wrapper cmake_src_compile build_tests
+       fi
+}
+
+src_test() {
+       check_amdgpu
+       export LD_LIBRARY_PATH="${BUILD_DIR}/hipamd/lib"
+
+       # TODO: research how to test Vulkan-related features.
+       local CMAKE_SKIP_TESTS=(
+               Unit_hipExternalMemoryGetMappedBuffer_Vulkan_Positive_Read_Write
+               Unit_hipExternalMemoryGetMappedBuffer_Vulkan_Negative_Parameters
+               Unit_hipImportExternalMemory_Vulkan_Negative_Parameters
+               
Unit_hipWaitExternalSemaphoresAsync_Vulkan_Positive_Binary_Semaphore
+               
Unit_hipWaitExternalSemaphoresAsync_Vulkan_Positive_Multiple_Semaphores
+               Unit_hipWaitExternalSemaphoresAsync_Vulkan_Negative_Parameters
+               
Unit_hipSignalExternalSemaphoresAsync_Vulkan_Positive_Binary_Semaphore
+               
Unit_hipSignalExternalSemaphoresAsync_Vulkan_Positive_Multiple_Semaphores
+               Unit_hipSignalExternalSemaphoresAsync_Vulkan_Negative_Parameters
+               Unit_hipImportExternalSemaphore_Vulkan_Negative_Parameters
+               Unit_hipDestroyExternalSemaphore_Vulkan_Negative_Parameters
+       )
+
+       MAKEOPTS="-j1" hip_test_wrapper cmake_src_test
+}
+
+src_install() {
+       cmake_src_install
+
+       # add version file that is required by some libraries
+       mkdir "${ED}"/usr/include/rocm-core || die
+       cat <<-EOF > "${ED}"/usr/include/rocm-core/rocm_version.h || die
+               #pragma once
+               #define ROCM_VERSION_MAJOR $(ver_cut 1)
+               #define ROCM_VERSION_MINOR $(ver_cut 2)
+               #define ROCM_VERSION_PATCH $(ver_cut 3)
+               #define ROCM_BUILD_INFO "$(ver_cut 1-3).0-9999-unknown"
+       EOF
+
+       dosym -r /usr/include/rocm-core/rocm_version.h 
/usr/include/rocm_version.h
+
+       if use video_cards_nvidia; then
+               newenvd - 99hipconfig <<-EOF
+                       HIP_PLATFORM="nvidia"
+                       HIP_RUNTIME="cuda"
+                       CUDA_PATH="${EPREFIX}/opt/cuda"
+               EOF
+       fi
+}

Reply via email to