1 | // REQUIRES: mips-registered-target |
2 | |
3 | // Check frontend and linker invocations on the IMG MIPS toolchain. |
4 | // |
5 | // = Big-endian, mips32r6 |
6 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
7 | // RUN: --target=mips-img-linux-gnu -mips32r6 \ |
8 | // RUN: -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_img_tree \ |
9 | // RUN: | FileCheck --check-prefix=CHECK-BE-32R6 %s |
10 | // CHECK-BE-32R6: "-internal-isystem" |
11 | // CHECK-BE-32R6: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.0]]/../../../../mips-img-linux-gnu/include/c++/4.9.0" |
12 | // CHECK-BE-32R6: "-internal-isystem" |
13 | // CHECK-BE-32R6: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/mips-img-linux-gnu" |
14 | // CHECK-BE-32R6: "-internal-isystem" |
15 | // CHECK-BE-32R6: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/backward" |
16 | // CHECK-BE-32R6: "-internal-externc-isystem" |
17 | // CHECK-BE-32R6: "[[TC]]/include" |
18 | // CHECK-BE-32R6: "-internal-externc-isystem" |
19 | // CHECK-BE-32R6: "[[TC]]/../../../../sysroot/usr/include" |
20 | // CHECK-BE-32R6: "{{.*}}ld{{(.exe)?}}" |
21 | // CHECK-BE-32R6: "--sysroot=[[TC]]/../../../../sysroot" |
22 | // CHECK-BE-32R6: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" |
23 | // CHECK-BE-32R6: "[[TC]]/../../../../sysroot/usr/lib/../lib{{/|\\\\}}crt1.o" |
24 | // CHECK-BE-32R6: "[[TC]]/../../../../sysroot/usr/lib/../lib{{/|\\\\}}crti.o" |
25 | // CHECK-BE-32R6: "[[TC]]{{/|\\\\}}crtbegin.o" |
26 | // CHECK-BE-32R6: "-L[[TC]]" |
27 | // CHECK-BE-32R6: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/../lib" |
28 | // CHECK-BE-32R6: "-L[[TC]]/../../../../sysroot/usr/lib/../lib" |
29 | // CHECK-BE-32R6: "[[TC]]{{/|\\\\}}crtend.o" |
30 | // CHECK-BE-32R6: "[[TC]]/../../../../sysroot/usr/lib/../lib{{/|\\\\}}crtn.o" |
31 | // |
32 | // = Little-endian, mips32r6 |
33 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
34 | // RUN: --target=mips-img-linux-gnu -mips32r6 -EL \ |
35 | // RUN: -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_img_tree \ |
36 | // RUN: | FileCheck --check-prefix=CHECK-LE-32R6 %s |
37 | // CHECK-LE-32R6: "-internal-isystem" |
38 | // CHECK-LE-32R6: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.0]]/../../../../mips-img-linux-gnu/include/c++/4.9.0" |
39 | // CHECK-LE-32R6: "-internal-isystem" |
40 | // CHECK-LE-32R6: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/mips-img-linux-gnu/el" |
41 | // CHECK-LE-32R6: "-internal-isystem" |
42 | // CHECK-LE-32R6: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/backward" |
43 | // CHECK-LE-32R6: "-internal-externc-isystem" |
44 | // CHECK-LE-32R6: "[[TC]]/include" |
45 | // CHECK-LE-32R6: "-internal-externc-isystem" |
46 | // CHECK-LE-32R6: "[[TC]]/../../../../sysroot/usr/include" |
47 | // CHECK-LE-32R6: "{{.*}}ld{{(.exe)?}}" |
48 | // CHECK-LE-32R6: "--sysroot=[[TC]]/../../../../sysroot/el" |
49 | // CHECK-LE-32R6: "-dynamic-linker" "/lib/ld-linux-mipsn8.so.1" |
50 | // CHECK-LE-32R6: "[[TC]]/../../../../sysroot/el/usr/lib/../lib{{/|\\\\}}crt1.o" |
51 | // CHECK-LE-32R6: "[[TC]]/../../../../sysroot/el/usr/lib/../lib{{/|\\\\}}crti.o" |
52 | // CHECK-LE-32R6: "[[TC]]/el{{/|\\\\}}crtbegin.o" |
53 | // CHECK-LE-32R6: "-L[[TC]]/el" |
54 | // CHECK-LE-32R6: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/../lib/el" |
55 | // CHECK-LE-32R6: "-L[[TC]]/../../../../sysroot/el/usr/lib/../lib" |
56 | // CHECK-LE-32R6: "[[TC]]/el{{/|\\\\}}crtend.o" |
57 | // CHECK-LE-32R6: "[[TC]]/../../../../sysroot/el/usr/lib/../lib{{/|\\\\}}crtn.o" |
58 | // |
59 | // = Big-endian, mips64r6, N32 |
60 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
61 | // RUN: --target=mips64-img-linux-gnu -mips64r6 -mabi=n32 \ |
62 | // RUN: -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_img_tree \ |
63 | // RUN: | FileCheck --check-prefix=CHECK-BE-64R6-N32 %s |
64 | // CHECK-BE-64R6-N32: "-internal-isystem" |
65 | // CHECK-BE-64R6-N32: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.0]]/../../../../mips-img-linux-gnu/include/c++/4.9.0" |
66 | // CHECK-BE-64R6-N32: "-internal-isystem" |
67 | // CHECK-BE-64R6-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/mips-img-linux-gnu/mips64r6" |
68 | // CHECK-BE-64R6-N32: "-internal-isystem" |
69 | // CHECK-BE-64R6-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/backward" |
70 | // CHECK-BE-64R6-N32: "-internal-externc-isystem" |
71 | // CHECK-BE-64R6-N32: "[[TC]]/include" |
72 | // CHECK-BE-64R6-N32: "-internal-externc-isystem" |
73 | // CHECK-BE-64R6-N32: "[[TC]]/../../../../sysroot/usr/include" |
74 | // CHECK-BE-64R6-N32: "{{.*}}ld{{(.exe)?}}" |
75 | // CHECK-BE-64R6-N32: "--sysroot=[[TC]]/../../../../sysroot/mips64r6" |
76 | // CHECK-BE-64R6-N32: "-dynamic-linker" "/lib32/ld-linux-mipsn8.so.1" |
77 | // CHECK-BE-64R6-N32: "[[TC]]/../../../../sysroot/mips64r6/usr/lib{{/|\\\\}}crt1.o" |
78 | // CHECK-BE-64R6-N32: "[[TC]]/../../../../sysroot/mips64r6/usr/lib{{/|\\\\}}crti.o" |
79 | // CHECK-BE-64R6-N32: "[[TC]]/mips64r6{{/|\\\\}}crtbegin.o" |
80 | // CHECK-BE-64R6-N32: "-L[[TC]]/mips64r6" |
81 | // CHECK-BE-64R6-N32: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips64r6" |
82 | // CHECK-BE-64R6-N32: "-L[[TC]]/../../../../sysroot/mips64r6/usr/lib" |
83 | // CHECK-BE-64R6-N32: "[[TC]]/mips64r6{{/|\\\\}}crtend.o" |
84 | // CHECK-BE-64R6-N32: "[[TC]]/../../../../sysroot/mips64r6/usr/lib{{/|\\\\}}crtn.o" |
85 | // |
86 | // = Little-endian, mips64r6, N32 |
87 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
88 | // RUN: --target=mips64-img-linux-gnu -mips64r6 -EL -mabi=n32 \ |
89 | // RUN: -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_img_tree \ |
90 | // RUN: | FileCheck --check-prefix=CHECK-LE-64R6-N32 %s |
91 | // CHECK-LE-64R6-N32: "-internal-isystem" |
92 | // CHECK-LE-64R6-N32: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.0]]/../../../../mips-img-linux-gnu/include/c++/4.9.0" |
93 | // CHECK-LE-64R6-N32: "-internal-isystem" |
94 | // CHECK-LE-64R6-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/mips-img-linux-gnu/mips64r6/el" |
95 | // CHECK-LE-64R6-N32: "-internal-isystem" |
96 | // CHECK-LE-64R6-N32: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/backward" |
97 | // CHECK-LE-64R6-N32: "-internal-externc-isystem" |
98 | // CHECK-LE-64R6-N32: "[[TC]]/include" |
99 | // CHECK-LE-64R6-N32: "-internal-externc-isystem" |
100 | // CHECK-LE-64R6-N32: "[[TC]]/../../../../sysroot/usr/include" |
101 | // CHECK-LE-64R6-N32: "{{.*}}ld{{(.exe)?}}" |
102 | // CHECK-LE-64R6-N32: "--sysroot=[[TC]]/../../../../sysroot/mips64r6/el" |
103 | // CHECK-LE-64R6-N32: "-dynamic-linker" "/lib32/ld-linux-mipsn8.so.1" |
104 | // CHECK-LE-64R6-N32: "[[TC]]/../../../../sysroot/mips64r6/el/usr/lib{{/|\\\\}}crt1.o" |
105 | // CHECK-LE-64R6-N32: "[[TC]]/../../../../sysroot/mips64r6/el/usr/lib{{/|\\\\}}crti.o" |
106 | // CHECK-LE-64R6-N32: "[[TC]]/mips64r6/el{{/|\\\\}}crtbegin.o" |
107 | // CHECK-LE-64R6-N32: "-L[[TC]]/mips64r6/el" |
108 | // CHECK-LE-64R6-N32: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips64r6/el" |
109 | // CHECK-LE-64R6-N32: "-L[[TC]]/../../../../sysroot/mips64r6/el/usr/lib" |
110 | // CHECK-LE-64R6-N32: "[[TC]]/mips64r6/el{{/|\\\\}}crtend.o" |
111 | // CHECK-LE-64R6-N32: "[[TC]]/../../../../sysroot/mips64r6/el/usr/lib{{/|\\\\}}crtn.o" |
112 | // |
113 | // = Big-endian, mips64r6, N64 |
114 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
115 | // RUN: --target=mips64-img-linux-gnu -mips64r6 -mabi=64 \ |
116 | // RUN: -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_img_tree \ |
117 | // RUN: | FileCheck --check-prefix=CHECK-BE-64R6-N64 %s |
118 | // CHECK-BE-64R6-N64: "-internal-isystem" |
119 | // CHECK-BE-64R6-N64: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.0]]/../../../../mips-img-linux-gnu/include/c++/4.9.0" |
120 | // CHECK-BE-64R6-N64: "-internal-isystem" |
121 | // CHECK-BE-64R6-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/mips-img-linux-gnu/mips64r6/64" |
122 | // CHECK-BE-64R6-N64: "-internal-isystem" |
123 | // CHECK-BE-64R6-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/backward" |
124 | // CHECK-BE-64R6-N64: "-internal-externc-isystem" |
125 | // CHECK-BE-64R6-N64: "[[TC]]/include" |
126 | // CHECK-BE-64R6-N64: "-internal-externc-isystem" |
127 | // CHECK-BE-64R6-N64: "[[TC]]/../../../../sysroot/usr/include" |
128 | // CHECK-BE-64R6-N64: "{{.*}}ld{{(.exe)?}}" |
129 | // CHECK-BE-64R6-N64: "--sysroot=[[TC]]/../../../../sysroot/mips64r6/64" |
130 | // CHECK-BE-64R6-N64: "-dynamic-linker" "/lib64/ld-linux-mipsn8.so.1" |
131 | // CHECK-BE-64R6-N64: "[[TC]]/../../../../sysroot/mips64r6/64/usr/lib{{/|\\\\}}crt1.o" |
132 | // CHECK-BE-64R6-N64: "[[TC]]/../../../../sysroot/mips64r6/64/usr/lib{{/|\\\\}}crti.o" |
133 | // CHECK-BE-64R6-N64: "[[TC]]/mips64r6/64{{/|\\\\}}crtbegin.o" |
134 | // CHECK-BE-64R6-N64: "-L[[TC]]/mips64r6/64" |
135 | // CHECK-BE-64R6-N64: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips64r6/64" |
136 | // CHECK-BE-64R6-N64: "-L[[TC]]/../../../../sysroot/mips64r6/64/usr/lib" |
137 | // CHECK-BE-64R6-N64: "[[TC]]/mips64r6/64{{/|\\\\}}crtend.o" |
138 | // CHECK-BE-64R6-N64: "[[TC]]/../../../../sysroot/mips64r6/64/usr/lib{{/|\\\\}}crtn.o" |
139 | // |
140 | // = Little-endian, mips64r6, N64 |
141 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
142 | // RUN: --target=mips64-img-linux-gnu -mips64r6 -EL -mabi=64 \ |
143 | // RUN: -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/mips_img_tree \ |
144 | // RUN: | FileCheck --check-prefix=CHECK-LE-64R6-N64 %s |
145 | // CHECK-LE-64R6-N64: "-internal-isystem" |
146 | // CHECK-LE-64R6-N64: "[[TC:[^"]+/lib/gcc/mips-img-linux-gnu/4.9.0]]/../../../../mips-img-linux-gnu/include/c++/4.9.0" |
147 | // CHECK-LE-64R6-N64: "-internal-isystem" |
148 | // CHECK-LE-64R6-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/mips-img-linux-gnu/mips64r6/64/el" |
149 | // CHECK-LE-64R6-N64: "-internal-isystem" |
150 | // CHECK-LE-64R6-N64: "[[TC]]/../../../../mips-img-linux-gnu/include/c++/4.9.0/backward" |
151 | // CHECK-LE-64R6-N64: "-internal-externc-isystem" |
152 | // CHECK-LE-64R6-N64: "[[TC]]/include" |
153 | // CHECK-LE-64R6-N64: "-internal-externc-isystem" |
154 | // CHECK-LE-64R6-N64: "[[TC]]/../../../../sysroot/usr/include" |
155 | // CHECK-LE-64R6-N64: "{{.*}}ld{{(.exe)?}}" |
156 | // CHECK-LE-64R6-N64: "--sysroot=[[TC]]/../../../../sysroot/mips64r6/64/el" |
157 | // CHECK-LE-64R6-N64: "-dynamic-linker" "/lib64/ld-linux-mipsn8.so.1" |
158 | // CHECK-LE-64R6-N64: "[[TC]]/../../../../sysroot/mips64r6/64/el/usr/lib{{/|\\\\}}crt1.o" |
159 | // CHECK-LE-64R6-N64: "[[TC]]/../../../../sysroot/mips64r6/64/el/usr/lib{{/|\\\\}}crti.o" |
160 | // CHECK-LE-64R6-N64: "[[TC]]/mips64r6/64/el{{/|\\\\}}crtbegin.o" |
161 | // CHECK-LE-64R6-N64: "-L[[TC]]/mips64r6/64/el" |
162 | // CHECK-LE-64R6-N64: "-L[[TC]]/../../../../mips-img-linux-gnu/lib/mips64r6/64/el" |
163 | // CHECK-LE-64R6-N64: "-L[[TC]]/../../../../sysroot/mips64r6/64/el/usr/lib" |
164 | // CHECK-LE-64R6-N64: "[[TC]]/mips64r6/64/el{{/|\\\\}}crtend.o" |
165 | // CHECK-LE-64R6-N64: "[[TC]]/../../../../sysroot/mips64r6/64/el/usr/lib{{/|\\\\}}crtn.o" |
166 | |