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