From 5ce8f125063cfd8660710a80243cb705e66f0626 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 29 Oct 2015 22:29:21 +0000 Subject: Make drem an alias of remainder (bug 16171). The libm drem functions just call the corresponding __remainder functions. This patch removes the unnecessary wrappers by making them into weak aliases at the ELF level. Tested for x86_64, x86, mips64 and powerpc. [BZ #16171] * math/w_remainder.c (drem): Define as weak alias of __remainder. [NO_LONG_DOUBLE] (dreml): Define as weak alias of __remainder. * math/w_remainderf.c (dremf): Define as weak alias of __remainderf. * math/w_remainderl.c (dreml): Define as weak alias of __remainderl. * sysdeps/ia64/fpu/e_remainder.S (drem): Define as weak alias of __remainder. * sysdeps/ia64/fpu/e_remainderf.S (dremf): Define as weak alias of __remainderf. * sysdeps/ia64/fpu/e_remainderl.S (dreml): Define as weak alias of __remainderl. * sysdeps/ieee754/ldbl-opt/nldbl-remainder.c (dreml): Define as weak alias of remainderl. * sysdeps/ieee754/ldbl-opt/w_remainder.c [LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)] (__drem): Define as strong alias of __remainder. [LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)] (dreml): Use compat_symbol. * sysdeps/ieee754/ldbl-opt/w_remainderl.c (__dreml): Define as strong alias of __remainderl. (dreml): Use long_double_symbol. * math/Makefile (libm-calls): Remove w_drem. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Remove drem. (CFLAGS-nldbl-drem.c): Remove variable. (CFLAGS-nldbl-remainder.c): Add -fno-builtin-dreml. * math/w_drem.c: Remove file. * math/w_dremf.c: Likewise. * math/w_dreml.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-drem.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_drem.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_dreml.c: Likewise. --- math/Makefile | 2 +- math/w_drem.c | 19 ------------------- math/w_dremf.c | 16 ---------------- math/w_dreml.c | 17 ----------------- math/w_remainder.c | 2 ++ math/w_remainderf.c | 1 + math/w_remainderl.c | 1 + 7 files changed, 5 insertions(+), 53 deletions(-) delete mode 100644 math/w_drem.c delete mode 100644 math/w_dremf.c delete mode 100644 math/w_dreml.c (limited to 'math') diff --git a/math/Makefile b/math/Makefile index dedd7ee..3efbc58 100644 --- a/math/Makefile +++ b/math/Makefile @@ -51,7 +51,7 @@ libm-calls = e_acos e_acosh e_asin e_atan2 e_atanh e_cosh e_exp e_fmod \ s_floor s_log1p w_log1p s_logb \ s_nextafter s_nexttoward s_rint s_scalbln w_scalbln \ s_significand s_sin s_tan s_tanh w_acos w_acosh w_asin \ - w_atan2 w_atanh w_cosh w_drem w_exp w_exp2 w_exp10 w_fmod \ + w_atan2 w_atanh w_cosh w_exp w_exp2 w_exp10 w_fmod \ w_tgamma w_hypot w_j0 w_j1 w_jn w_lgamma w_lgamma_r \ w_log w_log10 w_pow w_remainder w_scalb w_sinh w_sqrt \ w_ilogb \ diff --git a/math/w_drem.c b/math/w_drem.c deleted file mode 100644 index 843b67a..0000000 --- a/math/w_drem.c +++ /dev/null @@ -1,19 +0,0 @@ -/* - * drem() wrapper for remainder(). - * - * Written by J.T. Conklin, - * Placed into the Public Domain, 1994. - */ - -#include - -double -__drem (double x, double y) -{ - return __remainder(x, y); -} -weak_alias (__drem, drem) -#ifdef NO_LONG_DOUBLE -strong_alias (__drem, __dreml) -weak_alias (__drem, dreml) -#endif diff --git a/math/w_dremf.c b/math/w_dremf.c deleted file mode 100644 index c5e7c63..0000000 --- a/math/w_dremf.c +++ /dev/null @@ -1,16 +0,0 @@ -/* - * dremf() wrapper for remainderf(). - * - * Written by J.T. Conklin, - * Placed into the Public Domain, 1994. - */ - -#include -#include - -float -__dremf (float x, float y) -{ - return __remainderf(x, y); -} -weak_alias (__dremf, dremf) diff --git a/math/w_dreml.c b/math/w_dreml.c deleted file mode 100644 index 8d0139a..0000000 --- a/math/w_dreml.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * dreml() wrapper for remainderl(). - * - * Written by J.T. Conklin, - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - * Placed into the Public Domain, 1994. - */ - -#include - -long double -__dreml (long double x, long double y) -{ - return __remainderl(x, y); -} -weak_alias (__dreml, dreml) diff --git a/math/w_remainder.c b/math/w_remainder.c index a6da192..aa70f02 100644 --- a/math/w_remainder.c +++ b/math/w_remainder.c @@ -32,7 +32,9 @@ __remainder (double x, double y) return __ieee754_remainder (x, y); } weak_alias (__remainder, remainder) +weak_alias (__remainder, drem) #ifdef NO_LONG_DOUBLE strong_alias (__remainder, __remainderl) weak_alias (__remainder, remainderl) +weak_alias (__remainder, dreml) #endif diff --git a/math/w_remainderf.c b/math/w_remainderf.c index c003002..beb0775 100644 --- a/math/w_remainderf.c +++ b/math/w_remainderf.c @@ -32,3 +32,4 @@ __remainderf (float x, float y) return __ieee754_remainderf (x, y); } weak_alias (__remainderf, remainderf) +weak_alias (__remainderf, dremf) diff --git a/math/w_remainderl.c b/math/w_remainderl.c index b25929d..393c99a 100644 --- a/math/w_remainderl.c +++ b/math/w_remainderl.c @@ -32,3 +32,4 @@ __remainderl (long double x, long double y) return __ieee754_remainderl (x, y); } weak_alias (__remainderl, remainderl) +weak_alias (__remainderl, dreml) -- cgit v1.1