1 # Copyright (C) 2016 Free Software Foundation, Inc.
3 # This file is part of GCC.
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)
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.
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/>.
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.
34 tm_multilib_list := $(subst $(comma), ,$(TM_MULTILIB_CONFIG))
36 HAS_APROFILE := $(filter aprofile,$(tm_multilib_list))
37 HAS_RMPROFILE := $(filter rmprofile,$(tm_multilib_list))
39 ifneq (,$(HAS_APROFILE))
40 include $(srcdir)/config/arm/t-aprofile
42 ifneq (,$(HAS_RMPROFILE))
43 include $(srcdir)/config/arm/t-rmprofile
45 SEP := $(and $(HAS_APROFILE),$(HAS_RMPROFILE),/)
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)
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).
59 MULTILIB_OPTIONS += mthumb
60 MULTILIB_DIRNAMES += thumb
62 MULTILIB_OPTIONS += $(MULTI_ARCH_OPTS_A)$(SEP)$(MULTI_ARCH_OPTS_RM)
63 MULTILIB_DIRNAMES += $(MULTI_ARCH_DIRS_A) $(MULTI_ARCH_DIRS_RM)
65 MULTILIB_OPTIONS += $(MULTI_FPU_OPTS_A)$(SEP)$(MULTI_FPU_OPTS_RM)
66 MULTILIB_DIRNAMES += $(MULTI_FPU_DIRS_A) $(MULTI_FPU_DIRS_RM)
68 MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard
69 MULTILIB_DIRNAMES += softfp hard