]>
Commit | Line | Data |
---|---|---|
cbe34bb5 | 1 | # Copyright (C) 2012-2017 Free Software Foundation, Inc. |
c9acb877 MGD |
2 | # |
3 | # This file is part of GCC. | |
4 | # | |
5 | # GCC is free software; you can redistribute it and/or modify | |
6 | # it under the terms of the GNU General Public License as published by | |
7 | # the Free Software Foundation; either version 3, or (at your option) | |
8 | # any later version. | |
9 | # | |
10 | # GCC is distributed in the hope that it will be useful, | |
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | # GNU General Public License for more details. | |
14 | # | |
15 | # You should have received a copy of the GNU General Public License | |
16 | # along with GCC; see the file COPYING3. If not see | |
17 | # <http://www.gnu.org/licenses/>. | |
18 | ||
19 | # This is a target makefile fragment that attempts to get | |
20 | # multilibs built for the range of CPU's, FPU's and ABI's that | |
21 | # are relevant for the A-profile architecture. It should | |
22 | # not be used in conjunction with another make file fragment and | |
23 | # assumes --with-arch, --with-cpu, --with-fpu, --with-float, --with-mode | |
24 | # have their default values during the configure step. We enforce | |
25 | # this during the top-level configury. | |
26 | ||
2f738ca5 | 27 | # Arch and FPU variants to build libraries with |
c9acb877 | 28 | |
2f738ca5 TP |
29 | MULTI_ARCH_OPTS_A = march=armv7-a/march=armv7ve/march=armv8-a |
30 | MULTI_ARCH_DIRS_A = v7-a v7ve v8-a | |
c9acb877 | 31 | |
2f738ca5 TP |
32 | MULTI_FPU_OPTS_A = mfpu=vfpv3-d16/mfpu=neon/mfpu=vfpv4-d16/mfpu=neon-vfpv4/mfpu=neon-fp-armv8 |
33 | MULTI_FPU_DIRS_A = fpv3 simdv1 fpv4 simdvfpv4 simdv8 | |
c9acb877 | 34 | |
c9acb877 | 35 | |
03c9d859 TP |
36 | # Option combinations to build library with |
37 | ||
38 | # Default CPU/Arch (ARM is implicitly included because it uses the default | |
39 | # multilib) | |
40 | MULTILIB_REQUIRED += mthumb | |
41 | ||
42 | # ARMv7-A | |
43 | MULTILIB_REQUIRED += *march=armv7-a | |
44 | MULTILIB_REQUIRED += *march=armv7-a/mfpu=vfpv3-d16/mfloat-abi=* | |
45 | MULTILIB_REQUIRED += *march=armv7-a/mfpu=neon/mfloat-abi=* | |
46 | ||
47 | # ARMv7VE | |
48 | MULTILIB_REQUIRED += *march=armv7ve | |
49 | MULTILIB_REQUIRED += *march=armv7ve/mfpu=vfpv4-d16/mfloat-abi=* | |
50 | MULTILIB_REQUIRED += *march=armv7ve/mfpu=neon-vfpv4/mfloat-abi=* | |
51 | ||
52 | # ARMv8-A | |
53 | MULTILIB_REQUIRED += *march=armv8-a | |
54 | MULTILIB_REQUIRED += *march=armv8-a/mfpu=neon-fp-armv8/mfloat-abi=* | |
c9acb877 | 55 | |
c9acb877 | 56 | |
2f738ca5 TP |
57 | # Matches |
58 | ||
c9acb877 | 59 | # CPU Matches |
2f738ca5 TP |
60 | MULTILIB_MATCHES += march?armv7-a=mcpu?marvell-pj4 |
61 | MULTILIB_MATCHES += march?armv7-a=mcpu?generic-armv7-a | |
c9acb877 MGD |
62 | MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a8 |
63 | MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a9 | |
64 | MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a5 | |
0ba81bbe | 65 | MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a7 |
7ac84c02 RR |
66 | MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a15 |
67 | MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a12 | |
6c7e4a18 | 68 | MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a17 |
eb6006ad | 69 | MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a15.cortex-a7 |
0f4fe895 | 70 | MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a17.cortex-a7 |
debc68ed | 71 | MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a32 |
971f13d7 | 72 | MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a35 |
c9acb877 | 73 | MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a53 |
0d78a2d4 JG |
74 | MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a57 |
75 | MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a57.cortex-a53 | |
4f2ab1e6 MW |
76 | MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a72 |
77 | MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a72.cortex-a53 | |
f9405b63 KT |
78 | MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a73 |
79 | MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a73.cortex-a35 | |
80 | MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a73.cortex-a53 | |
6480dc9d | 81 | MULTILIB_MATCHES += march?armv8-a=mcpu?exynos-m1 |
6480dc9d | 82 | MULTILIB_MATCHES += march?armv8-a=mcpu?xgene1 |
c9acb877 | 83 | |
abd5932e RR |
84 | # Arch Matches |
85 | MULTILIB_MATCHES += march?armv8-a=march?armv8-a+crc | |
df174ca3 MW |
86 | MULTILIB_MATCHES += march?armv8-a=march?armv8.1-a |
87 | MULTILIB_MATCHES += march?armv8-a=march?armv8.1-a+crc | |
4040b89a MW |
88 | MULTILIB_MATCHES += march?armv8-a=march?armv8.2-a |
89 | MULTILIB_MATCHES += march?armv8-a=march?armv8.2-a+fp16 | |
abd5932e | 90 | |
c9acb877 MGD |
91 | # FPU matches |
92 | MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3 | |
93 | MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-fp16 | |
0ba81bbe TP |
94 | MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-d16-fp16 |
95 | MULTILIB_MATCHES += mfpu?neon=mfpu?neon-fp16 | |
c9acb877 | 96 | MULTILIB_MATCHES += mfpu?vfpv4-d16=mfpu?vfpv4 |
0ba81bbe TP |
97 | MULTILIB_MATCHES += mfpu?vfpv4-d16=mfpu?fpv5-d16 |
98 | MULTILIB_MATCHES += mfpu?vfpv4-d16=mfpu?fp-armv8 | |
c9acb877 | 99 | MULTILIB_MATCHES += mfpu?neon-fp-armv8=mfpu?crypto-neon-fp-armv8 |
0c012e9b RE |
100 | MULTILIB_MATCHES += mfpu?vfp=mfpu?vfpv2 |
101 | MULTILIB_MATCHES += mfpu?neon=mfpu?neon-vfpv3 | |
c9acb877 MGD |
102 | |
103 | ||
104 | # Map all requests for vfpv3 with a later CPU to vfpv3-d16 v7-a. | |
105 | # So if new CPUs are added above at the newer architecture levels, | |
106 | # do something to map them below here. | |
107 | # We take the approach of mapping down to v7-a regardless of what | |
108 | # the fp option is if the integer architecture brings things down. | |
109 | # This applies to any similar combination at the v7ve and v8-a arch | |
110 | # levels. | |
111 | ||
eb6006ad RL |
112 | MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.hard |
113 | MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.softfp | |
c9acb877 MGD |
114 | MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.hard |
115 | MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.softfp | |
116 | MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.hard | |
117 | MULTILIB_REUSE += march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.softfp | |
c9acb877 MGD |
118 | |
119 | ||
eb6006ad RL |
120 | MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv7ve/mfpu.neon/mfloat-abi.hard |
121 | MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv7ve/mfpu.neon/mfloat-abi.softfp | |
c9acb877 MGD |
122 | MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv8-a/mfpu.neon/mfloat-abi.hard |
123 | MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv8-a/mfpu.neon/mfloat-abi.softfp | |
124 | MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.hard | |
125 | MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.softfp | |
126 | MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.hard=march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.hard | |
127 | MULTILIB_REUSE += march.armv7-a/mfpu.neon/mfloat-abi.softfp=march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.softfp | |
128 | ||
129 | ||
eb6006ad RL |
130 | MULTILIB_REUSE += march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.hard=march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.hard |
131 | MULTILIB_REUSE += march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.softfp=march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.softfp | |
c9acb877 MGD |
132 | |
133 | ||
eb6006ad RL |
134 | MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.hard |
135 | MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.softfp | |
136 | MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.hard | |
137 | MULTILIB_REUSE += march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.softfp | |
c9acb877 MGD |
138 | |
139 | ||
140 | ||
141 | # And again for mthumb. | |
142 | ||
eb6006ad RL |
143 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.hard |
144 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv7ve/mfpu.vfpv3-d16/mfloat-abi.softfp | |
c9acb877 MGD |
145 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.hard |
146 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.vfpv3-d16/mfloat-abi.softfp | |
147 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.hard | |
148 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.vfpv3-d16/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.vfpv4-d16/mfloat-abi.softfp | |
c9acb877 MGD |
149 | |
150 | ||
eb6006ad RL |
151 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv7ve/mfpu.neon/mfloat-abi.hard |
152 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv7ve/mfpu.neon/mfloat-abi.softfp | |
c9acb877 MGD |
153 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.neon/mfloat-abi.hard |
154 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.neon/mfloat-abi.softfp | |
155 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.hard | |
156 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.neon-vfpv4/mfloat-abi.softfp | |
157 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.hard=mthumb/march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.hard | |
158 | MULTILIB_REUSE += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=mthumb/march.armv7-a/mfpu.neon-fp-armv8/mfloat-abi.softfp | |
159 | ||
160 | ||
eb6006ad RL |
161 | MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.hard |
162 | MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.vfpv4-d16/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.vfpv4-d16/mfloat-abi.softfp | |
c9acb877 MGD |
163 | |
164 | ||
eb6006ad RL |
165 | MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=mthumb/march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.hard |
166 | MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=mthumb/march.armv8-a/mfpu.neon-vfpv4/mfloat-abi.softfp | |
167 | MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.hard=mthumb/march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.hard | |
168 | MULTILIB_REUSE += mthumb/march.armv7ve/mfpu.neon-vfpv4/mfloat-abi.softfp=mthumb/march.armv7ve/mfpu.neon-fp-armv8/mfloat-abi.softfp |