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