Browse Source

Do not define unimplemented functions

e.g. fminf() is not implemented, only fmin(), but both are defined.

Signed-off-by: Cristian Morales Vega <cristian@samknows.com>
Cristian Morales Vega 9 years ago
parent
commit
bd3eaf83ef
2 changed files with 20 additions and 0 deletions
  1. 2 0
      include/math.h
  2. 18 0
      libc/sysdeps/linux/common/bits/mathcalls.h

+ 2 - 0
include/math.h

@@ -118,6 +118,7 @@ __BEGIN_DECLS
 #  define _Mfloat_		float
 # endif
 # define _Mdouble_		_Mfloat_
+# define _Mdouble_is_float_
 # ifdef __STDC__
 #  define __MATH_PRECNAME(name,r) name##f##r
 # else
@@ -126,6 +127,7 @@ __BEGIN_DECLS
 # define _Mdouble_BEGIN_NAMESPACE __BEGIN_NAMESPACE_C99
 # define _Mdouble_END_NAMESPACE   __END_NAMESPACE_C99
 # include <bits/mathcalls.h>
+# undef _Mdouble_is_float_
 # undef	_Mdouble_
 # undef _Mdouble_BEGIN_NAMESPACE
 # undef _Mdouble_END_NAMESPACE

+ 18 - 0
libc/sysdeps/linux/common/bits/mathcalls.h

@@ -271,7 +271,9 @@ __END_NAMESPACE_C99
 #ifdef __USE_ISOC99
 __BEGIN_NAMESPACE_C99
 /* True gamma function.  */
+# ifndef _Mdouble_is_float_
 __MATHCALLI (tgamma,, (_Mdouble_))
+# endif
 __END_NAMESPACE_C99
 #endif
 
@@ -299,7 +301,9 @@ __MATHCALLI (rint,, (_Mdouble_ __x))
 /* Return X + epsilon if X < Y, X - epsilon if X > Y.  */
 __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__))
 # if defined __USE_ISOC99 && !defined __LDBL_COMPAT
+#  ifndef _Mdouble_is_float_
 __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__))
+#  endif
 # endif
 
 /* Return the remainder of integer divison X / Y with infinite precision.  */
@@ -316,11 +320,15 @@ __MATHDECLI (int,ilogb,, (_Mdouble_ __x))
 
 #ifdef __USE_ISOC99
 /* Return X times (2 to the Nth power).  */
+# ifndef _Mdouble_is_float_
 __MATHCALLI (scalbln,, (_Mdouble_ __x, long int __n))
+# endif
 
 /* Round X to integral value in floating-point format using current
    rounding direction, but do not raise inexact exception.  */
+# ifndef _Mdouble_is_float_
 __MATHCALLI (nearbyint,, (_Mdouble_ __x))
+# endif
 
 /* Round X to nearest integral value, rounding halfway cases away from
    zero.  */
@@ -333,7 +341,9 @@ __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__))
 /* Compute remainder of X and Y and put in *QUO a value with sign of x/y
    and magnitude congruent `mod 2^n' to the magnitude of the integral
    quotient x/y, with n >= 3.  */
+# ifndef _Mdouble_is_float_
 __MATHCALLI (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo))
+# endif
 
 
 /* Conversion functions.  */
@@ -350,13 +360,19 @@ __MATHDECLI (long long int,llround,, (_Mdouble_ __x))
 
 
 /* Return positive difference between X and Y.  */
+# ifndef _Mdouble_is_float_
 __MATHCALLI (fdim,, (_Mdouble_ __x, _Mdouble_ __y))
+# endif
 
 /* Return maximum numeric value from X and Y.  */
+# ifndef _Mdouble_is_float_
 __MATHCALLI (fmax,, (_Mdouble_ __x, _Mdouble_ __y))
+# endif
 
 /* Return minimum numeric value from X and Y.  */
+# ifndef _Mdouble_is_float_
 __MATHCALLI (fmin,, (_Mdouble_ __x, _Mdouble_ __y))
+# endif
 
 
 /* Classify given number.  */
@@ -367,7 +383,9 @@ __MATHDECL_PRIV (int, signbit,, (_Mdouble_ __value), (__const__))
 
 
 /* Multiply-add function computed as a ternary operation.  */
+# ifndef _Mdouble_is_float_
 __MATHCALLI (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z))
+# endif
 #endif /* Use ISO C99.  */
 
 #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99