mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-17 13:00:43 +08:00
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.
This commit is contained in:
parent
91bcb95ad4
commit
5ce8f12506
33
ChangeLog
33
ChangeLog
@ -1,5 +1,38 @@
|
||||
2015-10-29 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[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.
|
||||
|
||||
* sysdeps/i386/configure.ac (cpuid.h): Do not test for header.
|
||||
* sysdeps/i386/configure: Regenerated.
|
||||
* sysdeps/x86_64/configure.ac (cpuid.h): Do not test for header.
|
||||
|
24
NEWS
24
NEWS
@ -10,18 +10,18 @@ Version 2.23
|
||||
* The following bugs are resolved with this release:
|
||||
|
||||
887, 2542, 2543, 2558, 2898, 4404, 6803, 10432, 14341, 14912, 15367,
|
||||
15384, 15470, 15491, 15786, 15918, 16068, 16141, 16296, 16347, 16399,
|
||||
16415, 16422, 16517, 16519, 16520, 16521, 16620, 16734, 16973, 16985,
|
||||
17118, 17243, 17244, 17250, 17404, 17441, 17787, 17886, 17887, 17905,
|
||||
18084, 18086, 18240, 18265, 18370, 18421, 18480, 18525, 18595, 18589,
|
||||
18610, 18611, 18618, 18647, 18661, 18674, 18675, 18681, 18699, 18724,
|
||||
18743, 18757, 18778, 18781, 18787, 18789, 18790, 18795, 18796, 18803,
|
||||
18820, 18823, 18824, 18825, 18857, 18863, 18870, 18872, 18873, 18875,
|
||||
18887, 18918, 18921, 18928, 18951, 18952, 18953, 18956, 18961, 18966,
|
||||
18967, 18969, 18970, 18977, 18980, 18981, 18982, 18985, 19003, 19007,
|
||||
19012, 19016, 19018, 19032, 19046, 19048, 19049, 19050, 19059, 19071,
|
||||
19074, 19076, 19077, 19078, 19079, 19085, 19086, 19088, 19094, 19095,
|
||||
19124, 19125, 19129, 19134, 19137, 19156, 19174, 19181.
|
||||
15384, 15470, 15491, 15786, 15918, 16068, 16141, 16171, 16296, 16347,
|
||||
16399, 16415, 16422, 16517, 16519, 16520, 16521, 16620, 16734, 16973,
|
||||
16985, 17118, 17243, 17244, 17250, 17404, 17441, 17787, 17886, 17887,
|
||||
17905, 18084, 18086, 18240, 18265, 18370, 18421, 18480, 18525, 18595,
|
||||
18589, 18610, 18611, 18618, 18647, 18661, 18674, 18675, 18681, 18699,
|
||||
18724, 18743, 18757, 18778, 18781, 18787, 18789, 18790, 18795, 18796,
|
||||
18803, 18820, 18823, 18824, 18825, 18857, 18863, 18870, 18872, 18873,
|
||||
18875, 18887, 18918, 18921, 18928, 18951, 18952, 18953, 18956, 18961,
|
||||
18966, 18967, 18969, 18970, 18977, 18980, 18981, 18982, 18985, 19003,
|
||||
19007, 19012, 19016, 19018, 19032, 19046, 19048, 19049, 19050, 19059,
|
||||
19071, 19074, 19076, 19077, 19078, 19079, 19085, 19086, 19088, 19094,
|
||||
19095, 19124, 19125, 19129, 19134, 19137, 19156, 19174, 19181.
|
||||
|
||||
* A defect in the malloc implementation, present since glibc 2.15 (2012) or
|
||||
glibc 2.10 via --enable-experimental-malloc (2009), could result in the
|
||||
|
@ -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 \
|
||||
|
@ -1,19 +0,0 @@
|
||||
/*
|
||||
* drem() wrapper for remainder().
|
||||
*
|
||||
* Written by J.T. Conklin, <jtc@wimsey.com>
|
||||
* Placed into the Public Domain, 1994.
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
|
||||
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
|
@ -1,16 +0,0 @@
|
||||
/*
|
||||
* dremf() wrapper for remainderf().
|
||||
*
|
||||
* Written by J.T. Conklin, <jtc@wimsey.com>
|
||||
* Placed into the Public Domain, 1994.
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
#include <math_private.h>
|
||||
|
||||
float
|
||||
__dremf (float x, float y)
|
||||
{
|
||||
return __remainderf(x, y);
|
||||
}
|
||||
weak_alias (__dremf, dremf)
|
@ -1,17 +0,0 @@
|
||||
/*
|
||||
* dreml() wrapper for remainderl().
|
||||
*
|
||||
* Written by J.T. Conklin, <jtc@wimsey.com>
|
||||
* Conversion to long double by Ulrich Drepper,
|
||||
* Cygnus Support, drepper@cygnus.com.
|
||||
* Placed into the Public Domain, 1994.
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
|
||||
long double
|
||||
__dreml (long double x, long double y)
|
||||
{
|
||||
return __remainderl(x, y);
|
||||
}
|
||||
weak_alias (__dreml, dreml)
|
@ -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
|
||||
|
@ -32,3 +32,4 @@ __remainderf (float x, float y)
|
||||
return __ieee754_remainderf (x, y);
|
||||
}
|
||||
weak_alias (__remainderf, remainderf)
|
||||
weak_alias (__remainderf, dremf)
|
||||
|
@ -32,3 +32,4 @@ __remainderl (long double x, long double y)
|
||||
return __ieee754_remainderl (x, y);
|
||||
}
|
||||
weak_alias (__remainderl, remainderl)
|
||||
weak_alias (__remainderl, dreml)
|
||||
|
@ -529,6 +529,7 @@ EXP_ERROR_RETURN:
|
||||
}
|
||||
|
||||
GLOBAL_IEEE754_END(remainder)
|
||||
weak_alias (__remainder, drem)
|
||||
|
||||
|
||||
|
||||
|
@ -548,6 +548,7 @@ EXP_ERROR_RETURN:
|
||||
}
|
||||
|
||||
GLOBAL_IEEE754_END(remainderf)
|
||||
weak_alias (__remainderf, dremf)
|
||||
|
||||
|
||||
|
||||
|
@ -557,6 +557,7 @@ EXP_ERROR_RETURN:
|
||||
}
|
||||
|
||||
GLOBAL_IEEE754_END(remainderl)
|
||||
weak_alias (__remainderl, dreml)
|
||||
|
||||
LOCAL_LIBM_ENTRY(__libm_error_region)
|
||||
.prologue
|
||||
|
@ -31,7 +31,7 @@ libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \
|
||||
tanh acosh asinh atanh exp log log10 exp10 pow10 expm1 \
|
||||
log1p logb exp2 sqrt cbrt fabs floor j0 j1 y0 y1 erf erfc \
|
||||
lgamma tgamma gamma rint nearbyint round trunc \
|
||||
copysign fdim fmax fmin nextafter pow hypot fmod drem \
|
||||
copysign fdim fmax fmin nextafter pow hypot fmod \
|
||||
remainder ldexp scalbn frexp modf scalbln fma nan sincos \
|
||||
jn yn ilogb remquo lrint lround llrint llround nexttowardf \
|
||||
nexttoward conj cacos cacosh casin catan catanh ccos ccosh \
|
||||
@ -81,7 +81,6 @@ CFLAGS-nldbl-csinh.c = -fno-builtin-csinhl
|
||||
CFLAGS-nldbl-csqrt.c = -fno-builtin-csqrtl
|
||||
CFLAGS-nldbl-ctan.c = -fno-builtin-ctanl
|
||||
CFLAGS-nldbl-ctanh.c = -fno-builtin-ctanhl
|
||||
CFLAGS-nldbl-drem.c = -fno-builtin-dreml
|
||||
CFLAGS-nldbl-erf.c = -fno-builtin-erfl
|
||||
CFLAGS-nldbl-erfc.c = -fno-builtin-erfcl
|
||||
CFLAGS-nldbl-exp.c = -fno-builtin-expl
|
||||
@ -125,7 +124,7 @@ CFLAGS-nldbl-nexttoward.c = -fno-builtin-nexttoward -fno-builtin-nexttowardl
|
||||
CFLAGS-nldbl-nexttowardf.c = -fno-builtin-nexttowardf
|
||||
CFLAGS-nldbl-pow.c = -fno-builtin-powl
|
||||
CFLAGS-nldbl-pow10.c = -fno-builtin-pow10l
|
||||
CFLAGS-nldbl-remainder.c = -fno-builtin-remainderl
|
||||
CFLAGS-nldbl-remainder.c = -fno-builtin-remainderl -fno-builtin-dreml
|
||||
CFLAGS-nldbl-remquo.c = -fno-builtin-remquol
|
||||
CFLAGS-nldbl-rint.c = -fno-builtin-rintl
|
||||
CFLAGS-nldbl-round.c = -fno-builtin-roundl
|
||||
|
@ -1,8 +0,0 @@
|
||||
#include "nldbl-compat.h"
|
||||
|
||||
double
|
||||
attribute_hidden
|
||||
dreml (double x, double y)
|
||||
{
|
||||
return drem (x, y);
|
||||
}
|
@ -6,3 +6,5 @@ remainderl (double x, double y)
|
||||
{
|
||||
return remainder (x, y);
|
||||
}
|
||||
extern __typeof (remainderl) dreml attribute_hidden;
|
||||
weak_alias (remainderl, dreml)
|
||||
|
@ -1,5 +0,0 @@
|
||||
#include <math_ldbl_opt.h>
|
||||
#include <math/w_drem.c>
|
||||
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
|
||||
compat_symbol (libm, __drem, dreml, GLIBC_2_0);
|
||||
#endif
|
@ -1,5 +0,0 @@
|
||||
#include <math_ldbl_opt.h>
|
||||
#undef weak_alias
|
||||
#define weak_alias(n,a)
|
||||
#include <math/w_dreml.c>
|
||||
long_double_symbol (libm, __dreml, dreml);
|
@ -2,4 +2,6 @@
|
||||
#include <math/w_remainder.c>
|
||||
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
|
||||
compat_symbol (libm, __remainder, remainderl, GLIBC_2_0);
|
||||
strong_alias (__remainder, __drem)
|
||||
compat_symbol (libm, __drem, dreml, GLIBC_2_0);
|
||||
#endif
|
||||
|
@ -3,3 +3,5 @@
|
||||
#define weak_alias(n,a)
|
||||
#include <math/w_remainderl.c>
|
||||
long_double_symbol (libm, __remainderl, remainderl);
|
||||
strong_alias (__remainderl, __dreml)
|
||||
long_double_symbol (libm, __dreml, dreml);
|
||||
|
Loading…
Reference in New Issue
Block a user