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
