On 30/07/15 15:45, Kyrill Tkachov wrote:
> Hi all,
> 
> I tried bootstrapping on Thumb1 recently and hit an error while building 
> libgcc and in particular config/arm/crtfastmath.c.
> This file generates vmrs instructions which are not allowed in Thumb1, 
> causing an assembler error.
> 
> The fix for that is to gate the file not only on !__SOFTFP__ but also no 
> __ARM_32BIT_STATE.
> This allows Thumb1 bootstrap to proceed past that point (it fails later on 
> for an unrelated reason).
> 
> Bootstrapped on ARM state and Thumb2 as well.
> Ok for trunk?
> 

Wouldn't it be better to force this function to be compiled in ARM state
when we don't have Thumb2?  That way we can keep this behaviour if the
image is a hybrid ARM/Thumb1 executable.

R.

> Thanks,
> Kyrill
> 
> 2015-07-30  Kyrylo Tkachov  <kyrylo.tkac...@arm.com>
> 
>      * config/arm/crtfastmath.c: Gate contents on __ARM_32BIT_STATE.
> 
> 
> arm-libgcc-crtfastmath.patch
> 
> 
> commit c3bad17af21b040c4ff0507ffca8d5fbe35b3136
> Author: Kyrylo Tkachov <kyrylo.tkac...@arm.com>
> Date:   Wed Jul 29 17:56:46 2015 +0100
> 
>     [ARM][libgcc] Gate crtfastmath.c contents on __ARM_32BIT_STATE
> 
> diff --git a/libgcc/config/arm/crtfastmath.c b/libgcc/config/arm/crtfastmath.c
> index 9573514..11b6208 100644
> --- a/libgcc/config/arm/crtfastmath.c
> +++ b/libgcc/config/arm/crtfastmath.c
> @@ -22,7 +22,8 @@
>   */
>  
>  /* Enable flush-to-zero support for -ffast-math on VFP targets.  */
> -#ifndef __SOFTFP__
> +
> +#if defined (__ARM_32BIT_STATE) && !defined ( __SOFTFP__)
>  
>  #define FPSCR_FZ             (1 << 24)
>  
> 

Reply via email to