]> sourceware.org Git - glibc.git/commitdiff
LoongArch: Add minuimum binutils required version
authordengjianbo <dengjianbo@loongson.cn>
Tue, 8 Aug 2023 06:15:43 +0000 (14:15 +0800)
committercaiyinyu <caiyinyu@loongson.cn>
Mon, 14 Aug 2023 01:47:09 +0000 (09:47 +0800)
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.

NEWS
config.h.in
sysdeps/loongarch/configure
sysdeps/loongarch/configure.ac
sysdeps/loongarch/dl-machine.h
sysdeps/loongarch/dl-trampoline.S

diff --git a/NEWS b/NEWS
index 97379002f3387fb4b481692ab9d9b69a35908f66..1d9ce09488fe7b688e3fb7f3ca16cce3034fa6fc 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -20,7 +20,8 @@ Deprecated and removed features, and other changes affecting compatibility:
 
 Changes to build and runtime requirements:
 
-  [Add changes to build and runtime requirements here]
+* Building on LoongArch requires at a minimum binutils 2.41 for vector
+  instructions.
 
 Security related changes:
 
index 0dedc124f7048d2b6ba93aed719273af719e89ba..44a34072a47aa0082594036c97301c6804427fa4 100644 (file)
 /* 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
 
index 5843c7cf90e797a42dfb1619efefd3cdd124b9b9..395ddc92cac9d78f33c9c61cf9cda6c53446d1f7 100644 (file)
@@ -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
 
index ba89d8346de01f942b1d78533bc7300d30571dde..989287c6d2eabe83e959a9b64c6ffa103413ca81 100644 (file)
@@ -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
index 51ce9af84b09d9cca6437e7801f0ea15f75cdce8..066bb233ac3fe9f75d60e7d63788a0d2b6d5fc08 100644 (file)
@@ -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)
index f6ba5e443c9dceb10bf5eac891bec159aa7db852..8fd914697842c515b49fbb7db96099cc2050153f 100644 (file)
@@ -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"
This page took 0.057231 seconds and 5 git commands to generate.