FreeCalypso > hg > freecalypso-sw
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 |