1# BEGIN boiler-plate MIPS stuff
2
3# Don't let CTOR_LIST end up in sdata section.
4CRTSTUFF_T_CFLAGS = -G 0
5
6# We must build libgcc2.a with -G 0, in case the user wants to link
7# without the $gp register.
8TARGET_LIBGCC2_CFLAGS = -G 0
9
10LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/mips/mips16.S \
11			 $(srcdir)/config/mips/vr4120-div.S
12EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
13
14# Assemble startup files.
15$(T)crti.o: $(srcdir)/config/mips/crti.asm $(GCC_PASSES)
16	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
17	-c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/mips/crti.asm
18
19$(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
20	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
21	-c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/mips/crtn.asm
22
23# END boiler-plate
24
25# Main multilibs
26# --------------
27#
28# Endianness: EB or EL
29#
30# ABIs: mabi=32
31#	mabi=o64
32#	mabi=eabi
33#	mabi=eabi/mlong32
34#	mabi=eabi/mgp32
35#	mabi=eabi/mgp32/mlong64
36#
37# Architecture: march=vr4120 with -mfix-vr4120
38#		march=vr4130 with -mfix-vr4130 (default)
39#		march=vr5000
40#		march=vr5400
41#		march=vr5500
42#
43# Total: 2 * 6 * 5 = 60 multilibs.
44#
45#
46# Extra vr4300 multilibs
47# ----------------------
48#
49# Endianness: EB or EL
50#
51# ABI: o64
52#
53# Architecture: vr4300.
54#
55# Total: 2 * 1 * 2 = 2 multilibs.
56#
57#
58# Extra MIPS16 multilibs
59# ----------------------
60#
61# Endianness: EB or EL
62#
63# ABIs: mabi=o64
64#	mabi=eabi/mlong32
65#	mabi=eabi/mgp32
66#
67# Architecture: march=vr4120 with -mfix-vr4120
68#		march=vr4130 with -mfix-vr4130 (default)
69#
70# Total: 2 * 3 * 2 = 12 multilibs.
71MULTILIB_OPTIONS =			\
72	EL/EB				\
73	mabi=32/mabi=o64/mabi=eabi	\
74	mgp32				\
75	mlong64				\
76	mips16				\
77	mfix-vr4120/mfix-vr4130/march=vr4300/march=vr5000/march=vr5400/march=vr5500
78
79MULTILIB_DIRNAMES =	\
80	el eb		\
81	o32 o64 eabi	\
82	gp32		\
83	long64		\
84	mips16		\
85	vr4120 vr4130 vr4300 vr5000 vr5400 vr5500
86
87MULTILIB_MATCHES = EL=mel EB=meb mfix-vr4120=march?vr4120 \
88		   mfix-vr4130=march?vr4130
89
90# Assume a 41xx-series is the default: we'd need a *mips16 entry if
91# the default processor didn't support mips16.  Also assume the
92# default ABI is EABI64 -mlong32.
93MULTILIB_EXCEPTIONS =				\
94	*mabi=32/mlong64*			\
95	*mabi=32/mgp32*				\
96	*mabi=o64/mgp32*			\
97	*mabi=o64/mlong64*			\
98	*mips16/march=vr5*			\
99	*mips16/march=vr4300			\
100	$(MIPS16_EXCEPTIONS)			\
101	$(VR4300_EXCEPTIONS)
102
103MIPS16_EXCEPTIONS =				\
104	*mabi=32*mips16*			\
105	*mlong64*mips16*
106
107VR4300_EXCEPTIONS =				\
108	*mabi=32*march=vr4300			\
109	*mgp32*march=vr4300			\
110	*mlong64*march=vr4300			\
111	march=vr4300				\
112	E[LB]/march=vr4300
113