+2017-09-29 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/dbl-64/s_asinh.c: Include <libm-alias-double.h>.
+ (asinh): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_cbrt.c: Include <libm-alias-double.h>.
+ (cbrt): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_copysign.c: Include
+ <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_erf.c: Include <libm-alias-double.h>.
+ (erf): Define using libm_alias_double.
+ (erfc): Likewise.
+ * sysdeps/ieee754/dbl-64/s_expm1.c: Include <libm-alias-double.h>.
+ (expm1): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_fabs.c: Include <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_fromfp.c (fromfp): Define using
+ libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_fromfp_main.c: Include
+ <libm-alias-double.h>.
+ * sysdeps/ieee754/dbl-64/s_fromfpx.c (fromfpx): Define using
+ libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_getpayload.c: Include
+ <libm-alias-double.h>.
+ (getpayload): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_llrint.c: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_lrint.c: Include <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_nextup.c: Include
+ <libm-alias-double.h>.
+ (nextup): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_roundeven.c: Include
+ <libm-alias-double.h>.
+ (roundeven): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_setpayload.c (setpayload): Define using
+ libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_setpayload_main.c: Include
+ <libm-alias-double.h>.
+ * sysdeps/ieee754/dbl-64/s_setpayloadsig.c (setpayloadsig): Define
+ using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_sin.c: Include <libm-alias-double.h>.
+ (cos): Define using libm_alias_double.
+ (sin): Likewise.
+ * sysdeps/ieee754/dbl-64/s_sincos.c: Include
+ <libm-alias-double.h>.
+ (sincos): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_tanh.c: Include <libm-alias-double.h>.
+ (tanh): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_totalorder.c: Include
+ <libm-alias-double.h>.
+ (totalorder): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_totalordermag.c: Include
+ <libm-alias-double.h>.
+ (totalordermag): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_ufromfp.c (ufromfp): Define using
+ libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_ufromfpx.c (ufromfpx): Define using
+ libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c: Include
+ <libm-alias-double.h>.
+ (getpayload): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c: Include
+ <libm-alias-double.h>.
+ (roundeven): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c: Include
+ <libm-alias-double.h>.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Include
+ <libm-alias-double.h>.
+ (totalorder): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c: Include
+ <libm-alias-double.h>.
+ (totalordermag): Define using libm_alias_double.
+ * sysdeps/ieee754/ldbl-opt/s_copysign.c (copysignl): Only define
+ libc compat symbol here.
+ * sysdeps/ieee754/ldbl-opt/s_asinh.c: Remove file.
+ * sysdeps/ieee754/ldbl-opt/s_cbrt.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_erf.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_expm1.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_fabs.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_llrint.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_lrint.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_sin.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_sincos.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_tanh.c: Likewise.
+
2017-09-29 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/arm/dl-machine.h (elf_machine_load_address): Use
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
static const double
one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
}
return __copysign (w, x);
}
-weak_alias (__asinh, asinh)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__asinh, __asinhl)
-weak_alias (__asinh, asinhl)
-#endif
+libm_alias_double (__asinh, asinh)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#define CBRT2 1.2599210498948731648 /* 2^(1/3) */
return __ldexp (x > 0.0 ? ym : -ym, xe / 3);
}
-weak_alias (__cbrt, cbrt)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__cbrt, __cbrtl)
-weak_alias (__cbrt, cbrtl)
-#endif
+libm_alias_double (__cbrt, cbrt)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
double
__copysign (double x, double y)
SET_HIGH_WORD (x, (hx & 0x7fffffff) | (hy & 0x80000000));
return x;
}
-weak_alias (__copysign, copysign)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__copysign, __copysignl)
-weak_alias (__copysign, copysignl)
-#endif
+libm_alias_double (__copysign, copysign)
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <fix-int-fp-convert-zero.h>
static const double
else
return r / x - one;
}
-weak_alias (__erf, erf)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__erf, __erfl)
-weak_alias (__erf, erfl)
-#endif
+libm_alias_double (__erf, erf)
double
__erfc (double x)
return two - tiny;
}
}
-weak_alias (__erfc, erfc)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__erfc, __erfcl)
-weak_alias (__erfc, erfcl)
-#endif
+libm_alias_double (__erfc, erfc)
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#define one Q[0]
static const double
huge = 1.0e+300,
}
return y;
}
-weak_alias (__expm1, expm1)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__expm1, __expm1l)
-weak_alias (__expm1, expm1l)
-#endif
+libm_alias_double (__expm1, expm1)
*/
#include <math.h>
+#include <libm-alias-double.h>
double
__fabs (double x)
{
return __builtin_fabs (x);
}
-weak_alias (__fabs, fabs)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__fabs, __fabsl)
-weak_alias (__fabs, fabsl)
-#endif
+libm_alias_double (__fabs, fabs)
#define INEXACT 0
#define FUNC __fromfp
#include <s_fromfp_main.c>
-weak_alias (__fromfp, fromfp)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__fromfp, __fromfpl)
-weak_alias (__fromfp, fromfpl)
-#endif
+libm_alias_double (__fromfp, fromfp)
#include <fenv.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <stdbool.h>
#include <stdint.h>
#define INEXACT 1
#define FUNC __fromfpx
#include <s_fromfp_main.c>
-weak_alias (__fromfpx, fromfpx)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__fromfpx, __fromfpxl)
-weak_alias (__fromfpx, fromfpxl)
-#endif
+libm_alias_double (__fromfpx, fromfpx)
#include <fix-int-fp-convert-zero.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <stdint.h>
double
return 0.0f;
return (double) ix;
}
-weak_alias (__getpayload, getpayload)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__getpayload, __getpayloadl)
-weak_alias (__getpayload, getpayloadl)
-#endif
+libm_alias_double (__getpayload, getpayload)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <fix-fp-int-convert-overflow.h>
static const double two52[2] =
return sx ? -result : result;
}
-weak_alias (__llrint, llrint)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__llrint, __llrintl)
-weak_alias (__llrint, llrintl)
-#endif
+libm_alias_double (__llrint, llrint)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <fix-fp-int-convert-overflow.h>
static const double two52[2] =
return sx ? -result : result;
}
-weak_alias (__lrint, lrint)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__lrint, __lrintl)
-weak_alias (__lrint, lrintl)
-#endif
+libm_alias_double (__lrint, lrint)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
/* Return the least floating-point number greater than X. */
double
return x;
}
-weak_alias (__nextup, nextup)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__nextup, __nextupl)
-weak_alias (__nextup, nextupl)
-#endif
+libm_alias_double (__nextup, nextup)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <stdint.h>
#define BIAS 0x3ff
return x;
}
hidden_def (__roundeven)
-weak_alias (__roundeven, roundeven)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__roundeven, __roundevenl)
-weak_alias (__roundeven, roundevenl)
-#endif
+libm_alias_double (__roundeven, roundeven)
#define SIG 0
#define FUNC __setpayload
#include <s_setpayload_main.c>
-weak_alias (__setpayload, setpayload)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__setpayload, __setpayloadl)
-weak_alias (__setpayload, setpayloadl)
-#endif
+libm_alias_double (__setpayload, setpayload)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
#define SIG 1
#define FUNC __setpayloadsig
#include <s_setpayload_main.c>
-weak_alias (__setpayloadsig, setpayloadsig)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__setpayloadsig, __setpayloadsigl)
-weak_alias (__setpayloadsig, setpayloadsigl)
-#endif
+libm_alias_double (__setpayloadsig, setpayloadsig)
#include "MathLib.h"
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <fenv.h>
/* Helper macros to compute sin of the input values. */
}
#ifndef __cos
-weak_alias (__cos, cos)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__cos, __cosl)
-weak_alias (__cos, cosl)
-# endif
+libm_alias_double (__cos, cos)
#endif
#ifndef __sin
-weak_alias (__sin, sin)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__sin, __sinl)
-weak_alias (__sin, sinl)
-# endif
+libm_alias_double (__sin, sin)
#endif
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#define __sin __sin_local
#define __cos __cos_local
*sinx = *cosx = x / x;
}
-weak_alias (__sincos, sincos)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__sincos, __sincosl)
-weak_alias (__sincos, sincosl)
-#endif
+libm_alias_double (__sincos, sincos)
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
static const double one = 1.0, two = 2.0, tiny = 1.0e-300;
}
return (jx >= 0) ? z : -z;
}
-weak_alias (__tanh, tanh)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__tanh, __tanhl)
-weak_alias (__tanh, tanhl)
-#endif
+libm_alias_double (__tanh, tanh)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
ly ^= hy_sign;
return hx < hy || (hx == hy && lx <= ly);
}
-weak_alias (__totalorder, totalorder)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__totalorder, __totalorderl)
-weak_alias (__totalorder, totalorderl)
-#endif
+libm_alias_double (__totalorder, totalorder)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
#endif
return hx < hy || (hx == hy && lx <= ly);
}
-weak_alias (__totalordermag, totalordermag)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__totalordermag, __totalordermagl)
-weak_alias (__totalordermag, totalordermagl)
-#endif
+libm_alias_double (__totalordermag, totalordermag)
#define INEXACT 0
#define FUNC __ufromfp
#include <s_fromfp_main.c>
-weak_alias (__ufromfp, ufromfp)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__ufromfp, __ufromfpl)
-weak_alias (__ufromfp, ufromfpl)
-#endif
+libm_alias_double (__ufromfp, ufromfp)
#define INEXACT 1
#define FUNC __ufromfpx
#include <s_fromfp_main.c>
-weak_alias (__ufromfpx, ufromfpx)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__ufromfpx, __ufromfpxl)
-weak_alias (__ufromfpx, ufromfpxl)
-#endif
+libm_alias_double (__ufromfpx, ufromfpx)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <stdint.h>
double
ix &= 0x7ffffffffffffULL;
return (double) ix;
}
-weak_alias (__getpayload, getpayload)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__getpayload, __getpayloadl)
-weak_alias (__getpayload, getpayloadl)
-#endif
+libm_alias_double (__getpayload, getpayload)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <stdint.h>
#define BIAS 0x3ff
return x;
}
hidden_def (__roundeven)
-weak_alias (__roundeven, roundeven)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__roundeven, __roundevenl)
-weak_alias (__roundeven, roundevenl)
-#endif
+libm_alias_double (__roundeven, roundeven)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-double.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
#include <math.h>
#include <math_private.h>
#include <nan-high-order-bit.h>
+#include <libm-alias-double.h>
#include <stdint.h>
int
iy ^= iy_sign >> 1;
return ix <= iy;
}
-weak_alias (__totalorder, totalorder)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__totalorder, __totalorderl)
-weak_alias (__totalorder, totalorderl)
-#endif
+libm_alias_double (__totalorder, totalorder)
#include <math.h>
#include <math_private.h>
#include <nan-high-order-bit.h>
+#include <libm-alias-double.h>
#include <stdint.h>
int
#endif
return ix <= iy;
}
-weak_alias (__totalordermag, totalordermag)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__totalordermag, __totalordermagl)
-weak_alias (__totalordermag, totalordermagl)
-#endif
+libm_alias_double (__totalordermag, totalordermag)
+++ /dev/null
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_asinh.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __asinh, asinhl, GLIBC_2_0);
-#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_cbrt.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __cbrt, cbrtl, GLIBC_2_0);
-#endif
#include <math_ldbl_opt.h>
#include <sysdeps/ieee754/dbl-64/s_copysign.c>
-#if IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __copysign, copysignl, GLIBC_2_0);
-# endif
-#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
compat_symbol (libc, __copysign, copysignl, GLIBC_2_0);
#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_erf.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __erf, erfl, GLIBC_2_0);
-compat_symbol (libm, __erfc, erfcl, GLIBC_2_0);
-#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_expm1.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __expm1, expm1l, GLIBC_2_0);
-#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_fabs.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __fabs, fabsl, GLIBC_2_0);
-#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_llrint.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __llrint, llrintl, GLIBC_2_1);
-#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_lrint.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __lrint, lrintl, GLIBC_2_1);
-#endif
+++ /dev/null
-/* dbl-64/s_sin.c uses NAN and sincos identifiers internally. */
-#define sincos sincos_disable
-/* These definitions needed for proper unfolding of __MATHDECL_VEC. */
-#define __DECL_SIMD_sincos_disable
-#define __DECL_SIMD_sincos_disablef
-#define __DECL_SIMD_sincos_disablel
-#define __DECL_SIMD_sincos_disablef128
-#include <math_ldbl_opt.h>
-#undef NAN
-#undef sincos
-#include <sysdeps/ieee754/dbl-64/s_sin.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __sin, sinl, GLIBC_2_0);
-compat_symbol (libm, __cos, cosl, GLIBC_2_0);
-#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_sincos.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __sincos, sincosl, GLIBC_2_1);
-#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_tanh.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __tanh, tanhl, GLIBC_2_0);
-#endif