+2017-10-06 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/float128/float128_private.h: Include
+ <libm-alias-ldouble.h> and <libm-alias-float128.h>.
+ (libm_alias_ldouble_r): Undefine and redefine.
+ * sysdeps/ieee754/ldbl-128/s_asinhl.c: Include
+ <libm-alias-ldouble.h>.
+ (asinhl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_atanl.c: Include
+ <libm-alias-ldouble.h>.
+ (atanl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_cbrtl.c: Include
+ <libm-alias-ldouble.h>.
+ (cbrtl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_ceill.c: Include
+ <libm-alias-ldouble.h>.
+ (ceill): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_copysignl.c: Include
+ <libm-alias-ldouble.h>.
+ (copysignl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_cosl.c: Include
+ <libm-alias-ldouble.h>.
+ (cosl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_erfl.c: Include
+ <libm-alias-ldouble.h>.
+ (erfl): Define using libm_alias_ldouble.
+ (erfcl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_expm1l.c: Include
+ <libm-alias-ldouble.h>.
+ (expm1l): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_fabsl.c: Include
+ <libm-alias-ldouble.h>.
+ (fabsl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_floorl.c: Include
+ <libm-alias-ldouble.h>.
+ (floorl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_fmal.c: Include
+ <libm-alias-ldouble.h>.
+ (fmal): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_frexpl.c: Include
+ <libm-alias-ldouble.h>.
+ (frexpl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_fromfpl.c (fromfpl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_fromfpl_main.c: Include
+ <libm-alias-ldouble.h>.
+ * sysdeps/ieee754/ldbl-128/s_fromfpxl.c (fromfpxl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_getpayloadl.c: Include
+ <libm-alias-ldouble.h>.
+ (getpayloadl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_llrintl.c: Include
+ <libm-alias-ldouble.h>.
+ (llrintl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_llroundl.c: Include
+ <libm-alias-ldouble.h>.
+ (llroundl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_logbl.c: Include
+ <libm-alias-ldouble.h>.
+ (logbl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_lrintl.c: Include
+ <libm-alias-ldouble.h>.
+ (lrintl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_lroundl.c: Include
+ <libm-alias-ldouble.h>.
+ (lroundl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_modfl.c: Include
+ <libm-alias-ldouble.h>.
+ (modfl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_nearbyintl.c: Include
+ <libm-alias-ldouble.h>.
+ (nearbyintl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_nextafterl.c: Include
+ <libm-alias-ldouble.h>.
+ (nextafterl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_nextupl.c: Include
+ <libm-alias-ldouble.h>.
+ (nextupl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_remquol.c: Include
+ <libm-alias-ldouble.h>.
+ (remquol): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_rintl.c: Include
+ <libm-alias-ldouble.h>.
+ (rintl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_roundevenl.c: Include
+ <libm-alias-ldouble.h>.
+ (roundevenl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_roundl.c: Include
+ <libm-alias-ldouble.h>.
+ (roundl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_setpayloadl.c (setpayloadl): Define
+ using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c: Include
+ <libm-alias-ldouble.h>.
+ * sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c (setpayloadsigl):
+ Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_sincosl.c: Include
+ <libm-alias-ldouble.h>.
+ (sincosl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_sinl.c: Include
+ <libm-alias-ldouble.h>.
+ (sinl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_tanhl.c: Include
+ <libm-alias-ldouble.h>.
+ (tanhl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_tanl.c: Include
+ <libm-alias-ldouble.h>.
+ (tanl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_totalorderl.c: Include
+ <libm-alias-ldouble.h>.
+ (totalorderl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_totalordermagl.c: Include
+ <libm-alias-ldouble.h>.
+ (totalordermagl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_truncl.c: Include
+ <libm-alias-ldouble.h>.
+ (truncl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_ufromfpl.c (ufromfpl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_ufromfpxl.c (ufromfpxl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-64-128/s_copysignl.c: Include
+ <libm-alias-ldouble.h>.
+ (weak_alias): Do not undefine and redefine.
+ [IS_IN (libc)] (libm_alias_ldouble): Undefine and redefine.
+ (copysignl): Define with long_double_symbol only if [IS_IN
+ (libc)].
+ * sysdeps/ieee754/ldbl-64-128/s_frexpl.c: Include
+ <libm-alias-ldouble.h>.
+ (weak_alias): Do not undefine and redefine.
+ [IS_IN (libc)] (libm_alias_ldouble): Undefine and redefine.
+ (frexpl): Define with long_double_symbol only if [IS_IN (libc)].
+ * sysdeps/ieee754/ldbl-64-128/s_modfl.c: Include
+ <libm-alias-ldouble.h>.
+ (weak_alias): Do not undefine and redefine.
+ [IS_IN (libc)] (libm_alias_ldouble): Undefine and redefine.
+ (modfl): Define with long_double_symbol only if [IS_IN (libc)].
+ * sysdeps/ieee754/ldbl-64-128/s_asinhl.c: Remove file.
+ * sysdeps/ieee754/ldbl-64-128/s_atanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_cbrtl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_ceill.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_cosl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_erfl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_expm1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_fabsl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_floorl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_llrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_llroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_logbl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_lrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_lroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_remquol.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_rintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_roundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_sincosl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_sinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_tanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_tanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_truncl.c: Likewise.
+
2017-10-06 Carlos O'Donell <carlos@redhat.com>
[BZ #22111]
#define M_SQRT1_2l M_SQRT1_2f128
+#include <libm-alias-ldouble.h>
+#include <libm-alias-float128.h>
+#undef libm_alias_ldouble_r
+#define libm_alias_ldouble_r(from, to, r) libm_alias_float128_r (from, to, r)
+
+
/* IEEE function renames. */
#define __ieee754_acoshl __ieee754_acoshf128
#define __ieee754_acosl __ieee754_acosf128
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
static const _Float128
one = 1,
else
return w;
}
-weak_alias (__asinhl, asinhl)
+libm_alias_ldouble (__asinh, asinh)
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
/* arctan(k/8), k = 0, ..., 82 */
static const _Float128 atantbl[84] = {
return u;
}
-weak_alias (__atanl, atanl)
+libm_alias_ldouble (__atan, atan)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
static const _Float128 CBRT2 = L(1.259921049894873164767210607278228350570251);
static const _Float128 CBRT4 = L(1.587401051968199474751705639272308260391493);
return (x);
}
-weak_alias (__cbrtl, cbrtl)
+libm_alias_ldouble (__cbrt, cbrt)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128 __ceill(_Float128 x)
{
SET_LDOUBLE_WORDS64(x,i0,i1);
return x;
}
-weak_alias (__ceill, ceill)
+libm_alias_ldouble (__ceil, ceil)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128 __copysignl(_Float128 x, _Float128 y)
{
|(hy&0x8000000000000000ULL));
return x;
}
-weak_alias (__copysignl, copysignl)
+libm_alias_ldouble (__copysign, copysign)
#include <errno.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128 __cosl(_Float128 x)
{
}
}
}
-weak_alias (__cosl, cosl)
+libm_alias_ldouble (__cos, cos)
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
/* Evaluate P[n] x^n + P[n-1] x^(n-1) + ... + P[0] */
return( y );
}
-weak_alias (__erfl, erfl)
+libm_alias_ldouble (__erf, erf)
_Float128
__erfcl (_Float128 x)
{
}
}
-weak_alias (__erfcl, erfcl)
+libm_alias_ldouble (__erfc, erfc)
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
/* exp(x) - 1 = x + 0.5 x^2 + x^3 P(x)/Q(x)
-.5 ln 2 < x < .5 ln 2
return x;
}
libm_hidden_def (__expm1l)
-weak_alias (__expm1l, expm1l)
+libm_alias_ldouble (__expm1, expm1)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128 __fabsl(_Float128 x)
{
SET_LDOUBLE_MSW64(x,hx&0x7fffffffffffffffLL);
return x;
}
-weak_alias (__fabsl, fabsl)
+libm_alias_ldouble (__fabs, fabs)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128 __floorl(_Float128 x)
{
SET_LDOUBLE_WORDS64(x,i0,i1);
return x;
}
-weak_alias (__floorl, floorl)
+libm_alias_ldouble (__floor, floor)
#include <fenv.h>
#include <ieee754.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <tininess.h>
/* This implementation uses rounding to odd to avoid problems with
return v.d * L(0x1p-228);
}
}
-weak_alias (__fmal, fmal)
+libm_alias_ldouble (__fma, fma)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
static const _Float128
two114 = L(2.0769187434139310514121985316880384E+34); /* 0x4071000000000000, 0 */
SET_LDOUBLE_MSW64(x,hx);
return x;
}
-weak_alias (__frexpl, frexpl)
+libm_alias_ldouble (__frexp, frexp)
#define INEXACT 0
#define FUNC __fromfpl
#include <s_fromfpl_main.c>
-weak_alias (__fromfpl, fromfpl)
+libm_alias_ldouble (__fromfp, fromfp)
#include <fenv.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <stdbool.h>
#include <stdint.h>
#define INEXACT 1
#define FUNC __fromfpxl
#include <s_fromfpl_main.c>
-weak_alias (__fromfpxl, fromfpxl)
+libm_alias_ldouble (__fromfpx, fromfpx)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <stdint.h>
_Float128
SET_LDOUBLE_WORDS64 (ret, hx, lx);
return ret;
}
-weak_alias (__getpayloadl, getpayloadl)
+libm_alias_ldouble (__getpayload, getpayload)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <fix-fp-int-convert-overflow.h>
static const _Float128 two112[2] =
return sx ? -result : result;
}
-weak_alias (__llrintl, llrintl)
+libm_alias_ldouble (__llrint, llrint)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <fix-fp-int-convert-overflow.h>
long long int
return sign * result;
}
-weak_alias (__llroundl, llroundl)
+libm_alias_ldouble (__llround, llround)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128
__logbl (_Float128 x)
return (_Float128) (ex - 16383);
}
-weak_alias (__logbl, logbl)
+libm_alias_ldouble (__logb, logb)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <fix-fp-int-convert-overflow.h>
static const _Float128 two112[2] =
return sx ? -result : result;
}
-weak_alias (__lrintl, lrintl)
+libm_alias_ldouble (__lrint, lrint)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <fix-fp-int-convert-overflow.h>
long int
return sign * result;
}
-weak_alias (__lroundl, lroundl)
+libm_alias_ldouble (__lround, lround)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
static const _Float128 one = 1.0;
}
}
}
-weak_alias (__modfl, modfl)
+libm_alias_ldouble (__modf, modf)
#include <fenv.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
static const _Float128
TWO112[2]={
fesetenv (&env);
return t;
}
-weak_alias (__nearbyintl, nearbyintl)
+libm_alias_ldouble (__nearbyint, nearbyint)
#include <errno.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128 __nextafterl(_Float128 x, _Float128 y)
{
SET_LDOUBLE_WORDS64(x,hx,lx);
return x;
}
-weak_alias (__nextafterl, nextafterl)
+libm_alias_ldouble (__nextafter, nextafter)
strong_alias (__nextafterl, __nexttowardl)
weak_alias (__nextafterl, nexttowardl)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
/* Return the least floating-point number greater than X. */
_Float128
return x;
}
-weak_alias (__nextupl, nextupl)
+libm_alias_ldouble (__nextup, nextup)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
static const _Float128 zero = 0.0;
x = -x;
return x;
}
-weak_alias (__remquol, remquol)
+libm_alias_ldouble (__remquo, remquo)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
static const _Float128
TWO112[2]={
w = TWO112[sx]+x;
return w-TWO112[sx];
}
-weak_alias (__rintl, rintl)
+libm_alias_ldouble (__rint, rint)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <stdint.h>
#define BIAS 0x3fff
SET_LDOUBLE_WORDS64 (x, hx, lx);
return x;
}
-weak_alias (__roundevenl, roundevenl)
+libm_alias_ldouble (__roundeven, roundeven)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128
SET_LDOUBLE_WORDS64 (x, i0, i1);
return x;
}
-weak_alias (__roundl, roundl)
+libm_alias_ldouble (__round, round)
#define SIG 0
#define FUNC __setpayloadl
#include <s_setpayloadl_main.c>
-weak_alias (__setpayloadl, setpayloadl)
+libm_alias_ldouble (__setpayload, setpayload)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
#define SIG 1
#define FUNC __setpayloadsigl
#include <s_setpayloadl_main.c>
-weak_alias (__setpayloadsigl, setpayloadsigl)
+libm_alias_ldouble (__setpayloadsig, setpayloadsig)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
void
__sincosl (_Float128 x, _Float128 *sinx, _Float128 *cosx)
}
}
}
-weak_alias (__sincosl, sincosl)
+libm_alias_ldouble (__sincos, sincos)
#include <errno.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128 __sinl(_Float128 x)
{
}
}
}
-weak_alias (__sinl, sinl)
+libm_alias_ldouble (__sin, sin)
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
static const _Float128 one = 1.0, two = 2.0, tiny = L(1.0e-4900);
}
return (jx & 0x80000000) ? -z : z;
}
-weak_alias (__tanhl, tanhl)
+libm_alias_ldouble (__tanh, tanh)
#include <errno.h>
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128 __tanl(_Float128 x)
{
-1 -- n odd */
}
}
-weak_alias (__tanl, tanl)
+libm_alias_ldouble (__tan, tan)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
ly ^= hy_sign;
return hx < hy || (hx == hy && lx <= ly);
}
-weak_alias (__totalorderl, totalorderl)
+libm_alias_ldouble (__totalorder, totalorder)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
#endif
return hx < hy || (hx == hy && lx <= ly);
}
-weak_alias (__totalordermagl, totalordermagl)
+libm_alias_ldouble (__totalordermag, totalordermag)
#include <math.h>
#include <math_private.h>
+#include <libm-alias-ldouble.h>
_Float128
return x;
}
-weak_alias (__truncl, truncl)
+libm_alias_ldouble (__trunc, trunc)
#define INEXACT 0
#define FUNC __ufromfpl
#include <s_fromfpl_main.c>
-weak_alias (__ufromfpl, ufromfpl)
+libm_alias_ldouble (__ufromfp, ufromfp)
#define INEXACT 1
#define FUNC __ufromfpxl
#include <s_fromfpl_main.c>
-weak_alias (__ufromfpxl, ufromfpxl)
+libm_alias_ldouble (__ufromfpx, ufromfpx)
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_asinhl.c>
-long_double_symbol (libm, __asinhl, asinhl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_atanl.c>
-long_double_symbol (libm, __atanl, atanl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_cbrtl.c>
-long_double_symbol (libm, __cbrtl, cbrtl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_ceill.c>
-long_double_symbol (libm, __ceill, ceill);
#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
+#include <libm-alias-ldouble.h>
+#if IS_IN (libc)
+# undef libm_alias_ldouble
+# define libm_alias_ldouble(from, to)
+#endif
#include <sysdeps/ieee754/ldbl-128/s_copysignl.c>
-#if IS_IN (libm)
-long_double_symbol (libm, __copysignl, copysignl);
-#else
+#if IS_IN (libc)
long_double_symbol (libc, __copysignl, copysignl);
#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_cosl.c>
-long_double_symbol (libm, __cosl, cosl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_erfl.c>
-long_double_symbol (libm, __erfl, erfl);
-long_double_symbol (libm, __erfcl, erfcl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_expm1l.c>
-long_double_symbol (libm, __expm1l, expm1l);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_fabsl.c>
-long_double_symbol (libm, __fabsl, fabsl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_floorl.c>
-long_double_symbol (libm, __floorl, floorl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_fmal.c>
-long_double_symbol (libm, __fmal, fmal);
#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
+#include <libm-alias-ldouble.h>
+#if IS_IN (libc)
+# undef libm_alias_ldouble
+# define libm_alias_ldouble(from, to)
+#endif
#include <sysdeps/ieee754/ldbl-128/s_frexpl.c>
-#if IS_IN (libm)
-long_double_symbol (libm, __frexpl, frexpl);
-#else
+#if IS_IN (libc)
long_double_symbol (libc, __frexpl, frexpl);
#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_llrintl.c>
-long_double_symbol (libm, __llrintl, llrintl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_llroundl.c>
-long_double_symbol (libm, __llroundl, llroundl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_logbl.c>
-long_double_symbol (libm, __logbl, logbl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_lrintl.c>
-long_double_symbol (libm, __lrintl, lrintl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_lroundl.c>
-long_double_symbol (libm, __lroundl, lroundl);
#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
+#include <libm-alias-ldouble.h>
+#if IS_IN (libc)
+# undef libm_alias_ldouble
+# define libm_alias_ldouble(from, to)
+#endif
#include <sysdeps/ieee754/ldbl-128/s_modfl.c>
-#if IS_IN (libm)
-long_double_symbol (libm, __modfl, modfl);
-#else
+#if IS_IN (libc)
long_double_symbol (libc, __modfl, modfl);
#endif
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_nearbyintl.c>
-long_double_symbol (libm, __nearbyintl, nearbyintl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_remquol.c>
-long_double_symbol (libm, __remquol, remquol);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_rintl.c>
-long_double_symbol (libm, __rintl, rintl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_roundl.c>
-long_double_symbol (libm, __roundl, roundl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_sincosl.c>
-long_double_symbol (libm, __sincosl, sincosl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_sinl.c>
-long_double_symbol (libm, __sinl, sinl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_tanhl.c>
-long_double_symbol (libm, __tanhl, tanhl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_tanl.c>
-long_double_symbol (libm, __tanl, tanl);
+++ /dev/null
-#include <math_ldbl_opt.h>
-#undef weak_alias
-#define weak_alias(n,a)
-#include <sysdeps/ieee754/ldbl-128/s_truncl.c>
-long_double_symbol (libm, __truncl, truncl);