Message ID | 20230804095359.2384557-2-dengjianbo@loongson.cn |
---|---|
State | New |
Headers | show |
Series | [v3,1/3] LoongArch: Redefine macro LEAF/ENTRY. | expand |
On Fri, 2023-08-04 at 17:53 +0800, dengjianbo wrote: > 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. I guess we need a NEWS entry for this. > --- > 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 0dedc124f7..44a34072a4 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 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"
On 2023-08-07 13:31, Xi Ruoyao wrote: > On Fri, 2023-08-04 at 17:53 +0800, dengjianbo wrote: >> 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. > I guess we need a NEWS entry for this. > Sorry for the missing part, an entry in the NEWS has been added, please kindly see the patch v4: https://sourceware.org/pipermail/libc-alpha/2023-August/150731.html
diff --git a/config.h.in b/config.h.in index 0dedc124f7..44a34072a4 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 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"