summaryrefslogtreecommitdiff
path: root/libm/math_private.h
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2009-11-14 15:59:35 +0100
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2009-11-14 16:25:33 +0100
commit73d6e5c41b61633e22ea74e3aa2df721512dca57 (patch)
tree496997a4fe295418c7d34b5ffc194c805470fadd /libm/math_private.h
parent2c3ed060512a2e90ec9f912cf1a5eb1ecd700fb9 (diff)
libm: fix C99_MATH on __NO_LONG_DOUBLE_MATH hosts
alias l to their normal double counterparts. Works around problems with libgcc blindly calling __finitel on e.g. ppc32 Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libm/math_private.h')
-rw-r--r--libm/math_private.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/libm/math_private.h b/libm/math_private.h
index 2c5a30ac2..b6bea80ae 100644
--- a/libm/math_private.h
+++ b/libm/math_private.h
@@ -255,5 +255,18 @@ 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_ */