about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-10-03 17:47:35 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-10-03 17:47:35 +0000
commita1132b5e56fe8aaa148ebd249034181863857d60 (patch)
treead307f6a8077999f03fd951384e7f2a54a49385e
parentf275f64e7e97fcfe31280aabd0d64591c90bbe18 (diff)
downloadglibc-a1132b5e56fe8aaa148ebd249034181863857d60.tar.gz
glibc-a1132b5e56fe8aaa148ebd249034181863857d60.tar.xz
glibc-a1132b5e56fe8aaa148ebd249034181863857d60.zip
Use libm_alias_double for more dbl-64 functions.
This patch makes more dbl-64 functions use libm_alias_double to define
function aliases.  Specifically, it makes the change for functions
with dbl-64/wordsize-64 versions, changing both the dbl-64 and
dbl-64/wordsize-64 versions and removing the ldbl-opt wrappers.
Functions are excluded from this patch if there are complications
because of versions of those functions also present in libc, or
architecture-specific wrappers round these files.

Tested for x86_64, and with build-many-glibcs.py.  Installed stripped
shared libraries are unchanged except for alpha (where increased use
of dbl-64/wordsize-64 files, where previously ldbl-opt files that
wrapped dbl-64 files were used, was expected to result in different,
better code).

	* sysdeps/ieee754/dbl-64/s_ceil.c: Include <libm-alias-double.h>.
	(ceil): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_floor.c: Include <libm-alias-double.h>.
	(floor): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_llround.c: Include
	<libm-alias-double.h>.
	(llround): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_lround.c: Include
	<libm-alias-double.h>.
	(lround): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_nearbyint.c: Include
	<libm-alias-double.h>.
	(nearbyint): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_remquo.c: Include
	<libm-alias-double.h>.
	(remquo): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_rint.c: Include <libm-alias-double.h>.
	(rint): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_round.c: Include <libm-alias-double.h>.
	(round): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_trunc.c: Include <libm-alias-double.h>.
	(trunc): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c: Include
	<libm-alias-double.h>.
	(ceil): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Include
	<libm-alias-double.h>.
	(floor): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c: Include
	<libm-alias-double.h>.
	(llround): Define using libm_alias_double.
	[_LP64] (lround): Likewise.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c: Include
	<libm-alias-double.h>.
	[!_LP64] (lround): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Include
	<libm-alias-double.h>.
	(nearbyint): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c: Include
	<libm-alias-double.h>.
	(remquo): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: Include
	<libm-alias-double.h>.
	(rint): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: Include
	<libm-alias-double.h>.
	(round): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Include
	<libm-alias-double.h>.
	(trunc): Define using libm_alias_double.
	* sysdeps/ieee754/ldbl-opt/s_ceil.c: Remove file.
	* sysdeps/ieee754/ldbl-opt/s_floor.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_llround.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_lround.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_nearbyint.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_remquo.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_rint.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_round.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_trunc.c: Likewise.
