]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/arm/t-arm-elf
Move crtstuff support to toplevel libgcc
[thirdparty/gcc.git] / gcc / config / arm / t-arm-elf
1 # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2 # 2008, 2010, 2011 Free Software Foundation, Inc.
3 #
4 # This file is part of GCC.
5 #
6 # GCC is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3, or (at your option)
9 # any later version.
10 #
11 # GCC is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with GCC; see the file COPYING3. If not see
18 # <http://www.gnu.org/licenses/>.
19
20 # For most CPUs we have an assembly soft-float implementations.
21 # However this is not true for ARMv6M. Here we want to use the soft-fp C
22 # implementation. The soft-fp code is only build for ARMv6M. This pulls
23 # in the asm implementation for other CPUs.
24 LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
25 _call_via_rX _interwork_call_via_rX \
26 _lshrdi3 _ashrdi3 _ashldi3 \
27 _arm_negdf2 _arm_addsubdf3 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
28 _arm_fixdfsi _arm_fixunsdfsi \
29 _arm_truncdfsf2 _arm_negsf2 _arm_addsubsf3 _arm_muldivsf3 \
30 _arm_cmpsf2 _arm_unordsf2 _arm_fixsfsi _arm_fixunssfsi \
31 _arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf \
32 _clzsi2 _clzdi2
33
34 MULTILIB_OPTIONS = marm/mthumb
35 MULTILIB_DIRNAMES = arm thumb
36 MULTILIB_EXCEPTIONS =
37 MULTILIB_MATCHES =
38
39 #MULTILIB_OPTIONS += mcpu=fa526/mcpu=fa626/mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te
40 #MULTILIB_DIRNAMES += fa526 fa626 fa606te fa626te fmp626 fa726te
41 #MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=fa526 *mthumb*/*mcpu=fa626
42
43 #MULTILIB_OPTIONS += march=armv7
44 #MULTILIB_DIRNAMES += thumb2
45 #MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
46 #MULTILIB_MATCHES += march?armv7=march?armv7-a
47 #MULTILIB_MATCHES += march?armv7=march?armv7-r
48 #MULTILIB_MATCHES += march?armv7=march?armv7-m
49 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
50 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
51 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
52
53 # Not quite true. We can support hard-vfp calling in Thumb2, but how do we
54 # express that here? Also, we really need architecture v5e or later
55 # (mcrr etc).
56 MULTILIB_OPTIONS += mfloat-abi=hard
57 MULTILIB_DIRNAMES += fpu
58 MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
59 #MULTILIB_EXCEPTIONS += *mcpu=fa526/*mfloat-abi=hard*
60 #MULTILIB_EXCEPTIONS += *mcpu=fa626/*mfloat-abi=hard*
61
62 # MULTILIB_OPTIONS += mcpu=ep9312
63 # MULTILIB_DIRNAMES += ep9312
64 # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312*
65 #
66 # MULTILIB_OPTIONS += mlittle-endian/mbig-endian
67 # MULTILIB_DIRNAMES += le be
68 # MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle
69 #
70 # MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=soft
71 # MULTILIB_DIRNAMES += fpu soft
72 # MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
73 #
74 # MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
75 # MULTILIB_DIRNAMES += normal interwork
76 #
77 # MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore
78 # MULTILIB_DIRNAMES += elf under
79 #
80 # MULTILIB_OPTIONS += mcpu=arm7
81 # MULTILIB_DIRNAMES += nofmult
82 # MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=arm7*
83 # # Note: the multilib_exceptions matches both -mthumb and
84 # # -mthumb-interwork
85 # #
86 # # We have to match all the arm cpu variants which do not have the
87 # # multiply instruction and treat them as if the user had specified
88 # # -mcpu=arm7. Note that in the following the ? is interpreted as
89 # # an = for the purposes of matching command line options.
90 # # FIXME: There ought to be a better way to do this.
91 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7d
92 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7di
93 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm70
94 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700
95 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700i
96 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710
97 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710c
98 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7100
99 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500
100 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500fe
101 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm6
102 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm60
103 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm600
104 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm610
105 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm620
106
107 LIBGCC = stmp-multilib
108 INSTALL_LIBGCC = install-multilib
109
110 # Currently there is a bug somewhere in GCC's alias analysis
111 # or scheduling code that is breaking _fpmul_parts in fp-bit.c.
112 # Disabling function inlining is a workaround for this problem.
113 TARGET_LIBGCC2_CFLAGS = -fno-inline