[clang] [UEFI] Add driver path to program paths list (PR #162387)
Prabhu Rajasekaran via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 8 09:23:39 PDT 2025
https://github.com/Prabhuk updated https://github.com/llvm/llvm-project/pull/162387
>From 16870c2b51aed1dc3369ef0390bb7e3851a71e80 Mon Sep 17 00:00:00 2001
From: prabhukr <prabhukr at google.com>
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 <prabhukr at google.com>
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 <prabhukr at google.com>
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]]
More information about the cfe-commits
mailing list