1# Multilib configuration for csky*-elf.
2#
3# Copyright (C) 2018-2021 Free Software Foundation, Inc.
4# Contributed by C-SKY Microsystems and Mentor Graphics.
5#
6# This file is part of GCC.
7#
8# GCC is free software; you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation; either version 3, or (at your option)
11# any later version.
12#
13# GCC is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with GCC; see the file COPYING3.  If not see
20# <http://www.gnu.org/licenses/>.
21
22# Endiannesses.
23MULTILIB_OPTIONS      = mlittle-endian/mbig-endian
24MULTILIB_DIRNAMES     = little big
25MULTILIB_MATCHES      = mlittle-endian=EL
26MULTILIB_MATCHES      = mbig-endian=EB
27MULTILIB_EXCEPTIONS   =
28
29# Arch variants.
30MULTILIB_OPTIONS     += mcpu=ck802/mcpu=ck801/mcpu=ck803f/mcpu=ck807f/mcpu=ck810f
31MULTILIB_DIRNAMES    += ck802 ck801 ck803 ck807 ck810
32
33# For arch ck802.
34MULTILIB_MATCHES     += mcpu?ck802=march?ck802
35MULTILIB_MATCHES     += mcpu?ck802=mcpu?ck802t
36MULTILIB_MATCHES     += mcpu?ck802=mcpu?ck802j
37
38# For arch ck801.
39MULTILIB_MATCHES     += mcpu?ck801=march?ck801
40MULTILIB_MATCHES     += mcpu?ck801=mcpu?ck801t
41
42# For arch ck803.
43MULTILIB_MATCHES     += mcpu?ck803f=march?ck803
44MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803
45MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803fh
46MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803h
47MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803t
48MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803ht
49MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803e
50MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803eh
51MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803et
52MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803eht
53MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803ef
54MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803efh
55MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803ft
56MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803eft
57MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803efht
58MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803r1
59MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803fr1
60MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803fhr1
61MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803hr1
62MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803tr1
63MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803htr1
64MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803er1
65MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803ehr1
66MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803etr1
67MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803ehtr1
68MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803efr1
69MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803efhr1
70MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803ftr1
71MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803eftr1
72MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803efhtr1
73
74# For arch ck803s.
75MULTILIB_MATCHES     += mcpu?ck803f=march?ck803s
76MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803s
77MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803st
78MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803se
79MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803sf
80MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803sef
81MULTILIB_MATCHES     += mcpu?ck803f=mcpu?ck803seft
82
83# For arch ck810.
84MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810e
85MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810et
86MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810ef
87MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810eft
88MULTILIB_MATCHES     += mcpu?ck810f=march?ck810
89MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810
90MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810v
91MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810t
92MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810vf
93MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810tv
94MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810ft
95MULTILIB_MATCHES     += mcpu?ck810f=mcpu?ck810ftv
96
97# For arch ck807.
98MULTILIB_MATCHES     += mcpu?ck807f=march?ck807e
99MULTILIB_MATCHES     += mcpu?ck807f=march?ck807ef
100MULTILIB_MATCHES     += mcpu?ck807f=march?ck807
101MULTILIB_MATCHES     += mcpu?ck807f=mcpu?ck807
102
103# For option -mfloat-abi=
104MULTILIB_OPTIONS     += mfloat-abi=soft/mfloat-abi=softfp/mfloat-abi=hard
105MULTILIB_DIRNAMES    += soft soft-fp hard-fp
106
107MULTILIB_EXCEPTIONS  += *mcpu=ck801/*mfloat-abi=softfp*
108MULTILIB_EXCEPTIONS  += *mcpu=ck802/*mfloat-abi=softfp*
109MULTILIB_EXCEPTIONS  += *mcpu=ck801/*mfloat-abi=hard*
110MULTILIB_EXCEPTIONS  += *mcpu=ck802/*mfloat-abi=hard*
111