about summary refs log tree commit diff
path: root/sysdeps/loongarch
diff options
context:
space:
mode:
authormengqinggang <mengqinggang@loongson.cn>2024-05-20 17:05:12 +0800
committercaiyinyu <caiyinyu@loongson.cn>2024-05-21 11:23:03 +0800
commit16d47c1594c5bcd334d0b8dbf147cda917f19bc4 (patch)
tree085bed18533ec6c63753cb865c6dc5f94f7a197a /sysdeps/loongarch
parent4b30c644d24c07c06b587cb46f2e50adc2c3c3f0 (diff)
downloadglibc-16d47c1594c5bcd334d0b8dbf147cda917f19bc4.tar.gz
glibc-16d47c1594c5bcd334d0b8dbf147cda917f19bc4.tar.xz
glibc-16d47c1594c5bcd334d0b8dbf147cda917f19bc4.zip
LoongArch: Fix tst-gnu2-tls2 compiler error
Add -mno-lsx to tst-gnu2-tlsmod*.c if gcc support -mno-lsx.
Add escape character '\' in vector support test function.
Diffstat (limited to 'sysdeps/loongarch')
-rw-r--r--sysdeps/loongarch/Makefile2
-rw-r--r--sysdeps/loongarch/configure3
-rw-r--r--sysdeps/loongarch/configure.ac5
3 files changed, 8 insertions, 2 deletions
diff --git a/sysdeps/loongarch/Makefile b/sysdeps/loongarch/Makefile
index a4ee915eff..b00c090faa 100644
--- a/sysdeps/loongarch/Makefile
+++ b/sysdeps/loongarch/Makefile
@@ -35,10 +35,12 @@ sysdep-dl-routines += \
 # Disable the compiler from using LSX for TLS descriptor tests, or storing into
 # 16B TLS variable may clobber FP/vector registers and prevent us from checking
 # their contents.
+ifeq (yes,$(loongarch-vec-com))
 CFLAGS-tst-gnu2-tls2mod0.c += -mno-lsx
 CFLAGS-tst-gnu2-tls2mod1.c += -mno-lsx
 CFLAGS-tst-gnu2-tls2mod2.c += -mno-lsx
 endif
+endif
 
 # LoongArch's assembler also needs to know about PIC as it changes the
 # definition of some assembler macros.
diff --git a/sysdeps/loongarch/configure b/sysdeps/loongarch/configure
index 731f79438f..afcef6cd22 100644
--- a/sysdeps/loongarch/configure
+++ b/sysdeps/loongarch/configure
@@ -143,3 +143,6 @@ then
   printf "%s\n" "#define HAVE_LOONGARCH_VEC_COM 1" >>confdefs.h
 
 fi
+config_vars="$config_vars
+loongarch-vec-com = $libc_cv_loongarch_vec_com"
+
diff --git a/sysdeps/loongarch/configure.ac b/sysdeps/loongarch/configure.ac
index 24fee55dcc..c56a203574 100644
--- a/sysdeps/loongarch/configure.ac
+++ b/sysdeps/loongarch/configure.ac
@@ -71,8 +71,8 @@ AC_CACHE_CHECK([for vector support in compiler],
 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 void foo (void)
 {
-  asm volatile ("vldi $vr0, 1" ::: "$vr0");
-  asm volatile ("xvldi $xr0, 1" ::: "$xr0");
+  asm volatile ("vldi \$vr0, 1" ::: "\$vr0");
+  asm volatile ("xvldi \$xr0, 1" ::: "\$xr0");
 }
 ]])],
                 [libc_cv_loongarch_vec_com=yes],
@@ -81,3 +81,4 @@ if test "$libc_cv_loongarch_vec_com" = yes ;
 then
   AC_DEFINE(HAVE_LOONGARCH_VEC_COM)
 fi
+LIBC_CONFIG_VAR([loongarch-vec-com], [$libc_cv_loongarch_vec_com])