1 LIB1ASMSRC = arm/lib1funcs.asm
2 LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
3 _call_via_rX _interwork_call_via_rX \
4 _lshrdi3 _ashrdi3 _ashldi3 \
5 _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
6 _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
7 _fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundidf _floatundisf
9 MULTILIB_OPTIONS = marm/mthumb
10 MULTILIB_DIRNAMES = arm thumb
14 #MULTILIB_OPTIONS += march=armv7
15 #MULTILIB_DIRNAMES += thumb2
16 #MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
17 #MULTILIB_MATCHES += march?armv7=march?armv7-a
18 #MULTILIB_MATCHES += march?armv7=march?armv7-r
19 #MULTILIB_MATCHES += march?armv7=march?armv7-m
20 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
21 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
22 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
24 # MULTILIB_OPTIONS += mcpu=ep9312
25 # MULTILIB_DIRNAMES += ep9312
26 # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312*
28 # MULTILIB_OPTIONS += mlittle-endian/mbig-endian
29 # MULTILIB_DIRNAMES += le be
30 # MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle
32 # MULTILIB_OPTIONS += mhard-float/msoft-float
33 # MULTILIB_DIRNAMES += fpu soft
34 # MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
36 # MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
37 # MULTILIB_DIRNAMES += normal interwork
39 # MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore
40 # MULTILIB_DIRNAMES += elf under
42 # MULTILIB_OPTIONS += mcpu=arm7
43 # MULTILIB_DIRNAMES += nofmult
44 # MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=arm7*
45 # # Note: the multilib_exceptions matches both -mthumb and
48 # # We have to match all the arm cpu variants which do not have the
49 # # multiply instruction and treat them as if the user had specified
50 # # -mcpu=arm7. Note that in the following the ? is interpreted as
51 # # an = for the purposes of matching command line options.
52 # # FIXME: There ought to be a better way to do this.
53 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7d
54 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7di
55 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm70
56 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700
57 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700i
58 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710
59 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710c
60 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7100
61 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500
62 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500fe
63 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm6
64 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm60
65 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm600
66 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm610
67 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm620
69 EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
71 # If EXTRA_MULTILIB_PARTS is not defined above then define EXTRA_PARTS here
72 # EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o
74 LIBGCC = stmp-multilib
75 INSTALL_LIBGCC = install-multilib
77 # Currently there is a bug somewhere in GCC's alias analysis
78 # or scheduling code that is breaking _fpmul_parts in fp-bit.c.
79 # Disabling function inlining is a workaround for this problem.
80 TARGET_LIBGCC2_CFLAGS = -fno-inline
82 # Assemble startup files.
83 $(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)
84 $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
85 -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/arm/crti.asm
87 $(T)crtn.o: $(srcdir)/config/arm/crtn.asm $(GCC_PASSES)
88 $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
89 -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/arm/crtn.asm