summaryrefslogtreecommitdiff
path: root/LoongArch-Add-minuimum-binutils-required-version.patch
diff options
context:
space:
mode:
Diffstat (limited to 'LoongArch-Add-minuimum-binutils-required-version.patch')
-rw-r--r--LoongArch-Add-minuimum-binutils-required-version.patch102
1 files changed, 102 insertions, 0 deletions
diff --git a/LoongArch-Add-minuimum-binutils-required-version.patch b/LoongArch-Add-minuimum-binutils-required-version.patch
new file mode 100644
index 0000000..9bdcf22
--- /dev/null
+++ b/LoongArch-Add-minuimum-binutils-required-version.patch
@@ -0,0 +1,102 @@
+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
+