https://github.com/quic-k updated 
https://github.com/llvm/llvm-project/pull/228982

>From d465619135f194ceef697b91c3f08ac9bdabaa59 Mon Sep 17 00:00:00 2001
From: Kushal Pal <[email protected]>
Date: Mon, 5 Oct 2026 11:38:52 +0530
Subject: [PATCH] [Hexagon][Driver] Recognize versioned ld.lld as LLD

Signed-off-by: Kushal Pal <[email protected]>
---
 clang/lib/Driver/ToolChains/Hexagon.cpp       |  4 ++-
 .../Tools/bin/hexagon-unknown-elf-ld.lld      |  1 +
 .../Inputs/hexagon_tree/Tools/bin/ld.lld-23   |  0
 clang/test/Driver/hexagon-toolchain-elf.c     | 26 +++++++++++++++++++
 4 files changed, 30 insertions(+), 1 deletion(-)
 create mode 120000 
clang/test/Driver/Inputs/hexagon_tree/Tools/bin/hexagon-unknown-elf-ld.lld
 create mode 100755 clang/test/Driver/Inputs/hexagon_tree/Tools/bin/ld.lld-23

diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp 
b/clang/lib/Driver/ToolChains/Hexagon.cpp
index ec2641301909d..9c823a847d6e3 100644
--- a/clang/lib/Driver/ToolChains/Hexagon.cpp
+++ b/clang/lib/Driver/ToolChains/Hexagon.cpp
@@ -302,7 +302,9 @@ 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") ||
+  StringRef LinkerName = llvm::sys::path::filename(Exec);
+  UseLLD = UseLLD || LinkerName.starts_with("ld.lld") ||
+           LinkerName.ends_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/Inputs/hexagon_tree/Tools/bin/hexagon-unknown-elf-ld.lld 
b/clang/test/Driver/Inputs/hexagon_tree/Tools/bin/hexagon-unknown-elf-ld.lld
new file mode 120000
index 0000000000000..9b032ee3b3f1d
--- /dev/null
+++ b/clang/test/Driver/Inputs/hexagon_tree/Tools/bin/hexagon-unknown-elf-ld.lld
@@ -0,0 +1 @@
+ld.lld
\ No newline at end of file
diff --git a/clang/test/Driver/Inputs/hexagon_tree/Tools/bin/ld.lld-23 
b/clang/test/Driver/Inputs/hexagon_tree/Tools/bin/ld.lld-23
new file mode 100755
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/hexagon-toolchain-elf.c 
b/clang/test/Driver/hexagon-toolchain-elf.c
index 2832a8393feb7..ea0ac48a0c028 100644
--- a/clang/test/Driver/hexagon-toolchain-elf.c
+++ b/clang/test/Driver/hexagon-toolchain-elf.c
@@ -704,3 +704,29 @@
 // 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: %clang -### --target=hexagon-unknown-elf \
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
+// RUN:   -mcpu=hexagonv60 \
+// RUN:   --ld-path=%S/Inputs/hexagon_tree/Tools/bin/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"
+
+// 
-----------------------------------------------------------------------------
+// Triple-prefixed ld.lld is recognized as LLD
+// 
-----------------------------------------------------------------------------
+// RUN: %clang -### --target=hexagon-unknown-elf \
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
+// RUN:   -mcpu=hexagonv60 -fuse-ld=gold \
+// RUN:   
--ld-path=%S/Inputs/hexagon_tree/Tools/bin/hexagon-unknown-elf-ld.lld \
+// RUN:   -nostdlib %s 2>&1 \
+// RUN:   | FileCheck -check-prefix=CHECK-TRIPLE-LLD %s
+// CHECK-TRIPLE-LLD: "{{.*}}hexagon-unknown-elf-ld.lld"
+// CHECK-TRIPLE-LLD-NOT: "-march=hexagon"
+// CHECK-TRIPLE-LLD-NOT: "-mcpu=hexagonv60"

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to