[clang] [Hexagon][Driver] Recognize versioned ld.lld as LLD (PR #228982)

via cfe-commits cfe-commits at lists.llvm.org
Sun Oct 4 23:11:55 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-hexagon

Author: quic-k

<details>
<summary>Changes</summary>

Fixes https://github.com/llvm/llvm-project/issues/227780

---
Full diff: https://github.com/llvm/llvm-project/pull/228982.diff


2 Files Affected:

- (modified) clang/lib/Driver/ToolChains/Hexagon.cpp (+1-1) 
- (modified) clang/test/Driver/hexagon-toolchain-elf.c (+14) 


``````````diff
diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp b/clang/lib/Driver/ToolChains/Hexagon.cpp
index ec2641301909d..66a92ec88dbd3 100644
--- a/clang/lib/Driver/ToolChains/Hexagon.cpp
+++ b/clang/lib/Driver/ToolChains/Hexagon.cpp
@@ -302,7 +302,7 @@ constructHexagonLinkArgs(Compilation &C, const JobAction &JA,
   bool IncDefLibs = !Args.hasArg(options::OPT_nodefaultlibs);
   bool UseLLD = false;
   const char *Exec = Args.MakeArgString(HTC.GetLinkerPath(&UseLLD));
-  UseLLD = UseLLD || llvm::sys::path::filename(Exec).ends_with("ld.lld") ||
+  UseLLD = UseLLD || llvm::sys::path::filename(Exec).starts_with("ld.lld") ||
            llvm::sys::path::stem(Exec).ends_with("ld.lld");
   bool UseShared = IsShared && !IsStatic;
   StringRef CpuVer = toolchains::HexagonToolChain::GetTargetCPUVersion(Args);
diff --git a/clang/test/Driver/hexagon-toolchain-elf.c b/clang/test/Driver/hexagon-toolchain-elf.c
index 2832a8393feb7..6791f003860fd 100644
--- a/clang/test/Driver/hexagon-toolchain-elf.c
+++ b/clang/test/Driver/hexagon-toolchain-elf.c
@@ -704,3 +704,17 @@
 // RUN:   %t.o 2>&1 | FileCheck -check-prefix=CHECK-LTO %s
 // CHECK-LTO: "-plugin-opt=thinlto"
 // CHECK-LTO: "-plugin-opt=-enable-matrix"
+
+// -----------------------------------------------------------------------------
+// Versioned ld.lld is recognized as LLD
+// -----------------------------------------------------------------------------
+// RUN: mkdir -p %t
+// RUN: cp %S/Inputs/hexagon_tree/Tools/bin/ld.lld %t/ld.lld-23
+// RUN: %clang -### --target=hexagon-unknown-elf \
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
+// RUN:   -mcpu=hexagonv60 --ld-path=%t/ld.lld-23 \
+// RUN:   -nostdlib %s 2>&1 \
+// RUN:   | FileCheck -check-prefix=CHECK-VERSIONED-LLD %s
+// CHECK-VERSIONED-LLD: "{{.*}}ld.lld-23"
+// CHECK-VERSIONED-LLD-NOT: "-march=hexagon"
+// CHECK-VERSIONED-LLD-NOT: "-mcpu=hexagonv60"

``````````

</details>


https://github.com/llvm/llvm-project/pull/228982


More information about the cfe-commits mailing list