1 // REQUIRES: hexagon-registered-target
3 // -----------------------------------------------------------------------------
4 // Test standard include paths
5 // -----------------------------------------------------------------------------
7 // RUN: %clang -### -target hexagon-unknown-linux \
8 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
10 // RUN: | FileCheck -check-prefix=CHECK001 %s
11 // CHECK001: "-cc1" {{.*}} "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/lib/gcc/hexagon/4.4.0/include"
12 // CHECK001: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/lib/gcc/hexagon/4.4.0/include-fixed"
13 // CHECK001: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/hexagon/include"
14 // CHECK001-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-as"
16 // RUN: %clang -ccc-cxx -x c++ -### -target hexagon-unknown-linux \
17 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
19 // RUN: | FileCheck -check-prefix=CHECK002 %s
20 // CHECK002: "-cc1" {{.*}} "-internal-isystem" "[[INSTALL_DIR:.*]]/Inputs/hexagon_tree/qc/bin/../../gnu/hexagon/include/c++/4.4.0"
21 // CHECK002: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/lib/gcc/hexagon/4.4.0/include"
22 // CHECK002: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/lib/gcc/hexagon/4.4.0/include-fixed"
23 // CHECK002: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/hexagon/include"
24 // CHECK002-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-as"
26 // -----------------------------------------------------------------------------
27 // Test -nostdinc, -nostdlibinc, -nostdinc++
28 // -----------------------------------------------------------------------------
30 // RUN: %clang -### -target hexagon-unknown-linux \
31 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
34 // RUN: | FileCheck -check-prefix=CHECK003 %s
36 // CHECK003-NOT: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/lib/gcc/hexagon/4.4.0/include"
37 // CHECK003-NOT: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/lib/gcc/hexagon/4.4.0/include-fixed"
38 // CHECK003-NOT: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/hexagon/include"
39 // CHECK003-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-as"
41 // RUN: %clang -### -target hexagon-unknown-linux \
42 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
43 // RUN: -nostdlibinc \
45 // RUN: | FileCheck -check-prefix=CHECK004 %s
47 // CHECK004-NOT: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/lib/gcc/hexagon/4.4.0/include"
48 // CHECK004-NOT: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/lib/gcc/hexagon/4.4.0/include-fixed"
49 // CHECK004-NOT: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/hexagon/include"
50 // CHECK004-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-as"
52 // RUN: %clang -ccc-cxx -x c++ -### -target hexagon-unknown-linux \
53 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
54 // RUN: -nostdlibinc \
56 // RUN: | FileCheck -check-prefix=CHECK005 %s
58 // CHECK005-NOT: "-internal-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/hexagon/include/c++/4.4.0"
59 // CHECK005-NOT: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/lib/gcc/hexagon/4.4.0/include"
60 // CHECK005-NOT: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/lib/gcc/hexagon/4.4.0/include-fixed"
61 // CHECK005-NOT: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/hexagon/include"
62 // CHECK005-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-as"
64 // RUN: %clang -ccc-cxx -x c++ -### -target hexagon-unknown-linux \
65 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
68 // RUN: | FileCheck -check-prefix=CHECK006 %s
70 // CHECK006-NOT: "-internal-isystem" "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/hexagon/include/c++/4.4.0"
71 // CHECK006-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-as"
73 // -----------------------------------------------------------------------------
74 // Test -march=<archname> -mcpu=<archname> -mv<number>
75 // -----------------------------------------------------------------------------
76 // RUN: %clang -### -target hexagon-unknown-linux \
77 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
78 // RUN: -march=hexagonv3 \
80 // RUN: | FileCheck -check-prefix=CHECK007 %s
81 // CHECK007: "-cc1" {{.*}} "-target-cpu" "hexagonv3"
82 // CHECK007-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-as"{{.*}} "-march=v3"
83 // CHECK007-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-ld"{{.*}} "-mv3"
85 // RUN: %clang -### -target hexagon-unknown-linux \
86 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
87 // RUN: -mcpu=hexagonv5 \
89 // RUN: | FileCheck -check-prefix=CHECK008 %s
90 // CHECK008: "-cc1" {{.*}} "-target-cpu" "hexagonv5"
91 // CHECK008-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-as"{{.*}} "-march=v5"
92 // CHECK008-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-ld"{{.*}} "-mv5"
94 // RUN: %clang -### -target hexagon-unknown-linux \
95 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
98 // RUN: | FileCheck -check-prefix=CHECK009 %s
99 // CHECK009: "-cc1" {{.*}} "-target-cpu" "hexagonv2"
100 // CHECK009-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-as"{{.*}} "-march=v2"
101 // CHECK009-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-ld"{{.*}} "-mv2"
103 // RUN: %clang -### -target hexagon-unknown-linux \
104 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
106 // RUN: | FileCheck -check-prefix=CHECK010 %s
107 // CHECK010: "-cc1" {{.*}} "-target-cpu" "hexagonv4"
108 // CHECK010-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-as"{{.*}} "-march=v4"
109 // CHECK010-NEXT: "{{.*}}/Inputs/hexagon_tree/qc/bin/../../gnu/bin/hexagon-ld"{{.*}} "-mv4"
111 // RUN: %clang -march=hexagonv2 -target hexagon-unknown-linux \
112 // RUN: %s 2>&1 | FileCheck -check-prefix=CHECK-UNKNOWN-V2 %s
113 // RUN: %clang -mcpu=hexagonv2 -target hexagon-unknown-linux \
114 // RUN: %s 2>&1 | FileCheck -check-prefix=CHECK-UNKNOWN-V2 %s
115 // RUN: %clang -mv2 -target hexagon-unknown-linux \
116 // RUN: %s 2>&1 | FileCheck -check-prefix=CHECK-UNKNOWN-V2 %s
117 // CHECK-UNKNOWN-V2: error: unknown target CPU 'hexagonv2'
119 // RUN: %clang -march=hexagonv3 -target hexagon-unknown-linux \
120 // RUN: %s 2>&1 | FileCheck -check-prefix=CHECK-UNKNOWN-V3 %s
121 // RUN: %clang -mcpu=hexagonv3 -target hexagon-unknown-linux \
122 // RUN: %s 2>&1 | FileCheck -check-prefix=CHECK-UNKNOWN-V3 %s
123 // RUN: %clang -mv3 -target hexagon-unknown-linux \
124 // RUN: %s 2>&1 | FileCheck -check-prefix=CHECK-UNKNOWN-V3 %s
125 // CHECK-UNKNOWN-V3: error: unknown target CPU 'hexagonv3'
127 // -----------------------------------------------------------------------------
128 // Test Linker related args
129 // -----------------------------------------------------------------------------
131 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
133 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
134 // RUN: %clang -### -target hexagon-unknown-linux \
135 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
137 // RUN: | FileCheck -check-prefix=CHECK011 %s
138 // CHECK011: "{{.*}}clang{{.*}}" "-cc1"
139 // CHECK011-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
140 // CHECK011-NEXT: "{{.*}}/bin/hexagon-ld"
141 // CHECK011-NOT: "-static"
142 // CHECK011-NOT: "-shared"
143 // CHECK011: "{{.*}}/hexagon/lib/v4/crt0_standalone.o"
144 // CHECK011: "{{.*}}/hexagon/lib/v4/crt0.o"
145 // CHECK011: "{{.*}}/hexagon/lib/v4/init.o"
146 // CHECK011: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
147 // CHECK011: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
148 // CHECK011: "-L{{.*}}/lib/gcc"
149 // CHECK011: "-L{{.*}}/hexagon/lib/v4"
150 // CHECK011: "-L{{.*}}/hexagon/lib"
151 // CHECK011: "{{[^"]+}}.o"
152 // CHECK011: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group"
153 // CHECK011: "{{.*}}/hexagon/lib/v4/fini.o"
155 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
157 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
158 // RUN: %clang -ccc-cxx -x c++ -### -target hexagon-unknown-linux \
159 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
161 // RUN: | FileCheck -check-prefix=CHECK012 %s
162 // CHECK012: "{{.*}}clang{{.*}}" "-cc1"
163 // CHECK012-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
164 // CHECK012-NEXT: "{{.*}}/bin/hexagon-ld"
165 // CHECK012-NOT: "-static"
166 // CHECK012-NOT: "-shared"
167 // CHECK012: "{{.*}}/hexagon/lib/v4/crt0_standalone.o"
168 // CHECK012: "{{.*}}/hexagon/lib/v4/crt0.o"
169 // CHECK012: "{{.*}}/hexagon/lib/v4/init.o"
170 // CHECK012: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
171 // CHECK012: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
172 // CHECK012: "-L{{.*}}/lib/gcc"
173 // CHECK012: "-L{{.*}}/hexagon/lib/v4"
174 // CHECK012: "-L{{.*}}/hexagon/lib"
175 // CHECK012: "{{[^"]+}}.o"
176 // CHECK012: "-lstdc++" "-lm"
177 // CHECK012: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group"
178 // CHECK012: "{{.*}}/hexagon/lib/v4/fini.o"
180 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
181 // Additional Libraries (-L)
182 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
183 // RUN: %clang -### -target hexagon-unknown-linux \
184 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
185 // RUN: -Lone -L two -L three \
187 // RUN: | FileCheck -check-prefix=CHECK013 %s
188 // CHECK013: "{{.*}}clang{{.*}}" "-cc1"
189 // CHECK013-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
190 // CHECK013-NEXT: "{{.*}}/bin/hexagon-ld"
191 // CHECK013: "{{.*}}/hexagon/lib/v4/crt0_standalone.o"
192 // CHECK013: "{{.*}}/hexagon/lib/v4/crt0.o"
193 // CHECK013: "{{.*}}/hexagon/lib/v4/init.o"
194 // CHECK013: "-Lone" "-Ltwo" "-Lthree"
195 // CHECK013: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
196 // CHECK013: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
197 // CHECK013: "-L{{.*}}/lib/gcc"
198 // CHECK013: "-L{{.*}}/hexagon/lib/v4"
199 // CHECK013: "-L{{.*}}/hexagon/lib"
200 // CHECK013: "{{[^"]+}}.o"
201 // CHECK013: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group"
202 // CHECK013: "{{.*}}/hexagon/lib/v4/fini.o"
204 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
206 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
207 // RUN: %clang -### -target hexagon-unknown-linux \
208 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
211 // RUN: | FileCheck -check-prefix=CHECK014 %s
212 // CHECK014: "{{.*}}clang{{.*}}" "-cc1"
213 // CHECK014-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
214 // CHECK014-NEXT: "{{.*}}/bin/hexagon-ld"
215 // CHECK014: "-static"
216 // CHECK014: "{{.*}}/hexagon/lib/v4/crt0_standalone.o"
217 // CHECK014: "{{.*}}/hexagon/lib/v4/crt0.o"
218 // CHECK014: "{{.*}}/hexagon/lib/v4/init.o"
219 // CHECK014: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
220 // CHECK014: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
221 // CHECK014: "-L{{.*}}/lib/gcc"
222 // CHECK014: "-L{{.*}}/hexagon/lib/v4"
223 // CHECK014: "-L{{.*}}/hexagon/lib"
224 // CHECK014: "{{[^"]+}}.o"
225 // CHECK014: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group"
226 // CHECK014: "{{.*}}/hexagon/lib/v4/fini.o"
228 // RUN: %clang -### -target hexagon-unknown-linux \
229 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
232 // RUN: | FileCheck -check-prefix=CHECK015 %s
233 // CHECK015: "{{.*}}clang{{.*}}" "-cc1"
234 // CHECK015-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
235 // CHECK015-NEXT: "{{.*}}/bin/hexagon-ld"
236 // CHECK015: "-shared" "-call_shared"
237 // CHECK015-NOT: crt0_standalone.o
238 // CHECK015-NOT: crt0.o
239 // CHECK015: "{{.*}}/hexagon/lib/v4/G0/initS.o"
240 // CHECK015: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4/G0"
241 // CHECK015: "-L{{.*}}/lib/gcc/hexagon/4.4.0/G0"
242 // CHECK015: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
243 // CHECK015: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
244 // CHECK015: "-L{{.*}}/lib/gcc"
245 // CHECK015: "-L{{.*}}/hexagon/lib/v4/G0"
246 // CHECK015: "-L{{.*}}/hexagon/lib/G0"
247 // CHECK015: "-L{{.*}}/hexagon/lib/v4"
248 // CHECK015: "-L{{.*}}/hexagon/lib"
249 // CHECK015: "{{[^"]+}}.o"
250 // CHECK015: "--start-group"
251 // CHECK015-NOT: "-lstandalone"
252 // CHECK015-NOT: "-lc"
254 // CHECK015: "--end-group"
255 // CHECK015: "{{.*}}/hexagon/lib/v4/G0/finiS.o"
257 // RUN: %clang -### -target hexagon-unknown-linux \
258 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
262 // RUN: | FileCheck -check-prefix=CHECK016 %s
263 // CHECK016: "{{.*}}clang{{.*}}" "-cc1"
264 // CHECK016-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
265 // CHECK016-NEXT: "{{.*}}/bin/hexagon-ld"
266 // CHECK016: "-shared" "-call_shared" "-static"
267 // CHECK016-NOT: crt0_standalone.o
268 // CHECK016-NOT: crt0.o
269 // CHECK016: "{{.*}}/hexagon/lib/v4/G0/init.o"
270 // CHECK016: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4/G0"
271 // CHECK016: "-L{{.*}}/lib/gcc/hexagon/4.4.0/G0"
272 // CHECK016: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
273 // CHECK016: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
274 // CHECK016: "-L{{.*}}/lib/gcc"
275 // CHECK016: "-L{{.*}}/hexagon/lib/v4/G0"
276 // CHECK016: "-L{{.*}}/hexagon/lib/G0"
277 // CHECK016: "-L{{.*}}/hexagon/lib/v4"
278 // CHECK016: "-L{{.*}}/hexagon/lib"
279 // CHECK016: "{{[^"]+}}.o"
280 // CHECK016: "--start-group"
281 // CHECK016-NOT: "-lstandalone"
282 // CHECK016-NOT: "-lc"
284 // CHECK016: "--end-group"
285 // CHECK016: "{{.*}}/hexagon/lib/v4/G0/fini.o"
287 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
288 // -nostdlib, -nostartfiles, -nodefaultlibs
289 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
290 // RUN: %clang -ccc-cxx -x c++ -### -target hexagon-unknown-linux \
291 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
294 // RUN: | FileCheck -check-prefix=CHECK017 %s
295 // CHECK017: "{{.*}}clang{{.*}}" "-cc1"
296 // CHECK017-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
297 // CHECK017-NEXT: "{{.*}}/bin/hexagon-ld"
298 // CHECK017-NOT: crt0_standalone.o
299 // CHECK017-NOT: crt0.o
300 // CHECK017-NOT: init.o
301 // CHECK017: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
302 // CHECK017: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
303 // CHECK017: "-L{{.*}}/lib/gcc"
304 // CHECK017: "-L{{.*}}/hexagon/lib/v4"
305 // CHECK017: "-L{{.*}}/hexagon/lib"
306 // CHECK017: "{{[^"]+}}.o"
307 // CHECK017-NOT: "-lstdc++"
308 // CHECK017-NOT: "-lm"
309 // CHECK017-NOT: "--start-group"
310 // CHECK017-NOT: "-lstandalone"
311 // CHECK017-NOT: "-lc"
312 // CHECK017-NOT: "-lgcc"
313 // CHECK017-NOT: "--end-group"
314 // CHECK017-NOT: fini.o
316 // RUN: %clang -ccc-cxx -x c++ -### -target hexagon-unknown-linux \
317 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
318 // RUN: -nostartfiles \
320 // RUN: | FileCheck -check-prefix=CHECK018 %s
321 // CHECK018: "{{.*}}clang{{.*}}" "-cc1"
322 // CHECK018-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
323 // CHECK018-NEXT: "{{.*}}/bin/hexagon-ld"
324 // CHECK018-NOT: crt0_standalone.o
325 // CHECK018-NOT: crt0.o
326 // CHECK018-NOT: init.o
327 // CHECK018: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
328 // CHECK018: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
329 // CHECK018: "-L{{.*}}/lib/gcc"
330 // CHECK018: "-L{{.*}}/hexagon/lib/v4"
331 // CHECK018: "-L{{.*}}/hexagon/lib"
332 // CHECK018: "{{[^"]+}}.o"
333 // CHECK018: "-lstdc++"
335 // CHECK018: "--start-group"
336 // CHECK018: "-lstandalone"
339 // CHECK018: "--end-group"
340 // CHECK018-NOT: fini.o
342 // RUN: %clang -ccc-cxx -x c++ -### -target hexagon-unknown-linux \
343 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
344 // RUN: -nodefaultlibs \
346 // RUN: | FileCheck -check-prefix=CHECK019 %s
347 // CHECK019: "{{.*}}clang{{.*}}" "-cc1"
348 // CHECK019-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
349 // CHECK019-NEXT: "{{.*}}/bin/hexagon-ld"
350 // CHECK019: "{{.*}}/hexagon/lib/v4/crt0_standalone.o"
351 // CHECK019: "{{.*}}/hexagon/lib/v4/crt0.o"
352 // CHECK019: "{{.*}}/hexagon/lib/v4/init.o"
353 // CHECK019: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
354 // CHECK019: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
355 // CHECK019: "-L{{.*}}/lib/gcc"
356 // CHECK019: "-L{{.*}}/hexagon/lib/v4"
357 // CHECK019: "-L{{.*}}/hexagon/lib"
358 // CHECK019: "{{[^"]+}}.o"
359 // CHECK019-NOT: "-lstdc++"
360 // CHECK019-NOT: "-lm"
361 // CHECK019-NOT: "--start-group"
362 // CHECK019-NOT: "-lstandalone"
363 // CHECK019-NOT: "-lc"
364 // CHECK019-NOT: "-lgcc"
365 // CHECK019-NOT: "--end-group"
366 // CHECK019: "{{.*}}/hexagon/lib/v4/fini.o"
368 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
370 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
371 // RUN: %clang -### -target hexagon-unknown-linux \
372 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
373 // RUN: -moslib=first -moslib=second \
375 // RUN: | FileCheck -check-prefix=CHECK020 %s
376 // CHECK020: "{{.*}}clang{{.*}}" "-cc1"
377 // CHECK020-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
378 // CHECK020-NEXT: "{{.*}}/bin/hexagon-ld"
379 // CHECK020-NOT: "-static"
380 // CHECK020-NOT: "-shared"
381 // CHECK020-NOT: crt0_standalone.o
382 // CHECK020: "{{.*}}/hexagon/lib/v4/crt0.o"
383 // CHECK020: "{{.*}}/hexagon/lib/v4/init.o"
384 // CHECK020: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
385 // CHECK020: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
386 // CHECK020: "-L{{.*}}/lib/gcc"
387 // CHECK020: "-L{{.*}}/hexagon/lib/v4"
388 // CHECK020: "-L{{.*}}/hexagon/lib"
389 // CHECK020: "{{[^"]+}}.o"
390 // CHECK020: "--start-group"
391 // CHECK020: "-lfirst" "-lsecond"
392 // CHECK020-NOT: "-lstandalone"
393 // CHECK020: "-lc" "-lgcc" "--end-group"
394 // CHECK020: "{{.*}}/hexagon/lib/v4/fini.o"
396 // RUN: %clang -### -target hexagon-unknown-linux \
397 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
398 // RUN: -moslib=first -moslib=second -moslib=standalone\
400 // RUN: | FileCheck -check-prefix=CHECK021 %s
401 // CHECK021: "{{.*}}clang{{.*}}" "-cc1"
402 // CHECK021-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
403 // CHECK021-NEXT: "{{.*}}/bin/hexagon-ld"
404 // CHECK021-NOT: "-static"
405 // CHECK021-NOT: "-shared"
406 // CHECK021: "{{.*}}/hexagon/lib/v4/crt0_standalone.o"
407 // CHECK021: "{{.*}}/hexagon/lib/v4/crt0.o"
408 // CHECK021: "{{.*}}/hexagon/lib/v4/init.o"
409 // CHECK021: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
410 // CHECK021: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
411 // CHECK021: "-L{{.*}}/lib/gcc"
412 // CHECK021: "-L{{.*}}/hexagon/lib/v4"
413 // CHECK021: "-L{{.*}}/hexagon/lib"
414 // CHECK021: "{{[^"]+}}.o"
415 // CHECK021: "--start-group"
416 // CHECK021: "-lfirst" "-lsecond"
417 // CHECK021: "-lstandalone"
418 // CHECK021: "-lc" "-lgcc" "--end-group"
419 // CHECK021: "{{.*}}/hexagon/lib/v4/fini.o"
421 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
422 // Other args to pass to linker
423 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
424 // RUN: %clang -ccc-cxx -x c++ -### -target hexagon-unknown-linux \
425 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
427 // RUN: -Tbss 0xdead -Tdata 0xbeef -Ttext 0xcafe \
429 // RUN: -e start_here \
430 // RUN: -uFoo -undefined Bar \
432 // RUN: | FileCheck -check-prefix=CHECK022 %s
433 // CHECK022: "{{.*}}clang{{.*}}" "-cc1"
434 // CHECK022-NEXT: "{{.*}}/bin/hexagon-as"{{.*}}
435 // CHECK022-NEXT: "{{.*}}/bin/hexagon-ld"
436 // CHECK022: "{{.*}}/hexagon/lib/v4/crt0_standalone.o"
437 // CHECK022: "{{.*}}/hexagon/lib/v4/crt0.o"
438 // CHECK022: "{{.*}}/hexagon/lib/v4/init.o"
439 // CHECK022: "-L{{.*}}/lib/gcc/hexagon/4.4.0/v4"
440 // CHECK022: "-L{{.*}}/lib/gcc/hexagon/4.4.0"
441 // CHECK022: "-L{{.*}}/lib/gcc"
442 // CHECK022: "-L{{.*}}/hexagon/lib/v4"
443 // CHECK022: "-L{{.*}}/hexagon/lib"
444 // CHECK022: "-Tbss" "0xdead" "-Tdata" "0xbeef" "-Ttext" "0xcafe"
447 // CHECK022: "-u" "Foo" "-undefined" "Bar"
448 // CHECK022: "{{[^"]+}}.o"
449 // CHECK022: "-lstdc++" "-lm"
450 // CHECK022: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group"
451 // CHECK022: "{{.*}}/hexagon/lib/v4/fini.o"
453 // -----------------------------------------------------------------------------
454 // pic, small data threshold
455 // -----------------------------------------------------------------------------
456 // RUN: %clang -### -target hexagon-unknown-linux \
457 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
459 // RUN: | FileCheck -check-prefix=CHECK023 %s
460 // CHECK023: "{{.*}}clang{{.*}}" "-cc1"
461 // CHECK023: "-mrelocation-model" "static"
462 // CHECK023-NEXT: "{{.*}}/bin/hexagon-as"
463 // CHECK023-NOT: "-G{{[0-9]+}}"
464 // CHECK023-NEXT: "{{.*}}/bin/hexagon-ld"
465 // CHECK023-NOT: "-G{{[0-9]+}}"
467 // RUN: %clang -### -target hexagon-unknown-linux \
468 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
471 // RUN: | FileCheck -check-prefix=CHECK024 %s
472 // RUN: %clang -### -target hexagon-unknown-linux \
473 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
476 // RUN: | FileCheck -check-prefix=CHECK024 %s
477 // RUN: %clang -### -target hexagon-unknown-linux \
478 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
480 // RUN: -msmall_data_threshold=8 \
482 // RUN: | FileCheck -check-prefix=CHECK024 %s
483 // CHECK024: "{{.*}}clang{{.*}}" "-cc1"
484 // CHECK024-NOT: "-mrelocation-model" "static"
485 // CHECK024: "-pic-level" "{{[12]}}"
486 // CHECK024: "-mllvm" "-hexagon-small-data-threshold=0"
487 // CHECK024-NEXT: "{{.*}}/bin/hexagon-as"
489 // CHECK024-NEXT: "{{.*}}/bin/hexagon-ld"
492 // RUN: %clang -### -target hexagon-unknown-linux \
493 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
496 // RUN: | FileCheck -check-prefix=CHECK025 %s
497 // RUN: %clang -### -target hexagon-unknown-linux \
498 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
501 // RUN: | FileCheck -check-prefix=CHECK025 %s
502 // RUN: %clang -### -target hexagon-unknown-linux \
503 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
504 // RUN: -msmall-data-threshold=8 \
506 // RUN: | FileCheck -check-prefix=CHECK025 %s
507 // CHECK025: "{{.*}}clang{{.*}}" "-cc1"
508 // CHECK025: "-mrelocation-model" "static"
509 // CHECK025: "-mllvm" "-hexagon-small-data-threshold=8"
510 // CHECK025-NEXT: "{{.*}}/bin/hexagon-as"
512 // CHECK025-NEXT: "{{.*}}/bin/hexagon-ld"
515 // -----------------------------------------------------------------------------
517 // -----------------------------------------------------------------------------
518 // RUN: %clang -### -target hexagon-unknown-linux \
519 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
522 // RUN: | FileCheck -check-prefix=CHECK026 %s
523 // CHECK026: "{{.*}}clang{{.*}}" "-cc1"
524 // CHECK026-NEXT: "{{.*}}/bin/hexagon-as"
525 // CHECK026-NEXT: "{{.*}}/bin/hexagon-ld"
528 // RUN: %clang -### -target hexagon-unknown-linux \
529 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
530 // RUN: -pie -shared \
532 // RUN: | FileCheck -check-prefix=CHECK027 %s
533 // CHECK027: "{{.*}}clang{{.*}}" "-cc1"
534 // CHECK027-NEXT: "{{.*}}/bin/hexagon-as"
535 // CHECK027-NEXT: "{{.*}}/bin/hexagon-ld"
536 // CHECK027-NOT: "-pie"
538 // -----------------------------------------------------------------------------
540 // -----------------------------------------------------------------------------
541 // RUN: %clang -### -target hexagon-unknown-linux \
542 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
544 // RUN: | FileCheck -check-prefix=CHECK028 %s
545 // CHECK028: "{{.*}}clang{{.*}}" "-cc1"
546 // CHECK028: "-mqdsp6-compat"
547 // CHECK028: "-Wreturn-type"
548 // CHECK028-NEXT: "{{.*}}/bin/hexagon-as"
549 // CHECK028-NEXT: "{{.*}}/bin/hexagon-ld"
551 // -----------------------------------------------------------------------------
552 // Test Assembler related args
553 // -----------------------------------------------------------------------------
554 // RUN: %clang -### -target hexagon-unknown-linux \
555 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
557 // RUN: -Wa,--noexecstack,--trap \
558 // RUN: -Xassembler --keep-locals \
560 // RUN: | FileCheck -check-prefix=CHECK029 %s
561 // CHECK029: "{{.*}}clang{{.*}}" "-cc1"
562 // CHECK029-NEXT: "{{.*}}/bin/hexagon-as"
563 // CHECK029: "--noexecstack" "--trap" "--keep-locals"
564 // CHECK029-NEXT: "{{.*}}/bin/hexagon-ld"