]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/arm/t-multilib
[ARM] Allow combination of aprofile and rmprofile multilibs
[thirdparty/gcc.git] / gcc / config / arm / t-multilib
1 # Copyright (C) 2016 Free Software Foundation, Inc.
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 ARM architecture. It should not be used in
22 # conjunction with another make file fragment and assumes --with-arch,
23 # --with-cpu, --with-fpu, --with-float, --with-mode have their default
24 # values during the configure step. We enforce this during the
25 # top-level configury.
26
27 MULTILIB_OPTIONS =
28 MULTILIB_DIRNAMES =
29 MULTILIB_EXCEPTIONS =
30 MULTILIB_MATCHES =
31 MULTILIB_REUSE =
32
33 comma := ,
34 tm_multilib_list := $(subst $(comma), ,$(TM_MULTILIB_CONFIG))
35
36 HAS_APROFILE := $(filter aprofile,$(tm_multilib_list))
37 HAS_RMPROFILE := $(filter rmprofile,$(tm_multilib_list))
38
39 ifneq (,$(HAS_APROFILE))
40 include $(srcdir)/config/arm/t-aprofile
41 endif
42 ifneq (,$(HAS_RMPROFILE))
43 include $(srcdir)/config/arm/t-rmprofile
44 endif
45 SEP := $(and $(HAS_APROFILE),$(HAS_RMPROFILE),/)
46
47
48 # We have the following hierachy:
49 # ISA: A32 (.) or T16/T32 (thumb)
50 # Architecture: ARMv6-M (v6-m), ARMv7-M (v7-m), ARMv7E-M (v7e-m),
51 # ARMv7 (v7-ar), ARMv7-A (v7-a), ARMv7VE (v7ve),
52 # ARMv8-M Baseline (v8-m.base), ARMv8-M Mainline (v8-m.main)
53 # or ARMv8-A (v8-a).
54 # FPU: VFPv3-D16 (fpv3), NEONv1 (simdv1), FPV4-SP-D16 (fpv4-sp),
55 # VFPv4-D16 (fpv4), NEON-VFPV4 (simdvfpv4), FPV5-SP-D16 (fpv5-sp),
56 # VFPv5-D16 (fpv5), NEON for ARMv8 (simdv8), or None (.).
57 # Float-abi: Soft (.), softfp (softfp), or hard (hard).
58
59 MULTILIB_OPTIONS += mthumb
60 MULTILIB_DIRNAMES += thumb
61
62 MULTILIB_OPTIONS += $(MULTI_ARCH_OPTS_A)$(SEP)$(MULTI_ARCH_OPTS_RM)
63 MULTILIB_DIRNAMES += $(MULTI_ARCH_DIRS_A) $(MULTI_ARCH_DIRS_RM)
64
65 MULTILIB_OPTIONS += $(MULTI_FPU_OPTS_A)$(SEP)$(MULTI_FPU_OPTS_RM)
66 MULTILIB_DIRNAMES += $(MULTI_FPU_DIRS_A) $(MULTI_FPU_DIRS_RM)
67
68 MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard
69 MULTILIB_DIRNAMES += softfp hard