diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arm/rtems-elf.h | 2 | ||||
-rw-r--r-- | gcc/config/arm/t-rtems | 41 |
3 files changed, 45 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9c1d499..85081ed 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-11-04 Thomas Doerfler <thomas.doerfler@embedded-brains.de> + + PR target/50989 + * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional + support for VFP floating point model. + 2011-11-04 Tristan Gingold <gingold@adacore.com> * config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section. diff --git a/gcc/config/arm/rtems-elf.h b/gcc/config/arm/rtems-elf.h index 8d5a1d7..d9d24a7 100644 --- a/gcc/config/arm/rtems-elf.h +++ b/gcc/config/arm/rtems-elf.h @@ -35,7 +35,7 @@ */ #undef SUBTARGET_EXTRA_ASM_SPEC #define SUBTARGET_EXTRA_ASM_SPEC "\ - %{!mfloat-abi=hard: %{!mfloat-abi=soft:-mfpu=softfpa}}" + %{!mfloat-abi=hard: %{!mfpu=vfp: %{!mfloat-abi=soft:-mfpu=softfpa}}}" /* * The default includes --start-group and --end-group which conflicts diff --git a/gcc/config/arm/t-rtems b/gcc/config/arm/t-rtems index f12387f..5eff411 100644 --- a/gcc/config/arm/t-rtems +++ b/gcc/config/arm/t-rtems @@ -5,6 +5,41 @@ MULTILIB_DIRNAMES = arm thumb MULTILIB_EXCEPTIONS = MULTILIB_MATCHES = marm=mno-thumb -MULTILIB_OPTIONS += mfloat-abi=soft/mfloat-abi=hard -MULTILIB_DIRNAMES += soft fpu -MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* +MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=softfp +MULTILIB_DIRNAMES += fpu softfp +MULTILIB_EXCEPTIONS += *mthumb*/*mfloat-abi=hard* *mthumb*/*mfloat-abi=softfp* +MULTILIB_MATCHES = + +MULTILIB_OPTIONS += mfpu=vfp +MULTILIB_DIRNAMES += vfp +MULTILIB_EXCEPTIONS += *mfloat-abi=hard*/*mfpu=vfp* *marm*/*mfloat-abi=softfp*/*mfpu=fpa* +MULTILIB_EXCLUSIONS += !mthumb/mfloat-abi=softfp/!mfpu=vfp + +# default float model is fpa, so don't create a explicit copy of it +MULTILIB_EXCEPTIONS += *marm*/*mfpa* + +# permutations of the options which are useful (+) or make no sense (-), +# defaults are in brackets: +# + (arm/soft/fpa) +# + (arm/soft)/vfp +# - (arm)/softfp(/fpa) +# + (arm)/softfp/vfp +# + (arm)/float-abi=hard(/fpa) +# - (arm)/float-abi=hard/vfp +# + thumb/(soft/fpa) +# + thumb/(soft/)vfp +# - thumb/softfp/fpa +# - thumb/softfp/vfp +# - thumb/float-abi=hard/fpa +# - thumb/float-abi=hard/vfp + +# subdirs to be used for multilibs and their respective options: +#/thumb/vfp -> thumb/soft/vfp +#/thumb/fpa -> thumb/soft/fpa +#/thumb -> thumb/soft/fpa +#/vfp -> arm/soft/vfp +#/softfp/vfp -> arm/softfp/cfp +#/fpu/fpa -> arm/hard/fpa +#/fpu -> arm/hard/fpa +#/fpa -> arm/soft/fpa +#. -> arm/soft/fpa |