1 // UNSUPPORTED: system-windows 2 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" 6 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" 25 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" 31 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" 48 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" 62 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" 74 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" 87 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" 101 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" 109 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" 125 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 129 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 133 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 137 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" 141 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 145 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" 149 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" 153 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 156 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 159 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" 164 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 167 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 170 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" 175 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 178 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 181 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" 186 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 189 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" 198 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" 214 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" 225 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" 239 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" 253 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" 270 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" 281 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" 294 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" 307 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 312 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" 317 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" 325 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 330 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 335 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" 344 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 349 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 354 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" 363 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 368 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 373 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" 382 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 387 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" 396 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 400 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 404 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 408 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" 417 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" 431 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" 445 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" 459 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" 473 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" 485 486 // Check that compiler-rt library with the arch filename suffix will be 487 // used if present. 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" 497 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" 503 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" 509