https://github.com/lenary updated https://github.com/llvm/llvm-project/pull/238147
>From 467096fa01bcb8fb3cd8b8d9e289bf1f3a834b01 Mon Sep 17 00:00:00 2001 From: Sam Elliott <[email protected]> Date: Mon, 2 Nov 2026 15:43:12 -0800 Subject: [PATCH 1/3] [clang][NFC] Test Linux Multilib Resource Dirs This is another follow-up to 78820cb91605693b7d768be4ebc8b66181d3e9c3 to show the behaviour of resource dir resolution after that change. Assisted-by: AI --- .../multilib_linux_tree/resource/include/.keep | 1 + .../debug/libclang_rt.builtins.a | 1 + clang/test/Driver/linux-multilib.yaml | 13 +++++++++++++ 3 files changed, 15 insertions(+) create mode 100644 clang/test/Driver/Inputs/multilib_linux_tree/resource/include/.keep create mode 100644 clang/test/Driver/Inputs/multilib_linux_tree/resource/lib/x86_64-unknown-linux-gnu/debug/libclang_rt.builtins.a diff --git a/clang/test/Driver/Inputs/multilib_linux_tree/resource/include/.keep b/clang/test/Driver/Inputs/multilib_linux_tree/resource/include/.keep new file mode 100644 index 00000000000000..8b137891791fe9 --- /dev/null +++ b/clang/test/Driver/Inputs/multilib_linux_tree/resource/include/.keep @@ -0,0 +1 @@ + diff --git a/clang/test/Driver/Inputs/multilib_linux_tree/resource/lib/x86_64-unknown-linux-gnu/debug/libclang_rt.builtins.a b/clang/test/Driver/Inputs/multilib_linux_tree/resource/lib/x86_64-unknown-linux-gnu/debug/libclang_rt.builtins.a new file mode 100644 index 00000000000000..8b137891791fe9 --- /dev/null +++ b/clang/test/Driver/Inputs/multilib_linux_tree/resource/lib/x86_64-unknown-linux-gnu/debug/libclang_rt.builtins.a @@ -0,0 +1 @@ + diff --git a/clang/test/Driver/linux-multilib.yaml b/clang/test/Driver/linux-multilib.yaml index 888a816214933a..95a9858cce94a7 100644 --- a/clang/test/Driver/linux-multilib.yaml +++ b/clang/test/Driver/linux-multilib.yaml @@ -1,12 +1,25 @@ # Basic selection where -fmultilib-flag=debug selects the debug variant. +# Linux keeps builtin headers in ResourceDir/include, while the selected YAML +# directory selects the target-specific include directory. # RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c %s -### -o /dev/null 2>&1 \ # RUN: --target=x86_64-linux-gnu -fmultilib-flag=debug --sysroot= \ # RUN: -ccc-install-dir %S/Inputs/multilib_linux_tree/usr/bin \ +# RUN: -resource-dir=%S/Inputs/multilib_linux_tree/resource \ # RUN: | FileCheck --check-prefix=CHECK-DEBUG %s # CHECK-DEBUG: "-cc1" "-triple" "x86_64-unknown-linux-gnu" +# CHECK-DEBUG: "-internal-isystem" "{{.*}}/resource/include" # CHECK-DEBUG: "-internal-isystem" "{{[^"]*}}{{[/\\]}}x86_64-unknown-linux-gnu/debug" # CHECK-DEBUG: "-L{{[^"]*}}/debug" +# The selected YAML directory is also appended to Clang's per-target runtime +# directory when resolving compiler-rt libraries. +# RUN: %clang --multi-lib-config=%s -print-libgcc-file-name \ +# RUN: --target=x86_64-linux-gnu -fmultilib-flag=debug \ +# RUN: -resource-dir=%S/Inputs/multilib_linux_tree/resource \ +# RUN: --rtlib=compiler-rt \ +# RUN: | FileCheck --check-prefix=CHECK-RESOURCE-LIB %s +# CHECK-RESOURCE-LIB: {{.*}}/resource/lib/x86_64-unknown-linux-gnu/debug/libclang_rt.builtins.a + # Default behavior where no variant path is prepended. # RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c %s -### -o /dev/null 2>&1 \ # RUN: --target=x86_64-linux-gnu --sysroot= \ >From 94e96c1f56c600fb3d4f5a6dcdf1e888086b0fbb Mon Sep 17 00:00:00 2001 From: Sam Elliott <[email protected]> Date: Mon, 2 Nov 2026 15:48:26 -0800 Subject: [PATCH 2/3] Add Mingw tests too --- .../Inputs/multilib_mingw_tree/resource/include/.keep | 1 + .../debug/libclang_rt.builtins.a | 1 + clang/test/Driver/mingw-multilib.yaml | 11 +++++++++++ 3 files changed, 13 insertions(+) create mode 100644 clang/test/Driver/Inputs/multilib_mingw_tree/resource/include/.keep create mode 100644 clang/test/Driver/Inputs/multilib_mingw_tree/resource/lib/x86_64-w64-windows-gnu/debug/libclang_rt.builtins.a diff --git a/clang/test/Driver/Inputs/multilib_mingw_tree/resource/include/.keep b/clang/test/Driver/Inputs/multilib_mingw_tree/resource/include/.keep new file mode 100644 index 00000000000000..8b137891791fe9 --- /dev/null +++ b/clang/test/Driver/Inputs/multilib_mingw_tree/resource/include/.keep @@ -0,0 +1 @@ + diff --git a/clang/test/Driver/Inputs/multilib_mingw_tree/resource/lib/x86_64-w64-windows-gnu/debug/libclang_rt.builtins.a b/clang/test/Driver/Inputs/multilib_mingw_tree/resource/lib/x86_64-w64-windows-gnu/debug/libclang_rt.builtins.a new file mode 100644 index 00000000000000..8b137891791fe9 --- /dev/null +++ b/clang/test/Driver/Inputs/multilib_mingw_tree/resource/lib/x86_64-w64-windows-gnu/debug/libclang_rt.builtins.a @@ -0,0 +1 @@ + diff --git a/clang/test/Driver/mingw-multilib.yaml b/clang/test/Driver/mingw-multilib.yaml index 941f20861c7893..c5a0514a154834 100644 --- a/clang/test/Driver/mingw-multilib.yaml +++ b/clang/test/Driver/mingw-multilib.yaml @@ -2,11 +2,22 @@ # RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c %s -### -o /dev/null 2>&1 \ # RUN: --target=x86_64-w64-windows-gnu -fmultilib-flag=debug \ # RUN: -ccc-install-dir %S/Inputs/multilib_mingw_tree/bin \ +# RUN: -resource-dir=%S/Inputs/multilib_mingw_tree/resource \ # RUN: | FileCheck --check-prefix=CHECK-DEBUG %s # CHECK-DEBUG: "-cc1" "-triple" "x86_64-w64-windows-gnu" +# CHECK-DEBUG: "-internal-isystem" "{{.*}}/resource/include" # CHECK-DEBUG: "-internal-isystem" "{{[^"]*}}{{[/\\]}}x86_64-w64-windows-gnu/debug" # CHECK-DEBUG: "-L{{[^"]*}}/debug" +# The selected YAML directory is also appended to Clang's per-target runtime +# directory when resolving compiler-rt libraries. +# RUN: %clang --multi-lib-config=%s -print-libgcc-file-name \ +# RUN: --target=x86_64-w64-windows-gnu -fmultilib-flag=debug \ +# RUN: -resource-dir=%S/Inputs/multilib_mingw_tree/resource \ +# RUN: --rtlib=compiler-rt \ +# RUN: | FileCheck --check-prefix=CHECK-RESOURCE-LIB %s +# CHECK-RESOURCE-LIB: {{.*}}/resource/lib/x86_64-w64-windows-gnu/debug/libclang_rt.builtins.a + # Default behavior where no variant path is prepended. # RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c %s -### -o /dev/null 2>&1 \ # RUN: --target=x86_64-w64-windows-gnu \ >From b5fb449154c6618905da8cc4c78e5739c9dc5a59 Mon Sep 17 00:00:00 2001 From: Sam Elliott <[email protected]> Date: Mon, 2 Nov 2026 16:59:45 -0800 Subject: [PATCH 3/3] Windows path separator matching --- clang/test/Driver/linux-multilib.yaml | 4 ++-- clang/test/Driver/mingw-multilib.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/clang/test/Driver/linux-multilib.yaml b/clang/test/Driver/linux-multilib.yaml index 95a9858cce94a7..33dae5a8c652f6 100644 --- a/clang/test/Driver/linux-multilib.yaml +++ b/clang/test/Driver/linux-multilib.yaml @@ -7,7 +7,7 @@ # RUN: -resource-dir=%S/Inputs/multilib_linux_tree/resource \ # RUN: | FileCheck --check-prefix=CHECK-DEBUG %s # CHECK-DEBUG: "-cc1" "-triple" "x86_64-unknown-linux-gnu" -# CHECK-DEBUG: "-internal-isystem" "{{.*}}/resource/include" +# CHECK-DEBUG: "-internal-isystem" "{{.*}}{{[/\\]}}resource{{[/\\]+}}include" # CHECK-DEBUG: "-internal-isystem" "{{[^"]*}}{{[/\\]}}x86_64-unknown-linux-gnu/debug" # CHECK-DEBUG: "-L{{[^"]*}}/debug" @@ -18,7 +18,7 @@ # RUN: -resource-dir=%S/Inputs/multilib_linux_tree/resource \ # RUN: --rtlib=compiler-rt \ # RUN: | FileCheck --check-prefix=CHECK-RESOURCE-LIB %s -# CHECK-RESOURCE-LIB: {{.*}}/resource/lib/x86_64-unknown-linux-gnu/debug/libclang_rt.builtins.a +# CHECK-RESOURCE-LIB: {{.*}}{{[/\\]}}resource{{[/\\]+}}lib{{[/\\]+}}x86_64-unknown-linux-gnu/debug{{[/\\]+}}libclang_rt.builtins.a # Default behavior where no variant path is prepended. # RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c %s -### -o /dev/null 2>&1 \ diff --git a/clang/test/Driver/mingw-multilib.yaml b/clang/test/Driver/mingw-multilib.yaml index c5a0514a154834..00bad7f30d87af 100644 --- a/clang/test/Driver/mingw-multilib.yaml +++ b/clang/test/Driver/mingw-multilib.yaml @@ -5,7 +5,7 @@ # RUN: -resource-dir=%S/Inputs/multilib_mingw_tree/resource \ # RUN: | FileCheck --check-prefix=CHECK-DEBUG %s # CHECK-DEBUG: "-cc1" "-triple" "x86_64-w64-windows-gnu" -# CHECK-DEBUG: "-internal-isystem" "{{.*}}/resource/include" +# CHECK-DEBUG: "-internal-isystem" "{{.*}}resource{{[/\\]+}}include" # CHECK-DEBUG: "-internal-isystem" "{{[^"]*}}{{[/\\]}}x86_64-w64-windows-gnu/debug" # CHECK-DEBUG: "-L{{[^"]*}}/debug" @@ -16,7 +16,7 @@ # RUN: -resource-dir=%S/Inputs/multilib_mingw_tree/resource \ # RUN: --rtlib=compiler-rt \ # RUN: | FileCheck --check-prefix=CHECK-RESOURCE-LIB %s -# CHECK-RESOURCE-LIB: {{.*}}/resource/lib/x86_64-w64-windows-gnu/debug/libclang_rt.builtins.a +# CHECK-RESOURCE-LIB: {{.*}}{{[/\\]}}resource{{[/\\]+}}lib{{[/\\]+}}x86_64-w64-windows-gnu/debug{{[/\\]+}}libclang_rt.builtins.a # Default behavior where no variant path is prepended. # RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c %s -### -o /dev/null 2>&1 \ _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
