lib/msun: Fix x86 GCC6 build after 221622ec0c

Apparently GCC only supports arithmetic expressions that use static
const variables in initializers starting with GCC8. To keep older
versions happy use a macro instead.

Fixes:		221622ec0c ("lib/msun: Avoid FE_INEXACT for x86 log2l/log10l")
Reported by:	Jenkins
Reviewed By:	imp
Differential Revision: https://reviews.freebsd.org/D29233
This commit is contained in:
Alex Richardson 2021-03-12 18:44:42 +00:00
parent dbec10e088
commit 05eac56a04

View File

@ -674,14 +674,14 @@ logl(long double x)
RETURNSPI(&r);
}
static const double
invln10_hi = 4.3429448190317999e-1, /* 0x1bcb7b1526e000.0p-54 */
invln10_lo = 7.1842412889749798e-14, /* 0x1438ca9aadd558.0p-96 */
invln10_lo_plus_hi = invln10_lo + invln10_hi,
invln2_hi = 1.4426950408887933e0, /* 0x171547652b8000.0p-52 */
invln2_lo = 1.7010652264631490e-13, /* 0x17f0bbbe87fed0.0p-95 */
invln2_lo_plus_hi = invln2_lo + invln2_hi;
/* Use macros since GCC < 8 rejects static const expressions in initializers. */
#define invln10_hi 4.3429448190317999e-1 /* 0x1bcb7b1526e000.0p-54 */
#define invln10_lo 7.1842412889749798e-14 /* 0x1438ca9aadd558.0p-96 */
#define invln2_hi 1.4426950408887933e0 /* 0x171547652b8000.0p-52 */
#define invln2_lo 1.7010652264631490e-13 /* 0x17f0bbbe87fed0.0p-95 */
/* Let the compiler pre-calculate this sum to avoid FE_INEXACT at run time. */
static const double invln10_lo_plus_hi = invln10_lo + invln10_hi;
static const double invln2_lo_plus_hi = invln2_lo + invln2_hi;
long double
log10l(long double x)