The macros HWCAP_LOONGARCH_LSX and HWCAP_LOONGARCH_LASX were defined
in glibc 2.38. However, r16-5155 uses these two macros directly
without checking whether they are defined. This causes errors when
compiling libgcc with glibc versions earlier than 2.38.
gcc/ChangeLog:
* doc/extend.texi: Remove the incorrect prompt message.
libgcc/ChangeLog:
* config/loongarch/cpuinfo.c (HWCAP_LOONGARCH_LSX): Define
it if it is not defined.
(HWCAP_LOONGARCH_LASX): Likewise.
---
gcc/doc/extend.texi | 2 --
libgcc/config/loongarch/cpuinfo.c | 11 +++++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index b9d1a6aac75..2be168acbe6 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -5015,8 +5015,6 @@ from the code model of the callee function.
Like attribute @code{target}, these options also reflect the behavior of
similar command line options.
-Note that this attribute requires GLIBC2.38 and newer that support HWCAP.
-
@code{string} can take the following values:
@itemize @bullet
diff --git a/libgcc/config/loongarch/cpuinfo.c
b/libgcc/config/loongarch/cpuinfo.c
index 293eb52f047..a398bcbff12 100644
--- a/libgcc/config/loongarch/cpuinfo.c
+++ b/libgcc/config/loongarch/cpuinfo.c
@@ -73,6 +73,17 @@ __init_loongarch_features_resolver (void)
if (CPUCFG3 & CPUCFG3_LD_SEQ_SA)
setCPUFeature (FEAT_LD_SEQ_SA);
+/* The macros HWCAP_LOONGARCH_LSX and HWCAP_LOONGARCH_LASX are not defined
+ in glibc versions earlier than 2.38. If these two macros are not defined,
+ define them with reference to asm/hwcap.h. */
+#ifndef HWCAP_LOONGARCH_LSX
+#define HWCAP_LOONGARCH_LSX (1 << 4)
+#endif
+
+#ifndef HWCAP_LOONGARCH_LASX
+#define HWCAP_LOONGARCH_LASX (1 << 5)
+#endif
+
/* LSX and LASX can be disabled/enabled by kernel: on some old kernel
versions the vector context switch wasn't implemented and so they are
always disabled, and on Linux >= 6.18-rc1 the user can pass simd=
--
2.34.1