1 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 2 // RUN: -target armv6m-none-eabi \ 3 // RUN: -T semihosted.lds \ 4 // RUN: -L some/directory/user/asked/for \ 5 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 6 // RUN: | FileCheck --check-prefix=CHECK-V6M-C %s 7 // CHECK-V6M-C: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "thumbv6m-none-unknown-eabi" 8 // CHECK-V6M-C-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 9 // CHECK-V6M-C-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 10 // CHECK-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 11 // CHECk-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include" 12 // CHECK-V6M-C-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 13 // CHECK-V6M-C-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 14 // CHECK-V6M-C-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 15 // CHECK-V6M-C-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib" 16 // CHECK-V6M-C-SAME: "-T" "semihosted.lds" "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for" 17 // CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 18 // CHECK-V6M-C-SAME: "-o" "{{.*}}.o" 19 20 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 21 // RUN: -target armv6m-none-eabi \ 22 // RUN: -nostdlibinc -nobuiltininc \ 23 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 24 // RUN: | FileCheck --check-prefix=CHECK-V6M-LIBINC %s 25 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 26 // RUN: -target armv6m-none-eabi \ 27 // RUN: -nostdinc \ 28 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 29 // RUN: | FileCheck --check-prefix=CHECK-V6M-LIBINC %s 30 // CHECK-V6M-LIBINC-NOT: "-internal-isystem" 31 32 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 33 // RUN: -target armv6m-none-eabi \ 34 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 35 // RUN: | FileCheck --check-prefix=CHECK-V6M-DEFAULTCXX %s 36 // CHECK-V6M-DEFAULTCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 37 // CHECK-V6M-DEFAULTCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 38 // CHECK-V6M-DEFAULTCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 39 // CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" 40 // CHECK-V6M-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 41 // CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 42 // CHECK-V6M-DEFAULTCXX-SAME: "-o" "{{.*}}.o" 43 44 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 45 // RUN: -target armv6m-none-eabi \ 46 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 47 // RUN: -stdlib=libc++ \ 48 // RUN: | FileCheck --check-prefix=CHECK-V6M-LIBCXX %s 49 // CHECK-V6M-LIBCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 50 // CHECK-V6M-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}" 51 // CHECK-V6M-LIBCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 52 // CHECK-V6M-LIBCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 53 // CHECK-V6M-LIBCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 54 // CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" 55 // CHECK-V6M-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 56 // CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 57 // CHECK-V6M-LIBCXX-SAME: "-o" "{{.*}}.o" 58 59 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 60 // RUN: -target armv6m-none-eabi \ 61 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 62 // RUN: -stdlib=libstdc++ \ 63 // RUN: | FileCheck --check-prefix=CHECK-V6M-LIBSTDCXX %s 64 // CHECK-V6M-LIBSTDCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 65 // CHECK-V6M-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 66 // CHECK-V6M-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}6.0.0" 67 // CHECK-V6M-LIBSTDCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 68 // CHECK-V6M-LIBSTDCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 69 // CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" 70 // CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind" 71 // CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m" 72 // CHECK-V6M-LIBSTDCXX-SAME: "-o" "{{.*}}.o" 73 74 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 75 // RUN: -target armv6m-none-eabi \ 76 // RUN: --sysroot=%S/Inputs/baremetal_arm \ 77 // RUN: -nodefaultlibs \ 78 // RUN: | FileCheck --check-prefix=CHECK-V6M-NDL %s 79 // CHECK-V6M-NDL: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 80 // CHECK-V6M-NDL: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 81 // CHECK-V6M-NDL-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 82 // CHECK-V6M-NDL-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" "-o" "{{.*}}.o" 83 84 // RUN: %clangxx -target arm-none-eabi -v 2>&1 \ 85 // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL 86 // CHECK-THREAD-MODEL: Thread model: posix 87 88 // RUN: %clangxx -target arm-none-eabi -mthread-model single -v 2>&1 \ 89 // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL-SINGLE 90 // CHECK-THREAD-MODEL-SINGLE: Thread model: single 91 92 // RUN: %clangxx -target arm-none-eabi -mthread-model posix -v 2>&1 \ 93 // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL-POSIX 94 // CHECK-THREAD-MODEL-POSIX: Thread model: posix 95 96 // RUN: %clang -### -target arm-none-eabi -rtlib=libgcc -v %s 2>&1 \ 97 // RUN: | FileCheck %s --check-prefix=CHECK-RTLIB-GCC 98 // CHECK-RTLIB-GCC: -lgcc 99 100 // RUN: %clang -### -target arm-none-eabi -v %s 2>&1 \ 101 // RUN: | FileCheck %s --check-prefix=CHECK-SYSROOT-INC 102 // CHECK-SYSROOT-INC-NOT: "-internal-isystem" "include" 103 104 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 105 // RUN: -target riscv64-unknown-elf \ 106 // RUN: -L some/directory/user/asked/for \ 107 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 108 // RUN: | FileCheck --check-prefix=CHECK-RV64 %s 109 // CHECK-RV64: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv64-unknown-unknown-elf" 110 // CHECK-RV64-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 111 // CHECK-RV64-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 112 // CHECK-RV64-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 113 // CHECk-RV64-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include" 114 // CHECK-RV64-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 115 // CHECK-RV64-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 116 // CHECK-RV64-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 117 // CHECK-RV64-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib" 118 // CHECK-RV64-SAME: "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for" 119 // CHECK-RV64-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv64" 120 // CHECK-RV64-SAME: "-o" "{{.*}}.o" 121 122 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 123 // RUN: -target riscv64-unknown-elf \ 124 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 125 // RUN: | FileCheck --check-prefix=CHECK-RV64-DEFAULTCXX %s 126 // CHECK-RV64-DEFAULTCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 127 // CHECK-RV64-DEFAULTCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 128 // CHECK-RV64-DEFAULTCXX-SAME: "-L[[RESOURCE_DIR]]{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal" 129 // CHECK-RV64-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" 130 // CHECK-RV64-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 131 // CHECK-RV64-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv64" 132 // CHECK-RV64-DEFAULTCXX-SAME: "-o" "{{.*}}.o" 133 134 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 135 // RUN: -target riscv64-unknown-elf \ 136 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 137 // RUN: -stdlib=libc++ \ 138 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBCXX %s 139 // CHECK-RV64-LIBCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 140 // CHECK-RV64-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}" 141 // CHECK-RV64-LIBCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 142 // CHECK-RV64-LIBCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 143 // CHECK-RV64-LIBCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 144 // CHECK-RV64-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" 145 // CHECK-RV64-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 146 // CHECK-RV64-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv64" 147 // CHECK-RV64-LIBCXX-SAME: "-o" "{{.*}}.o" 148 149 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 150 // RUN: -target riscv64-unknown-elf \ 151 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 152 // RUN: -stdlib=libstdc++ \ 153 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBSTDCXX %s 154 // CHECK-RV64-LIBSTDCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 155 // CHECK-RV64-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 156 // CHECK-RV64-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}8.0.1" 157 // CHECK-RV64-LIBSTDCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 158 // CHECK-RV64-LIBSTDCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 159 // CHECK-RV64-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" 160 // CHECK-RV64-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind" 161 // CHECK-RV64-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv64" 162 // CHECK-RV64-LIBSTDCXX-SAME: "-o" "{{.*}}.o" 163 164 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 165 // RUN: -target riscv32-unknown-elf \ 166 // RUN: -L some/directory/user/asked/for \ 167 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 168 // RUN: | FileCheck --check-prefix=CHECK-RV32 %s 169 // CHECK-RV32: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv32-unknown-unknown-elf" 170 // CHECK-RV32-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 171 // CHECK-RV32-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 172 // CHECK-RV32-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 173 // CHECK-RV32-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include" 174 // CHECK-RV32-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 175 // CHECK-RV32-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 176 // CHECK-RV32-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 177 // CHECK-RV32-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib" 178 // CHECK-RV32-SAME: "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for" 179 // CHECK-RV32-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv32" 180 // CHECK-RV32-SAME: "-o" "{{.*}}.o" 181 182 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 183 // RUN: -target riscv32-unknown-elf \ 184 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 185 // RUN: | FileCheck --check-prefix=CHECK-RV32-DEFAULTCXX %s 186 // CHECK-RV32-DEFAULTCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 187 // CHECK-RV32-DEFAULTCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 188 // CHECK-RV32-DEFAULTCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 189 // CHECK-RV32-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib" 190 // CHECK-RV32-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 191 // CHECK-RV32-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv32" 192 // CHECK-RV32-DEFAULTCXX-SAME: "-o" "{{.*}}.o" 193 194 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 195 // RUN: -target riscv32-unknown-elf \ 196 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 197 // RUN: -stdlib=libc++ \ 198 // RUN: | FileCheck --check-prefix=CHECK-RV32-LIBCXX %s 199 // CHECK-RV32-LIBCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 200 // CHECK-RV32-LIBCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}" 201 // CHECK-RV32-LIBCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 202 // CHECK-RV32-LIBCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 203 // CHECK-RV32-LIBCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 204 // CHECK-RV32-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib" 205 // CHECK-RV32-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind" 206 // CHECK-RV32-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv32" 207 // CHECK-RV32-LIBCXX-SAME: "-o" "{{.*}}.o" 208 209 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 210 // RUN: -target riscv32-unknown-elf \ 211 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 212 // RUN: -stdlib=libstdc++ \ 213 // RUN: | FileCheck --check-prefix=CHECK-RV32-LIBSTDCXX %s 214 // CHECK-RV32-LIBSTDCXX: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 215 // CHECK-RV32-LIBSTDCXX-NOT: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 216 // CHECK-RV32-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}8.0.1" 217 // CHECK-RV32-LIBSTDCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 218 // CHECK-RV32-LIBSTDCXX-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 219 // CHECK-RV32-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib" 220 // CHECK-RV32-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind" 221 // CHECK-RV32-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-riscv32" 222 // CHECK-RV32-LIBSTDCXX-SAME: "-o" "{{.*}}.o" 223 224 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 225 // RUN: -target riscv64-unknown-elf \ 226 // RUN: -nostdlibinc -nobuiltininc \ 227 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 228 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBINC %s 229 230 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 231 // RUN: -target riscv64-unknown-elf \ 232 // RUN: -nostdinc \ 233 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 234 // RUN: | FileCheck --check-prefix=CHECK-RV64-LIBINC %s 235 // CHECK-RV64-LIBINC-NOT: "-internal-isystem" 236 237 // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 238 // RUN: -target riscv64-unknown-elf \ 239 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 240 // RUN: -nodefaultlibs \ 241 // RUN: | FileCheck --check-prefix=CHECK-RV64-NDL %s 242 // CHECK-RV64-NDL: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 243 // CHECK-RV64-NDL: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 244 // CHECK-RV64-NDL-SAME: "-L[[RESOURCE_DIR]]{{[/\\]+}}lib{{[/\\]+}}baremetal" 245 // CHECK-RV64-NDL-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" 246 // CHECK-RV64-NDL-SAME: "-o" "{{.*}}.o" 247 248 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 249 // RUN: -target riscv64-unknown-elf \ 250 // RUN: -march=rv64imafdc -mabi=lp64d \ 251 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 252 // RUN: | FileCheck --check-prefix=CHECK-RV64FD %s 253 254 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 255 // RUN: -target riscv64-unknown-elf \ 256 // RUN: -march=rv64gc -mabi=lp64d \ 257 // RUN: --sysroot=%S/Inputs/basic_riscv64_tree/riscv64-unknown-elf \ 258 // RUN: | FileCheck --check-prefix=CHECK-RV64FD %s 259 260 // CHECK-RV64FD: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv64-unknown-unknown-elf" 261 // CHECK-RV64FD-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 262 // CHECK-RV64FD-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 263 // CHECK-RV64FD-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 264 // CHECk-RV64FD-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d{{[/\\]+}}include" 265 // CHECK-RV64FD-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 266 // CHECK-RV64FD-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 267 // CHECK-RV64FD-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d" 268 // CHECK-RV64FD-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv64imafdc{{[/\\]+}}lp64d{{[/\\]+}}lib" 269 270 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 271 // RUN: -target riscv32-unknown-elf \ 272 // RUN: -march=rv32i -mabi=ilp32 \ 273 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 274 // RUN: | FileCheck --check-prefix=CHECK-RV32I %s 275 276 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 277 // RUN: -target riscv32-unknown-elf \ 278 // RUN: -march=rv32ic -mabi=ilp32 \ 279 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 280 // RUN: | FileCheck --check-prefix=CHECK-RV32I %s 281 282 // CHECK-RV32I: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv32-unknown-unknown-elf" 283 // CHECK-RV32I-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 284 // CHECK-RV32I-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 285 // CHECK-RV32I-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32i{{[/\\]+}}ilp32{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 286 // CHECK-RV32I-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32i{{[/\\]+}}ilp32{{[/\\]+}}include" 287 // CHECK-RV32I-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 288 // CHECK-RV32I-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 289 // CHECK-RV32I-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal{{[/\\]+}}rv32i{{[/\\]+}}ilp32" 290 // CHECK-RV32I-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32i{{[/\\]+}}ilp32{{[/\\]+}}lib" 291 292 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 293 // RUN: -target riscv32-unknown-elf \ 294 // RUN: -march=rv32im -mabi=ilp32 \ 295 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 296 // RUN: | FileCheck --check-prefix=CHECK-RV32IM %s 297 298 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 299 // RUN: -target riscv32-unknown-elf \ 300 // RUN: -march=rv32imc -mabi=ilp32 \ 301 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 302 // RUN: | FileCheck --check-prefix=CHECK-RV32IM %s 303 304 // CHECK-RV32IM: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv32-unknown-unknown-elf" 305 // CHECK-RV32IM-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 306 // CHECK-RV32IM-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 307 // CHECK-RV32IM-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32im{{[/\\]+}}ilp32{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 308 // CHECK-RV32IM-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32im{{[/\\]+}}ilp32{{[/\\]+}}include" 309 // CHECK-RV32IM-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 310 // CHECK-RV32IM-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 311 // CHECK-RV32IM-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal{{[/\\]+}}rv32im{{[/\\]+}}ilp32" 312 // CHECK-RV32IM-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32im{{[/\\]+}}ilp32{{[/\\]+}}lib" 313 314 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 315 // RUN: -target riscv32-unknown-elf \ 316 // RUN: -march=rv32iac -mabi=ilp32 \ 317 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 318 // RUN: | FileCheck --check-prefix=CHECK-RV32IAC %s 319 320 // CHECK-RV32IAC: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv32-unknown-unknown-elf" 321 // CHECK-RV32IAC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 322 // CHECK-RV32IAC-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 323 // CHECK-RV32IAC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32iac{{[/\\]+}}ilp32{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 324 // CHECK-RV32IAC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32iac{{[/\\]+}}ilp32{{[/\\]+}}include" 325 // CHECK-RV32IAC-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 326 // CHECK-RV32IAC-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 327 // CHECK-RV32IAC-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal{{[/\\]+}}rv32iac{{[/\\]+}}ilp32" 328 // CHECK-RV32IAC-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32iac{{[/\\]+}}ilp32{{[/\\]+}}lib" 329 330 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 331 // RUN: -target riscv32-unknown-elf \ 332 // RUN: -march=rv32imafc -mabi=ilp32f \ 333 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 334 // RUN: | FileCheck --check-prefix=CHECK-RV32IMAFC %s 335 336 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 337 // RUN: -target riscv32-unknown-elf \ 338 // RUN: -march=rv32imafdc -mabi=ilp32f \ 339 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 340 // RUN: | FileCheck --check-prefix=CHECK-RV32IMAFC %s 341 342 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 343 // RUN: -target riscv32-unknown-elf \ 344 // RUN: -march=rv32gc -mabi=ilp32f \ 345 // RUN: --sysroot=%S/Inputs/basic_riscv32_tree/riscv32-unknown-elf \ 346 // RUN: | FileCheck --check-prefix=CHECK-RV32IMAFC %s 347 348 // CHECK-RV32IMAFC: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}{{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "riscv32-unknown-unknown-elf" 349 // CHECK-RV32IMAFC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 350 // CHECK-RV32IMAFC-SAME: "-isysroot" "[[SYSROOT:[^"]*]]" 351 // CHECK-RV32IMAFC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1" 352 // CHECK-RV32IMAFC-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f{{[/\\]+}}include" 353 // CHECK-RV32IMAFC-SAME: "-x" "c++" "{{.*}}baremetal.cpp" 354 // CHECK-RV32IMAFC-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic" 355 // CHECK-RV32IMAFC-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f" 356 // CHECK-RV32IMAFC-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}rv32imafc{{[/\\]+}}ilp32f{{[/\\]+}}lib" 357