Message ID | 20241219202003.2651277-9-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 2a3d98ed55..eec40df280 100644 --- a/math/Versions +++ b/math/Versions @@ -677,5 +677,6 @@ libm { asinf; acoshf; atan2f; + atanhf; } } diff --git a/math/w_atanhf.c b/math/w_atanhf.c new file mode 100644 index 0000000000..41842a2405 --- /dev/null +++ b/math/w_atanhf.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_atanh_template.c> +versioned_symbol (libm, __atanhf, atanhf, GLIBC_2_41); +libm_alias_float_other (__atanhf, atanhf) diff --git a/math/w_atanhf_compat.c b/math/w_atanhf_compat.c index 2f076e2c9c..7b69b5834b 100644 --- a/math/w_atanhf_compat.c +++ b/math/w_atanhf_compat.c @@ -21,10 +21,10 @@ #include <libm-alias-float.h> -#if LIBM_SVID_COMPAT +#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_41) /* wrapper atanhf */ float -__atanhf (float x) +__atanh_compatf (float x) { if (__builtin_expect (isgreaterequal (fabsf (x), 1.0f), 0) && _LIB_VERSION != _IEEE_) @@ -35,5 +35,10 @@ __atanhf (float x) return __ieee754_atanhf (x); } -libm_alias_float (__atanh, atanh) +# ifdef NO_COMPAT_NEEDED +strong_alias (__atanh_compatf, __atanhf) +libm_alias_float (__atanh_compat, atanh) +# else +compat_symbol (libm, __atanh_compatf, atanhf, GLIBC_2_0); +# endif #endif diff --git a/sysdeps/ieee754/flt-32/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c index 5138408324..ce8b5d468d 100644 --- a/sysdeps/ieee754/flt-32/e_atanhf.c +++ b/sysdeps/ieee754/flt-32/e_atanhf.c @@ -27,6 +27,8 @@ SOFTWARE. #include <math.h> #include <stdint.h> #include <libm-alias-finite.h> +#include <libm-alias-float.h> +#include <math-svid-compat.h> #include "math_config.h" static __attribute__((noinline)) float @@ -42,7 +44,7 @@ as_special (float x) } float -__ieee754_atanhf (float x) +__atanhf (float x) { /* Calculate atanh(x) using the difference of two logarithms -- atanh(x) = (ln(1+x) - ln(1-x))/2 */ @@ -175,4 +177,11 @@ __ieee754_atanhf (float x) } return ub; } +strong_alias (__atanhf, __ieee754_atanhf) +#if LIBM_SVID_COMPAT +versioned_symbol (libm, __atanhf, atanhf, GLIBC_2_41); +libm_alias_float_other (__atanh, atanh) +#else +libm_alias_float (__atanh, atanh) +#endif libm_alias_finite (__ieee754_atanhf, __atanhf) diff --git a/sysdeps/ieee754/flt-32/w_atanhf.c b/sysdeps/ieee754/flt-32/w_atanhf.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ieee754/flt-32/w_atanhf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c b/sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c new file mode 100644 index 0000000000..1ec8434684 --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c @@ -0,0 +1,8 @@ +/* m68k provides an optimized __ieee754_atanhf. */ +#ifdef SHARED +# define NO_COMPAT_NEEDED 1 +# include <math/w_atanhf_compat.c> +#else +# include <math-type-macros-float.h> +# include <w_atanh_template.c> +#endif diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index 3db9b3adfa..8a677586a4 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1249,6 +1249,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 2a35531ea3..a24d8d7cc0 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1217,6 +1217,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index cbfe056a3c..75e23816fb 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1376,6 +1376,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist index e0b25bc3e0..a17def2e99 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist @@ -900,6 +900,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist index e0b25bc3e0..a17def2e99 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist @@ -900,6 +900,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 1424f5750d..3a1a59941b 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -900,6 +900,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index a8a721d67f..258ac73394 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1256,6 +1256,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index e0b25bc3e0..a17def2e99 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -900,6 +900,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist index 542f70b72b..25c8973206 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist @@ -900,6 +900,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist index 542f70b72b..25c8973206 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist @@ -900,6 +900,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index db67a1e9b3..17e652a194 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -900,6 +900,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 8c9766fdab..96fd6402a1 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1217,6 +1217,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index 714fb3e30b..67a2149329 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -1047,6 +1047,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 9d22bfee36..7e208298a8 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -1046,6 +1046,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 12ee8f317d..e2398bbaf2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -1040,6 +1040,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index cbcda8ea59..f79497406e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1401,6 +1401,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index 66b6d77226..cd0a0aaf74 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1320,6 +1320,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index e93f6dd720..c942a3feb3 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1320,6 +1320,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist index df3534dd3c..63df58337b 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist @@ -900,6 +900,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist index df3534dd3c..63df58337b 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist @@ -900,6 +900,7 @@ GLIBC_2.41 atan2pif32 F GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif32 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index ebed5cb2a1..7c5b14aac8 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1327,6 +1327,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 4d35d566c3..ea6cb72a4f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1217,6 +1217,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index e3c4f35dd1..afba1055e8 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1250,6 +1250,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 46fca15315..5164a53b43 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1250,6 +1250,7 @@ GLIBC_2.41 atan2pif32x F GLIBC_2.41 atan2pif64 F GLIBC_2.41 atan2pif64x F GLIBC_2.41 atan2pil F +GLIBC_2.41 atanhf F GLIBC_2.41 atanpi F GLIBC_2.41 atanpif F GLIBC_2.41 atanpif128 F