Author: quic-k Date: 2026-10-25T23:41:00-05:00 New Revision: bb5d0478d2e19d2bbc456abc265e0f579c3733b6
URL: https://github.com/llvm/llvm-project/commit/bb5d0478d2e19d2bbc456abc265e0f579c3733b6 DIFF: https://github.com/llvm/llvm-project/commit/bb5d0478d2e19d2bbc456abc265e0f579c3733b6.diff LOG: [Hexagon][Driver] Recognize versioned ld.lld as LLD (#228982) Fixes https://github.com/llvm/llvm-project/issues/227780 Signed-off-by: Kushal Pal <[email protected]> Added: clang/test/Driver/Inputs/hexagon_tree/Tools/bin/hexagon-unknown-elf-ld.lld clang/test/Driver/Inputs/hexagon_tree/Tools/bin/ld.lld-23 Modified: clang/lib/Driver/ToolChains/Hexagon.cpp clang/test/Driver/hexagon-toolchain-elf.c Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp b/clang/lib/Driver/ToolChains/Hexagon.cpp index ec2641301909d1..9c823a847d6e33 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 00000000000000..9b032ee3b3f1df --- /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 00000000000000..e69de29bb2d1d6 diff --git a/clang/test/Driver/hexagon-toolchain-elf.c b/clang/test/Driver/hexagon-toolchain-elf.c index f3f01fab3e67be..42d12d573978d8 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
