diff mbox series

[10/10] math: Remove the error handling wrapper from sinhf

Message ID 20241219202003.2651277-11-adhemerval.zanella@linaro.org
State New
Headers show
Series Remove the SVID wrapper from CORE-MATH functions. | expand

Commit Message

Adhemerval Zanella Netto Dec. 19, 2024, 8:13 p.m. UTC
It improves latency for about 3-10% and throughput for about 5-15%.
---
 math/Versions                                       |  1 +
 math/w_sinhf.c                                      |  8 ++++++++
 math/w_sinhf_compat.c                               | 11 ++++++++---
 sysdeps/ieee754/flt-32/e_sinhf.c                    | 13 ++++++++++++-
 sysdeps/ieee754/flt-32/w_sinhf.c                    |  1 +
 sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c            |  8 ++++++++
 sysdeps/mach/hurd/i386/libm.abilist                 |  1 +
 sysdeps/unix/sysv/linux/aarch64/libm.abilist        |  1 +
 sysdeps/unix/sysv/linux/alpha/libm.abilist          |  1 +
 sysdeps/unix/sysv/linux/arm/be/libm.abilist         |  1 +
 sysdeps/unix/sysv/linux/arm/le/libm.abilist         |  1 +
 sysdeps/unix/sysv/linux/hppa/libm.abilist           |  1 +
 sysdeps/unix/sysv/linux/i386/libm.abilist           |  1 +
 sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist  |  1 +
 sysdeps/unix/sysv/linux/microblaze/be/libm.abilist  |  1 +
 sysdeps/unix/sysv/linux/microblaze/le/libm.abilist  |  1 +
 sysdeps/unix/sysv/linux/mips/mips32/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/mips/mips64/libm.abilist    |  1 +
 .../sysv/linux/powerpc/powerpc32/fpu/libm.abilist   |  1 +
 .../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist |  1 +
 .../sysv/linux/powerpc/powerpc64/be/libm.abilist    |  1 +
 .../sysv/linux/powerpc/powerpc64/le/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist   |  1 +
 sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist   |  1 +
 sysdeps/unix/sysv/linux/sh/be/libm.abilist          |  1 +
 sysdeps/unix/sysv/linux/sh/le/libm.abilist          |  1 +
 sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist  |  1 +
 sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist  |  1 +
 sysdeps/unix/sysv/linux/x86_64/64/libm.abilist      |  1 +
 sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist     |  1 +
 30 files changed, 62 insertions(+), 4 deletions(-)
 create mode 100644 math/w_sinhf.c
 create mode 100644 sysdeps/ieee754/flt-32/w_sinhf.c
 create mode 100644 sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c
diff mbox series

Patch

diff --git a/math/Versions b/math/Versions
index 056fc19634..a295cb6617 100644
--- a/math/Versions
+++ b/math/Versions
@@ -679,5 +679,6 @@  libm {
     atan2f;
     atanhf;
     coshf;
+    sinhf;
   }
 }
diff --git a/math/w_sinhf.c b/math/w_sinhf.c
new file mode 100644
index 0000000000..e4034ff0be
--- /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_41);
+libm_alias_float_other (__sinhf, sinhf)
diff --git a/math/w_sinhf_compat.c b/math/w_sinhf_compat.c
index e8de6675af..85af046f78 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_41)
 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..4f75845446 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_41);
+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 65a28fea55..98b0b703a3 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1270,6 +1270,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index cd233f1f14..c2b16090ef 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1238,6 +1238,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 9447358ece..49894c1292 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1397,6 +1397,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 31ec45ce5f..1f679b77b7 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -917,6 +917,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 31ec45ce5f..1f679b77b7 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -917,6 +917,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 0c099cf351..bb8f3bad43 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -917,6 +917,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 7caa63a837..db5ca197a8 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1277,6 +1277,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 31ec45ce5f..1f679b77b7 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -917,6 +917,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index a8992cc5ed..34c1f088c2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -917,6 +917,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index a8992cc5ed..34c1f088c2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -917,6 +917,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 087faf1860..554e3329b4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -917,6 +917,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index b6f6a024ce..57d725f4f0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1238,6 +1238,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index bb30867687..d088953433 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1064,6 +1064,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 1ab0727602..ebec189cc9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1063,6 +1063,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 9ff3aeb577..cf61cc0fb9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1057,6 +1057,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 664416d9c1..686c9dc01a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1422,6 +1422,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index f1c7ccbcc1..4a31376e2f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1341,6 +1341,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index fb3a37fef4..1a30a61fd4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1341,6 +1341,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index cf6351a5e0..80c1c3841d 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -917,6 +917,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index cf6351a5e0..80c1c3841d 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -917,6 +917,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif32 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index c0b1c5af7f..53c9af7fab 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1348,6 +1348,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 6bb1b6e27f..f68911359e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1238,6 +1238,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index c39d4ae4a3..b6345c8747 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1271,6 +1271,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index d7e991a8b6..1d6d324f4d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1271,6 +1271,7 @@  GLIBC_2.41 cospil F
 GLIBC_2.41 lgammaf F
 GLIBC_2.41 lgammaf_r F
 GLIBC_2.41 log10f F
+GLIBC_2.41 sinhf F
 GLIBC_2.41 sinpi F
 GLIBC_2.41 sinpif F
 GLIBC_2.41 sinpif128 F