summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libm/Makefile.in5
-rw-r--r--libm/ldouble_wrappers.c39
-rw-r--r--libm/math_private.h13
-rw-r--r--libm/s_finite.c3
-rw-r--r--libm/s_fpclassify.c3
-rw-r--r--libm/s_isinf.c3
-rw-r--r--libm/s_isnan.c3
-rw-r--r--libm/s_signbit.c3
8 files changed, 44 insertions, 28 deletions
diff --git a/libm/Makefile.in b/libm/Makefile.in
index f1f42f696..d17d64fae 100644
--- a/libm/Makefile.in
+++ b/libm/Makefile.in
@@ -129,6 +129,11 @@ FL_MOBJ := \
# Not implemented [yet?]: nexttowardl.o
LD_MOBJ := \
+ __finitel.o \
+ __fpclassifyl.o \
+ __isinfl.o \
+ __isnanl.o \
+ __signbitl.o \
acoshl.o \
acosl.o \
asinhl.o \
diff --git a/libm/ldouble_wrappers.c b/libm/ldouble_wrappers.c
index 9c2e522bb..c53b99773 100644
--- a/libm/ldouble_wrappers.c
+++ b/libm/ldouble_wrappers.c
@@ -116,6 +116,16 @@ long long func##l(long double x) \
}
#endif /* __i386__ && __OPTIMIZE__ */
+#if defined __NO_LONG_DOUBLE_MATH
+# define int_WRAPPER_C99(func) /* not needed */
+# else
+# define int_WRAPPER_C99(func) \
+int func##l(long double x) \
+{ \
+ return func((double) x); \
+} \
+libm_hidden_def(func##l)
+#endif
/* Implement the following, as defined by SuSv3 */
#if 0
@@ -491,3 +501,32 @@ long double significandl(long double x)
return (long double) significand((double) x);
}
#endif
+
+#ifdef __DO_C99_MATH__
+
+#ifdef L___fpclassifyl
+int_WRAPPER1(__fpclassify)
+libm_hidden_def(__fpclassifyl)
+#endif
+
+#ifdef L___finitel
+int_WRAPPER1(__finite)
+libm_hidden_def(__finitel)
+#endif
+
+#ifdef L___signbitl
+int_WRAPPER1(__signbit)
+libm_hidden_def(__signbitl)
+#endif
+
+#ifdef L___isnanl
+int_WRAPPER1(__isnan)
+libm_hidden_def(__isnanl)
+#endif
+
+#ifdef L___isinfl
+int_WRAPPER1(__isinf)
+libm_hidden_def(__isinfl)
+#endif
+
+#endif
diff --git a/libm/math_private.h b/libm/math_private.h
index b6bea80ae..2c5a30ac2 100644
--- a/libm/math_private.h
+++ b/libm/math_private.h
@@ -255,18 +255,5 @@ extern int __kernel_rem_pio2 (double*,double*,int,int,int,const int*) attribu
#define math_force_eval(x) do { __typeof(x) __x = (x); __asm __volatile ("" : : "m" (__x)); } while (0)
#endif
-/* If we do not have long double support, then alias to the double variant. */
-#if defined __NO_LONG_DOUBLE_MATH
-# define int_WRAPPER_C99(func) \
-weak_alias(func,func##l)
-# else
-# define int_WRAPPER_C99(func) \
-int func##l(long double x) \
-{ \
- return func((double) x); \
-} \
-libm_hidden_def(func##l)
-#endif
-
#endif /* _MATH_PRIVATE_H_ */
diff --git a/libm/s_finite.c b/libm/s_finite.c
index 5b2bc2907..9bbc00286 100644
--- a/libm/s_finite.c
+++ b/libm/s_finite.c
@@ -30,6 +30,3 @@ int __finite(double x)
return (hx | 0x800fffff) != 0xffffffff;
}
libm_hidden_def(__finite)
-#if defined __DO_C99_MATH__
-int_WRAPPER_C99(__finite)
-#endif
diff --git a/libm/s_fpclassify.c b/libm/s_fpclassify.c
index 99a635474..a05cd563e 100644
--- a/libm/s_fpclassify.c
+++ b/libm/s_fpclassify.c
@@ -40,6 +40,3 @@ int __fpclassify(double x)
return retval;
}
libm_hidden_def(__fpclassify)
-#if defined __DO_C99_MATH__
-int_WRAPPER_C99(__fpclassify)
-#endif
diff --git a/libm/s_isinf.c b/libm/s_isinf.c
index 1f65b8378..62e5263bb 100644
--- a/libm/s_isinf.c
+++ b/libm/s_isinf.c
@@ -21,6 +21,3 @@ int __isinf(double x)
return ~(lx >> 31) & (hx >> 30);
}
libm_hidden_def(__isinf)
-#if defined __DO_C99_MATH__
-int_WRAPPER_C99(__isinf)
-#endif
diff --git a/libm/s_isnan.c b/libm/s_isnan.c
index fb44f6a6e..1bc49cb02 100644
--- a/libm/s_isnan.c
+++ b/libm/s_isnan.c
@@ -27,6 +27,3 @@ int __isnan(double x)
return (int)(((u_int32_t)hx)>>31);
}
libm_hidden_def(__isnan)
-#if defined __DO_C99_MATH__
-int_WRAPPER_C99(__isnan)
-#endif
diff --git a/libm/s_signbit.c b/libm/s_signbit.c
index ca4144af8..ee1b7c62e 100644
--- a/libm/s_signbit.c
+++ b/libm/s_signbit.c
@@ -33,6 +33,3 @@ __signbit (double x)
return hx & 0x80000000;
}
libm_hidden_def(__signbit)
-#if defined __DO_C99_MATH__
-int_WRAPPER_C99(__signbit)
-#endif