Message ID | 20250130163024.2032523-10-adhemerval.zanella@linaro.org |
---|---|
State | New |
Headers | show |
Series | Remove the SVID wrapper from CORE-MATH functions. | expand |
diff --git a/math/Versions b/math/Versions index 7f84a72b32..f37b7d8efd 100644 --- a/math/Versions +++ b/math/Versions @@ -680,5 +680,6 @@ libm { acoshf; atan2f; atanhf; + coshf; } } diff --git a/math/w_coshf.c b/math/w_coshf.c new file mode 100644 index 0000000000..a786f7c50a --- /dev/null +++ b/math/w_coshf.c @@ -0,0 +1,8 @@ +#include <math-type-macros-float.h> +#undef __USE_WRAPPER_TEMPLATE +#define __USE_WRAPPER_TEMPLATE 1 +#undef declare_mgen_alias +#define declare_mgen_alias(a, b) +#include <w_cosh_template.c> +versioned_symbol (libm, __coshf, coshf, GLIBC_2_42); +libm_alias_float_other (__coshf, coshf) diff --git a/math/w_coshf_compat.c b/math/w_coshf_compat.c index ce5e196c07..39b56da101 100644 --- a/math/w_coshf_compat.c +++ b/math/w_coshf_compat.c @@ -20,10 +20,11 @@ #include <math_private.h> #include <math-svid-compat.h> #include <libm-alias-float.h> +#include <shlib-compat.h> -#if LIBM_SVID_COMPAT +#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42) float -__coshf (float x) +__cosh_compatf (float x) { float z = __ieee754_coshf (x); if (__builtin_expect (!isfinite (z), 0) && isfinite (x) @@ -32,5 +33,10 @@ __coshf (float x) return z; } -libm_alias_float (__cosh, cosh) +# ifdef NO_COMPAT_NEEDED +strong_alias (__cosh_compatf, __coshf) +libm_alias_float (__cosh_compat, cosh) +# else +compat_symbol (libm, __cosh_compatf, coshf, GLIBC_2_0); +# endif #endif diff --git a/sysdeps/ieee754/flt-32/e_coshf.c b/sysdeps/ieee754/flt-32/e_coshf.c index 602d2b413f..7dea283e7a 100644 --- a/sysdeps/ieee754/flt-32/e_coshf.c +++ b/sysdeps/ieee754/flt-32/e_coshf.c @@ -27,10 +27,12 @@ SOFTWARE. #include <stdint.h> #include <math.h> #include <libm-alias-finite.h> +#include <libm-alias-float.h> +#include <math-svid-compat.h> #include "math_config.h" float -__ieee754_coshf (float x) +__coshf (float x) { static const double c[] = { @@ -114,4 +116,11 @@ __ieee754_coshf (float x) } return ub; } +strong_alias (__coshf, __ieee754_coshf) +#if LIBM_SVID_COMPAT +versioned_symbol (libm, __coshf, coshf, GLIBC_2_42); +libm_alias_float_other (__cosh, cosh) +#else +libm_alias_float (__cosh, cosh) +#endif libm_alias_finite (__ieee754_coshf, __coshf) diff --git a/sysdeps/ieee754/flt-32/w_coshf.c b/sysdeps/ieee754/flt-32/w_coshf.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ieee754/flt-32/w_coshf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/m68k/m680x0/fpu/w_coshf_compat.c b/sysdeps/m68k/m680x0/fpu/w_coshf_compat.c new file mode 100644 index 0000000000..14444a9f0c --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_coshf_compat.c @@ -0,0 +1,8 @@ +/* m68k provides an optimized __ieee754_coshhf. */ +#ifdef SHARED +# define NO_COMPAT_NEEDED 1 +# include <math/w_coshf_compat.c> +#else +# include <math-type-macros-float.h> +# include <w_cosh_template.c> +#endif diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index dfc07786eb..d844987004 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1282,6 +1282,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 586d40d5c6..e6be5f808b 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1250,6 +1250,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index fb641db738..807c0556aa 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1409,6 +1409,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist index 1b5d476450..9dcbfa267b 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist @@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist index 1b5d476450..9dcbfa267b 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist @@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 16885c419f..995f56f2be 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 157b976b1a..b144dfbe0d 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1289,6 +1289,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 1b5d476450..9dcbfa267b 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist index b4d452e44f..2cfcc419c2 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist @@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist index b4d452e44f..2cfcc419c2 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist @@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 6163837b48..db69c56c5a 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 11dcf4254a..39486d894e 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1250,6 +1250,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index 13e06021e0..53c03becb6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -1072,6 +1072,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index cd6e743a64..4849a96fd6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -1071,6 +1071,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 60df9c03c8..1848e326b0 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -1065,6 +1065,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index 550c36ecb9..6dd5f82933 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1434,6 +1434,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index ec9a35b914..ffacf4ae91 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1353,6 +1353,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 6b5f81265a..0f8fca59b3 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1353,6 +1353,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist index 04714bf403..77b3e3160f 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist @@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist index 04714bf403..77b3e3160f 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist @@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 3256cc91a0..5cecff58d3 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1360,6 +1360,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 980cd89d2f..e74513e436 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1250,6 +1250,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index d9c7b785b3..d8443b79ca 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1283,6 +1283,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index d235c026cf..f7d6dab97f 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1283,6 +1283,7 @@ GLIBC_2.42 acoshf F GLIBC_2.42 asinf F GLIBC_2.42 atan2f F GLIBC_2.42 atanhf F +GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F