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