comparison toolchain/t-arm-elf @ 47:53b8d61c16a0

toolchain: -mthumb-interwork multilib enabled, matching OsmocomBB's version
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sat, 22 Jun 2013 23:36:22 +0000
parents
children
comparison
equal deleted inserted replaced
46:eb97cfe5e31a 47:53b8d61c16a0
1 # This is a modified version of the gcc/config/arm/t-arm-elf file
2 # from gcc-4.5.4. It has been modified by Spacefalcon the Outlaw
3 # for the FreeCalypso project; the changes are in the multilib
4 # configuration:
5 #
6 # a) The fpu multilib has been commented out
7 # b) The -mthumb-interwork multilib has been uncommented
8
9 # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
10 # 2008 Free Software Foundation, Inc.
11 #
12 # This file is part of GCC.
13 #
14 # GCC is free software; you can redistribute it and/or modify
15 # it under the terms of the GNU General Public License as published by
16 # the Free Software Foundation; either version 3, or (at your option)
17 # any later version.
18 #
19 # GCC is distributed in the hope that it will be useful,
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 # GNU General Public License for more details.
23 #
24 # You should have received a copy of the GNU General Public License
25 # along with GCC; see the file COPYING3. If not see
26 # <http://www.gnu.org/licenses/>.
27
28 # For most CPUs we have an assembly soft-float implementations.
29 # However this is not true for ARMv6M. Here we want to use the soft-fp C
30 # implementation. The soft-fp code is only build for ARMv6M. This pulls
31 # in the asm implementation for other CPUs.
32 LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
33 _call_via_rX _interwork_call_via_rX \
34 _lshrdi3 _ashrdi3 _ashldi3 \
35 _arm_negdf2 _arm_addsubdf3 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
36 _arm_fixdfsi _arm_fixunsdfsi \
37 _arm_truncdfsf2 _arm_negsf2 _arm_addsubsf3 _arm_muldivsf3 \
38 _arm_cmpsf2 _arm_unordsf2 _arm_fixsfsi _arm_fixunssfsi \
39 _arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf \
40 _clzsi2 _clzdi2
41
42 MULTILIB_OPTIONS = marm/mthumb
43 MULTILIB_DIRNAMES = arm thumb
44 MULTILIB_EXCEPTIONS =
45 MULTILIB_MATCHES =
46
47 #MULTILIB_OPTIONS += march=armv7
48 #MULTILIB_DIRNAMES += thumb2
49 #MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
50 #MULTILIB_MATCHES += march?armv7=march?armv7-a
51 #MULTILIB_MATCHES += march?armv7=march?armv7-r
52 #MULTILIB_MATCHES += march?armv7=march?armv7-m
53 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
54 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
55 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
56
57 # Not quite true. We can support hard-vfp calling in Thumb2, but how do we
58 # express that here? Also, we really need architecture v5e or later
59 # (mcrr etc).
60 # MULTILIB_OPTIONS += mfloat-abi=hard
61 # MULTILIB_DIRNAMES += fpu
62 # MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
63
64 # MULTILIB_OPTIONS += mcpu=ep9312
65 # MULTILIB_DIRNAMES += ep9312
66 # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312*
67 #
68 # MULTILIB_OPTIONS += mlittle-endian/mbig-endian
69 # MULTILIB_DIRNAMES += le be
70 # MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle
71 #
72 # MULTILIB_OPTIONS += mhard-float/msoft-float
73 # MULTILIB_DIRNAMES += fpu soft
74 # MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
75 #
76 MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
77 MULTILIB_DIRNAMES += normal interwork
78 #
79 # MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore
80 # MULTILIB_DIRNAMES += elf under
81 #
82 # MULTILIB_OPTIONS += mcpu=arm7
83 # MULTILIB_DIRNAMES += nofmult
84 # MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=arm7*
85 # # Note: the multilib_exceptions matches both -mthumb and
86 # # -mthumb-interwork
87 # #
88 # # We have to match all the arm cpu variants which do not have the
89 # # multiply instruction and treat them as if the user had specified
90 # # -mcpu=arm7. Note that in the following the ? is interpreted as
91 # # an = for the purposes of matching command line options.
92 # # FIXME: There ought to be a better way to do this.
93 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7d
94 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7di
95 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm70
96 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700
97 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700i
98 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710
99 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710c
100 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7100
101 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500
102 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500fe
103 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm6
104 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm60
105 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm600
106 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm610
107 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm620
108
109 EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
110
111 # If EXTRA_MULTILIB_PARTS is not defined above then define EXTRA_PARTS here
112 # EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o
113
114 LIBGCC = stmp-multilib
115 INSTALL_LIBGCC = install-multilib
116
117 # Currently there is a bug somewhere in GCC's alias analysis
118 # or scheduling code that is breaking _fpmul_parts in fp-bit.c.
119 # Disabling function inlining is a workaround for this problem.
120 TARGET_LIBGCC2_CFLAGS = -fno-inline
121
122 # Assemble startup files.
123 $(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)
124 $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
125 -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/arm/crti.asm
126
127 $(T)crtn.o: $(srcdir)/config/arm/crtn.asm $(GCC_PASSES)
128 $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
129 -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/arm/crtn.asm
130