On Sat, 28 Jan 2017, 09:27 Andrei Borzenkov <arvidj...@gmail.com> wrote:

> > diff --git a/configure.ac b/configure.ac
> > index 4e980c5..ab7fa92 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -1152,6 +1152,16 @@ if test "$target_cpu"-"$platform" = x86_64-efi;
> then
> >  fi
> >
> >  if test "x$target_cpu" = xarm; then
> > +  AC_CACHE_CHECK([whether option -mllvm -arm-use-movt=0 works],
> grub_cv_cc_mllvm_arm_use_movt, [
> > +    CPPFLAGS="$TARGET_CPPFLAGS -mllvm -arm-use-movt=0 -Werror"
> > +    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
> > +                     [grub_cv_cc_mllvm_arm_use_movt=yes],
> > +                     [grub_cv_cc_mllvm_arm_use_movt=no])
> > +  ])
> > +  if test "x$grub_cv_cc_mllvm_arm_use_movt" = xyes; then
> > +    # A trick so that clang doesn't see it on link stage
> > +    TARGET_CPPFLAGS="$TARGET_CPPFLAGS -mllvm -arm-use-movt=0"
> > +  fi
> >    AC_CACHE_CHECK([whether option -mlong-calls works],
> grub_cv_cc_mlong_calls, [
> >      CFLAGS="$TARGET_CFLAGS -mlong-calls -Werror"
> >      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
>
> Is this option supported by all clang versions? What should we do if
> this is *not* supported? As far as I understand commit message this
> leads to broken code?
>
The only other workaround there is, is to use -march=armv6. The window for
the problem is narrow as apparently there wasn't a lot of time between use
of movt/movw and the option to disable it.
The problem when exists is successfully detected by module-verifier.

>
> Is "-mllvm -arm-use-movt=0" different from "-mno-movt" which appears to
> be "official" way to disable it?
>
 I peeked this option at uboot which has the same problem.
Mno-movt needs clang 3.8 whereas the llvm variant only 3.7. I'm unsure when
movt/movw was introduced.

>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to