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