commit:     6992e6ff39664c798459db3f93e048a06095adf6
Author:     Sv. Lockal <lockalsash <AT> gmail <DOT> com>
AuthorDate: Wed Oct 18 18:37:09 2023 +0000
Commit:     Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Sun Nov 19 02:18:15 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6992e6ff

dev-util/hipcc-5.7.1: fix compilation issues

- Restore the patch for adding -fno-stack-protector
- Better handling of clang path using llvm.eclass
- Fix the device lib path parsed to clang
- QA: remove files installed to wrong location

Bug: https://bugs.gentoo.org/890377
Bug: https://github.com/gentoo/gentoo/pull/33400
Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com>
Signed-off-by: Yiyang Wu <xgreenlandforwyy <AT> gmail.com>
Signed-off-by: Benda Xu <heroxbd <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/33845

 .../files/hipcc-5.7.1-fno-stack-protector.patch    | 13 ++++++++++++
 ...hipcc-5.7.1-r1.ebuild => hipcc-5.7.1-r2.ebuild} | 24 +++++++++++++++++++---
 dev-util/hipcc/hipcc-5.7.1.ebuild                  | 21 -------------------
 3 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/dev-util/hipcc/files/hipcc-5.7.1-fno-stack-protector.patch 
b/dev-util/hipcc/files/hipcc-5.7.1-fno-stack-protector.patch
new file mode 100644
index 000000000000..c46420265005
--- /dev/null
+++ b/dev-util/hipcc/files/hipcc-5.7.1-fno-stack-protector.patch
@@ -0,0 +1,13 @@
+Related bug: https://bugs.gentoo.org/890377
+--- a/bin/hipcc.pl
++++ b/bin/hipcc.pl
+@@ -552,6 +552,9 @@ if ($buildDeps and $HIP_PLATFORM eq 'amd') {
+ # pass-through CPP mode.
+ 
+ if ($HIP_PLATFORM eq "amd") {
++    # Append -fno-stack-protector due to stack protection for HIP is not 
supported
++    $HIPCXXFLAGS .= " -fno-stack-protector";
++    $HIPCFLAGS .= " -fno-stack-protector";
+     # Set default optimization level to -O3 for hip-clang.
+     if ($optArg eq "") {
+         $HIPCXXFLAGS .= " -O3";

diff --git a/dev-util/hipcc/hipcc-5.7.1-r1.ebuild 
b/dev-util/hipcc/hipcc-5.7.1-r2.ebuild
similarity index 51%
rename from dev-util/hipcc/hipcc-5.7.1-r1.ebuild
rename to dev-util/hipcc/hipcc-5.7.1-r2.ebuild
index 78f9a80f3561..d711d8956ac0 100644
--- a/dev-util/hipcc/hipcc-5.7.1-r1.ebuild
+++ b/dev-util/hipcc/hipcc-5.7.1-r2.ebuild
@@ -3,7 +3,9 @@
 
 EAPI=8
 
-inherit cmake
+inherit cmake llvm
+
+LLVM_MAX_SLOT=17
 
 DESCRIPTION="Radeon Open Compute hipcc"
 HOMEPAGE="https://github.com/ROCm-Developer-Tools/hipcc";
@@ -20,8 +22,24 @@ S=${WORKDIR}/HIPCC-rocm-${PV}
 
 RDEPEND="!<dev-util/hip-5.7"
 
+PATCHES=(
+       "${FILESDIR}/${PN}-5.7.1-fno-stack-protector.patch"
+)
+
 src_prepare() {
-       # hardcoded paths are wrong
-       sed -i -e 's~$ROCM_PATH/llvm/bin~/usr/lib/llvm/17/bin~' bin/hipvars.pm 
|| die
        cmake_src_prepare
+
+       sed -e "s:\$ROCM_PATH/llvm/bin:$(get_llvm_prefix 
${LLVM_MAX_SLOT})/bin:" \
+               -i bin/hipvars.pm || die
+
+       sed -e 
"s:\$ENV{'DEVICE_LIB_PATH'}:'${EPREFIX}/usr/lib/amdgcn/bitcode':" \
+               -e "s:\$ENV{'HIP_LIB_PATH'}:'${EPREFIX}/usr/$(get_libdir)':" \
+               -e "/HIP.*FLAGS.*isystem.*HIP_INCLUDE_PATH/d" \
+               -i bin/hipcc.pl || die
+}
+
+src_install() {
+       cmake_src_install
+       # rm unwanted copy
+       rm -rf "${ED}/usr/hip" || die
 }

diff --git a/dev-util/hipcc/hipcc-5.7.1.ebuild 
b/dev-util/hipcc/hipcc-5.7.1.ebuild
deleted file mode 100644
index 71fbdc1e5def..000000000000
--- a/dev-util/hipcc/hipcc-5.7.1.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake
-
-DESCRIPTION="Radeon Open Compute hipcc"
-HOMEPAGE="https://github.com/ROCm-Developer-Tools/hipcc";
-
-KEYWORDS="~amd64"
-SRC_URI="https://github.com/ROCm-Developer-Tools/hipcc/archive/refs/tags/rocm-${PV}.tar.gz
 -> hipcc-${PV}.tar.gz"
-
-LICENSE="Apache-2.0 MIT"
-SLOT="0/$(ver_cut 1-2)"
-IUSE="debug test"
-RESTRICT="!test? ( test )"
-
-S=${WORKDIR}/HIPCC-rocm-${PV}
-
-RDEPEND="!<dev-util/hip-5.7"

Reply via email to