Don't use on uClibc The python-numpy code already has provisions to not use 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 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 #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 # elif defined(__CYGWIN__) Index: b/numpy/numarray/_capi.c =================================================================== --- a/numpy/numarray/_capi.c +++ b/numpy/numarray/_capi.c @@ -10,7 +10,7 @@ #include #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 #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)