https://github.com/dyung updated 
https://github.com/llvm/llvm-project/pull/197154

>From 1ff37d2de78338e1e5a0403aff645ce2c4e2a066 Mon Sep 17 00:00:00 2001
From: Douglas Yung <[email protected]>
Date: Sun, 10 May 2026 10:24:59 -0700
Subject: [PATCH 1/4] Fix test clang/test/Driver/driverkit-path.c when using
 CLANG_RESOURCE_DIR.

---
 clang/test/Driver/driverkit-path.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/test/Driver/driverkit-path.c 
b/clang/test/Driver/driverkit-path.c
index bc96201753165..aa7d7244fab33 100644
--- a/clang/test/Driver/driverkit-path.c
+++ b/clang/test/Driver/driverkit-path.c
@@ -33,7 +33,7 @@ int main() { return 0; }
 //
 // INC: "-isysroot" "[[SDKROOT]]"
 // INC: "-internal-isystem" "[[SDKROOT]]/System/DriverKit/usr/local/include"
-// INC: "-internal-isystem" "{{.+}}/lib{{(64)?}}/clang/{{[^/ ]+}}/include"
+// INC: "-internal-isystem" "{{.+}}/lib{{(64)?}}/clang{{/?[^"]*}}/include"
 // INC: "-internal-externc-isystem" "[[SDKROOT]]/System/DriverKit/usr/include"
 // INC: "-internal-iframework" 
"[[SDKROOT]]/System/DriverKit/System/Library/Frameworks"
 // INC: "-internal-iframework" 
"[[SDKROOT]]/System/DriverKit/System/Library/SubFrameworks"

>From c6446b0eb2f686e7d8cef0ce9c4accd70543b9a2 Mon Sep 17 00:00:00 2001
From: Douglas Yung <[email protected]>
Date: Wed, 13 May 2026 23:06:28 -1000
Subject: [PATCH 2/4] Change to using -print-resource-dir to check for the
 resource directory instead of guessing at it using a regex.

---
 clang/test/Driver/driverkit-path.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/clang/test/Driver/driverkit-path.c 
b/clang/test/Driver/driverkit-path.c
index aa7d7244fab33..5ac5e3a0d4c34 100644
--- a/clang/test/Driver/driverkit-path.c
+++ b/clang/test/Driver/driverkit-path.c
@@ -1,6 +1,10 @@
 // UNSUPPORTED: system-windows
 //   Windows is unsupported because we use the Unix path separator `\`.
 
+// Determine the resource directory used by the compiler so we do not have to 
guess at it
+// RUN: rm -rf %t && mkdir %t
+// RUN: %clang -print-resource-dir | tr -d '\n' > %t/resource-dir
+
 // RUN: %clang %s -target x86_64-apple-driverkit19.0 -mlinker-version=0 \
 // RUN:   -isysroot %S/Inputs/DriverKit19.0.sdk -### 2>&1               \
 // RUN: | FileCheck %s --check-prefix=LD64-OLD
@@ -25,15 +29,15 @@ int main() { return 0; }
 
 
 // RUN: %clang %s -target x86_64-apple-driverkit19.0 -isysroot 
%S/Inputs/DriverKit19.0.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit19.0.sdk --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit19.0.sdk 
-DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
 // RUN: %clang %s -target x86_64-apple-driverkit21.0.1 -isysroot 
%S/Inputs/DriverKit21.0.1.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit21.0.1.sdk 
--check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit21.0.1.sdk 
-DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
 // RUN: %clang %s -target x86_64-apple-driverkit23.0 -isysroot 
%S/Inputs/DriverKit23.0.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit23.0.sdk --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit23.0.sdk 
-DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
 //
 // INC: "-isysroot" "[[SDKROOT]]"
 // INC: "-internal-isystem" "[[SDKROOT]]/System/DriverKit/usr/local/include"
-// INC: "-internal-isystem" "{{.+}}/lib{{(64)?}}/clang{{/?[^"]*}}/include"
+// INC: "-internal-isystem" "[[RESOURCE_DIR]]/include"
 // INC: "-internal-externc-isystem" "[[SDKROOT]]/System/DriverKit/usr/include"
 // INC: "-internal-iframework" 
"[[SDKROOT]]/System/DriverKit/System/Library/Frameworks"
 // INC: "-internal-iframework" 
"[[SDKROOT]]/System/DriverKit/System/Library/SubFrameworks"

>From f46d2f57c2f2f8ab0f7884e24db96a711a75a928 Mon Sep 17 00:00:00 2001
From: Douglas Yung <[email protected]>
Date: Wed, 3 Jun 2026 15:28:40 -0700
Subject: [PATCH 3/4] Move determination of resource directory to lit.cfg.py.

---
 clang/test/Driver/driverkit-path.c | 10 +++-------
 clang/test/lit.cfg.py              | 13 +++++++++++++
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/clang/test/Driver/driverkit-path.c 
b/clang/test/Driver/driverkit-path.c
index 5ac5e3a0d4c34..a2fa06f47ea2e 100644
--- a/clang/test/Driver/driverkit-path.c
+++ b/clang/test/Driver/driverkit-path.c
@@ -1,10 +1,6 @@
 // UNSUPPORTED: system-windows
 //   Windows is unsupported because we use the Unix path separator `\`.
 
