diff options
author | msglm <msglm@techchud.xyz> | 2025-06-19 19:25:22 -0500 |
---|---|---|
committer | msglm <msglm@techchud.xyz> | 2025-06-19 19:25:22 -0500 |
commit | d6119d8f49be6149c176f3de34a9e65cd7a20064 (patch) | |
tree | fb397b181178a713009c27dede3783cb7b56b779 /amd/packages/patches/llvm-rocm-6.2.0.patch | |
parent | edb38a355aebe1786447bacdfd5b3550aee5f91e (diff) | |
download | guix-msglm-master.tar.gz guix-msglm-master.tar.bz2 guix-msglm-master.zip |
Diffstat (limited to 'amd/packages/patches/llvm-rocm-6.2.0.patch')
-rw-r--r-- | amd/packages/patches/llvm-rocm-6.2.0.patch | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/amd/packages/patches/llvm-rocm-6.2.0.patch b/amd/packages/patches/llvm-rocm-6.2.0.patch new file mode 100644 index 0000000..5c865e3 --- /dev/null +++ b/amd/packages/patches/llvm-rocm-6.2.0.patch @@ -0,0 +1,77 @@ +Set perl script activation and necessary GUIX variables for HIPCC. +Fix libpath to ensure standard path is not modified or overwritten. +diff --git a/amd/hipcc/bin/hipcc b/amd/hipcc/bin/hipcc +index 8559bb099f1c..4002631b5721 100755 +--- a/amd/hipcc/bin/hipcc ++++ b/amd/hipcc/bin/hipcc +@@ -29,7 +29,7 @@ use File::Spec::Functions 'catfile'; + + # TODO: By default select perl script until change incorporated in HIP build script. + my $USE_PERL_SCRIPT = $ENV{'HIP_USE_PERL_SCRIPTS'}; +-$USE_PERL_SCRIPT //= 0; # use defined-or assignment operator. Use env var, but if not defined default to 1. ++$USE_PERL_SCRIPT //= 1; # use defined-or assignment operator. Use env var, but if not defined default to 1. + + my $isWindows = ($^O eq 'MSWin32' or $^O eq 'msys'); + # escapes args with quotes SWDEV-341955 +diff --git a/amd/hipcc/bin/hipcc.pl b/amd/hipcc/bin/hipcc.pl +index 27839e58fa4e..a5f896df2283 100755 +--- a/amd/hipcc/bin/hipcc.pl ++++ b/amd/hipcc/bin/hipcc.pl +@@ -129,8 +129,10 @@ $HIP_CLANG_PATH = $hipvars::HIP_CLANG_PATH; + $CUDA_PATH = $hipvars::CUDA_PATH; + $HIP_PATH = $hipvars::HIP_PATH; + $ROCM_PATH = $hipvars::ROCM_PATH; ++$ROCMINFO_PATH = $hipvars::ROCMINFO_PATH; + $HIP_VERSION = $hipvars::HIP_VERSION; +-$HIP_ROCCLR_HOME = $hipvars::HIP_ROCCLR_HOME; ++$HIP_ROCCLR_HOME = $hipvars::HIP_ROCCLR_HOME; ++$DEVICE_LIB_PATH = $hipvars::DEVICE_LIB_PATH; + + sub get_normalized_path { + return $doubleQuote . $_[0] . $doubleQuote; +@@ -480,7 +482,7 @@ if($HIP_PLATFORM eq "amd"){ + $targetsStr = $ENV{HCC_AMDGPU_TARGET}; + } elsif (not $isWindows) { + # Else try using rocm_agent_enumerator +- $ROCM_AGENT_ENUM = "${ROCM_PATH}/bin/rocm_agent_enumerator"; ++ $ROCM_AGENT_ENUM = "${ROCMINFO_PATH}/bin/rocm_agent_enumerator"; + $targetsStr = `${ROCM_AGENT_ENUM} -t GPU`; + $targetsStr =~ s/\n/,/g; + } +@@ -606,6 +608,7 @@ if ($needLDFLAGS and not $compileOnly) { + $CMD .= " $HIPLDFLAGS"; + } + $CMD .= " $toolArgs"; ++$CMD .= " --hip-path=${HIP_PATH}"; + + if ($verbose & 0x1) { + print "hipcc-cmd: ", $CMD, "\n"; +diff --git a/amd/hipcc/bin/hipconfig b/amd/hipcc/bin/hipconfig +index f9385bb94149..58a2abf51bde 100755 +--- a/amd/hipcc/bin/hipconfig ++++ b/amd/hipcc/bin/hipconfig +@@ -29,7 +29,7 @@ use File::Spec::Functions 'catfile'; + + #TODO: By default select perl script until change incorporated in HIP build script + my $USE_PERL_SCRIPT = $ENV{'HIP_USE_PERL_SCRIPTS'}; +-$USE_PERL_SCRIPT //= 0; # use defined-or assignment operator. Use env var, but if not defined default to 0. ++$USE_PERL_SCRIPT //= 1; # use defined-or assignment operator. Use env var, but if not defined default to 0. + my $isWindows = ($^O eq 'MSWin32' or $^O eq 'msys'); + my $SCRIPT_DIR=dirname(__FILE__); + if ($USE_PERL_SCRIPT) { +diff --git a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp +index e27d59206e99..29ae8736353b 100644 +--- a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp ++++ b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp +@@ -255,9 +255,9 @@ const char *amdgpu::dlr::getLinkCommandArgs( + } + + // If device debugging turned on, add specially built bc files +- StringRef libpath = Args.MakeArgString(C.getDriver().Dir + "/../" + LibSuffix); ++ StringRef libpath = Args.MakeArgString(C.getDriver().InstalledDir + "/../" + LibSuffix); + std::string lib_debug_perf_path = FindDebugPerfInLibraryPath(LibSuffix); +- if (!lib_debug_perf_path.empty()) ++ if (!lib_debug_perf_path.empty() && LibSuffix != "lib") + libpath = lib_debug_perf_path; + + llvm::SmallVector<std::string, 12> BCLibs; |