Problems with floating-point support on ARM

Ralf Corsepius ralf.corsepius at rtems.org
Mon Oct 19 15:07:00 UTC 2009


On 10/19/2009 03:53 PM, Sebastian Huber wrote:
> Sebastian Huber wrote:
>    
>> Ralf Corsepius wrote:
>> [...]
>>      
>>> Comments from other arm users? Will vfp work for your boards?
>>>        
>> [...]
>>
>> No comments from other ARM users in two weeks.
>>
>> We should change the default floating-point model in GCC from FPA to VFP.
>>
>>      
> It would be nice if the RTEMS 4.10 ARM GCC could use VFP as the default
> floating-point model. Is this the way to do it?
>    

No, it isn't.

> Index: contrib/crossrpms/rtems4.10/arm/rtems-4.10-arm-rtems4.10-gcc.spec
> ===================================================================
> RCS file:
> /usr1/CVS/rtems/contrib/crossrpms/rtems4.10/arm/rtems-4.10-arm-rtems4.10-gcc.spec,v
> retrieving revision 1.55
> diff -u -r1.55 rtems-4.10-arm-rtems4.10-gcc.spec
> --- contrib/crossrpms/rtems4.10/arm/rtems-4.10-arm-rtems4.10-gcc.spec   9 Oct
> 2009 04:20:08 -0000       1.55
> +++ contrib/crossrpms/rtems4.10/arm/rtems-4.10-arm-rtems4.10-gcc.spec   19 Oct
> 2009 12:50:35 -0000
> @@ -244,6 +244,8 @@
>       --with-gnu-as --with-gnu-ld --verbose \
>       --with-newlib \
>       --with-system-zlib \
> +    --with-float=soft \
> +    --with-fpu=vfp \
>       --disable-nls --without-included-gettext \
>       --disable-win32-registry \
>       --enable-version-specific-runtime-libs \
>
> The ARM multi-lib configuration for GCC should be changed to:
>
> Index: gcc/config/arm/rtems-elf.h
> ===================================================================
> --- gcc/config/arm/rtems-elf.h  (revision 152974)
> +++ gcc/config/arm/rtems-elf.h  (working copy)
> @@ -31,14 +31,6 @@
>       } while (0)
>
>   /*
> - * The default in gcc now is soft-float, but gcc misses it to
> - * pass it to the assembler.
> - */
> -#undef SUBTARGET_EXTRA_ASM_SPEC
> -#define SUBTARGET_EXTRA_ASM_SPEC "\
> -  %{!mhard-float: %{!msoft-float:-mfpu=softfpa}}"
> -
> -/*
>    *  The default includes --start-group and --end-group which conflicts
>    *  with how this used to be defined.
>    */
> Index: gcc/config/arm/t-rtems
> ===================================================================
> --- gcc/config/arm/t-rtems      (revision 152974)
> +++ gcc/config/arm/t-rtems      (working copy)
> @@ -5,6 +5,6 @@
>   MULTILIB_EXCEPTIONS  =
>   MULTILIB_MATCHES     = marm=mno-thumb
>
> -MULTILIB_OPTIONS    += msoft-float/mhard-float
> +MULTILIB_OPTIONS    += mfloat-abi=soft/mfloat-abi=softfp
>   MULTILIB_DIRNAMES   += soft fpu
> -MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
> +MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=softfp*
>
> Have a nice day!
>
>    




More information about the users mailing list