Message ID | 20250130163024.2032523-11-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 f37b7d8efd..38733c38df 100644 --- a/math/Versions +++ b/math/Versions @@ -681,5 +681,6 @@ libm { atan2f; atanhf; coshf; + sinhf; } } diff --git a/math/w_sinhf.c b/math/w_sinhf.c new file mode 100644 index 0000000000..1256de139c --- /dev/null +++ b/math/w_sinhf.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_sinh_template.c> +versioned_symbol (libm, __sinhf, sinhf, GLIBC_2_42); +libm_alias_float_other (__sinhf, sinhf) diff --git a/math/w_sinhf_compat.c b/math/w_sinhf_compat.c index e8de6675af..f26bcfbacc 100644 --- a/math/w_sinhf_compat.c +++ b/math/w_sinhf_compat.c @@ -21,9 +21,9 @@ #include <math-svid-compat.h> #include <libm-alias-float.h> -#if LIBM_SVID_COMPAT +#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42) float -__sinhf (float x) +__sinh_compatf (float x) { float z = __ieee754_sinhf (x); if (__builtin_expect (!isfinite (z), 0) && isfinite (x) @@ -32,5 +32,10 @@ __sinhf (float x) return z; } -libm_alias_float (__sinh, sinh) +# ifdef NO_COMPAT_NEEDED +strong_alias (__sinh_compatf, __sinhf) +libm_alias_float (__sinh_compat, sinh) +# else +compat_symbol (libm, __sinh_compatf, sinhf, GLIBC_2_0); +# endif #endif diff --git a/sysdeps/ieee754/flt-32/e_sinhf.c b/sysdeps/ieee754/flt-32/e_sinhf.c index c007c7d174..d413949bc4 100644 --- a/sysdeps/ieee754/flt-32/e_sinhf.c +++ b/sysdeps/ieee754/flt-32/e_sinhf.c @@ -24,14 +24,17 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +#include <errno.h> #include <math.h> #include <stdint.h> #include <libm-alias-finite.h> +#include <libm-alias-float.h> +#include <math-svid-compat.h> #include <math-narrow-eval.h> #include "math_config.h" float -__ieee754_sinhf (float x) +__sinhf (float x) { static const double c[] = { @@ -75,6 +78,7 @@ __ieee754_sinhf (float x) return copysignf (INFINITY, x); /* +-inf */ } float r = math_narrow_eval (sgn * 0x1.fffffep127f); + __set_errno (ERANGE); return r; } if (__glibc_unlikely (ux < 0x7c000000u)) @@ -128,4 +132,11 @@ __ieee754_sinhf (float x) } return ub; } +strong_alias (__sinhf, __ieee754_sinhf) +#if LIBM_SVID_COMPAT +versioned_symbol (libm, __sinhf, sinhf, GLIBC_2_42); +libm_alias_float_other (__sinh, sinh) +#else +libm_alias_float (__sinh, sinh) +#endif libm_alias_finite (__ieee754_sinhf, __sinhf) diff --git a/sysdeps/ieee754/flt-32/w_sinhf.c b/sysdeps/ieee754/flt-32/w_sinhf.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ieee754/flt-32/w_sinhf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c b/sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c new file mode 100644 index 0000000000..e8e4bc9326 --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c @@ -0,0 +1,8 @@ +/* m68k provides an optimized __ieee754_sinhhf. */ +#ifdef SHARED +# define NO_COMPAT_NEEDED 1 +# include <math/w_sinhf_compat.c> +#else +# include <math-type-macros-float.h> +# include <w_sinh_template.c> +#endif diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index d844987004..6d50c9b9ce 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1286,3 +1286,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index e6be5f808b..7b76073c62 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1254,3 +1254,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 807c0556aa..d08bdd0f95 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1413,3 +1413,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist index 9dcbfa267b..83fbff1566 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist @@ -929,3 +929,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist index 9dcbfa267b..83fbff1566 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist @@ -929,3 +929,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 995f56f2be..1693844375 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -929,3 +929,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index b144dfbe0d..3085068ca2 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1293,3 +1293,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 9dcbfa267b..83fbff1566 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -929,3 +929,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist index 2cfcc419c2..c062862c9b 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist @@ -929,3 +929,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist index 2cfcc419c2..c062862c9b 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist @@ -929,3 +929,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index db69c56c5a..08e47ee7f8 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -929,3 +929,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 39486d894e..2e7098e915 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1254,3 +1254,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index 53c03becb6..1b696512b1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -1076,3 +1076,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 4849a96fd6..d212b7ed4f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -1075,3 +1075,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 1848e326b0..c9d121b6c6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -1069,3 +1069,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index 6dd5f82933..1a0fd6fe02 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1438,3 +1438,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index ffacf4ae91..8d0803dd9e 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1357,3 +1357,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 0f8fca59b3..844759b73c 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1357,3 +1357,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist index 77b3e3160f..b0601d88ac 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist @@ -929,3 +929,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist index 77b3e3160f..b0601d88ac 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist @@ -929,3 +929,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 5cecff58d3..87489eef19 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1364,3 +1364,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index e74513e436..04635f1df0 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1254,3 +1254,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index d8443b79ca..262e14cafe 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1287,3 +1287,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index f7d6dab97f..9177a0f88c 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1287,3 +1287,4 @@ GLIBC_2.42 coshf F GLIBC_2.42 lgammaf F GLIBC_2.42 lgammaf_r F GLIBC_2.42 log10f F +GLIBC_2.42 sinhf F