diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2009-11-14 15:59:35 +0100 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2009-11-14 16:25:33 +0100 |
commit | 73d6e5c41b61633e22ea74e3aa2df721512dca57 (patch) | |
tree | 496997a4fe295418c7d34b5ffc194c805470fadd /libm/math_private.h | |
parent | 2c3ed060512a2e90ec9f912cf1a5eb1ecd700fb9 (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.h | 13 |
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_ */ |