1 // UNSUPPORTED: system-windows
3 // RUN: %clang -### %s --target=armv6-none-eabi --emit-static-lib 2>&1 \
4 // RUN: | FileCheck -check-prefixes=CHECK-STATIC-LIB %s
5 // CHECK-STATIC-LIB: {{.*}}llvm-ar{{.*}}" "rcsD"
7 // RUN: %clang %s -### --target=armv6m-none-eabi -o %t.out 2>&1 \
8 // RUN: -T semihosted.lds \
9 // RUN: -L some/directory/user/asked/for \
10 // RUN: --sysroot=%S/Inputs/baremetal_arm \
11 // RUN: | FileCheck --check-prefix=CHECK-V6M-C %s
12 // CHECK-V6M-C: "-cc1" "-triple" "thumbv6m-unknown-none-eabi"
13 // CHECK-V6M-C-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
14 // CHECK-V6M-C-SAME: "-isysroot" "[[SYSROOT:[^"]*]]"
15 // CHECK-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
16 // CHECK-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include"
17 // CHECK-V6M-C-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
18 // CHECK-V6M-C-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
19 // CHECK-V6M-C-SAME: "[[SYSROOT:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}crt0.o"
20 // CHECK-V6M-C-SAME: "-T" "semihosted.lds" "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
21 // CHECK-V6M-C-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib"
22 // CHECK-V6M-C-SAME: "{{[^"]*}}libclang_rt.builtins.a"
23 // CHECK-V6M-C-SAME: "-lc"
24 // CHECK-V6M-C-SAME: "--target2=rel" "-o" "{{.*}}.tmp.out"
26 // RUN: %clang %s -### --target=armv6m-none-eabi -nostdlibinc -nobuiltininc 2>&1 \
27 // RUN: --sysroot=%S/Inputs/baremetal_arm | FileCheck --check-prefix=CHECK-V6M-LIBINC %s
28 // RUN: %clang %s -### --target=armv6m-none-eabi -nostdinc 2>&1 \
29 // RUN: --sysroot=%S/Inputs/baremetal_arm | FileCheck --check-prefix=CHECK-V6M-LIBINC %s
30 // CHECK-V6M-LIBINC-NOT: "-internal-isystem"
32 // RUN: %clang %s -### --target=armv6m-none-eabi -o %t.out 2>&1 \
33 // RUN: -ccc-install-dir %S/Inputs/basic_baremetal_tree/bin \
34 // RUN: | FileCheck --check-prefix=CHECK-V6M-TREE %s
35 // CHECK-V6M-TREE: InstalledDir: [[INSTALLED_DIR:.+]]
36 // CHECK-V6M-TREE: "-cc1" "-triple" "thumbv6m-unknown-none-eabi"
37 // CHECK-V6M-TREE-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
38 // CHECK-V6M-TREE-SAME: "-internal-isystem" "[[INSTALLED_DIR]]{{[/\\]+}}..{{[/\\]+}}include{{[/\\]+}}armv6m-unknown-none-eabi{{[/\\]+}}c++{{[/\\]+}}v1"
39 // CHECK-V6M-TREE-SAME: {{^}} "-internal-isystem" "[[INSTALLED_DIR]]{{[/\\]+}}..{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
40 // CHECK-V6M-TREE-SAME: "-internal-isystem" "[[INSTALLED_DIR]]{{[/\\]+}}..{{[/\\]+}}include{{[/\\]+}}armv6m-unknown-none-eabi"
41 // CHECK-V6M-TREE-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
42 // CHECK-V6M-TREE-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
43 // CHECK-V6M-TREE-SAME: "[[INSTALLED_DIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}armv6m-unknown-none-eabi{{[/\\]+}}crt0.o"
44 // CHECK-V6M-TREE-SAME: "-L[[INSTALLED_DIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}armv6m-unknown-none-eabi"
45 // CHECK-V6M-TREE-SAME: "{{[^"]*}}libclang_rt.builtins.a"
46 // CHECK-V6M-TREE-SAME: "-lc"
47 // CHECK-V6M-TREE-SAME: "--target2=rel" "-o" "{{.*}}.tmp.out"
49 // RUN: %clang %s -### --target=armv7m-vendor-none-eabi -rtlib=compiler-rt 2>&1 \
50 // RUN: --sysroot=%S/Inputs/baremetal_arm \
51 // RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \
52 // RUN: | FileCheck --check-prefix=CHECK-ARMV7M-PER-TARGET %s
53 // CHECK-ARMV7M-PER-TARGET: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
54 // CHECK-ARMV7M-PER-TARGET: "-isysroot" "[[SYSROOT:[^"]*]]"
55 // CHECK-ARMV7M-PER-TARGET: "-x" "c++" "{{.*}}baremetal.cpp"
56 // CHECK-ARMV7M-PER-TARGET: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
57 // CHECK-ARMV7M-PER_TARGET: "[[SYSROOT:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}crt0.o"
58 // CHECK-ARMV7M-PER-TARGET: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib"
59 // CHECK-ARMV7M-PER-TARGET: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}armv7m-vendor-none-eabi
60 // CHECK-ARMV7M-PER-TARGET: "{{[^"]*}}libclang_rt.builtins.a"
61 // CHECK-ARMV7M-PER-TARGET: "-lc"
63 // RUN: %clangxx %s -### --target=armv6m-none-eabi 2>&1 \
64 // RUN: --sysroot=%S/Inputs/baremetal_arm | FileCheck --check-prefix=CHECK-V6M-DEFAULTCXX %s
65 // CHECK-V6M-DEFAULTCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
66 // CHECK-V6M-DEFAULTCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
67 // CHECK-V6M-DEFAULTCXX-SAME: "[[SYSROOT:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}crt0.o"
68 // CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib"
69 // CHECK-V6M-DEFAULTCXX-SAME: "-lc++"
70 // CHECK-V6M-DEFAULTCXX-SAME: "-lm"
71 // CHECK-V6M-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
72 // CHECK-V6M-DEFAULTCXX-SAME: "-lc"
73 // CHECK-V6M-DEFAULTCXX-SAME: "--target2=rel" "-o" "a.out"
75 // RUN: %clangxx %s -### --target=armv6m-none-eabi -stdlib=libc++ 2>&1 \
76 // RUN: --sysroot=%S/Inputs/baremetal_arm | FileCheck --check-prefix=CHECK-V6M-LIBCXX %s
77 // CHECK-V6M-LIBCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
78 // CHECK-V6M-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}"
79 // CHECK-V6M-LIBCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
80 // CHECK-V6M-LIBCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
81 // CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib"
82 // CHECK-V6M-LIBCXX-SAME: "-lc++"
83 // CHECK-V6M-LIBCXX-SAME: "-lm"
84 // CHECK-V6M-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
85 // CHECK-V6M-LIBCXX-SAME: "-lc"
86 // CHECK-V6M-LIBCXX-SAME: "--target2=rel" "-o" "a.out"
88 // RUN: %clangxx %s -### --target=armv6m-none-eabi 2>&1 \
89 // RUN: --sysroot=%S/Inputs/baremetal_arm \
90 // RUN: -stdlib=libstdc++ \
91 // RUN: | FileCheck --check-prefix=CHECK-V6M-LIBSTDCXX %s
92 // CHECK-V6M-LIBSTDCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
93 // CHECK-V6M-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
94 // CHECK-V6M-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}6.0.0"
95 // CHECK-V6M-LIBSTDCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
96 // CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib"
97 // CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lm"
98 // CHECK-V6M-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
99 // CHECK-V6M-LIBSTDCXX-SAME: "-lc"
100 // CHECK-V6M-LIBSTDCXX-SAME: "--target2=rel" "-o" "a.out"
102 // RUN: %clangxx %s -### --target=armv6m-none-eabi 2>&1 \
103 // RUN: --sysroot=%S/Inputs/baremetal_arm \
104 // RUN: -nodefaultlibs \
105 // RUN: | FileCheck --check-prefix=CHECK-V6M-NDL %s
106 // CHECK-V6M-NDL: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
107 // CHECK-V6M-NDL: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
108 // CHECK-V6M-NDL-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib"
110 // RUN: rm -rf %T/baremetal_cxx_sysroot
111 // RUN: mkdir -p %T/baremetal_cxx_sysroot/usr/include/c++/v1
112 // RUN: %clangxx %s -### 2>&1 \
113 // RUN: --target=armv6m-none-eabi \
114 // RUN: --sysroot=%T/baremetal_cxx_sysroot \
115 // RUN: -stdlib=libc++ \
116 // RUN: | FileCheck --check-prefix=CHECK-V6M-LIBCXX-USR %s
117 // CHECK-V6M-LIBCXX-USR: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
118 // CHECK-V6M-LIBCXX-USR-NOT: "-internal-isystem" "{{[^"]+}}baremetal_cxx_sysroot{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}"
119 // CHECK-V6M-LIBCXX-USR-SAME: "-internal-isystem" "{{[^"]+}}baremetal_cxx_sysroot{{[/\\]+}}usr{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
120 // CHECK-V6M-LIBCXX-USR: "{{[^"]*}}-Bstatic"
121 // CHECK-V6M-LIBCXX-USR-SAME: "-L{{[^"]*}}{{[/\\]+}}baremetal_cxx_sysroot{{[/\\]+}}lib"
122 // CHECK-V6M-LIBCXX-USR-SAME: "-lc++" "-lm"
123 // CHECK-V6M-LIBCXX-USR-SAME: "{{[^"]*}}libclang_rt.builtins.a"
124 // CHECK-V6M-LIBCXX-USR-SAME: "-lc"
126 // RUN: %clangxx --target=arm-none-eabi -v 2>&1 \
127 // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL
128 // CHECK-THREAD-MODEL: Thread model: posix
130 // RUN: %clangxx --target=arm-none-eabi -mthread-model single -v 2>&1 \
131 // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL-SINGLE
132 // CHECK-THREAD-MODEL-SINGLE: Thread model: single
134 // RUN: %clangxx --target=arm-none-eabi -mthread-model posix -v 2>&1 \
135 // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL-POSIX
136 // CHECK-THREAD-MODEL-POSIX: Thread model: posix
138 // RUN: %clangxx -### --target=arm-none-eabi -nostartfiles -v %s 2>&1 \
139 // RUN: | FileCheck %s --check-prefix=CHECK-NOSTARTFILES
140 // CHECK-NOSTARTFILES-NOT: "crt0.o"
142 // RUN: %clang -### --target=arm-none-eabi -rtlib=libgcc --unwindlib=libgcc -v %s 2>&1 \
143 // RUN: | FileCheck %s --check-prefix=CHECK-RTLIB-GCC
144 // CHECK-RTLIB-GCC: -lgcc
146 // RUN: %clang -### --target=arm-none-eabi -v %s 2>&1 \
147 // RUN: | FileCheck %s --check-prefix=CHECK-SYSROOT-INC
148 // CHECK-SYSROOT-INC-NOT: "-internal-isystem" "include"
150 // RUN: %clang -### %s --target=armebv7-none-eabi --sysroot=%S/Inputs/baremetal_arm 2>&1 \
151 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EB %s
152 // CHECK-ARMV7EB: "{{.*}}ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "--be8" "-EB"
154 // RUN: %clang -### %s --target=armv7-none-eabi -mbig-endian --sysroot=%S/Inputs/baremetal_arm 2>&1 \
155 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EB %s
157 // RUN: %clang -### %s --target=armebv7-none-eabi -mbig-endian --sysroot=%S/Inputs/baremetal_arm 2>&1 \
158 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EB %s
160 // RUN: %clang -### %s --target=armv7-none-eabi --sysroot=%S/Inputs/baremetal_arm 2>&1 \
161 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EL %s
162 // CHECK-ARMV7EL: "{{.*}}ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
163 // CHECK-ARMV7EL-NOT: "--be8"
165 // RUN: %clang -### %s --target=armebv7-none-eabi -mlittle-endian --sysroot=%S/Inputs/baremetal_arm 2>&1 \
166 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EL %s
168 // RUN: %clang -### %s --target=armv7-none-eabi -mlittle-endian --sysroot=%S/Inputs/baremetal_arm 2>&1 \
169 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EL %s
171 // RUN: %clang -### %s --target=aarch64_be-none-elf --sysroot=%S/Inputs/baremetal_arm 2>&1 \
172 // RUN: | FileCheck --check-prefix=CHECK-AARCH64BE %s
173 // CHECK-AARCH64BE: "{{.*}}ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EB"
174 // CHECK-AARCH64BE-NOT: "--be8"
176 // RUN: %clang -### %s --target=aarch64-none-elf -mbig-endian --sysroot=%S/Inputs/baremetal_arm 2>&1 \
177 // RUN: | FileCheck --check-prefix=CHECK-AARCH64BE %s
179 // RUN: %clang -### %s --target=aarch64_be-none-elf -mbig-endian --sysroot=%S/Inputs/baremetal_arm 2>&1 \
180 // RUN: | FileCheck --check-prefix=CHECK-AARCH64BE %s
182 // RUN: %clang -### %s --target=aarch64-none-elf --sysroot=%S/Inputs/baremetal_arm 2>&1 \
183 // RUN: | FileCheck --check-prefix=CHECK-AARCH64LE %s
184 // CHECK-AARCH64LE: "{{.*}}ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
185 // CHECK-AARCH64LE-NOT: "--be8"
187 // RUN: %clang -### %s --target=aarch64_be-none-elf -mlittle-endian --sysroot=%S/Inputs/baremetal_arm 2>&1 \
188 // RUN: | FileCheck --check-prefix=CHECK-AARCH64LE %s
190 // RUN: %clang -no-canonical-prefixes %s -### --target=aarch64-none-elf 2>&1 \
191 // RUN: | FileCheck --check-prefix=CHECK-AARCH64-NO-HOST-INC %s
192 // Verify that the bare metal driver does not include any host system paths:
193 // CHECK-AARCH64-NO-HOST-INC: InstalledDir: [[INSTALLEDDIR:.+]]
194 // CHECK-AARCH64-NO-HOST-INC: "-resource-dir" "[[RESOURCE:[^"]+]]"
195 // CHECK-AARCH64-NO-HOST-INC-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include{{[/\\]+}}c++{{[/\\]+}}v1"
196 // CHECK-AARCH64-NO-HOST-INC-SAME: "-internal-isystem" "[[RESOURCE]]{{[/\\]+}}include"
197 // CHECK-AARCH64-NO-HOST-INC-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include"
199 // RUN: %clang %s -### --target=riscv64-unknown-elf -o %t.out -L some/directory/user/asked/for \
200 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf 2>&1 \
201 // RUN: | FileCheck --check-prefix=CHECK-RV64 %s
202 // CHECK-RV64: "-cc1" "-triple" "riscv64-unknown-unknown-elf"
203 // CHECK-RV64-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
204 // CHECK-RV64-SAME: "-isysroot" "[[SYSROOT:[^"]*]]"
205 // CHECK-RV64-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
206 // CHECk-RV64-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include"
207 // CHECK-RV64-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
208 // CHECK-RV64-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
209 // CHECK-RV64-SAME: "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
210 // CHECK-RV64-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib"
211 // CHECK-RV64-SAME: "{{[^"]*}}libclang_rt.builtins.a"
212 // CHECK-RV64-SAME: "-lc"
213 // CHECK-RV64-SAME: "-X" "-o" "{{.*}}.tmp.out"
215 // RUN: %clangxx %s -### --target=riscv64-unknown-elf 2>&1 \
216 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \
217 // RUN: | FileCheck --check-prefix=CHECK-RV64-DEFAULTCXX %s
218 // CHECK-RV64-DEFAULTCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
219 // CHECK-RV64-DEFAULTCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
220 // CHECK-RV64-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib"
221 // CHECK-RV64-DEFAULTCXX-SAME: "-lc++" "-lm"
222 // CHECK-RV64-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
223 // CHECK-RV64-DEFAULTCXX-SAME: "-lc"
224 // CHECK-RV64-DEFAULTCXX-SAME: "-X" "-o" "a.out"
226 // RUN: %clangxx %s -### --target=riscv64-unknown-elf 2>&1 \
227 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \
228 // RUN: -stdlib=libc++ \
229 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBCXX %s
230 // CHECK-RV64-LIBCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
231 // CHECK-RV64-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}"
232 // CHECK-RV64-LIBCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
233 // CHECK-RV64-LIBCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
234 // CHECK-RV64-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib"
235 // CHECK-RV64-LIBCXX-SAME: "-lc++" "-lm"
236 // CHECK-RV64-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
237 // CHECK-RV64-LIBCXX-SAME: "-lc"
238 // CHECK-RV64-LIBCXX-SAME: "-X" "-o" "a.out"
240 // RUN: %clangxx %s -### 2>&1 --target=riscv64-unknown-elf \
241 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \
242 // RUN: -stdlib=libstdc++ \
243 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBSTDCXX %s
244 // CHECK-RV64-LIBSTDCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
245 // CHECK-RV64-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
246 // CHECK-RV64-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}8.0.1"
247 // CHECK-RV64-LIBSTDCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
248 // CHECK-RV64-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib"
249 // CHECK-RV64-LIBSTDCXX-SAME: "-lstdc++" "-lm"
250 // CHECK-RV64-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
251 // CHECK-RV64-LIBSTDCXX-SAME: "-lc"
252 // CHECK-RV64-LIBSTDCXX-SAME: "-X" "-o" "a.out"
254 // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf \
255 // RUN: -L some/directory/user/asked/for \
256 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
257 // RUN: | FileCheck --check-prefix=CHECK-RV32 %s
258 // CHECK-RV32: "-cc1" "-triple" "riscv32-unknown-unknown-elf"
259 // CHECK-RV32-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
260 // CHECK-RV32-SAME: "-isysroot" "[[SYSROOT:[^"]*]]"
261 // CHECK-RV32-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
262 // CHECK-RV32-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include"
263 // CHECK-RV32-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
264 // CHECK-RV32-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
265 // CHECK-RV32-SAME: "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
266 // CHECK-RV32-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib"
267 // CHECK-RV32-SAME: "{{[^"]*}}libclang_rt.builtins.a"
268 // CHECK-RV32-SAME: "-lc"
269 // CHECK-RV32-SAME: "-X" "-o" "a.out"
271 // RUN: %clangxx %s -### 2>&1 --target=riscv32-unknown-elf \
272 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
273 // RUN: | FileCheck --check-prefix=CHECK-RV32-DEFAULTCXX %s
274 // CHECK-RV32-DEFAULTCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
275 // CHECK-RV32-DEFAULTCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
276 // CHECK-RV32-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib"
277 // CHECK-RV32-DEFAULTCXX-SAME: "-lc++" "-lm"
278 // CHECK-RV32-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
279 // CHECK-RV32-DEFAULTCXX-SAME: "-lc"
280 // CHECK-RV32-DEFAULTCXX-SAME: "-X" "-o" "a.out"
282 // RUN: %clangxx %s -### 2>&1 --target=riscv32-unknown-elf \
283 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
284 // RUN: -stdlib=libc++ \
285 // RUN: | FileCheck --check-prefix=CHECK-RV32-LIBCXX %s
286 // CHECK-RV32-LIBCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
287 // CHECK-RV32-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}"
288 // CHECK-RV32-LIBCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
289 // CHECK-RV32-LIBCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
290 // CHECK-RV32-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib"
291 // CHECK-RV32-LIBCXX-SAME: "-lc++" "-lm"
292 // CHECK-RV32-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
293 // CHECK-RV32-LIBCXX-SAME: "-X" "-o" "a.out"
295 // RUN: %clangxx %s -### 2>&1 --target=riscv32-unknown-elf \
296 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
297 // RUN: -stdlib=libstdc++ \
298 // RUN: | FileCheck --check-prefix=CHECK-RV32-LIBSTDCXX %s
299 // CHECK-RV32-LIBSTDCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
300 // CHECK-RV32-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
301 // CHECK-RV32-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}8.0.1"
302 // CHECK-RV32-LIBSTDCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
303 // CHECK-RV32-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib"
304 // CHECK-RV32-LIBSTDCXX-SAME: "-lstdc++" "-lm"
305 // CHECK-RV32-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
306 // CHECK-RV32-LIBSTDCXX-SAME: "-lc" "-X" "-o" "a.out"
308 // RUN: %clang %s -### 2>&1 --target=riscv64-unknown-elf \
309 // RUN: -nostdlibinc -nobuiltininc \
310 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \
311 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBINC %s
313 // RUN: %clang %s -### 2>&1 --target=riscv64-unknown-elf -nostdinc \
314 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \
315 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBINC %s
316 // CHECK-RV64-LIBINC-NOT: "-internal-isystem"
318 // RUN: %clangxx %s -### 2>&1 --target=riscv64-unknown-elf \
319 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \
320 // RUN: -nodefaultlibs \
321 // RUN: | FileCheck --check-prefix=CHECK-RV64-NDL %s
322 // CHECK-RV64-NDL: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
323 // CHECK-RV64-NDL: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
324 // CHECK-RV64-NDL-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib"
326 // RUN: %clang %s -### 2>&1 --target=riscv64-unknown-elf \
327 // RUN: -march=rv64imafdc -mabi=lp64d \
328 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \
329 // RUN: | FileCheck --check-prefix=CHECK-RV64FD %s
331 // RUN: %clang %s -### 2>&1 --target=riscv64-unknown-elf \
332 // RUN: -march=rv64gc -mabi=lp64d \
333 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \
334 // RUN: | FileCheck --check-prefix=CHECK-RV64FD %s
336 // CHECK-RV64FD: "-cc1" "-triple" "riscv64-unknown-unknown-elf"
337 // CHECK-RV64FD-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
338 // CHECK-RV64FD-SAME: "-isysroot" "[[SYSROOT:[^"]*]]"
339 // CHECK-RV64FD-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
340 // CHECk-RV64FD-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d{{[/\\]+}}include"
341 // CHECK-RV64FD-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
342 // CHECK-RV64FD-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
343 // CHECK-RV64FD-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d{{[/\\]+}}lib"
345 // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf \
346 // RUN: -march=rv32i -mabi=ilp32 \
347 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
348 // RUN: | FileCheck --check-prefix=CHECK-RV32I %s
350 // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf \
351 // RUN: -march=rv32ic -mabi=ilp32 \
352 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
353 // RUN: | FileCheck --check-prefix=CHECK-RV32I %s
355 // CHECK-RV32I: "-cc1" "-triple" "riscv32-unknown-unknown-elf"
356 // CHECK-RV32I-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
357 // CHECK-RV32I-SAME: "-isysroot" "[[SYSROOT:[^"]*]]"
358 // CHECK-RV32I-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32i{{[/\\]+}}ilp32{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
359 // CHECK-RV32I-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32i{{[/\\]+}}ilp32{{[/\\]+}}include"
360 // CHECK-RV32I-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
361 // CHECK-RV32I-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
362 // CHECK-RV32I-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32i{{[/\\]+}}ilp32{{[/\\]+}}lib"
364 // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf \
365 // RUN: -march=rv32im -mabi=ilp32 \
366 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
367 // RUN: | FileCheck --check-prefix=CHECK-RV32IM %s
369 // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf \
370 // RUN: -march=rv32imc -mabi=ilp32 \
371 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
372 // RUN: | FileCheck --check-prefix=CHECK-RV32IM %s
374 // CHECK-RV32IM: "-cc1" "-triple" "riscv32-unknown-unknown-elf"
375 // CHECK-RV32IM-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
376 // CHECK-RV32IM-SAME: "-isysroot" "[[SYSROOT:[^"]*]]"
377 // CHECK-RV32IM-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32im{{[/\\]+}}ilp32{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
378 // CHECK-RV32IM-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32im{{[/\\]+}}ilp32{{[/\\]+}}include"
379 // CHECK-RV32IM-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
380 // CHECK-RV32IM-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
381 // CHECK-RV32IM-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32im{{[/\\]+}}ilp32{{[/\\]+}}lib"
383 // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf \
384 // RUN: -march=rv32iac -mabi=ilp32 \
385 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
386 // RUN: | FileCheck --check-prefix=CHECK-RV32IAC %s
388 // CHECK-RV32IAC: "-cc1" "-triple" "riscv32-unknown-unknown-elf"
389 // CHECK-RV32IAC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
390 // CHECK-RV32IAC-SAME: "-isysroot" "[[SYSROOT:[^"]*]]"
391 // CHECK-RV32IAC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32iac{{[/\\]+}}ilp32{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
392 // CHECK-RV32IAC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32iac{{[/\\]+}}ilp32{{[/\\]+}}include"
393 // CHECK-RV32IAC-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
394 // CHECK-RV32IAC-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
395 // CHECK-RV32IAC-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32iac{{[/\\]+}}ilp32{{[/\\]+}}lib"
397 // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf -march=rv32imafc -mabi=ilp32f \
398 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
399 // RUN: | FileCheck --check-prefix=CHECK-RV32IMAFC %s
401 // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf -march=rv32imafdc -mabi=ilp32f \
402 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
403 // RUN: | FileCheck --check-prefix=CHECK-RV32IMAFC %s
405 // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf -march=rv32gc -mabi=ilp32f \
406 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \
407 // RUN: | FileCheck --check-prefix=CHECK-RV32IMAFC %s
409 // CHECK-RV32IMAFC: "-cc1" "-triple" "riscv32-unknown-unknown-elf"
410 // CHECK-RV32IMAFC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
411 // CHECK-RV32IMAFC-SAME: "-isysroot" "[[SYSROOT:[^"]*]]"
412 // CHECK-RV32IMAFC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
413 // CHECK-RV32IMAFC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f{{[/\\]+}}include"
414 // CHECK-RV32IMAFC-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
415 // CHECK-RV32IMAFC-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
416 // CHECK-RV32IMAFC-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f{{[/\\]+}}lib"
418 // RUN: %clang -no-canonical-prefixes %s -### --target=powerpc-unknown-eabi 2>&1 \
419 // RUN: | FileCheck --check-prefix=CHECK-PPCEABI %s
420 // CHECK-PPCEABI: InstalledDir: [[INSTALLEDDIR:.+]]
421 // CHECK-PPCEABI: "-nostdsysteminc"
422 // CHECK-PPCEABI-SAME: "-resource-dir" "[[RESOURCE:[^"]+]]"
423 // CHECK-PPCEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include{{[/\\]+}}c++{{[/\\]+}}v1"
424 // CHECK-PPCEABI-SAME: "-internal-isystem" "[[RESOURCE]]{{[/\\]+}}include"
425 // CHECK-PPCEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include"
426 // CHECK-PPCEABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
427 // CHECK-PPCEABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib"
428 // CHECK-PPCEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
429 // CHECK-PPCEABI-SAME: "-lc"
430 // CHECK-PPCEABI-SAME: "-o" "a.out"
432 // RUN: %clang -no-canonical-prefixes %s -### --target=powerpc64-unknown-eabi 2>&1 \
433 // RUN: | FileCheck --check-prefix=CHECK-PPC64EABI %s
434 // CHECK-PPC64EABI: InstalledDir: [[INSTALLEDDIR:.+]]
435 // CHECK-PPC64EABI: "-nostdsysteminc"
436 // CHECK-PPC64EABI-SAME: "-resource-dir" "[[RESOURCE:[^"]+]]"
437 // CHECK-PPC64EABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include{{[/\\]+}}c++{{[/\\]+}}v1"
438 // CHECK-PPC64EABI-SAME: "-internal-isystem" "[[RESOURCE]]{{[/\\]+}}include"
439 // CHECK-PPC64EABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include"
440 // CHECK-PPC64EABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
441 // CHECK-PPC64EABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib"
442 // CHECK-PPC64EABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
443 // CHECK-PPC64EABI-SAME: "-lc"
444 // CHECK-PPC64EABI-SAME: "-o" "a.out"
446 // RUN: %clang -no-canonical-prefixes %s -### --target=powerpcle-unknown-eabi 2>&1 \
447 // RUN: | FileCheck --check-prefix=CHECK-PPCLEEABI %s
448 // CHECK-PPCLEEABI: InstalledDir: [[INSTALLEDDIR:.+]]
449 // CHECK-PPCLEEABI: "-nostdsysteminc"
450 // CHECK-PPCLEEABI-SAME: "-resource-dir" "[[RESOURCE:[^"]+]]"
451 // CHECK-PPCLEEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include{{[/\\]+}}c++{{[/\\]+}}v1"
452 // CHECK-PPCLEEABI-SAME: "-internal-isystem" "[[RESOURCE]]{{[/\\]+}}include"
453 // CHECK-PPCLEEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include"
454 // CHECK-PPCLEEABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
455 // CHECK-PPCLEEABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib"
456 // CHECK-PPCLEEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
457 // CHECK-PPCLEEABI-SAME: "-lc"
458 // CHECK-PPCLEEABI-SAME: "-o" "a.out"
460 // RUN: %clang -no-canonical-prefixes %s -### --target=powerpc64le-unknown-eabi 2>&1 \
461 // RUN: | FileCheck --check-prefix=CHECK-PPC64LEEABI %s
462 // CHECK-PPC64LEEABI: InstalledDir: [[INSTALLEDDIR:.+]]
463 // CHECK-PPC64LEEABI: "-nostdsysteminc"
464 // CHECK-PPC64LEEABI-SAME: "-resource-dir" "[[RESOURCE:[^"]+]]"
465 // CHECK-PPC64LEEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include{{[/\\]+}}c++{{[/\\]+}}v1"
466 // CHECK-PPC64LEEABI-SAME: "-internal-isystem" "[[RESOURCE]]{{[/\\]+}}include"
467 // CHECK-PPC64LEEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include"
468 // CHECK-PPC64LEEABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
469 // CHECK-PPC64LEEABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib"
470 // CHECK-PPC64LEEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
471 // CHECK-PPC64LEEABI-SAME: "-lc"
472 // CHECK-PPC64LEEABI-SAME: "-o" "a.out"
474 // Check that compiler-rt library without the arch filename suffix will
475 // be used if present.
476 // RUN: rm -rf %T/baremetal_clang_rt_noarch
477 // RUN: mkdir -p %T/baremetal_clang_rt_noarch/lib
478 // RUN: touch %T/baremetal_clang_rt_noarch/lib/libclang_rt.builtins.a
479 // RUN: %clang %s -### 2>&1 \
480 // RUN: --target=armv6m-none-eabi \
481 // RUN: --sysroot=%T/baremetal_clang_rt_noarch \
482 // RUN: | FileCheck --check-prefix=CHECK-CLANGRT-NOARCH %s
483 // CHECK-CLANGRT-NOARCH: "{{[^"]*}}libclang_rt.builtins.a"
484 // CHECK-CLANGRT-NOARCH-NOT: "{{[^"]*}}libclang_rt.builtins.a"
486 // Check that compiler-rt library with the arch filename suffix will be
488 // RUN: rm -rf %T/baremetal_clang_rt_arch
489 // RUN: mkdir -p %T/baremetal_clang_rt_arch/lib
490 // RUN: touch %T/baremetal_clang_rt_arch/lib/libclang_rt.builtins-armv6m.a
491 // RUN: %clang %s -### 2>&1 \
492 // RUN: --target=armv6m-none-eabi \
493 // RUN: --sysroot=%T/baremetal_clang_rt_arch \
494 // RUN: | FileCheck --check-prefix=CHECK-CLANGRT-ARCH %s
495 // CHECK-CLANGRT-ARCH: "{{[^"]*}}libclang_rt.builtins.a"
496 // CHECK-CLANGRT-ARCH-NOT: "{{[^"]*}}libclang_rt.builtins.a"
498 // Check that "--no-relax" is forwarded to the linker for RISC-V.
499 // RUN: %clang %s -### 2>&1 --target=riscv64-unknown-elf -nostdinc -mno-relax \
500 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \
501 // RUN: | FileCheck --check-prefix=CHECK-RV64-NORELAX %s
502 // CHECK-RV64-NORELAX: "--no-relax"
504 // Check that "--no-relax" is not forwarded to the linker for RISC-V.
505 // RUN: %clang %s -### 2>&1 --target=riscv64-unknown-elf -nostdinc \
506 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \
507 // RUN: | FileCheck --check-prefix=CHECK-RV64-RELAX %s
508 // CHECK-RV64-RELAX-NOT: "--no-relax"