summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/llvm-roc')
-rw-r--r--sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch39
-rw-r--r--sys-devel/llvm-roc/llvm-roc-4.0.0-r2.ebuild (renamed from sys-devel/llvm-roc/llvm-roc-4.0.0-r1.ebuild)0
2 files changed, 38 insertions, 1 deletions
diff --git a/sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch b/sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch
index 8342299f1139..225adc709666 100644
--- a/sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch
+++ b/sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch
@@ -1,5 +1,7 @@
replace hardcoded hip finder with Gentoo paths.
+It is not necessary to check HIP runtime each time.
+
Author: Benda Xu <heroxbd@gentoo.org>
Index: llvm-project-rocm-4.0.0/clang/lib/Driver/ToolChains/AMDGPU.cpp
@@ -12,7 +14,7 @@ Index: llvm-project-rocm-4.0.0/clang/lib/Driver/ToolChains/AMDGPU.cpp
- // Try to find relative to the compiler binary.
- const char *InstallDir = D.getInstalledDir();
-+ Candidates.emplace_back(D.SysRoot + "/usr/lib/hip", /*StrictChecking=*/true);
++ Candidates.emplace_back(D.SysRoot + "/usr", /*StrictChecking=*/true);
- // Check both a normal Unix prefix position of the clang binary, as well as
- // the Windows-esque layout the ROCm packages use with the host architecture
@@ -45,3 +47,38 @@ Index: llvm-project-rocm-4.0.0/clang/lib/Driver/ToolChains/AMDGPU.cpp
return Candidates;
}
+@@ -273,33 +244,7 @@ void RocmInstallationDetector::detectDev
+ }
+
+ void RocmInstallationDetector::detectHIPRuntime() {
+- auto Candidates = getInstallationPathCandidates();
+- auto &FS = D.getVFS();
+-
+- for (const auto &Candidate : Candidates) {
+- InstallPath = Candidate.Path;
+- if (InstallPath.empty() || !FS.exists(InstallPath))
+- continue;
+-
+- BinPath = InstallPath;
+- llvm::sys::path::append(BinPath, "bin");
+- IncludePath = InstallPath;
+- llvm::sys::path::append(IncludePath, "include");
+- LibPath = InstallPath;
+- llvm::sys::path::append(LibPath, "lib");
+-
+- llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> VersionFile =
+- FS.getBufferForFile(BinPath + "/.hipVersion");
+- if (!VersionFile && Candidate.StrictChecking)
+- continue;
+-
+- if (HIPVersionArg.empty() && VersionFile)
+- ParseHIPVersionFile((*VersionFile)->getBuffer());
+-
+- HasHIPRuntime = true;
+- return;
+- }
+- HasHIPRuntime = false;
++ HasHIPRuntime = true;
+ }
+
+ void RocmInstallationDetector::print(raw_ostream &OS) const {
diff --git a/sys-devel/llvm-roc/llvm-roc-4.0.0-r1.ebuild b/sys-devel/llvm-roc/llvm-roc-4.0.0-r2.ebuild
index 5714ae9b7198..5714ae9b7198 100644
--- a/sys-devel/llvm-roc/llvm-roc-4.0.0-r1.ebuild
+++ b/sys-devel/llvm-roc/llvm-roc-4.0.0-r2.ebuild