diff options
Diffstat (limited to 'dev-libs/rocm-comgr/files/rocm-comgr-5.7.0-lld.patch')
-rw-r--r-- | dev-libs/rocm-comgr/files/rocm-comgr-5.7.0-lld.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/dev-libs/rocm-comgr/files/rocm-comgr-5.7.0-lld.patch b/dev-libs/rocm-comgr/files/rocm-comgr-5.7.0-lld.patch new file mode 100644 index 000000000000..ee21b87fb782 --- /dev/null +++ b/dev-libs/rocm-comgr/files/rocm-comgr-5.7.0-lld.patch @@ -0,0 +1,39 @@ +commit 3f4486f33bdeff6d705431b7a3b6cb5d064cc2b2 +Author: Scott Linder <Scott.Linder@amd.com> +Date: Mon Jun 19 19:24:26 2023 +0000 + + Update to use lld::lldMain introduced in D119049 + + Change-Id: I9dd8de3f599fab14b62f482352ae43874ff87373 + +diff --git a/src/comgr-compiler.cpp b/src/comgr-compiler.cpp +index 30e838c..7b51d3f 100644 +--- a/src/comgr-compiler.cpp ++++ b/src/comgr-compiler.cpp +@@ -85,6 +85,8 @@ + + #include <csignal> + ++LLD_HAS_DRIVER(elf) ++ + using namespace llvm; + using namespace llvm::opt; + using namespace llvm::sys; +@@ -614,13 +616,14 @@ static amd_comgr_status_t linkWithLLD(llvm::ArrayRef<const char *> Args, + llvm::raw_ostream &LogE) { + ArgStringList LLDArgs(llvm::iterator_range<ArrayRef<const char *>::iterator>( + Args.begin(), Args.end())); +- LLDArgs.insert(LLDArgs.begin(), "lld"); ++ LLDArgs.insert(LLDArgs.begin(), "ld.lld"); + LLDArgs.push_back("--threads=1"); + + ArrayRef<const char *> ArgRefs = llvm::ArrayRef(LLDArgs); +- bool LLDRet = lld::elf::link(ArgRefs, LogS, LogE, false, false); ++ lld::Result LLDRet = ++ lld::lldMain(ArgRefs, LogS, LogE, {{lld::Gnu, &lld::elf::link}}); + lld::CommonLinkerContext::destroy(); +- if (!LLDRet) { ++ if (LLDRet.retCode || !LLDRet.canRunAgain) { + return AMD_COMGR_STATUS_ERROR; + } + return AMD_COMGR_STATUS_SUCCESS; |