Page MenuHomeFreeBSD

D57850.diff
No OneTemporary

D57850.diff

diff --git a/lib/msun/Makefile b/lib/msun/Makefile
--- a/lib/msun/Makefile
+++ b/lib/msun/Makefile
@@ -27,6 +27,7 @@
.elif ${LDBL_PREC} == 113
.PATH: ${.CURDIR}/ld128
CFLAGS+= -I${.CURDIR}/ld128 -I${SRCTOP}/contrib/arm-optimized-routines/math
+SYM_MAPS+= ${.CURDIR}/Symbol_f128.map
.endif
CFLAGS+= -I${.CURDIR}/${ARCH_SUBDIR}
diff --git a/lib/msun/powerpc/Symbol_f128.map b/lib/msun/Symbol_f128.map
rename from lib/msun/powerpc/Symbol_f128.map
rename to lib/msun/Symbol_f128.map
--- a/lib/msun/powerpc/Symbol_f128.map
+++ b/lib/msun/Symbol_f128.map
@@ -2,35 +2,60 @@
*/
FBSD_1.9 {
acosf128;
+ acoshf128;
asinf128;
- atanf128;
+ asinhf128;
atan2f128;
+ atanf128;
+ atanhf128;
+ cbrtf128;
ceilf128;
+ copysignf128;
cosf128;
coshf128;
- expf128;
+ erfcf128;
+ erff128;
exp2f128;
+ expf128;
+ expm1f128;
+ fabsf128;
+ fdimf128;
floorf128;
fmaf128;
fmaxf128;
fminf128;
fmodf128;
+ frexpf128;
+ hypotf128;
+ ilogbf128;
ldexpf128;
+ lgammaf128;
+ llrintf128;
llroundf128;
- logf128;
log10f128;
+ log1pf128;
log2f128;
+ logbf128;
+ logf128;
+ lrintf128;
lroundf128;
modff128;
+ nanf128;
nearbyintf128;
+ nextafterf128;
powf128;
+ remainderf128;
+ remquof128;
rintf128;
roundf128;
+ scalblnf128;
+ scalbnf128;
sincosf128;
sinf128;
sinhf128;
sqrtf128;
tanf128;
tanhf128;
+ tgammaf128;
truncf128;
};
diff --git a/lib/msun/ld128/b_tgammal.c b/lib/msun/ld128/b_tgammal.c
--- a/lib/msun/ld128/b_tgammal.c
+++ b/lib/msun/ld128/b_tgammal.c
@@ -10,3 +10,5 @@
*/
#define tgamma128 tgammal
#include "tgamma128.c"
+
+__weak_reference(tgammal, tgammaf128);
diff --git a/lib/msun/ld128/e_powl.c b/lib/msun/ld128/e_powl.c
--- a/lib/msun/ld128/e_powl.c
+++ b/lib/msun/ld128/e_powl.c
@@ -438,3 +438,5 @@
}
return s * z;
}
+
+__weak_reference(powl, powf128);
diff --git a/lib/msun/ld128/s_erfl.c b/lib/msun/ld128/s_erfl.c
--- a/lib/msun/ld128/s_erfl.c
+++ b/lib/msun/ld128/s_erfl.c
@@ -323,3 +323,6 @@
if(x>0) return tiny*tiny; else return two-tiny;
}
}
+
+__weak_reference(erfl, erff128);
+__weak_reference(erfcl, erfcf128);
diff --git a/lib/msun/ld128/s_exp2l.c b/lib/msun/ld128/s_exp2l.c
--- a/lib/msun/ld128/s_exp2l.c
+++ b/lib/msun/ld128/s_exp2l.c
@@ -424,3 +424,5 @@
return (r * twopkp10000 * twom10000);
}
}
+
+__weak_reference(exp2l, exp2f128);
diff --git a/lib/msun/ld128/s_expl.c b/lib/msun/ld128/s_expl.c
--- a/lib/msun/ld128/s_expl.c
+++ b/lib/msun/ld128/s_expl.c
@@ -317,3 +317,6 @@
t = SUM2P(tbl[n2].hi - twomk, tbl[n2].lo + t * (q + r1));
RETURNI(t * twopk);
}
+
+__weak_reference(expl, expf128);
+__weak_reference(expm1l, expm1f128);
diff --git a/lib/msun/ld128/s_logl.c b/lib/msun/ld128/s_logl.c
--- a/lib/msun/ld128/s_logl.c
+++ b/lib/msun/ld128/s_logl.c
@@ -729,3 +729,8 @@
}
#endif /* STRUCT_RETURN */
+
+__weak_reference(logl, logf128);
+__weak_reference(log10l, log10f128);
+__weak_reference(log1pl, log1pf128);
+__weak_reference(log2l, log2f128);
diff --git a/lib/msun/ld128/s_nanl.c b/lib/msun/ld128/s_nanl.c
--- a/lib/msun/ld128/s_nanl.c
+++ b/lib/msun/ld128/s_nanl.c
@@ -44,3 +44,5 @@
u.ieee.bits.manh |= 1ULL << 47; /* make it a quiet NaN */
return (u.ieee.e);
}
+
+__weak_reference(nanl, nanf128);
diff --git a/lib/msun/powerpc/Makefile.inc b/lib/msun/powerpc/Makefile.inc
--- a/lib/msun/powerpc/Makefile.inc
+++ b/lib/msun/powerpc/Makefile.inc
@@ -1,8 +1,5 @@
.if ${MACHINE_ARCH} == "powerpc64le"
LDBL_PREC = 113
-ARCH_SRCS = ld128_compat.c
-CFLAGS.ld128_compat.c+= -fno-builtin
-SYM_MAPS+= ${.CURDIR}/${ARCH_SUBDIR}/Symbol_f128.map
.else
LDBL_PREC = 53
.endif
diff --git a/lib/msun/powerpc/ld128_compat.c b/lib/msun/powerpc/ld128_compat.c
deleted file mode 100644
--- a/lib/msun/powerpc/ld128_compat.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * On powerpc64le, long double is IEEE binary128, which the compiler treats as
- * _Float128. clang lowers long double libm calls to the f128-suffixed entry
- * points (sinf128, powf128, ...) rather than the *l names. Provide those entry
- * points as thin forwarders to the existing long double implementations.
- *
- * This file is compiled with -fno-builtin so the calls below are not themselves
- * rewritten back to the f128 names, which would recurse infinitely.
- */
-#include <math.h>
-
-long double acosf128(long double x) { return acosl(x); }
-long double asinf128(long double x) { return asinl(x); }
-long double atanf128(long double x) { return atanl(x); }
-long double atan2f128(long double y, long double x) { return atan2l(y, x); }
-long double ceilf128(long double x) { return ceill(x); }
-long double cosf128(long double x) { return cosl(x); }
-long double coshf128(long double x) { return coshl(x); }
-long double expf128(long double x) { return expl(x); }
-long double exp2f128(long double x) { return exp2l(x); }
-long double floorf128(long double x) { return floorl(x); }
-long double fmaf128(long double x, long double y, long double z) { return fmal(x, y, z); }
-long double fmaxf128(long double x, long double y) { return fmaxl(x, y); }
-long double fminf128(long double x, long double y) { return fminl(x, y); }
-long double fmodf128(long double x, long double y) { return fmodl(x, y); }
-long double ldexpf128(long double x, int n) { return ldexpl(x, n); }
-long long llroundf128(long double x) { return llroundl(x); }
-long double logf128(long double x) { return logl(x); }
-long double log10f128(long double x) { return log10l(x); }
-long double log2f128(long double x) { return log2l(x); }
-long lroundf128(long double x) { return lroundl(x); }
-long double modff128(long double x, long double *iptr) { return modfl(x, iptr); }
-long double nearbyintf128(long double x) { return nearbyintl(x); }
-long double powf128(long double x, long double y) { return powl(x, y); }
-long double rintf128(long double x) { return rintl(x); }
-long double roundf128(long double x) { return roundl(x); }
-void sincosf128(long double x, long double *s, long double *c) { sincosl(x, s, c); }
-long double sinf128(long double x) { return sinl(x); }
-long double sinhf128(long double x) { return sinhl(x); }
-long double sqrtf128(long double x) { return sqrtl(x); }
-long double tanf128(long double x) { return tanl(x); }
-long double tanhf128(long double x) { return tanhl(x); }
-long double truncf128(long double x) { return truncl(x); }
diff --git a/lib/msun/src/e_acoshl.c b/lib/msun/src/e_acoshl.c
--- a/lib/msun/src/e_acoshl.c
+++ b/lib/msun/src/e_acoshl.c
@@ -83,3 +83,7 @@
RETURNI(log1pl(t+sqrtl(2.0*t+t*t)));
}
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(acoshl, acoshf128);
+#endif
diff --git a/lib/msun/src/e_acosl.c b/lib/msun/src/e_acosl.c
--- a/lib/msun/src/e_acosl.c
+++ b/lib/msun/src/e_acosl.c
@@ -81,3 +81,7 @@
return 2.0*(df+w);
}
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(acosl, acosf128);
+#endif
diff --git a/lib/msun/src/e_asinl.c b/lib/msun/src/e_asinl.c
--- a/lib/msun/src/e_asinl.c
+++ b/lib/msun/src/e_asinl.c
@@ -71,3 +71,7 @@
}
if(expsign>0) return t; else return -t;
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(asinl, asinf128);
+#endif
diff --git a/lib/msun/src/e_atan2l.c b/lib/msun/src/e_atan2l.c
--- a/lib/msun/src/e_atan2l.c
+++ b/lib/msun/src/e_atan2l.c
@@ -114,3 +114,7 @@
return (z-pi_lo)-pi;/* atan(-,-) */
}
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(atan2l, atan2f128);
+#endif
diff --git a/lib/msun/src/e_atanhl.c b/lib/msun/src/e_atanhl.c
--- a/lib/msun/src/e_atanhl.c
+++ b/lib/msun/src/e_atanhl.c
@@ -68,3 +68,7 @@
t = 0.5*log1pl((x+x)/(one-x));
RETURNI((hx & 0x8000) == 0 ? t : -t);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(atanhl, atanhf128);
+#endif
diff --git a/lib/msun/src/e_coshl.c b/lib/msun/src/e_coshl.c
--- a/lib/msun/src/e_coshl.c
+++ b/lib/msun/src/e_coshl.c
@@ -127,3 +127,7 @@
/* |x| > o_threshold, cosh(x) overflow */
RETURNI(huge*huge);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(coshl, coshf128);
+#endif
diff --git a/lib/msun/src/e_fmodl.c b/lib/msun/src/e_fmodl.c
--- a/lib/msun/src/e_fmodl.c
+++ b/lib/msun/src/e_fmodl.c
@@ -143,3 +143,7 @@
x = ux.e * one; /* create necessary signal */
return x; /* exact output */
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(fmodl, fmodf128);
+#endif
diff --git a/lib/msun/src/e_hypotl.c b/lib/msun/src/e_hypotl.c
--- a/lib/msun/src/e_hypotl.c
+++ b/lib/msun/src/e_hypotl.c
@@ -118,3 +118,7 @@
return t1*w;
} else return w;
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(hypotl, hypotf128);
+#endif
diff --git a/lib/msun/src/e_lgammal.c b/lib/msun/src/e_lgammal.c
--- a/lib/msun/src/e_lgammal.c
+++ b/lib/msun/src/e_lgammal.c
@@ -10,6 +10,7 @@
*/
#include "math.h"
+#include <float.h>
#include "math_private.h"
extern int signgam;
@@ -19,3 +20,7 @@
{
return lgammal_r(x,&signgam);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(lgammal, lgammaf128);
+#endif
diff --git a/lib/msun/src/e_remainderl.c b/lib/msun/src/e_remainderl.c
--- a/lib/msun/src/e_remainderl.c
+++ b/lib/msun/src/e_remainderl.c
@@ -27,6 +27,7 @@
*/
#include <math.h>
+#include <float.h>
long double
remainderl(long double x, long double y)
@@ -35,3 +36,7 @@
return (remquol(x, y, &quo));
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(remainderl, remainderf128);
+#endif
diff --git a/lib/msun/src/e_sinhl.c b/lib/msun/src/e_sinhl.c
--- a/lib/msun/src/e_sinhl.c
+++ b/lib/msun/src/e_sinhl.c
@@ -129,3 +129,7 @@
/* |x| > o_threshold, sinh(x) overflow */
return x*shuge;
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(sinhl, sinhf128);
+#endif
diff --git a/lib/msun/src/e_sqrtl.c b/lib/msun/src/e_sqrtl.c
--- a/lib/msun/src/e_sqrtl.c
+++ b/lib/msun/src/e_sqrtl.c
@@ -156,3 +156,7 @@
u.bits.exp--;
return (u.e);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(sqrtl, sqrtf128);
+#endif
diff --git a/lib/msun/src/s_asinhl.c b/lib/msun/src/s_asinhl.c
--- a/lib/msun/src/s_asinhl.c
+++ b/lib/msun/src/s_asinhl.c
@@ -85,3 +85,7 @@
}
RETURNI((hx & 0x8000) == 0 ? w : -w);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(asinhl, asinhf128);
+#endif
diff --git a/lib/msun/src/s_atanl.c b/lib/msun/src/s_atanl.c
--- a/lib/msun/src/s_atanl.c
+++ b/lib/msun/src/s_atanl.c
@@ -79,3 +79,7 @@
return (expsign<0)? -z:z;
}
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(atanl, atanf128);
+#endif
diff --git a/lib/msun/src/s_cbrtl.c b/lib/msun/src/s_cbrtl.c
--- a/lib/msun/src/s_cbrtl.c
+++ b/lib/msun/src/s_cbrtl.c
@@ -138,3 +138,7 @@
t *= v.e;
RETURNI(t);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(cbrtl, cbrtf128);
+#endif
diff --git a/lib/msun/src/s_ceill.c b/lib/msun/src/s_ceill.c
--- a/lib/msun/src/s_ceill.c
+++ b/lib/msun/src/s_ceill.c
@@ -94,3 +94,7 @@
}
return (u.e);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(ceill, ceilf128);
+#endif
diff --git a/lib/msun/src/s_copysignl.c b/lib/msun/src/s_copysignl.c
--- a/lib/msun/src/s_copysignl.c
+++ b/lib/msun/src/s_copysignl.c
@@ -27,6 +27,7 @@
*/
#include <math.h>
+#include <float.h>
#include "fpmath.h"
@@ -40,3 +41,7 @@
ux.bits.sign = uy.bits.sign;
return (ux.e);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(copysignl, copysignf128);
+#endif
diff --git a/lib/msun/src/s_cosl.c b/lib/msun/src/s_cosl.c
--- a/lib/msun/src/s_cosl.c
+++ b/lib/msun/src/s_cosl.c
@@ -97,3 +97,7 @@
RETURNI(hi);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(cosl, cosf128);
+#endif
diff --git a/lib/msun/src/s_fabsl.c b/lib/msun/src/s_fabsl.c
--- a/lib/msun/src/s_fabsl.c
+++ b/lib/msun/src/s_fabsl.c
@@ -29,6 +29,7 @@
*/
#include <math.h>
+#include <float.h>
#include "fpmath.h"
@@ -41,3 +42,7 @@
u.bits.sign = 0;
return (u.e);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(fabsl, fabsf128);
+#endif
diff --git a/lib/msun/src/s_fdim.c b/lib/msun/src/s_fdim.c
--- a/lib/msun/src/s_fdim.c
+++ b/lib/msun/src/s_fdim.c
@@ -27,6 +27,7 @@
*/
#include <math.h>
+#include <float.h>
#define DECL(type, fn) \
type \
@@ -43,3 +44,7 @@
DECL(double, fdim)
DECL(float, fdimf)
DECL(long double, fdiml)
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(fdiml, fdimf128);
+#endif
diff --git a/lib/msun/src/s_floorl.c b/lib/msun/src/s_floorl.c
--- a/lib/msun/src/s_floorl.c
+++ b/lib/msun/src/s_floorl.c
@@ -94,3 +94,7 @@
}
return (u.e);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(floorl, floorf128);
+#endif
diff --git a/lib/msun/src/s_fmal.c b/lib/msun/src/s_fmal.c
--- a/lib/msun/src/s_fmal.c
+++ b/lib/msun/src/s_fmal.c
@@ -269,3 +269,7 @@
else
return (add_and_denormalize(r.hi, adj, spread));
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(fmal, fmaf128);
+#endif
diff --git a/lib/msun/src/s_fmaxl.c b/lib/msun/src/s_fmaxl.c
--- a/lib/msun/src/s_fmaxl.c
+++ b/lib/msun/src/s_fmaxl.c
@@ -27,6 +27,7 @@
*/
#include <math.h>
+#include <float.h>
#include "fpmath.h"
@@ -52,3 +53,7 @@
return (x > y ? x : y);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(fmaxl, fmaxf128);
+#endif
diff --git a/lib/msun/src/s_fminl.c b/lib/msun/src/s_fminl.c
--- a/lib/msun/src/s_fminl.c
+++ b/lib/msun/src/s_fminl.c
@@ -27,6 +27,7 @@
*/
#include <math.h>
+#include <float.h>
#include "fpmath.h"
@@ -52,3 +53,7 @@
return (x < y ? x : y);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(fminl, fminf128);
+#endif
diff --git a/lib/msun/src/s_frexpl.c b/lib/msun/src/s_frexpl.c
--- a/lib/msun/src/s_frexpl.c
+++ b/lib/msun/src/s_frexpl.c
@@ -60,3 +60,7 @@
}
return (u.e);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(frexpl, frexpf128);
+#endif
diff --git a/lib/msun/src/s_ilogbl.c b/lib/msun/src/s_ilogbl.c
--- a/lib/msun/src/s_ilogbl.c
+++ b/lib/msun/src/s_ilogbl.c
@@ -47,3 +47,7 @@
else
return (INT_MAX);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(ilogbl, ilogbf128);
+#endif
diff --git a/lib/msun/src/s_llrintl.c b/lib/msun/src/s_llrintl.c
--- a/lib/msun/src/s_llrintl.c
+++ b/lib/msun/src/s_llrintl.c
@@ -3,4 +3,9 @@
#define dtype long long
#define fn llrintl
+#include <float.h>
#include "s_lrint.c"
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(llrintl, llrintf128);
+#endif
diff --git a/lib/msun/src/s_llroundl.c b/lib/msun/src/s_llroundl.c
--- a/lib/msun/src/s_llroundl.c
+++ b/lib/msun/src/s_llroundl.c
@@ -5,4 +5,9 @@
#define DTYPE_MAX LLONG_MAX
#define fn llroundl
+#include <float.h>
#include "s_lround.c"
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(llroundl, llroundf128);
+#endif
diff --git a/lib/msun/src/s_logbl.c b/lib/msun/src/s_logbl.c
--- a/lib/msun/src/s_logbl.c
+++ b/lib/msun/src/s_logbl.c
@@ -48,3 +48,7 @@
else /* +/- inf or nan */
return (x * x);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(logbl, logbf128);
+#endif
diff --git a/lib/msun/src/s_lrintl.c b/lib/msun/src/s_lrintl.c
--- a/lib/msun/src/s_lrintl.c
+++ b/lib/msun/src/s_lrintl.c
@@ -3,4 +3,9 @@
#define dtype long
#define fn lrintl
+#include <float.h>
#include "s_lrint.c"
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(lrintl, lrintf128);
+#endif
diff --git a/lib/msun/src/s_lroundl.c b/lib/msun/src/s_lroundl.c
--- a/lib/msun/src/s_lroundl.c
+++ b/lib/msun/src/s_lroundl.c
@@ -5,4 +5,9 @@
#define DTYPE_MAX LONG_MAX
#define fn lroundl
+#include <float.h>
#include "s_lround.c"
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(lroundl, lroundf128);
+#endif
diff --git a/lib/msun/src/s_modfl.c b/lib/msun/src/s_modfl.c
--- a/lib/msun/src/s_modfl.c
+++ b/lib/msun/src/s_modfl.c
@@ -99,3 +99,7 @@
}
}
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(modfl, modff128);
+#endif
diff --git a/lib/msun/src/s_nearbyint.c b/lib/msun/src/s_nearbyint.c
--- a/lib/msun/src/s_nearbyint.c
+++ b/lib/msun/src/s_nearbyint.c
@@ -28,6 +28,7 @@
#include <fenv.h>
#include <math.h>
+#include <float.h>
#pragma STDC FENV_ACCESS ON
@@ -61,3 +62,7 @@
DECL(double, nearbyint, rint)
DECL(float, nearbyintf, rintf)
DECL(long double, nearbyintl, rintl)
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(nearbyintl, nearbyintf128);
+#endif
diff --git a/lib/msun/src/s_nextafterl.c b/lib/msun/src/s_nextafterl.c
--- a/lib/msun/src/s_nextafterl.c
+++ b/lib/msun/src/s_nextafterl.c
@@ -72,3 +72,7 @@
}
__strong_reference(nextafterl, nexttowardl);
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(nextafterl, nextafterf128);
+#endif
diff --git a/lib/msun/src/s_remquol.c b/lib/msun/src/s_remquol.c
--- a/lib/msun/src/s_remquol.c
+++ b/lib/msun/src/s_remquol.c
@@ -167,3 +167,7 @@
*quo = (sxy ? -q : q);
return x;
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(remquol, remquof128);
+#endif
diff --git a/lib/msun/src/s_rintl.c b/lib/msun/src/s_rintl.c
--- a/lib/msun/src/s_rintl.c
+++ b/lib/msun/src/s_rintl.c
@@ -87,3 +87,7 @@
return (x);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(rintl, rintf128);
+#endif
diff --git a/lib/msun/src/s_roundl.c b/lib/msun/src/s_roundl.c
--- a/lib/msun/src/s_roundl.c
+++ b/lib/msun/src/s_roundl.c
@@ -59,3 +59,7 @@
RETURNI(-t);
}
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(roundl, roundf128);
+#endif
diff --git a/lib/msun/src/s_scalbln.c b/lib/msun/src/s_scalbln.c
--- a/lib/msun/src/s_scalbln.c
+++ b/lib/msun/src/s_scalbln.c
@@ -27,6 +27,7 @@
*/
#include <math.h>
+#include <float.h>
#define NMAX 65536
#define NMIN -65536
@@ -51,3 +52,7 @@
return (scalbnl(x, (n > NMAX) ? NMAX : (n < NMIN) ? NMIN : (int)n));
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(scalblnl, scalblnf128);
+#endif
diff --git a/lib/msun/src/s_scalbnl.c b/lib/msun/src/s_scalbnl.c
--- a/lib/msun/src/s_scalbnl.c
+++ b/lib/msun/src/s_scalbnl.c
@@ -47,3 +47,8 @@
__strong_reference(scalbnl, ldexpl);
#endif
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(scalbnl, scalbnf128);
+__weak_reference(ldexpl, ldexpf128);
+#endif
diff --git a/lib/msun/src/s_sincosl.c b/lib/msun/src/s_sincosl.c
--- a/lib/msun/src/s_sincosl.c
+++ b/lib/msun/src/s_sincosl.c
@@ -99,3 +99,7 @@
RETURNV();
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(sincosl, sincosf128);
+#endif
diff --git a/lib/msun/src/s_sinl.c b/lib/msun/src/s_sinl.c
--- a/lib/msun/src/s_sinl.c
+++ b/lib/msun/src/s_sinl.c
@@ -90,3 +90,7 @@
RETURNI(hi);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(sinl, sinf128);
+#endif
diff --git a/lib/msun/src/s_tanhl.c b/lib/msun/src/s_tanhl.c
--- a/lib/msun/src/s_tanhl.c
+++ b/lib/msun/src/s_tanhl.c
@@ -168,3 +168,7 @@
if (jx<0) s = -1;
RETURNI(s*z);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(tanhl, tanhf128);
+#endif
diff --git a/lib/msun/src/s_tanl.c b/lib/msun/src/s_tanl.c
--- a/lib/msun/src/s_tanl.c
+++ b/lib/msun/src/s_tanl.c
@@ -92,3 +92,7 @@
RETURNI(hi);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(tanl, tanf128);
+#endif
diff --git a/lib/msun/src/s_truncl.c b/lib/msun/src/s_truncl.c
--- a/lib/msun/src/s_truncl.c
+++ b/lib/msun/src/s_truncl.c
@@ -61,3 +61,7 @@
}
return (u.e);
}
+
+#if LDBL_MANT_DIG == 113
+__weak_reference(truncl, truncf128);
+#endif

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 16, 3:58 PM (10 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35123991
Default Alt Text
D57850.diff (18 KB)

Event Timeline