Message ID | 20150128183359.GG4278@bivouac.eciton.net |
---|---|
State | New |
Headers | show |
On Wed, Jan 28, 2015 at 09:58:56PM +0300, Andrei Borzenkov wrote: > В Wed, 28 Jan 2015 18:33:59 +0000 > Leif Lindholm <leif.lindholm@linaro.org> пишет: > > > 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? > > + 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 > > Grub-devel@gnu.org > > https://lists.gnu.org/mailman/listinfo/grub-devel >
On Wed, Jan 28, 2015 at 08:39:43PM +0100, Vladimir 'phcoder' Serbinenko wrote: > > > 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. Thanks - pushed. / Leif
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 + TARGET_CFLAGS="$TARGET_CFLAGS -march=armv8-a+nofp+nosimd" +else + TARGET_CFLAGS="$TARGET_CFLAGS -msoft-float" +fi