diff options
Diffstat (limited to 'gl/m4/stdlib_h.m4')
| -rw-r--r-- | gl/m4/stdlib_h.m4 | 66 |
1 files changed, 38 insertions, 28 deletions
diff --git a/gl/m4/stdlib_h.m4 b/gl/m4/stdlib_h.m4 index a4662f29..2d25da37 100644 --- a/gl/m4/stdlib_h.m4 +++ b/gl/m4/stdlib_h.m4 | |||
| @@ -1,9 +1,10 @@ | |||
| 1 | # stdlib_h.m4 | 1 | # stdlib_h.m4 |
| 2 | # serial 77 | 2 | # serial 84 |
| 3 | dnl Copyright (C) 2007-2024 Free Software Foundation, Inc. | 3 | dnl Copyright (C) 2007-2025 Free Software Foundation, Inc. |
| 4 | dnl This file is free software; the Free Software Foundation | 4 | dnl This file is free software; the Free Software Foundation |
| 5 | dnl gives unlimited permission to copy and/or distribute it, | 5 | dnl gives unlimited permission to copy and/or distribute it, |
| 6 | dnl with or without modifications, as long as this notice is preserved. | 6 | dnl with or without modifications, as long as this notice is preserved. |
| 7 | dnl This file is offered as-is, without any warranty. | ||
| 7 | 8 | ||
| 8 | AC_DEFUN_ONCE([gl_STDLIB_H], | 9 | AC_DEFUN_ONCE([gl_STDLIB_H], |
| 9 | [ | 10 | [ |
| @@ -37,44 +38,51 @@ AC_DEFUN_ONCE([gl_STDLIB_H], | |||
| 37 | dnl On Solaris 10, in UTF-8 locales, its value is 3 but needs to be 4. | 38 | dnl On Solaris 10, in UTF-8 locales, its value is 3 but needs to be 4. |
| 38 | dnl Fortunately, we can do this because on this platform MB_LEN_MAX is 5. | 39 | dnl Fortunately, we can do this because on this platform MB_LEN_MAX is 5. |
| 39 | AC_REQUIRE([AC_CANONICAL_HOST]) | 40 | AC_REQUIRE([AC_CANONICAL_HOST]) |
| 40 | AC_REQUIRE([gt_LOCALE_FR_UTF8]) | 41 | AC_REQUIRE([gt_LOCALE_EN_UTF8]) |
| 41 | AC_CACHE_CHECK([whether MB_CUR_MAX is correct], | 42 | AC_CACHE_CHECK([whether MB_CUR_MAX is correct], |
| 42 | [gl_cv_macro_MB_CUR_MAX_good], | 43 | [gl_cv_macro_MB_CUR_MAX_good], |
| 43 | [ | 44 | [AC_LINK_IFELSE( |
| 44 | dnl Initial guess, used when cross-compiling or when no suitable locale | 45 | [AC_LANG_PROGRAM([[#include <stdlib.h> |
| 45 | dnl is present. | 46 | ]], |
| 46 | changequote(,)dnl | 47 | [[return !!MB_CUR_MAX;]]) |
| 47 | case "$host_os" in | 48 | ], |
| 48 | # Guess no on Solaris. | 49 | [dnl Initial guess, used when cross-compiling or when no suitable locale |
| 49 | solaris*) gl_cv_macro_MB_CUR_MAX_good="guessing no" ;; | 50 | dnl is present. |
| 50 | # Guess yes otherwise. | 51 | # Guess no on Solaris and Haiku, yes otherwise. |
| 51 | *) gl_cv_macro_MB_CUR_MAX_good="guessing yes" ;; | 52 | AS_CASE([$host_os], |
| 52 | esac | 53 | [solaris* | haiku*], |
| 53 | changequote([,])dnl | 54 | [gl_cv_macro_MB_CUR_MAX_good="guessing no"], |
| 54 | if test $LOCALE_FR_UTF8 != none; then | 55 | [gl_cv_macro_MB_CUR_MAX_good="guessing yes"]) |
| 55 | AC_RUN_IFELSE( | 56 | if test "$LOCALE_EN_UTF8" != none; then |
| 56 | [AC_LANG_SOURCE([[ | 57 | AC_RUN_IFELSE( |
| 58 | [AC_LANG_SOURCE([[ | ||
| 57 | #include <locale.h> | 59 | #include <locale.h> |
| 58 | #include <stdlib.h> | 60 | #include <stdlib.h> |
| 59 | int main () | 61 | int main () |
| 60 | { | 62 | { |
| 61 | int result = 0; | 63 | int result = 0; |
| 62 | if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) | 64 | if (setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL) |
| 63 | { | 65 | { |
| 64 | if (MB_CUR_MAX < 4) | 66 | if (MB_CUR_MAX < 4) |
| 65 | result |= 1; | 67 | result |= 1; |
| 66 | } | 68 | } |
| 67 | return result; | 69 | return result; |
| 68 | }]])], | 70 | }]])], |
| 69 | [gl_cv_macro_MB_CUR_MAX_good=yes], | 71 | [gl_cv_macro_MB_CUR_MAX_good=yes], |
| 70 | [gl_cv_macro_MB_CUR_MAX_good=no], | 72 | [gl_cv_macro_MB_CUR_MAX_good=no], |
| 71 | [:]) | 73 | [:]) |
| 72 | fi | 74 | fi |
| 75 | ], | ||
| 76 | [gl_cv_macro_MB_CUR_MAX_good="link failed - so no"]) | ||
| 73 | ]) | 77 | ]) |
| 74 | case "$gl_cv_macro_MB_CUR_MAX_good" in | 78 | AS_CASE([$gl_cv_macro_MB_CUR_MAX_good], |
| 75 | *yes) ;; | 79 | [*yes], |
| 76 | *) REPLACE_MB_CUR_MAX=1 ;; | 80 | [], |
| 77 | esac | 81 | ["link failed - so no"], |
| 82 | [# 4 suffices as a workaround in Android NDK 16, | ||
| 83 | # the only known platform with the bug. | ||
| 84 | REPLACE_MB_CUR_MAX=4], | ||
| 85 | [REPLACE_MB_CUR_MAX="(-1)"]) | ||
| 78 | 86 | ||
| 79 | AC_CHECK_DECLS_ONCE([ecvt]) | 87 | AC_CHECK_DECLS_ONCE([ecvt]) |
| 80 | if test $ac_cv_have_decl_ecvt = no; then | 88 | if test $ac_cv_have_decl_ecvt = no; then |
| @@ -110,6 +118,7 @@ AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS], | |||
| 110 | [ | 118 | [ |
| 111 | m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS], [ | 119 | m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS], [ |
| 112 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT]) | 120 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT]) |
| 121 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ABORT_DEBUG]) | ||
| 113 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC]) | 122 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC]) |
| 114 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL]) | 123 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL]) |
| 115 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_GNU]) | 124 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_GNU]) |
| @@ -139,12 +148,12 @@ AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS], | |||
| 139 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM]) | 148 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM]) |
| 140 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R]) | 149 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R]) |
| 141 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY]) | 150 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY]) |
| 142 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_GNU]) | ||
| 143 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX]) | 151 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX]) |
| 144 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH]) | 152 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH]) |
| 145 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH]) | 153 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH]) |
| 146 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SECURE_GETENV]) | 154 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SECURE_GETENV]) |
| 147 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETENV]) | 155 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETENV]) |
| 156 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STACK_TRACE]) | ||
| 148 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOD]) | 157 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOD]) |
| 149 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOF]) | 158 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOF]) |
| 150 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOL]) | 159 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOL]) |
| @@ -218,6 +227,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], | |||
| 218 | HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) | 227 | HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) |
| 219 | HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) | 228 | HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) |
| 220 | REPLACE__EXIT=0; AC_SUBST([REPLACE__EXIT]) | 229 | REPLACE__EXIT=0; AC_SUBST([REPLACE__EXIT]) |
| 230 | REPLACE_ABORT=0; AC_SUBST([REPLACE_ABORT]) | ||
| 221 | REPLACE_ALIGNED_ALLOC=0; AC_SUBST([REPLACE_ALIGNED_ALLOC]) | 231 | REPLACE_ALIGNED_ALLOC=0; AC_SUBST([REPLACE_ALIGNED_ALLOC]) |
| 222 | REPLACE_CALLOC_FOR_CALLOC_GNU=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_GNU]) | 232 | REPLACE_CALLOC_FOR_CALLOC_GNU=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_GNU]) |
| 223 | REPLACE_CALLOC_FOR_CALLOC_POSIX=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_POSIX]) | 233 | REPLACE_CALLOC_FOR_CALLOC_POSIX=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_POSIX]) |
| @@ -244,7 +254,6 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], | |||
| 244 | REPLACE_RAND=0; AC_SUBST([REPLACE_RAND]) | 254 | REPLACE_RAND=0; AC_SUBST([REPLACE_RAND]) |
| 245 | REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM]) | 255 | REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM]) |
| 246 | REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) | 256 | REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) |
| 247 | REPLACE_REALLOC_FOR_REALLOC_GNU=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_GNU]) | ||
| 248 | REPLACE_REALLOC_FOR_REALLOC_POSIX=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_POSIX]) | 257 | REPLACE_REALLOC_FOR_REALLOC_POSIX=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_POSIX]) |
| 249 | REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY]) | 258 | REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY]) |
| 250 | REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) | 259 | REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) |
| @@ -259,4 +268,5 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], | |||
| 259 | REPLACE_STRTOULL=0; AC_SUBST([REPLACE_STRTOULL]) | 268 | REPLACE_STRTOULL=0; AC_SUBST([REPLACE_STRTOULL]) |
| 260 | REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) | 269 | REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) |
| 261 | REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) | 270 | REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) |
| 271 | CAN_PRINT_STACK_TRACE=0; AC_SUBST([CAN_PRINT_STACK_TRACE]) | ||
| 262 | ]) | 272 | ]) |
