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