xref: /minix3/external/bsd/llvm/dist/clang/test/Driver/linux-ld.c (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
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:     --sysroot=%S/Inputs/basic_linux_tree \
7 // RUN:   | FileCheck --check-prefix=CHECK-LD-32 %s
8 // CHECK-LD-32-NOT: warning:
9 // CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
10 // CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
11 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
12 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
13 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
14 // CHECK-LD-32: "-L[[SYSROOT]]/lib"
15 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib"
16 //
17 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
18 // RUN:     --target=x86_64-unknown-linux \
19 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
20 // RUN:   | FileCheck --check-prefix=CHECK-LD-64 %s
21 // CHECK-LD-64-NOT: warning:
22 // CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
23 // CHECK-LD-64: "--eh-frame-hdr"
24 // CHECK-LD-64: "-m" "elf_x86_64"
25 // CHECK-LD-64: "-dynamic-linker"
26 // CHECK-LD-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
27 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
28 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
29 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
30 // CHECK-LD-64: "-L[[SYSROOT]]/lib"
31 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib"
32 // CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
33 // CHECK-LD-64: "-lc"
34 // CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
35 //
36 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
37 // RUN:     --target=x86_64-unknown-linux \
38 // RUN:     -static-libgcc \
39 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
40 // RUN:   | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s
41 // CHECK-LD-64-STATIC-LIBGCC-NOT: warning:
42 // CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
43 // CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr"
44 // CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64"
45 // CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker"
46 // CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
47 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
48 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
49 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
50 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib"
51 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib"
52 // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
53 // CHECK-LD-64-STATIC-LIBGCC: "-lc"
54 // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
55 //
56 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
57 // RUN:     --target=x86_64-unknown-linux \
58 // RUN:     -static \
59 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
60 // RUN:   | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
61 // CHECK-LD-64-STATIC-NOT: warning:
62 // CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
63 // CHECK-LD-64-STATIC-NOT: "--eh-frame-hdr"
64 // CHECK-LD-64-STATIC: "-m" "elf_x86_64"
65 // CHECK-LD-64-STATIC-NOT: "-dynamic-linker"
66 // CHECK-LD-64-STATIC: "-static"
67 // CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbeginT.o"
68 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
69 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
70 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
71 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib"
72 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib"
73 // CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group"
74 //
75 // Check that flags can be combined. The -static dominates.
76 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
77 // RUN:     --target=x86_64-unknown-linux \
78 // RUN:     -static-libgcc -static \
79 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
80 // RUN:   | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
81 //
82 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
83 // RUN:     --target=i386-unknown-linux -m32 \
84 // RUN:     --sysroot=%S/Inputs/multilib_32bit_linux_tree \
85 // RUN:   | FileCheck --check-prefix=CHECK-32-TO-32 %s
86 // CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
87 // CHECK-32-TO-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
88 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
89 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib32"
90 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib32"
91 // CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32"
92 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
93 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
94 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
95 // CHECK-32-TO-32: "-L[[SYSROOT]]/lib"
96 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib"
97 //
98 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
99 // RUN:     --target=i386-unknown-linux -m64 \
100 // RUN:     --sysroot=%S/Inputs/multilib_32bit_linux_tree \
101 // RUN:   | FileCheck --check-prefix=CHECK-32-TO-64 %s
102 // CHECK-32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
103 // CHECK-32-TO-64: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0/64{{/|\\\\}}crtbegin.o"
104 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/64"
105 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib64"
106 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib64"
107 // CHECK-32-TO-64: "-L[[SYSROOT]]/lib/../lib64"
108 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
109 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
110 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
111 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
112 // CHECK-32-TO-64: "-L[[SYSROOT]]/lib"
113 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib"
114 //
115 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
116 // RUN:     --target=x86_64-unknown-linux -m64 \
117 // RUN:     --sysroot=%S/Inputs/multilib_64bit_linux_tree \
118 // RUN:   | FileCheck --check-prefix=CHECK-64-TO-64 %s
119 // CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
120 // CHECK-64-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
121 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
122 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64"
123 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64"
124 // CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64"
125 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
126 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
127 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
128 // CHECK-64-TO-64: "-L[[SYSROOT]]/lib"
129 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib"
130 //
131 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
132 // RUN:     --target=x86_64-unknown-linux -m32 \
133 // RUN:     --sysroot=%S/Inputs/multilib_64bit_linux_tree \
134 // RUN:   | FileCheck --check-prefix=CHECK-64-TO-32 %s
135 // CHECK-64-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
136 // CHECK-64-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o"
137 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
138 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32"
139 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32"
140 // CHECK-64-TO-32: "-L[[SYSROOT]]/lib/../lib32"
141 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
142 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
143 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
144 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
145 // CHECK-64-TO-32: "-L[[SYSROOT]]/lib"
146 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib"
147 //
148 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
149 // RUN:     --target=x86_64-unknown-linux -m32 \
150 // RUN:     --gcc-toolchain=%S/Inputs/multilib_64bit_linux_tree/usr \
151 // RUN:     --sysroot=%S/Inputs/multilib_32bit_linux_tree \
152 // RUN:   | FileCheck --check-prefix=CHECK-64-TO-32-SYSROOT %s
153 // CHECK-64-TO-32-SYSROOT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
154 // CHECK-64-TO-32-SYSROOT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o"
155 // CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
156 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib/../lib32"
157 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib/../lib32"
158 // CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
159 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib"
160 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib"
161 //
162 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
163 // RUN:     --target=i386-unknown-linux -m32 \
164 // RUN:     -ccc-install-dir %S/Inputs/fake_install_tree/bin \
165 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
166 // RUN:   | FileCheck --check-prefix=CHECK-INSTALL-DIR-32 %s
167 // CHECK-INSTALL-DIR-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
168 // CHECK-INSTALL-DIR-32: "{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0{{/|\\\\}}crtbegin.o"
169 // CHECK-INSTALL-DIR-32: "-L{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0"
170 //
171 // Check that with 64-bit builds, we don't actually use the install directory
172 // as its version of GCC is lower than our sysrooted version.
173 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
174 // RUN:     --target=x86_64-unknown-linux -m64 \
175 // RUN:     -ccc-install-dir %S/Inputs/fake_install_tree/bin \
176 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
177 // RUN:   | FileCheck --check-prefix=CHECK-INSTALL-DIR-64 %s
178 // CHECK-INSTALL-DIR-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
179 // CHECK-INSTALL-DIR-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
180 // CHECK-INSTALL-DIR-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
181 //
182 // Check that we support unusual patch version formats, including missing that
183 // component.
184 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
185 // RUN:     --target=i386-unknown-linux -m32 \
186 // RUN:     -ccc-install-dir %S/Inputs/gcc_version_parsing1/bin \
187 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
188 // RUN:   | FileCheck --check-prefix=CHECK-GCC-VERSION1 %s
189 // CHECK-GCC-VERSION1: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
190 // CHECK-GCC-VERSION1: "{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7{{/|\\\\}}crtbegin.o"
191 // CHECK-GCC-VERSION1: "-L{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7"
192 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
193 // RUN:     --target=i386-unknown-linux -m32 \
194 // RUN:     -ccc-install-dir %S/Inputs/gcc_version_parsing2/bin \
195 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
196 // RUN:   | FileCheck --check-prefix=CHECK-GCC-VERSION2 %s
197 // CHECK-GCC-VERSION2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
198 // CHECK-GCC-VERSION2: "{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x{{/|\\\\}}crtbegin.o"
199 // CHECK-GCC-VERSION2: "-L{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x"
200 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
201 // RUN:     --target=i386-unknown-linux -m32 \
202 // RUN:     -ccc-install-dir %S/Inputs/gcc_version_parsing3/bin \
203 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
204 // RUN:   | FileCheck --check-prefix=CHECK-GCC-VERSION3 %s
205 // CHECK-GCC-VERSION3: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
206 // CHECK-GCC-VERSION3: "{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5{{/|\\\\}}crtbegin.o"
207 // CHECK-GCC-VERSION3: "-L{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5"
208 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
209 // RUN:     --target=i386-unknown-linux -m32 \
210 // RUN:     -ccc-install-dir %S/Inputs/gcc_version_parsing4/bin \
211 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
212 // RUN:   | FileCheck --check-prefix=CHECK-GCC-VERSION4 %s
213 // CHECK-GCC-VERSION4: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
214 // CHECK-GCC-VERSION4: "{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99{{/|\\\\}}crtbegin.o"
215 // CHECK-GCC-VERSION4: "-L{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99"
216 //
217 // Test a very broken version of multiarch that shipped in Ubuntu 11.04.
218 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
219 // RUN:     --target=i386-unknown-linux \
220 // RUN:     --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \
221 // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s
222 // CHECK-UBUNTU-11-04: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
223 // CHECK-UBUNTU-11-04: "{{.*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
224 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5"
225 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu"
226 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
227 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.."
228 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/lib"
229 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib"
230 //
231 // Check multi arch support on Ubuntu 12.04 LTS.
232 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
233 // RUN:     --target=arm-unknown-linux-gnueabihf \
234 // RUN:     --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
235 // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s
236 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
237 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crt1.o"
238 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crti.o"
239 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtbegin.o"
240 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3"
241 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf"
242 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf"
243 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf"
244 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../.."
245 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o"
246 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crtn.o"
247 //
248 // Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf.
249 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
250 // RUN:     --target=arm-linux-gnueabihf \
251 // RUN:     --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
252 // RUN:   | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s
253 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
254 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker" "/lib/ld-linux-armhf.so.3"
255 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crt1.o"
256 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crti.o"
257 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtbegin.o"
258 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8"
259 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib"
260 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib"
261 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib"
262 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib"
263 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtend.o"
264 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crtn.o"
265 //
266 // Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi.
267 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
268 // RUN:     --target=arm-linux-gnueabi \
269 // RUN:     --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
270 // RUN:   | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s
271 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
272 // CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "/lib/ld-linux.so.3"
273 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crt1.o"
274 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crti.o"
275 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtbegin.o"
276 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7"
277 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib"
278 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib"
279 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib"
280 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib"
281 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtend.o"
282 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crtn.o"
283 //
284 // Check fedora 18 on arm.
285 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
286 // RUN:     --target=armv7-unknown-linux-gnueabihf \
287 // RUN:     --sysroot=%S/Inputs/fedora_18_tree \
288 // RUN:   | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s
289 // CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
290 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o"
291 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crti.o"
292 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o"
293 // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2"
294 // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib"
295 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o"
296 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crtn.o"
297 //
298 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
299 // RUN:     --target=arm-unknown-linux-gnueabi \
300 // RUN:     --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
301 // RUN:   | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s
302 // CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
303 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crt1.o"
304 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crti.o"
305 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o"
306 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1"
307 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi"
308 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi"
309 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi"
310 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.."
311 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o"
312 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crtn.o"
313 //
314 // Test the setup that shipped in SUSE 10.3 on ppc64.
315 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
316 // RUN:     --target=powerpc64-suse-linux \
317 // RUN:     --sysroot=%S/Inputs/suse_10.3_ppc64_tree \
318 // RUN:   | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s
319 // CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
320 // CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o"
321 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64"
322 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64"
323 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64"
324 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64"
325 //
326 // Check dynamic-linker for different archs
327 // RUN: %clang %s -### -o %t.o 2>&1 \
328 // RUN:     --target=arm-linux-gnueabi \
329 // RUN:   | FileCheck --check-prefix=CHECK-ARM %s
330 // CHECK-ARM: "{{.*}}ld{{(.exe)?}}"
331 // CHECK-ARM: "-m" "armelf_linux_eabi"
332 // CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3"
333 //
334 // RUN: %clang %s -### -o %t.o 2>&1 \
335 // RUN:     --target=arm-linux-gnueabihf \
336 // RUN:   | FileCheck --check-prefix=CHECK-ARM-HF %s
337 // CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}"
338 // CHECK-ARM-HF: "-m" "armelf_linux_eabi"
339 // CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3"
340 //
341 // Check that we do not pass --hash-style=gnu and --hash-style=both to linker
342 // and provide correct path to the dynamic linker and emulation mode when build
343 // for MIPS platforms.
344 // RUN: %clang %s -### -o %t.o 2>&1 \
345 // RUN:     --target=mips-linux-gnu \
346 // RUN:   | FileCheck --check-prefix=CHECK-MIPS %s
347 // CHECK-MIPS: "{{.*}}ld{{(.exe)?}}"
348 // CHECK-MIPS: "-m" "elf32btsmip"
349 // CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
350 // CHECK-MIPS-NOT: "--hash-style={{gnu|both}}"
351 // RUN: %clang %s -### -o %t.o 2>&1 \
352 // RUN:     --target=mipsel-linux-gnu \
353 // RUN:   | FileCheck --check-prefix=CHECK-MIPSEL %s
354 // CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}"
355 // CHECK-MIPSEL: "-m" "elf32ltsmip"
356 // CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
357 // CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}"
358 // RUN: %clang %s -### -o %t.o 2>&1 \
359 // RUN:     --target=mips64-linux-gnu \
360 // RUN:   | FileCheck --check-prefix=CHECK-MIPS64 %s
361 // CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}"
362 // CHECK-MIPS64: "-m" "elf64btsmip"
363 // CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
364 // CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}"
365 // RUN: %clang %s -### -o %t.o 2>&1 \
366 // RUN:     --target=mips64el-linux-gnu \
367 // RUN:   | FileCheck --check-prefix=CHECK-MIPS64EL %s
368 // CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
369 // CHECK-MIPS64EL: "-m" "elf64ltsmip"
370 // CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
371 // CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"
372 // RUN: %clang %s -### -o %t.o 2>&1 \
373 // RUN:     --target=mips64-linux-gnu -mabi=n32 \
374 // RUN:   | FileCheck --check-prefix=CHECK-MIPS64-N32 %s
375 // CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}"
376 // CHECK-MIPS64-N32: "-m" "elf32btsmipn32"
377 // CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
378 // CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}"
379 // RUN: %clang %s -### -o %t.o 2>&1 \
380 // RUN:     --target=mips64el-linux-gnu -mabi=n32 \
381 // RUN:   | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s
382 // CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}"
383 // CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32"
384 // CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
385 // CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}"
386 //
387 // Thoroughly exercise the Debian multiarch environment.
388 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
389 // RUN:     --target=i686-linux-gnu \
390 // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
391 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s
392 // CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
393 // CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
394 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5"
395 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu"
396 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
397 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.."
398 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib"
399 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib"
400 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
401 // RUN:     --target=x86_64-linux-gnu \
402 // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
403 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s
404 // CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
405 // CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
406 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5"
407 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu"
408 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu"
409 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.."
410 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib"
411 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib"
412 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
413 // RUN:     --target=powerpc-linux-gnu \
414 // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
415 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s
416 // CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
417 // CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
418 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5"
419 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu"
420 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu"
421 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.."
422 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib"
423 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib"
424 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
425 // RUN:     --target=powerpc64-linux-gnu \
426 // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
427 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s
428 // CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
429 // CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
430 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5"
431 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu"
432 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu"
433 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.."
434 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib"
435 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib"
436 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
437 // RUN:     --target=mips-linux-gnu \
438 // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
439 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s
440 // CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
441 // CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
442 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
443 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu"
444 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu"
445 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
446 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib"
447 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib"
448 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
449 // RUN:     --target=mipsel-linux-gnu \
450 // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
451 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s
452 // CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
453 // CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
454 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
455 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu"
456 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu"
457 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
458 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib"
459 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib"
460 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
461 // RUN:     --target=mips64-linux-gnu \
462 // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
463 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s
464 // CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
465 // CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
466 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64"
467 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
468 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
469 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib"
470 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib"
471 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
472 // RUN:     --target=mips64el-linux-gnu \
473 // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
474 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s
475 // CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
476 // CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
477 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64"
478 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
479 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
480 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib"
481 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
482 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
483 // RUN:     --target=mips64-linux-gnu -mabi=n32 \
484 // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
485 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s
486 // CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
487 // CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
488 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32"
489 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
490 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
491 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib"
492 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib"
493 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
494 // RUN:     --target=mips64el-linux-gnu -mabi=n32 \
495 // RUN:     --sysroot=%S/Inputs/debian_multiarch_tree \
496 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s
497 // CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
498 // CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
499 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32"
500 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
501 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
502 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
503 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
504 //
505 // Test linker invocation on Android.
506 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
507 // RUN:     --target=arm-linux-androideabi \
508 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
509 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID %s
510 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
511 // RUN:     --target=arm-linux-android \
512 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
513 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID %s
514 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
515 // RUN:     --target=mipsel-linux-android \
516 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
517 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID %s
518 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
519 // RUN:     --target=i386-linux-android \
520 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
521 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID %s
522 // CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
523 // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
524 // CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib"
525 // CHECK-ANDROID-NOT: "gcc_s"
526 // CHECK-ANDROID: "-lgcc"
527 // CHECK-ANDROID: "-ldl"
528 // CHECK-ANDROID-NOT: "gcc_s"
529 // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o"
530 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
531 // RUN:     --target=arm-linux-androideabi \
532 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
533 // RUN:     -shared \
534 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-SO %s
535 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
536 // RUN:     --target=arm-linux-android \
537 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
538 // RUN:     -shared \
539 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-SO %s
540 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
541 // RUN:     --target=mipsel-linux-android \
542 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
543 // RUN:     -shared \
544 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-SO %s
545 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
546 // RUN:     --target=i386-linux-android \
547 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
548 // RUN:     -shared \
549 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-SO %s
550 // CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
551 // CHECK-ANDROID-SO: "-Bsymbolic"
552 // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o"
553 // CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib"
554 // CHECK-ANDROID-SO-NOT: "gcc_s"
555 // CHECK-ANDROID-SO: "-lgcc"
556 // CHECK-ANDROID-SO: "-ldl"
557 // CHECK-ANDROID-SO-NOT: "gcc_s"
558 // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o"
559 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
560 // RUN:     --target=arm-linux-androideabi \
561 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
562 // RUN:     -static \
563 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
564 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
565 // RUN:     --target=arm-linux-android \
566 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
567 // RUN:     -static \
568 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
569 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
570 // RUN:     --target=mipsel-linux-android \
571 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
572 // RUN:     -static \
573 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
574 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
575 // RUN:     --target=i386-linux-android \
576 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
577 // RUN:     -static \
578 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
579 // CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
580 // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o"
581 // CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib"
582 // CHECK-ANDROID-STATIC-NOT: "gcc_s"
583 // CHECK-ANDROID-STATIC: "-lgcc"
584 // CHECK-ANDROID-STATIC-NOT: "-ldl"
585 // CHECK-ANDROID-STATIC-NOT: "gcc_s"
586 // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o"
587 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
588 // RUN:     --target=arm-linux-androideabi \
589 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot  \
590 // RUN:     -pie \
591 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
592 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
593 // RUN:     --target=arm-linux-android \
594 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
595 // RUN:     -pie \
596 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
597 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
598 // RUN:     --target=mipsel-linux-android \
599 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
600 // RUN:     -pie \
601 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
602 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
603 // RUN:     --target=i386-linux-android \
604 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
605 // RUN:     -pie \
606 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
607 // CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
608 // CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
609 // CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib"
610 // CHECK-ANDROID-PIE-NOT: "gcc_s"
611 // CHECK-ANDROID-PIE: "-lgcc"
612 // CHECK-ANDROID-PIE-NOT: "gcc_s"
613 // CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o"
614 //
615 // Check linker invocation on Debian 6 MIPS 32/64-bit.
616 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
617 // RUN:     --target=mipsel-linux-gnu \
618 // RUN:     --sysroot=%S/Inputs/debian_6_mips_tree \
619 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s
620 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
621 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o"
622 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o"
623 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o"
624 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4"
625 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib"
626 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib"
627 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib"
628 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
629 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib"
630 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib"
631 //
632 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
633 // RUN:     --target=mips64el-linux-gnu \
634 // RUN:     --sysroot=%S/Inputs/debian_6_mips_tree \
635 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s
636 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
637 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o"
638 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o"
639 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o"
640 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64"
641 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64"
642 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64"
643 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64"
644 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
645 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib"
646 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
647 //
648 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
649 // RUN:     --target=mips64el-linux-gnu -mabi=n32 \
650 // RUN:     --sysroot=%S/Inputs/debian_6_mips_tree \
651 // RUN:   | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s
652 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
653 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o"
654 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o"
655 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o"
656 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32"
657 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32"
658 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32"
659 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32"
660 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
661 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
662 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
663 //
664 // Test linker invocation for Freescale SDK (OpenEmbedded).
665 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
666 // RUN:     --target=powerpc-fsl-linux \
667 // RUN:     --sysroot=%S/Inputs/freescale_ppc_tree \
668 // RUN:   | FileCheck --check-prefix=CHECK-FSL-PPC %s
669 // CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
670 // CHECK-FSL-PPC: "-m" "elf32ppclinux"
671 // CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o"
672 // CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o"
673 // CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib"
674 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
675 // RUN:     --target=powerpc64-fsl-linux \
676 // RUN:     --sysroot=%S/Inputs/freescale_ppc64_tree \
677 // RUN:   | FileCheck --check-prefix=CHECK-FSL-PPC64 %s
678 // CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
679 // CHECK-FSL-PPC64: "-m" "elf64ppc"
680 // CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o"
681 // CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o"
682 // CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.."
683 //
684 // Check that crtfastmath.o is linked with -ffast-math.
685 // RUN: %clang --target=x86_64-unknown-linux -### %s \
686 // RUN:        --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
687 // RUN:   | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
688 // RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math \
689 // RUN:        --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
690 // RUN:   | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
691 // RUN: %clang --target=x86_64-unknown-linux -### %s -funsafe-math-optimizations\
692 // RUN:        --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
693 // RUN:   | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
694 // RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \
695 // RUN:        --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
696 // RUN:   | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
697 // We don't have crtfastmath.o in the i386 tree, use it to check that file
698 // detection works.
699 // RUN: %clang --target=i386-unknown-linux -### %s -ffast-math \
700 // RUN:        --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
701 // RUN:   | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
702 // CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtfastmath.o
703 // CHECK-NOCRTFASTMATH-NOT: crtfastmath.o
704 
705 // Check that we link in gcrt1.o when compiling with -pg
706 // RUN: %clang -pg --target=x86_64-unknown-linux -### %s \
707 // RUN:        --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
708 // RUN:   | FileCheck --check-prefix=CHECK-PG %s
709 // CHECK-PG: gcrt1.o
710