diff options
Diffstat (limited to 'sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch')
-rw-r--r-- | sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch | 39 |
1 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 { |