diff --git a/sysdeps/alpha/fpu/cabsf.c b/sysdeps/alpha/fpu/cabsf.c
index 2ffd6a3..85f69c5 100644
--- a/sysdeps/alpha/fpu/cabsf.c
+++ b/sysdeps/alpha/fpu/cabsf.c
@@ -38,4 +38,4 @@ __c2_cabsf (c2_cfloat_decl (z))
   return __hypotf (c2_cfloat_real (z), c2_cfloat_imag (z));
 }
 
-cfloat_versions (cabsf);
+cfloat_versions (cabs);
diff --git a/sysdeps/alpha/fpu/cargf.c b/sysdeps/alpha/fpu/cargf.c
index 6bff8a5..d6fc6b7 100644
--- a/sysdeps/alpha/fpu/cargf.c
+++ b/sysdeps/alpha/fpu/cargf.c
@@ -38,4 +38,4 @@ __c2_cargf (c2_cfloat_decl (x))
   return __atan2f (c2_cfloat_imag (x), c2_cfloat_real (x));
 }
 
-cfloat_versions (cargf);
+cfloat_versions (carg);
diff --git a/sysdeps/alpha/fpu/cfloat-compat.h b/sysdeps/alpha/fpu/cfloat-compat.h
index 484cdd0..17b374c 100644
--- a/sysdeps/alpha/fpu/cfloat-compat.h
+++ b/sysdeps/alpha/fpu/cfloat-compat.h
@@ -43,6 +43,7 @@ typedef union { double d; _Complex float cf; } c1_compat;
 /* Get the proper symbol versions defined for each function.  */
 
 #include <shlib-compat.h>
+#include <libm-alias-float.h>
 
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_3_4)
 #define cfloat_versions_compat(func) \
@@ -52,7 +53,8 @@ typedef union { double d; _Complex float cf; } c1_compat;
 #endif
 
 #define cfloat_versions(func) \
