summaryrefslogtreecommitdiffstats
path: root/m4/c-strtod.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/c-strtod.m4')
-rw-r--r--m4/c-strtod.m451
1 files changed, 51 insertions, 0 deletions
diff --git a/m4/c-strtod.m4 b/m4/c-strtod.m4
new file mode 100644
index 0000000..80e2fcc
--- /dev/null
+++ b/m4/c-strtod.m4
@@ -0,0 +1,51 @@
+# c-strtod.m4 serial 18
+
+# Copyright (C) 2004-2006, 2009-2022 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Written by Paul Eggert.
+
+dnl Prerequisites of lib/c-strtod.c.
+AC_DEFUN([gl_C_STRTOD],
+[
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([gt_FUNC_USELOCALE])
+
+ AC_CHECK_HEADERS_ONCE([xlocale.h])
+ dnl We can't use AC_CHECK_FUNC here, because strtod_l() is defined as a
+ dnl static inline function when compiling for Android 7.1 or older.
+ AC_CACHE_CHECK([for strtod_l], [gl_cv_func_strtod_l],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdlib.h>
+ #include <locale.h>
+ #if HAVE_XLOCALE_H
+ # include <xlocale.h>
+ #endif
+ locale_t loc;
+ ]],
+ [[char *end;
+ return strtod_l("0",&end,loc) < 0.0;
+ ]])
+ ],
+ [gl_cv_func_strtod_l=yes],
+ [gl_cv_func_strtod_l=no])
+ ])
+ if test $gl_cv_func_strtod_l = yes; then
+ HAVE_STRTOD_L=1
+ else
+ HAVE_STRTOD_L=0
+ fi
+ AC_DEFINE_UNQUOTED([HAVE_STRTOD_L], [$HAVE_STRTOD_L],
+ [Define to 1 if the system has the 'strtod_l' function.])
+])
+
+dnl Prerequisites of lib/c-strtold.c.
+AC_DEFUN([gl_C_STRTOLD],
+[
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([gt_FUNC_USELOCALE])
+ AC_CHECK_FUNCS([strtold_l])
+])