diff --git a/math/Versions b/math/Versions
index f6c7bd8d61..ece5ad7fd1 100644
--- a/math/Versions
+++ b/math/Versions
@@ -674,5 +674,6 @@ libm {
     log10f;
     lgammaf; lgammaf_r;
     acosf;
+    asinf;
   }
 }
diff --git a/math/w_asinf.c b/math/w_asinf.c
new file mode 100644
index 0000000000..947cdde561
--- /dev/null
+++ b/math/w_asinf.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_asin_template.c>
+versioned_symbol (libm, __asinf, asinf, GLIBC_2_41);
+libm_alias_float_other (__asinf, asinf)
diff --git a/math/w_asinf_compat.c b/math/w_asinf_compat.c
index bdace40b95..84df62a385 100644
--- a/math/w_asinf_compat.c
+++ b/math/w_asinf_compat.c
@@ -22,10 +22,10 @@
 #include <libm-alias-float.h>
 
 
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_41)
 /* wrapper asinf */
 float
-__asinf (float x)
+__asin_compatf (float x)
 {
   if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0)
       && _LIB_VERSION != _IEEE_)
@@ -37,5 +37,9 @@ __asinf (float x)
 
   return __ieee754_asinf (x);
 }
-libm_alias_float (__asin, asin)
+# ifdef NO_COMPAT_NEEDED
+libm_alias_float (__asin_compat, asin)
+# else
+compat_symbol (libm, __asin_compatf, asinf, GLIBC_2_0);
+# endif
 #endif
diff --git a/sysdeps/ieee754/flt-32/e_asinf.c b/sysdeps/ieee754/flt-32/e_asinf.c
index 944bf6f5ce..4b5288e86a 100644
--- a/sysdeps/ieee754/flt-32/e_asinf.c
+++ b/sysdeps/ieee754/flt-32/e_asinf.c
@@ -27,6 +27,8 @@ SOFTWARE.
 #include <stdint.h>
 #include <errno.h>
 #include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
 #include "math_config.h"
 
 static __attribute__ ((noinline)) float
@@ -57,7 +59,7 @@ poly12 (double z, const double *c)
 }
 
 float
-__ieee754_asinf (float x)
+__asinf (float x)
 {
   const double pi2 = 0x1.921fb54442d18p+0;
   double xs = x;
@@ -128,4 +130,11 @@ __ieee754_asinf (float x)
     }
   return r;
 }
+strong_alias (__asinf, __ieee754_asinf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __asinf, asinf, GLIBC_2_41);
+libm_alias_float_other (__asin, asin)
+#else
+libm_alias_float (__asin, asin)
+#endif
 libm_alias_finite (__ieee754_asinf, __asinf)
diff --git a/sysdeps/ieee754/flt-32/w_asinf.c b/sysdeps/ieee754/flt-32/w_asinf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_asinf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/m68k/m680x0/fpu/w_asinf_compat.c b/sysdeps/m68k/m680x0/fpu/w_asinf_compat.c
new file mode 100644
index 0000000000..d419736eb3
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_asinf_compat.c
@@ -0,0 +1,8 @@
+/* m68k provides an optimized __ieee754_asinf.  */
+#ifdef SHARED
+# define NO_COMPAT_NEEDED 1
+# include <math/w_asinf_compat.c>
+#else
+# include <math-type-macros-float.h>
+# include <w_asin_template.c>
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index a2ef2276c4..7bf32cec28 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1230,6 +1230,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 9beef4a25d..7ce045c75b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1198,6 +1198,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 17e08a05b1..e76aebf1b2 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1357,6 +1357,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index f624edcbb7..9de26ad003 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -885,6 +885,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index f624edcbb7..9de26ad003 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -885,6 +885,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index eecea6c987..d9bb2554cb 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -885,6 +885,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 6b7f949e39..ce9f671f15 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1237,6 +1237,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index f624edcbb7..9de26ad003 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -885,6 +885,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 3ff01e0719..f0d451d7d1 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -885,6 +885,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 3ff01e0719..f0d451d7d1 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -885,6 +885,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index fbf247121d..bec657f782 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -885,6 +885,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index e2311fb6db..1b799c06c7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1198,6 +1198,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index ea13cdb1a2..89d3d18948 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1032,6 +1032,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 6148bc0bfb..2b544a2df9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1031,6 +1031,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index d7d5c59d9e..2749d7fd38 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1025,6 +1025,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 72abf2ee3e..fd47e9c90c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1382,6 +1382,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index d95426d3e9..c2591d5df6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1301,6 +1301,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 0f66ff47a2..e9a958a3f0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1301,6 +1301,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 9af3cd6248..2bb4cf4710 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -885,6 +885,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 9af3cd6248..2bb4cf4710 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -885,6 +885,7 @@ GLIBC_2.41 acospif32 F
 GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif32 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 698e44db29..bfc00cb587 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1308,6 +1308,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 4f9398182b..5a0af4b279 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1198,6 +1198,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 8316532d1b..fff7ae9c3f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1231,6 +1231,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 59d429f5be..f7f938d60b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1231,6 +1231,7 @@ GLIBC_2.41 acospif32x F
 GLIBC_2.41 acospif64 F
 GLIBC_2.41 acospif64x F
 GLIBC_2.41 acospil F
+GLIBC_2.41 asinf F
 GLIBC_2.41 asinpi F
 GLIBC_2.41 asinpif F
 GLIBC_2.41 asinpif128 F
