[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: commit 3661261f breaks arm64
From: |
Vladimir 'phcoder' Serbinenko |
Subject: |
Re: commit 3661261f breaks arm64 |
Date: |
Wed, 28 Jan 2015 20:39:43 +0100 |
Le 2015-01-28 20:37, "Leif Lindholm" <address@hidden> a écrit :
>
> On Wed, Jan 28, 2015 at 09:58:56PM +0300, Andrei Borzenkov wrote:
> > В Wed, 28 Jan 2015 18:33:59 +0000
> > Leif Lindholm <address@hidden> пишет:
> >
> > > commit 3661261fe17a8fe19681073889b5b36ec1ee823d,
> > > "Always add -msoft-float to avoid compiler generating float
> > > arithmetics." breaks the arm64 build.
> > >
> > > -msoft-float is not a valid command line option for aarch64 (as far as
> > > I can see, it is technically a target-specific option which just
> > > happens to exist for most targets - including arm).
> > >
> > > This setting will need to be conditionalised somehow.
> > > An option that works for arm64 is -march=armv8-a+nofp+nosimd.
> > >
> > > Would something like this be an acceptable workaround?:
> > >
> > > diff --git a/configure.ac b/configure.ac
> > > index a3bca06..c99e1ea 100644
> > > --- a/configure.ac
> > > +++ b/configure.ac
> > > @@ -678,7 +678,11 @@ fi
> > > # that floats are a good fit to run instead of what's written in the
> > > # code.
> > > # Given that floating point unit is disabled (if present to begin
> > > # with)
> > > # when GRUB is running which may result in various hard crashes.
> > > -TARGET_CFLAGS="$TARGET_CFLAGS -msoft-float"
> > > +if ( test "x$target_cpu" = xarm64 ); then
> >
> > Why subshell?
>
> Brainless cargo culting to look similar to the preceding $target_cpu
> checker, which actually does something relevant with its subshell.
>
> If I drop that, is that an acceptable fix?
Yes.
I probably should define guidelines for platform-specific options and clean up existing inconsistencies but it's low priority.
> > > + TARGET_CFLAGS="$TARGET_CFLAGS -march=armv8-a+nofp+nosimd"
> > > +else
> > > + TARGET_CFLAGS="$TARGET_CFLAGS -msoft-float"
> > > +fi
> > >
> > > # By default, GCC 4.4 generates .eh_frame sections containing unwind
> > > # information in some cases where it previously did not. GRUB doesn't
> > > # need
> > >
> > > /
> > > Leif
> > >
> > > _______________________________________________
> > > Grub-devel mailing list
> > > address@hidden
> > > https://lists.gnu.org/mailman/listinfo/grub-devel
> >
>
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/grub-devel