-rw-r--r--ChangeLog62
-rw-r--r--sysdeps/ieee754/dbl-64/s_ceil.c7
-rw-r--r--sysdeps/ieee754/dbl-64/s_floor.c7
-rw-r--r--sysdeps/ieee754/dbl-64/s_llround.c7
-rw-r--r--sysdeps/ieee754/dbl-64/s_lround.c7
-rw-r--r--sysdeps/ieee754/dbl-64/s_nearbyint.c7
-rw-r--r--sysdeps/ieee754/dbl-64/s_remquo.c7
-rw-r--r--sysdeps/ieee754/dbl-64/s_rint.c7
-rw-r--r--sysdeps/ieee754/dbl-64/s_round.c7
-rw-r--r--sysdeps/ieee754/dbl-64/s_trunc.c7
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c7
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c7
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c13
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c7
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c7
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c7
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c7
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_round.c7
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c7
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_ceil.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_floor.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_llround.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_lround.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_nearbyint.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_remquo.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_rint.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_round.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_trunc.c5
28 files changed, 99 insertions, 140 deletions
diff --git a/ChangeLog b/ChangeLog
index 58aea77be0..3958723d6f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,65 @@
+2017-10-03  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/ieee754/dbl-64/s_ceil.c: Include <libm-alias-double.h>.
+	(ceil): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/s_floor.c: Include <libm-alias-double.h>.
+	(floor): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/s_llround.c: Include
+	<libm-alias-double.h>.
+	(llround): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/s_lround.c: Include
+	<libm-alias-double.h>.
+	(lround): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/s_nearbyint.c: Include
+	<libm-alias-double.h>.
+	(nearbyint): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/s_remquo.c: Include
+	<libm-alias-double.h>.
+	(remquo): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/s_rint.c: Include <libm-alias-double.h>.
+	(rint): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/s_round.c: Include <libm-alias-double.h>.
+	(round): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/s_trunc.c: Include <libm-alias-double.h>.
+	(trunc): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c: Include
+	<libm-alias-double.h>.
+	(ceil): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Include
+	<libm-alias-double.h>.
+	(floor): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c: Include
+	<libm-alias-double.h>.
+	(llround): Define using libm_alias_double.
+	[_LP64] (lround): Likewise.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c: Include
+	<libm-alias-double.h>.
+	[!_LP64] (lround): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Include
+	<libm-alias-double.h>.
+	(nearbyint): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c: Include
+	<libm-alias-double.h>.
+	(remquo): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: Include
+	<libm-alias-double.h>.
+	(rint): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: Include
+	<libm-alias-double.h>.
+	(round): Define using libm_alias_double.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Include
+	<libm-alias-double.h>.
+	(trunc): Define using libm_alias_double.
+	* sysdeps/ieee754/ldbl-opt/s_ceil.c: Remove file.
+	* sysdeps/ieee754/ldbl-opt/s_floor.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/s_llround.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/s_lround.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/s_nearbyint.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/s_remquo.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/s_rint.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/s_round.c: Likewise.
+	* sysdeps/ieee754/ldbl-opt/s_trunc.c: Likewise.
+
 2017-10-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
 
 	* math/w_remainder.c: New file.
diff --git a/sysdeps/ieee754/dbl-64/s_ceil.c b/sysdeps/ieee754/dbl-64/s_ceil.c
index 36f5abe2ed..5a7434c737 100644
--- a/sysdeps/ieee754/dbl-64/s_ceil.c
+++ b/sysdeps/ieee754/dbl-64/s_ceil.c
@@ -19,6 +19,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 double
 __ceil (double x)
@@ -81,9 +82,5 @@ __ceil (double x)
   return x;
 }
 #ifndef __ceil
-weak_alias (__ceil, ceil)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__ceil, __ceill)
-weak_alias (__ceil, ceill)
-# endif
+libm_alias_double (__ceil, ceil)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_floor.c b/sysdeps/ieee754/dbl-64/s_floor.c
index e80bc9ee92..f27c6f3ad2 100644
--- a/sysdeps/ieee754/dbl-64/s_floor.c
+++ b/sysdeps/ieee754/dbl-64/s_floor.c
@@ -19,6 +19,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 double
 __floor (double x)
@@ -81,9 +82,5 @@ __floor (double x)
   return x;
 }
 #ifndef __floor
-weak_alias (__floor, floor)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__floor, __floorl)
-weak_alias (__floor, floorl)
-# endif
+libm_alias_double (__floor, floor)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_llround.c b/sysdeps/ieee754/dbl-64/s_llround.c
index 4995c18740..0fa758f815 100644
--- a/sysdeps/ieee754/dbl-64/s_llround.c
+++ b/sysdeps/ieee754/dbl-64/s_llround.c
@@ -22,6 +22,7 @@
 #include <math.h>
 
 #include <math_private.h>
+#include <libm-alias-double.h>
 #include <fix-fp-int-convert-overflow.h>
 
 
@@ -84,8 +85,4 @@ __llround (double x)
   return sign * result;
 }
 
