On Tue, Jun 13, 2023 at 05:06:35PM +0800, Xiaotian Wu wrote:
> Because the binutils of the loongarch architecture adds relaxation support 
> [1],
> the next version of binutils will not be able to build grub.
>
> So we use the -mno-relax cflags to disable gcc to generate relaxation
> relocations to enhance the compatibility of grub.
>
> [1]: 
> https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=56576f4a722b7398d35802ecf7d4185c27d6d69b
>
> Signed-off-by: Xiaotian Wu <wuxiaot...@loongson.cn>
> ---
>  configure.ac | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/configure.ac b/configure.ac
> index d9f088d12..cd3cc6ba8 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -874,6 +874,18 @@ if test "x$target_cpu" = xloongarch64; then
>      TARGET_CFLAGS="$TARGET_CFLAGS -mno-explicit-relocs -fno-plt"
>      TARGET_CCASFLAGS="$TARGET_CCASFLAGS -mno-explicit-relocs -fno-plt"
>    fi
> +
> +  AC_CACHE_CHECK([whether _mno_relax works], [grub_cv_cc_mno_relax], [
> +    CFLAGS="$TARGET_CFLAGS -mno-relax -Werror"
> +    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
> +     [grub_cv_cc_mno_relax=yes],
> +     [grub_cv_cc_mno_relax=no])
> +  ])
> +  if test "x$grub_cv_cc_mno_relax" = xyes; then
> +    TARGET_CFLAGS="$TARGET_CFLAGS -mno-relax"
> +    TARGET_CCASFLAGS="$TARGET_CCASFLAGS -mno-relax"
> +  fi

Could not you reuse sparc64 code which is ~100 lines below? If not
please make loongarch code as similar as possible to the sparc64 one.

Daniel

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

Reply via email to