From 16870c2b51aed1dc3369ef0390bb7e3851a71e80 Mon Sep 17 00:00:00 2001 From: prabhukr Date: Tue, 7 Oct 2025 21:48:08 +0000 Subject: [PATCH 1/3] [UEFI] Add driver path to program paths list UEFI toolchain driver implementation does not set the path where tools such as lld-link can be found. This patch fixes that. --- clang/lib/Driver/ToolChains/UEFI.cpp | 4 +++- clang/test/Driver/fuse-ld.c | 5 +++++ clang/test/Driver/uefi-constructed-args.c | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChains/UEFI.cpp b/clang/lib/Driver/ToolChains/UEFI.cpp index 75adbf149197b..d2be147c7b9f6 100644 --- a/clang/lib/Driver/ToolChains/UEFI.cpp +++ b/clang/lib/Driver/ToolChains/UEFI.cpp @@ -24,7 +24,9 @@ using namespace clang; using namespace llvm::opt; UEFI::UEFI(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) - : ToolChain(D, Triple, Args) {} + : ToolChain(D, Triple, Args) { + getProgramPaths().push_back(getDriver().Dir); +} Tool *UEFI::buildLinker() const { return new tools::uefi::Linker(*this); } diff --git a/clang/test/Driver/fuse-ld.c b/clang/test/Driver/fuse-ld.c index f807434dad107..cdcd5126507db 100644 --- a/clang/test/Driver/fuse-ld.c +++ b/clang/test/Driver/fuse-ld.c @@ -101,3 +101,8 @@ // RUN: | FileCheck %s --check-prefix CHECK-WINDOWS-MSVC-BFD // CHECK-WINDOWS-MSVC-BFD: "{{.*}}ld.bfd" // CHECK-WINDOWS-MSVC-BFD-SAME: "-o" + +// RUN: %clang %s -### -fuse-ld=lld \ +// RUN: --target=x86_64-unknown-uefi 2>&1 \ +// RUN: | FileCheck %s --check-prefix CHECK-UEFI-LLD-LINK +// CHECK-UEFI-LLD-LINK: "{{.*}}lld-link diff --git a/clang/test/Driver/uefi-constructed-args.c b/clang/test/Driver/uefi-constructed-args.c index c06cce351d654..642d90642fae0 100644 --- a/clang/test/Driver/uefi-constructed-args.c +++ b/clang/test/Driver/uefi-constructed-args.c @@ -12,3 +12,8 @@ // CHECK-SAME: "/entry:EfiMain" // CHECK-SAME: "/tsaware:no" // CHECK-SAME: "/debug" + +// RUN: %clang -### --target=x86_64-unknown-uefi -print-search-dirs 2>&1 +// RUN: | FileCheck -check-prefixes=PROGPATH %s +// PROGPATH-DAG: InstalledDir: [[DRIVER_INSTALLED_DIR:.*]] +// PROGPATH: programs: =[[DRIVER_INSTALLED_DIR]] From e888f567db6ac4152c2790a98f266f9133db06f0 Mon Sep 17 00:00:00 2001 From: prabhukr Date: Tue, 7 Oct 2025 22:54:03 +0000 Subject: [PATCH 2/3] fix test failure. --- clang/test/Driver/uefi-constructed-args.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/test/Driver/uefi-constructed-args.c b/clang/test/Driver/uefi-constructed-args.c index 642d90642fae0..0b085cb80d53c 100644 --- a/clang/test/Driver/uefi-constructed-args.c +++ b/clang/test/Driver/uefi-constructed-args.c @@ -13,7 +13,7 @@ // CHECK-SAME: "/tsaware:no" // CHECK-SAME: "/debug" -// RUN: %clang -### --target=x86_64-unknown-uefi -print-search-dirs 2>&1 +// RUN: %clang -### --target=x86_64-unknown-uefi -print-search-dirs 2>&1 \ // RUN: | FileCheck -check-prefixes=PROGPATH %s // PROGPATH-DAG: InstalledDir: [[DRIVER_INSTALLED_DIR:.*]] // PROGPATH: programs: =[[DRIVER_INSTALLED_DIR]] From 7b48b2a20c6508cff6941c5553a40b95bacabc91 Mon Sep 17 00:00:00 2001 From: prabhukr Date: Wed, 8 Oct 2025 16:23:12 +0000 Subject: [PATCH 3/3] Remove unnecessary noop DAG --- clang/test/Driver/uefi-constructed-args.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/test/Driver/uefi-constructed-args.c b/clang/test/Driver/uefi-constructed-args.c index 0b085cb80d53c..b06920f6fd4a3 100644 --- a/clang/test/Driver/uefi-constructed-args.c +++ b/clang/test/Driver/uefi-constructed-args.c @@ -15,5 +15,5 @@ // RUN: %clang -### --target=x86_64-unknown-uefi -print-search-dirs 2>&1 \ // RUN: | FileCheck -check-prefixes=PROGPATH %s -// PROGPATH-DAG: InstalledDir: [[DRIVER_INSTALLED_DIR:.*]] +// PROGPATH: InstalledDir: [[DRIVER_INSTALLED_DIR:.*]] // PROGPATH: programs: =[[DRIVER_INSTALLED_DIR]]