From 0539e6dad39c1b3b204a14c403da68b587b1b3da Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 8 Oct 2014 10:17:19 -0400 Subject: [PATCH] always provide __fpclassifyl and __signbitl definitions previously the external definitions of these functions were omitted on archs where long double is the same as double, since the code paths in the math.h macros which would call them are unreachable. however, even if they are unreachable, the definitions are still mandatory. omitting them is invalid C, and in the case of a non-optimizing compiler, will result in a link error. --- src/math/__fpclassifyl.c | 5 ++++- src/math/__signbitl.c | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/math/__fpclassifyl.c b/src/math/__fpclassifyl.c index 6dc10025..c2742297 100644 --- a/src/math/__fpclassifyl.c +++ b/src/math/__fpclassifyl.c @@ -1,7 +1,10 @@ #include "libm.h" #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 - +int __fpclassifyl(long double x) +{ + return __fpclassify(x); +} #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 int __fpclassifyl(long double x) { diff --git a/src/math/__signbitl.c b/src/math/__signbitl.c index c52c87bb..63b3dc5a 100644 --- a/src/math/__signbitl.c +++ b/src/math/__signbitl.c @@ -6,4 +6,9 @@ int __signbitl(long double x) union ldshape u = {x}; return u.i.se >> 15; } +#elif LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 +int __signbitl(long double x) +{ + return __signbit(x); +} #endif -- 2.25.1