diff --git a/math/Versions b/math/Versions
index ece5ad7fd1..79c82de16e 100644
--- a/math/Versions
+++ b/math/Versions
@@ -675,5 +675,6 @@ libm {
     lgammaf; lgammaf_r;
     acosf;
     asinf;
+    acoshf;
   }
 }
diff --git a/math/w_acoshf.c b/math/w_acoshf.c
new file mode 100644
index 0000000000..c1a7ca24f9
--- /dev/null
+++ b/math/w_acoshf.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_acosh_template.c>
+versioned_symbol (libm, __acoshf, acoshf, GLIBC_2_41);
+libm_alias_float_other (__acoshf, acoshf)
diff --git a/math/w_acoshf_compat.c b/math/w_acoshf_compat.c
index 7ed4bbb857..a472c30147 100644
--- a/math/w_acoshf_compat.c
+++ b/math/w_acoshf_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 acoshf */
 float
-__acoshf (float x)
+__acosh_compatf (float x)
 {
   if (__builtin_expect (isless (x, 1.0f), 0) && _LIB_VERSION != _IEEE_)
     /* acosh(x<1) */
@@ -32,5 +32,5 @@ __acoshf (float x)
 
   return __ieee754_acoshf (x);
 }
-libm_alias_float (__acosh, acosh)
+compat_symbol (libm, __acosh_compatf, acoshf, GLIBC_2_0);
 #endif
diff --git a/sysdeps/ieee754/flt-32/e_acoshf.c b/sysdeps/ieee754/flt-32/e_acoshf.c
index a0a0abc2dd..c44429acd3 100644
--- a/sysdeps/ieee754/flt-32/e_acoshf.c
+++ b/sysdeps/ieee754/flt-32/e_acoshf.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
@@ -43,7 +45,7 @@ as_special (float x)
 }
 
 float
-__ieee754_acoshf (float x)
+__acoshf (float x)
 {
   static const double ix[] =
     {
@@ -198,4 +200,11 @@ __ieee754_acoshf (float x)
   else
     return as_special (x);
 }
+strong_alias (__acoshf, __ieee754_acoshf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __acoshf, acoshf, GLIBC_2_41);
+libm_alias_float_other (__acosh, acosh)
+#else
+libm_alias_float (__acosh, acosh)
+#endif
 libm_alias_finite (__ieee754_acoshf, __acoshf)
diff --git a/sysdeps/ieee754/flt-32/w_acoshf.c b/sysdeps/ieee754/flt-32/w_acoshf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_acoshf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index 7bf32cec28..6d315ff0d0 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1222,6 +1222,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 7ce045c75b..c77803f475 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1190,6 +1190,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index e76aebf1b2..5f7a952e69 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1349,6 +1349,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 9de26ad003..f62c5e656f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -879,6 +879,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 9de26ad003..f62c5e656f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -879,6 +879,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index d9bb2554cb..c5b3f68692 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -879,6 +879,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index ce9f671f15..9774e7b519 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1229,6 +1229,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 9de26ad003..f62c5e656f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -879,6 +879,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index 9dfc70db43..33ec1b4361 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -914,6 +914,7 @@ GLIBC_2.40 logp1f32 F
 GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index f0d451d7d1..8fc18e8277 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -879,6 +879,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index f0d451d7d1..8fc18e8277 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -879,6 +879,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index bec657f782..8587d0aa14 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -879,6 +879,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 1b799c06c7..458a07084f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1190,6 +1190,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 89d3d18948..9c884e498d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1026,6 +1026,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 2b544a2df9..9eeca55fb9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1025,6 +1025,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 2749d7fd38..af946fd58f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1019,6 +1019,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index fd47e9c90c..5c627183ab 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1374,6 +1374,7 @@ GLIBC_2.41 __cospiieee128 F
 GLIBC_2.41 __sinpiieee128 F
 GLIBC_2.41 __tanpiieee128 F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index c2591d5df6..aeeec34ec0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1293,6 +1293,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index e9a958a3f0..b5d003b15b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1293,6 +1293,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 2bb4cf4710..6513301bd5 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -879,6 +879,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 2bb4cf4710..6513301bd5 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -879,6 +879,7 @@ GLIBC_2.40 logp1f32x F
 GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif32 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index bfc00cb587..c92cc3da68 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1300,6 +1300,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 5a0af4b279..8168a21547 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1190,6 +1190,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index fff7ae9c3f..33d82c98fb 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1223,6 +1223,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index f7f938d60b..2bd47844a9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1223,6 +1223,7 @@ GLIBC_2.40 logp1f64 F
 GLIBC_2.40 logp1f64x F
 GLIBC_2.40 logp1l F
 GLIBC_2.41 acosf F
+GLIBC_2.41 acoshf F
 GLIBC_2.41 acospi F
 GLIBC_2.41 acospif F
 GLIBC_2.41 acospif128 F