-weak_alias (__llround, llround)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__llround, __llroundl)
-weak_alias (__llround, llroundl)
-#endif
+libm_alias_double (__llround, llround)
diff --git a/sysdeps/ieee754/dbl-64/s_lround.c b/sysdeps/ieee754/dbl-64/s_lround.c
index 1a267d880e..2e841ae45b 100644
--- a/sysdeps/ieee754/dbl-64/s_lround.c
+++ b/sysdeps/ieee754/dbl-64/s_lround.c
@@ -22,6 +22,7 @@
 #include <math.h>
 
 #include <math_private.h>
+#include <libm-alias-double.h>
 #include <fix-fp-int-convert-overflow.h>
 
 
@@ -106,8 +107,4 @@ __lround (double x)
   return sign * result;
 }
 
-weak_alias (__lround, lround)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__lround, __lroundl)
-weak_alias (__lround, lroundl)
-#endif
+libm_alias_double (__lround, lround)
diff --git a/sysdeps/ieee754/dbl-64/s_nearbyint.c b/sysdeps/ieee754/dbl-64/s_nearbyint.c
index 6e3f8316b1..94d193d1ff 100644
--- a/sysdeps/ieee754/dbl-64/s_nearbyint.c
+++ b/sysdeps/ieee754/dbl-64/s_nearbyint.c
@@ -27,6 +27,7 @@ static char rcsid[] = "$NetBSD: s_rint.c,v 1.8 1995/05/10 20:48:04 jtc Exp $";
 #include <fenv.h>
 #include <math.h>
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 static const double
   TWO52[2] = {
@@ -71,8 +72,4 @@ __nearbyint (double x)
   libc_fesetenv (&env);
   return t;
 }
-weak_alias (__nearbyint, nearbyint)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__nearbyint, __nearbyintl)
-weak_alias (__nearbyint, nearbyintl)
-#endif
+libm_alias_double (__nearbyint, nearbyint)
diff --git a/sysdeps/ieee754/dbl-64/s_remquo.c b/sysdeps/ieee754/dbl-64/s_remquo.c
index 4ab764da53..f2dbe7891a 100644
--- a/sysdeps/ieee754/dbl-64/s_remquo.c
+++ b/sysdeps/ieee754/dbl-64/s_remquo.c
@@ -20,6 +20,7 @@
 #include <math.h>
 
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 
 static const double zero = 0.0;
@@ -108,8 +109,4 @@ __remquo (double x, double y, int *quo)
     x = -x;
   return x;
 }
-weak_alias (__remquo, remquo)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__remquo, __remquol)
-weak_alias (__remquo, remquol)
-#endif
+libm_alias_double (__remquo, remquo)
diff --git a/sysdeps/ieee754/dbl-64/s_rint.c b/sysdeps/ieee754/dbl-64/s_rint.c
index a9c0d27842..cb0f5ca298 100644
--- a/sysdeps/ieee754/dbl-64/s_rint.c
+++ b/sysdeps/ieee754/dbl-64/s_rint.c
@@ -22,6 +22,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 static const double
   TWO52[2] = {
@@ -59,9 +60,5 @@ __rint (double x)
   return w - TWO52[sx];
 }
 #ifndef __rint
-weak_alias (__rint, rint)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__rint, __rintl)
-weak_alias (__rint, rintl)
-# endif
+libm_alias_double (__rint, rint)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/s_round.c b/sysdeps/ieee754/dbl-64/s_round.c
index 18c054af2c..d1fcd9913a 100644
--- a/sysdeps/ieee754/dbl-64/s_round.c
+++ b/sysdeps/ieee754/dbl-64/s_round.c
@@ -20,6 +20,7 @@
 #include <math.h>
 
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 
 double
@@ -76,8 +77,4 @@ __round (double x)
   INSERT_WORDS (x, i0, i1);
   return x;
 }
