1 // UNSUPPORTED: system-windows 2 // General tests that ld invocations on Linux targets sane. Note that we use 3 // sysroot to make these tests independent of the host system. 4 // 5 // RUN: %clang -### %s -no-pie 2>&1 \ 6 // RUN: --target=i386-unknown-linux -rtlib=platform \ 7 // RUN: --gcc-toolchain="" \ 8 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 9 // RUN: | FileCheck --check-prefix=CHECK-LD-32 %s 10 // CHECK-LD-32-NOT: warning: 11 // CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 12 // CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/10.2.0{{/|\\\\}}crtbegin.o" 13 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/10.2.0" 14 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/10.2.0/../../../../i386-unknown-linux/lib" 15 // CHECK-LD-32: "-L[[SYSROOT]]/lib" 16 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib" 17 // 18 // RUN: %clang -### %s -no-pie 2>&1 \ 19 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 20 // RUN: --gcc-toolchain="" \ 21 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 22 // RUN: | FileCheck --check-prefix=CHECK-LD-64 %s 23 // CHECK-LD-64-NOT: warning: 24 // CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 25 // CHECK-LD-64: "--eh-frame-hdr" 26 // CHECK-LD-64: "-m" "elf_x86_64" 27 // CHECK-LD-64: "-dynamic-linker" 28 // CHECK-LD-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0{{/|\\\\}}crtbegin.o" 29 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0" 30 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 31 // CHECK-LD-64: "-L[[SYSROOT]]/lib" 32 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib" 33 // CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 34 // CHECK-LD-64: "-lc" 35 // CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 36 // 37 // RUN: %clang -### %s -no-pie 2>&1 \ 38 // RUN: --target=x86_64-unknown-linux-gnux32 -rtlib=platform --unwindlib=platform \ 39 // RUN: --gcc-toolchain="" \ 40 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 41 // RUN: | FileCheck --check-prefix=CHECK-LD-X32 %s 42 // CHECK-LD-X32-NOT: warning: 43 // CHECK-LD-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 44 // CHECK-LD-X32: "--eh-frame-hdr" 45 // CHECK-LD-X32: "-m" "elf32_x86_64" 46 // CHECK-LD-X32: "-dynamic-linker" 47 // CHECK-LD-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 48 // CHECK-LD-X32: "-lc" 49 // CHECK-LD-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 50 // 51 // RUN: %clang -### %s -no-pie 2>&1 \ 52 // RUN: --target=x86_64-unknown-linux \ 53 // RUN: -resource-dir=%S/Inputs/resource_dir \ 54 // RUN: --gcc-toolchain="" \ 55 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 56 // RUN: --rtlib=compiler-rt \ 57 // RUN: | FileCheck --check-prefix=CHECK-LD-RT %s 58 // CHECK-LD-RT-NOT: warning: 59 // CHECK-LD-RT: "-resource-dir" "[[RESDIR:[^"]*]]" 60 // CHECK-LD-RT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 61 // CHECK-LD-RT: "--eh-frame-hdr" 62 // CHECK-LD-RT: "-m" "elf_x86_64" 63 // CHECK-LD-RT: "-dynamic-linker" 64 // CHECK-LD-RT: "[[RESDIR]]{{/|\\\\}}lib{{/|\\\\}}linux{{/|\\\\}}clang_rt.crtbegin-x86_64.o" 65 // CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0" 66 // CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 67 // CHECK-LD-RT: "-L[[SYSROOT]]/lib" 68 // CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib" 69 // CHECK-LD-RT: libclang_rt.builtins-x86_64.a" 70 // CHECK-LD-RT: "-lc" 71 // CHECK-LD-RT: libclang_rt.builtins-x86_64.a" 72 // CHECK-LD-RT: "[[RESDIR]]{{/|\\\\}}lib{{/|\\\\}}linux{{/|\\\\}}clang_rt.crtend-x86_64.o" 73 // 74 // RUN: %clang -### %s -no-pie 2>&1 \ 75 // RUN: --target=i686-unknown-linux \ 76 // RUN: -resource-dir=%S/Inputs/resource_dir \ 77 // RUN: --gcc-toolchain="" \ 78 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 79 // RUN: --rtlib=compiler-rt \ 80 // RUN: | FileCheck --check-prefix=CHECK-LD-RT-I686 %s 81 // CHECK-LD-RT-I686-NOT: warning: 82 // CHECK-LD-RT-I686: "-resource-dir" "[[RESDIR:[^"]*]]" 83 // CHECK-LD-RT-I686: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 84 // CHECK-LD-RT-I686: "--eh-frame-hdr" 85 // CHECK-LD-RT-I686: "-m" "elf_i386" 86 // CHECK-LD-RT-I686: "-dynamic-linker" 87 // CHECK-LD-RT-I686: "[[RESDIR]]{{/|\\\\}}lib{{/|\\\\}}linux{{/|\\\\}}clang_rt.crtbegin-i386.o" 88 // CHECK-LD-RT-I686: "-L[[SYSROOT]]/usr/lib/gcc/i686-unknown-linux/10.2.0" 89 // CHECK-LD-RT-I686: "-L[[SYSROOT]]/usr/lib/gcc/i686-unknown-linux/10.2.0/../../../../i686-unknown-linux/lib" 90 // CHECK-LD-RT-I686: "-L[[SYSROOT]]/lib" 91 // CHECK-LD-RT-I686: "-L[[SYSROOT]]/usr/lib" 92 // CHECK-LD-RT-I686: libclang_rt.builtins-i386.a" 93 // CHECK-LD-RT-I686: "-lc" 94 // CHECK-LD-RT-I686: libclang_rt.builtins-i386.a" 95 // CHECK-LD-RT-I686: "[[RESDIR]]{{/|\\\\}}lib{{/|\\\\}}linux{{/|\\\\}}clang_rt.crtend-i386.o" 96 // 97 // RUN: %clang -### %s -no-pie 2>&1 \ 98 // RUN: --target=arm-linux-androideabi \ 99 // RUN: --gcc-toolchain="" \ 100 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 101 // RUN: --rtlib=compiler-rt \ 102 // RUN: | FileCheck --check-prefix=CHECK-LD-RT-ANDROID %s 103 // CHECK-LD-RT-ANDROID-NOT: warning: 104 // CHECK-LD-RT-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 105 // CHECK-LD-RT-ANDROID: "--eh-frame-hdr" 106 // CHECK-LD-RT-ANDROID: "-m" "armelf_linux_eabi" 107 // CHECK-LD-RT-ANDROID: "-dynamic-linker" 108 // CHECK-LD-RT-ANDROID: libclang_rt.builtins-arm-android.a" 109 // CHECK-LD-RT-ANDROID: "-lc" 110 // CHECK-LD-RT-ANDROID: libclang_rt.builtins-arm-android.a" 111 // 112 // RUN: %clang -### %s -no-pie 2>&1 \ 113 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 114 // RUN: --gcc-toolchain="" \ 115 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 116 // RUN: | FileCheck --check-prefix=CHECK-LD-GCC %s 117 // CHECK-LD-GCC-NOT: warning: 118 // CHECK-LD-GCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 119 // CHECK-LD-GCC: "--eh-frame-hdr" 120 // CHECK-LD-GCC: "-m" "elf_x86_64" 121 // CHECK-LD-GCC: "-dynamic-linker" 122 // CHECK-LD-GCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0{{/|\\\\}}crtbegin.o" 123 // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0" 124 // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 125 // CHECK-LD-GCC: "-L[[SYSROOT]]/lib" 126 // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib" 127 // CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 128 // CHECK-LD-GCC: "-lc" 129 // CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 130 // 131 // RUN: %clang -### %s -no-pie 2>&1 \ 132 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 133 // RUN: -static-libgcc \ 134 // RUN: --gcc-toolchain="" \ 135 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 136 // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s 137 // CHECK-LD-64-STATIC-LIBGCC-NOT: warning: 138 // CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 139 // CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr" 140 // CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64" 141 // CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker" 142 // CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0{{/|\\\\}}crtbegin.o" 143 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0" 144 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 145 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib" 146 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib" 147 // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" 148 // CHECK-LD-64-STATIC-LIBGCC: "-lc" 149 // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" 150 // 151 // RUN: %clang -### %s -no-pie 2>&1 \ 152 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 153 // RUN: --gcc-toolchain="" \ 154 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 155 // RUN: | FileCheck --check-prefix=CHECK-CLANG-NO-LIBGCC %s 156 // CHECK-CLANG-NO-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 157 // CHECK-CLANG-NO-LIBGCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 158 // CHECK-CLANG-NO-LIBGCC: "-lc" 159 // CHECK-CLANG-NO-LIBGCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 160 // 161 // RUN: %clangxx -### %s -no-pie 2>&1 \ 162 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 163 // RUN: --gcc-toolchain="" \ 164 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 165 // RUN: | FileCheck --check-prefix=CHECK-CLANGXX-NO-LIBGCC %s 166 // CHECK-CLANGXX-NO-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 167 // CHECK-CLANGXX-NO-LIBGCC: "-lgcc_s" "-lgcc" 168 // CHECK-CLANGXX-NO-LIBGCC: "-lc" 169 // CHECK-CLANGXX-NO-LIBGCC: "-lgcc_s" "-lgcc" 170 // 171 // RUN: %clang -static -### %s 2>&1 \ 172 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 173 // RUN: --gcc-toolchain="" \ 174 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 175 // RUN: | FileCheck --check-prefix=CHECK-CLANG-NO-LIBGCC-STATIC %s 176 // CHECK-CLANG-NO-LIBGCC-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 177 // CHECK-CLANG-NO-LIBGCC-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" 178 // 179 // RUN: %clang -static-pie -### %s 2>&1 \ 180 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 181 // RUN: --gcc-toolchain="" \ 182 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 183 // RUN: | FileCheck --check-prefix=CHECK-CLANG-LD-STATIC-PIE %s 184 // CHECK-CLANG-LD-STATIC-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 185 // CHECK-CLANG-LD-STATIC-PIE: "-static" 186 // CHECK-CLANG-LD-STATIC-PIE: "-pie" 187 // CHECK-CLANG-LD-STATIC-PIE: "--no-dynamic-linker" 188 // CHECK-CLANG-LD-STATIC-PIE: "-z" 189 // CHECK-CLANG-LD-STATIC-PIE: "text" 190 // CHECK-CLANG-LD-STATIC-PIE: "-m" "elf_x86_64" 191 // CHECK-CLANG-LD-STATIC-PIE: "{{.*}}rcrt1.o" 192 // CHECK-CLANG-LD-STATIC-PIE: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" 193 // 194 // RUN: %clang -static-pie -pie -### %s -no-pie 2>&1 \ 195 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 196 // RUN: --gcc-toolchain="" \ 197 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 198 // RUN: | FileCheck --check-prefix=CHECK-CLANG-LD-STATIC-PIE-PIE %s 199 // CHECK-CLANG-LD-STATIC-PIE-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 200 // CHECK-CLANG-LD-STATIC-PIE-PIE: "-static" 201 // CHECK-CLANG-LD-STATIC-PIE-PIE: "-pie" 202 // CHECK-CLANG-LD-STATIC-PIE-PIE: "--no-dynamic-linker" 203 // CHECK-CLANG-LD-STATIC-PIE-PIE: "-z" 204 // CHECK-CLANG-LD-STATIC-PIE-PIE: "text" 205 // CHECK-CLANG-LD-STATIC-PIE-PIE: "-m" "elf_x86_64" 206 // CHECK-CLANG-LD-STATIC-PIE-PIE: "{{.*}}rcrt1.o" 207 // CHECK-CLANG-LD-STATIC-PIE-PIE: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" 208 // 209 // RUN: %clang -static-pie -static -### %s -no-pie 2>&1 \ 210 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 211 // RUN: --gcc-toolchain="" \ 212 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 213 // RUN: | FileCheck --check-prefix=CHECK-CLANG-LD-STATIC-PIE-STATIC %s 214 // CHECK-CLANG-LD-STATIC-PIE-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 215 // CHECK-CLANG-LD-STATIC-PIE-STATIC: "-static" 216 // CHECK-CLANG-LD-STATIC-PIE-STATIC: "-pie" 217 // CHECK-CLANG-LD-STATIC-PIE-STATIC: "--no-dynamic-linker" 218 // CHECK-CLANG-LD-STATIC-PIE-STATIC: "-z" 219 // CHECK-CLANG-LD-STATIC-PIE-STATIC: "text" 220 // CHECK-CLANG-LD-STATIC-PIE-STATIC: "-m" "elf_x86_64" 221 // CHECK-CLANG-LD-STATIC-PIE-STATIC: "{{.*}}rcrt1.o" 222 // CHECK-CLANG-LD-STATIC-PIE-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" 223 // 224 // RUN: %clang -static-pie -nopie -### %s -no-pie 2>&1 \ 225 // RUN: --target=x86_64-unknown-linux -rtlib=platform \ 226 // RUN: --gcc-toolchain="" \ 227 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 228 // RUN: | FileCheck --check-prefix=CHECK-CLANG-LD-STATIC-PIE-NOPIE %s 229 // CHECK-CLANG-LD-STATIC-PIE-NOPIE: error: cannot specify 'nopie' along with 'static-pie' 230 // 231 // RUN: %clang -dynamic -### %s -no-pie 2>&1 \ 232 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 233 // RUN: --gcc-toolchain="" \ 234 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 235 // RUN: | FileCheck --check-prefix=CHECK-CLANG-NO-LIBGCC-DYNAMIC %s 236 // CHECK-CLANG-NO-LIBGCC-DYNAMIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 237 // CHECK-CLANG-NO-LIBGCC-DYNAMIC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 238 // CHECK-CLANG-NO-LIBGCC-DYNAMIC: "-lc" 239 // CHECK-CLANG-NO-LIBGCC-DYNAMIC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 240 // 241 // RUN: %clang -static-libgcc -### %s -no-pie 2>&1 \ 242 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 243 // RUN: --gcc-toolchain="" \ 244 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 245 // RUN: | FileCheck --check-prefix=CHECK-CLANG-STATIC-LIBGCC %s 246 // CHECK-CLANG-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 247 // CHECK-CLANG-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" 248 // CHECK-CLANG-STATIC-LIBGCC: "-lc" 249 // CHECK-CLANG-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" 250 // 251 // RUN: %clang -static-libgcc -dynamic -### %s -no-pie 2>&1 \ 252 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 253 // RUN: --gcc-toolchain="" \ 254 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 255 // RUN: | FileCheck --check-prefix=CHECK-CLANG-STATIC-LIBGCC-DYNAMIC %s 256 // CHECK-CLANG-STATIC-LIBGCC-DYNAMIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 257 // CHECK-CLANG-STATIC-LIBGCC-DYNAMIC: "-lgcc" "-lgcc_eh" 258 // CHECK-CLANG-STATIC-LIBGCC-DYNAMIC: "-lc" 259 // CHECK-CLANG-STATIC-LIBGCC-DYNAMIC: "-lgcc" "-lgcc_eh" 260 // 261 // RUN: %clang -shared-libgcc -### %s -no-pie 2>&1 \ 262 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 263 // RUN: --gcc-toolchain="" \ 264 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 265 // RUN: | FileCheck --check-prefix=CHECK-CLANG-SHARED-LIBGCC %s 266 // CHECK-CLANG-SHARED-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 267 // CHECK-CLANG-SHARED-LIBGCC: "-lgcc_s" "-lgcc" 268 // CHECK-CLANG-SHARED-LIBGCC: "-lc" 269 // CHECK-CLANG-SHARED-LIBGCC: "-lgcc_s" "-lgcc" 270 // 271 // RUN: %clang -shared-libgcc -dynamic -### %s -no-pie 2>&1 \ 272 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 273 // RUN: --gcc-toolchain="" \ 274 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 275 // RUN: | FileCheck --check-prefix=CHECK-CLANG-SHARED-LIBGCC-DYNAMIC %s 276 // CHECK-CLANG-SHARED-LIBGCC-DYNAMIC: "-lgcc_s" "-lgcc" 277 // CHECK-CLANG-SHARED-LIBGCC-DYNAMIC: "-lc" 278 // CHECK-CLANG-SHARED-LIBGCC-DYNAMIC: "-lgcc_s" "-lgcc" 279 // 280 // RUN: %clang -### %s -no-pie 2>&1 \ 281 // RUN: --target=aarch64-linux-android -rtlib=platform --unwindlib=platform \ 282 // RUN: --gcc-toolchain="" \ 283 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 284 // RUN: | FileCheck --check-prefix=CHECK-CLANG-ANDROID-NONE %s 285 // CHECK-CLANG-ANDROID-NONE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 286 // CHECK-CLANG-ANDROID-NONE: "-l:libunwind.a" "-ldl" "-lc" 287 // 288 // RUN: %clang -shared -### %s -no-pie 2>&1 \ 289 // RUN: --target=aarch64-linux-android -rtlib=platform --unwindlib=platform \ 290 // RUN: --gcc-toolchain="" \ 291 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 292 // RUN: | FileCheck --check-prefix=CHECK-CLANG-ANDROID-SHARED %s 293 // CHECK-CLANG-ANDROID-SHARED: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 294 // CHECK-CLANG-ANDROID-SHARED: "-l:libunwind.a" "-ldl" "-lc" 295 // 296 // RUN: %clang -static -### %s -no-pie 2>&1 \ 297 // RUN: --target=aarch64-linux-android -rtlib=platform --unwindlib=platform \ 298 // RUN: --gcc-toolchain="" \ 299 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 300 // RUN: | FileCheck --check-prefix=CHECK-CLANG-ANDROID-STATIC %s 301 // CHECK-CLANG-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 302 // CHECK-CLANG-ANDROID-STATIC: "--start-group" "{{[^"]*}}{{/|\\\\}}libclang_rt.builtins-aarch64-android.a" "-l:libunwind.a" "-lc" "--end-group" 303 // 304 // RUN: %clang -### %s 2>&1 \ 305 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 306 // RUN: -static \ 307 // RUN: --gcc-toolchain="" \ 308 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 309 // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s 310 // CHECK-LD-64-STATIC-NOT: warning: 311 // CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 312 // CHECK-LD-64-STATIC: "--eh-frame-hdr" 313 // CHECK-LD-64-STATIC: "-m" "elf_x86_64" 314 // CHECK-LD-64-STATIC-NOT: "-dynamic-linker" 315 // CHECK-LD-64-STATIC: "-static" 316 // CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0{{/|\\\\}}crtbeginT.o" 317 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0" 318 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 319 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib" 320 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib" 321 // CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" 322 323 // RUN: %clang -no-pie -### %s --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform -shared -static \ 324 // RUN: --gcc-toolchain= --sysroot=%S/Inputs/basic_linux_tree 2>&1 | FileCheck --check-prefix=CHECK-LD-SHARED-STATIC %s 325 // CHECK-LD-SHARED-STATIC: "-shared" "-static" 326 // CHECK-LD-SHARED-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0{{/|\\\\}}crtbeginS.o" 327 // CHECK-LD-SHARED-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0{{/|\\\\}}crtendS.o" 328 329 // Check that flags can be combined. The -static dominates. 330 // RUN: %clang -### %s 2>&1 \ 331 // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ 332 // RUN: -static-libgcc -static \ 333 // RUN: --gcc-toolchain="" \ 334 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 335 // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s 336 // 337 // RUN: %clang -### %s -no-pie 2>&1 \ 338 // RUN: --target=i386-unknown-linux -rtlib=platform -m32 \ 339 // RUN: --gcc-toolchain="" \ 340 // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 341 // RUN: | FileCheck --check-prefix=CHECK-32-TO-32 %s 342 // CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 343 // CHECK-32-TO-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/10.2.0{{/|\\\\}}crtbegin.o" 344 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/10.2.0" 345 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/10.2.0/../../../../i386-unknown-linux/lib/../lib32" 346 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/10.2.0/../../../../lib32" 347 // CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32" 348 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 349 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/10.2.0/../../../../i386-unknown-linux/lib" 350 // CHECK-32-TO-32: "-L[[SYSROOT]]/lib" 351 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib" 352 // 353 // RUN: %clang -### %s -no-pie 2>&1 \ 354 // RUN: --target=i386-unknown-linux -rtlib=platform -m64 \ 355 // RUN: --gcc-toolchain="" \ 356 // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 357 // RUN: | FileCheck --check-prefix=CHECK-32-TO-64 %s 358 // CHECK-32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 359 // CHECK-32-TO-64: "{{.*}}/usr/lib/gcc/i386-unknown-linux/10.2.0/64{{/|\\\\}}crtbegin.o" 360 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/10.2.0/64" 361 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/10.2.0/../../../../i386-unknown-linux/lib/../lib64" 362 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/10.2.0/../../../../lib64" 363 // CHECK-32-TO-64: "-L[[SYSROOT]]/lib/../lib64" 364 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 365 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/10.2.0/../../../../i386-unknown-linux/lib" 366 // CHECK-32-TO-64: "-L[[SYSROOT]]/lib" 367 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib" 368 // 369 // RUN: %clang -### %s -no-pie 2>&1 \ 370 // RUN: --target=x86_64-unknown-linux -rtlib=platform -m64 \ 371 // RUN: --gcc-toolchain="" \ 372 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 373 // RUN: | FileCheck --check-prefix=CHECK-64-TO-64 %s 374 // CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 375 // CHECK-64-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0{{/|\\\\}}crtbegin.o" 376 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0" 377 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib/../lib64" 378 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../lib64" 379 // CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64" 380 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 381 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 382 // CHECK-64-TO-64: "-L[[SYSROOT]]/lib" 383 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib" 384 // 385 // RUN: %clang -### %s -no-pie 2>&1 \ 386 // RUN: --target=x86_64-unknown-linux -rtlib=plaform -m32 \ 387 // RUN: --gcc-toolchain="" \ 388 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 389 // RUN: | FileCheck --check-prefix=CHECK-64-TO-32 %s 390 // CHECK-64-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 391 // CHECK-64-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0/32{{/|\\\\}}crtbegin.o" 392 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/32" 393 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib/../lib32" 394 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../lib32" 395 // CHECK-64-TO-32: "-L[[SYSROOT]]/lib/../lib32" 396 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 397 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 398 // CHECK-64-TO-32: "-L[[SYSROOT]]/lib" 399 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib" 400 // 401 // RUN: %clang -### %s -no-pie 2>&1 \ 402 // RUN: --target=x86_64-unknown-linux-gnux32 -rtlib=platform \ 403 // RUN: --gcc-toolchain="" \ 404 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 405 // RUN: | FileCheck --check-prefix=CHECK-X32 %s 406 // CHECK-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 407 // CHECK-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0/x32{{/|\\\\}}crtbegin.o" 408 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/x32" 409 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib/../libx32" 410 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../libx32" 411 // CHECK-X32: "-L[[SYSROOT]]/lib/../libx32" 412 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 413 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 414 // CHECK-X32: "-L[[SYSROOT]]/lib" 415 // CHECK-X32: "-L[[SYSROOT]]/usr/lib" 416 // 417 // RUN: %clang -### %s -no-pie 2>&1 \ 418 // RUN: --target=x86_64-unknown-linux -rtlib=platform -mx32 \ 419 // RUN: --gcc-toolchain="" \ 420 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 421 // RUN: | FileCheck --check-prefix=CHECK-64-TO-X32 %s 422 // CHECK-64-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 423 // CHECK-64-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0/x32{{/|\\\\}}crtbegin.o" 424 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/x32" 425 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib/../libx32" 426 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../libx32" 427 // CHECK-64-TO-X32: "-L[[SYSROOT]]/lib/../libx32" 428 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 429 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 430 // CHECK-64-TO-X32: "-L[[SYSROOT]]/lib" 431 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib" 432 // 433 // RUN: %clang -### %s -no-pie 2>&1 \ 434 // RUN: --target=i386-unknown-linux -rtlib=platform -mx32 \ 435 // RUN: --gcc-toolchain="" \ 436 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 437 // RUN: | FileCheck --check-prefix=CHECK-32-TO-X32 %s 438 // CHECK-32-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 439 // CHECK-32-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0/x32{{/|\\\\}}crtbegin.o" 440 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/x32" 441 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib/../libx32" 442 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../libx32" 443 // CHECK-32-TO-X32: "-L[[SYSROOT]]/lib/../libx32" 444 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 445 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 446 // CHECK-32-TO-X32: "-L[[SYSROOT]]/lib" 447 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib" 448 // 449 // RUN: %clang -### %s -no-pie 2>&1 \ 450 // RUN: --target=x86_64-unknown-linux-gnux32 -rtlib=platform -m64 \ 451 // RUN: --gcc-toolchain="" \ 452 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 453 // RUN: | FileCheck --check-prefix=CHECK-X32-TO-64 %s 454 // CHECK-X32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 455 // CHECK-X32-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0{{/|\\\\}}crtbegin.o" 456 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0" 457 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib/../lib64" 458 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../lib64" 459 // CHECK-X32-TO-64: "-L[[SYSROOT]]/lib/../lib64" 460 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 461 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 462 // CHECK-X32-TO-64: "-L[[SYSROOT]]/lib" 463 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib" 464 // 465 // RUN: %clang -### %s -no-pie 2>&1 \ 466 // RUN: --target=x86_64-unknown-linux-gnux32 -rtlib=platform -m32 \ 467 // RUN: --gcc-toolchain="" \ 468 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 469 // RUN: | FileCheck --check-prefix=CHECK-X32-TO-32 %s 470 // CHECK-X32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 471 // CHECK-X32-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0/32{{/|\\\\}}crtbegin.o" 472 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/32" 473 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib/../lib32" 474 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../lib32" 475 // CHECK-X32-TO-32: "-L[[SYSROOT]]/lib/../lib32" 476 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 477 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/10.2.0/../../../../x86_64-unknown-linux/lib" 478 // CHECK-X32-TO-32: "-L[[SYSROOT]]/lib" 479 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib" 480 // 481 // RUN: %clang -### %s -no-pie 2>&1 \ 482 // RUN: --target=x86_64-unknown-linux -rtlib=platform -m32 \ 483 // RUN: --gcc-toolchain=%S/Inputs/multilib_64bit_linux_tree/usr \ 484 // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 485 // RUN: | FileCheck --check-prefix=CHECK-64-TO-32-SYSROOT %s 486 // CHECK-64-TO-32-SYSROOT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 487 // CHECK-64-TO-32-SYSROOT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/10.2.0/32{{/|\\\\}}crtbegin.o" 488 // CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/32" 489 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib/../lib32" 490 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib/../lib32" 491 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib" 492 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib" 493 // 494 // Check that we support unusual patch version formats, including missing that 495 // component. 496 // RUN: %clang -### %s -no-pie 2>&1 \ 497 // RUN: --target=i386-unknown-linux -rtlib=platform -m32 \ 498 // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing1/bin \ 499 // RUN: --gcc-toolchain="" \ 500 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 501 // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION1 %s 502 // CHECK-GCC-VERSION1: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 503 // CHECK-GCC-VERSION1: "{{.*}}/Inputs/basic_linux_tree/usr/lib/gcc/i386-unknown-linux/10.2.0{{/|\\\\}}crtbegin.o" 504 505 // Test a simulated installation of libc++ on Linux, both through sysroot and 506 // the installation path of Clang. 507 // RUN: %clangxx -x c++ -### %s -no-pie 2>&1 \ 508 // RUN: --target=x86_64-unknown-linux-gnu \ 509 // RUN: -stdlib=libc++ \ 510 // RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \ 511 // RUN: --gcc-toolchain="" \ 512 // RUN: -resource-dir=%S/Inputs/resource_dir \ 513 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 514 // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s 515 // CHECK-BASIC-LIBCXX-SYSROOT: "-cc1" 516 // CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]" 517 // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" 518 // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 519 // CHECK-BASIC-LIBCXX-SYSROOT: "--sysroot=[[SYSROOT]]" 520 // RUN: %clang -x c++ -### %s -no-pie 2>&1 \ 521 // RUN: --target=x86_64-unknown-linux-gnu \ 522 // RUN: -stdlib=libc++ \ 523 // RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \ 524 // RUN: --gcc-toolchain="" \ 525 // RUN: -resource-dir=%S/Inputs/resource_dir \ 526 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 527 // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s 528 // CHECK-BASIC-LIBCXX-INSTALL: "-cc1" 529 // CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]" 530 // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1" 531 // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 532 // CHECK-BASIC-LIBCXX-INSTALL: "--sysroot=[[SYSROOT]]" 533 // 534 // Test that we can use -stdlib=libc++ in a build system even when it 535 // occasionally links C code instead of C++ code. 536 // RUN: %clang -x c -### %s -no-pie 2>&1 \ 537 // RUN: --target=x86_64-unknown-linux-gnu \ 538 // RUN: -stdlib=libc++ \ 539 // RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \ 540 // RUN: --gcc-toolchain="" \ 541 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 542 // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-C-LINK %s 543 // CHECK-BASIC-LIBCXX-C-LINK-NOT: warning: 544 // CHECK-BASIC-LIBCXX-C-LINK: "-cc1" 545 // CHECK-BASIC-LIBCXX-C-LINK: "-isysroot" "[[SYSROOT:[^"]+]]" 546 // CHECK-BASIC-LIBCXX-C-LINK-NOT: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1" 547 // CHECK-BASIC-LIBCXX-C-LINK: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 548 // CHECK-BASIC-LIBCXX-C-LINK: "--sysroot=[[SYSROOT]]" 549 // 550 // Check multi arch support on Ubuntu 12.04 LTS. 551 // RUN: %clang -### %s -no-pie 2>&1 \ 552 // RUN: --target=arm-unknown-linux-gnueabihf -rtlib=platform \ 553 // RUN: --gcc-toolchain="" \ 554 // RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \ 555 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s 556 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 557 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/arm-linux-gnueabihf{{/|\\\\}}crt1.o" 558 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/arm-linux-gnueabihf{{/|\\\\}}crti.o" 559 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtbegin.o" 560 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3" 561 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf" 562 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf" 563 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o" 564 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/arm-linux-gnueabihf{{/|\\\\}}crtn.o" 565 // 566 // Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf. 567 // RUN: %clang -### %s -no-pie 2>&1 \ 568 // RUN: --target=arm-linux-gnueabihf -rtlib=platform \ 569 // RUN: --gcc-toolchain="" \ 570 // RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \ 571 // RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s 572 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 573 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker" "{{(/usr/arm--linux-gnueabihf)?}}/lib/ld-linux-armhf.so.3" 574 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crt1.o" 575 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crti.o" 576 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtbegin.o" 577 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8" 578 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib" 579 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib" 580 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib" 581 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib" 582 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtend.o" 583 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crtn.o" 584 // 585 // Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi. 586 // RUN: %clang -### %s -no-pie 2>&1 \ 587 // RUN: --target=arm-linux-gnueabi -rtlib=platform \ 588 // RUN: --gcc-toolchain="" \ 589 // RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \ 590 // RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s 591 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 592 // CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "{{(/usr/arm--linux-gnueabi)?}}/lib/ld-linux.so.3" 593 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crt1.o" 594 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crti.o" 595 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtbegin.o" 596 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7" 597 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib" 598 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib" 599 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib" 600 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib" 601 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtend.o" 602 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crtn.o" 603 // 604 // Check Ubuntu 14.04 on powerpc64le. 605 // RUN: %clang -### %s -no-pie 2>&1 \ 606 // RUN: --target=powerpc64le-unknown-linux-gnu -rtlib=platform \ 607 // RUN: --gcc-toolchain="" \ 608 // RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \ 609 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-PPC64LE %s 610 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 611 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/powerpc64le-linux-gnu{{/|\\\\}}crt1.o" 612 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/powerpc64le-linux-gnu{{/|\\\\}}crti.o" 613 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtbegin.o" 614 // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8" 615 // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/lib/powerpc64le-linux-gnu" 616 // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu" 617 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtend.o" 618 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/powerpc64le-linux-gnu{{/|\\\\}}crtn.o" 619 // 620 // Check Ubuntu 14.04 on x32. 621 // "/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/crtend.o" "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32/crtn.o" 622 // RUN: %clang -### %s -no-pie 2>&1 \ 623 // RUN: --target=x86_64-unknown-linux-gnux32 -rtlib=platform \ 624 // RUN: --gcc-toolchain="" \ 625 // RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \ 626 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-X32 %s 627 // CHECK-UBUNTU-14-04-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 628 // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crt1.o" 629 // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crti.o" 630 // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtbegin.o" 631 // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/x32" 632 // CHECK-UBUNTU-14-04-X32-SAME: {{^}} "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32" 633 // CHECK-UBUNTU-14-04-X32-SAME: {{^}} "-L[[SYSROOT]]/lib/../libx32" 634 // CHECK-UBUNTU-14-04-X32-SAME: {{^}} "-L[[SYSROOT]]/usr/lib/../libx32" 635 // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtend.o" 636 // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crtn.o" 637 // 638 // Check fedora 18 on arm. 639 // RUN: %clang -### %s -no-pie 2>&1 \ 640 // RUN: --target=armv7-unknown-linux-gnueabihf -rtlib=platform \ 641 // RUN: --gcc-toolchain="" \ 642 // RUN: --sysroot=%S/Inputs/fedora_18_tree \ 643 // RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s 644 // CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 645 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o" 646 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crti.o" 647 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o" 648 // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2" 649 // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib" 650 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o" 651 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crtn.o" 652 // 653 // Check Fedora 21 on AArch64. 654 // RUN: %clang -### %s -no-pie 2>&1 \ 655 // RUN: --target=arm64-unknown-linux-gnu -rtlib=platform \ 656 // RUN: --gcc-toolchain="" \ 657 // RUN: --sysroot=%S/Inputs/fedora_21_tree \ 658 // RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s 659 // RUN: %clang -### %s -no-pie 2>&1 \ 660 // RUN: --target=aarch64-unknown-linux-gnu -rtlib=platform \ 661 // RUN: --gcc-toolchain="" \ 662 // RUN: --sysroot=%S/Inputs/fedora_21_tree \ 663 // RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s 664 // CHECK-FEDORA-21-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 665 // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crt1.o" 666 // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crti.o" 667 // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtbegin.o" 668 // CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0" 669 // CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64" 670 // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtend.o" 671 // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crtn.o" 672 // 673 // Check Fedora 31 on riscv64. 674 // RUN: %clang -### %s -no-pie 2>&1 \ 675 // RUN: --target=riscv64-redhat-linux -rtlib=platform \ 676 // RUN: --gcc-toolchain="" \ 677 // RUN: --sysroot=%S/Inputs/fedora_31_riscv64_tree \ 678 // RUN: | FileCheck --check-prefix=CHECK-FEDORA-31-RISCV64 %s 679 // CHECK-FEDORA-31-RISCV64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 680 // CHECK-FEDORA-31-RISCV64: "{{.*}}/usr/lib/gcc/riscv64-redhat-linux/9/../../../../lib64{{/|\\\\}}crt1.o" 681 // CHECK-FEDORA-31-RISCV64: "{{.*}}/usr/lib/gcc/riscv64-redhat-linux/9{{/|\\\\}}crti.o" 682 // CHECK-FEDORA-31-RISCV64: "{{.*}}/usr/lib/gcc/riscv64-redhat-linux/9{{/|\\\\}}crtbegin.o" 683 // CHECK-FEDORA-31-RISCV64: "-L[[SYSROOT]]/usr/lib/gcc/riscv64-redhat-linux/9" 684 // CHECK-FEDORA-31-RISCV64: "-L[[SYSROOT]]/usr/lib/gcc/riscv64-redhat-linux/9/../../../../lib64" 685 // CHECK-FEDORA-31-RISCV64: "{{.*}}/usr/lib/gcc/riscv64-redhat-linux/9{{/|\\\\}}crtend.o" 686 // CHECK-FEDORA-31-RISCV64: "{{.*}}/usr/lib/gcc/riscv64-redhat-linux/9{{/|\\\\}}crtn.o" 687 // 688 // RUN: %clang -### %s -no-pie 2>&1 \ 689 // RUN: --target=arm-unknown-linux-gnueabi -rtlib=platform \ 690 // RUN: --gcc-toolchain="" \ 691 // RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \ 692 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s 693 // CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 694 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/arm-linux-gnueabi{{/|\\\\}}crt1.o" 695 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/arm-linux-gnueabi{{/|\\\\}}crti.o" 696 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o" 697 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1" 698 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi" 699 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi" 700 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o" 701 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/arm-linux-gnueabi{{/|\\\\}}crtn.o" 702 // 703 // Test the setup that shipped in SUSE 10.3 on ppc64. 704 // RUN: %clang -### %s -no-pie 2>&1 \ 705 // RUN: --target=powerpc64-suse-linux -rtlib=platform \ 706 // RUN: --gcc-toolchain="" \ 707 // RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \ 708 // RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s 709 // CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 710 // CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o" 711 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64" 712 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64" 713 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64" 714 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64" 715 // 716 // Check openSuse Leap 42.2 on AArch64 717 // RUN: %clang -### %s -no-pie 2>&1 \ 718 // RUN: --target=arm64-unknown-linux-gnu -rtlib=platform \ 719 // RUN: --gcc-toolchain="" \ 720 // RUN: --sysroot=%S/Inputs/opensuse_42.2_aarch64_tree \ 721 // RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-42-2-AARCH64 %s 722 // RUN: %clang -### %s -no-pie 2>&1 \ 723 // RUN: --target=aarch64-unknown-linux-gnu -rtlib=platform \ 724 // RUN: --gcc-toolchain="" \ 725 // RUN: --sysroot=%S/Inputs/opensuse_42.2_aarch64_tree \ 726 // RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-42-2-AARCH64 %s 727 // CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 728 // CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}/usr/lib64/gcc/aarch64-suse-linux/4.8/../../../../lib64{{/|\\\\}}crt1.o" 729 // CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}/usr/lib64/gcc/aarch64-suse-linux/4.8/../../../../lib64{{/|\\\\}}crti.o" 730 // CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}/usr/lib64/gcc/aarch64-suse-linux/4.8{{/|\\\\}}crtbegin.o" 731 // CHECK-OPENSUSE-42-2-AARCH64: "-L[[SYSROOT]]/usr/lib64/gcc/aarch64-suse-linux/4.8" 732 // CHECK-OPENSUSE-42-2-AARCH64: "-L[[SYSROOT]]/usr/lib64/gcc/aarch64-suse-linux/4.8/../../../../lib64" 733 // CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}/usr/lib64/gcc/aarch64-suse-linux/4.8{{/|\\\\}}crtend.o" 734 // CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}/usr/lib64/gcc/aarch64-suse-linux/4.8/../../../../lib64{{/|\\\\}}crtn.o" 735 // 736 // Check openSUSE Tumbleweed on armv6hl 737 // RUN: %clang -### %s -no-pie 2>&1 \ 738 // RUN: --target=armv6hl-suse-linux-gnueabi -rtlib=platform \ 739 // RUN: --gcc-toolchain="" \ 740 // RUN: --sysroot=%S/Inputs/opensuse_tumbleweed_armv6hl_tree \ 741 // RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-TW-ARMV6HL %s 742 // RUN: %clang -### %s -no-pie 2>&1 \ 743 // RUN: --target=armv6hl-suse-linux-gnueabi -rtlib=platform \ 744 // RUN: --gcc-toolchain="" \ 745 // RUN: --sysroot=%S/Inputs/opensuse_tumbleweed_armv6hl_tree \ 746 // RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-TW-ARMV6HL %s 747 // CHECK-OPENSUSE-TW-ARMV6HL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 748 // CHECK-OPENSUSE-TW-ARMV6HL: "{{.*}}/usr/lib/gcc/armv6hl-suse-linux-gnueabi/5/../../../../lib{{/|\\\\}}crt1.o" 749 // CHECK-OPENSUSE-TW-ARMV6HL: "{{.*}}/usr/lib/gcc/armv6hl-suse-linux-gnueabi/5/../../../../lib{{/|\\\\}}crti.o" 750 // CHECK-OPENSUSE-TW-ARMV6HL: "{{.*}}/usr/lib/gcc/armv6hl-suse-linux-gnueabi/5{{/|\\\\}}crtbegin.o" 751 // CHECK-OPENSUSE-TW-ARMV6HL: "-L[[SYSROOT]]/usr/lib/gcc/armv6hl-suse-linux-gnueabi/5" 752 // CHECK-OPENSUSE-TW-ARMV6HL: "-L[[SYSROOT]]/usr/lib/gcc/armv6hl-suse-linux-gnueabi/5/../../../../lib" 753 // CHECK-OPENSUSE-TW-ARMV6HL: "{{.*}}/usr/lib/gcc/armv6hl-suse-linux-gnueabi/5{{/|\\\\}}crtend.o" 754 // CHECK-OPENSUSE-TW-ARMV6HL: "{{.*}}/usr/lib/gcc/armv6hl-suse-linux-gnueabi/5/../../../../lib{{/|\\\\}}crtn.o" 755 // 756 // Check openSUSE Tumbleweed on armv7hl 757 // RUN: %clang -### %s -no-pie 2>&1 \ 758 // RUN: --target=armv7hl-suse-linux-gnueabi -rtlib=platform \ 759 // RUN: --gcc-toolchain="" \ 760 // RUN: --sysroot=%S/Inputs/opensuse_tumbleweed_armv7hl_tree \ 761 // RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-TW-ARMV7HL %s 762 // RUN: %clang -### %s -no-pie 2>&1 \ 763 // RUN: --target=armv7hl-suse-linux-gnueabi -rtlib=platform \ 764 // RUN: --gcc-toolchain="" \ 765 // RUN: --sysroot=%S/Inputs/opensuse_tumbleweed_armv7hl_tree \ 766 // RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-TW-ARMV7HL %s 767 // CHECK-OPENSUSE-TW-ARMV7HL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 768 // CHECK-OPENSUSE-TW-ARMV7HL: "{{.*}}/usr/lib/gcc/armv7hl-suse-linux-gnueabi/5/../../../../lib{{/|\\\\}}crt1.o" 769 // CHECK-OPENSUSE-TW-ARMV7HL: "{{.*}}/usr/lib/gcc/armv7hl-suse-linux-gnueabi/5/../../../../lib{{/|\\\\}}crti.o" 770 // CHECK-OPENSUSE-TW-ARMV7HL: "{{.*}}/usr/lib/gcc/armv7hl-suse-linux-gnueabi/5{{/|\\\\}}crtbegin.o" 771 // CHECK-OPENSUSE-TW-ARMV7HL: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-suse-linux-gnueabi/5" 772 // CHECK-OPENSUSE-TW-ARMV7HL: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-suse-linux-gnueabi/5/../../../../lib" 773 // CHECK-OPENSUSE-TW-ARMV7HL: "{{.*}}/usr/lib/gcc/armv7hl-suse-linux-gnueabi/5{{/|\\\\}}crtend.o" 774 // CHECK-OPENSUSE-TW-ARMV7HL: "{{.*}}/usr/lib/gcc/armv7hl-suse-linux-gnueabi/5/../../../../lib{{/|\\\\}}crtn.o" 775 // 776 // Check openSUSE Tumbleweed on riscv64 777 // RUN: %clang -### %s -no-pie 2>&1 \ 778 // RUN: --target=riscv64-suse-linux -rtlib=platform \ 779 // RUN: --gcc-toolchain="" \ 780 // RUN: --sysroot=%S/Inputs/opensuse_tumbleweed_riscv64_tree \ 781 // RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-TW-RISCV64 %s 782 // RUN: %clang -### %s -no-pie 2>&1 \ 783 // RUN: --target=riscv64-suse-linux -rtlib=platform \ 784 // RUN: --gcc-toolchain="" \ 785 // RUN: --sysroot=%S/Inputs/opensuse_tumbleweed_riscv64_tree \ 786 // RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-TW-RISCV64 %s 787 // CHECK-OPENSUSE-TW-RISCV64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 788 // CHECK-OPENSUSE-TW-RISCV64: "{{.*}}/usr/lib64/gcc/riscv64-suse-linux/9/../../../../lib64{{/|\\\\}}crt1.o" 789 // CHECK-OPENSUSE-TW-RISCV64: "{{.*}}/usr/lib64/gcc/riscv64-suse-linux/9/../../../../lib64{{/|\\\\}}crti.o" 790 // CHECK-OPENSUSE-TW-RISCV64: "{{.*}}/usr/lib64/gcc/riscv64-suse-linux/9{{/|\\\\}}crtbegin.o" 791 // CHECK-OPENSUSE-TW-RISCV64: "-L[[SYSROOT]]/usr/lib64/gcc/riscv64-suse-linux/9" 792 // CHECK-OPENSUSE-TW-RISCV64: "-L[[SYSROOT]]/usr/lib64/gcc/riscv64-suse-linux/9/../../../../lib64" 793 // CHECK-OPENSUSE-TW-RISCV64: "{{.*}}/usr/lib64/gcc/riscv64-suse-linux/9{{/|\\\\}}crtend.o" 794 // CHECK-OPENSUSE-TW-RISCV64: "{{.*}}/usr/lib64/gcc/riscv64-suse-linux/9/../../../../lib64{{/|\\\\}}crtn.o" 795 // 796 // Check openSUSE Tumbleweed on ppc 797 // RUN: %clang -### %s -no-pie 2>&1 \ 798 // RUN: --target=powerpc-unknown-linux-gnu -rtlib=platform \ 799 // RUN: --gcc-toolchain="" \ 800 // RUN: --sysroot=%S/Inputs/opensuse_tumbleweed_ppc_tree \ 801 // RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-TW-PPC %s 802 // CHECK-OPENSUSE-TW-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 803 // CHECK-OPENSUSE-TW-PPC: "{{.*}}/usr/lib{{/|\\\\}}crt1.o" 804 // CHECK-OPENSUSE-TW-PPC: "{{.*}}/usr/lib{{/|\\\\}}crti.o" 805 // CHECK-OPENSUSE-TW-PPC: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/9{{/|\\\\}}crtbegin.o" 806 // CHECK-OPENSUSE-TW-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/9" 807 // CHECK-OPENSUSE-TW-PPC: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/9{{/|\\\\}}crtend.o" 808 // CHECK-OPENSUSE-TW-PPC: "{{.*}}/usr/lib/crtn.o" 809 // 810 // Check dynamic-linker for different archs 811 // RUN: %clang -### %s -no-pie 2>&1 \ 812 // RUN: --target=arm-linux-gnueabi \ 813 // RUN: | FileCheck --check-prefix=CHECK-ARM %s 814 // CHECK-ARM: "{{.*}}ld{{(.exe)?}}" 815 // CHECK-ARM: "-m" "armelf_linux_eabi" 816 // CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3" 817 // 818 // RUN: %clang -### %s -no-pie 2>&1 \ 819 // RUN: --target=arm-linux-gnueabi -mfloat-abi=hard \ 820 // RUN: | FileCheck --check-prefix=CHECK-ARM-ABIHF %s 821 // CHECK-ARM-ABIHF: "{{.*}}ld{{(.exe)?}}" 822 // CHECK-ARM-ABIHF: "-m" "armelf_linux_eabi" 823 // CHECK-ARM-ABIHF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3" 824 // 825 // RUN: %clang -### %s -no-pie 2>&1 \ 826 // RUN: --target=arm-linux-gnueabihf \ 827 // RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s 828 // CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}" 829 // CHECK-ARM-HF: "-m" "armelf_linux_eabi" 830 // CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3" 831 // 832 // RUN: %clang -### %s -no-pie 2>&1 \ 833 // RUN: --target=powerpc64-linux-gnu \ 834 // RUN: | FileCheck --check-prefix=CHECK-PPC64 %s 835 // CHECK-PPC64: "{{.*}}ld{{(.exe)?}}" 836 // CHECK-PPC64: "-m" "elf64ppc" 837 // CHECK-PPC64: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.1" 838 // 839 // RUN: %clang -### %s -no-pie 2>&1 \ 840 // RUN: --target=powerpc64-linux-gnu -mabi=elfv1 \ 841 // RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv1 %s 842 // CHECK-PPC64-ELFv1: "{{.*}}ld{{(.exe)?}}" 843 // CHECK-PPC64-ELFv1: "-m" "elf64ppc" 844 // CHECK-PPC64-ELFv1: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.1" 845 // 846 // RUN: %clang -### %s -no-pie 2>&1 \ 847 // RUN: --target=powerpc64-linux-gnu -mabi=elfv2 \ 848 // RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv2 %s 849 // CHECK-PPC64-ELFv2: "{{.*}}ld{{(.exe)?}}" 850 // CHECK-PPC64-ELFv2: "-m" "elf64ppc" 851 // CHECK-PPC64-ELFv2: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.2" 852 // 853 // RUN: %clang -### %s -no-pie 2>&1 \ 854 // RUN: --target=powerpc64le-linux-gnu \ 855 // RUN: | FileCheck --check-prefix=CHECK-PPC64LE %s 856 // CHECK-PPC64LE: "{{.*}}ld{{(.exe)?}}" 857 // CHECK-PPC64LE: "-m" "elf64lppc" 858 // CHECK-PPC64LE: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.2" 859 // 860 // RUN: %clang -### %s -no-pie 2>&1 \ 861 // RUN: --target=powerpc64le-linux-gnu -mabi=elfv1 \ 862 // RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv1 %s 863 // CHECK-PPC64LE-ELFv1: "{{.*}}ld{{(.exe)?}}" 864 // CHECK-PPC64LE-ELFv1: "-m" "elf64lppc" 865 // CHECK-PPC64LE-ELFv1: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.1" 866 // 867 // RUN: %clang -### %s -no-pie 2>&1 \ 868 // RUN: --target=powerpc64le-linux-gnu -mabi=elfv2 \ 869 // RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv2 %s 870 // CHECK-PPC64LE-ELFv2: "{{.*}}ld{{(.exe)?}}" 871 // CHECK-PPC64LE-ELFv2: "-m" "elf64lppc" 872 // CHECK-PPC64LE-ELFv2: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.2" 873 // 874 // Check that we do not pass --hash-style=gnu or --hash-style=both to 875 // hexagon linux linker 876 // RUN: %clang -### %s -no-pie 2>&1 \ 877 // RUN: --target=hexagon-linux-gnu \ 878 // RUN: | FileCheck --check-prefix=CHECK-HEXAGON %s 879 // CHECK-HEXAGON: "{{.*}}{{hexagon-link|ld}}{{(.exe)?}}" 880 // CHECK-HEXAGON-NOT: "--hash-style={{gnu|both}}" 881 // 882 // Check that we do not pass --hash-style=gnu and --hash-style=both to linker 883 // and provide correct path to the dynamic linker and emulation mode when build 884 // for MIPS platforms. 885 // RUN: %clang -### %s -no-pie 2>&1 \ 886 // RUN: --target=mips-linux-gnu \ 887 // RUN: | FileCheck --check-prefix=CHECK-MIPS %s 888 // CHECK-MIPS: "{{.*}}ld{{(.exe)?}}" 889 // CHECK-MIPS: "-m" "elf32btsmip" 890 // CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1" 891 // CHECK-MIPS-NOT: "--hash-style={{gnu|both}}" 892 // 893 // RUN: %clang -### %s -no-pie 2>&1 \ 894 // RUN: --target=mipsel-linux-gnu \ 895 // RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s 896 // CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}" 897 // CHECK-MIPSEL: "-m" "elf32ltsmip" 898 // CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1" 899 // CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}" 900 // 901 // RUN: %clang -### %s -no-pie 2>&1 --target=mipsel-linux-gnu -mnan=2008 \ 902 // RUN: | FileCheck --check-prefix=CHECK-MIPSEL-NAN2008 %s 903 // CHECK-MIPSEL-NAN2008: "{{.*}}ld{{(.exe)?}}" 904 // CHECK-MIPSEL-NAN2008: "-m" "elf32ltsmip" 905 // CHECK-MIPSEL-NAN2008: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1" 906 // CHECK-MIPSEL-NAN2008-NOT: "--hash-style={{gnu|both}}" 907 // 908 // RUN: %clang -### %s -no-pie 2>&1 --target=mipsel-linux-gnu -mcpu=mips32r6 \ 909 // RUN: | FileCheck --check-prefix=CHECK-MIPS32R6EL %s 910 // CHECK-MIPS32R6EL: "{{.*}}ld{{(.exe)?}}" 911 // CHECK-MIPS32R6EL: "-m" "elf32ltsmip" 912 // CHECK-MIPS32R6EL: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1" 913 // CHECK-MIPS32R6EL-NOT: "--hash-style={{gnu|both}}" 914 // 915 // RUN: %clang -### %s -no-pie 2>&1 \ 916 // RUN: --target=mips64-linux-gnu \ 917 // RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s 918 // CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}" 919 // CHECK-MIPS64: "-m" "elf64btsmip" 920 // CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld.so.1" 921 // CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}" 922 // 923 // RUN: %clang -### %s -no-pie 2>&1 \ 924 // RUN: --target=mips64el-linux-gnu \ 925 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s 926 // CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}" 927 // CHECK-MIPS64EL: "-m" "elf64ltsmip" 928 // CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld.so.1" 929 // CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}" 930 // 931 // RUN: %clang -### %s -no-pie 2>&1 --target=mips64el-linux-gnu -mnan=2008 \ 932 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-NAN2008 %s 933 // CHECK-MIPS64EL-NAN2008: "{{.*}}ld{{(.exe)?}}" 934 // CHECK-MIPS64EL-NAN2008: "-m" "elf64ltsmip" 935 // CHECK-MIPS64EL-NAN2008: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld-linux-mipsn8.so.1" 936 // CHECK-MIPS64EL-NAN2008-NOT: "--hash-style={{gnu|both}}" 937 // 938 // RUN: %clang -### %s -no-pie 2>&1 --target=mips64el-linux-gnu -mcpu=mips64r6 \ 939 // RUN: | FileCheck --check-prefix=CHECK-MIPS64R6EL %s 940 // CHECK-MIPS64R6EL: "{{.*}}ld{{(.exe)?}}" 941 // CHECK-MIPS64R6EL: "-m" "elf64ltsmip" 942 // CHECK-MIPS64R6EL: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld-linux-mipsn8.so.1" 943 // CHECK-MIPS64R6EL-NOT: "--hash-style={{gnu|both}}" 944 // 945 // RUN: %clang -### %s -no-pie 2>&1 \ 946 // RUN: --target=mips64-linux-gnu -mabi=n32 \ 947 // RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s 948 // CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" 949 // CHECK-MIPS64-N32: "-m" "elf32btsmipn32" 950 // CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib{{(32)?}}/ld.so.1" 951 // CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}" 952 // 953 // RUN: %clang -### %s -no-pie 2>&1 \ 954 // RUN: --target=mips64el-linux-gnu -mabi=n32 \ 955 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s 956 // CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" 957 // CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32" 958 // CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib{{(32)?}}/ld.so.1" 959 // CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}" 960 // 961 // RUN: %clang -### %s -no-pie 2>&1 --target=mips64el-linux-gnu -mabi=n32 \ 962 // RUN: -mnan=2008 | FileCheck --check-prefix=CHECK-MIPS64EL-N32-NAN2008 %s 963 // CHECK-MIPS64EL-N32-NAN2008: "{{.*}}ld{{(.exe)?}}" 964 // CHECK-MIPS64EL-N32-NAN2008: "-m" "elf32ltsmipn32" 965 // CHECK-MIPS64EL-N32-NAN2008: "-dynamic-linker" "{{.*}}/lib{{(32)?}}/ld-linux-mipsn8.so.1" 966 // CHECK-MIPS64EL-N32-NAN2008-NOT: "--hash-style={{gnu|both}}" 967 // 968 // RUN: %clang -### %s -no-pie 2>&1 --target=mips64el-redhat-linux \ 969 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-REDHAT %s 970 // CHECK-MIPS64EL-REDHAT: "{{.*}}ld{{(.exe)?}}" 971 // CHECK-MIPS64EL-REDHAT: "-m" "elf64ltsmip" 972 // CHECK-MIPS64EL-REDHAT: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld.so.1" 973 // CHECK-MIPS64EL-REDHAT-NOT: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld-musl-mipsel.so.1" 974 // CHECK-MIPS64EL-REDHAT-NOT: "--hash-style={{gnu|both}}" 975 976 // Check that we pass --hash-style=both for pre-M Android versions and 977 // --hash-style=gnu for newer Android versions. 978 // RUN: %clang -### %s -no-pie 2>&1 \ 979 // RUN: --target=armv7-linux-android21 \ 980 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-HASH-STYLE-L %s 981 // CHECK-ANDROID-HASH-STYLE-L: "{{.*}}ld{{(.exe)?}}" 982 // CHECK-ANDROID-HASH-STYLE-L: "--hash-style=both" 983 // 984 // RUN: %clang -### %s -no-pie 2>&1 \ 985 // RUN: --target=armv7-linux-android23 \ 986 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-HASH-STYLE-M %s 987 // CHECK-ANDROID-HASH-STYLE-M: "{{.*}}ld{{(.exe)?}}" 988 // CHECK-ANDROID-HASH-STYLE-M: "--hash-style=gnu" 989 990 // RUN: %clang -### %s -no-pie 2>&1 --target=mips64-linux-gnuabin32 \ 991 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-GNUABIN32 %s 992 // CHECK-MIPS64EL-GNUABIN32: "{{.*}}ld{{(.exe)?}}" 993 // CHECK-MIPS64EL-GNUABIN32: "-m" "elf32btsmipn32" 994 // CHECK-MIPS64EL-GNUABIN32: "-dynamic-linker" "{{.*}}/lib{{(32)?}}/ld.so.1" 995 // CHECK-MIPS64EL-GNUABIN32-NOT: "--hash-style={{gnu|both}}" 996 // 997 // RUN: %clang -### %s -no-pie 2>&1 --target=mips64-linux-gnuabi64 \ 998 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-GNUABI64 %s 999 // CHECK-MIPS64EL-GNUABI64: "{{.*}}ld{{(.exe)?}}" 1000 // CHECK-MIPS64EL-GNUABI64: "-m" "elf64btsmip" 1001 // CHECK-MIPS64EL-GNUABI64: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld.so.1" 1002 // CHECK-MIPS64EL-GNUABI64-NOT: "--hash-style={{gnu|both}}" 1003 // 1004 // RUN: %clang -### %s -no-pie 2>&1 \ 1005 // RUN: --target=sparc-unknown-linux-gnu \ 1006 // RUN: | FileCheck --check-prefix=CHECK-SPARCV8 %s 1007 // CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}" 1008 // CHECK-SPARCV8: "-m" "elf32_sparc" 1009 // CHECK-SPARCV8: "-dynamic-linker" "{{(/usr/sparc-unknown-linux-gnu)?}}/lib/ld-linux.so.2" 1010 // CHECK-SPARCV8: "--push-state" "--as-needed" "-latomic" "--pop-state" 1011 // 1012 // RUN: %clang -### %s -no-pie 2>&1 \ 1013 // RUN: --target=sparcel-unknown-linux-gnu \ 1014 // RUN: | FileCheck --check-prefix=CHECK-SPARCV8EL %s 1015 // CHECK-SPARCV8EL: "{{.*}}ld{{(.exe)?}}" 1016 // CHECK-SPARCV8EL: "-m" "elf32_sparc" 1017 // CHECK-SPARCV8EL: "-dynamic-linker" "{{(/usr/sparcel-unknown-linux-gnu)?}}/lib/ld-linux.so.2" 1018 // 1019 // RUN: %clang -### %s -no-pie 2>&1 \ 1020 // RUN: --target=sparcv9-unknown-linux-gnu \ 1021 // RUN: | FileCheck --check-prefix=CHECK-SPARCV9 %s 1022 // CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}" 1023 // CHECK-SPARCV9: "-m" "elf64_sparc" 1024 // CHECK-SPARCV9: "-dynamic-linker" "{{(/usr/sparcv9-unknown-linux-gnu)?}}/lib{{(64)?}}/ld-linux.so.2" 1025 // CHECK-SPARCV9-NOT: "-latomic" 1026 1027 // Test linker invocation on Android. 1028 // RUN: %clang -### %s -no-pie 2>&1 \ 1029 // RUN: --target=arm-linux-androideabi -rtlib=platform --unwindlib=platform \ 1030 // RUN: --gcc-toolchain="" \ 1031 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1032 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1033 // RUN: %clang -### %s -no-pie 2>&1 \ 1034 // RUN: --target=arm-linux-android -rtlib=platform --unwindlib=platform \ 1035 // RUN: --gcc-toolchain="" \ 1036 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1037 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1038 // RUN: %clang -### %s -no-pie 2>&1 \ 1039 // RUN: --target=aarch64-linux-android -rtlib=platform --unwindlib=platform \ 1040 // RUN: --gcc-toolchain="" \ 1041 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1042 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1043 // RUN: %clang -### %s -no-pie 2>&1 \ 1044 // RUN: --target=arm64-linux-android -rtlib=platform --unwindlib=platform \ 1045 // RUN: --gcc-toolchain="" \ 1046 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1047 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1048 // RUN: %clang -### %s -no-pie 2>&1 \ 1049 // RUN: --target=mipsel-linux-android -rtlib=platform --unwindlib=platform \ 1050 // RUN: --gcc-toolchain="" \ 1051 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1052 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1053 // RUN: %clang -### %s -no-pie 2>&1 \ 1054 // RUN: --target=mips64el-linux-android -rtlib=platform --unwindlib=platform \ 1055 // RUN: --gcc-toolchain="" \ 1056 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1057 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1058 // RUN: %clang -### %s -no-pie 2>&1 \ 1059 // RUN: --target=i686-linux-android -rtlib=platform --unwindlib=platform \ 1060 // RUN: --gcc-toolchain="" \ 1061 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1062 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1063 // RUN: %clang -### %s -no-pie 2>&1 \ 1064 // RUN: --target=x86_64-linux-android -rtlib=platform --unwindlib=platform \ 1065 // RUN: --gcc-toolchain="" \ 1066 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1067 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1068 // CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1069 // CHECK-ANDROID: "-z" "now" 1070 // CHECK-ANDROID: "-z" "relro" 1071 // CHECK-ANDROID: "--enable-new-dtags" 1072 // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o" 1073 // CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib" 1074 // CHECK-ANDROID-NOT: "-lgcc_s" 1075 // CHECK-ANDROID-NOT: "-lgcc" 1076 // CHECK-ANDROID: "-l:libunwind.a" 1077 // CHECK-ANDROID: "-ldl" 1078 // CHECK-ANDROID-NOT: "-lgcc_s" 1079 // CHECK-ANDROID-NOT: "-lgcc" 1080 // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o" 1081 // RUN: %clang -### %s -no-pie 2>&1 \ 1082 // RUN: --target=arm-linux-androideabi -rtlib=platform --unwindlib=platform \ 1083 // RUN: --gcc-toolchain="" \ 1084 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1085 // RUN: -shared \ 1086 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1087 // RUN: %clang -### %s -no-pie 2>&1 \ 1088 // RUN: --target=arm-linux-android -rtlib=platform --unwindlib=platform \ 1089 // RUN: --gcc-toolchain="" \ 1090 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1091 // RUN: -shared \ 1092 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1093 // RUN: %clang -### %s -no-pie 2>&1 \ 1094 // RUN: --target=aarch64-linux-android -rtlib=platform --unwindlib=platform \ 1095 // RUN: --gcc-toolchain="" \ 1096 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1097 // RUN: -shared \ 1098 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1099 // RUN: %clang -### %s -no-pie 2>&1 \ 1100 // RUN: --target=arm64-linux-android -rtlib=platform --unwindlib=platform \ 1101 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1102 // RUN: -shared \ 1103 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1104 // RUN: %clang -### %s -no-pie 2>&1 \ 1105 // RUN: --target=mipsel-linux-android -rtlib=platform --unwindlib=platform \ 1106 // RUN: --gcc-toolchain="" \ 1107 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1108 // RUN: -shared \ 1109 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1110 // RUN: %clang -### %s -no-pie 2>&1 \ 1111 // RUN: --target=mips64el-linux-android -rtlib=platform --unwindlib=platform \ 1112 // RUN: --gcc-toolchain="" \ 1113 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1114 // RUN: -shared \ 1115 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1116 // RUN: %clang -### %s -no-pie 2>&1 \ 1117 // RUN: --target=i686-linux-android -rtlib=platform --unwindlib=platform \ 1118 // RUN: --gcc-toolchain="" \ 1119 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1120 // RUN: -shared \ 1121 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1122 // RUN: %clang -### %s -no-pie 2>&1 \ 1123 // RUN: --target=x86_64-linux-android -rtlib=platform --unwindlib=platform \ 1124 // RUN: --gcc-toolchain="" \ 1125 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1126 // RUN: -shared \ 1127 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1128 // CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1129 // CHECK-ANDROID-SO-NOT: "-Bsymbolic" 1130 // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o" 1131 // CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib" 1132 // CHECK-ANDROID-SO-NOT: "-lgcc_s" 1133 // CHECK-ANDROID-SO-NOT: "-lgcc" 1134 // CHECK-ANDROID-SO: "-l:libunwind.a" 1135 // CHECK-ANDROID-SO: "-ldl" 1136 // CHECK-ANDROID-SO-NOT: "-lgcc_s" 1137 // CHECK-ANDROID-SO-NOT: "-lgcc" 1138 // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o" 1139 // RUN: %clang -### %s -no-pie 2>&1 \ 1140 // RUN: --target=arm-linux-androideabi -rtlib=platform --unwindlib=platform \ 1141 // RUN: --gcc-toolchain="" \ 1142 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1143 // RUN: -static \ 1144 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1145 // RUN: %clang -### %s -no-pie 2>&1 \ 1146 // RUN: --target=arm-linux-android -rtlib=platform --unwindlib=platform \ 1147 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1148 // RUN: -static \ 1149 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1150 // RUN: %clang -### %s -no-pie 2>&1 \ 1151 // RUN: --target=aarch64-linux-android -rtlib=platform --unwindlib=platform \ 1152 // RUN: --gcc-toolchain="" \ 1153 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1154 // RUN: -static \ 1155 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1156 // RUN: %clang -### %s -no-pie 2>&1 \ 1157 // RUN: --target=arm64-linux-android -rtlib=platform --unwindlib=platform \ 1158 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1159 // RUN: -static \ 1160 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1161 // RUN: %clang -### %s -no-pie 2>&1 \ 1162 // RUN: --target=mipsel-linux-android -rtlib=platform --unwindlib=platform \ 1163 // RUN: --gcc-toolchain="" \ 1164 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1165 // RUN: -static \ 1166 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1167 // RUN: %clang -### %s -no-pie 2>&1 \ 1168 // RUN: --target=mips64el-linux-android -rtlib=platform --unwindlib=platform \ 1169 // RUN: --gcc-toolchain="" \ 1170 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1171 // RUN: -static \ 1172 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1173 // RUN: %clang -### %s -no-pie 2>&1 \ 1174 // RUN: --target=i686-linux-android -rtlib=platform --unwindlib=platform \ 1175 // RUN: --gcc-toolchain="" \ 1176 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1177 // RUN: -static \ 1178 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1179 // RUN: %clang -### %s -no-pie 2>&1 \ 1180 // RUN: --target=x86_64-linux-android -rtlib=platform --unwindlib=platform \ 1181 // RUN: --gcc-toolchain="" \ 1182 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1183 // RUN: -static \ 1184 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1185 // CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1186 // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o" 1187 // CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib" 1188 // CHECK-ANDROID-STATIC-NOT: "-lgcc_eh" 1189 // CHECK-ANDROID-STATIC-NOT: "-lgcc" 1190 // CHECK-ANDROID-STATIC: "-l:libunwind.a" 1191 // CHECK-ANDROID-STATIC-NOT: "-ldl" 1192 // CHECK-ANDROID-STATIC-NOT: "-lgcc_eh" 1193 // CHECK-ANDROID-STATIC-NOT: "-lgcc" 1194 // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o" 1195 // RUN: %clang -### %s -no-pie 2>&1 \ 1196 // RUN: --target=arm-linux-androideabi -rtlib=platform --unwindlib=platform \ 1197 // RUN: --gcc-toolchain="" \ 1198 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1199 // RUN: -pie \ 1200 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1201 // RUN: %clang -### %s -no-pie 2>&1 \ 1202 // RUN: --target=arm-linux-android -rtlib=platform --unwindlib=platform \ 1203 // RUN: --gcc-toolchain="" \ 1204 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1205 // RUN: -pie \ 1206 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1207 // RUN: %clang -### %s -no-pie 2>&1 \ 1208 // RUN: --target=aarch64-linux-android -rtlib=platform --unwindlib=platform \ 1209 // RUN: --gcc-toolchain="" \ 1210 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1211 // RUN: -pie \ 1212 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1213 // RUN: %clang -### %s -no-pie 2>&1 \ 1214 // RUN: --target=arm64-linux-android -rtlib=platform --unwindlib=platform \ 1215 // RUN: --gcc-toolchain="" \ 1216 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1217 // RUN: -pie \ 1218 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1219 // RUN: %clang -### %s -no-pie 2>&1 \ 1220 // RUN: --target=mipsel-linux-android -rtlib=platform --unwindlib=platform \ 1221 // RUN: --gcc-toolchain="" \ 1222 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1223 // RUN: -pie \ 1224 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1225 // RUN: %clang -### %s -no-pie 2>&1 \ 1226 // RUN: --target=mips64el-linux-android -rtlib=platform --unwindlib=platform \ 1227 // RUN: --gcc-toolchain="" \ 1228 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1229 // RUN: -pie \ 1230 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1231 // RUN: %clang -### %s -no-pie 2>&1 \ 1232 // RUN: --target=i686-linux-android -rtlib=platform --unwindlib=platform \ 1233 // RUN: --gcc-toolchain="" \ 1234 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1235 // RUN: -pie \ 1236 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1237 // RUN: %clang -### %s -no-pie 2>&1 \ 1238 // RUN: --target=x86_64-linux-android -rtlib=platform --unwindlib=platform \ 1239 // RUN: --gcc-toolchain="" \ 1240 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1241 // RUN: -pie \ 1242 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1243 // CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1244 // CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o" 1245 // CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib" 1246 // CHECK-ANDROID-PIE-NOT: "-lgcc_s" 1247 // CHECK-ANDROID-PIE-NOT: "-lgcc" 1248 // CHECK-ANDROID-PIE: "-l:libunwind.a" 1249 // CHECK-ANDROID-PIE-NOT: "-lgcc_s" 1250 // CHECK-ANDROID-PIE-NOT: "-lgcc" 1251 // CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o" 1252 // RUN: %clang -### %s -no-pie 2>&1 \ 1253 // RUN: --target=arm-linux-androideabi \ 1254 // RUN: --gcc-toolchain="" \ 1255 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1256 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1257 // RUN: %clang -### %s -no-pie 2>&1 \ 1258 // RUN: --target=arm-linux-android \ 1259 // RUN: --gcc-toolchain="" \ 1260 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1261 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1262 // RUN: %clang -### %s -no-pie 2>&1 \ 1263 // RUN: --target=mipsel-linux-android \ 1264 // RUN: --gcc-toolchain="" \ 1265 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1266 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1267 // RUN: %clang -### %s -no-pie 2>&1 \ 1268 // RUN: --target=aarch64-linux-android \ 1269 // RUN: --gcc-toolchain="" \ 1270 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1271 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1272 // RUN: %clang -### %s -no-pie 2>&1 \ 1273 // RUN: --target=arm64-linux-android \ 1274 // RUN: --gcc-toolchain="" \ 1275 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1276 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1277 // RUN: %clang -### %s -no-pie 2>&1 \ 1278 // RUN: --target=mips64el-linux-android \ 1279 // RUN: --gcc-toolchain="" \ 1280 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1281 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1282 // RUN: %clang -### %s -no-pie 2>&1 \ 1283 // RUN: --target=i686-linux-android \ 1284 // RUN: --gcc-toolchain="" \ 1285 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1286 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1287 // RUN: %clang -### %s -no-pie 2>&1 \ 1288 // RUN: --target=x86_64-linux-android \ 1289 // RUN: --gcc-toolchain="" \ 1290 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1291 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1292 // CHECK-ANDROID-32: "-dynamic-linker" "/system/bin/linker" 1293 // CHECK-ANDROID-64: "-dynamic-linker" "/system/bin/linker64" 1294 // 1295 // Test that -pthread does not add -lpthread on Android. 1296 // RUN: %clang -### %s -no-pie 2>&1 \ 1297 // RUN: --target=arm-linux-androideabi -pthread \ 1298 // RUN: --gcc-toolchain="" \ 1299 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1300 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1301 // RUN: %clang -### %s -no-pie 2>&1 \ 1302 // RUN: --target=arm-linux-android -pthread \ 1303 // RUN: --gcc-toolchain="" \ 1304 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1305 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1306 // RUN: %clang -### %s -no-pie 2>&1 \ 1307 // RUN: --target=aarch64-linux-android -pthread \ 1308 // RUN: --gcc-toolchain="" \ 1309 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1310 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1311 // RUN: %clang -### %s -no-pie 2>&1 \ 1312 // RUN: --target=arm64-linux-android -pthread \ 1313 // RUN: --gcc-toolchain="" \ 1314 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1315 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1316 // RUN: %clang -### %s -no-pie 2>&1 \ 1317 // RUN: --target=mipsel-linux-android -pthread \ 1318 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1319 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1320 // RUN: %clang -### %s -no-pie 2>&1 \ 1321 // RUN: --target=mips64el-linux-android -pthread \ 1322 // RUN: --gcc-toolchain="" \ 1323 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1324 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1325 // RUN: %clang -### %s -no-pie 2>&1 \ 1326 // RUN: --target=i686-linux-android -pthread \ 1327 // RUN: --gcc-toolchain="" \ 1328 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1329 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1330 // RUN: %clang -### %s -no-pie 2>&1 \ 1331 // RUN: --target=x86_64-linux-android -pthread \ 1332 // RUN: --gcc-toolchain="" \ 1333 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1334 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1335 // RUN: %clang -### %s -no-pie 2>&1 \ 1336 // RUN: --target=arm-linux-androideabi -pthread \ 1337 // RUN: --gcc-toolchain="" \ 1338 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1339 // RUN: -shared \ 1340 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1341 // RUN: %clang -### %s -no-pie 2>&1 \ 1342 // RUN: --target=arm-linux-android -pthread \ 1343 // RUN: --gcc-toolchain="" \ 1344 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1345 // RUN: -shared \ 1346 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1347 // RUN: %clang -### %s -no-pie 2>&1 \ 1348 // RUN: --target=aarch64-linux-android -pthread \ 1349 // RUN: --gcc-toolchain="" \ 1350 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1351 // RUN: -shared \ 1352 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1353 // RUN: %clang -### %s -no-pie 2>&1 \ 1354 // RUN: --target=arm64-linux-android -pthread \ 1355 // RUN: --gcc-toolchain="" \ 1356 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1357 // RUN: -shared \ 1358 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1359 // RUN: %clang -### %s -no-pie 2>&1 \ 1360 // RUN: --target=mipsel-linux-android -pthread \ 1361 // RUN: --gcc-toolchain="" \ 1362 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1363 // RUN: -shared \ 1364 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1365 // RUN: %clang -### %s -no-pie 2>&1 \ 1366 // RUN: --target=mips64el-linux-android -pthread \ 1367 // RUN: --gcc-toolchain="" \ 1368 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1369 // RUN: -shared \ 1370 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1371 // RUN: %clang -### %s -no-pie 2>&1 \ 1372 // RUN: --target=i686-linux-android -pthread \ 1373 // RUN: --gcc-toolchain="" \ 1374 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1375 // RUN: -shared \ 1376 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1377 // RUN: %clang -### %s -no-pie 2>&1 \ 1378 // RUN: --target=x86_64-linux-android -pthread \ 1379 // RUN: --gcc-toolchain="" \ 1380 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1381 // RUN: -shared \ 1382 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1383 // CHECK-ANDROID-PTHREAD-NOT: -lpthread 1384 // 1385 // RUN: %clang %t.o -no-pie -### -o %t 2>&1 \ 1386 // RUN: --target=arm-linux-androideabi -pthread \ 1387 // RUN: --gcc-toolchain="" \ 1388 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1389 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD-LINK %s 1390 // CHECK-ANDROID-PTHREAD-LINK-NOT: argument unused during compilation: '-pthread' 1391 // 1392 // Check linker invocation on Debian 6 MIPS 32/64-bit. 1393 // RUN: %clang -### %s -no-pie 2>&1 \ 1394 // RUN: --target=mipsel-linux-gnu -rtlib=platform \ 1395 // RUN: --gcc-toolchain="" \ 1396 // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 1397 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s 1398 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1399 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o" 1400 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o" 1401 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o" 1402 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4" 1403 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib" 1404 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib" 1405 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib" 1406 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib" 1407 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib" 1408 // 1409 // RUN: %clang -### %s -no-pie 2>&1 \ 1410 // RUN: --target=mips64el-linux-gnu -rtlib=platform \ 1411 // RUN: --gcc-toolchain="" \ 1412 // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 1413 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s 1414 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1415 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o" 1416 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o" 1417 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o" 1418 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64" 1419 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64" 1420 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64" 1421 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64" 1422 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib" 1423 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib" 1424 // 1425 // RUN: %clang -### %s -no-pie 2>&1 \ 1426 // RUN: --target=mips64el-linux-gnu -rtlib=platform -mabi=n32 \ 1427 // RUN: --gcc-toolchain="" \ 1428 // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 1429 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s 1430 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1431 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o" 1432 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o" 1433 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o" 1434 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32" 1435 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32" 1436 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32" 1437 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32" 1438 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib" 1439 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib" 1440 // 1441 // RUN: %clang -### %s -no-pie 2>&1 \ 1442 // RUN: --target=mips64el-linux-gnuabi64 -rtlib=platform -mabi=32 \ 1443 // RUN: --gcc-toolchain="" \ 1444 // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 1445 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-O32 %s 1446 // CHECK-DEBIAN-ML-MIPS64EL-O32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1447 // CHECK-DEBIAN-ML-MIPS64EL-O32: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../libo32{{/|\\\\}}crt1.o" 1448 // CHECK-DEBIAN-ML-MIPS64EL-O32: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../libo32{{/|\\\\}}crti.o" 1449 // CHECK-DEBIAN-ML-MIPS64EL-O32: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/32{{/|\\\\}}crtbegin.o" 1450 // CHECK-DEBIAN-ML-MIPS64EL-O32: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/32" 1451 // CHECK-DEBIAN-ML-MIPS64EL-O32: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../libo32" 1452 // CHECK-DEBIAN-ML-MIPS64EL-O32: "-L[[SYSROOT]]/libo32" 1453 // CHECK-DEBIAN-ML-MIPS64EL-O32: "-L[[SYSROOT]]/usr/libo32" 1454 // CHECK-DEBIAN-ML-MIPS64EL-O32: "-L[[SYSROOT]]/lib" 1455 // CHECK-DEBIAN-ML-MIPS64EL-O32: "-L[[SYSROOT]]/usr/lib" 1456 // 1457 // RUN: %clang -### %s -no-pie 2>&1 \ 1458 // RUN: --target=mips64-unknown-linux-gnu --rtlib=platform \ 1459 // RUN: --gcc-toolchain="" \ 1460 // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 1461 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64-GNUABI %s 1462 // RUN: %clang -### %s -no-pie 2>&1 \ 1463 // RUN: --target=mips64-linux-gnuabi64 -rtlib=platform -mabi=n64 \ 1464 // RUN: --gcc-toolchain="" \ 1465 // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 1466 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64-GNUABI %s 1467 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1468 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/mips64-linux-gnuabi64{{/|\\\\}}crt1.o" 1469 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/mips64-linux-gnuabi64{{/|\\\\}}crti.o" 1470 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o" 1471 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9" 1472 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib/mips64-linux-gnuabi64" 1473 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64-linux-gnuabi64" 1474 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib" 1475 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib" 1476 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtend.o" 1477 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/mips64-linux-gnuabi64{{/|\\\\}}crtn.o" 1478 // 1479 // RUN: %clang -### %s -no-pie 2>&1 \ 1480 // RUN: --target=mips64el-unknown-linux-gnu -rtlib=platform \ 1481 // RUN: --gcc-toolchain="" \ 1482 // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 1483 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-GNUABI %s 1484 // RUN: %clang -### %s -no-pie 2>&1 \ 1485 // RUN: --target=mips64el-linux-gnuabi64 -rtlib=platform -mabi=n64 \ 1486 // RUN: --gcc-toolchain="" \ 1487 // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 1488 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-GNUABI %s 1489 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1490 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/mips64el-linux-gnuabi64{{/|\\\\}}crt1.o" 1491 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/mips64el-linux-gnuabi64{{/|\\\\}}crti.o" 1492 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o" 1493 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9" 1494 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib/mips64el-linux-gnuabi64" 1495 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64el-linux-gnuabi64" 1496 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib" 1497 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib" 1498 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtend.o" 1499 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/mips64el-linux-gnuabi64{{/|\\\\}}crtn.o" 1500 // 1501 // Test linker invocation for Freescale SDK (OpenEmbedded). 1502 // RUN: %clang -### %s -no-pie 2>&1 \ 1503 // RUN: --target=powerpc-fsl-linux -rtlib=platform \ 1504 // RUN: --gcc-toolchain="" \ 1505 // RUN: --sysroot=%S/Inputs/freescale_ppc_tree \ 1506 // RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s 1507 // CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1508 // CHECK-FSL-PPC: "-m" "elf32ppclinux" 1509 // CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o" 1510 // CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o" 1511 // CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib" 1512 // RUN: %clang -### %s -no-pie 2>&1 \ 1513 // RUN: --target=powerpc64-fsl-linux -rtlib=platform \ 1514 // RUN: --gcc-toolchain="" \ 1515 // RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \ 1516 // RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s 1517 // CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1518 // CHECK-FSL-PPC64: "-m" "elf64ppc" 1519 // CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o" 1520 // CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o" 1521 // 1522 // Check that crtfastmath.o is linked with -ffast-math and with -Ofast. 1523 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s \ 1524 // RUN: --gcc-toolchain="" \ 1525 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1526 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1527 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s -ffast-math \ 1528 // RUN: --gcc-toolchain="" \ 1529 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1530 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1531 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s -funsafe-math-optimizations\ 1532 // RUN: --gcc-toolchain="" \ 1533 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1534 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1535 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s -Ofast\ 1536 // RUN: --gcc-toolchain="" \ 1537 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1538 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1539 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s -Ofast -O3\ 1540 // RUN: --gcc-toolchain="" \ 1541 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1542 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1543 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s -O3 -Ofast\ 1544 // RUN: --gcc-toolchain="" \ 1545 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1546 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1547 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s -ffast-math -fno-fast-math \ 1548 // RUN: --gcc-toolchain="" \ 1549 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1550 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1551 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s -Ofast -fno-fast-math \ 1552 // RUN: --gcc-toolchain="" \ 1553 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1554 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1555 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s -Ofast -fno-unsafe-math-optimizations \ 1556 // RUN: --gcc-toolchain="" \ 1557 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1558 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1559 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s -fno-fast-math -Ofast \ 1560 // RUN: --gcc-toolchain="" \ 1561 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1562 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1563 // RUN: %clang --target=x86_64-unknown-linux -no-pie -### %s -fno-unsafe-math-optimizations -Ofast \ 1564 // RUN: --gcc-toolchain="" \ 1565 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1566 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1567 // We don't have crtfastmath.o in the i386 tree, use it to check that file 1568 // detection works. 1569 // RUN: %clang --target=i386-unknown-linux -no-pie -### %s -ffast-math \ 1570 // RUN: --gcc-toolchain="" \ 1571 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1572 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1573 // CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/10.2.0{{/|\\\\}}crtfastmath.o 1574 // CHECK-NOCRTFASTMATH-NOT: crtfastmath.o 1575 1576 // Check that we link in gcrt1.o when compiling with -pg 1577 // RUN: %clang -pg --target=x86_64-unknown-linux -no-pie -### %s \ 1578 // RUN: --gcc-toolchain="" \ 1579 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \ 1580 // RUN: | FileCheck --check-prefix=CHECK-PG %s 1581 // CHECK-PG: gcrt1.o 1582 1583 // GCC forwards -u to the linker. 1584 // RUN: %clang -u asdf --target=x86_64-unknown-linux -no-pie -### %s \ 1585 // RUN: --gcc-toolchain="" \ 1586 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \ 1587 // RUN: | FileCheck --check-prefix=CHECK-u %s 1588 // CHECK-u: "-u" "asdf" 1589 1590 // RUN: %clang -### %s -no-pie 2>&1 \ 1591 // RUN: --target=armeb-unknown-linux \ 1592 // RUN: --gcc-toolchain="" \ 1593 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1594 // RUN: | FileCheck --check-prefix=CHECK-ARMEB %s 1595 // CHECK-ARMEB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1596 // CHECK-ARMEB-NOT: "--be8" 1597 // CHECK-ARMEB: "-EB" 1598 // CHECK-ARMEB: "-m" "armelfb_linux_eabi" 1599 1600 // RUN: %clang -### %s -no-pie 2>&1 \ 1601 // RUN: --target=armebv7-unknown-linux \ 1602 // RUN: --gcc-toolchain="" \ 1603 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1604 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EB %s 1605 // CHECK-ARMV7EB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1606 // CHECK-ARMV7EB: "--be8" 1607 // CHECK-ARMV7EB: "-EB" 1608 // CHECK-ARMV7EB: "-m" "armelfb_linux_eabi" 1609 1610 // RUN: %clang -### %s -no-pie 2>&1 \ 1611 // RUN: --target=armv7-unknown-linux \ 1612 // RUN: -mbig-endian \ 1613 // RUN: --gcc-toolchain="" \ 1614 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1615 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EB %s 1616 1617 // RUN: %clang -### %s -no-pie 2>&1 \ 1618 // RUN: --target=armebv7-unknown-linux \ 1619 // RUN: -mbig-endian \ 1620 // RUN: --gcc-toolchain="" \ 1621 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1622 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EB %s 1623 1624 // RUN: %clang -### %s -no-pie 2>&1 \ 1625 // RUN: --target=armv7-unknown-linux \ 1626 // RUN: --gcc-toolchain="" \ 1627 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1628 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EL %s 1629 // CHECK-ARMV7EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1630 // CHECK-ARMV7EL-NOT: "--be8" 1631 // CHECK-ARMV7EL: "-EL" 1632 // CHECK-ARMV7EL: "-m" "armelf_linux_eabi" 1633 1634 // RUN: %clang -### %s -no-pie 2>&1 \ 1635 // RUN: --target=armebv7-unknown-linux \ 1636 // RUN: -mlittle-endian \ 1637 // RUN: --gcc-toolchain="" \ 1638 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1639 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EL %s 1640 1641 // RUN: %clang -### %s -no-pie 2>&1 \ 1642 // RUN: --target=armv7-unknown-linux \ 1643 // RUN: -mlittle-endian \ 1644 // RUN: --gcc-toolchain="" \ 1645 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1646 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EL %s 1647 1648 // RUN: %clang -### %s -no-pie 2>&1 \ 1649 // RUN: --target=aarch64_be-unknown-linux \ 1650 // RUN: --gcc-toolchain="" \ 1651 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1652 // RUN: | FileCheck --check-prefix=CHECK-AARCH64BE %s 1653 // CHECK-AARCH64BE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1654 // CHECK-AARCH64BE-NOT: "--be8" 1655 // CHECK-AARCH64BE: "-EB" 1656 // CHECK-AARCH64BE: "-m" "aarch64linuxb" 1657 1658 // RUN: %clang -### %s -no-pie 2>&1 \ 1659 // RUN: --target=aarch64-unknown-linux \ 1660 // RUN: -mbig-endian \ 1661 // RUN: --gcc-toolchain="" \ 1662 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1663 // RUN: | FileCheck --check-prefix=CHECK-AARCH64BE %s 1664 1665 // RUN: %clang -### %s -no-pie 2>&1 \ 1666 // RUN: --target=aarch64_be-unknown-linux \ 1667 // RUN: -mbig-endian \ 1668 // RUN: --gcc-toolchain="" \ 1669 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1670 // RUN: | FileCheck --check-prefix=CHECK-AARCH64BE %s 1671 1672 // RUN: %clang -### %s -no-pie 2>&1 \ 1673 // RUN: --target=aarch64-unknown-linux \ 1674 // RUN: --gcc-toolchain="" \ 1675 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1676 // RUN: | FileCheck --check-prefix=CHECK-AARCH64LE %s 1677 // CHECK-AARCH64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1678 // CHECK-AARCH64LE-NOT: "--be8" 1679 // CHECK-AARCH64LE: "-EL" 1680 // CHECK-AARCH64LE: "-m" "aarch64linux" 1681 1682 // RUN: %clang -### %s -no-pie 2>&1 \ 1683 // RUN: --target=aarch64_be-unknown-linux \ 1684 // RUN: -mlittle-endian \ 1685 // RUN: --gcc-toolchain="" \ 1686 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1687 // RUN: | FileCheck --check-prefix=CHECK-AARCH64LE %s 1688 1689 // Check dynamic-linker for musl-libc 1690 // RUN: %clang -### %s -no-pie 2>&1 \ 1691 // RUN: --target=i386-pc-linux-musl \ 1692 // RUN: | FileCheck --check-prefix=CHECK-MUSL-X86 %s 1693 // RUN: %clang -### %s -no-pie 2>&1 \ 1694 // RUN: --target=x86_64-pc-linux-musl \ 1695 // RUN: | FileCheck --check-prefix=CHECK-MUSL-X86_64 %s 1696 // RUN: %clang -### %s -no-pie 2>&1 \ 1697 // RUN: --target=mips-pc-linux-musl \ 1698 // RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPS %s 1699 // RUN: %clang -### %s -no-pie 2>&1 \ 1700 // RUN: --target=mipsel-pc-linux-musl \ 1701 // RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPSEL %s 1702 // RUN: %clang -### %s -no-pie 2>&1 \ 1703 // RUN: --target=mips64-pc-linux-musl \ 1704 // RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPS64 %s 1705 // RUN: %clang -### %s -no-pie 2>&1 \ 1706 // RUN: --target=mips64el-pc-linux-musl \ 1707 // RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPS64EL %s 1708 // RUN: %clang -### %s -no-pie 2>&1 \ 1709 // RUN: --target=powerpc-pc-linux-musl \ 1710 // RUN: | FileCheck --check-prefix=CHECK-MUSL-PPC %s 1711 // RUN: %clang -### %s -no-pie 2>&1 \ 1712 // RUN: --target=powerpc64-pc-linux-musl \ 1713 // RUN: | FileCheck --check-prefix=CHECK-MUSL-PPC64 %s 1714 // RUN: %clang -### %s -no-pie 2>&1 \ 1715 // RUN: --target=powerpcspe-pc-linux-musl \ 1716 // RUN: | FileCheck --check-prefix=CHECK-MUSL-PPCSPE %s 1717 // RUN: %clang -### %s -no-pie 2>&1 \ 1718 // RUN: --target=thumb-pc-linux-musleabi \ 1719 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARM %s 1720 // RUN: %clang -### %s -no-pie 2>&1 \ 1721 // RUN: --target=thumb-pc-linux-musleabihf \ 1722 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s 1723 // RUN: %clang -### %s -no-pie 2>&1 \ 1724 // RUN: --target=thumbv7-pc-linux-musleabi -mhard-float \ 1725 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s 1726 // RUN: %clang -### %s -no-pie 2>&1 \ 1727 // RUN: --target=thumbeb-pc-linux-musleabi \ 1728 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEB %s 1729 // RUN: %clang -### %s -no-pie 2>&1 \ 1730 // RUN: --target=thumbeb-pc-linux-musleabihf \ 1731 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s 1732 // RUN: %clang -### %s -no-pie 2>&1 \ 1733 // RUN: --target=thumbv7eb-pc-linux-musleabi -mhard-float \ 1734 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s 1735 // RUN: %clang -### %s -no-pie 2>&1 \ 1736 // RUN: --target=arm-pc-linux-musleabi \ 1737 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARM %s 1738 // RUN: %clang -### %s -no-pie 2>&1 \ 1739 // RUN: --target=arm-pc-linux-musleabihf \ 1740 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s 1741 // RUN: %clang -### %s -no-pie 2>&1 \ 1742 // RUN: --target=armv7-pc-linux-musleabi -mhard-float \ 1743 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s 1744 // RUN: %clang -### %s -no-pie 2>&1 \ 1745 // RUN: --target=armeb-pc-linux-musleabi \ 1746 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEB %s 1747 // RUN: %clang -### %s -no-pie 2>&1 \ 1748 // RUN: --target=armeb-pc-linux-musleabihf \ 1749 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s 1750 // RUN: %clang -### %s -no-pie 2>&1 \ 1751 // RUN: --target=armv7eb-pc-linux-musleabi -mhard-float \ 1752 // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s 1753 // RUN: %clang -### %s -no-pie 2>&1 \ 1754 // RUN: --target=aarch64-pc-linux-musleabi \ 1755 // RUN: | FileCheck --check-prefix=CHECK-MUSL-AARCH64 %s 1756 // RUN: %clang -### %s -no-pie 2>&1 \ 1757 // RUN: --target=aarch64_be-pc-linux-musleabi \ 1758 // RUN: | FileCheck --check-prefix=CHECK-MUSL-AARCH64_BE %s 1759 // CHECK-MUSL-X86: "-dynamic-linker" "/lib/ld-musl-i386.so.1" 1760 // CHECK-MUSL-X86_64: "-dynamic-linker" "/lib/ld-musl-x86_64.so.1" 1761 // CHECK-MUSL-MIPS: "-dynamic-linker" "/lib/ld-musl-mips.so.1" 1762 // CHECK-MUSL-MIPSEL: "-dynamic-linker" "/lib/ld-musl-mipsel.so.1" 1763 // CHECK-MUSL-MIPS64: "-dynamic-linker" "/lib/ld-musl-mips64.so.1" 1764 // CHECK-MUSL-MIPS64EL: "-dynamic-linker" "/lib/ld-musl-mips64el.so.1" 1765 // CHECK-MUSL-PPC: "-dynamic-linker" "/lib/ld-musl-powerpc.so.1" 1766 // CHECK-MUSL-PPC64: "-dynamic-linker" "/lib/ld-musl-powerpc64.so.1" 1767 // CHECK-MUSL-PPCSPE: "-dynamic-linker" "/lib/ld-musl-powerpc-sf.so.1" 1768 // CHECK-MUSL-ARM: "-dynamic-linker" "/lib/ld-musl-arm.so.1" 1769 // CHECK-MUSL-ARMHF: "-dynamic-linker" "/lib/ld-musl-armhf.so.1" 1770 // CHECK-MUSL-ARMEB: "-dynamic-linker" "/lib/ld-musl-armeb.so.1" 1771 // CHECK-MUSL-ARMEBHF: "-dynamic-linker" "/lib/ld-musl-armebhf.so.1" 1772 // CHECK-MUSL-AARCH64: "-dynamic-linker" "/lib/ld-musl-aarch64.so.1" 1773 // CHECK-MUSL-AARCH64_BE: "-dynamic-linker" "/lib/ld-musl-aarch64_be.so.1" 1774 1775 // Check whether multilib gcc install works fine on Gentoo with gcc-config 1776 // RUN: %clang -### %s -no-pie 2>&1 \ 1777 // RUN: --target=x86_64-unknown-linux-gnu -rtlib=platform --unwindlib=platform \ 1778 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ 1779 // RUN: --gcc-toolchain="" \ 1780 // RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO %s 1781 // CHECK-LD-GENTOO-NOT: warning: 1782 // CHECK-LD-GENTOO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1783 // CHECK-LD-GENTOO: "--eh-frame-hdr" 1784 // CHECK-LD-GENTOO: "-m" "elf_x86_64" 1785 // CHECK-LD-GENTOO: "-dynamic-linker" 1786 // CHECK-LD-GENTOO: "{{.*}}/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3{{/|\\\\}}crtbegin.o" 1787 // CHECK-LD-GENTOO: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3" 1788 // CHECK-LD-GENTOO: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/lib" 1789 // CHECK-LD-GENTOO: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 1790 // CHECK-LD-GENTOO: "-lc" 1791 // CHECK-LD-GENTOO: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 1792 // RUN: %clang -### %s -no-pie 2>&1 \ 1793 // RUN: --target=i686-unknown-linux-gnu -rtlib=platform --unwindlib=platform \ 1794 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ 1795 // RUN: --gcc-toolchain="" \ 1796 // RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO-32 %s 1797 // CHECK-LD-GENTOO-32-NOT: warning: 1798 // CHECK-LD-GENTOO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1799 // CHECK-LD-GENTOO-32: "--eh-frame-hdr" 1800 // CHECK-LD-GENTOO-32: "-m" "elf_i386" 1801 // CHECK-LD-GENTOO-32: "-dynamic-linker" 1802 // CHECK-LD-GENTOO-32: "{{.*}}/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/32{{/|\\\\}}crtbegin.o" 1803 // CHECK-LD-GENTOO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/32" 1804 // CHECK-LD-GENTOO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/lib" 1805 // CHECK-LD-GENTOO-32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 1806 // CHECK-LD-GENTOO-32: "-lc" 1807 // CHECK-LD-GENTOO-32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 1808 // RUN: %clang -### %s -no-pie 2>&1 \ 1809 // RUN: --target=x86_64-unknown-linux-gnux32 -rtlib=platform --unwindlib=platform \ 1810 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ 1811 // RUN: --gcc-toolchain="" \ 1812 // RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO-X32 %s 1813 // CHECK-LD-GENTOO-X32-NOT: warning: 1814 // CHECK-LD-GENTOO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1815 // CHECK-LD-GENTOO-X32: "--eh-frame-hdr" 1816 // CHECK-LD-GENTOO-X32: "-m" "elf32_x86_64" 1817 // CHECK-LD-GENTOO-X32: "-dynamic-linker" 1818 // CHECK-LD-GENTOO-X32: "{{.*}}/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/x32{{/|\\\\}}crtbegin.o" 1819 // CHECK-LD-GENTOO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/x32" 1820 // CHECK-LD-GENTOO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/lib" 1821 // CHECK-LD-GENTOO-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 1822 // CHECK-LD-GENTOO-X32: "-lc" 1823 // CHECK-LD-GENTOO-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 1824 1825 // RUN: %clang -### %s -no-pie 2>&1 \ 1826 // RUN: --target=x86_64-unknown-linux-gnu \ 1827 // RUN: --gcc-toolchain="%S/Inputs/rhel_7_tree/opt/rh/devtoolset-7/root/usr" \ 1828 // RUN: --sysroot=%S/Inputs/rhel_7_tree \ 1829 // RUN: | FileCheck --check-prefix=CHECK-LD-RHEL7-DTS %s 1830 // CHECK-LD-RHEL7-DTS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1831 // CHECK-LD-RHLE7-DTS: Selected GCC installation: [[GCC_INSTALL:[[SYSROOT]]/lib/gcc/x86_64-redhat-linux/7]] 1832 // CHECK-LD-RHEL7-DTS-NOT: /usr/bin/ld 1833 // CHECK-LD-RHLE7-DTS: [[GCC_INSTALL]/../../../bin/ld 1834 1835 // Check whether gcc7 install works fine on Amazon Linux AMI 1836 // RUN: %clang -### %s -no-pie 2>&1 \ 1837 // RUN: --target=x86_64-amazon-linux -rtlib=libgcc --unwindlib=platform \ 1838 // RUN: --gcc-toolchain="" \ 1839 // RUN: --sysroot=%S/Inputs/ami_linux_tree \ 1840 // RUN: | FileCheck --check-prefix=CHECK-LD-AMI %s 1841 // CHECK-LD-AMI-NOT: warning: 1842 // CHECK-LD-AMI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1843 // CHECK-LD-AMI: "--eh-frame-hdr" 1844 // CHECK-LD-AMI: "-m" "elf_x86_64" 1845 // CHECK-LD-AMI: "-dynamic-linker" 1846 // CHECK-LD-AMI: "{{.*}}/usr/lib/gcc/x86_64-amazon-linux/7{{/|\\\\}}crtbegin.o" 1847 // CHECK-LD-AMI: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-amazon-linux/7" 1848 // CHECK-LD-AMI: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-amazon-linux/7/../../../../lib64" 1849 // CHECK-LD-AMI: "-L[[SYSROOT]]/lib" 1850 // CHECK-LD-AMI: "-L[[SYSROOT]]/usr/lib" 1851 // CHECK-LD-AMI: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 1852 // CHECK-LD-AMI: "-lc" 1853 // CHECK-LD-AMI: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 1854 1855 // Check whether the OpenEmbedded ARM libs are added correctly. 1856 // RUN: %clang -### %s -no-pie 2>&1 \ 1857 // RUN: --target=arm-oe-linux-gnueabi -rtlib=libgcc --unwindlib=platform \ 1858 // RUN: --gcc-toolchain="" \ 1859 // RUN: --sysroot=%S/Inputs/openembedded_arm_linux_tree \ 1860 // RUN: | FileCheck --check-prefix=CHECK-OE-ARM %s 1861 1862 // CHECK-OE-ARM: "-cc1" "-triple" "armv4t-oe-linux-gnueabi" 1863 // CHECK-OE-ARM: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" 1864 // CHECK-OE-ARM: "-m" "armelf_linux_eabi" "-dynamic-linker" 1865 // CHECK-OE-ARM: "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0/../../../lib{{/|\\\\}}crt1.o" 1866 // CHECK-OE-ARM: "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0/../../../lib{{/|\\\\}}crti.o" 1867 // CHECK-OE-ARM: "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0{{/|\\\\}}crtbegin.o" 1868 // CHECK-OE-ARM: "-L[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0" 1869 // CHECK-OE-ARM: "-L[[SYSROOT]]/usr/lib" 1870 // CHECK-OE-ARM: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 1871 // CHECK-OE-ARM: "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0{{/|\\\\}}crtend.o" 1872 // CHECK-OE-ARM: "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0/../../../lib{{/|\\\\}}crtn.o" 1873 1874 // Check whether the OpenEmbedded AArch64 libs are added correctly. 1875 // RUN: %clang -### %s -no-pie 2>&1 \ 1876 // RUN: --target=aarch64-oe-linux -rtlib=libgcc --unwindlib=platform \ 1877 // RUN: --gcc-toolchain="" \ 1878 // RUN: --sysroot=%S/Inputs/openembedded_aarch64_linux_tree \ 1879 // RUN: | FileCheck --check-prefix=CHECK-OE-AARCH64 %s 1880 1881 // CHECK-OE-AARCH64: "-cc1" "-triple" "aarch64-oe-linux" 1882 // CHECK-OE-AARCH64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" 1883 // CHECK-OE-AARCH64: "-m" "aarch64linux" "-dynamic-linker" 1884 // CHECK-OE-AARCH64: "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0/../../../lib64{{/|\\\\}}crt1.o" 1885 // CHECK-OE-AARCH64: "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0/../../../lib64{{/|\\\\}}crti.o" 1886 // CHECK-OE-AARCH64: "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0{{/|\\\\}}crtbegin.o" 1887 // CHECK-OE-AARCH64: "-L[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0" 1888 // CHECK-OE-AARCH64: "-L[[SYSROOT]]/usr/lib64" 1889 // CHECK-OE-AARCH64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 1890 // CHECK-OE-AARCH64: "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0{{/|\\\\}}crtend.o" 1891 // CHECK-OE-AARCH64: "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0/../../../lib64{{/|\\\\}}crtn.o" 1892