s_scalbn.c: Add missing float.h include

This caused LDBL_MANT_DIG to not be defined and therefore the scalbnl
alias was not being emitted for double==long double platforms.

Fixes:		760b2ffc ("Update scalbn* functions to the musl versions")
Reported by:	Jenkins
This commit is contained in:
Alex Richardson 2021-03-01 14:10:24 +00:00
parent e152c88273
commit f5542795b9
3 changed files with 5 additions and 9 deletions

View File

@ -7,3 +7,4 @@ __FBSDID("$FreeBSD$");
*/
#define scalbn ldexp
#include "../../msun/src/s_scalbn.c"
#undef scalbn

View File

@ -1,3 +1,4 @@
#include <float.h>
#include <math.h>
#include <stdint.h>
@ -32,7 +33,7 @@ double scalbn(double x, int n)
return x;
}
#if (LDBL_MANT_DIG == 53)
#if (LDBL_MANT_DIG == 53) && !defined(scalbn)
__weak_reference(scalbn, ldexpl);
__weak_reference(scalbn, scalbnl);
#endif

View File

@ -8,13 +8,7 @@
* manipulation rather than by actually performing an
* exponentiation or a multiplication.
*/
#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
long double scalbnl(long double x, int n)
{
return scalbn(x, n);
}
#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
#if (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
long double scalbnl(long double x, int n)
{
union IEEEl2bits u;
@ -42,6 +36,6 @@ long double scalbnl(long double x, int n)
u.xbits.expsign = 0x3fff + n;
return x * u.e;
}
__strong_reference(scalbnl, ldexpl);
#endif
__strong_reference(scalbnl, ldexpl);