-weak_alias (__round, round)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__round, __roundl)
-weak_alias (__round, roundl)
-#endif
+libm_alias_double (__round, round)
diff --git a/sysdeps/ieee754/dbl-64/s_trunc.c b/sysdeps/ieee754/dbl-64/s_trunc.c
index 72b1752356..004140a07a 100644
--- a/sysdeps/ieee754/dbl-64/s_trunc.c
+++ b/sysdeps/ieee754/dbl-64/s_trunc.c
@@ -20,6 +20,7 @@
 #include <math.h>
 
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 
 double
@@ -54,9 +55,5 @@ __trunc (double x)
   return x;
 }
 #ifndef __trunc
-weak_alias (__trunc, trunc)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__trunc, __truncl)
-weak_alias (__trunc, truncl)
-# endif
+libm_alias_double (__trunc, trunc)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c
index faaaf90208..b99829d2b0 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c
@@ -19,6 +19,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 double
 __ceil(double x)
@@ -46,9 +47,5 @@ __ceil(double x)
 	return x;
 }
 #ifndef __ceil
-weak_alias (__ceil, ceil)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__ceil, __ceill)
-weak_alias (__ceil, ceill)
-# endif
+libm_alias_double (__ceil, ceil)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
index 1b99fffc30..7b1d291daa 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
@@ -33,6 +33,7 @@
 #include <math.h>
 #include <math_private.h>
 #include <stdint.h>
+#include <libm-alias-double.h>
 
 /*
  * floor(x)
@@ -66,9 +67,5 @@ __floor (double x)
 	return x;
 }
 #ifndef __floor
-weak_alias (__floor, floor)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__floor, __floorl)
-weak_alias (__floor, floorl)
-# endif
+libm_alias_double (__floor, floor)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
index 86a791111e..363a1af63e 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
@@ -24,6 +24,7 @@
 #include <sysdep.h>
 
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 
 long long int
@@ -63,20 +64,12 @@ __llround (double x)
   return sign * result;
 }
 
-weak_alias (__llround, llround)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__llround, __llroundl)
-weak_alias (__llround, llroundl)
-#endif
+libm_alias_double (__llround, llround)
 
 /* long has the same width as long long on LP64 machines, so use an alias.  */
 #undef lround
 #undef __lround
 #ifdef _LP64
 strong_alias (__llround, __lround)
-weak_alias (__llround, lround)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__llround, __lroundl)
-weak_alias (__llround, lroundl)
-# endif
+libm_alias_double (__lround, lround)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
index 02b01aa00d..e189c8e63a 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
@@ -21,6 +21,7 @@
 #include <math.h>
 
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 /* For LP64, lround is an alias for llround.  */
 #ifndef _LP64
@@ -80,10 +81,6 @@ __lround (double x)
   return sign * result;
 }
 
-weak_alias (__lround, lround)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__lround, __lroundl)
-weak_alias (__lround, lroundl)
-# endif
+libm_alias_double (__lround, lround)
 
 #endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
index 7d135b54e4..5d1f98e471 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
@@ -23,6 +23,7 @@
 #include <fenv.h>
 #include <math.h>
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 static const double
 TWO52[2]={
@@ -59,8 +60,4 @@ __nearbyint(double x)
 	libc_fesetenv (&env);
 	return t;
 }
-weak_alias (__nearbyint, nearbyint)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__nearbyint, __nearbyintl)
-weak_alias (__nearbyint, nearbyintl)
-#endif
+libm_alias_double (__nearbyint, nearbyint)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
index 37a823c075..0140bebfd5 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
@@ -20,6 +20,7 @@
 #include <math.h>
 
 #include <math_private.h>
+#include <libm-alias-double.h>
 #include <stdint.h>
 
 static const double zero = 0.0;
@@ -107,8 +108,4 @@ __remquo (double x, double y, int *quo)
     x = -x;
   return x;
 }