-// Determine the resource directory used by the compiler so we do not have to 
guess at it
-// RUN: rm -rf %t && mkdir %t
-// RUN: %clang -print-resource-dir | tr -d '\n' > %t/resource-dir
-
 // RUN: %clang %s -target x86_64-apple-driverkit19.0 -mlinker-version=0 \
 // RUN:   -isysroot %S/Inputs/DriverKit19.0.sdk -### 2>&1               \
 // RUN: | FileCheck %s --check-prefix=LD64-OLD
@@ -29,11 +25,11 @@ int main() { return 0; }
 
 
 // RUN: %clang %s -target x86_64-apple-driverkit19.0 -isysroot 
%S/Inputs/DriverKit19.0.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit19.0.sdk 
-DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit19.0.sdk 
-DRESOURCE_DIR=%clang-resource-dir --check-prefix=INC
 // RUN: %clang %s -target x86_64-apple-driverkit21.0.1 -isysroot 
%S/Inputs/DriverKit21.0.1.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit21.0.1.sdk 
-DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit21.0.1.sdk 
-DRESOURCE_DIR=%clang-resource-dir --check-prefix=INC
 // RUN: %clang %s -target x86_64-apple-driverkit23.0 -isysroot 
%S/Inputs/DriverKit23.0.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit23.0.sdk 
-DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit23.0.sdk 
-DRESOURCE_DIR=%clang-resource-dir --check-prefix=INC
 //
 // INC: "-isysroot" "[[SDKROOT]]"
 // INC: "-internal-isystem" "[[SDKROOT]]/System/DriverKit/usr/local/include"
diff --git a/clang/test/lit.cfg.py b/clang/test/lit.cfg.py
index 4a00769469543..61fd04bf5e1c3 100644
--- a/clang/test/lit.cfg.py
+++ b/clang/test/lit.cfg.py
@@ -200,6 +200,19 @@ def run_clang_repl(args):
 
     return clang_repl_out
 
+# Add clang resource directory as a substitution
+if config.clang:
+    try:
+        clang_exe_cmd = subprocess.Popen(
+            [config.clang, "-print-resource-dir"], stdout=subprocess.PIPE
+        )
+    except OSError:
+        print("could not exec clang")
+
+    clang_resource_dir = clang_exe_cmd.stdout.read().decode("ascii")
+    clang_exe_cmd.wait()
+
+    config.substitutions.append(("%clang-resource-dir", 
clang_resource_dir.strip()))
 
 def have_host_jit_feature_support(feature_name):
     return "true" in run_clang_repl("--host-supports-" + feature_name)

>From ec44bd742579a2e488683a551e3fde6a61164a3d Mon Sep 17 00:00:00 2001
From: Douglas Yung <[email protected]>
Date: Wed, 3 Jun 2026 22:25:09 -0700
Subject: [PATCH 4/4] Move location where clang resource directory is set.

---
 clang/test/lit.cfg.py | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/clang/test/lit.cfg.py b/clang/test/lit.cfg.py
index 61fd04bf5e1c3..bde9ebc72f8e2 100644
--- a/clang/test/lit.cfg.py
+++ b/clang/test/lit.cfg.py
@@ -200,19 +200,6 @@ def run_clang_repl(args):
 
     return clang_repl_out
 
-# Add clang resource directory as a substitution
-if config.clang:
-    try:
-        clang_exe_cmd = subprocess.Popen(
-            [config.clang, "-print-resource-dir"], stdout=subprocess.PIPE
-        )
-    except OSError:
-        print("could not exec clang")
-
-    clang_resource_dir = clang_exe_cmd.stdout.read().decode("ascii")
-    clang_exe_cmd.wait()
-
-    config.substitutions.append(("%clang-resource-dir", 
clang_resource_dir.strip()))
 
 def have_host_jit_feature_support(feature_name):
     return "true" in run_clang_repl("--host-supports-" + feature_name)
@@ -425,6 +412,20 @@ def calculate_arch_features(arch_string):
 if config.enable_threads:
     config.available_features.add("thread_support")
 
+# Add clang resource directory as a substitution
+if config.clang:
+    try:
+        clang_exe_cmd = subprocess.Popen(
+            [config.clang, "-print-resource-dir"], stdout=subprocess.PIPE
+        )
+    except OSError:
+        print("could not exec clang")
+
+    clang_resource_dir = clang_exe_cmd.stdout.read().decode("ascii")
+    clang_exe_cmd.wait()
+
+    config.substitutions.append(("%clang-resource-dir", 
clang_resource_dir.strip()))
+
 # Check if we should allow outputs to console.
 run_console_tests = int(lit_config.params.get("enable_console", "0"))
 if run_console_tests != 0:

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

Reply via email to