-  cfloat_versions_compat(func); \
-  versioned_symbol (libm, __c2_##func, func, GLIBC_2_3_4); \
-  extern typeof(__c2_##func) __##func attribute_hidden; \
-  strong_alias (__c2_##func, __##func)
+  cfloat_versions_compat(func##f); \
+  versioned_symbol (libm, __c2_##func##f, func##f, GLIBC_2_3_4); \
+  extern typeof(__c2_##func##f) __##func##f attribute_hidden; \
+  strong_alias (__c2_##func##f, __##func##f); \
+  libm_alias_float_other (__##func, func)
diff --git a/sysdeps/alpha/fpu/cimagf.c b/sysdeps/alpha/fpu/cimagf.c
index 6318f12..0a88e24 100644
--- a/sysdeps/alpha/fpu/cimagf.c
+++ b/sysdeps/alpha/fpu/cimagf.c
@@ -37,4 +37,4 @@ __c2_cimagf (c2_cfloat_decl (z))
   return c2_cfloat_imag (z);
 }
 
-cfloat_versions (cimagf);
+cfloat_versions (cimag);
diff --git a/sysdeps/alpha/fpu/conjf.c b/sysdeps/alpha/fpu/conjf.c
index 802898a..345df46 100644
--- a/sysdeps/alpha/fpu/conjf.c
+++ b/sysdeps/alpha/fpu/conjf.c
@@ -39,4 +39,4 @@ __c2_conjf (c2_cfloat_decl (z))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (conjf);
+cfloat_versions (conj);
diff --git a/sysdeps/alpha/fpu/crealf.c b/sysdeps/alpha/fpu/crealf.c
index fdaaf2e..9300e13 100644
--- a/sysdeps/alpha/fpu/crealf.c
+++ b/sysdeps/alpha/fpu/crealf.c
@@ -37,4 +37,4 @@ __c2_crealf (c2_cfloat_decl (z))
   return c2_cfloat_real (z);
 }
 
-cfloat_versions (crealf);
+cfloat_versions (creal);
diff --git a/sysdeps/alpha/fpu/s_cacosf.c b/sysdeps/alpha/fpu/s_cacosf.c
index e06b063..7d20f4a 100644
--- a/sysdeps/alpha/fpu/s_cacosf.c
+++ b/sysdeps/alpha/fpu/s_cacosf.c
@@ -54,4 +54,4 @@ __c2_cacosf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (cacosf);
+cfloat_versions (cacos);
diff --git a/sysdeps/alpha/fpu/s_cacoshf.c b/sysdeps/alpha/fpu/s_cacoshf.c
index d67cffb..564c4a0 100644
--- a/sysdeps/alpha/fpu/s_cacoshf.c
+++ b/sysdeps/alpha/fpu/s_cacoshf.c
@@ -53,4 +53,4 @@ __c2_cacoshf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (cacoshf);
+cfloat_versions (cacosh);
diff --git a/sysdeps/alpha/fpu/s_casinf.c b/sysdeps/alpha/fpu/s_casinf.c
index 1baa1d4..fb71a5a 100644
--- a/sysdeps/alpha/fpu/s_casinf.c
+++ b/sysdeps/alpha/fpu/s_casinf.c
@@ -51,4 +51,4 @@ __c2_casinf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (casinf);
+cfloat_versions (casin);
diff --git a/sysdeps/alpha/fpu/s_casinhf.c b/sysdeps/alpha/fpu/s_casinhf.c
index 4cb3a2f..df87977 100644
--- a/sysdeps/alpha/fpu/s_casinhf.c
+++ b/sysdeps/alpha/fpu/s_casinhf.c
@@ -51,4 +51,4 @@ __c2_casinhf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (casinhf);
+cfloat_versions (casinh);
diff --git a/sysdeps/alpha/fpu/s_catanf.c b/sysdeps/alpha/fpu/s_catanf.c
index 6d928e0..885d74d 100644
--- a/sysdeps/alpha/fpu/s_catanf.c
+++ b/sysdeps/alpha/fpu/s_catanf.c
@@ -51,4 +51,4 @@ __c2_catanf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (catanf);
+cfloat_versions (catan);
diff --git a/sysdeps/alpha/fpu/s_catanhf.c b/sysdeps/alpha/fpu/s_catanhf.c
index d8942a0..57a2776 100644
--- a/sysdeps/alpha/fpu/s_catanhf.c
+++ b/sysdeps/alpha/fpu/s_catanhf.c
@@ -51,4 +51,4 @@ __c2_catanhf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (catanhf);
+cfloat_versions (catanh);
diff --git a/sysdeps/alpha/fpu/s_ccosf.c b/sysdeps/alpha/fpu/s_ccosf.c
index abc7f10..7f9086b 100644
--- a/sysdeps/alpha/fpu/s_ccosf.c
+++ b/sysdeps/alpha/fpu/s_ccosf.c
@@ -51,4 +51,4 @@ __c2_ccosf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (ccosf);
+cfloat_versions (ccos);
diff --git a/sysdeps/alpha/fpu/s_ccoshf.c b/sysdeps/alpha/fpu/s_ccoshf.c
index 65deabd..b0e90af 100644
--- a/sysdeps/alpha/fpu/s_ccoshf.c
+++ b/sysdeps/alpha/fpu/s_ccoshf.c
@@ -51,4 +51,4 @@ __c2_ccoshf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (ccoshf);
+cfloat_versions (ccosh);
diff --git a/sysdeps/alpha/fpu/s_ceilf.c b/sysdeps/alpha/fpu/s_ceilf.c
index 8c76c65..5592428 100644
--- a/sysdeps/alpha/fpu/s_ceilf.c
+++ b/sysdeps/alpha/fpu/s_ceilf.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <math.h>
+#include <libm-alias-float.h>
 
 /* Use the -inf rounding mode conversion instructions to implement
    ceil, via something akin to -floor(-x).  This is much faster than
@@ -50,4 +51,4 @@ __ceilf (float x)
   return x;
 }
 
-weak_alias (__ceilf, ceilf)
+libm_alias_float (__ceil, ceil)
diff --git a/sysdeps/alpha/fpu/s_cexpf.c b/sysdeps/alpha/fpu/s_cexpf.c
index 64daf68..c805422 100644
--- a/sysdeps/alpha/fpu/s_cexpf.c
+++ b/sysdeps/alpha/fpu/s_cexpf.c
@@ -51,4 +51,4 @@ __c2_cexpf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (cexpf);
+cfloat_versions (cexp);
diff --git a/sysdeps/alpha/fpu/s_clog10f.c b/sysdeps/alpha/fpu/s_clog10f.c
index 0646a09..018c699 100644
--- a/sysdeps/alpha/fpu/s_clog10f.c
+++ b/sysdeps/alpha/fpu/s_clog10f.c
@@ -21,6 +21,7 @@
 
 #include <complex.h>
 #include <math.h>
+#include <libm-alias-float.h>
 
 #undef __clog10f
 #undef clog10f
@@ -62,3 +63,4 @@ compat_symbol (libm, __c1_clog10f_2, __clog10f, GLIBC_2_1);
 versioned_symbol (libm, __c2_clog10f, clog10f, GLIBC_2_3_4);
 extern typeof(__c2_clog10f) __clog10f attribute_hidden;
 strong_alias (__c2_clog10f, __clog10f)
+libm_alias_float_other (__c2_clog10, clog10)
diff --git a/sysdeps/alpha/fpu/s_clogf.c b/sysdeps/alpha/fpu/s_clogf.c
index 1a7e234..f8af705 100644
--- a/sysdeps/alpha/fpu/s_clogf.c
+++ b/sysdeps/alpha/fpu/s_clogf.c
@@ -51,4 +51,4 @@ __c2_clogf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (clogf);
+cfloat_versions (clog);
diff --git a/sysdeps/alpha/fpu/s_copysignf.c b/sysdeps/alpha/fpu/s_copysignf.c
index 90b2012..488015f 100644
--- a/sysdeps/alpha/fpu/s_copysignf.c
+++ b/sysdeps/alpha/fpu/s_copysignf.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <math.h>
+#include <libm-alias-float.h>
 
 float
 __copysignf (float x, float y)
@@ -24,4 +25,4 @@ __copysignf (float x, float y)
   return __builtin_copysignf (x, y);
 }
 
-weak_alias (__copysignf, copysignf)
+libm_alias_float (__copysign, copysign)
diff --git a/sysdeps/alpha/fpu/s_cpowf.c b/sysdeps/alpha/fpu/s_cpowf.c
index dacf0e1..2db5337 100644
--- a/sysdeps/alpha/fpu/s_cpowf.c
+++ b/sysdeps/alpha/fpu/s_cpowf.c
@@ -51,4 +51,4 @@ __c2_cpowf (c2_cfloat_decl (x), c2_cfloat_decl (c))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (cpowf);
+cfloat_versions (cpow);
diff --git a/sysdeps/alpha/fpu/s_cprojf.c b/sysdeps/alpha/fpu/s_cprojf.c
index 316cc1f..c8cf59b 100644
--- a/sysdeps/alpha/fpu/s_cprojf.c
+++ b/sysdeps/alpha/fpu/s_cprojf.c
@@ -51,4 +51,4 @@ __c2_cprojf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (cprojf);
+cfloat_versions (cproj);
diff --git a/sysdeps/alpha/fpu/s_csinf.c b/sysdeps/alpha/fpu/s_csinf.c
index f884d29..9dbdacc 100644
--- a/sysdeps/alpha/fpu/s_csinf.c
+++ b/sysdeps/alpha/fpu/s_csinf.c
@@ -51,4 +51,4 @@ __c2_csinf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (csinf);
+cfloat_versions (csin);
diff --git a/sysdeps/alpha/fpu/s_csinhf.c b/sysdeps/alpha/fpu/s_csinhf.c
index 071ff12..3e4ebae 100644
--- a/sysdeps/alpha/fpu/s_csinhf.c
+++ b/sysdeps/alpha/fpu/s_csinhf.c
@@ -51,4 +51,4 @@ __c2_csinhf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (csinhf);
+cfloat_versions (csinh);
diff --git a/sysdeps/alpha/fpu/s_csqrtf.c b/sysdeps/alpha/fpu/s_csqrtf.c
index 0611f09..c5f9fc6 100644
--- a/sysdeps/alpha/fpu/s_csqrtf.c
+++ b/sysdeps/alpha/fpu/s_csqrtf.c
@@ -51,4 +51,4 @@ __c2_csqrtf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (csqrtf);
+cfloat_versions (csqrt);
diff --git a/sysdeps/alpha/fpu/s_ctanf.c b/sysdeps/alpha/fpu/s_ctanf.c
index 7288db2..b47490a 100644
--- a/sysdeps/alpha/fpu/s_ctanf.c
+++ b/sysdeps/alpha/fpu/s_ctanf.c
@@ -51,4 +51,4 @@ __c2_ctanf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (ctanf);
+cfloat_versions (ctan);
diff --git a/sysdeps/alpha/fpu/s_ctanhf.c b/sysdeps/alpha/fpu/s_ctanhf.c
index fc0a5f6..70ffc6e 100644
--- a/sysdeps/alpha/fpu/s_ctanhf.c
+++ b/sysdeps/alpha/fpu/s_ctanhf.c
@@ -51,4 +51,4 @@ __c2_ctanhf (c2_cfloat_decl (x))
   return c2_cfloat_return (r);
 }
 
-cfloat_versions (ctanhf);
+cfloat_versions (ctanh);
diff --git a/sysdeps/alpha/fpu/s_fabsf.c b/sysdeps/alpha/fpu/s_fabsf.c
index 5b1105c..3af3c1e 100644
--- a/sysdeps/alpha/fpu/s_fabsf.c
+++ b/sysdeps/alpha/fpu/s_fabsf.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <math.h>
+#include <libm-alias-float.h>
 
 float
 __fabsf (float x)
@@ -24,4 +25,4 @@ __fabsf (float x)
   return __builtin_fabsf (x);
 }
 
-weak_alias (__fabsf, fabsf)
+libm_alias_float (__fabs, fabs)
diff --git a/sysdeps/alpha/fpu/s_floorf.c b/sysdeps/alpha/fpu/s_floorf.c
index 79cae27..e3055b2 100644
--- a/sysdeps/alpha/fpu/s_floorf.c
+++ b/sysdeps/alpha/fpu/s_floorf.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <math.h>
+#include <libm-alias-float.h>
 
 
 /* Use the -inf rounding mode conversion instructions to implement
@@ -51,4 +52,4 @@ __floorf (float x)
   return x;
 }
 
-weak_alias (__floorf, floorf)
+libm_alias_float (__floor, floor)
diff --git a/sysdeps/alpha/fpu/s_fmax.S b/sysdeps/alpha/fpu/s_fmax.S
index d6c2759..5da9e0d 100644
--- a/sysdeps/alpha/fpu/s_fmax.S
+++ b/sysdeps/alpha/fpu/s_fmax.S
@@ -18,6 +18,7 @@
 
 #include <sysdep.h>
 #include <math_ldbl_opt.h>
+#include <libm-alias-float.h>
 #include <libm-alias-double.h>
 
         .set noat
@@ -46,6 +47,6 @@ END (__fmax)
 
 /* Given the in-register format of single-precision, this works there too.  */
 strong_alias (__fmax, __fmaxf)
-weak_alias (__fmaxf, fmaxf)
+libm_alias_float (__fmax, fmax)
 
 libm_alias_double (__fmax, fmax)
diff --git a/sysdeps/alpha/fpu/s_fmin.S b/sysdeps/alpha/fpu/s_fmin.S
index 6da4a93..d752223 100644
--- a/sysdeps/alpha/fpu/s_fmin.S
+++ b/sysdeps/alpha/fpu/s_fmin.S
@@ -18,6 +18,7 @@
 
 #include <sysdep.h>
 #include <math_ldbl_opt.h>
+#include <libm-alias-float.h>
 #include <libm-alias-double.h>
 
         .set noat
@@ -46,6 +47,6 @@ END (__fmin)
 
 /* Given the in-register format of single-precision, this works there too.  */
 strong_alias (__fmin, __fminf)
-weak_alias (__fminf, fminf)
+libm_alias_float (__fmin, fmin)
 
 libm_alias_double (__fmin, fmin)
diff --git a/sysdeps/alpha/fpu/s_lrintf.c b/sysdeps/alpha/fpu/s_lrintf.c
index cfcf35c..c96cf28 100644
--- a/sysdeps/alpha/fpu/s_lrintf.c
+++ b/sysdeps/alpha/fpu/s_lrintf.c
@@ -18,6 +18,7 @@
 #define __llrintf	not___llrintf
 #define llrintf		not_llrintf
 #include <math.h>
+#include <libm-alias-float.h>
 #undef __llrintf
 #undef llrintf
 
@@ -34,5 +35,5 @@ __lrintf (float x)
 }
 
 strong_alias (__lrintf, __llrintf)
-weak_alias (__lrintf, lrintf)
-weak_alias (__llrintf, llrintf)
+libm_alias_float (__lrint, lrint)
+libm_alias_float (__llrint, llrint)
diff --git a/sysdeps/alpha/fpu/s_lroundf.c b/sysdeps/alpha/fpu/s_lroundf.c
index 37df9442..695c41c 100644
--- a/sysdeps/alpha/fpu/s_lroundf.c
+++ b/sysdeps/alpha/fpu/s_lroundf.c
@@ -18,6 +18,7 @@
 #define __llroundf	not___llroundf
 #define llroundf	not_llroundf
 #include <math.h>
+#include <libm-alias-float.h>
 #undef __llroundf
 #undef llroundf
 
@@ -33,5 +34,5 @@ __lroundf (float x)
 }
 
 strong_alias (__lroundf, __llroundf)
-weak_alias (__lroundf, lroundf)
-weak_alias (__llroundf, llroundf)
+libm_alias_float (__lround, lround)
+libm_alias_float (__llround, llround)
diff --git a/sysdeps/alpha/fpu/s_rintf.c b/sysdeps/alpha/fpu/s_rintf.c
index b6e8d2d..e99c486 100644
--- a/sysdeps/alpha/fpu/s_rintf.c
+++ b/sysdeps/alpha/fpu/s_rintf.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <math.h>
+#include <libm-alias-float.h>
 
 
 float
@@ -47,4 +48,4 @@ __rintf (float x)
   return x;
 }
 
-weak_alias (__rintf, rintf)
+libm_alias_float (__rint, rint)
diff --git a/sysdeps/alpha/fpu/s_truncf.c b/sysdeps/alpha/fpu/s_truncf.c
index ca47fdc..4f7528e 100644
--- a/sysdeps/alpha/fpu/s_truncf.c
+++ b/sysdeps/alpha/fpu/s_truncf.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <math.h>
+#include <libm-alias-float.h>
 
 
 /* Use the chopped rounding mode conversion instructions to implement trunc. */
@@ -40,4 +41,4 @@ __truncf (float x)
   return copysignf (r, x);
 }
 
-weak_alias (__truncf, truncf)
+libm_alias_float (__trunc, trunc)
