about summary refs log tree commit diff
path: root/sysdeps/loongarch
diff options
context:
space:
mode:
authordengjianbo <dengjianbo@loongson.cn>2023-08-08 14:15:43 +0800
committercaiyinyu <caiyinyu@loongson.cn>2023-08-14 09:47:09 +0800
commitcb7954c4c2f46e5da5374c75576612c9b02b2592 (patch)
treeae31a4da26ee1dd4be1d7dedcce4b54d336fda12 /sysdeps/loongarch
parent57b2c14272998c0ea08c005edbd90887c2d5fa6b (diff)
downloadglibc-cb7954c4c2f46e5da5374c75576612c9b02b2592.tar.gz
glibc-cb7954c4c2f46e5da5374c75576612c9b02b2592.tar.xz
glibc-cb7954c4c2f46e5da5374c75576612c9b02b2592.zip
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.
Diffstat (limited to 'sysdeps/loongarch')
-rw-r--r--sysdeps/loongarch/configure5
-rw-r--r--sysdeps/loongarch/configure.ac4
-rw-r--r--sysdeps/loongarch/dl-machine.h4
-rw-r--r--sysdeps/loongarch/dl-trampoline.S2
4 files changed, 7 insertions, 8 deletions
diff --git a/sysdeps/loongarch/configure b/sysdeps/loongarch/configure
index 5843c7cf90..395ddc92ca 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 ba89d8346d..989287c6d2 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 51ce9af84b..066bb233ac 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 f6ba5e443c..8fd9146978 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"