Clang Project

clang_source_code/test/Driver/mips-img-v2.cpp
1// REQUIRES: mips-registered-target
2
3// Check frontend and linker invocations on the IMG v2 MIPS toolchain.
4
5// -EB -mips32r6 -mhard-float -mabi=32
6// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
7// RUN:        --target=mips-img-linux-gnu \
8// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
9// RUN:        -stdlib=libstdc++ \
10// RUN:        -EB -mips32r6 -mhard-float -mabi=32 \
11// RUN:   | FileCheck --check-prefix=EB-HARD-O32 %s
12// EB-HARD-O32: "-internal-isystem"
13// EB-HARD-O32: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
14// EB-HARD-O32: "-internal-isystem"
15// EB-HARD-O32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib"
16// EB-HARD-O32: "-internal-isystem"
17// EB-HARD-O32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
18// EB-HARD-O32: "-internal-externc-isystem"
19// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r6-hard/lib/../usr/include"
20// EB-HARD-O32: "{{.*}}ld{{(.exe)?}}"
21// EB-HARD-O32: "--sysroot=[[TC]]/../../../../sysroot/mips-r6-hard"
22// EB-HARD-O32: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
23// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib{{/|\\\\}}crt1.o"
24// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib{{/|\\\\}}crti.o"
25// EB-HARD-O32: "[[TC]]/mips-r6-hard/lib{{/|\\\\}}crtbegin.o"
26// EB-HARD-O32: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips-r6-hard/lib"
27// EB-HARD-O32: "-L[[TC]]/mips-r6-hard/lib"
28// EB-HARD-O32: "-L[[TC]]/../../../../sysroot/mips-r6-hard/lib/../lib"
29// EB-HARD-O32: "-L[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib"
30// EB-HARD-O32: "[[TC]]/mips-r6-hard/lib{{/|\\\\}}crtend.o"
31// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib{{/|\\\\}}crtn.o"
32
33// -EB -mips64r6 -mhard-float -mabi=n32
34// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
35// RUN:        --target=mips-img-linux-gnu \
36// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
37// RUN:        -stdlib=libstdc++ \
38// RUN:        -EB -mips64r6 -mhard-float -mabi=n32 \
39// RUN:   | FileCheck --check-prefix=EB-HARD-N32 %s
40// EB-HARD-N32: "-internal-isystem"
41// EB-HARD-N32: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
42// EB-HARD-N32: "-internal-isystem"
43// EB-HARD-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib32"
44// EB-HARD-N32: "-internal-isystem"
45// EB-HARD-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
46// EB-HARD-N32: "-internal-externc-isystem"
47// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r6-hard/lib32/../usr/include"
48// EB-HARD-N32: "{{.*}}ld{{(.exe)?}}"
49// EB-HARD-N32: "--sysroot=[[TC]]/../../../../sysroot/mips-r6-hard"
50// EB-HARD-N32: "-dynamic-linker" "/lib32/ld-linux-mipsn8.so.1"
51// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib32{{/|\\\\}}crt1.o"
52// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib32{{/|\\\\}}crti.o"
53// EB-HARD-N32: "[[TC]]/mips-r6-hard/lib32{{/|\\\\}}crtbegin.o"
54// EB-HARD-N32: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips-r6-hard/lib32"
55// EB-HARD-N32: "-L[[TC]]/mips-r6-hard/lib32"
56// EB-HARD-N32: "-L[[TC]]/../../../../sysroot/mips-r6-hard/lib/../lib32"
57// EB-HARD-N32: "-L[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib32"
58// EB-HARD-N32: "[[TC]]/mips-r6-hard/lib32{{/|\\\\}}crtend.o"
59// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib32{{/|\\\\}}crtn.o"
60
61// -EB -mips64r6 -mhard-float -mabi=64
62// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
63// RUN:        --target=mips64-img-linux-gnu \
64// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
65// RUN:        -stdlib=libstdc++ \
66// RUN:        -EB -mips64r6 -mhard-float -mabi=64 \
67// RUN:   | FileCheck --check-prefix=EB-HARD-N64 %s
68// EB-HARD-N64: "-internal-isystem"
69// EB-HARD-N64: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
70// EB-HARD-N64: "-internal-isystem"
71// EB-HARD-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib64"
72// EB-HARD-N64: "-internal-isystem"
73// EB-HARD-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
74// EB-HARD-N64: "-internal-externc-isystem"
75// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r6-hard/lib64/../usr/include"
76// EB-HARD-N64: "{{.*}}ld{{(.exe)?}}"
77// EB-HARD-N64: "--sysroot=[[TC]]/../../../../sysroot/mips-r6-hard"
78// EB-HARD-N64: "-dynamic-linker" "/lib64/ld-linux-mipsn8.so.1"
79// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib64{{/|\\\\}}crt1.o"
80// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib64{{/|\\\\}}crti.o"
81// EB-HARD-N64: "[[TC]]/mips-r6-hard/lib64{{/|\\\\}}crtbegin.o"
82// EB-HARD-N64: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips-r6-hard/lib64"
83// EB-HARD-N64: "-L[[TC]]/mips-r6-hard/lib64"
84// EB-HARD-N64: "-L[[TC]]/../../../../sysroot/mips-r6-hard/lib/../lib64"
85// EB-HARD-N64: "-L[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib64"
86// EB-HARD-N64: "[[TC]]/mips-r6-hard/lib64{{/|\\\\}}crtend.o"
87// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r6-hard/usr/lib/../lib64{{/|\\\\}}crtn.o"
88
89// -EL -mips32r6 -mhard-float -mabi=32
90// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
91// RUN:        --target=mips-img-linux-gnu \
92// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
93// RUN:        -stdlib=libstdc++ \
94// RUN:        -EL -mips32r6 -mhard-float -mabi=32 \
95// RUN:   | FileCheck --check-prefix=EL-HARD-O32 %s
96// EL-HARD-O32: "-internal-isystem"
97// EL-HARD-O32: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
98// EL-HARD-O32: "-internal-isystem"
99// EL-HARD-O32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib"
100// EL-HARD-O32: "-internal-isystem"
101// EL-HARD-O32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
102// EL-HARD-O32: "-internal-externc-isystem"
103// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/lib/../usr/include"
104// EL-HARD-O32: "{{.*}}ld{{(.exe)?}}"
105// EL-HARD-O32: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r6-hard"
106// EL-HARD-O32: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
107// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crt1.o"
108// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crti.o"
109// EL-HARD-O32: "[[TC]]/mipsel-r6-hard/lib{{/|\\\\}}crtbegin.o"
110// EL-HARD-O32: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mipsel-r6-hard/lib"
111// EL-HARD-O32: "-L[[TC]]/mipsel-r6-hard/lib"
112// EL-HARD-O32: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/lib/../lib"
113// EL-HARD-O32: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib"
114// EL-HARD-O32: "[[TC]]/mipsel-r6-hard/lib{{/|\\\\}}crtend.o"
115// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crtn.o"
116
117// -EL -mips64r6 -mhard-float -mabi=n32
118// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
119// RUN:        --target=mips-img-linux-gnu \
120// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
121// RUN:        -stdlib=libstdc++ \
122// RUN:        -EL -mips64r6 -mhard-float -mabi=n32 \
123// RUN:   | FileCheck --check-prefix=EL-HARD-N32 %s
124// EL-HARD-N32: "-internal-isystem"
125// EL-HARD-N32: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
126// EL-HARD-N32: "-internal-isystem"
127// EL-HARD-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib32"
128// EL-HARD-N32: "-internal-isystem"
129// EL-HARD-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
130// EL-HARD-N32: "-internal-externc-isystem"
131// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/lib32/../usr/include"
132// EL-HARD-N32: "{{.*}}ld{{(.exe)?}}"
133// EL-HARD-N32: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r6-hard"
134// EL-HARD-N32: "-dynamic-linker" "/lib32/ld-linux-mipsn8.so.1"
135// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib32{{/|\\\\}}crt1.o"
136// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib32{{/|\\\\}}crti.o"
137// EL-HARD-N32: "[[TC]]/mipsel-r6-hard/lib32{{/|\\\\}}crtbegin.o"
138// EL-HARD-N32: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mipsel-r6-hard/lib32"
139// EL-HARD-N32: "-L[[TC]]/mipsel-r6-hard/lib32"
140// EL-HARD-N32: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/lib/../lib32"
141// EL-HARD-N32: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib32"
142// EL-HARD-N32: "[[TC]]/mipsel-r6-hard/lib32{{/|\\\\}}crtend.o"
143// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib32{{/|\\\\}}crtn.o"
144
145// -EL -mips64r6 -mhard-float -mabi=64
146// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
147// RUN:        --target=mips64-img-linux-gnu \
148// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
149// RUN:        -stdlib=libstdc++ \
150// RUN:        -EL -mips64r6 -mhard-float -mabi=64 \
151// RUN:   | FileCheck --check-prefix=EL-HARD-N64 %s
152// EL-HARD-N64: "-internal-isystem"
153// EL-HARD-N64: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
154// EL-HARD-N64: "-internal-isystem"
155// EL-HARD-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib64"
156// EL-HARD-N64: "-internal-isystem"
157// EL-HARD-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
158// EL-HARD-N64: "-internal-externc-isystem"
159// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r6-hard/lib64/../usr/include"
160// EL-HARD-N64: "{{.*}}ld{{(.exe)?}}"
161// EL-HARD-N64: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r6-hard"
162// EL-HARD-N64: "-dynamic-linker" "/lib64/ld-linux-mipsn8.so.1"
163// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib64{{/|\\\\}}crt1.o"
164// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib64{{/|\\\\}}crti.o"
165// EL-HARD-N64: "[[TC]]/mipsel-r6-hard/lib64{{/|\\\\}}crtbegin.o"
166// EL-HARD-N64: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mipsel-r6-hard/lib64"
167// EL-HARD-N64: "-L[[TC]]/mipsel-r6-hard/lib64"
168// EL-HARD-N64: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/lib/../lib64"
169// EL-HARD-N64: "-L[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib64"
170// EL-HARD-N64: "[[TC]]/mipsel-r6-hard/lib64{{/|\\\\}}crtend.o"
171// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r6-hard/usr/lib/../lib64{{/|\\\\}}crtn.o"
172
173// -EB -mips32r6 -msoft-float
174// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
175// RUN:        --target=mips-img-linux-gnu \
176// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
177// RUN:        -stdlib=libstdc++ \
178// RUN:        -EB -mips32r6 -msoft-float \
179// RUN:   | FileCheck --check-prefix=EB-SOFT %s
180// EB-SOFT: "-internal-isystem"
181// EB-SOFT: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
182// EB-SOFT: "-internal-isystem"
183// EB-SOFT: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-soft/lib"
184// EB-SOFT: "-internal-isystem"
185// EB-SOFT: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
186// EB-SOFT: "-internal-externc-isystem"
187// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r6-soft/lib/../usr/include"
188// EB-SOFT: "{{.*}}ld{{(.exe)?}}"
189// EB-SOFT: "--sysroot=[[TC]]/../../../../sysroot/mips-r6-soft"
190// EB-SOFT: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
191// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r6-soft/usr/lib/../lib{{/|\\\\}}crt1.o"
192// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r6-soft/usr/lib/../lib{{/|\\\\}}crti.o"
193// EB-SOFT: "[[TC]]/mips-r6-soft/lib{{/|\\\\}}crtbegin.o"
194// EB-SOFT: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips-r6-soft/lib"
195// EB-SOFT: "-L[[TC]]/mips-r6-soft/lib"
196// EB-SOFT: "-L[[TC]]/../../../../sysroot/mips-r6-soft/lib/../lib"
197// EB-SOFT: "-L[[TC]]/../../../../sysroot/mips-r6-soft/usr/lib/../lib"
198// EB-SOFT: "[[TC]]/mips-r6-soft/lib{{/|\\\\}}crtend.o"
199// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r6-soft/usr/lib/../lib{{/|\\\\}}crtn.o"
200
201// -EL -mips32r6 -msoft-float
202// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
203// RUN:        --target=mips-img-linux-gnu \
204// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
205// RUN:        -stdlib=libstdc++ \
206// RUN:        -EL -mips32r6 -msoft-float \
207// RUN:   | FileCheck --check-prefix=EL-SOFT %s
208// EL-SOFT: "-internal-isystem"
209// EL-SOFT: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
210// EL-SOFT: "-internal-isystem"
211// EL-SOFT: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-soft/lib"
212// EL-SOFT: "-internal-isystem"
213// EL-SOFT: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
214// EL-SOFT: "-internal-externc-isystem"
215// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r6-soft/lib/../usr/include"
216// EL-SOFT: "{{.*}}ld{{(.exe)?}}"
217// EL-SOFT: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r6-soft"
218// EL-SOFT: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
219// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crt1.o"
220// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crti.o"
221// EL-SOFT: "[[TC]]/mipsel-r6-soft/lib{{/|\\\\}}crtbegin.o"
222// EL-SOFT: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mipsel-r6-soft/lib"
223// EL-SOFT: "-L[[TC]]/mipsel-r6-soft/lib"
224// EL-SOFT: "-L[[TC]]/../../../../sysroot/mipsel-r6-soft/lib/../lib"
225// EL-SOFT: "-L[[TC]]/../../../../sysroot/mipsel-r6-soft/usr/lib/../lib"
226// EL-SOFT: "[[TC]]/mipsel-r6-soft/lib{{/|\\\\}}crtend.o"
227// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crtn.o"
228
229// -EB -mips32r6 -mhard-float -mmicromips
230// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
231// RUN:        --target=mips-img-linux-gnu \
232// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
233// RUN:        -stdlib=libstdc++ \
234// RUN:        -EB -mips32r6 -mhard-float -mmicromips \
235// RUN:   | FileCheck --check-prefix=EB-HARD-MICRO %s
236// EB-HARD-MICRO: "-internal-isystem"
237// EB-HARD-MICRO: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
238// EB-HARD-MICRO: "-internal-isystem"
239// EB-HARD-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-hard/lib"
240// EB-HARD-MICRO: "-internal-isystem"
241// EB-HARD-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
242// EB-HARD-MICRO: "-internal-externc-isystem"
243// EB-HARD-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-hard/lib/../usr/include"
244// EB-HARD-MICRO: "{{.*}}ld{{(.exe)?}}"
245// EB-HARD-MICRO: "--sysroot=[[TC]]/../../../../sysroot/micromips-r6-hard"
246// EB-HARD-MICRO: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
247// EB-HARD-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-hard/usr/lib/../lib{{/|\\\\}}crt1.o"
248// EB-HARD-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-hard/usr/lib/../lib{{/|\\\\}}crti.o"
249// EB-HARD-MICRO: "[[TC]]/micromips-r6-hard/lib{{/|\\\\}}crtbegin.o"
250// EB-HARD-MICRO: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/micromips-r6-hard/lib"
251// EB-HARD-MICRO: "-L[[TC]]/micromips-r6-hard/lib"
252// EB-HARD-MICRO: "-L[[TC]]/../../../../sysroot/micromips-r6-hard/lib/../lib"
253// EB-HARD-MICRO: "-L[[TC]]/../../../../sysroot/micromips-r6-hard/usr/lib/../lib"
254// EB-HARD-MICRO: "[[TC]]/micromips-r6-hard/lib{{/|\\\\}}crtend.o"
255// EB-HARD-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-hard/usr/lib/../lib{{/|\\\\}}crtn.o"
256
257// -EB -mips32r6 -msoft-float -mmicromips
258// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
259// RUN:        --target=mips-img-linux-gnu \
260// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
261// RUN:        -stdlib=libstdc++ \
262// RUN:        -EB -mips32r6 -msoft-float -mmicromips \
263// RUN:   | FileCheck --check-prefix=EB-SOFT-MICRO %s
264// EB-SOFT-MICRO: "-internal-isystem"
265// EB-SOFT-MICRO: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
266// EB-SOFT-MICRO: "-internal-isystem"
267// EB-SOFT-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-soft/lib"
268// EB-SOFT-MICRO: "-internal-isystem"
269// EB-SOFT-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
270// EB-SOFT-MICRO: "-internal-externc-isystem"
271// EB-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-soft/lib/../usr/include"
272// EB-SOFT-MICRO: "{{.*}}ld{{(.exe)?}}"
273// EB-SOFT-MICRO: "--sysroot=[[TC]]/../../../../sysroot/micromips-r6-soft"
274// EB-SOFT-MICRO: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
275// EB-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-soft/usr/lib/../lib{{/|\\\\}}crt1.o"
276// EB-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-soft/usr/lib/../lib{{/|\\\\}}crti.o"
277// EB-SOFT-MICRO: "[[TC]]/micromips-r6-soft/lib{{/|\\\\}}crtbegin.o"
278// EB-SOFT-MICRO: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/micromips-r6-soft/lib"
279// EB-SOFT-MICRO: "-L[[TC]]/micromips-r6-soft/lib"
280// EB-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromips-r6-soft/lib/../lib"
281// EB-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromips-r6-soft/usr/lib/../lib"
282// EB-SOFT-MICRO: "[[TC]]/micromips-r6-soft/lib{{/|\\\\}}crtend.o"
283// EB-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromips-r6-soft/usr/lib/../lib{{/|\\\\}}crtn.o"
284
285// -EL -mips32r6 -mhard-float -mmicromips
286// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
287// RUN:        --target=mips-img-linux-gnu \
288// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
289// RUN:        -stdlib=libstdc++ \
290// RUN:        -EL -mips32r6 -mhard-float -mmicromips \
291// RUN:   | FileCheck --check-prefix=EL-HARD-MICRO %s
292// EL-HARD-MICRO: "-internal-isystem"
293// EL-HARD-MICRO: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
294// EL-HARD-MICRO: "-internal-isystem"
295// EL-HARD-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-hard/lib"
296// EL-HARD-MICRO: "-internal-isystem"
297// EL-HARD-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
298// EL-HARD-MICRO: "-internal-externc-isystem"
299// EL-HARD-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-hard/lib/../usr/include"
300// EL-HARD-MICRO: "{{.*}}ld{{(.exe)?}}"
301// EL-HARD-MICRO: "--sysroot=[[TC]]/../../../../sysroot/micromipsel-r6-hard"
302// EL-HARD-MICRO: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
303// EL-HARD-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crt1.o"
304// EL-HARD-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crti.o"
305// EL-HARD-MICRO: "[[TC]]/micromipsel-r6-hard/lib{{/|\\\\}}crtbegin.o"
306// EL-HARD-MICRO: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/micromipsel-r6-hard/lib"
307// EL-HARD-MICRO: "-L[[TC]]/micromipsel-r6-hard/lib"
308// EL-HARD-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r6-hard/lib/../lib"
309// EL-HARD-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r6-hard/usr/lib/../lib"
310// EL-HARD-MICRO: "[[TC]]/micromipsel-r6-hard/lib{{/|\\\\}}crtend.o"
311// EL-HARD-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-hard/usr/lib/../lib{{/|\\\\}}crtn.o"
312
313// -EL -mips32r6 -msoft-float -mmicromips
314// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
315// RUN:        --target=mips-img-linux-gnu \
316// RUN:        --gcc-toolchain=%S/Inputs/mips_img_v2_tree \
317// RUN:        -stdlib=libstdc++ \
318// RUN:        -EL -mips32r6 -msoft-float -mmicromips \
319// RUN:   | FileCheck --check-prefix=EL-SOFT-MICRO %s
320// EL-SOFT-MICRO: "-internal-isystem"
321// EL-SOFT-MICRO: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.2]]/../../../../mips-img-linux-gnu/include/c++/4.9.2"
322// EL-SOFT-MICRO: "-internal-isystem"
323// EL-SOFT-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-soft/lib"
324// EL-SOFT-MICRO: "-internal-isystem"
325// EL-SOFT-MICRO: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.2/backward"
326// EL-SOFT-MICRO: "-internal-externc-isystem"
327// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-soft/lib/../usr/include"
328// EL-SOFT-MICRO: "{{.*}}ld{{(.exe)?}}"
329// EL-SOFT-MICRO: "--sysroot=[[TC]]/../../../../sysroot/micromipsel-r6-soft"
330// EL-SOFT-MICRO: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
331// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crt1.o"
332// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crti.o"
333// EL-SOFT-MICRO: "[[TC]]/micromipsel-r6-soft/lib{{/|\\\\}}crtbegin.o"
334// EL-SOFT-MICRO: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/micromipsel-r6-soft/lib"
335// EL-SOFT-MICRO: "-L[[TC]]/micromipsel-r6-soft/lib"
336// EL-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r6-soft/lib/../lib"
337// EL-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r6-soft/usr/lib/../lib"
338// EL-SOFT-MICRO: "[[TC]]/micromipsel-r6-soft/lib{{/|\\\\}}crtend.o"
339// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r6-soft/usr/lib/../lib{{/|\\\\}}crtn.o"
340