Pushed to r16-5640. 在 2025/11/24 下午5:33, Lulu Cheng 写道:
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 @bulletdiff --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=
