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