Added multilib support to SAT. Now floatingpoint support should work and we should...
[fw/cortex-toolchain] / patches / patch-gcc-config-arm-t-arm-elf.diff
1 --- gcc/config/arm/t-arm-elf.orig       2011-02-03 10:41:08.000000000 +1100
2 +++ gcc/config/arm/t-arm-elf    2011-02-03 10:44:22.000000000 +1100
3 @@ -31,10 +31,55 @@
4         _arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf \
5         _clzsi2 _clzdi2 
6  
7 -MULTILIB_OPTIONS     = marm/mthumb
8 -MULTILIB_DIRNAMES    = arm thumb
9 -MULTILIB_EXCEPTIONS  = 
10 +# We build 4 multilibs:
11 +#  ./            (default)
12 +#  thumb/        -mthumb
13 +#  thumb2/       -mthumb -march=armv7
14 +#  armv4t/      -mthumb -march=armv4t
15 +
16 +MULTILIB_OPTIONS     = mthumb
17 +MULTILIB_DIRNAMES    = thumb
18 +MULTILIB_EXCEPTIONS  =
19  MULTILIB_MATCHES     =
20 +MULTILIB_EXTRA_OPTS  += msoft-float
21 +
22 +MULTILIB_OPTIONS      += march=armv7/march=armv4t
23 +MULTILIB_DIRNAMES     += v7 v4t
24 +MULTILIB_EXCEPTIONS   += march=armv7*
25 +MULTILIB_MATCHES      += march?armv7=march?armv7-a
26 +MULTILIB_MATCHES      += march?armv7=march?armv7-r
27 +MULTILIB_MATCHES      += march?armv7=march?armv7-m
28 +MULTILIB_MATCHES      += march?armv7=march?armv7e-m
29 +MULTILIB_MATCHES      += march?armv7=mcpu?cortex-a9
30 +MULTILIB_MATCHES      += march?armv7=mcpu?cortex-a8
31 +MULTILIB_MATCHES      += march?armv7=mcpu?cortex-a5
32 +MULTILIB_MATCHES      += march?armv7=mcpu?cortex-r4
33 +MULTILIB_MATCHES      += march?armv7=mcpu?cortex-r4f
34 +MULTILIB_MATCHES      += march?armv7=mcpu?cortex-m4
35 +MULTILIB_MATCHES      += march?armv7=mcpu?cortex-m3
36 +
37 +MULTILIB_EXCEPTIONS   += march=armv4t
38 +MULTILIB_MATCHES      += march?armv4t=mcpu?arm7tdmi-s
39 +#MULTILIB_MATCHES      +=
40 +
41 +# FIXME: We need a sane way of doing this.
42 +# This isn't really a multilib, it's a hack to add an extra option
43 +# to the v7-m multilib.
44 +MULTILIB_OPTIONS      += mfix-cortex-m3-ldrd
45 +MULTILIB_DIRNAMES     += broken_ldrd
46 +
47 +MULTILIB_EXCEPTIONS   += mfix-cortex-m3-ldrd
48 +MULTILIB_EXCEPTIONS   += mthumb/mfix-cortex-m3-ldrd
49 +MULTILIB_EXCEPTIONS   += *march=armv4t*mfix-cortex-m3-ldrd
50 +
51 +MULTILIB_ALIASES      += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7
52 +
53 +# As of at least 4.2, gcc passes the wrong -L options if some multilibs are
54 +# omitted from MULTILIB_OSDIRNAMES
55 +MULTILIB_OSDIRNAMES    = mthumb=!thumb
56 +MULTILIB_OSDIRNAMES   += mthumb/march.armv7/mfix-cortex-m3-ldrd=!thumb2
57 +MULTILIB_OSDIRNAMES   += mthumb/march.armv4t=!armv4t
58 +
59  
60  #MULTILIB_OPTIONS      += march=armv7
61  #MULTILIB_DIRNAMES     += thumb2
62 @@ -49,9 +94,9 @@
63  # Not quite true.  We can support hard-vfp calling in Thumb2, but how do we
64  # express that here?  Also, we really need architecture v5e or later
65  # (mcrr etc).
66 -MULTILIB_OPTIONS       += mfloat-abi=hard
67 -MULTILIB_DIRNAMES      += fpu
68 -MULTILIB_EXCEPTIONS    += *mthumb/*mfloat-abi=hard*
69 +#MULTILIB_OPTIONS       += mfloat-abi=hard
70 +#MULTILIB_DIRNAMES      += fpu
71 +#MULTILIB_EXCEPTIONS    += *mthumb/*mfloat-abi=hard*
72  
73  # MULTILIB_OPTIONS    += mcpu=ep9312
74  # MULTILIB_DIRNAMES   += ep9312