-weak_alias (__remquo, remquo)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__remquo, __remquol)
-weak_alias (__remquo, remquol)
-#endif
+libm_alias_double (__remquo, remquo)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c
index 87b2339d43..622e479c5f 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c
@@ -21,6 +21,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 static const double
 TWO52[2]={
@@ -52,9 +53,5 @@ __rint(double x)
 	return w-TWO52[sx];
 }
 #ifndef __rint
-weak_alias (__rint, rint)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__rint, __rintl)
-weak_alias (__rint, rintl)
-# endif
+libm_alias_double (__rint, rint)
 #endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c
index 0e3738b6ef..fe8a8bc3c5 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c
@@ -20,6 +20,7 @@
 #include <math.h>
 
 #include <math_private.h>
+#include <libm-alias-double.h>
 #include <stdint.h>
 
 
@@ -61,8 +62,4 @@ __round (double x)
   INSERT_WORDS64 (x, i0);
   return x;
 }
-weak_alias (__round, round)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__round, __roundl)
-weak_alias (__round, roundl)
-#endif
+libm_alias_double (__round, round)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c
index 050ec0016a..8675aa109c 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c
@@ -20,6 +20,7 @@
 #include <math.h>
 
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 
 double
@@ -49,9 +50,5 @@ __trunc (double x)
   return x;
 }
 #ifndef __trunc
-weak_alias (__trunc, trunc)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__trunc, __truncl)
-weak_alias (__trunc, truncl)
-# endif
+libm_alias_double (__trunc, trunc)
 #endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_ceil.c b/sysdeps/ieee754/ldbl-opt/s_ceil.c
deleted file mode 100644
index 6e4b70795d..0000000000
--- a/sysdeps/ieee754/ldbl-opt/s_ceil.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_ceil.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __ceil, ceill, GLIBC_2_0);
-#endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_floor.c b/sysdeps/ieee754/ldbl-opt/s_floor.c
deleted file mode 100644
index 7797944e9e..0000000000
--- a/sysdeps/ieee754/ldbl-opt/s_floor.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_floor.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __floor, floorl, GLIBC_2_0);
-#endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_llround.c b/sysdeps/ieee754/ldbl-opt/s_llround.c
deleted file mode 100644
index 36c7e6edac..0000000000
--- a/sysdeps/ieee754/ldbl-opt/s_llround.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_llround.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __llround, llroundl, GLIBC_2_1);
-#endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_lround.c b/sysdeps/ieee754/ldbl-opt/s_lround.c
deleted file mode 100644
index f3a27fa9c9..0000000000
--- a/sysdeps/ieee754/ldbl-opt/s_lround.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_lround.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __lround, lroundl, GLIBC_2_1);
-#endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_nearbyint.c b/sysdeps/ieee754/ldbl-opt/s_nearbyint.c
deleted file mode 100644
index a8b7973acd..0000000000
--- a/sysdeps/ieee754/ldbl-opt/s_nearbyint.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_nearbyint.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1);
-#endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_remquo.c b/sysdeps/ieee754/ldbl-opt/s_remquo.c
deleted file mode 100644
index 9f3d7ba368..0000000000
--- a/sysdeps/ieee754/ldbl-opt/s_remquo.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_remquo.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __remquo, remquol, GLIBC_2_1);
-#endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_rint.c b/sysdeps/ieee754/ldbl-opt/s_rint.c
deleted file mode 100644
index d9b156ea27..0000000000
--- a/sysdeps/ieee754/ldbl-opt/s_rint.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_rint.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __rint, rintl, GLIBC_2_0);
-#endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_round.c b/sysdeps/ieee754/ldbl-opt/s_round.c
deleted file mode 100644
index edff2f017b..0000000000
--- a/sysdeps/ieee754/ldbl-opt/s_round.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_round.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __round, roundl, GLIBC_2_1);
-#endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_trunc.c b/sysdeps/ieee754/ldbl-opt/s_trunc.c
deleted file mode 100644
index 9d90a2bd73..0000000000
--- a/sysdeps/ieee754/ldbl-opt/s_trunc.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_trunc.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __trunc, truncl, GLIBC_2_1);
-#endif