FreeCalypso > hg > freecalypso-tools
comparison toolchain/t-arm-elf @ 0:e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sat, 11 Jun 2016 00:13:35 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:e7502631a0f9 |
|---|---|
| 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 |
