commit:     81bb39c7edf4c0b137a980a8b3ec8f817491013d
Author:     Yiyang Wu <xgreenlandforwyy <AT> gmail <DOT> com>
AuthorDate: Sun Oct 22 12:56:19 2023 +0000
Commit:     Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Sun Nov 19 02:18:21 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=81bb39c7

dev-util/hipcc: passing --hip-version to clang for proper include

Signed-off-by: Yiyang Wu <xgreenlandforwyy <AT> gmail.com>
Signed-off-by: Benda Xu <heroxbd <AT> gentoo.org>

 .../files/hipcc-5.7.1-hipcc-hip-version.patch      | 42 ++++++++++++++++++++++
 dev-util/hipcc/hipcc-5.7.1-r2.ebuild               |  1 +
 2 files changed, 43 insertions(+)

diff --git a/dev-util/hipcc/files/hipcc-5.7.1-hipcc-hip-version.patch 
b/dev-util/hipcc/files/hipcc-5.7.1-hipcc-hip-version.patch
new file mode 100644
index 000000000000..fa00d44d912e
--- /dev/null
+++ b/dev-util/hipcc/files/hipcc-5.7.1-hipcc-hip-version.patch
@@ -0,0 +1,42 @@
+Edit from:
+https://salsa.debian.org/rocm-team/rocm-hipamd/-/blob/759b0773bd848ff9471fa8cdecd9ee21010bc29c/debian/patches/0013-hipcc-hip-version.patch
+`--hip-version` is required for correclty including 
__clang_hip_runtime_wrapper.h
+=================================================================================
+Description: enforce --hip-version option within hipcc call.
+ This change is needed since the normal mechanism in ROCm relies on
+ reading a .hipVersion hidden configuration file which has no proper
+ equivalent in a FHS compliant tree, as of ROCm 5.0.
+Author: Cordell Bloor <[email protected]>
+Bug: https://github.com/ROCm-Developer-Tools/HIP/pull/2937
+Forwarded: not-needed
+Reviewed-by: Étienne Mollier <[email protected]>
+Last-Update: 2022-07-04
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: HIP/bin/hipcc.pl
+===================================================================
+--- HIP.orig/bin/hipcc.pl
++++ HIP/bin/hipcc.pl
+@@ -121,6 +121,9 @@ $HIP_PATH       =   $hipvars::HIP_PATH;
+ $ROCM_PATH      =   $hipvars::ROCM_PATH;
+ $HIP_VERSION    =   $hipvars::HIP_VERSION;
+ $HIP_ROCCLR_HOME =   $hipvars::HIP_ROCCLR_HOME;
++$HIP_VERSION_MAJOR = $hipvars::HIP_VERSION_MAJOR;
++$HIP_VERSION_MINOR = $hipvars::HIP_VERSION_MINOR;
++$HIP_VERSION_PATCH = $hipvars::HIP_VERSION_PATCH;
+ 
+ if ($HIP_PLATFORM eq "amd") {
+   $HIP_INCLUDE_PATH = "$HIP_ROCCLR_HOME/include";
+@@ -188,6 +191,12 @@ if ($HIP_PLATFORM eq "amd") {
+         ## Allow __fp16 as function parameter and return type.
+         $HIPCXXFLAGS .= " -Xclang -fallow-half-arguments-and-returns 
-D__HIP_HCC_COMPAT_MODE__=1";
+     }
++
++    # Gentoo: there is no FHS compliant location for .hipVersion where clang 
will still be
++    # able to find it, so .hipVersion has been omitted and the hip version is 
passed explicitly
++    $HIPCXXFLAGS .= " 
--hip-version=$HIP_VERSION_MAJOR.$HIP_VERSION_MINOR.$HIP_VERSION_PATCH";
++    $HIPCFLAGS .= " 
--hip-version=$HIP_VERSION_MAJOR.$HIP_VERSION_MINOR.$HIP_VERSION_PATCH";
++    $HIPLDFLAGS .= " 
--hip-version=$HIP_VERSION_MAJOR.$HIP_VERSION_MINOR.$HIP_VERSION_PATCH";
+ } elsif ($HIP_PLATFORM eq "nvidia") {
+     $CUDA_PATH=$ENV{'CUDA_PATH'} // '/usr/local/cuda';
+     $HIP_INCLUDE_PATH = "$HIP_PATH/include";

diff --git a/dev-util/hipcc/hipcc-5.7.1-r2.ebuild 
b/dev-util/hipcc/hipcc-5.7.1-r2.ebuild
index d711d8956ac0..180354c8673c 100644
--- a/dev-util/hipcc/hipcc-5.7.1-r2.ebuild
+++ b/dev-util/hipcc/hipcc-5.7.1-r2.ebuild
@@ -24,6 +24,7 @@ RDEPEND="!<dev-util/hip-5.7"
 
 PATCHES=(
        "${FILESDIR}/${PN}-5.7.1-fno-stack-protector.patch"
+       "${FILESDIR}/${PN}-5.7.1-hipcc-hip-version.patch"
 )
 
 src_prepare() {

Reply via email to