From 7959812782705b0522b01f9873f48afd4fa53bc3 Mon Sep 17 00:00:00 2001 From: Thomas Doerfler Date: Fri, 4 Nov 2011 15:22:06 +0000 Subject: re PR target/50980 (arm-rtems multilib not matching for -mfpu=vfp -mfloat-abi=soft) 2011-11-04 Thomas Doerfler PR target/50980 * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional support for VFP floating point model. From-SVN: r180959 --- gcc/ChangeLog | 6 ++++++ gcc/config/arm/rtems-elf.h | 2 +- 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 + + 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 * 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 -- cgit v1.1