Based on https://github.com/mysql/mysql-server/commit/9fcd5c83f081b9e0dedb0cb91afcb18ab77f00fe

Reverting the HAVE_FINITE CMake test.

Author: Dharanendiran <dharanendiran@timesys.com>
Date: Thu, 18 Jan 2024 10:28:37 +0530


---
 config.h.cmake      | 1 +
 configure.cmake     | 7 +++++++
 include/my_global.h | 3 ++-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/config.h.cmake b/config.h.cmake
index 5e6b06d6..ac25ce6e 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -167,6 +167,7 @@
 #cmakedefine HAVE_LOG2 1
 
 #cmakedefine HAVE_ISINF 1
+#cmakedefine HAVE_FINITE 1
 
 #cmakedefine HAVE_KQUEUE_TIMERS 1
 #cmakedefine HAVE_POSIX_TIMERS 1
diff --git a/configure.cmake b/configure.cmake
index 93a6992d..89bf0301 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -374,6 +374,13 @@ CHECK_SYMBOL_EXISTS(FIONREAD "sys/filio.h" FIONREAD_IN_SYS_FILIO)
 CHECK_SYMBOL_EXISTS(SIGEV_THREAD_ID "signal.h;time.h" HAVE_SIGEV_THREAD_ID)
 CHECK_SYMBOL_EXISTS(SIGEV_PORT "signal.h;time.h;sys/siginfo.h" HAVE_SIGEV_PORT)
 
+CHECK_SYMBOL_EXISTS(finite  "math.h" HAVE_FINITE_IN_MATH_H)
+IF(HAVE_FINITE_IN_MATH_H)
+  SET(HAVE_FINITE TRUE CACHE INTERNAL "")
+ELSE()
+  CHECK_SYMBOL_EXISTS(finite  "ieeefp.h" HAVE_FINITE)
+ENDIF()
+
 CHECK_SYMBOL_EXISTS(log2  math.h HAVE_LOG2)
 
 # On Solaris, it is only visible in C99 mode
diff --git a/include/my_global.h b/include/my_global.h
index 752e2475..09b5d2c4 100644
--- a/include/my_global.h
+++ b/include/my_global.h
@@ -433,7 +433,8 @@ inline unsigned long long my_double2ulonglong(double d)
   #define my_isnan(X) std::isnan(X)
   #define my_isinf(X) std::isinf(X)
 #else
-  #ifdef HAVE_LLVM_LIBCPP /* finite is deprecated in libc++ */
+  /* finite is deprecated in libc++ and not present in uClibc */
+  #if defined(HAVE_LLVM_LIBCPP) || !defined(HAVE_FINITE)
     #define my_isfinite(X) isfinite(X)
   #elif defined _WIN32
     #define my_isfinite(X) _finite(X)
-- 
2.25.1

