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 \ 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 \ 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" "-lgcc_s" 70 // CHECK-LD-RT: "-lc" 71 // CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s" 72 // 73 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 74 // RUN: --target=x86_64-unknown-linux \ 75 // RUN: --gcc-toolchain="" \ 76 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 77 // RUN: --rtlib=libgcc \ 78 // RUN: | FileCheck --check-prefix=CHECK-LD-GCC %s 79 // CHECK-LD-GCC-NOT: warning: 80 // CHECK-LD-GCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 81 // CHECK-LD-GCC: "--eh-frame-hdr" 82 // CHECK-LD-GCC: "-m" "elf_x86_64" 83 // CHECK-LD-GCC: "-dynamic-linker" 84 // CHECK-LD-GCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 85 // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 86 // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 87 // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 88 // CHECK-LD-GCC: "-L[[SYSROOT]]/lib" 89 // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib" 90 // CHECK-LD-GCC "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 91 // CHECK-LD-GCC: "-lc" 92 // CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 93 // 94 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 95 // RUN: --target=x86_64-unknown-linux \ 96 // RUN: -static-libgcc \ 97 // RUN: --gcc-toolchain="" \ 98 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 99 // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s 100 // CHECK-LD-64-STATIC-LIBGCC-NOT: warning: 101 // CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 102 // CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr" 103 // CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64" 104 // CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker" 105 // CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 106 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 107 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 108 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 109 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib" 110 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib" 111 // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" 112 // CHECK-LD-64-STATIC-LIBGCC: "-lc" 113 // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" 114 // 115 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 116 // RUN: --target=x86_64-unknown-linux \ 117 // RUN: -static \ 118 // RUN: --gcc-toolchain="" \ 119 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 120 // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s 121 // CHECK-LD-64-STATIC-NOT: warning: 122 // CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 123 // CHECK-LD-64-STATIC-NOT: "--eh-frame-hdr" 124 // CHECK-LD-64-STATIC: "-m" "elf_x86_64" 125 // CHECK-LD-64-STATIC-NOT: "-dynamic-linker" 126 // CHECK-LD-64-STATIC: "-static" 127 // CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbeginT.o" 128 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 129 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 130 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 131 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib" 132 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib" 133 // CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" 134 // 135 // Check that flags can be combined. The -static dominates. 136 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 137 // RUN: --target=x86_64-unknown-linux \ 138 // RUN: -static-libgcc -static \ 139 // RUN: --gcc-toolchain="" \ 140 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 141 // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s 142 // 143 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 144 // RUN: --target=i386-unknown-linux -m32 \ 145 // RUN: --gcc-toolchain="" \ 146 // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 147 // RUN: | FileCheck --check-prefix=CHECK-32-TO-32 %s 148 // CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 149 // CHECK-32-TO-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 150 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0" 151 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib32" 152 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib32" 153 // CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32" 154 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 155 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib" 156 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.." 157 // CHECK-32-TO-32: "-L[[SYSROOT]]/lib" 158 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib" 159 // 160 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 161 // RUN: --target=i386-unknown-linux -m64 \ 162 // RUN: --gcc-toolchain="" \ 163 // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 164 // RUN: | FileCheck --check-prefix=CHECK-32-TO-64 %s 165 // CHECK-32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 166 // CHECK-32-TO-64: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0/64{{/|\\\\}}crtbegin.o" 167 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/64" 168 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib64" 169 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib64" 170 // CHECK-32-TO-64: "-L[[SYSROOT]]/lib/../lib64" 171 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 172 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0" 173 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib" 174 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.." 175 // CHECK-32-TO-64: "-L[[SYSROOT]]/lib" 176 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib" 177 // 178 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 179 // RUN: --target=x86_64-unknown-linux -m64 \ 180 // RUN: --gcc-toolchain="" \ 181 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 182 // RUN: | FileCheck --check-prefix=CHECK-64-TO-64 %s 183 // CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 184 // CHECK-64-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 185 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 186 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64" 187 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64" 188 // CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64" 189 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 190 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 191 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 192 // CHECK-64-TO-64: "-L[[SYSROOT]]/lib" 193 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib" 194 // 195 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 196 // RUN: --target=x86_64-unknown-linux -m32 \ 197 // RUN: --gcc-toolchain="" \ 198 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 199 // RUN: | FileCheck --check-prefix=CHECK-64-TO-32 %s 200 // CHECK-64-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 201 // CHECK-64-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o" 202 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32" 203 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32" 204 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32" 205 // CHECK-64-TO-32: "-L[[SYSROOT]]/lib/../lib32" 206 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 207 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 208 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 209 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 210 // CHECK-64-TO-32: "-L[[SYSROOT]]/lib" 211 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib" 212 // 213 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 214 // RUN: --target=x86_64-unknown-linux-gnux32 \ 215 // RUN: --gcc-toolchain="" \ 216 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 217 // RUN: | FileCheck --check-prefix=CHECK-X32 %s 218 // CHECK-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 219 // CHECK-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o" 220 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32" 221 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32" 222 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32" 223 // CHECK-X32: "-L[[SYSROOT]]/lib/../libx32" 224 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 225 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 226 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 227 // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 228 // CHECK-X32: "-L[[SYSROOT]]/lib" 229 // CHECK-X32: "-L[[SYSROOT]]/usr/lib" 230 // 231 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 232 // RUN: --target=x86_64-unknown-linux -mx32 \ 233 // RUN: --gcc-toolchain="" \ 234 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 235 // RUN: | FileCheck --check-prefix=CHECK-64-TO-X32 %s 236 // CHECK-64-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 237 // CHECK-64-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o" 238 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32" 239 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32" 240 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32" 241 // CHECK-64-TO-X32: "-L[[SYSROOT]]/lib/../libx32" 242 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 243 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 244 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 245 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 246 // CHECK-64-TO-X32: "-L[[SYSROOT]]/lib" 247 // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib" 248 // 249 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 250 // RUN: --target=i386-unknown-linux -mx32 \ 251 // RUN: --gcc-toolchain="" \ 252 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 253 // RUN: | FileCheck --check-prefix=CHECK-32-TO-X32 %s 254 // CHECK-32-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 255 // CHECK-32-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o" 256 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32" 257 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32" 258 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32" 259 // CHECK-32-TO-X32: "-L[[SYSROOT]]/lib/../libx32" 260 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 261 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 262 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 263 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 264 // CHECK-32-TO-X32: "-L[[SYSROOT]]/lib" 265 // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib" 266 // 267 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 268 // RUN: --target=x86_64-unknown-linux-gnux32 -m64 \ 269 // RUN: --gcc-toolchain="" \ 270 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 271 // RUN: | FileCheck --check-prefix=CHECK-X32-TO-64 %s 272 // CHECK-X32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 273 // CHECK-X32-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 274 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 275 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64" 276 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64" 277 // CHECK-X32-TO-64: "-L[[SYSROOT]]/lib/../lib64" 278 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 279 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 280 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 281 // CHECK-X32-TO-64: "-L[[SYSROOT]]/lib" 282 // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib" 283 // 284 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 285 // RUN: --target=x86_64-unknown-linux-gnux32 -m32 \ 286 // RUN: --gcc-toolchain="" \ 287 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 288 // RUN: | FileCheck --check-prefix=CHECK-X32-TO-32 %s 289 // CHECK-X32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 290 // CHECK-X32-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o" 291 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32" 292 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32" 293 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32" 294 // CHECK-X32-TO-32: "-L[[SYSROOT]]/lib/../lib32" 295 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 296 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 297 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 298 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 299 // CHECK-X32-TO-32: "-L[[SYSROOT]]/lib" 300 // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib" 301 // 302 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 303 // RUN: --target=x86_64-unknown-linux -m32 \ 304 // RUN: --gcc-toolchain=%S/Inputs/multilib_64bit_linux_tree/usr \ 305 // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 306 // RUN: | FileCheck --check-prefix=CHECK-64-TO-32-SYSROOT %s 307 // CHECK-64-TO-32-SYSROOT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 308 // CHECK-64-TO-32-SYSROOT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o" 309 // CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32" 310 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib/../lib32" 311 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib/../lib32" 312 // CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 313 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib" 314 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib" 315 // 316 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 317 // RUN: --target=i386-unknown-linux -m32 \ 318 // RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \ 319 // RUN: --gcc-toolchain="" \ 320 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 321 // RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-32 %s 322 // CHECK-INSTALL-DIR-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 323 // CHECK-INSTALL-DIR-32: "{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0{{/|\\\\}}crtbegin.o" 324 // CHECK-INSTALL-DIR-32: "-L{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0" 325 // 326 // Check that with 64-bit builds, we don't actually use the install directory 327 // as its version of GCC is lower than our sysrooted version. 328 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 329 // RUN: --target=x86_64-unknown-linux -m64 \ 330 // RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \ 331 // RUN: --gcc-toolchain="" \ 332 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 333 // RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-64 %s 334 // CHECK-INSTALL-DIR-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 335 // CHECK-INSTALL-DIR-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 336 // CHECK-INSTALL-DIR-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 337 // 338 // Check that we support unusual patch version formats, including missing that 339 // component. 340 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 341 // RUN: --target=i386-unknown-linux -m32 \ 342 // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing1/bin \ 343 // RUN: --gcc-toolchain="" \ 344 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 345 // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION1 %s 346 // CHECK-GCC-VERSION1: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 347 // CHECK-GCC-VERSION1: "{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7{{/|\\\\}}crtbegin.o" 348 // CHECK-GCC-VERSION1: "-L{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7" 349 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 350 // RUN: --target=i386-unknown-linux -m32 \ 351 // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing2/bin \ 352 // RUN: --gcc-toolchain="" \ 353 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 354 // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION2 %s 355 // CHECK-GCC-VERSION2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 356 // CHECK-GCC-VERSION2: "{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x{{/|\\\\}}crtbegin.o" 357 // CHECK-GCC-VERSION2: "-L{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x" 358 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 359 // RUN: --target=i386-unknown-linux -m32 \ 360 // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing3/bin \ 361 // RUN: --gcc-toolchain="" \ 362 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 363 // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION3 %s 364 // CHECK-GCC-VERSION3: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 365 // CHECK-GCC-VERSION3: "{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5{{/|\\\\}}crtbegin.o" 366 // CHECK-GCC-VERSION3: "-L{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5" 367 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 368 // RUN: --target=i386-unknown-linux -m32 \ 369 // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing4/bin \ 370 // RUN: --gcc-toolchain="" \ 371 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 372 // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION4 %s 373 // CHECK-GCC-VERSION4: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 374 // CHECK-GCC-VERSION4: "{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99{{/|\\\\}}crtbegin.o" 375 // CHECK-GCC-VERSION4: "-L{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99" 376 // 377 // Test a simulated installation of libc++ on Linux, both through sysroot and 378 // the installation path of Clang. 379 // RUN: %clangxx -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \ 380 // RUN: -target x86_64-unknown-linux-gnu \ 381 // RUN: -stdlib=libc++ \ 382 // RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \ 383 // RUN: --gcc-toolchain="" \ 384 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 385 // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s 386 // CHECK-BASIC-LIBCXX-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 387 // CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]" 388 // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" 389 // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 390 // CHECK-BASIC-LIBCXX-SYSROOT: "--sysroot=[[SYSROOT]]" 391 // RUN: %clang -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \ 392 // RUN: -target x86_64-unknown-linux-gnu \ 393 // RUN: -stdlib=libc++ \ 394 // RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \ 395 // RUN: --gcc-toolchain="" \ 396 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 397 // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s 398 // CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 399 // CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]" 400 // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1" 401 // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 402 // CHECK-BASIC-LIBCXX-INSTALL: "--sysroot=[[SYSROOT]]" 403 // CHECK-BASIC-LIBCXX-INSTALL: "-L[[SYSROOT]]/usr/bin/../lib" 404 // 405 // Test a very broken version of multiarch that shipped in Ubuntu 11.04. 406 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 407 // RUN: --target=i386-unknown-linux \ 408 // RUN: --gcc-toolchain="" \ 409 // RUN: --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \ 410 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s 411 // CHECK-UBUNTU-11-04: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 412 // CHECK-UBUNTU-11-04: "{{.*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 413 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5" 414 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu" 415 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu" 416 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.." 417 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/lib" 418 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib" 419 // 420 // Check multi arch support on Ubuntu 12.04 LTS. 421 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 422 // RUN: --target=arm-unknown-linux-gnueabihf \ 423 // RUN: --gcc-toolchain="" \ 424 // RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \ 425 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s 426 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 427 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crt1.o" 428 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crti.o" 429 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtbegin.o" 430 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3" 431 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf" 432 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf" 433 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf" 434 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../.." 435 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o" 436 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crtn.o" 437 // 438 // Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf. 439 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 440 // RUN: --target=arm-linux-gnueabihf \ 441 // RUN: --gcc-toolchain="" \ 442 // RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \ 443 // RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s 444 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 445 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker" "/lib/ld-linux-armhf.so.3" 446 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crt1.o" 447 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crti.o" 448 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtbegin.o" 449 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8" 450 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib" 451 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib" 452 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib" 453 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib" 454 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtend.o" 455 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crtn.o" 456 // 457 // Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi. 458 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 459 // RUN: --target=arm-linux-gnueabi \ 460 // RUN: --gcc-toolchain="" \ 461 // RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \ 462 // RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s 463 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 464 // CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "/lib/ld-linux.so.3" 465 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crt1.o" 466 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crti.o" 467 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtbegin.o" 468 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7" 469 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib" 470 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib" 471 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib" 472 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib" 473 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtend.o" 474 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crtn.o" 475 // 476 // Check Ubuntu 14.04 on powerpc64le. 477 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 478 // RUN: --target=powerpc64le-unknown-linux-gnu \ 479 // RUN: --gcc-toolchain="" \ 480 // RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \ 481 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-PPC64LE %s 482 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 483 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crt1.o" 484 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crti.o" 485 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtbegin.o" 486 // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8" 487 // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu" 488 // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/lib/powerpc64le-linux-gnu" 489 // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu" 490 // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../.." 491 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtend.o" 492 // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crtn.o" 493 // 494 // Check Ubuntu 14.04 on x32. 495 // "/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/crtend.o" "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32/crtn.o" 496 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 497 // RUN: --target=x86_64-unknown-linux-gnux32 \ 498 // RUN: --gcc-toolchain="" \ 499 // RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \ 500 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-X32 %s 501 // CHECK-UBUNTU-14-04-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 502 // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crt1.o" 503 // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crti.o" 504 // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtbegin.o" 505 // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/x32" 506 // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32" 507 // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/lib/../libx32" 508 // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 509 // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu/../../libx32" 510 // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8" 511 // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.." 512 // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtend.o" 513 // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crtn.o" 514 // 515 // Check fedora 18 on arm. 516 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 517 // RUN: --target=armv7-unknown-linux-gnueabihf \ 518 // RUN: --gcc-toolchain="" \ 519 // RUN: --sysroot=%S/Inputs/fedora_18_tree \ 520 // RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s 521 // CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 522 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o" 523 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crti.o" 524 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o" 525 // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2" 526 // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib" 527 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o" 528 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crtn.o" 529 // 530 // Check Fedora 21 on AArch64. 531 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 532 // RUN: --target=arm64-unknown-linux-gnu \ 533 // RUN: --gcc-toolchain="" \ 534 // RUN: --sysroot=%S/Inputs/fedora_21_tree \ 535 // RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s 536 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 537 // RUN: --target=aarch64-unknown-linux-gnu \ 538 // RUN: --gcc-toolchain="" \ 539 // RUN: --sysroot=%S/Inputs/fedora_21_tree \ 540 // RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s 541 // CHECK-FEDORA-21-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 542 // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crt1.o" 543 // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crti.o" 544 // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtbegin.o" 545 // CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0" 546 // CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64" 547 // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtend.o" 548 // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crtn.o" 549 // 550 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 551 // RUN: --target=arm-unknown-linux-gnueabi \ 552 // RUN: --gcc-toolchain="" \ 553 // RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \ 554 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s 555 // CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 556 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crt1.o" 557 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crti.o" 558 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o" 559 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1" 560 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi" 561 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi" 562 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi" 563 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.." 564 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o" 565 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crtn.o" 566 // 567 // Test the setup that shipped in SUSE 10.3 on ppc64. 568 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 569 // RUN: --target=powerpc64-suse-linux \ 570 // RUN: --gcc-toolchain="" \ 571 // RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \ 572 // RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s 573 // CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 574 // CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o" 575 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64" 576 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64" 577 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64" 578 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64" 579 // 580 // Check dynamic-linker for different archs 581 // RUN: %clang %s -### -o %t.o 2>&1 \ 582 // RUN: --target=arm-linux-gnueabi \ 583 // RUN: | FileCheck --check-prefix=CHECK-ARM %s 584 // CHECK-ARM: "{{.*}}ld{{(.exe)?}}" 585 // CHECK-ARM: "-m" "armelf_linux_eabi" 586 // CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3" 587 // 588 // RUN: %clang %s -### -o %t.o 2>&1 \ 589 // RUN: --target=arm-linux-gnueabihf \ 590 // RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s 591 // CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}" 592 // CHECK-ARM-HF: "-m" "armelf_linux_eabi" 593 // CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3" 594 // 595 // RUN: %clang %s -### -o %t.o 2>&1 \ 596 // RUN: --target=powerpc64-linux-gnu \ 597 // RUN: | FileCheck --check-prefix=CHECK-PPC64 %s 598 // CHECK-PPC64: "{{.*}}ld{{(.exe)?}}" 599 // CHECK-PPC64: "-m" "elf64ppc" 600 // CHECK-PPC64: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1" 601 // 602 // RUN: %clang %s -### -o %t.o 2>&1 \ 603 // RUN: --target=powerpc64-linux-gnu -mabi=elfv1 \ 604 // RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv1 %s 605 // CHECK-PPC64-ELFv1: "{{.*}}ld{{(.exe)?}}" 606 // CHECK-PPC64-ELFv1: "-m" "elf64ppc" 607 // CHECK-PPC64-ELFv1: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1" 608 // 609 // RUN: %clang %s -### -o %t.o 2>&1 \ 610 // RUN: --target=powerpc64-linux-gnu -mabi=elfv2 \ 611 // RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv2 %s 612 // CHECK-PPC64-ELFv2: "{{.*}}ld{{(.exe)?}}" 613 // CHECK-PPC64-ELFv2: "-m" "elf64ppc" 614 // CHECK-PPC64-ELFv2: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2" 615 // 616 // RUN: %clang %s -### -o %t.o 2>&1 \ 617 // RUN: --target=powerpc64le-linux-gnu \ 618 // RUN: | FileCheck --check-prefix=CHECK-PPC64LE %s 619 // CHECK-PPC64LE: "{{.*}}ld{{(.exe)?}}" 620 // CHECK-PPC64LE: "-m" "elf64lppc" 621 // CHECK-PPC64LE: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2" 622 // 623 // RUN: %clang %s -### -o %t.o 2>&1 \ 624 // RUN: --target=powerpc64le-linux-gnu -mabi=elfv1 \ 625 // RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv1 %s 626 // CHECK-PPC64LE-ELFv1: "{{.*}}ld{{(.exe)?}}" 627 // CHECK-PPC64LE-ELFv1: "-m" "elf64lppc" 628 // CHECK-PPC64LE-ELFv1: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1" 629 // 630 // RUN: %clang %s -### -o %t.o 2>&1 \ 631 // RUN: --target=powerpc64le-linux-gnu -mabi=elfv2 \ 632 // RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv2 %s 633 // CHECK-PPC64LE-ELFv2: "{{.*}}ld{{(.exe)?}}" 634 // CHECK-PPC64LE-ELFv2: "-m" "elf64lppc" 635 // CHECK-PPC64LE-ELFv2: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2" 636 // 637 // Check that we do not pass --hash-style=gnu and --hash-style=both to linker 638 // and provide correct path to the dynamic linker and emulation mode when build 639 // for MIPS platforms. 640 // RUN: %clang %s -### -o %t.o 2>&1 \ 641 // RUN: --target=mips-linux-gnu \ 642 // RUN: | FileCheck --check-prefix=CHECK-MIPS %s 643 // CHECK-MIPS: "{{.*}}ld{{(.exe)?}}" 644 // CHECK-MIPS: "-m" "elf32btsmip" 645 // CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1" 646 // CHECK-MIPS-NOT: "--hash-style={{gnu|both}}" 647 // 648 // RUN: %clang %s -### -o %t.o 2>&1 \ 649 // RUN: --target=mipsel-linux-gnu \ 650 // RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s 651 // CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}" 652 // CHECK-MIPSEL: "-m" "elf32ltsmip" 653 // CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1" 654 // CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}" 655 // 656 // RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mnan=2008 \ 657 // RUN: | FileCheck --check-prefix=CHECK-MIPSEL-NAN2008 %s 658 // CHECK-MIPSEL-NAN2008: "{{.*}}ld{{(.exe)?}}" 659 // CHECK-MIPSEL-NAN2008: "-m" "elf32ltsmip" 660 // CHECK-MIPSEL-NAN2008: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1" 661 // CHECK-MIPSEL-NAN2008-NOT: "--hash-style={{gnu|both}}" 662 // 663 // RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mcpu=mips32r6 \ 664 // RUN: | FileCheck --check-prefix=CHECK-MIPS32R6EL %s 665 // CHECK-MIPS32R6EL: "{{.*}}ld{{(.exe)?}}" 666 // CHECK-MIPS32R6EL: "-m" "elf32ltsmip" 667 // CHECK-MIPS32R6EL: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1" 668 // CHECK-MIPS32R6EL-NOT: "--hash-style={{gnu|both}}" 669 // 670 // RUN: %clang %s -### -o %t.o 2>&1 \ 671 // RUN: --target=mips64-linux-gnu \ 672 // RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s 673 // CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}" 674 // CHECK-MIPS64: "-m" "elf64btsmip" 675 // CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib64/ld.so.1" 676 // CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}" 677 // 678 // RUN: %clang %s -### -o %t.o 2>&1 \ 679 // RUN: --target=mips64el-linux-gnu \ 680 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s 681 // CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}" 682 // CHECK-MIPS64EL: "-m" "elf64ltsmip" 683 // CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib64/ld.so.1" 684 // CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}" 685 // 686 // RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mnan=2008 \ 687 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-NAN2008 %s 688 // CHECK-MIPS64EL-NAN2008: "{{.*}}ld{{(.exe)?}}" 689 // CHECK-MIPS64EL-NAN2008: "-m" "elf64ltsmip" 690 // CHECK-MIPS64EL-NAN2008: "-dynamic-linker" "{{.*}}/lib64/ld-linux-mipsn8.so.1" 691 // CHECK-MIPS64EL-NAN2008-NOT: "--hash-style={{gnu|both}}" 692 // 693 // RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mcpu=mips64r6 \ 694 // RUN: | FileCheck --check-prefix=CHECK-MIPS64R6EL %s 695 // CHECK-MIPS64R6EL: "{{.*}}ld{{(.exe)?}}" 696 // CHECK-MIPS64R6EL: "-m" "elf64ltsmip" 697 // CHECK-MIPS64R6EL: "-dynamic-linker" "{{.*}}/lib64/ld-linux-mipsn8.so.1" 698 // CHECK-MIPS64R6EL-NOT: "--hash-style={{gnu|both}}" 699 // 700 // RUN: %clang %s -### -o %t.o 2>&1 \ 701 // RUN: --target=mips64-linux-gnu -mabi=n32 \ 702 // RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s 703 // CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" 704 // CHECK-MIPS64-N32: "-m" "elf32btsmipn32" 705 // CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1" 706 // CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}" 707 // 708 // RUN: %clang %s -### -o %t.o 2>&1 \ 709 // RUN: --target=mips64el-linux-gnu -mabi=n32 \ 710 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s 711 // CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" 712 // CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32" 713 // CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1" 714 // CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}" 715 // 716 // RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mabi=n32 \ 717 // RUN: -mnan=2008 | FileCheck --check-prefix=CHECK-MIPS64EL-N32-NAN2008 %s 718 // CHECK-MIPS64EL-N32-NAN2008: "{{.*}}ld{{(.exe)?}}" 719 // CHECK-MIPS64EL-N32-NAN2008: "-m" "elf32ltsmipn32" 720 // CHECK-MIPS64EL-N32-NAN2008: "-dynamic-linker" "{{.*}}/lib32/ld-linux-mipsn8.so.1" 721 // CHECK-MIPS64EL-N32-NAN2008-NOT: "--hash-style={{gnu|both}}" 722 // 723 // RUN: %clang %s -### -o %t.o 2>&1 \ 724 // RUN: --target=sparc-linux-gnu \ 725 // RUN: | FileCheck --check-prefix=CHECK-SPARCV8 %s 726 // CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}" 727 // CHECK-SPARCV8: "-m" "elf32_sparc" 728 // CHECK-SPARCV8: "-dynamic-linker" "/lib/ld-linux.so.2" 729 // 730 // RUN: %clang %s -### -o %t.o 2>&1 \ 731 // RUN: --target=sparcv9-linux-gnu \ 732 // RUN: | FileCheck --check-prefix=CHECK-SPARCV9 %s 733 // CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}" 734 // CHECK-SPARCV9: "-m" "elf64_sparc" 735 // CHECK-SPARCV9: "-dynamic-linker" "/lib64/ld-linux.so.2" 736 // 737 // Thoroughly exercise the Debian multiarch environment. 738 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 739 // RUN: --target=i686-linux-gnu \ 740 // RUN: --gcc-toolchain="" \ 741 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 742 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s 743 // CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 744 // CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 745 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5" 746 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu" 747 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu" 748 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.." 749 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib" 750 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib" 751 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 752 // RUN: --target=x86_64-linux-gnu \ 753 // RUN: --gcc-toolchain="" \ 754 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 755 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s 756 // CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 757 // CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 758 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5" 759 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu" 760 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu" 761 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.." 762 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib" 763 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib" 764 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 765 // RUN: --target=powerpc-linux-gnu \ 766 // RUN: --gcc-toolchain="" \ 767 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 768 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s 769 // CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 770 // CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 771 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5" 772 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu" 773 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu" 774 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.." 775 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib" 776 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib" 777 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 778 // RUN: --target=powerpc64-linux-gnu \ 779 // RUN: --gcc-toolchain="" \ 780 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 781 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s 782 // CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 783 // CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 784 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5" 785 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu" 786 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu" 787 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.." 788 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib" 789 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib" 790 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 791 // RUN: --target=mips-linux-gnu \ 792 // RUN: --gcc-toolchain="" \ 793 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 794 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s 795 // CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 796 // CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 797 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5" 798 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu" 799 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu" 800 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.." 801 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib" 802 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib" 803 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 804 // RUN: --target=mipsel-linux-gnu \ 805 // RUN: --gcc-toolchain="" \ 806 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 807 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s 808 // CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 809 // CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 810 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5" 811 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu" 812 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu" 813 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." 814 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib" 815 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib" 816 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 817 // RUN: --target=mips64-linux-gnu \ 818 // RUN: --gcc-toolchain="" \ 819 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 820 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s 821 // CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 822 // CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o" 823 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64" 824 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5" 825 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.." 826 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib" 827 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib" 828 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 829 // RUN: --target=mips64el-linux-gnu \ 830 // RUN: --gcc-toolchain="" \ 831 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 832 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s 833 // CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 834 // CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o" 835 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64" 836 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5" 837 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." 838 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib" 839 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib" 840 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 841 // RUN: --target=mips64-linux-gnu -mabi=n32 \ 842 // RUN: --gcc-toolchain="" \ 843 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 844 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s 845 // CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 846 // CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o" 847 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32" 848 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5" 849 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.." 850 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib" 851 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib" 852 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 853 // RUN: --target=mips64el-linux-gnu -mabi=n32 \ 854 // RUN: --gcc-toolchain="" \ 855 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 856 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s 857 // CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 858 // CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o" 859 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32" 860 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5" 861 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." 862 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib" 863 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib" 864 // 865 // Test linker invocation on Android. 866 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 867 // RUN: --target=arm-linux-androideabi \ 868 // RUN: --gcc-toolchain="" \ 869 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 870 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 871 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 872 // RUN: --target=arm-linux-android \ 873 // RUN: --gcc-toolchain="" \ 874 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 875 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 876 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 877 // RUN: --target=aarch64-linux-android \ 878 // RUN: --gcc-toolchain="" \ 879 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 880 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 881 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 882 // RUN: --target=arm64-linux-android \ 883 // RUN: --gcc-toolchain="" \ 884 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 885 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 886 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 887 // RUN: --target=mipsel-linux-android \ 888 // RUN: --gcc-toolchain="" \ 889 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 890 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 891 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 892 // RUN: --target=mips64el-linux-android \ 893 // RUN: --gcc-toolchain="" \ 894 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 895 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 896 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 897 // RUN: --target=i686-linux-android \ 898 // RUN: --gcc-toolchain="" \ 899 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 900 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 901 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 902 // RUN: --target=x86_64-linux-android \ 903 // RUN: --gcc-toolchain="" \ 904 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 905 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 906 // CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 907 // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o" 908 // CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib" 909 // CHECK-ANDROID-NOT: "gcc_s" 910 // CHECK-ANDROID: "-lgcc" 911 // CHECK-ANDROID: "-ldl" 912 // CHECK-ANDROID-NOT: "gcc_s" 913 // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o" 914 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 915 // RUN: --target=arm-linux-androideabi \ 916 // RUN: --gcc-toolchain="" \ 917 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 918 // RUN: -shared \ 919 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 920 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 921 // RUN: --target=arm-linux-android \ 922 // RUN: --gcc-toolchain="" \ 923 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 924 // RUN: -shared \ 925 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 926 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 927 // RUN: --target=aarch64-linux-android \ 928 // RUN: --gcc-toolchain="" \ 929 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 930 // RUN: -shared \ 931 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 932 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 933 // RUN: --target=arm64-linux-android \ 934 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 935 // RUN: -shared \ 936 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 937 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 938 // RUN: --target=mipsel-linux-android \ 939 // RUN: --gcc-toolchain="" \ 940 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 941 // RUN: -shared \ 942 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 943 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 944 // RUN: --target=mips64el-linux-android \ 945 // RUN: --gcc-toolchain="" \ 946 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 947 // RUN: -shared \ 948 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 949 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 950 // RUN: --target=i686-linux-android \ 951 // RUN: --gcc-toolchain="" \ 952 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 953 // RUN: -shared \ 954 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 955 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 956 // RUN: --target=x86_64-linux-android \ 957 // RUN: --gcc-toolchain="" \ 958 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 959 // RUN: -shared \ 960 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 961 // CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 962 // CHECK-ANDROID-SO-NOT: "-Bsymbolic" 963 // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o" 964 // CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib" 965 // CHECK-ANDROID-SO-NOT: "gcc_s" 966 // CHECK-ANDROID-SO: "-lgcc" 967 // CHECK-ANDROID-SO: "-ldl" 968 // CHECK-ANDROID-SO-NOT: "gcc_s" 969 // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o" 970 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 971 // RUN: --target=arm-linux-androideabi \ 972 // RUN: --gcc-toolchain="" \ 973 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 974 // RUN: -static \ 975 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 976 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 977 // RUN: --target=arm-linux-android \ 978 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 979 // RUN: -static \ 980 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 981 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 982 // RUN: --target=aarch64-linux-android \ 983 // RUN: --gcc-toolchain="" \ 984 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 985 // RUN: -static \ 986 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 987 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 988 // RUN: --target=arm64-linux-android \ 989 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 990 // RUN: -static \ 991 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 992 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 993 // RUN: --target=mipsel-linux-android \ 994 // RUN: --gcc-toolchain="" \ 995 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 996 // RUN: -static \ 997 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 998 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 999 // RUN: --target=mips64el-linux-android \ 1000 // RUN: --gcc-toolchain="" \ 1001 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1002 // RUN: -static \ 1003 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1004 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1005 // RUN: --target=i686-linux-android \ 1006 // RUN: --gcc-toolchain="" \ 1007 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1008 // RUN: -static \ 1009 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1010 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1011 // RUN: --target=x86_64-linux-android \ 1012 // RUN: --gcc-toolchain="" \ 1013 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1014 // RUN: -static \ 1015 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1016 // CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1017 // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o" 1018 // CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib" 1019 // CHECK-ANDROID-STATIC-NOT: "gcc_s" 1020 // CHECK-ANDROID-STATIC: "-lgcc" 1021 // CHECK-ANDROID-STATIC-NOT: "-ldl" 1022 // CHECK-ANDROID-STATIC-NOT: "gcc_s" 1023 // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o" 1024 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1025 // RUN: --target=arm-linux-androideabi \ 1026 // RUN: --gcc-toolchain="" \ 1027 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1028 // RUN: -pie \ 1029 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1030 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1031 // RUN: --target=arm-linux-android \ 1032 // RUN: --gcc-toolchain="" \ 1033 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1034 // RUN: -pie \ 1035 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1036 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1037 // RUN: --target=aarch64-linux-android \ 1038 // RUN: --gcc-toolchain="" \ 1039 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1040 // RUN: -pie \ 1041 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1042 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1043 // RUN: --target=arm64-linux-android \ 1044 // RUN: --gcc-toolchain="" \ 1045 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1046 // RUN: -pie \ 1047 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1048 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1049 // RUN: --target=mipsel-linux-android \ 1050 // RUN: --gcc-toolchain="" \ 1051 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1052 // RUN: -pie \ 1053 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1054 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1055 // RUN: --target=mips64el-linux-android \ 1056 // RUN: --gcc-toolchain="" \ 1057 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1058 // RUN: -pie \ 1059 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1060 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1061 // RUN: --target=i686-linux-android \ 1062 // RUN: --gcc-toolchain="" \ 1063 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1064 // RUN: -pie \ 1065 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1066 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1067 // RUN: --target=x86_64-linux-android \ 1068 // RUN: --gcc-toolchain="" \ 1069 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1070 // RUN: -pie \ 1071 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1072 // CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1073 // CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o" 1074 // CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib" 1075 // CHECK-ANDROID-PIE-NOT: "gcc_s" 1076 // CHECK-ANDROID-PIE: "-lgcc" 1077 // CHECK-ANDROID-PIE-NOT: "gcc_s" 1078 // CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o" 1079 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1080 // RUN: --target=arm-linux-androideabi \ 1081 // RUN: --gcc-toolchain="" \ 1082 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1083 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1084 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1085 // RUN: --target=arm-linux-android \ 1086 // RUN: --gcc-toolchain="" \ 1087 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1088 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1089 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1090 // RUN: --target=mipsel-linux-android \ 1091 // RUN: --gcc-toolchain="" \ 1092 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1093 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1094 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1095 // RUN: --target=aarch64-linux-android \ 1096 // RUN: --gcc-toolchain="" \ 1097 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1098 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1099 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1100 // RUN: --target=arm64-linux-android \ 1101 // RUN: --gcc-toolchain="" \ 1102 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1103 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1104 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1105 // RUN: --target=mips64el-linux-android \ 1106 // RUN: --gcc-toolchain="" \ 1107 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1108 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1109 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1110 // RUN: --target=i686-linux-android \ 1111 // RUN: --gcc-toolchain="" \ 1112 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1113 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1114 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1115 // RUN: --target=x86_64-linux-android \ 1116 // RUN: --gcc-toolchain="" \ 1117 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1118 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1119 // CHECK-ANDROID-32: "-dynamic-linker" "/system/bin/linker" 1120 // CHECK-ANDROID-64: "-dynamic-linker" "/system/bin/linker64" 1121 // 1122 // Test that -pthread does not add -lpthread on Android. 1123 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1124 // RUN: --target=arm-linux-androideabi -pthread \ 1125 // RUN: --gcc-toolchain="" \ 1126 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1127 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1128 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1129 // RUN: --target=arm-linux-android -pthread \ 1130 // RUN: --gcc-toolchain="" \ 1131 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1132 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1133 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1134 // RUN: --target=aarch64-linux-android -pthread \ 1135 // RUN: --gcc-toolchain="" \ 1136 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1137 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1138 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1139 // RUN: --target=arm64-linux-android -pthread \ 1140 // RUN: --gcc-toolchain="" \ 1141 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1142 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1143 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1144 // RUN: --target=mipsel-linux-android -pthread \ 1145 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1146 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1147 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1148 // RUN: --target=mips64el-linux-android -pthread \ 1149 // RUN: --gcc-toolchain="" \ 1150 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1151 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1152 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1153 // RUN: --target=i686-linux-android -pthread \ 1154 // RUN: --gcc-toolchain="" \ 1155 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1156 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1157 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1158 // RUN: --target=x86_64-linux-android -pthread \ 1159 // RUN: --gcc-toolchain="" \ 1160 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1161 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1162 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1163 // RUN: --target=arm-linux-androideabi -pthread \ 1164 // RUN: --gcc-toolchain="" \ 1165 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1166 // RUN: -shared \ 1167 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1168 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1169 // RUN: --target=arm-linux-android -pthread \ 1170 // RUN: --gcc-toolchain="" \ 1171 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1172 // RUN: -shared \ 1173 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1174 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1175 // RUN: --target=aarch64-linux-android -pthread \ 1176 // RUN: --gcc-toolchain="" \ 1177 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1178 // RUN: -shared \ 1179 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1180 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1181 // RUN: --target=arm64-linux-android -pthread \ 1182 // RUN: --gcc-toolchain="" \ 1183 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1184 // RUN: -shared \ 1185 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1186 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1187 // RUN: --target=mipsel-linux-android -pthread \ 1188 // RUN: --gcc-toolchain="" \ 1189 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1190 // RUN: -shared \ 1191 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1192 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1193 // RUN: --target=mips64el-linux-android -pthread \ 1194 // RUN: --gcc-toolchain="" \ 1195 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1196 // RUN: -shared \ 1197 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1198 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1199 // RUN: --target=i686-linux-android -pthread \ 1200 // RUN: --gcc-toolchain="" \ 1201 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1202 // RUN: -shared \ 1203 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1204 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1205 // RUN: --target=x86_64-linux-android -pthread \ 1206 // RUN: --gcc-toolchain="" \ 1207 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1208 // RUN: -shared \ 1209 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1210 // CHECK-ANDROID-PTHREAD-NOT: -lpthread 1211 // 1212 // RUN: %clang -no-canonical-prefixes %t.o -### -o %t 2>&1 \ 1213 // RUN: --target=arm-linux-androideabi -pthread \ 1214 // RUN: --gcc-toolchain="" \ 1215 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1216 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD-LINK %s 1217 // CHECK-ANDROID-PTHREAD-LINK-NOT: argument unused during compilation: '-pthread' 1218 // 1219 // Check linker invocation on Debian 6 MIPS 32/64-bit. 1220 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1221 // RUN: --target=mipsel-linux-gnu \ 1222 // RUN: --gcc-toolchain="" \ 1223 // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 1224 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s 1225 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1226 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o" 1227 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o" 1228 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o" 1229 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4" 1230 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib" 1231 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib" 1232 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib" 1233 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.." 1234 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib" 1235 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib" 1236 // 1237 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1238 // RUN: --target=mips64el-linux-gnu \ 1239 // RUN: --gcc-toolchain="" \ 1240 // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 1241 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s 1242 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1243 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o" 1244 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o" 1245 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o" 1246 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64" 1247 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64" 1248 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64" 1249 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64" 1250 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.." 1251 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib" 1252 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib" 1253 // 1254 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1255 // RUN: --target=mips64el-linux-gnu -mabi=n32 \ 1256 // RUN: --gcc-toolchain="" \ 1257 // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 1258 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s 1259 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1260 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o" 1261 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o" 1262 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o" 1263 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32" 1264 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32" 1265 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32" 1266 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32" 1267 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.." 1268 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib" 1269 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib" 1270 // 1271 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1272 // RUN: --target=mips64-linux-gnuabi64 -mabi=n64 \ 1273 // RUN: --gcc-toolchain="" \ 1274 // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 1275 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64-GNUABI %s 1276 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1277 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crt1.o" 1278 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crti.o" 1279 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o" 1280 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9" 1281 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64" 1282 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib/mips64-linux-gnuabi64" 1283 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64-linux-gnuabi64" 1284 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9" 1285 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../.." 1286 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib" 1287 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib" 1288 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtend.o" 1289 // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crtn.o" 1290 // 1291 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1292 // RUN: --target=mips64el-linux-gnuabi64 -mabi=n64 \ 1293 // RUN: --gcc-toolchain="" \ 1294 // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 1295 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-GNUABI %s 1296 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1297 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crt1.o" 1298 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crti.o" 1299 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o" 1300 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9" 1301 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64" 1302 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib/mips64el-linux-gnuabi64" 1303 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64el-linux-gnuabi64" 1304 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9" 1305 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../.." 1306 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib" 1307 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib" 1308 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtend.o" 1309 // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crtn.o" 1310 // 1311 // Test linker invocation for Freescale SDK (OpenEmbedded). 1312 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1313 // RUN: --target=powerpc-fsl-linux \ 1314 // RUN: --gcc-toolchain="" \ 1315 // RUN: --sysroot=%S/Inputs/freescale_ppc_tree \ 1316 // RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s 1317 // CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1318 // CHECK-FSL-PPC: "-m" "elf32ppclinux" 1319 // CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o" 1320 // CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o" 1321 // CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib" 1322 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1323 // RUN: --target=powerpc64-fsl-linux \ 1324 // RUN: --gcc-toolchain="" \ 1325 // RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \ 1326 // RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s 1327 // CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1328 // CHECK-FSL-PPC64: "-m" "elf64ppc" 1329 // CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o" 1330 // CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o" 1331 // CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.." 1332 // 1333 // Check that crtfastmath.o is linked with -ffast-math and with -Ofast. 1334 // RUN: %clang --target=x86_64-unknown-linux -### %s \ 1335 // RUN: --gcc-toolchain="" \ 1336 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1337 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1338 // RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math \ 1339 // RUN: --gcc-toolchain="" \ 1340 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1341 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1342 // RUN: %clang --target=x86_64-unknown-linux -### %s -funsafe-math-optimizations\ 1343 // RUN: --gcc-toolchain="" \ 1344 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1345 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1346 // RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast\ 1347 // RUN: --gcc-toolchain="" \ 1348 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1349 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1350 // RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -O3\ 1351 // RUN: --gcc-toolchain="" \ 1352 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1353 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1354 // RUN: %clang --target=x86_64-unknown-linux -### %s -O3 -Ofast\ 1355 // RUN: --gcc-toolchain="" \ 1356 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1357 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1358 // RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \ 1359 // RUN: --gcc-toolchain="" \ 1360 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1361 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1362 // RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-fast-math \ 1363 // RUN: --gcc-toolchain="" \ 1364 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1365 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1366 // RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-unsafe-math-optimizations \ 1367 // RUN: --gcc-toolchain="" \ 1368 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1369 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1370 // RUN: %clang --target=x86_64-unknown-linux -### %s -fno-fast-math -Ofast \ 1371 // RUN: --gcc-toolchain="" \ 1372 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1373 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1374 // RUN: %clang --target=x86_64-unknown-linux -### %s -fno-unsafe-math-optimizations -Ofast \ 1375 // RUN: --gcc-toolchain="" \ 1376 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1377 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1378 // We don't have crtfastmath.o in the i386 tree, use it to check that file 1379 // detection works. 1380 // RUN: %clang --target=i386-unknown-linux -### %s -ffast-math \ 1381 // RUN: --gcc-toolchain="" \ 1382 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1383 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1384 // CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtfastmath.o 1385 // CHECK-NOCRTFASTMATH-NOT: crtfastmath.o 1386 1387 // Check that we link in gcrt1.o when compiling with -pg 1388 // RUN: %clang -pg --target=x86_64-unknown-linux -### %s \ 1389 // RUN: --gcc-toolchain="" \ 1390 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \ 1391 // RUN: | FileCheck --check-prefix=CHECK-PG %s 1392 // CHECK-PG: gcrt1.o 1393 1394 // GCC forwards -u to the linker. 1395 // RUN: %clang -u asdf --target=x86_64-unknown-linux -### %s \ 1396 // RUN: --gcc-toolchain="" \ 1397 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \ 1398 // RUN: | FileCheck --check-prefix=CHECK-u %s 1399 // CHECK-u: "-u" "asdf" 1400 1401 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1402 // RUN: --target=armeb-unknown-linux \ 1403 // RUN: --gcc-toolchain="" \ 1404 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1405 // RUN: | FileCheck --check-prefix=CHECK-ARMEB %s 1406 // CHECK-ARMEB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1407 // CHECK-ARMEB-NOT: "--be8" 1408 // CHECK-ARMEB: "-m" "armebelf_linux_eabi" 1409 1410 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1411 // RUN: --target=armebv7-unknown-linux \ 1412 // RUN: --gcc-toolchain="" \ 1413 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1414 // RUN: | FileCheck --check-prefix=CHECK-ARMV7EB %s 1415 // CHECK-ARMV7EB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1416 // CHECK-ARMV7EB: "--be8" 1417 // CHECK-ARMV7EB: "-m" "armebelf_linux_eabi" 1418