3 from catalyst_support import *
5 class generic_mips(builder.generic):
6 "Abstract base class for all mips builders [Big-endian]"
7 def __init__(self,myspec):
8 builder.generic.__init__(self,myspec)
9 self.settings["CHROOT"]="chroot"
10 self.settings["CHOST"]="mips-unknown-linux-gnu"
12 class generic_mipsel(builder.generic):
13 "Abstract base class for all mipsel builders [Little-endian]"
14 def __init__(self,myspec):
15 builder.generic.__init__(self,myspec)
16 self.settings["CHROOT"]="chroot"
17 self.settings["CHOST"]="mipsel-unknown-linux-gnu"
19 class generic_mips64(builder.generic):
20 "Abstract base class for all mips64 builders [Big-endian]"
21 def __init__(self,myspec):
22 builder.generic.__init__(self,myspec)
23 self.settings["CHROOT"]="chroot"
24 self.settings["CHOST"]="mips64-unknown-linux-gnu"
26 class generic_mips64el(builder.generic):
27 "Abstract base class for all mips64el builders [Little-endian]"
28 def __init__(self,myspec):
29 builder.generic.__init__(self,myspec)
30 self.settings["CHROOT"]="chroot"
31 self.settings["CHOST"]="mips64el-unknown-linux-gnu"
33 class arch_mips1(generic_mips):
34 "Builder class for MIPS I [Big-endian]"
35 def __init__(self,myspec):
36 generic_mips.__init__(self,myspec)
37 self.settings["CFLAGS"]="-O2 -march=mips1 -mabi=32 -mplt -pipe"
39 class arch_mips32(generic_mips):
40 "Builder class for MIPS 32 [Big-endian]"
41 def __init__(self,myspec):
42 generic_mips.__init__(self,myspec)
43 self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -mplt -pipe"
45 class arch_mips32_softfloat(generic_mips):
46 "Builder class for MIPS 32 [Big-endian softfloat]"
47 def __init__(self,myspec):
48 generic_mips.__init__(self,myspec)
49 self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -mplt -pipe"
50 self.settings["CHOST"]="mips-softfloat-linux-gnu"
52 class arch_mips32r2(generic_mips):
53 "Builder class for MIPS 32r2 [Big-endian]"
54 def __init__(self,myspec):
55 generic_mips.__init__(self,myspec)
56 self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
58 class arch_mips32r2_softfloat(generic_mips):
59 "Builder class for MIPS 32r2 [Big-endian softfloat]"
60 def __init__(self,myspec):
61 generic_mips.__init__(self,myspec)
62 self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
63 self.settings["CHOST"]="mips-softfloat-linux-gnu"
65 class arch_mips3(generic_mips):
66 "Builder class for MIPS III [Big-endian]"
67 def __init__(self,myspec):
68 generic_mips.__init__(self,myspec)
69 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=32 -mplt -mfix-r4000 -mfix-r4400 -pipe"
71 class arch_mips3_n32(generic_mips64):
72 "Builder class for MIPS III [Big-endian N32]"
73 def __init__(self,myspec):
74 generic_mips64.__init__(self,myspec)
75 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=n32 -mplt -mfix-r4000 -mfix-r4400 -pipe"
77 class arch_mips3_n64(generic_mips64):
78 "Builder class for MIPS III [Big-endian N64]"
79 def __init__(self,myspec):
80 generic_mips64.__init__(self,myspec)
81 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=64 -mfix-r4000 -mfix-r4400 -pipe"
83 class arch_mips3_multilib(generic_mips64):
84 "Builder class for MIPS III [Big-endian multilib]"
85 def __init__(self,myspec):
86 generic_mips64.__init__(self,myspec)
87 self.settings["CFLAGS"]="-O2 -march=mips3 -mplt -mfix-r4000 -mfix-r4400 -pipe"
89 class arch_mips4(generic_mips):
90 "Builder class for MIPS IV [Big-endian]"
91 def __init__(self,myspec):
92 generic_mips.__init__(self,myspec)
93 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=32 -mplt -pipe"
95 class arch_mips4_n32(generic_mips64):
96 "Builder class for MIPS IV [Big-endian N32]"
97 def __init__(self,myspec):
98 generic_mips64.__init__(self,myspec)
99 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=n32 -mplt -pipe"
101 class arch_mips4_n64(generic_mips64):
102 "Builder class for MIPS IV [Big-endian N64]"
103 def __init__(self,myspec):
104 generic_mips64.__init__(self,myspec)
105 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=64 -pipe"
107 class arch_mips4_multilib(generic_mips64):
108 "Builder class for MIPS IV [Big-endian multilib]"
109 def __init__(self,myspec):
110 generic_mips64.__init__(self,myspec)
111 self.settings["CFLAGS"]="-O2 -march=mips4 -mplt -pipe"
113 class arch_mips4_r10k(generic_mips):
114 "Builder class for MIPS IV R10k [Big-endian]"
115 def __init__(self,myspec):
116 generic_mips.__init__(self,myspec)
117 self.settings["CFLAGS"]="-O2 -march=r10k -mabi=32 -mplt -pipe"
119 class arch_mips4_r10k_n32(generic_mips64):
120 "Builder class for MIPS IV R10k [Big-endian N32]"
121 def __init__(self,myspec):
122 generic_mips64.__init__(self,myspec)
123 self.settings["CFLAGS"]="-O2 -march=r10k -mabi=n32 -mplt -pipe"
125 class arch_mips4_r10k_n64(generic_mips64):
126 "Builder class for MIPS IV R10k [Big-endian N64]"
127 def __init__(self,myspec):
128 generic_mips64.__init__(self,myspec)
129 self.settings["CFLAGS"]="-O2 -march=r10k -mabi=64 -pipe"
131 class arch_mips4_r10k_multilib(generic_mips64):
132 "Builder class for MIPS IV R10k [Big-endian multilib]"
133 def __init__(self,myspec):
134 generic_mips64.__init__(self,myspec)
135 self.settings["CFLAGS"]="-O2 -march=r10k -mplt -pipe"
137 class arch_mips64(generic_mips):
138 "Builder class for MIPS 64 [Big-endian]"
139 def __init__(self,myspec):
140 generic_mips.__init__(self,myspec)
141 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=32 -mplt -pipe"
143 class arch_mips64_n32(generic_mips64):
144 "Builder class for MIPS 64 [Big-endian N32]"
145 def __init__(self,myspec):
146 generic_mips64.__init__(self,myspec)
147 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=n32 -mplt -pipe"
149 class arch_mips64_n64(generic_mips64):
150 "Builder class for MIPS 64 [Big-endian N64]"
151 def __init__(self,myspec):
152 generic_mips64.__init__(self,myspec)
153 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=64 -pipe"
155 class arch_mips64_multilib(generic_mips64):
156 "Builder class for MIPS 64 [Big-endian multilib]"
157 def __init__(self,myspec):
158 generic_mips64.__init__(self,myspec)
159 self.settings["CFLAGS"]="-O2 -march=mips64 -mplt -pipe"
161 class arch_mips64r2(generic_mips):
162 "Builder class for MIPS 64r2 [Big-endian]"
163 def __init__(self,myspec):
164 generic_mips.__init__(self,myspec)
165 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=32 -mplt -pipe"
167 class arch_mips64r2_n32(generic_mips64):
168 "Builder class for MIPS 64r2 [Big-endian N32]"
169 def __init__(self,myspec):
170 generic_mips64.__init__(self,myspec)
171 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=n32 -mplt -pipe"
173 class arch_mips64r2_n64(generic_mips64):
174 "Builder class for MIPS 64r2 [Big-endian N64]"
175 def __init__(self,myspec):
176 generic_mips64.__init__(self,myspec)
177 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=64 -pipe"
179 class arch_mips64r2_multilib(generic_mips64):
180 "Builder class for MIPS 64r2 [Big-endian multilib]"
181 def __init__(self,myspec):
182 generic_mips64.__init__(self,myspec)
183 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mplt -pipe"
185 class arch_mipsel1(generic_mipsel):
186 "Builder class for MIPS I [Little-endian]"
187 def __init__(self,myspec):
188 generic_mipsel.__init__(self,myspec)
189 self.settings["CFLAGS"]="-O2 -march=mips1 -mabi=32 -mplt -pipe"
191 class arch_mips32el(generic_mipsel):
192 "Builder class for MIPS 32 [Little-endian]"
193 def __init__(self,myspec):
194 generic_mipsel.__init__(self,myspec)
195 self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -mplt -pipe"
197 class arch_mips32el_softfloat(generic_mipsel):
198 "Builder class for MIPS 32 [Little-endian softfloat]"
199 def __init__(self,myspec):
200 generic_mipsel.__init__(self,myspec)
201 self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -mplt -pipe"
202 self.settings["CHOST"]="mipsel-softfloat-linux-gnu"
204 class arch_mips32r2el(generic_mipsel):
205 "Builder class for MIPS 32r2 [Little-endian]"
206 def __init__(self,myspec):
207 generic_mipsel.__init__(self,myspec)
208 self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
210 class arch_mips32r2el_softfloat(generic_mipsel):
211 "Builder class for MIPS 32r2 [Little-endian softfloat]"
212 def __init__(self,myspec):
213 generic_mipsel.__init__(self,myspec)
214 self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
215 self.settings["CHOST"]="mipsel-softfloat-linux-gnu"
217 class arch_mipsel3(generic_mipsel):
218 "Builder class for MIPS III [Little-endian]"
219 def __init__(self,myspec):
220 generic_mipsel.__init__(self,myspec)
221 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
223 class arch_mipsel3_n32(generic_mips64el):
224 "Builder class for MIPS III [Little-endian N32]"
225 def __init__(self,myspec):
226 generic_mips64el.__init__(self,myspec)
227 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=n32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
229 class arch_mipsel3_n64(generic_mips64el):
230 "Builder class for MIPS III [Little-endian N64]"
231 def __init__(self,myspec):
232 generic_mips64el.__init__(self,myspec)
233 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=64 -Wa,-mfix-loongson2f-nop -pipe"
235 class arch_mipsel3_multilib(generic_mips64el):
236 "Builder class for MIPS III [Little-endian multilib]"
237 def __init__(self,myspec):
238 generic_mips64el.__init__(self,myspec)
239 self.settings["CFLAGS"]="-O2 -march=mips3 -mplt -Wa,-mfix-loongson2f-nop -pipe"
241 class arch_loongson2e(generic_mipsel):
242 "Builder class for Loongson 2E [Little-endian]"
243 def __init__(self,myspec):
244 generic_mipsel.__init__(self,myspec)
245 self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=32 -mplt -pipe"
247 class arch_loongson2e_n32(generic_mips64el):
248 "Builder class for Loongson 2E [Little-endian N32]"
249 def __init__(self,myspec):
250 generic_mips64el.__init__(self,myspec)
251 self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=n32 -mplt -pipe"
253 class arch_loongson2e_n64(generic_mips64el):
254 "Builder class for Loongson 2E [Little-endian N64]"
255 def __init__(self,myspec):
256 generic_mips64el.__init__(self,myspec)
257 self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=64 -pipe"
259 class arch_loongson2e_multilib(generic_mips64el):
260 "Builder class for Loongson 2E [Little-endian multilib]"
261 def __init__(self,myspec):
262 generic_mips64el.__init__(self,myspec)
263 self.settings["CFLAGS"]="-O2 -march=loongson2e -mplt -pipe"
265 class arch_loongson2f(generic_mipsel):
266 "Builder class for Loongson 2F [Little-endian]"
267 def __init__(self,myspec):
268 generic_mipsel.__init__(self,myspec)
269 self.settings["CFLAGS"]="-O2 -march=loongson2f -mabi=32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
271 class arch_loongson2f_n32(generic_mips64el):
272 "Builder class for Loongson 2F [Little-endian N32]"
273 def __init__(self,myspec):
274 generic_mips64el.__init__(self,myspec)
275 self.settings["CFLAGS"]="-O2 -march=loongson2f -mabi=n32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
277 class arch_loongson2f_n64(generic_mips64el):
278 "Builder class for Loongson 2F [Little-endian N64]"
279 def __init__(self,myspec):
280 generic_mips64el.__init__(self,myspec)
281 self.settings["CFLAGS"]="-O2 -march=loongson2f -mabi=64 -Wa,-mfix-loongson2f-nop -pipe"
283 class arch_loongson2f_multilib(generic_mips64el):
284 "Builder class for Loongson 2F [Little-endian multilib]"
285 def __init__(self,myspec):
286 generic_mips64el.__init__(self,myspec)
287 self.settings["CFLAGS"]="-O2 -march=loongson2f -mplt -Wa,-mfix-loongson2f-nop -pipe"
289 class arch_mipsel4(generic_mipsel):
290 "Builder class for MIPS IV [Little-endian]"
291 def __init__(self,myspec):
292 generic_mipsel.__init__(self,myspec)
293 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=32 -mplt -pipe"
295 class arch_mipsel4_n32(generic_mips64el):
296 "Builder class for MIPS IV [Little-endian N32]"
297 def __init__(self,myspec):
298 generic_mips64el.__init__(self,myspec)
299 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=n32 -mplt -pipe"
301 class arch_mipsel4_n64(generic_mips64el):
302 "Builder class for MIPS IV [Little-endian N64]"
303 def __init__(self,myspec):
304 generic_mips64el.__init__(self,myspec)
305 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=64 -pipe"
307 class arch_mipsel4_multilib(generic_mips64el):
308 "Builder class for MIPS IV [Little-endian multilib]"
309 def __init__(self,myspec):
310 generic_mips64el.__init__(self,myspec)
311 self.settings["CFLAGS"]="-O2 -march=mips4 -mplt -pipe"
313 class arch_mips64el(generic_mipsel):
314 "Builder class for MIPS 64 [Little-endian]"
315 def __init__(self,myspec):
316 generic_mipsel.__init__(self,myspec)
317 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=32 -mplt -pipe"
319 class arch_mips64el_n32(generic_mips64el):
320 "Builder class for MIPS 64 [Little-endian N32]"
321 def __init__(self,myspec):
322 generic_mips64el.__init__(self,myspec)
323 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=n32 -mplt -pipe"
325 class arch_mips64el_n64(generic_mips64el):
326 "Builder class for MIPS 64 [Little-endian N64]"
327 def __init__(self,myspec):
328 generic_mips64el.__init__(self,myspec)
329 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=64 -pipe"
331 class arch_mips64el_multilib(generic_mips64el):
332 "Builder class for MIPS 64 [Little-endian multilib]"
333 def __init__(self,myspec):
334 generic_mips64el.__init__(self,myspec)
335 self.settings["CFLAGS"]="-O2 -march=mips64 -mplt -pipe"
337 class arch_mips64r2el(generic_mipsel):
338 "Builder class for MIPS 64r2 [Little-endian]"
339 def __init__(self,myspec):
340 generic_mipsel.__init__(self,myspec)
341 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=32 -mplt -pipe"
343 class arch_mips64r2el_n32(generic_mips64el):
344 "Builder class for MIPS 64r2 [Little-endian N32]"
345 def __init__(self,myspec):
346 generic_mips64el.__init__(self,myspec)
347 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=n32 -mplt -pipe"
349 class arch_mips64r2el_n64(generic_mips64el):
350 "Builder class for MIPS 64r2 [Little-endian N64]"
351 def __init__(self,myspec):
352 generic_mips64el.__init__(self,myspec)
353 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=64 -pipe"
355 class arch_mips64r2el_multilib(generic_mips64el):
356 "Builder class for MIPS 64r2 [Little-endian multilib]"
357 def __init__(self,myspec):
358 generic_mips64el.__init__(self,myspec)
359 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mplt -pipe"
361 class arch_loongson3a(generic_mipsel):
362 "Builder class for Loongson 3A [Little-endian]"
363 def __init__(self,myspec):
364 generic_mipsel.__init__(self,myspec)
365 self.settings["CFLAGS"]="-O2 -march=loongson3a -mabi=32 -mplt -pipe"
367 class arch_loongson3a_n32(generic_mips64el):
368 "Builder class for Loongson 3A [Little-endian N32]"
369 def __init__(self,myspec):
370 generic_mips64el.__init__(self,myspec)
371 self.settings["CFLAGS"]="-O2 -march=loongson3a -mabi=n32 -mplt -pipe"
373 class arch_loongson3a_n64(generic_mips64el):
374 "Builder class for Loongson 3A [Little-endian N64]"
375 def __init__(self,myspec):
376 generic_mips64el.__init__(self,myspec)
377 self.settings["CFLAGS"]="-O2 -march=loongson3a -mabi=64 -pipe"
379 class arch_loongson3a_multilib(generic_mips64el):
380 "Builder class for Loongson 3A [Little-endian multilib]"
381 def __init__(self,myspec):
382 generic_mips64el.__init__(self,myspec)
383 self.settings["CFLAGS"]="-O2 -march=loongson3a -mplt -pipe"
385 class arch_cobalt(generic_mipsel):
386 "Builder class for cobalt [Little-endian]"
387 def __init__(self,myspec):
388 generic_mipsel.__init__(self,myspec)
389 self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=32 -mplt -pipe"
390 self.settings["HOSTUSE"]=["cobalt"]
392 class arch_cobalt_n32(generic_mips64el):
393 "Builder class for cobalt [Little-endian N32]"
394 def __init__(self,myspec):
395 generic_mips64el.__init__(self,myspec)
396 self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=n32 -mplt -pipe"
397 self.settings["HOSTUSE"]=["cobalt"]
400 "Inform main catalyst program of the contents of this plugin."
402 "cobalt" : arch_cobalt,
403 "cobalt_n32" : arch_cobalt_n32,
405 "mips1" : arch_mips1,
406 "mips32" : arch_mips32,
407 "mips32_softfloat" : arch_mips32_softfloat,
408 "mips32r2" : arch_mips32r2,
409 "mips32r2_softfloat" : arch_mips32r2_softfloat,
410 "mips3" : arch_mips3,
411 "mips3_n32" : arch_mips3_n32,
412 "mips3_n64" : arch_mips3_n64,
413 "mips3_multilib" : arch_mips3_multilib,
414 "mips4" : arch_mips4,
415 "mips4_n32" : arch_mips4_n32,
416 "mips4_n64" : arch_mips4_n64,
417 "mips4_multilib" : arch_mips4_multilib,
418 "mips4_r10k" : arch_mips4_r10k,
419 "mips4_r10k_n32" : arch_mips4_r10k_n32,
420 "mips4_r10k_n64" : arch_mips4_r10k_n64,
421 "mips4_r10k_multilib" : arch_mips4_r10k_multilib,
422 "mips64" : arch_mips64,
423 "mips64_n32" : arch_mips64_n32,
424 "mips64_n64" : arch_mips64_n64,
425 "mips64_multilib" : arch_mips64_multilib,
426 "mips64r2" : arch_mips64r2,
427 "mips64r2_n32" : arch_mips64r2_n32,
428 "mips64r2_n64" : arch_mips64r2_n64,
429 "mips64r2_multilib" : arch_mips64r2_multilib,
430 "mipsel" : arch_mipsel1,
431 "mipsel1" : arch_mipsel1,
432 "mips32el" : arch_mips32el,
433 "mips32el_softfloat" : arch_mips32el_softfloat,
434 "mips32r2el" : arch_mips32r2el,
435 "mips32r2el_softfloat" : arch_mips32r2el_softfloat,
436 "mipsel3" : arch_mipsel3,
437 "mipsel3_n32" : arch_mipsel3_n32,
438 "mipsel3_n64" : arch_mipsel3_n64,
439 "mipsel3_multilib" : arch_mipsel3_multilib,
440 "mipsel4" : arch_mipsel4,
441 "mipsel4_n32" : arch_mipsel4_n32,
442 "mipsel4_n64" : arch_mipsel4_n64,
443 "mipsel4_multilib" : arch_mipsel4_multilib,
444 "mips64el" : arch_mips64el,
445 "mips64el_n32" : arch_mips64el_n32,
446 "mips64el_n64" : arch_mips64el_n64,
447 "mips64el_multilib" : arch_mips64el_multilib,
448 "mips64r2el" : arch_mips64r2el,
449 "mips64r2el_n32" : arch_mips64r2el_n32,
450 "mips64r2el_n64" : arch_mips64r2el_n64,
451 "mips64r2el_multilib" : arch_mips64r2el_multilib,
452 "loongson2e" : arch_loongson2e,
453 "loongson2e_n32" : arch_loongson2e_n32,
454 "loongson2e_n64" : arch_loongson2e_n64,
455 "loongson2e_multilib" : arch_loongson2e_multilib,
456 "loongson2f" : arch_loongson2f,
457 "loongson2f_n32" : arch_loongson2f_n32,
458 "loongson2f_n64" : arch_loongson2f_n64,
459 "loongson2f_multilib" : arch_loongson2f_multilib,
460 "loongson3a" : arch_loongson3a,
461 "loongson3a_n32" : arch_loongson3a_n32,
462 "loongson3a_n64" : arch_loongson3a_n64,
463 "loongson3a_multilib" : arch_loongson3a_multilib,
464 }, ("mips","mips64"))