summaryrefslogtreecommitdiff
path: root/dev-libs/rocm-comgr/files/rocm-comgr-5.7.0-lld.patch
blob: ee21b87fb782d523c142630a54fd25dcdc0502ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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;