always provide __fpclassifyl and __signbitl definitions
authorRich Felker <dalias@aerifal.cx>
Wed, 8 Oct 2014 14:17:19 +0000 (10:17 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 8 Oct 2014 14:17:19 +0000 (10:17 -0400)
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
src/math/__signbitl.c

index 6dc10025d29238df0935d7ad685ca9810912ef66..c274229716bcbed3c94e9077961b2905191619d3 100644 (file)
@@ -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)
 {
index c52c87bba062bf8b7c232496ef5c2cd86c2d7fbf..63b3dc5a08f3d89a3dd39a3ce74d7974317a0aa9 100644 (file)
@@ -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