102 lines
3.9 KiB
Diff
102 lines
3.9 KiB
Diff
From 7353f21f6ed1754b67e455e2b80123787efa9e91 Mon Sep 17 00:00:00 2001
|
|
From: dengjianbo <dengjianbo@loongson.cn>
|
|
Date: Tue, 8 Aug 2023 14:15:43 +0800
|
|
Subject: [PATCH 02/29] LoongArch: Add minuimum binutils required version
|
|
|
|
LoongArch glibc can add some LASX/LSX vector instructions codes,
|
|
change the required minimum binutils version to 2.41 which could
|
|
support vector instructions. HAVE_LOONGARCH_VEC_ASM is removed
|
|
accordingly.
|
|
|
|
Signed-off-by: Peng Fan <fanpeng@loongson.cn>
|
|
Signed-off-by: ticat_fp <fanpeng@loongson.cn>
|
|
---
|
|
config.h.in | 5 -----
|
|
sysdeps/loongarch/configure | 5 ++---
|
|
sysdeps/loongarch/configure.ac | 4 ++--
|
|
sysdeps/loongarch/dl-machine.h | 4 ++--
|
|
sysdeps/loongarch/dl-trampoline.S | 2 +-
|
|
5 files changed, 7 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/config.h.in b/config.h.in
|
|
index 0dedc124..44a34072 100644
|
|
--- a/config.h.in
|
|
+++ b/config.h.in
|
|
@@ -141,11 +141,6 @@
|
|
/* LOONGARCH floating-point ABI for ld.so. */
|
|
#undef LOONGARCH_ABI_FRLEN
|
|
|
|
-/* Assembler support LoongArch LASX/LSX vector instructions.
|
|
- This macro becomes obsolete when glibc increased the minimum
|
|
- required version of GNU 'binutils' to 2.41 or later. */
|
|
-#define HAVE_LOONGARCH_VEC_ASM 0
|
|
-
|
|
/* Linux specific: minimum supported kernel version. */
|
|
#undef __LINUX_KERNEL_VERSION
|
|
|
|
diff --git a/sysdeps/loongarch/configure b/sysdeps/loongarch/configure
|
|
index 5843c7cf..395ddc92 100644
|
|
--- a/sysdeps/loongarch/configure
|
|
+++ b/sysdeps/loongarch/configure
|
|
@@ -128,8 +128,7 @@ rm -f conftest*
|
|
fi
|
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_loongarch_vec_asm" >&5
|
|
printf "%s\n" "$libc_cv_loongarch_vec_asm" >&6; }
|
|
-if test $libc_cv_loongarch_vec_asm = yes; then
|
|
- printf "%s\n" "#define HAVE_LOONGARCH_VEC_ASM 1" >>confdefs.h
|
|
-
|
|
+if test $libc_cv_loongarch_vec_asm = no; then
|
|
+ as_fn_error $? "binutils version is too old, use 2.41 or newer version" "$LINENO" 5
|
|
fi
|
|
|
|
diff --git a/sysdeps/loongarch/configure.ac b/sysdeps/loongarch/configure.ac
|
|
index ba89d834..989287c6 100644
|
|
--- a/sysdeps/loongarch/configure.ac
|
|
+++ b/sysdeps/loongarch/configure.ac
|
|
@@ -74,6 +74,6 @@ else
|
|
libc_cv_loongarch_vec_asm=no
|
|
fi
|
|
rm -f conftest*])
|
|
-if test $libc_cv_loongarch_vec_asm = yes; then
|
|
- AC_DEFINE(HAVE_LOONGARCH_VEC_ASM)
|
|
+if test $libc_cv_loongarch_vec_asm = no; then
|
|
+ AC_MSG_ERROR([binutils version is too old, use 2.41 or newer version])
|
|
fi
|
|
diff --git a/sysdeps/loongarch/dl-machine.h b/sysdeps/loongarch/dl-machine.h
|
|
index 51ce9af8..066bb233 100644
|
|
--- a/sysdeps/loongarch/dl-machine.h
|
|
+++ b/sysdeps/loongarch/dl-machine.h
|
|
@@ -270,7 +270,7 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
|
|
/* If using PLTs, fill in the first two entries of .got.plt. */
|
|
if (l->l_info[DT_JMPREL])
|
|
{
|
|
-#if HAVE_LOONGARCH_VEC_ASM && !defined __loongarch_soft_float
|
|
+#if !defined __loongarch_soft_float
|
|
extern void _dl_runtime_resolve_lasx (void) attribute_hidden;
|
|
extern void _dl_runtime_resolve_lsx (void) attribute_hidden;
|
|
#endif
|
|
@@ -300,7 +300,7 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
|
|
/* This function will get called to fix up the GOT entry
|
|
indicated by the offset on the stack, and then jump to
|
|
the resolved address. */
|
|
-#if HAVE_LOONGARCH_VEC_ASM && !defined __loongarch_soft_float
|
|
+#if !defined __loongarch_soft_float
|
|
if (SUPPORT_LASX)
|
|
gotplt[0] = (ElfW(Addr)) &_dl_runtime_resolve_lasx;
|
|
else if (SUPPORT_LSX)
|
|
diff --git a/sysdeps/loongarch/dl-trampoline.S b/sysdeps/loongarch/dl-trampoline.S
|
|
index f6ba5e44..8fd91469 100644
|
|
--- a/sysdeps/loongarch/dl-trampoline.S
|
|
+++ b/sysdeps/loongarch/dl-trampoline.S
|
|
@@ -19,7 +19,7 @@
|
|
#include <sysdep.h>
|
|
#include <sys/asm.h>
|
|
|
|
-#if HAVE_LOONGARCH_VEC_ASM && !defined __loongarch_soft_float
|
|
+#if !defined __loongarch_soft_float
|
|
#define USE_LASX
|
|
#define _dl_runtime_resolve _dl_runtime_resolve_lasx
|
|
#include "dl-trampoline.h"
|
|
--
|
|
2.33.0
|
|
|