grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: arm64 softfloat


From: Vladimir 'φ-coder/phcoder' Serbinenko
Subject: Re: arm64 softfloat
Date: Tue, 02 Jun 2015 18:37:32 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0

On 02.06.2015 16:55, Leif Lindholm wrote:
> On Tue, Jun 02, 2015 at 02:25:15PM +0200, Vladimir 'phcoder' Serbinenko wrote:
>> Please give more details as to where we have floats. We shouldn't have any
> 
> Ok, seems I was tripping over myself with the internal compiler error
> workaround (-mgeneral-regs-only), and applying it on the host tools
> as well, where +nofp was (correctly) not being enforced, causing a
> clash.
> 
What is the relation of -mgeneral-regs-only with +nofp? The decription
of -mgeneral-regs-only in manual is very vague
> So, rewinding a bit - in order to work around the gcc 5.1 build issue
> (which is not Fedora specific), we can use -mgeneral-regs-only
> instead of -march=armv8-a+nofp. If we do this, we can also get
> rid of the arm64-specific twiddling that drops the +nosimd.
> 
> Like so:
> 
>>From 43d4231432838821cabe4f6aea4f0f50e87af9c4 Mon Sep 17 00:00:00 2001
> From: Leif Lindholm <address@hidden>
> Date: Tue, 2 Jun 2015 15:41:09 +0100
> Subject: [PATCH] configure.ac: clean up arm64 soft-float handling
> 
> Fix compilation with gcc 5.1 (avoid internal compiler error), by
> replacing explicit -march +nofp+nosimd options with -mgeneral-regs-only.
> 
> This also enables the removal of some further conditional build flag
> setting.
> ---
>  configure.ac | 14 +++-----------
>  1 file changed, 3 insertions(+), 11 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 891c14f..fd8a62e 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -686,9 +686,9 @@ if test x"$platform" != xemu ; then
>    AC_CACHE_CHECK([for options to get soft-float], 
> grub_cv_target_cc_soft_float, [
>      grub_cv_target_cc_soft_float=no
>      if test "x$target_cpu" = xarm64; then
> -       CFLAGS="$TARGET_CFLAGS -march=armv8-a+nofp+nosimd -Werror"
> +       CFLAGS="$TARGET_CFLAGS -mgeneral-regs-only -Werror"
>         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
> -                      
> [grub_cv_target_cc_soft_float="-march=armv8-a+nofp+nosimd"], [])
> +                      [grub_cv_target_cc_soft_float="-mgeneral-regs-only"], 
> [])
>      fi
>      if test "x$target_cpu" = xia64; then
>         CFLAGS="$TARGET_CFLAGS -mno-inline-float-divide -mno-inline-sqrt 
> -Werror"
> @@ -720,15 +720,7 @@ if test x"$platform" != xemu ; then
>        TARGET_CFLAGS="$TARGET_CFLAGS $grub_cv_target_cc_soft_float"
>        ;;
>    esac
> -  case x"$grub_cv_target_cc_soft_float" in
> -    x"-march=armv8-a+nofp+nosimd")
> -      # +nosimd disables also the cache opcodes that we need in asm.
> -      TARGET_CCASFLAGS="$TARGET_CCASFLAGS -march=armv8-a+nofp"
> -      ;;
> -    *)
> -      TARGET_CCASFLAGS="$TARGET_CCASFLAGS $grub_cv_target_cc_soft_float"
> -      ;;
> -  esac
> +  TARGET_CCASFLAGS="$TARGET_CCASFLAGS $grub_cv_target_cc_soft_float"
>  
>  fi
>  
> 


Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]