]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
configure: Add -mno-gpopt option for mips and mipsel targets
authorVladimir Serbinenko <phcoder@gmail.com>
Tue, 3 Sep 2024 17:58:49 +0000 (20:58 +0300)
committerDaniel Kiper <daniel.kiper@oracle.com>
Thu, 5 Sep 2024 15:22:47 +0000 (17:22 +0200)
Without it compiler generates GPREL16 references which do not work
with our memory layout.

Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
configure.ac

index fe549324680e5e0892b5a27077b1889cc659dc58..458b8382b9385a7d1cba9c74025b683a531bcfba 100644 (file)
@@ -802,6 +802,17 @@ if test "x$target_cpu" = xmips || test "x$target_cpu" = xmipsel ; then
   if test "x$grub_cv_cc_mflush_func" = xyes; then
     TARGET_CFLAGS="$TARGET_CFLAGS -mflush-func=grub_red_herring"
   fi
+
+  AC_CACHE_CHECK([whether -mno-gpopt works], [grub_cv_cc_mno_gpopt], [
+    CFLAGS="$TARGET_CFLAGS -mno-gpopt -Werror"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
+       [grub_cv_cc_mno_gpopt=yes],
+       [grub_cv_cc_mno_gpopt=no])
+  ])
+
+  if test "x$grub_cv_cc_mno_gpopt" = xyes; then
+    TARGET_CFLAGS="$TARGET_CFLAGS -mno-gpopt"
+  fi
 fi