< prev index next >

src/share/vm/utilities/globalDefinitions_gcc.hpp

Print this page

        

@@ -232,11 +232,16 @@
 inline int g_isnan(float  f) { return isnand(f); }
 #endif
 inline int g_isnan(double f) { return isnand(f); }
 #elif defined(__APPLE__)
 inline int g_isnan(double f) { return isnan(f); }
-#elif defined(LINUX) || defined(_ALLBSD_SOURCE)
+#elif defined(LINUX)
+// Linux libc without BSD extensions not required
+// to have isnanf, but should have isnan macro
+inline int g_isnan(float  f) { return isnan(f); }
+inline int g_isnan(double f) { return isnan(f); }
+#elif defined(_ALLBSD_SOURCE)
 inline int g_isnan(float  f) { return isnanf(f); }
 inline int g_isnan(double f) { return isnan(f); }
 #else
 #error "missing platform-specific definition here"
 #endif

@@ -247,12 +252,18 @@
 #endif
 
 
 // Checking for finiteness
 
+#if defined(LINUX)
+// Linux libc without BSD extensions have no finite, but has isfinite
+inline int g_isfinite(jfloat  f)                 { return isfinite(f); }
+inline int g_isfinite(jdouble f)                 { return isfinite(f); }
+#else
 inline int g_isfinite(jfloat  f)                 { return finite(f); }
 inline int g_isfinite(jdouble f)                 { return finite(f); }
+#endif
 
 
 // Wide characters
 
 inline int wcslen(const jchar* x) { return wcslen((const wchar_t*)x); }
< prev index next >