| Don't use <fenv.h> on uClibc |
| |
| The python-numpy code already has provisions to not use <fenv.h> when |
| not available. However, it uses __GLIBC__ to know whether fenv.h is |
| available or not, but uClibc defines __GLIBC__, so python-numpy thinks |
| fenv.h is available. |
| |
| This patch fixes that by changing all defined(__GLIBC__) occurences by |
| (defined(__GLIBC__) && !defined(__UCLIBC__)). |
| |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| |
| Index: b/numpy/core/include/numpy/ufuncobject.h |
| =================================================================== |
| --- a/numpy/core/include/numpy/ufuncobject.h |
| +++ b/numpy/core/include/numpy/ufuncobject.h |
| @@ -413,11 +413,11 @@ |
| (void) fpsetsticky(0); \ |
| } |
| |
| -#elif defined(__GLIBC__) || defined(__APPLE__) || \ |
| +#elif (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \ |
| defined(__CYGWIN__) || defined(__MINGW32__) || \ |
| (defined(__FreeBSD__) && (__FreeBSD_version >= 502114)) |
| |
| -#if defined(__GLIBC__) || defined(__APPLE__) || \ |
| +#if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \ |
| defined(__MINGW32__) || defined(__FreeBSD__) |
| #include <fenv.h> |
| #elif defined(__CYGWIN__) |
| Index: b/numpy/core/src/npymath/ieee754.c.src |
| =================================================================== |
| --- a/numpy/core/src/npymath/ieee754.c.src |
| +++ b/numpy/core/src/npymath/ieee754.c.src |
| @@ -586,11 +586,11 @@ |
| } |
| |
| |
| -#elif defined(__GLIBC__) || defined(__APPLE__) || \ |
| +#elif (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \ |
| defined(__CYGWIN__) || defined(__MINGW32__) || \ |
| (defined(__FreeBSD__) && (__FreeBSD_version >= 502114)) |
| |
| -# if defined(__GLIBC__) || defined(__APPLE__) || \ |
| +# if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \ |
| defined(__MINGW32__) || defined(__FreeBSD__) |
| # include <fenv.h> |
| # elif defined(__CYGWIN__) |
| Index: b/numpy/numarray/_capi.c |
| =================================================================== |
| --- a/numpy/numarray/_capi.c |
| +++ b/numpy/numarray/_capi.c |
| @@ -10,7 +10,7 @@ |
| #include <sys/param.h> |
| #endif |
| |
| -#if defined(__GLIBC__) || defined(__APPLE__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114)) |
| +#if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114)) |
| #include <fenv.h> |
| #elif defined(__CYGWIN__) |
| #include "numpy/fenv/fenv.h" |
| @@ -258,7 +258,7 @@ |
| } |
| |
| /* Likewise for Integer overflows */ |
| -#if defined(__GLIBC__) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114)) |
| +#if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114)) |
| static int int_overflow_error(Float64 value) { /* For x86_64 */ |
| feraiseexcept(FE_OVERFLOW); |
| return (int) value; |
| @@ -3007,7 +3007,7 @@ |
| return retstatus; |
| } |
| |
| -#elif defined(__GLIBC__) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114)) |
| +#elif (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114)) |
| |
| static int |
| NA_checkFPErrors(void) |