xref: /aosp_15_r20/external/clang/test/Driver/mips-cs.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // Check frontend and linker invocations on Mentor Graphics MIPS toolchain.
2*67e74705SXin Li //
3*67e74705SXin Li // = Big-endian, hard float
4*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
5*67e74705SXin Li // RUN:     --target=mips-linux-gnu \
6*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
7*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-HF-32 %s
8*67e74705SXin Li // CHECK-BE-HF-32: "-internal-isystem"
9*67e74705SXin Li // CHECK-BE-HF-32: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
10*67e74705SXin Li // CHECK-BE-HF-32: "-internal-isystem"
11*67e74705SXin Li // CHECK-BE-HF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu"
12*67e74705SXin Li // CHECK-BE-HF-32: "-internal-isystem"
13*67e74705SXin Li // CHECK-BE-HF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
14*67e74705SXin Li // CHECK-BE-HF-32: "-internal-externc-isystem"
15*67e74705SXin Li // CHECK-BE-HF-32: "[[TC]]/include"
16*67e74705SXin Li // CHECK-BE-HF-32: "-internal-externc-isystem"
17*67e74705SXin Li // CHECK-BE-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
18*67e74705SXin Li // CHECK-BE-HF-32: "{{.*}}ld{{(.exe)?}}"
19*67e74705SXin Li // CHECK-BE-HF-32: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc"
20*67e74705SXin Li // CHECK-BE-HF-32: "-dynamic-linker" "/lib/ld.so.1"
21*67e74705SXin Li // CHECK-BE-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/usr/lib/../lib{{/|\\\\}}crt1.o"
22*67e74705SXin Li // CHECK-BE-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/usr/lib/../lib{{/|\\\\}}crti.o"
23*67e74705SXin Li // CHECK-BE-HF-32: "[[TC]]{{/|\\\\}}crtbegin.o"
24*67e74705SXin Li // CHECK-BE-HF-32: "-L[[TC]]"
25*67e74705SXin Li // CHECK-BE-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib"
26*67e74705SXin Li // CHECK-BE-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/lib"
27*67e74705SXin Li // CHECK-BE-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/usr/lib"
28*67e74705SXin Li // CHECK-BE-HF-32: "[[TC]]{{/|\\\\}}crtend.o"
29*67e74705SXin Li // CHECK-BE-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/usr/lib/../lib{{/|\\\\}}crtn.o"
30*67e74705SXin Li //
31*67e74705SXin Li // = Big-endian, hard float, uclibc
32*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
33*67e74705SXin Li // RUN:     --target=mips-linux-gnu -muclibc \
34*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
35*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-UC-HF-32 %s
36*67e74705SXin Li // CHECK-BE-UC-HF-32: "-internal-isystem"
37*67e74705SXin Li // CHECK-BE-UC-HF-32: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
38*67e74705SXin Li // CHECK-BE-UC-HF-32: "-internal-isystem"
39*67e74705SXin Li // CHECK-BE-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/uclibc"
40*67e74705SXin Li // CHECK-BE-UC-HF-32: "-internal-isystem"
41*67e74705SXin Li // CHECK-BE-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
42*67e74705SXin Li // CHECK-BE-UC-HF-32: "-internal-externc-isystem"
43*67e74705SXin Li // CHECK-BE-UC-HF-32: "[[TC]]/include"
44*67e74705SXin Li // CHECK-BE-UC-HF-32: "-internal-externc-isystem"
45*67e74705SXin Li // CHECK-BE-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/usr/include"
46*67e74705SXin Li // CHECK-BE-UC-HF-32: "{{.*}}ld{{(.exe)?}}"
47*67e74705SXin Li // CHECK-BE-UC-HF-32: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/uclibc"
48*67e74705SXin Li // CHECK-BE-UC-HF-32: "-dynamic-linker" "/lib/ld-uClibc.so.0"
49*67e74705SXin Li // CHECK-BE-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/usr/lib/../lib{{/|\\\\}}crt1.o"
50*67e74705SXin Li // CHECK-BE-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/usr/lib/../lib{{/|\\\\}}crti.o"
51*67e74705SXin Li // CHECK-BE-UC-HF-32: "[[TC]]/uclibc{{/|\\\\}}crtbegin.o"
52*67e74705SXin Li // CHECK-BE-UC-HF-32: "-L[[TC]]/uclibc"
53*67e74705SXin Li // CHECK-BE-UC-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/uclibc"
54*67e74705SXin Li // CHECK-BE-UC-HF-32-NOT: "-L[[TC]]"
55*67e74705SXin Li // CHECK-BE-UC-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/lib/../lib"
56*67e74705SXin Li // CHECK-BE-UC-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/usr/lib/../lib"
57*67e74705SXin Li // CHECK-BE-UC-HF-32: "[[TC]]/uclibc{{/|\\\\}}crtend.o"
58*67e74705SXin Li // CHECK-BE-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/usr/lib/../lib{{/|\\\\}}crtn.o"
59*67e74705SXin Li //
60*67e74705SXin Li // = Big-endian, hard float, mips16
61*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
62*67e74705SXin Li // RUN:     --target=mips-linux-gnu -mips16 \
63*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
64*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-HF-16 %s
65*67e74705SXin Li // CHECK-BE-HF-16: "-internal-isystem"
66*67e74705SXin Li // CHECK-BE-HF-16: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
67*67e74705SXin Li // CHECK-BE-HF-16: "-internal-isystem"
68*67e74705SXin Li // CHECK-BE-HF-16: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/mips16"
69*67e74705SXin Li // CHECK-BE-HF-16: "-internal-isystem"
70*67e74705SXin Li // CHECK-BE-HF-16: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
71*67e74705SXin Li // CHECK-BE-HF-16: "-internal-externc-isystem"
72*67e74705SXin Li // CHECK-BE-HF-16: "[[TC]]/include"
73*67e74705SXin Li // CHECK-BE-HF-16: "-internal-externc-isystem"
74*67e74705SXin Li // CHECK-BE-HF-16: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
75*67e74705SXin Li // CHECK-BE-HF-16: "{{.*}}ld{{(.exe)?}}"
76*67e74705SXin Li // CHECK-BE-HF-16: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/mips16"
77*67e74705SXin Li // CHECK-BE-HF-16: "-dynamic-linker" "/lib/ld.so.1"
78*67e74705SXin Li // CHECK-BE-HF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/usr/lib/../lib{{/|\\\\}}crt1.o"
79*67e74705SXin Li // CHECK-BE-HF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/usr/lib/../lib{{/|\\\\}}crti.o"
80*67e74705SXin Li // CHECK-BE-HF-16: "[[TC]]/mips16{{/|\\\\}}crtbegin.o"
81*67e74705SXin Li // CHECK-BE-HF-16: "-L[[TC]]/mips16"
82*67e74705SXin Li // CHECK-BE-HF-16: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/mips16"
83*67e74705SXin Li // CHECK-BE-HF-16-NOT: "-L[[TC]]"
84*67e74705SXin Li // CHECK-BE-HF-16: "-L[[TC]]/../../../../mips-linux-gnu/libc/mips16/lib/../lib"
85*67e74705SXin Li // CHECK-BE-HF-16: "-L[[TC]]/../../../../mips-linux-gnu/libc/mips16/usr/lib/../lib"
86*67e74705SXin Li // CHECK-BE-HF-16: "[[TC]]/mips16{{/|\\\\}}crtend.o"
87*67e74705SXin Li // CHECK-BE-HF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/usr/lib/../lib{{/|\\\\}}crtn.o"
88*67e74705SXin Li //
89*67e74705SXin Li // = Big-endian, hard float, mmicromips
90*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
91*67e74705SXin Li // RUN:     --target=mips-linux-gnu -mmicromips \
92*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
93*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-HF-MICRO %s
94*67e74705SXin Li // CHECK-BE-HF-MICRO: "-internal-isystem"
95*67e74705SXin Li // CHECK-BE-HF-MICRO: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
96*67e74705SXin Li // CHECK-BE-HF-MICRO: "-internal-isystem"
97*67e74705SXin Li // CHECK-BE-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/micromips"
98*67e74705SXin Li // CHECK-BE-HF-MICRO: "-internal-isystem"
99*67e74705SXin Li // CHECK-BE-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
100*67e74705SXin Li // CHECK-BE-HF-MICRO: "-internal-externc-isystem"
101*67e74705SXin Li // CHECK-BE-HF-MICRO: "[[TC]]/include"
102*67e74705SXin Li // CHECK-BE-HF-MICRO: "-internal-externc-isystem"
103*67e74705SXin Li // CHECK-BE-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
104*67e74705SXin Li // CHECK-BE-HF-MICRO: "{{.*}}ld{{(.exe)?}}"
105*67e74705SXin Li // CHECK-BE-HF-MICRO: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/micromips"
106*67e74705SXin Li // CHECK-BE-HF-MICRO: "-dynamic-linker" "/lib/ld.so.1"
107*67e74705SXin Li // CHECK-BE-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/usr/lib/../lib{{/|\\\\}}crt1.o"
108*67e74705SXin Li // CHECK-BE-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/usr/lib/../lib{{/|\\\\}}crti.o"
109*67e74705SXin Li // CHECK-BE-HF-MICRO: "[[TC]]/micromips{{/|\\\\}}crtbegin.o"
110*67e74705SXin Li // CHECK-BE-HF-MICRO: "-L[[TC]]/micromips"
111*67e74705SXin Li // CHECK-BE-HF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/micromips"
112*67e74705SXin Li // CHECK-BE-HF-MICRO-NOT: "-L[[TC]]"
113*67e74705SXin Li // CHECK-BE-HF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/libc/micromips/lib/../lib"
114*67e74705SXin Li // CHECK-BE-HF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/libc/micromips/usr/lib/../lib"
115*67e74705SXin Li // CHECK-BE-HF-MICRO: "[[TC]]/micromips{{/|\\\\}}crtend.o"
116*67e74705SXin Li // CHECK-BE-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/usr/lib/../lib{{/|\\\\}}crtn.o"
117*67e74705SXin Li //
118*67e74705SXin Li // = Big-endian, hard float, nan2008
119*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
120*67e74705SXin Li // RUN:     --target=mips-linux-gnu -mnan=2008 \
121*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
122*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-HF-NAN %s
123*67e74705SXin Li // CHECK-BE-HF-NAN: "-internal-isystem"
124*67e74705SXin Li // CHECK-BE-HF-NAN: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
125*67e74705SXin Li // CHECK-BE-HF-NAN: "-internal-isystem"
126*67e74705SXin Li // CHECK-BE-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/nan2008"
127*67e74705SXin Li // CHECK-BE-HF-NAN: "-internal-isystem"
128*67e74705SXin Li // CHECK-BE-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
129*67e74705SXin Li // CHECK-BE-HF-NAN: "-internal-externc-isystem"
130*67e74705SXin Li // CHECK-BE-HF-NAN: "[[TC]]/include"
131*67e74705SXin Li // CHECK-BE-HF-NAN: "-internal-externc-isystem"
132*67e74705SXin Li // CHECK-BE-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
133*67e74705SXin Li // CHECK-BE-HF-NAN: "{{.*}}ld{{(.exe)?}}"
134*67e74705SXin Li // CHECK-BE-HF-NAN: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/nan2008"
135*67e74705SXin Li // CHECK-BE-HF-NAN: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
136*67e74705SXin Li // CHECK-BE-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/nan2008/usr/lib/../lib{{/|\\\\}}crt1.o"
137*67e74705SXin Li // CHECK-BE-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/nan2008/usr/lib/../lib{{/|\\\\}}crti.o"
138*67e74705SXin Li // CHECK-BE-HF-NAN: "[[TC]]/nan2008{{/|\\\\}}crtbegin.o"
139*67e74705SXin Li // CHECK-BE-HF-NAN: "-L[[TC]]/nan2008"
140*67e74705SXin Li // CHECK-BE-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/nan2008"
141*67e74705SXin Li // CHECK-BE-HF-NAN-NOT: "-L[[TC]]"
142*67e74705SXin Li // CHECK-BE-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/libc/nan2008/lib/../lib"
143*67e74705SXin Li // CHECK-BE-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/libc/nan2008/usr/lib/../lib"
144*67e74705SXin Li // CHECK-BE-HF-NAN: "[[TC]]/nan2008{{/|\\\\}}crtend.o"
145*67e74705SXin Li // CHECK-BE-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/nan2008/usr/lib/../lib{{/|\\\\}}crtn.o"
146*67e74705SXin Li //
147*67e74705SXin Li // = Big-endian, hard float, uclibc, nan2008
148*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
149*67e74705SXin Li // RUN:     --target=mips-linux-gnu -muclibc -mnan=2008 \
150*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
151*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-UC-HF-NAN %s
152*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "-internal-isystem"
153*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
154*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "-internal-isystem"
155*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/uclibc/nan2008"
156*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "-internal-isystem"
157*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
158*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "-internal-externc-isystem"
159*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "[[TC]]/include"
160*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "-internal-externc-isystem"
161*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/usr/include"
162*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "{{.*}}ld{{(.exe)?}}"
163*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008"
164*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "-dynamic-linker" "/lib/ld-uClibc-mipsn8.so.0"
165*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/usr/lib/../lib{{/|\\\\}}crt1.o"
166*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/usr/lib/../lib{{/|\\\\}}crti.o"
167*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "[[TC]]/uclibc/nan2008{{/|\\\\}}crtbegin.o"
168*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "-L[[TC]]/uclibc/nan2008"
169*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/uclibc/nan2008"
170*67e74705SXin Li // CHECK-BE-UC-HF-NAN-NOT: "-L[[TC]]"
171*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/lib/../lib"
172*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/usr/lib/../lib"
173*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "[[TC]]/uclibc/nan2008{{/|\\\\}}crtend.o"
174*67e74705SXin Li // CHECK-BE-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/usr/lib/../lib{{/|\\\\}}crtn.o"
175*67e74705SXin Li //
176*67e74705SXin Li // = Big-endian, soft float
177*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
178*67e74705SXin Li // RUN:     --target=mips-linux-gnu -msoft-float \
179*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
180*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-SF-32 %s
181*67e74705SXin Li // CHECK-BE-SF-32: "-internal-isystem"
182*67e74705SXin Li // CHECK-BE-SF-32: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
183*67e74705SXin Li // CHECK-BE-SF-32: "-internal-isystem"
184*67e74705SXin Li // CHECK-BE-SF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/soft-float"
185*67e74705SXin Li // CHECK-BE-SF-32: "-internal-isystem"
186*67e74705SXin Li // CHECK-BE-SF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
187*67e74705SXin Li // CHECK-BE-SF-32: "-internal-externc-isystem"
188*67e74705SXin Li // CHECK-BE-SF-32: "[[TC]]/include"
189*67e74705SXin Li // CHECK-BE-SF-32: "-internal-externc-isystem"
190*67e74705SXin Li // CHECK-BE-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
191*67e74705SXin Li // CHECK-BE-SF-32: "{{.*}}ld{{(.exe)?}}"
192*67e74705SXin Li // CHECK-BE-SF-32: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/soft-float"
193*67e74705SXin Li // CHECK-BE-SF-32: "-dynamic-linker" "/lib/ld.so.1"
194*67e74705SXin Li // CHECK-BE-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/usr/lib/../lib{{/|\\\\}}crt1.o"
195*67e74705SXin Li // CHECK-BE-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/usr/lib/../lib{{/|\\\\}}crti.o"
196*67e74705SXin Li // CHECK-BE-SF-32: "[[TC]]/soft-float{{/|\\\\}}crtbegin.o"
197*67e74705SXin Li // CHECK-BE-SF-32: "-L[[TC]]/soft-float"
198*67e74705SXin Li // CHECK-BE-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/soft-float"
199*67e74705SXin Li // CHECK-BE-SF-32-NOT: "-L[[TC]]"
200*67e74705SXin Li // CHECK-BE-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/soft-float/lib/../lib"
201*67e74705SXin Li // CHECK-BE-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/soft-float/usr/lib/../lib"
202*67e74705SXin Li // CHECK-BE-SF-32: "[[TC]]/soft-float{{/|\\\\}}crtend.o"
203*67e74705SXin Li // CHECK-BE-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/usr/lib/../lib{{/|\\\\}}crtn.o"
204*67e74705SXin Li //
205*67e74705SXin Li // = Big-endian, soft float, uclibc
206*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
207*67e74705SXin Li // RUN:     --target=mips-linux-gnu -muclibc -msoft-float \
208*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
209*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-UC-SF-32 %s
210*67e74705SXin Li // CHECK-BE-UC-SF-32: "-internal-isystem"
211*67e74705SXin Li // CHECK-BE-UC-SF-32: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
212*67e74705SXin Li // CHECK-BE-UC-SF-32: "-internal-isystem"
213*67e74705SXin Li // CHECK-BE-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/uclibc/soft-float"
214*67e74705SXin Li // CHECK-BE-UC-SF-32: "-internal-isystem"
215*67e74705SXin Li // CHECK-BE-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
216*67e74705SXin Li // CHECK-BE-UC-SF-32: "-internal-externc-isystem"
217*67e74705SXin Li // CHECK-BE-UC-SF-32: "[[TC]]/include"
218*67e74705SXin Li // CHECK-BE-UC-SF-32: "-internal-externc-isystem"
219*67e74705SXin Li // CHECK-BE-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/usr/include"
220*67e74705SXin Li // CHECK-BE-UC-SF-32: "{{.*}}ld{{(.exe)?}}"
221*67e74705SXin Li // CHECK-BE-UC-SF-32: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float"
222*67e74705SXin Li // CHECK-BE-UC-SF-32: "-dynamic-linker" "/lib/ld-uClibc.so.0"
223*67e74705SXin Li // CHECK-BE-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/usr/lib/../lib{{/|\\\\}}crt1.o"
224*67e74705SXin Li // CHECK-BE-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/usr/lib/../lib{{/|\\\\}}crti.o"
225*67e74705SXin Li // CHECK-BE-UC-SF-32: "[[TC]]/uclibc/soft-float{{/|\\\\}}crtbegin.o"
226*67e74705SXin Li // CHECK-BE-UC-SF-32: "-L[[TC]]/uclibc/soft-float"
227*67e74705SXin Li // CHECK-BE-UC-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/uclibc/soft-float"
228*67e74705SXin Li // CHECK-BE-UC-SF-32-NOT: "-L[[TC]]"
229*67e74705SXin Li // CHECK-BE-UC-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/lib/../lib"
230*67e74705SXin Li // CHECK-BE-UC-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/usr/lib/../lib"
231*67e74705SXin Li // CHECK-BE-UC-SF-32: "[[TC]]/uclibc/soft-float{{/|\\\\}}crtend.o"
232*67e74705SXin Li // CHECK-BE-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/usr/lib/../lib{{/|\\\\}}crtn.o"
233*67e74705SXin Li //
234*67e74705SXin Li // = Big-endian, soft float, mips16
235*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
236*67e74705SXin Li // RUN:     --target=mips-linux-gnu -msoft-float -mips16 \
237*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
238*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-SF-16 %s
239*67e74705SXin Li // CHECK-BE-SF-16: "-internal-isystem"
240*67e74705SXin Li // CHECK-BE-SF-16: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
241*67e74705SXin Li // CHECK-BE-SF-16: "-internal-isystem"
242*67e74705SXin Li // CHECK-BE-SF-16: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/mips16/soft-float"
243*67e74705SXin Li // CHECK-BE-SF-16: "-internal-isystem"
244*67e74705SXin Li // CHECK-BE-SF-16: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
245*67e74705SXin Li // CHECK-BE-SF-16: "-internal-externc-isystem"
246*67e74705SXin Li // CHECK-BE-SF-16: "[[TC]]/include"
247*67e74705SXin Li // CHECK-BE-SF-16: "-internal-externc-isystem"
248*67e74705SXin Li // CHECK-BE-SF-16: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
249*67e74705SXin Li // CHECK-BE-SF-16: "{{.*}}ld{{(.exe)?}}"
250*67e74705SXin Li // CHECK-BE-SF-16: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float"
251*67e74705SXin Li // CHECK-BE-SF-16: "-dynamic-linker" "/lib/ld.so.1"
252*67e74705SXin Li // CHECK-BE-SF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/usr/lib/../lib{{/|\\\\}}crt1.o"
253*67e74705SXin Li // CHECK-BE-SF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/usr/lib/../lib{{/|\\\\}}crti.o"
254*67e74705SXin Li // CHECK-BE-SF-16: "[[TC]]/mips16/soft-float{{/|\\\\}}crtbegin.o"
255*67e74705SXin Li // CHECK-BE-SF-16: "-L[[TC]]/mips16/soft-float"
256*67e74705SXin Li // CHECK-BE-SF-16: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/mips16/soft-float"
257*67e74705SXin Li // CHECK-BE-SF-16-NOT: "-L[[TC]]"
258*67e74705SXin Li // CHECK-BE-SF-16: "-L[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/lib/../lib"
259*67e74705SXin Li // CHECK-BE-SF-16: "-L[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/usr/lib/../lib"
260*67e74705SXin Li // CHECK-BE-SF-16: "[[TC]]/mips16/soft-float{{/|\\\\}}crtend.o"
261*67e74705SXin Li // CHECK-BE-SF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/usr/lib/../lib{{/|\\\\}}crtn.o"
262*67e74705SXin Li //
263*67e74705SXin Li // = Big-endian, soft float, micromips
264*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
265*67e74705SXin Li // RUN:     --target=mips-linux-gnu -msoft-float -mmicromips \
266*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
267*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-SF-MICRO %s
268*67e74705SXin Li // CHECK-BE-SF-MICRO: "-internal-isystem"
269*67e74705SXin Li // CHECK-BE-SF-MICRO: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
270*67e74705SXin Li // CHECK-BE-SF-MICRO: "-internal-isystem"
271*67e74705SXin Li // CHECK-BE-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/micromips/soft-float"
272*67e74705SXin Li // CHECK-BE-SF-MICRO: "-internal-isystem"
273*67e74705SXin Li // CHECK-BE-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
274*67e74705SXin Li // CHECK-BE-SF-MICRO: "-internal-externc-isystem"
275*67e74705SXin Li // CHECK-BE-SF-MICRO: "[[TC]]/include"
276*67e74705SXin Li // CHECK-BE-SF-MICRO: "-internal-externc-isystem"
277*67e74705SXin Li // CHECK-BE-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
278*67e74705SXin Li // CHECK-BE-SF-MICRO: "{{.*}}ld{{(.exe)?}}"
279*67e74705SXin Li // CHECK-BE-SF-MICRO: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float"
280*67e74705SXin Li // CHECK-BE-SF-MICRO: "-dynamic-linker" "/lib/ld.so.1"
281*67e74705SXin Li // CHECK-BE-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/usr/lib/../lib{{/|\\\\}}crt1.o"
282*67e74705SXin Li // CHECK-BE-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/usr/lib/../lib{{/|\\\\}}crti.o"
283*67e74705SXin Li // CHECK-BE-SF-MICRO: "[[TC]]/micromips/soft-float{{/|\\\\}}crtbegin.o"
284*67e74705SXin Li // CHECK-BE-SF-MICRO: "-L[[TC]]/micromips/soft-float"
285*67e74705SXin Li // CHECK-BE-SF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/micromips/soft-float"
286*67e74705SXin Li // CHECK-BE-SF-MICRO-NOT: "-L[[TC]]"
287*67e74705SXin Li // CHECK-BE-SF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/lib/../lib"
288*67e74705SXin Li // CHECK-BE-SF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/usr/lib/../lib"
289*67e74705SXin Li // CHECK-BE-SF-MICRO: "[[TC]]/micromips/soft-float{{/|\\\\}}crtend.o"
290*67e74705SXin Li // CHECK-BE-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/usr/lib/../lib{{/|\\\\}}crtn.o"
291*67e74705SXin Li //
292*67e74705SXin Li // = Big-endian, hard float, 64-bit
293*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
294*67e74705SXin Li // RUN:     --target=mips64-linux-gnu \
295*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
296*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-HF-64 %s
297*67e74705SXin Li // CHECK-BE-HF-64: "-internal-isystem"
298*67e74705SXin Li // CHECK-BE-HF-64: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
299*67e74705SXin Li // CHECK-BE-HF-64: "-internal-isystem"
300*67e74705SXin Li // CHECK-BE-HF-64: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/64"
301*67e74705SXin Li // CHECK-BE-HF-64: "-internal-isystem"
302*67e74705SXin Li // CHECK-BE-HF-64: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
303*67e74705SXin Li // CHECK-BE-HF-64: "-internal-externc-isystem"
304*67e74705SXin Li // CHECK-BE-HF-64: "[[TC]]/include"
305*67e74705SXin Li // CHECK-BE-HF-64: "-internal-externc-isystem"
306*67e74705SXin Li // CHECK-BE-HF-64: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
307*67e74705SXin Li // CHECK-BE-HF-64: "{{.*}}ld{{(.exe)?}}"
308*67e74705SXin Li // CHECK-BE-HF-64: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc"
309*67e74705SXin Li // CHECK-BE-HF-64: "-dynamic-linker" "/lib64/ld.so.1"
310*67e74705SXin Li // CHECK-BE-HF-64: "[[TC]]/../../../../mips-linux-gnu/libc/usr/lib/../lib64{{/|\\\\}}crt1.o"
311*67e74705SXin Li // CHECK-BE-HF-64: "[[TC]]/../../../../mips-linux-gnu/libc/usr/lib/../lib64{{/|\\\\}}crti.o"
312*67e74705SXin Li // CHECK-BE-HF-64: "[[TC]]/64{{/|\\\\}}crtbegin.o"
313*67e74705SXin Li // CHECK-BE-HF-64: "-L[[TC]]/64"
314*67e74705SXin Li // CHECK-BE-HF-64: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib64"
315*67e74705SXin Li // CHECK-BE-HF-64: "-L[[TC]]/../../../../mips-linux-gnu/libc/lib/../lib64"
316*67e74705SXin Li // CHECK-BE-HF-64: "-L[[TC]]/../../../../mips-linux-gnu/libc/usr/lib/../lib64"
317*67e74705SXin Li // CHECK-BE-HF-64-NOT: "-L[[TC]]"
318*67e74705SXin Li // CHECK-BE-HF-64: "{{.*}}/lib/gcc/mips-linux-gnu/4.6.3/64{{/|\\\\}}crtend.o"
319*67e74705SXin Li // CHECK-BE-HF-64: "[[TC]]/../../../../mips-linux-gnu/libc/usr/lib/../lib64{{/|\\\\}}crtn.o"
320*67e74705SXin Li //
321*67e74705SXin Li // = Big-endian, soft float, 64-bit
322*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
323*67e74705SXin Li // RUN:     --target=mips64-linux-gnu -msoft-float \
324*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
325*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-BE-SF-64 %s
326*67e74705SXin Li // CHECK-BE-SF-64: "-internal-isystem"
327*67e74705SXin Li // CHECK-BE-SF-64: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
328*67e74705SXin Li // CHECK-BE-SF-64: "-internal-isystem"
329*67e74705SXin Li // CHECK-BE-SF-64: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/soft-float/64"
330*67e74705SXin Li // CHECK-BE-SF-64: "-internal-isystem"
331*67e74705SXin Li // CHECK-BE-SF-64: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
332*67e74705SXin Li // CHECK-BE-SF-64: "-internal-externc-isystem"
333*67e74705SXin Li // CHECK-BE-SF-64: "[[TC]]/include"
334*67e74705SXin Li // CHECK-BE-SF-64: "-internal-externc-isystem"
335*67e74705SXin Li // CHECK-BE-SF-64: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
336*67e74705SXin Li // CHECK-BE-SF-64: "{{.*}}ld{{(.exe)?}}"
337*67e74705SXin Li // CHECK-BE-SF-64: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/soft-float"
338*67e74705SXin Li // CHECK-BE-SF-64: "-dynamic-linker" "/lib64/ld.so.1"
339*67e74705SXin Li // CHECK-BE-SF-64: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/usr/lib/../lib64{{/|\\\\}}crt1.o"
340*67e74705SXin Li // CHECK-BE-SF-64: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/usr/lib/../lib64{{/|\\\\}}crti.o"
341*67e74705SXin Li // CHECK-BE-SF-64: "[[TC]]/soft-float/64{{/|\\\\}}crtbegin.o"
342*67e74705SXin Li // CHECK-BE-SF-64: "-L[[TC]]/soft-float/64"
343*67e74705SXin Li // CHECK-BE-SF-64: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib64/soft-float"
344*67e74705SXin Li // CHECK-BE-SF-64: "-L[[TC]]/../../../../mips-linux-gnu/libc/soft-float/lib/../lib64"
345*67e74705SXin Li // CHECK-BE-SF-64: "-L[[TC]]/../../../../mips-linux-gnu/libc/soft-float/usr/lib/../lib64"
346*67e74705SXin Li // CHECK-BE-SF-64-NOT: "-L[[TC]]"
347*67e74705SXin Li // CHECK-BE-SF-64: "[[TC]]/soft-float/64{{/|\\\\}}crtend.o"
348*67e74705SXin Li // CHECK-BE-SF-64: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/usr/lib/../lib64{{/|\\\\}}crtn.o"
349*67e74705SXin Li //
350*67e74705SXin Li // = Little-endian, hard float
351*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
352*67e74705SXin Li // RUN:     --target=mipsel-linux-gnu -mhard-float \
353*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
354*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-HF-32 %s
355*67e74705SXin Li // CHECK-EL-HF-32: "-internal-isystem"
356*67e74705SXin Li // CHECK-EL-HF-32: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
357*67e74705SXin Li // CHECK-EL-HF-32: "-internal-isystem"
358*67e74705SXin Li // CHECK-EL-HF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/el"
359*67e74705SXin Li // CHECK-EL-HF-32: "-internal-isystem"
360*67e74705SXin Li // CHECK-EL-HF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
361*67e74705SXin Li // CHECK-EL-HF-32: "-internal-externc-isystem"
362*67e74705SXin Li // CHECK-EL-HF-32: "[[TC]]/include"
363*67e74705SXin Li // CHECK-EL-HF-32: "-internal-externc-isystem"
364*67e74705SXin Li // CHECK-EL-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
365*67e74705SXin Li // CHECK-EL-HF-32: "{{.*}}ld{{(.exe)?}}"
366*67e74705SXin Li // CHECK-EL-HF-32: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/el"
367*67e74705SXin Li // CHECK-EL-HF-32: "-dynamic-linker" "/lib/ld.so.1"
368*67e74705SXin Li // CHECK-EL-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/el/usr/lib/../lib{{/|\\\\}}crt1.o"
369*67e74705SXin Li // CHECK-EL-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/el/usr/lib/../lib{{/|\\\\}}crti.o"
370*67e74705SXin Li // CHECK-EL-HF-32: "[[TC]]/el{{/|\\\\}}crtbegin.o"
371*67e74705SXin Li // CHECK-EL-HF-32: "-L[[TC]]/el"
372*67e74705SXin Li // CHECK-EL-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/el"
373*67e74705SXin Li // CHECK-EL-HF-32-NOT: "-L[[TC]]"
374*67e74705SXin Li // CHECK-EL-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/el/lib/../lib"
375*67e74705SXin Li // CHECK-EL-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/el/usr/lib/../lib"
376*67e74705SXin Li // CHECK-EL-HF-32: "[[TC]]/el{{/|\\\\}}crtend.o"
377*67e74705SXin Li // CHECK-EL-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/el/usr/lib/../lib{{/|\\\\}}crtn.o"
378*67e74705SXin Li //
379*67e74705SXin Li // = Little-endian, hard float, uclibc
380*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
381*67e74705SXin Li // RUN:     --target=mipsel-linux-gnu -mhard-float -muclibc \
382*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
383*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-UC-HF-32 %s
384*67e74705SXin Li // CHECK-EL-UC-HF-32: "-internal-isystem"
385*67e74705SXin Li // CHECK-EL-UC-HF-32: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
386*67e74705SXin Li // CHECK-EL-UC-HF-32: "-internal-isystem"
387*67e74705SXin Li // CHECK-EL-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/uclibc/el"
388*67e74705SXin Li // CHECK-EL-UC-HF-32: "-internal-isystem"
389*67e74705SXin Li // CHECK-EL-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
390*67e74705SXin Li // CHECK-EL-UC-HF-32: "-internal-externc-isystem"
391*67e74705SXin Li // CHECK-EL-UC-HF-32: "[[TC]]/include"
392*67e74705SXin Li // CHECK-EL-UC-HF-32: "-internal-externc-isystem"
393*67e74705SXin Li // CHECK-EL-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/usr/include"
394*67e74705SXin Li // CHECK-EL-UC-HF-32: "{{.*}}ld{{(.exe)?}}"
395*67e74705SXin Li // CHECK-EL-UC-HF-32: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/uclibc/el"
396*67e74705SXin Li // CHECK-EL-UC-HF-32: "-dynamic-linker" "/lib/ld-uClibc.so.0"
397*67e74705SXin Li // CHECK-EL-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/el/usr/lib/../lib{{/|\\\\}}crt1.o"
398*67e74705SXin Li // CHECK-EL-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/el/usr/lib/../lib{{/|\\\\}}crti.o"
399*67e74705SXin Li // CHECK-EL-UC-HF-32: "[[TC]]/uclibc/el{{/|\\\\}}crtbegin.o"
400*67e74705SXin Li // CHECK-EL-UC-HF-32: "-L[[TC]]/uclibc/el"
401*67e74705SXin Li // CHECK-EL-UC-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/uclibc/el"
402*67e74705SXin Li // CHECK-EL-UC-HF-32-NOT: "-L[[TC]]"
403*67e74705SXin Li // CHECK-EL-UC-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/el/lib/../lib"
404*67e74705SXin Li // CHECK-EL-UC-HF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/el/usr/lib/../lib"
405*67e74705SXin Li // CHECK-EL-UC-HF-32: "[[TC]]/uclibc/el{{/|\\\\}}crtend.o"
406*67e74705SXin Li // CHECK-EL-UC-HF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/el/usr/lib/../lib{{/|\\\\}}crtn.o"
407*67e74705SXin Li //
408*67e74705SXin Li // = Little-endian, hard float, mips16
409*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
410*67e74705SXin Li // RUN:     --target=mipsel-linux-gnu -mips16 \
411*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
412*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-HF-16 %s
413*67e74705SXin Li // CHECK-EL-HF-16: "-internal-isystem"
414*67e74705SXin Li // CHECK-EL-HF-16: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
415*67e74705SXin Li // CHECK-EL-HF-16: "-internal-isystem"
416*67e74705SXin Li // CHECK-EL-HF-16: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/mips16/el"
417*67e74705SXin Li // CHECK-EL-HF-16: "-internal-isystem"
418*67e74705SXin Li // CHECK-EL-HF-16: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
419*67e74705SXin Li // CHECK-EL-HF-16: "-internal-externc-isystem"
420*67e74705SXin Li // CHECK-EL-HF-16: "[[TC]]/include"
421*67e74705SXin Li // CHECK-EL-HF-16: "-internal-externc-isystem"
422*67e74705SXin Li // CHECK-EL-HF-16: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
423*67e74705SXin Li // CHECK-EL-HF-16: "{{.*}}ld{{(.exe)?}}"
424*67e74705SXin Li // CHECK-EL-HF-16: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/mips16/el"
425*67e74705SXin Li // CHECK-EL-HF-16: "-dynamic-linker" "/lib/ld.so.1"
426*67e74705SXin Li // CHECK-EL-HF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/el/usr/lib/../lib{{/|\\\\}}crt1.o"
427*67e74705SXin Li // CHECK-EL-HF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/el/usr/lib/../lib{{/|\\\\}}crti.o"
428*67e74705SXin Li // CHECK-EL-HF-16: "[[TC]]/mips16/el{{/|\\\\}}crtbegin.o"
429*67e74705SXin Li // CHECK-EL-HF-16: "-L[[TC]]/mips16/el"
430*67e74705SXin Li // CHECK-EL-HF-16: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/mips16/el"
431*67e74705SXin Li // CHECK-EL-HF-16-NOT: "-L[[TC]]"
432*67e74705SXin Li // CHECK-EL-HF-16: "-L[[TC]]/../../../../mips-linux-gnu/libc/mips16/el/lib/../lib"
433*67e74705SXin Li // CHECK-EL-HF-16: "-L[[TC]]/../../../../mips-linux-gnu/libc/mips16/el/usr/lib/../lib"
434*67e74705SXin Li // CHECK-EL-HF-16: "[[TC]]/mips16/el{{/|\\\\}}crtend.o"
435*67e74705SXin Li // CHECK-EL-HF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/el/usr/lib/../lib{{/|\\\\}}crtn.o"
436*67e74705SXin Li //
437*67e74705SXin Li // = Little-endian, hard float, micromips
438*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
439*67e74705SXin Li // RUN:     --target=mipsel-linux-gnu -mmicromips \
440*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
441*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-HF-MICRO %s
442*67e74705SXin Li // CHECK-EL-HF-MICRO: "-internal-isystem"
443*67e74705SXin Li // CHECK-EL-HF-MICRO: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
444*67e74705SXin Li // CHECK-EL-HF-MICRO: "-internal-isystem"
445*67e74705SXin Li // CHECK-EL-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/micromips/el"
446*67e74705SXin Li // CHECK-EL-HF-MICRO: "-internal-isystem"
447*67e74705SXin Li // CHECK-EL-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
448*67e74705SXin Li // CHECK-EL-HF-MICRO: "-internal-externc-isystem"
449*67e74705SXin Li // CHECK-EL-HF-MICRO: "[[TC]]/include"
450*67e74705SXin Li // CHECK-EL-HF-MICRO: "-internal-externc-isystem"
451*67e74705SXin Li // CHECK-EL-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
452*67e74705SXin Li // CHECK-EL-HF-MICRO: "{{.*}}ld{{(.exe)?}}"
453*67e74705SXin Li // CHECK-EL-HF-MICRO: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/micromips/el"
454*67e74705SXin Li // CHECK-EL-HF-MICRO: "-dynamic-linker" "/lib/ld.so.1"
455*67e74705SXin Li // CHECK-EL-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/el/usr/lib/../lib{{/|\\\\}}crt1.o"
456*67e74705SXin Li // CHECK-EL-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/el/usr/lib/../lib{{/|\\\\}}crti.o"
457*67e74705SXin Li // CHECK-EL-HF-MICRO: "[[TC]]/micromips/el{{/|\\\\}}crtbegin.o"
458*67e74705SXin Li // CHECK-EL-HF-MICRO: "-L[[TC]]/micromips/el"
459*67e74705SXin Li // CHECK-EL-HF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/micromips/el"
460*67e74705SXin Li // CHECK-EL-HF-MICRO-NOT: "-L[[TC]]"
461*67e74705SXin Li // CHECK-EL-HF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/libc/micromips/el/lib/../lib"
462*67e74705SXin Li // CHECK-EL-HF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/libc/micromips/el/usr/lib/../lib"
463*67e74705SXin Li // CHECK-EL-HF-MICRO: "[[TC]]/micromips/el{{/|\\\\}}crtend.o"
464*67e74705SXin Li // CHECK-EL-HF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/el/usr/lib/../lib{{/|\\\\}}crtn.o"
465*67e74705SXin Li //
466*67e74705SXin Li // = Little-endian, hard float, nan2008
467*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
468*67e74705SXin Li // RUN:     --target=mipsel-linux-gnu -mnan=2008 \
469*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
470*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-HF-NAN %s
471*67e74705SXin Li // CHECK-EL-HF-NAN: "-internal-isystem"
472*67e74705SXin Li // CHECK-EL-HF-NAN: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
473*67e74705SXin Li // CHECK-EL-HF-NAN: "-internal-isystem"
474*67e74705SXin Li // CHECK-EL-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/nan2008/el"
475*67e74705SXin Li // CHECK-EL-HF-NAN: "-internal-isystem"
476*67e74705SXin Li // CHECK-EL-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
477*67e74705SXin Li // CHECK-EL-HF-NAN: "-internal-externc-isystem"
478*67e74705SXin Li // CHECK-EL-HF-NAN: "[[TC]]/include"
479*67e74705SXin Li // CHECK-EL-HF-NAN: "-internal-externc-isystem"
480*67e74705SXin Li // CHECK-EL-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
481*67e74705SXin Li // CHECK-EL-HF-NAN: "{{.*}}ld{{(.exe)?}}"
482*67e74705SXin Li // CHECK-EL-HF-NAN: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/nan2008/el"
483*67e74705SXin Li // CHECK-EL-HF-NAN: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1"
484*67e74705SXin Li // CHECK-EL-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/nan2008/el/usr/lib/../lib{{/|\\\\}}crt1.o"
485*67e74705SXin Li // CHECK-EL-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/nan2008/el/usr/lib/../lib{{/|\\\\}}crti.o"
486*67e74705SXin Li // CHECK-EL-HF-NAN: "[[TC]]/nan2008/el{{/|\\\\}}crtbegin.o"
487*67e74705SXin Li // CHECK-EL-HF-NAN: "-L[[TC]]/nan2008/el"
488*67e74705SXin Li // CHECK-EL-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/nan2008/el"
489*67e74705SXin Li // CHECK-EL-HF-NAN-NOT: "-L[[TC]]"
490*67e74705SXin Li // CHECK-EL-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/libc/nan2008/el/lib/../lib"
491*67e74705SXin Li // CHECK-EL-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/libc/nan2008/el/usr/lib/../lib"
492*67e74705SXin Li // CHECK-EL-HF-NAN: "[[TC]]/nan2008/el{{/|\\\\}}crtend.o"
493*67e74705SXin Li // CHECK-EL-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/nan2008/el/usr/lib/../lib{{/|\\\\}}crtn.o"
494*67e74705SXin Li //
495*67e74705SXin Li // = Little-endian, hard float, uclibc, nan2008
496*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
497*67e74705SXin Li // RUN:     --target=mipsel-linux-gnu -muclibc -mnan=2008 \
498*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
499*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-UC-HF-NAN %s
500*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "-internal-isystem"
501*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
502*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "-internal-isystem"
503*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/uclibc/nan2008/el"
504*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "-internal-isystem"
505*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
506*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "-internal-externc-isystem"
507*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "[[TC]]/include"
508*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "-internal-externc-isystem"
509*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/usr/include"
510*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "{{.*}}ld{{(.exe)?}}"
511*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/el"
512*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "-dynamic-linker" "/lib/ld-uClibc-mipsn8.so.0"
513*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/el/usr/lib/../lib{{/|\\\\}}crt1.o"
514*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/el/usr/lib/../lib{{/|\\\\}}crti.o"
515*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "[[TC]]/uclibc/nan2008/el{{/|\\\\}}crtbegin.o"
516*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "-L[[TC]]/uclibc/nan2008/el"
517*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/uclibc/nan2008/el"
518*67e74705SXin Li // CHECK-EL-UC-HF-NAN-NOT: "-L[[TC]]"
519*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/el/lib/../lib"
520*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/el/usr/lib/../lib"
521*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "[[TC]]/uclibc/nan2008/el{{/|\\\\}}crtend.o"
522*67e74705SXin Li // CHECK-EL-UC-HF-NAN: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/nan2008/el/usr/lib/../lib{{/|\\\\}}crtn.o"
523*67e74705SXin Li //
524*67e74705SXin Li // = Little-endian, soft float
525*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
526*67e74705SXin Li // RUN:     --target=mipsel-linux-gnu -mfloat-abi=soft \
527*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
528*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-SF-32 %s
529*67e74705SXin Li // CHECK-EL-SF-32: "-internal-isystem"
530*67e74705SXin Li // CHECK-EL-SF-32: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
531*67e74705SXin Li // CHECK-EL-SF-32: "-internal-isystem"
532*67e74705SXin Li // CHECK-EL-SF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/soft-float/el"
533*67e74705SXin Li // CHECK-EL-SF-32: "-internal-isystem"
534*67e74705SXin Li // CHECK-EL-SF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
535*67e74705SXin Li // CHECK-EL-SF-32: "-internal-externc-isystem"
536*67e74705SXin Li // CHECK-EL-SF-32: "[[TC]]/include"
537*67e74705SXin Li // CHECK-EL-SF-32: "-internal-externc-isystem"
538*67e74705SXin Li // CHECK-EL-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
539*67e74705SXin Li // CHECK-EL-SF-32: "{{.*}}ld{{(.exe)?}}"
540*67e74705SXin Li // CHECK-EL-SF-32: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el"
541*67e74705SXin Li // CHECK-EL-SF-32: "-dynamic-linker" "/lib/ld.so.1"
542*67e74705SXin Li // CHECK-EL-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el/usr/lib/../lib{{/|\\\\}}crt1.o"
543*67e74705SXin Li // CHECK-EL-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el/usr/lib/../lib{{/|\\\\}}crti.o"
544*67e74705SXin Li // CHECK-EL-SF-32: "[[TC]]/soft-float/el{{/|\\\\}}crtbegin.o"
545*67e74705SXin Li // CHECK-EL-SF-32: "-L[[TC]]/soft-float/el"
546*67e74705SXin Li // CHECK-EL-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/soft-float/el"
547*67e74705SXin Li // CHECK-EL-SF-32-NOT: "-L[[TC]]"
548*67e74705SXin Li // CHECK-EL-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el/lib/../lib"
549*67e74705SXin Li // CHECK-EL-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el/usr/lib/../lib"
550*67e74705SXin Li // CHECK-EL-SF-32: "[[TC]]/soft-float/el{{/|\\\\}}crtend.o"
551*67e74705SXin Li // CHECK-EL-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el/usr/lib/../lib{{/|\\\\}}crtn.o"
552*67e74705SXin Li //
553*67e74705SXin Li // = Little-endian, soft float, uclibc
554*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
555*67e74705SXin Li // RUN:     --target=mipsel-linux-gnu -mfloat-abi=soft -muclibc \
556*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
557*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-UC-SF-32 %s
558*67e74705SXin Li // CHECK-EL-UC-SF-32: "-internal-isystem"
559*67e74705SXin Li // CHECK-EL-UC-SF-32: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
560*67e74705SXin Li // CHECK-EL-UC-SF-32: "-internal-isystem"
561*67e74705SXin Li // CHECK-EL-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/uclibc/soft-float/el"
562*67e74705SXin Li // CHECK-EL-UC-SF-32: "-internal-isystem"
563*67e74705SXin Li // CHECK-EL-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
564*67e74705SXin Li // CHECK-EL-UC-SF-32: "-internal-externc-isystem"
565*67e74705SXin Li // CHECK-EL-UC-SF-32: "[[TC]]/include"
566*67e74705SXin Li // CHECK-EL-UC-SF-32: "-internal-externc-isystem"
567*67e74705SXin Li // CHECK-EL-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/usr/include"
568*67e74705SXin Li // CHECK-EL-UC-SF-32: "{{.*}}ld{{(.exe)?}}"
569*67e74705SXin Li // CHECK-EL-UC-SF-32: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/el"
570*67e74705SXin Li // CHECK-EL-UC-SF-32: "-dynamic-linker" "/lib/ld-uClibc.so.0"
571*67e74705SXin Li // CHECK-EL-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/el/usr/lib/../lib{{/|\\\\}}crt1.o"
572*67e74705SXin Li // CHECK-EL-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/el/usr/lib/../lib{{/|\\\\}}crti.o"
573*67e74705SXin Li // CHECK-EL-UC-SF-32: "[[TC]]/uclibc/soft-float/el{{/|\\\\}}crtbegin.o"
574*67e74705SXin Li // CHECK-EL-UC-SF-32: "-L[[TC]]/uclibc/soft-float/el"
575*67e74705SXin Li // CHECK-EL-UC-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/uclibc/soft-float/el"
576*67e74705SXin Li // CHECK-EL-UC-SF-32-NOT: "-L[[TC]]"
577*67e74705SXin Li // CHECK-EL-UC-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/el/lib/../lib"
578*67e74705SXin Li // CHECK-EL-UC-SF-32: "-L[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/el/usr/lib/../lib"
579*67e74705SXin Li // CHECK-EL-UC-SF-32: "[[TC]]/uclibc/soft-float/el{{/|\\\\}}crtend.o"
580*67e74705SXin Li // CHECK-EL-UC-SF-32: "[[TC]]/../../../../mips-linux-gnu/libc/uclibc/soft-float/el/usr/lib/../lib{{/|\\\\}}crtn.o"
581*67e74705SXin Li //
582*67e74705SXin Li // = Little-endian, soft float, mips16
583*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
584*67e74705SXin Li // RUN:     --target=mipsel-linux-gnu -mips16 -msoft-float \
585*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
586*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-SF-16 %s
587*67e74705SXin Li // CHECK-EL-SF-16: "-internal-isystem"
588*67e74705SXin Li // CHECK-EL-SF-16: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
589*67e74705SXin Li // CHECK-EL-SF-16: "-internal-isystem"
590*67e74705SXin Li // CHECK-EL-SF-16: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/mips16/soft-float/el"
591*67e74705SXin Li // CHECK-EL-SF-16: "-internal-isystem"
592*67e74705SXin Li // CHECK-EL-SF-16: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
593*67e74705SXin Li // CHECK-EL-SF-16: "-internal-externc-isystem"
594*67e74705SXin Li // CHECK-EL-SF-16: "[[TC]]/include"
595*67e74705SXin Li // CHECK-EL-SF-16: "-internal-externc-isystem"
596*67e74705SXin Li // CHECK-EL-SF-16: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
597*67e74705SXin Li // CHECK-EL-SF-16: "{{.*}}ld{{(.exe)?}}"
598*67e74705SXin Li // CHECK-EL-SF-16: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/el"
599*67e74705SXin Li // CHECK-EL-SF-16: "-dynamic-linker" "/lib/ld.so.1"
600*67e74705SXin Li // CHECK-EL-SF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/el/usr/lib/../lib{{/|\\\\}}crt1.o"
601*67e74705SXin Li // CHECK-EL-SF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/el/usr/lib/../lib{{/|\\\\}}crti.o"
602*67e74705SXin Li // CHECK-EL-SF-16: "[[TC]]/mips16/soft-float/el{{/|\\\\}}crtbegin.o"
603*67e74705SXin Li // CHECK-EL-SF-16: "-L[[TC]]/mips16/soft-float/el"
604*67e74705SXin Li // CHECK-EL-SF-16: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/mips16/soft-float/el"
605*67e74705SXin Li // CHECK-EL-SF-16-NOT: "-L[[TC]]"
606*67e74705SXin Li // CHECK-EL-SF-16: "-L[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/el/lib/../lib"
607*67e74705SXin Li // CHECK-EL-SF-16: "-L[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/el/usr/lib/../lib"
608*67e74705SXin Li // CHECK-EL-SF-16: "[[TC]]/mips16/soft-float/el{{/|\\\\}}crtend.o"
609*67e74705SXin Li // CHECK-EL-SF-16: "[[TC]]/../../../../mips-linux-gnu/libc/mips16/soft-float/el/usr/lib/../lib{{/|\\\\}}crtn.o"
610*67e74705SXin Li //
611*67e74705SXin Li // = Little-endian, soft float, micromips
612*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
613*67e74705SXin Li // RUN:     --target=mipsel-linux-gnu -mmicromips -msoft-float \
614*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
615*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-SF-MICRO %s
616*67e74705SXin Li // CHECK-EL-SF-MICRO: "-internal-isystem"
617*67e74705SXin Li // CHECK-EL-SF-MICRO: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
618*67e74705SXin Li // CHECK-EL-SF-MICRO: "-internal-isystem"
619*67e74705SXin Li // CHECK-EL-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/micromips/soft-float/el"
620*67e74705SXin Li // CHECK-EL-SF-MICRO: "-internal-isystem"
621*67e74705SXin Li // CHECK-EL-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
622*67e74705SXin Li // CHECK-EL-SF-MICRO: "-internal-externc-isystem"
623*67e74705SXin Li // CHECK-EL-SF-MICRO: "[[TC]]/include"
624*67e74705SXin Li // CHECK-EL-SF-MICRO: "-internal-externc-isystem"
625*67e74705SXin Li // CHECK-EL-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
626*67e74705SXin Li // CHECK-EL-SF-MICRO: "{{.*}}ld{{(.exe)?}}"
627*67e74705SXin Li // CHECK-EL-SF-MICRO: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/el"
628*67e74705SXin Li // CHECK-EL-SF-MICRO: "-dynamic-linker" "/lib/ld.so.1"
629*67e74705SXin Li // CHECK-EL-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/el/usr/lib/../lib{{/|\\\\}}crt1.o"
630*67e74705SXin Li // CHECK-EL-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/el/usr/lib/../lib{{/|\\\\}}crti.o"
631*67e74705SXin Li // CHECK-EL-SF-MICRO: "[[TC]]/micromips/soft-float/el{{/|\\\\}}crtbegin.o"
632*67e74705SXin Li // CHECK-EL-SF-MICRO: "-L[[TC]]/micromips/soft-float/el"
633*67e74705SXin Li // CHECK-EL-SF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib/micromips/soft-float/el"
634*67e74705SXin Li // CHECK-EL-SF-MICRO-NOT: "-L[[TC]]"
635*67e74705SXin Li // CHECK-EL-SF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/el/lib/../lib"
636*67e74705SXin Li // CHECK-EL-SF-MICRO: "-L[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/el/usr/lib/../lib"
637*67e74705SXin Li // CHECK-EL-SF-MICRO: "[[TC]]/micromips/soft-float/el{{/|\\\\}}crtend.o"
638*67e74705SXin Li // CHECK-EL-SF-MICRO: "[[TC]]/../../../../mips-linux-gnu/libc/micromips/soft-float/el/usr/lib/../lib{{/|\\\\}}crtn.o"
639*67e74705SXin Li //
640*67e74705SXin Li // = Little-endian, hard float, 64-bit
641*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
642*67e74705SXin Li // RUN:     --target=mips64el-linux-gnu \
643*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
644*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-HF-64 %s
645*67e74705SXin Li // CHECK-EL-HF-64: "-internal-isystem"
646*67e74705SXin Li // CHECK-EL-HF-64: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
647*67e74705SXin Li // CHECK-EL-HF-64: "-internal-isystem"
648*67e74705SXin Li // CHECK-EL-HF-64: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/el/64"
649*67e74705SXin Li // CHECK-EL-HF-64: "-internal-isystem"
650*67e74705SXin Li // CHECK-EL-HF-64: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
651*67e74705SXin Li // CHECK-EL-HF-64: "-internal-externc-isystem"
652*67e74705SXin Li // CHECK-EL-HF-64: "[[TC]]/include"
653*67e74705SXin Li // CHECK-EL-HF-64: "-internal-externc-isystem"
654*67e74705SXin Li // CHECK-EL-HF-64: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
655*67e74705SXin Li // CHECK-EL-HF-64: "{{.*}}ld{{(.exe)?}}"
656*67e74705SXin Li // CHECK-EL-HF-64: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/el"
657*67e74705SXin Li // CHECK-EL-HF-64: "-dynamic-linker" "/lib64/ld.so.1"
658*67e74705SXin Li // CHECK-EL-HF-64: "[[TC]]/../../../../mips-linux-gnu/libc/el/usr/lib/../lib64{{/|\\\\}}crt1.o"
659*67e74705SXin Li // CHECK-EL-HF-64: "[[TC]]/../../../../mips-linux-gnu/libc/el/usr/lib/../lib64{{/|\\\\}}crti.o"
660*67e74705SXin Li // CHECK-EL-HF-64: "[[TC]]/el/64{{/|\\\\}}crtbegin.o"
661*67e74705SXin Li // CHECK-EL-HF-64: "-L[[TC]]/el/64"
662*67e74705SXin Li // CHECK-EL-HF-64: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib64/el"
663*67e74705SXin Li // CHECK-EL-HF-64: "-L[[TC]]/../../../../mips-linux-gnu/libc/el/lib/../lib64"
664*67e74705SXin Li // CHECK-EL-HF-64: "-L[[TC]]/../../../../mips-linux-gnu/libc/el/usr/lib/../lib64"
665*67e74705SXin Li // CHECK-EL-HF-64-NOT: "-L[[TC]]"
666*67e74705SXin Li // CHECK-EL-HF-64: "[[TC]]/el/64{{/|\\\\}}crtend.o"
667*67e74705SXin Li // CHECK-EL-HF-64: "[[TC]]/../../../../mips-linux-gnu/libc/el/usr/lib/../lib64{{/|\\\\}}crtn.o"
668*67e74705SXin Li //
669*67e74705SXin Li // = Little-endian, soft float, 64-bit
670*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
671*67e74705SXin Li // RUN:     --target=mips64el-linux-gnu -msoft-float \
672*67e74705SXin Li // RUN:     -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_cs_tree \
673*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-EL-SF-64 %s
674*67e74705SXin Li // CHECK-EL-SF-64: "-internal-isystem"
675*67e74705SXin Li // CHECK-EL-SF-64: "[[TC:[^"]+/lib/gcc/mips-linux-gnu/4.6.3]]/../../../../mips-linux-gnu/include/c++/4.6.3"
676*67e74705SXin Li // CHECK-EL-SF-64: "-internal-isystem"
677*67e74705SXin Li // CHECK-EL-SF-64: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/soft-float/el/64"
678*67e74705SXin Li // CHECK-EL-SF-64: "-internal-isystem"
679*67e74705SXin Li // CHECK-EL-SF-64: "[[TC]]/../../../../mips-linux-gnu/include/c++/4.6.3/backward"
680*67e74705SXin Li // CHECK-EL-SF-64: "-internal-externc-isystem"
681*67e74705SXin Li // CHECK-EL-SF-64: "[[TC]]/include"
682*67e74705SXin Li // CHECK-EL-SF-64: "-internal-externc-isystem"
683*67e74705SXin Li // CHECK-EL-SF-64: "[[TC]]/../../../../mips-linux-gnu/libc/usr/include"
684*67e74705SXin Li // CHECK-EL-SF-64: "{{.*}}ld{{(.exe)?}}"
685*67e74705SXin Li // CHECK-EL-SF-64: "--sysroot=[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el"
686*67e74705SXin Li // CHECK-EL-SF-64: "-dynamic-linker" "/lib64/ld.so.1"
687*67e74705SXin Li // CHECK-EL-SF-64: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el/usr/lib/../lib64{{/|\\\\}}crt1.o"
688*67e74705SXin Li // CHECK-EL-SF-64: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el/usr/lib/../lib64{{/|\\\\}}crti.o"
689*67e74705SXin Li // CHECK-EL-SF-64: "[[TC]]/soft-float/el/64{{/|\\\\}}crtbegin.o"
690*67e74705SXin Li // CHECK-EL-SF-64: "-L[[TC]]/soft-float/el/64"
691*67e74705SXin Li // CHECK-EL-SF-64: "-L[[TC]]/../../../../mips-linux-gnu/lib/../lib64/soft-float/el"
692*67e74705SXin Li // CHECK-EL-SF-64: "-L[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el/lib/../lib64"
693*67e74705SXin Li // CHECK-EL-SF-64: "-L[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el/usr/lib/../lib64"
694*67e74705SXin Li // CHECK-EL-SF-64-NOT: "-L[[TC]]"
695*67e74705SXin Li // CHECK-EL-SF-64: "[[TC]]/soft-float/el/64{{/|\\\\}}crtend.o"
696*67e74705SXin Li // CHECK-EL-SF-64: "[[TC]]/../../../../mips-linux-gnu/libc/soft-float/el/usr/lib/../lib64{{/|\\\\}}crtn.o"
697