summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYiyang Wu <xgreenlandforwyy@gmail.com>2023-10-22 20:56:19 +0800
committerBenda Xu <heroxbd@gentoo.org>2023-11-19 10:18:21 +0800
commit81bb39c7edf4c0b137a980a8b3ec8f817491013d (patch)
tree256c5c1343bc9f675ded9f764d14a47566ed24da /dev-util/hipcc
parentdev-util/hipcc-5.7.1: fix compilation issues (diff)
downloadgentoo-81bb39c7edf4c0b137a980a8b3ec8f817491013d.tar.gz
gentoo-81bb39c7edf4c0b137a980a8b3ec8f817491013d.tar.bz2
gentoo-81bb39c7edf4c0b137a980a8b3ec8f817491013d.zip
dev-util/hipcc: passing --hip-version to clang for proper include
Signed-off-by: Yiyang Wu <xgreenlandforwyy@gmail.com> Signed-off-by: Benda Xu <heroxbd@gentoo.org>
Diffstat (limited to 'dev-util/hipcc')
-rw-r--r--dev-util/hipcc/files/hipcc-5.7.1-hipcc-hip-version.patch42
-rw-r--r--dev-util/hipcc/hipcc-5.7.1-r2.ebuild1
2 files changed, 43 insertions, 0 deletions
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 <cgmb-deb@slerp.xyz>
+Bug: https://github.com/ROCm-Developer-Tools/HIP/pull/2937
+Forwarded: not-needed
+Reviewed-by: Étienne Mollier <emollier@debian.org>
+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() {