Clang Project

clang_source_code/test/Driver/mips-mti.cpp
1// Check frontend and linker invocations on the MTI MIPS toolchain.
2
3// -EB -mhard-float -mabi=32
4// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
5// RUN:        --target=mips-mti-linux-gnu \
6// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
7// RUN:        -stdlib=libstdc++ \
8// RUN:        -EB -mhard-float -mabi=32 \
9// RUN:   | FileCheck --check-prefix=EB-HARD-O32 %s
10// EB-HARD-O32: "-internal-isystem"
11// EB-HARD-O32: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
12// EB-HARD-O32: "-internal-isystem"
13// EB-HARD-O32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard/lib"
14// EB-HARD-O32: "-internal-isystem"
15// EB-HARD-O32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
16// EB-HARD-O32: "-internal-externc-isystem"
17// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r2-hard/lib/../usr/include"
18// EB-HARD-O32: "{{.*}}ld{{(.exe)?}}"
19// EB-HARD-O32: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard"
20// EB-HARD-O32: "-dynamic-linker" "/lib/ld.so.1"
21// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib{{/|\\\\}}crt1.o"
22// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib{{/|\\\\}}crti.o"
23// EB-HARD-O32: "[[TC]]/mips-r2-hard/lib{{/|\\\\}}crtbegin.o"
24// EB-HARD-O32: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard/lib"
25// EB-HARD-O32: "-L[[TC]]/mips-r2-hard/lib"
26// EB-HARD-O32: "-L[[TC]]/../../../../sysroot/mips-r2-hard/lib/../lib"
27// EB-HARD-O32: "-L[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib"
28// EB-HARD-O32: "[[TC]]/mips-r2-hard/lib{{/|\\\\}}crtend.o"
29// EB-HARD-O32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib{{/|\\\\}}crtn.o"
30
31// -EB -mhard-float -mabi=n32
32// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
33// RUN:        --target=mips-mti-linux-gnu \
34// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
35// RUN:        -stdlib=libstdc++ \
36// RUN:        -EB -mhard-float -mabi=n32 \
37// RUN:   | FileCheck --check-prefix=EB-HARD-N32 %s
38// EB-HARD-N32: "-internal-isystem"
39// EB-HARD-N32: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
40// EB-HARD-N32: "-internal-isystem"
41// EB-HARD-N32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard/lib32"
42// EB-HARD-N32: "-internal-isystem"
43// EB-HARD-N32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
44// EB-HARD-N32: "-internal-externc-isystem"
45// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r2-hard/lib32/../usr/include"
46// EB-HARD-N32: "{{.*}}ld{{(.exe)?}}"
47// EB-HARD-N32: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard"
48// EB-HARD-N32: "-dynamic-linker" "/lib32/ld.so.1"
49// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib32{{/|\\\\}}crt1.o"
50// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib32{{/|\\\\}}crti.o"
51// EB-HARD-N32: "[[TC]]/mips-r2-hard/lib32{{/|\\\\}}crtbegin.o"
52// EB-HARD-N32: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard/lib32"
53// EB-HARD-N32: "-L[[TC]]/mips-r2-hard/lib32"
54// EB-HARD-N32: "-L[[TC]]/../../../../sysroot/mips-r2-hard/lib/../lib32"
55// EB-HARD-N32: "-L[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib32"
56// EB-HARD-N32: "[[TC]]/mips-r2-hard/lib32{{/|\\\\}}crtend.o"
57// EB-HARD-N32: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib32{{/|\\\\}}crtn.o"
58
59// -EB -mhard-float -mabi=64
60// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
61// RUN:        --target=mips64-mti-linux-gnu \
62// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
63// RUN:        -stdlib=libstdc++ \
64// RUN:        -EB -mhard-float -mabi=64 \
65// RUN:   | FileCheck --check-prefix=EB-HARD-N64 %s
66// EB-HARD-N64: "-internal-isystem"
67// EB-HARD-N64: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
68// EB-HARD-N64: "-internal-isystem"
69// EB-HARD-N64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard/lib64"
70// EB-HARD-N64: "-internal-isystem"
71// EB-HARD-N64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
72// EB-HARD-N64: "-internal-externc-isystem"
73// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r2-hard/lib64/../usr/include"
74// EB-HARD-N64: "{{.*}}ld{{(.exe)?}}"
75// EB-HARD-N64: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard"
76// EB-HARD-N64: "-dynamic-linker" "/lib64/ld.so.1"
77// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib64{{/|\\\\}}crt1.o"
78// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib64{{/|\\\\}}crti.o"
79// EB-HARD-N64: "[[TC]]/mips-r2-hard/lib64{{/|\\\\}}crtbegin.o"
80// EB-HARD-N64: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard/lib64"
81// EB-HARD-N64: "-L[[TC]]/mips-r2-hard/lib64"
82// EB-HARD-N64: "-L[[TC]]/../../../../sysroot/mips-r2-hard/lib/../lib64"
83// EB-HARD-N64: "-L[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib64"
84// EB-HARD-N64: "[[TC]]/mips-r2-hard/lib64{{/|\\\\}}crtend.o"
85// EB-HARD-N64: "[[TC]]/../../../../sysroot/mips-r2-hard/usr/lib/../lib64{{/|\\\\}}crtn.o"
86
87// -EL -mhard-float -mabi=32
88// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
89// RUN:        --target=mips-mti-linux-gnu \
90// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
91// RUN:        -stdlib=libstdc++ \
92// RUN:        -EL -mhard-float -mabi=32 \
93// RUN:   | FileCheck --check-prefix=EL-HARD-O32 %s
94// EL-HARD-O32: "-internal-isystem"
95// EL-HARD-O32: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
96// EL-HARD-O32: "-internal-isystem"
97// EL-HARD-O32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard/lib"
98// EL-HARD-O32: "-internal-isystem"
99// EL-HARD-O32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
100// EL-HARD-O32: "-internal-externc-isystem"
101// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/lib/../usr/include"
102// EL-HARD-O32: "{{.*}}ld{{(.exe)?}}"
103// EL-HARD-O32: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard"
104// EL-HARD-O32: "-dynamic-linker" "/lib/ld.so.1"
105// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib{{/|\\\\}}crt1.o"
106// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib{{/|\\\\}}crti.o"
107// EL-HARD-O32: "[[TC]]/mipsel-r2-hard/lib{{/|\\\\}}crtbegin.o"
108// EL-HARD-O32: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard/lib"
109// EL-HARD-O32: "-L[[TC]]/mipsel-r2-hard/lib"
110// EL-HARD-O32: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/lib/../lib"
111// EL-HARD-O32: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib"
112// EL-HARD-O32: "[[TC]]/mipsel-r2-hard/lib{{/|\\\\}}crtend.o"
113// EL-HARD-O32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib{{/|\\\\}}crtn.o"
114
115// -EL -mhard-float -mabi=n32
116// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
117// RUN:        --target=mips-mti-linux-gnu \
118// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
119// RUN:        -stdlib=libstdc++ \
120// RUN:        -EL -mhard-float -mabi=n32 \
121// RUN:   | FileCheck --check-prefix=EL-HARD-N32 %s
122// EL-HARD-N32: "-internal-isystem"
123// EL-HARD-N32: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
124// EL-HARD-N32: "-internal-isystem"
125// EL-HARD-N32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard/lib32"
126// EL-HARD-N32: "-internal-isystem"
127// EL-HARD-N32: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
128// EL-HARD-N32: "-internal-externc-isystem"
129// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/lib32/../usr/include"
130// EL-HARD-N32: "{{.*}}ld{{(.exe)?}}"
131// EL-HARD-N32: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard"
132// EL-HARD-N32: "-dynamic-linker" "/lib32/ld.so.1"
133// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib32{{/|\\\\}}crt1.o"
134// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib32{{/|\\\\}}crti.o"
135// EL-HARD-N32: "[[TC]]/mipsel-r2-hard/lib32{{/|\\\\}}crtbegin.o"
136// EL-HARD-N32: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard/lib32"
137// EL-HARD-N32: "-L[[TC]]/mipsel-r2-hard/lib32"
138// EL-HARD-N32: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/lib/../lib32"
139// EL-HARD-N32: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib32"
140// EL-HARD-N32: "[[TC]]/mipsel-r2-hard/lib32{{/|\\\\}}crtend.o"
141// EL-HARD-N32: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib32{{/|\\\\}}crtn.o"
142
143// -EL -mhard-float -mabi=64
144// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
145// RUN:        --target=mips64-mti-linux-gnu \
146// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
147// RUN:        -stdlib=libstdc++ \
148// RUN:        -EL -mhard-float -mabi=64 \
149// RUN:   | FileCheck --check-prefix=EL-HARD-N64 %s
150// EL-HARD-N64: "-internal-isystem"
151// EL-HARD-N64: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
152// EL-HARD-N64: "-internal-isystem"
153// EL-HARD-N64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard/lib64"
154// EL-HARD-N64: "-internal-isystem"
155// EL-HARD-N64: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
156// EL-HARD-N64: "-internal-externc-isystem"
157// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r2-hard/lib64/../usr/include"
158// EL-HARD-N64: "{{.*}}ld{{(.exe)?}}"
159// EL-HARD-N64: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard"
160// EL-HARD-N64: "-dynamic-linker" "/lib64/ld.so.1"
161// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib64{{/|\\\\}}crt1.o"
162// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib64{{/|\\\\}}crti.o"
163// EL-HARD-N64: "[[TC]]/mipsel-r2-hard/lib64{{/|\\\\}}crtbegin.o"
164// EL-HARD-N64: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard/lib64"
165// EL-HARD-N64: "-L[[TC]]/mipsel-r2-hard/lib64"
166// EL-HARD-N64: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/lib/../lib64"
167// EL-HARD-N64: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib64"
168// EL-HARD-N64: "[[TC]]/mipsel-r2-hard/lib64{{/|\\\\}}crtend.o"
169// EL-HARD-N64: "[[TC]]/../../../../sysroot/mipsel-r2-hard/usr/lib/../lib64{{/|\\\\}}crtn.o"
170
171// -EB -msoft-float
172// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
173// RUN:        --target=mips-mti-linux-gnu \
174// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
175// RUN:        -stdlib=libstdc++ \
176// RUN:        -EB -msoft-float \
177// RUN:   | FileCheck --check-prefix=EB-SOFT %s
178// EB-SOFT: "-internal-isystem"
179// EB-SOFT: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
180// EB-SOFT: "-internal-isystem"
181// EB-SOFT: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-soft/lib"
182// EB-SOFT: "-internal-isystem"
183// EB-SOFT: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
184// EB-SOFT: "-internal-externc-isystem"
185// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r2-soft/lib/../usr/include"
186// EB-SOFT: "{{.*}}ld{{(.exe)?}}"
187// EB-SOFT: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-soft"
188// EB-SOFT: "-dynamic-linker" "/lib/ld.so.1"
189// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r2-soft/usr/lib/../lib{{/|\\\\}}crt1.o"
190// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r2-soft/usr/lib/../lib{{/|\\\\}}crti.o"
191// EB-SOFT: "[[TC]]/mips-r2-soft/lib{{/|\\\\}}crtbegin.o"
192// EB-SOFT: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-soft/lib"
193// EB-SOFT: "-L[[TC]]/mips-r2-soft/lib"
194// EB-SOFT: "-L[[TC]]/../../../../sysroot/mips-r2-soft/lib/../lib"
195// EB-SOFT: "-L[[TC]]/../../../../sysroot/mips-r2-soft/usr/lib/../lib"
196// EB-SOFT: "[[TC]]/mips-r2-soft/lib{{/|\\\\}}crtend.o"
197// EB-SOFT: "[[TC]]/../../../../sysroot/mips-r2-soft/usr/lib/../lib{{/|\\\\}}crtn.o"
198
199// -EL -msoft-float
200// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
201// RUN:        --target=mips-mti-linux-gnu \
202// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
203// RUN:        -stdlib=libstdc++ \
204// RUN:        -EL -msoft-float \
205// RUN:   | FileCheck --check-prefix=EL-SOFT %s
206// EL-SOFT: "-internal-isystem"
207// EL-SOFT: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
208// EL-SOFT: "-internal-isystem"
209// EL-SOFT: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-soft/lib"
210// EL-SOFT: "-internal-isystem"
211// EL-SOFT: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
212// EL-SOFT: "-internal-externc-isystem"
213// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r2-soft/lib/../usr/include"
214// EL-SOFT: "{{.*}}ld{{(.exe)?}}"
215// EL-SOFT: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-soft"
216// EL-SOFT: "-dynamic-linker" "/lib/ld.so.1"
217// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crt1.o"
218// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crti.o"
219// EL-SOFT: "[[TC]]/mipsel-r2-soft/lib{{/|\\\\}}crtbegin.o"
220// EL-SOFT: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-soft/lib"
221// EL-SOFT: "-L[[TC]]/mipsel-r2-soft/lib"
222// EL-SOFT: "-L[[TC]]/../../../../sysroot/mipsel-r2-soft/lib/../lib"
223// EL-SOFT: "-L[[TC]]/../../../../sysroot/mipsel-r2-soft/usr/lib/../lib"
224// EL-SOFT: "[[TC]]/mipsel-r2-soft/lib{{/|\\\\}}crtend.o"
225// EL-SOFT: "[[TC]]/../../../../sysroot/mipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crtn.o"
226
227// -EB -mhard-float -muclibc
228// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
229// RUN:        --target=mips-mti-linux-gnu \
230// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
231// RUN:        -stdlib=libstdc++ \
232// RUN:        -EB -mhard-float -muclibc \
233// RUN:   | FileCheck --check-prefix=EB-HARD-UCLIBC %s
234// EB-HARD-UCLIBC: "-internal-isystem"
235// EB-HARD-UCLIBC: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
236// EB-HARD-UCLIBC: "-internal-isystem"
237// EB-HARD-UCLIBC: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard-uclibc/lib"
238// EB-HARD-UCLIBC: "-internal-isystem"
239// EB-HARD-UCLIBC: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
240// EB-HARD-UCLIBC: "-internal-externc-isystem"
241// EB-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/lib/../usr/include"
242// EB-HARD-UCLIBC: "{{.*}}ld{{(.exe)?}}"
243// EB-HARD-UCLIBC: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard-uclibc"
244// EB-HARD-UCLIBC: "-dynamic-linker" "/lib/ld-uClibc.so.0"
245// EB-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crt1.o"
246// EB-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crti.o"
247// EB-HARD-UCLIBC: "[[TC]]/mips-r2-hard-uclibc/lib{{/|\\\\}}crtbegin.o"
248// EB-HARD-UCLIBC: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard-uclibc/lib"
249// EB-HARD-UCLIBC: "-L[[TC]]/mips-r2-hard-uclibc/lib"
250// EB-HARD-UCLIBC: "-L[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/lib/../lib"
251// EB-HARD-UCLIBC: "-L[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/usr/lib/../lib"
252// EB-HARD-UCLIBC: "[[TC]]/mips-r2-hard-uclibc/lib{{/|\\\\}}crtend.o"
253// EB-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mips-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crtn.o"
254
255// -EL -mhard-float -muclibc
256// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
257// RUN:        --target=mips-mti-linux-gnu \
258// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
259// RUN:        -stdlib=libstdc++ \
260// RUN:        -EL -mhard-float -muclibc \
261// RUN:   | FileCheck --check-prefix=EL-HARD-UCLIBC %s
262// EL-HARD-UCLIBC: "-internal-isystem"
263// EL-HARD-UCLIBC: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
264// EL-HARD-UCLIBC: "-internal-isystem"
265// EL-HARD-UCLIBC: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard-uclibc/lib"
266// EL-HARD-UCLIBC: "-internal-isystem"
267// EL-HARD-UCLIBC: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
268// EL-HARD-UCLIBC: "-internal-externc-isystem"
269// EL-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/lib/../usr/include"
270// EL-HARD-UCLIBC: "{{.*}}ld{{(.exe)?}}"
271// EL-HARD-UCLIBC: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc"
272// EL-HARD-UCLIBC: "-dynamic-linker" "/lib/ld-uClibc.so.0"
273// EL-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crt1.o"
274// EL-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crti.o"
275// EL-HARD-UCLIBC: "[[TC]]/mipsel-r2-hard-uclibc/lib{{/|\\\\}}crtbegin.o"
276// EL-HARD-UCLIBC: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard-uclibc/lib"
277// EL-HARD-UCLIBC: "-L[[TC]]/mipsel-r2-hard-uclibc/lib"
278// EL-HARD-UCLIBC: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/lib/../lib"
279// EL-HARD-UCLIBC: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/usr/lib/../lib"
280// EL-HARD-UCLIBC: "[[TC]]/mipsel-r2-hard-uclibc/lib{{/|\\\\}}crtend.o"
281// EL-HARD-UCLIBC: "[[TC]]/../../../../sysroot/mipsel-r2-hard-uclibc/usr/lib/../lib{{/|\\\\}}crtn.o"
282
283// -EB -mhard-float -mnan=2008
284// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
285// RUN:        --target=mips-mti-linux-gnu \
286// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
287// RUN:        -stdlib=libstdc++ \
288// RUN:        -EB -mhard-float -mnan=2008 \
289// RUN:   | FileCheck --check-prefix=EB-HARD-NAN2008 %s
290// EB-HARD-NAN2008: "-internal-isystem"
291// EB-HARD-NAN2008: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
292// EB-HARD-NAN2008: "-internal-isystem"
293// EB-HARD-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard-nan2008/lib"
294// EB-HARD-NAN2008: "-internal-isystem"
295// EB-HARD-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
296// EB-HARD-NAN2008: "-internal-externc-isystem"
297// EB-HARD-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/lib/../usr/include"
298// EB-HARD-NAN2008: "{{.*}}ld{{(.exe)?}}"
299// EB-HARD-NAN2008: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard-nan2008"
300// EB-HARD-NAN2008: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
301// EB-HARD-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crt1.o"
302// EB-HARD-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crti.o"
303// EB-HARD-NAN2008: "[[TC]]/mips-r2-hard-nan2008/lib{{/|\\\\}}crtbegin.o"
304// EB-HARD-NAN2008: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard-nan2008/lib"
305// EB-HARD-NAN2008: "-L[[TC]]/mips-r2-hard-nan2008/lib"
306// EB-HARD-NAN2008: "-L[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/lib/../lib"
307// EB-HARD-NAN2008: "-L[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/usr/lib/../lib"
308// EB-HARD-NAN2008: "[[TC]]/mips-r2-hard-nan2008/lib{{/|\\\\}}crtend.o"
309// EB-HARD-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crtn.o"
310
311// -EL -mhard-float -mnan=2008
312// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
313// RUN:        --target=mips-mti-linux-gnu \
314// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
315// RUN:        -stdlib=libstdc++ \
316// RUN:        -EL -mhard-float -mnan=2008 \
317// RUN:   | FileCheck --check-prefix=EL-HARD-NAN2008 %s
318// EL-HARD-NAN2008: "-internal-isystem"
319// EL-HARD-NAN2008: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
320// EL-HARD-NAN2008: "-internal-isystem"
321// EL-HARD-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard-nan2008/lib"
322// EL-HARD-NAN2008: "-internal-isystem"
323// EL-HARD-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
324// EL-HARD-NAN2008: "-internal-externc-isystem"
325// EL-HARD-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/lib/../usr/include"
326// EL-HARD-NAN2008: "{{.*}}ld{{(.exe)?}}"
327// EL-HARD-NAN2008: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008"
328// EL-HARD-NAN2008: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
329// EL-HARD-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crt1.o"
330// EL-HARD-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crti.o"
331// EL-HARD-NAN2008: "[[TC]]/mipsel-r2-hard-nan2008/lib{{/|\\\\}}crtbegin.o"
332// EL-HARD-NAN2008: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008/lib"
333// EL-HARD-NAN2008: "-L[[TC]]/mipsel-r2-hard-nan2008/lib"
334// EL-HARD-NAN2008: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/lib/../lib"
335// EL-HARD-NAN2008: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/usr/lib/../lib"
336// EL-HARD-NAN2008: "[[TC]]/mipsel-r2-hard-nan2008/lib{{/|\\\\}}crtend.o"
337// EL-HARD-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crtn.o"
338
339// -EB -mhard-float -muclibc -mnan=2008
340// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
341// RUN:        --target=mips-mti-linux-gnu \
342// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
343// RUN:        -stdlib=libstdc++ \
344// RUN:        -EB -mhard-float -muclibc -mnan=2008 \
345// RUN:   | FileCheck --check-prefix=EB-HARD-UCLIBC-NAN2008 %s
346// EB-HARD-UCLIBC-NAN2008: "-internal-isystem"
347// EB-HARD-UCLIBC-NAN2008: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
348// EB-HARD-UCLIBC-NAN2008: "-internal-isystem"
349// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mips-r2-hard-nan2008-uclibc/lib"
350// EB-HARD-UCLIBC-NAN2008: "-internal-isystem"
351// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
352// EB-HARD-UCLIBC-NAN2008: "-internal-externc-isystem"
353// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/lib/../usr/include"
354// EB-HARD-UCLIBC-NAN2008: "{{.*}}ld{{(.exe)?}}"
355// EB-HARD-UCLIBC-NAN2008: "--sysroot=[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc"
356// EB-HARD-UCLIBC-NAN2008: "-dynamic-linker" "/lib/ld-uClibc-mipsn8.so.0"
357// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crt1.o"
358// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crti.o"
359// EB-HARD-UCLIBC-NAN2008: "[[TC]]/mips-r2-hard-nan2008-uclibc/lib{{/|\\\\}}crtbegin.o"
360// EB-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mips-r2-hard-nan2008-uclibc/lib"
361// EB-HARD-UCLIBC-NAN2008: "-L[[TC]]/mips-r2-hard-nan2008-uclibc/lib"
362// EB-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/lib/../lib"
363// EB-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/../lib"
364// EB-HARD-UCLIBC-NAN2008: "[[TC]]/mips-r2-hard-nan2008-uclibc/lib{{/|\\\\}}crtend.o"
365// EB-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crtn.o"
366
367// -EL -mhard-float -muclibc -mnan=2008
368// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
369// RUN:        --target=mips-mti-linux-gnu \
370// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
371// RUN:        -stdlib=libstdc++ \
372// RUN:        -EL -mhard-float -muclibc -mnan=2008 \
373// RUN:   | FileCheck --check-prefix=EL-HARD-UCLIBC-NAN2008 %s
374// EL-HARD-UCLIBC-NAN2008: "-internal-isystem"
375// EL-HARD-UCLIBC-NAN2008: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
376// EL-HARD-UCLIBC-NAN2008: "-internal-isystem"
377// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/mipsel-r2-hard-nan2008-uclibc/lib"
378// EL-HARD-UCLIBC-NAN2008: "-internal-isystem"
379// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
380// EL-HARD-UCLIBC-NAN2008: "-internal-externc-isystem"
381// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/lib/../usr/include"
382// EL-HARD-UCLIBC-NAN2008: "{{.*}}ld{{(.exe)?}}"
383// EL-HARD-UCLIBC-NAN2008: "--sysroot=[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc"
384// EL-HARD-UCLIBC-NAN2008: "-dynamic-linker" "/lib/ld-uClibc-mipsn8.so.0"
385// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crt1.o"
386// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crti.o"
387// EL-HARD-UCLIBC-NAN2008: "[[TC]]/mipsel-r2-hard-nan2008-uclibc/lib{{/|\\\\}}crtbegin.o"
388// EL-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008-uclibc/lib"
389// EL-HARD-UCLIBC-NAN2008: "-L[[TC]]/mipsel-r2-hard-nan2008-uclibc/lib"
390// EL-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/lib/../lib"
391// EL-HARD-UCLIBC-NAN2008: "-L[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/../lib"
392// EL-HARD-UCLIBC-NAN2008: "[[TC]]/mipsel-r2-hard-nan2008-uclibc/lib{{/|\\\\}}crtend.o"
393// EL-HARD-UCLIBC-NAN2008: "[[TC]]/../../../../sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/../lib{{/|\\\\}}crtn.o"
394
395// -EL -msoft-float -mmicromips
396// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
397// RUN:        --target=mips-mti-linux-gnu \
398// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
399// RUN:        -stdlib=libstdc++ \
400// RUN:        -EL -msoft-float -mmicromips \
401// RUN:   | FileCheck --check-prefix=EL-SOFT-MICRO %s
402// EL-SOFT-MICRO: "-internal-isystem"
403// EL-SOFT-MICRO: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
404// EL-SOFT-MICRO: "-internal-isystem"
405// EL-SOFT-MICRO: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/micromipsel-r2-soft/lib"
406// EL-SOFT-MICRO: "-internal-isystem"
407// EL-SOFT-MICRO: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
408// EL-SOFT-MICRO: "-internal-externc-isystem"
409// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r2-soft/lib/../usr/include"
410// EL-SOFT-MICRO: "{{.*}}ld{{(.exe)?}}"
411// EL-SOFT-MICRO: "--sysroot=[[TC]]/../../../../sysroot/micromipsel-r2-soft"
412// EL-SOFT-MICRO: "-dynamic-linker" "/lib/ld.so.1"
413// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crt1.o"
414// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crti.o"
415// EL-SOFT-MICRO: "[[TC]]/micromipsel-r2-soft/lib{{/|\\\\}}crtbegin.o"
416// EL-SOFT-MICRO: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/micromipsel-r2-soft/lib"
417// EL-SOFT-MICRO: "-L[[TC]]/micromipsel-r2-soft/lib"
418// EL-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r2-soft/lib/../lib"
419// EL-SOFT-MICRO: "-L[[TC]]/../../../../sysroot/micromipsel-r2-soft/usr/lib/../lib"
420// EL-SOFT-MICRO: "[[TC]]/micromipsel-r2-soft/lib{{/|\\\\}}crtend.o"
421// EL-SOFT-MICRO: "[[TC]]/../../../../sysroot/micromipsel-r2-soft/usr/lib/../lib{{/|\\\\}}crtn.o"
422
423// -EL -mhard-float -mmicromips -mnan=2008
424// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
425// RUN:        --target=mips-mti-linux-gnu \
426// RUN:        --gcc-toolchain=%S/Inputs/mips_mti_tree \
427// RUN:        -stdlib=libstdc++ \
428// RUN:        -EL -mhard-float -mmicromips -mnan=2008 \
429// RUN:   | FileCheck --check-prefix=EL-SOFT-MICRO-NAN2008 %s
430// EL-SOFT-MICRO-NAN2008: "-internal-isystem"
431// EL-SOFT-MICRO-NAN2008: "[[TC:[^"]+/lib/gcc/mips-mti-linux-gnu/4.9.2]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2"
432// EL-SOFT-MICRO-NAN2008: "-internal-isystem"
433// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/mips-mti-linux-gnu/micromipsel-r2-hard-nan2008/lib"
434// EL-SOFT-MICRO-NAN2008: "-internal-isystem"
435// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../mips-mti-linux-gnu/include/c++/4.9.2/backward"
436// EL-SOFT-MICRO-NAN2008: "-internal-externc-isystem"
437// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/lib/../usr/include"
438// EL-SOFT-MICRO-NAN2008: "{{.*}}ld{{(.exe)?}}"
439// EL-SOFT-MICRO-NAN2008: "--sysroot=[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008"
440// EL-SOFT-MICRO-NAN2008: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
441// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crt1.o"
442// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crti.o"
443// EL-SOFT-MICRO-NAN2008: "[[TC]]/micromipsel-r2-hard-nan2008/lib{{/|\\\\}}crtbegin.o"
444// EL-SOFT-MICRO-NAN2008: "-L[[TC]]/../../../../mips-mti-linux-gnu/lib/micromipsel-r2-hard-nan2008/lib"
445// EL-SOFT-MICRO-NAN2008: "-L[[TC]]/micromipsel-r2-hard-nan2008/lib"
446// EL-SOFT-MICRO-NAN2008: "-L[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/lib/../lib"
447// EL-SOFT-MICRO-NAN2008: "-L[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/usr/lib/../lib"
448// EL-SOFT-MICRO-NAN2008: "[[TC]]/micromipsel-r2-hard-nan2008/lib{{/|\\\\}}crtend.o"
449// EL-SOFT-MICRO-NAN2008: "[[TC]]/../../../../sysroot/micromipsel-r2-hard-nan2008/usr/lib/../lib{{/|\\\\}}crtn.o"
450