| 1 | # stdlib_h.m4 serial 63
|
|---|
| 2 | dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
|
|---|
| 3 | dnl This file is free software; the Free Software Foundation
|
|---|
| 4 | dnl gives unlimited permission to copy and/or distribute it,
|
|---|
| 5 | dnl with or without modifications, as long as this notice is preserved.
|
|---|
| 6 |
|
|---|
| 7 | AC_DEFUN_ONCE([gl_STDLIB_H],
|
|---|
| 8 | [
|
|---|
| 9 | AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
|---|
| 10 | gl_NEXT_HEADERS([stdlib.h])
|
|---|
| 11 |
|
|---|
| 12 | dnl Check for declarations of anything we want to poison if the
|
|---|
| 13 | dnl corresponding gnulib module is not in use, and which is not
|
|---|
| 14 | dnl guaranteed by C89.
|
|---|
| 15 | gl_WARN_ON_USE_PREPARE([[#include <stdlib.h>
|
|---|
| 16 | #if HAVE_SYS_LOADAVG_H
|
|---|
| 17 | /* OpenIndiana has a bug: <sys/time.h> must be included before
|
|---|
| 18 | <sys/loadavg.h>. */
|
|---|
| 19 | # include <sys/time.h>
|
|---|
| 20 | # include <sys/loadavg.h>
|
|---|
| 21 | #endif
|
|---|
| 22 | #if HAVE_RANDOM_H
|
|---|
| 23 | # include <random.h>
|
|---|
| 24 | #endif
|
|---|
| 25 | ]], [_Exit aligned_alloc atoll canonicalize_file_name free
|
|---|
| 26 | getloadavg getsubopt grantpt
|
|---|
| 27 | initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps
|
|---|
| 28 | posix_memalign posix_openpt ptsname ptsname_r qsort_r
|
|---|
| 29 | random random_r reallocarray realpath rpmatch secure_getenv setenv
|
|---|
| 30 | setstate setstate_r srandom srandom_r
|
|---|
| 31 | strtod strtol strtold strtoll strtoul strtoull unlockpt unsetenv])
|
|---|
| 32 |
|
|---|
| 33 | AC_REQUIRE([AC_C_RESTRICT])
|
|---|
| 34 |
|
|---|
| 35 | AC_CHECK_DECLS_ONCE([ecvt])
|
|---|
| 36 | if test $ac_cv_have_decl_ecvt = no; then
|
|---|
| 37 | HAVE_DECL_ECVT=0
|
|---|
| 38 | fi
|
|---|
| 39 | AC_CHECK_DECLS_ONCE([fcvt])
|
|---|
| 40 | if test $ac_cv_have_decl_fcvt = no; then
|
|---|
| 41 | HAVE_DECL_FCVT=0
|
|---|
| 42 | fi
|
|---|
| 43 | AC_CHECK_DECLS_ONCE([gcvt])
|
|---|
| 44 | if test $ac_cv_have_decl_gcvt = no; then
|
|---|
| 45 | HAVE_DECL_GCVT=0
|
|---|
| 46 | fi
|
|---|
| 47 | ])
|
|---|
| 48 |
|
|---|
| 49 | # gl_STDLIB_MODULE_INDICATOR([modulename])
|
|---|
| 50 | # sets the shell variable that indicates the presence of the given module
|
|---|
| 51 | # to a C preprocessor expression that will evaluate to 1.
|
|---|
| 52 | # This macro invocation must not occur in macros that are AC_REQUIREd.
|
|---|
| 53 | AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
|
|---|
| 54 | [
|
|---|
| 55 | dnl Ensure to expand the default settings once only.
|
|---|
| 56 | gl_STDLIB_H_REQUIRE_DEFAULTS
|
|---|
| 57 | gl_MODULE_INDICATOR_SET_VARIABLE([$1])
|
|---|
| 58 | dnl Define it also as a C macro, for the benefit of the unit tests.
|
|---|
| 59 | gl_MODULE_INDICATOR_FOR_TESTS([$1])
|
|---|
| 60 | ])
|
|---|
| 61 |
|
|---|
| 62 | # Initializes the default values for AC_SUBSTed shell variables.
|
|---|
| 63 | # This macro must not be AC_REQUIREd. It must only be invoked, and only
|
|---|
| 64 | # outside of macros or in macros that are not AC_REQUIREd.
|
|---|
| 65 | AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS],
|
|---|
| 66 | [
|
|---|
| 67 | m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS], [
|
|---|
| 68 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT])
|
|---|
| 69 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC])
|
|---|
| 70 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL])
|
|---|
| 71 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_POSIX])
|
|---|
| 72 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CANONICALIZE_FILE_NAME])
|
|---|
| 73 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREE_POSIX])
|
|---|
| 74 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOADAVG])
|
|---|
| 75 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSUBOPT])
|
|---|
| 76 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GRANTPT])
|
|---|
| 77 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_POSIX])
|
|---|
| 78 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBTOWC])
|
|---|
| 79 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDTEMP])
|
|---|
| 80 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMP])
|
|---|
| 81 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMPS])
|
|---|
| 82 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMP])
|
|---|
| 83 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMPS])
|
|---|
| 84 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_MEMALIGN])
|
|---|
| 85 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_OPENPT])
|
|---|
| 86 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME])
|
|---|
| 87 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME_R])
|
|---|
| 88 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTENV])
|
|---|
| 89 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_QSORT_R])
|
|---|
| 90 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM])
|
|---|
| 91 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R])
|
|---|
| 92 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY])
|
|---|
| 93 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX])
|
|---|
| 94 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH])
|
|---|
| 95 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH])
|
|---|
| 96 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SECURE_GETENV])
|
|---|
| 97 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETENV])
|
|---|
| 98 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOD])
|
|---|
| 99 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOL])
|
|---|
| 100 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLD])
|
|---|
| 101 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLL])
|
|---|
| 102 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUL])
|
|---|
| 103 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOULL])
|
|---|
| 104 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYSTEM_POSIX])
|
|---|
| 105 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLOCKPT])
|
|---|
| 106 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNSETENV])
|
|---|
| 107 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOMB])
|
|---|
| 108 | dnl Support Microsoft deprecated alias function names by default.
|
|---|
| 109 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ECVT], [1])
|
|---|
| 110 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCVT], [1])
|
|---|
| 111 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GCVT], [1])
|
|---|
| 112 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKTEMP], [1])
|
|---|
| 113 | gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTENV], [1])
|
|---|
| 114 | ])
|
|---|
| 115 | m4_require(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS])
|
|---|
| 116 | AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
|
|---|
| 117 | ])
|
|---|
| 118 |
|
|---|
| 119 | AC_DEFUN([gl_STDLIB_H_DEFAULTS],
|
|---|
| 120 | [
|
|---|
| 121 | dnl Assume proper GNU behavior unless another module says otherwise.
|
|---|
| 122 | HAVE__EXIT=1; AC_SUBST([HAVE__EXIT])
|
|---|
| 123 | HAVE_ALIGNED_ALLOC=1; AC_SUBST([HAVE_ALIGNED_ALLOC])
|
|---|
| 124 | HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL])
|
|---|
| 125 | HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME])
|
|---|
| 126 | HAVE_DECL_ECVT=1; AC_SUBST([HAVE_DECL_ECVT])
|
|---|
| 127 | HAVE_DECL_FCVT=1; AC_SUBST([HAVE_DECL_FCVT])
|
|---|
| 128 | HAVE_DECL_GCVT=1; AC_SUBST([HAVE_DECL_GCVT])
|
|---|
| 129 | HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
|
|---|
| 130 | HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT])
|
|---|
| 131 | HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT])
|
|---|
| 132 | HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE])
|
|---|
| 133 | HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE])
|
|---|
| 134 | HAVE_MBTOWC=1; AC_SUBST([HAVE_MBTOWC])
|
|---|
| 135 | HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP])
|
|---|
| 136 | HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP])
|
|---|
| 137 | HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS])
|
|---|
| 138 | HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP])
|
|---|
| 139 | HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS])
|
|---|
| 140 | HAVE_POSIX_MEMALIGN=1; AC_SUBST([HAVE_POSIX_MEMALIGN])
|
|---|
| 141 | HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT])
|
|---|
| 142 | HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME])
|
|---|
| 143 | HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R])
|
|---|
| 144 | HAVE_QSORT_R=1; AC_SUBST([HAVE_QSORT_R])
|
|---|
| 145 | HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM])
|
|---|
| 146 | HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H])
|
|---|
| 147 | HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R])
|
|---|
| 148 | HAVE_REALLOCARRAY=1; AC_SUBST([HAVE_REALLOCARRAY])
|
|---|
| 149 | HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH])
|
|---|
| 150 | HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH])
|
|---|
| 151 | HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV])
|
|---|
| 152 | HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
|
|---|
| 153 | HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV])
|
|---|
| 154 | HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE])
|
|---|
| 155 | HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE])
|
|---|
| 156 | HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
|
|---|
| 157 | HAVE_STRTOL=1; AC_SUBST([HAVE_STRTOL])
|
|---|
| 158 | HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD])
|
|---|
| 159 | HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL])
|
|---|
| 160 | HAVE_STRTOUL=1; AC_SUBST([HAVE_STRTOUL])
|
|---|
| 161 | HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
|
|---|
| 162 | HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
|
|---|
| 163 | HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H])
|
|---|
| 164 | HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT])
|
|---|
| 165 | HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV])
|
|---|
| 166 | REPLACE_ALIGNED_ALLOC=0; AC_SUBST([REPLACE_ALIGNED_ALLOC])
|
|---|
| 167 | REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC])
|
|---|
| 168 | REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
|
|---|
| 169 | REPLACE_FREE=0; AC_SUBST([REPLACE_FREE])
|
|---|
| 170 | REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE])
|
|---|
| 171 | REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC])
|
|---|
| 172 | REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC])
|
|---|
| 173 | REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP])
|
|---|
| 174 | REPLACE_POSIX_MEMALIGN=0; AC_SUBST([REPLACE_POSIX_MEMALIGN])
|
|---|
| 175 | REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME])
|
|---|
| 176 | REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R])
|
|---|
| 177 | REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])
|
|---|
| 178 | REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R])
|
|---|
| 179 | REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM])
|
|---|
| 180 | REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R])
|
|---|
| 181 | REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC])
|
|---|
| 182 | REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY])
|
|---|
| 183 | REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
|
|---|
| 184 | REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV])
|
|---|
| 185 | REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE])
|
|---|
| 186 | REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD])
|
|---|
| 187 | REPLACE_STRTOL=0; AC_SUBST([REPLACE_STRTOL])
|
|---|
| 188 | REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD])
|
|---|
| 189 | REPLACE_STRTOLL=0; AC_SUBST([REPLACE_STRTOLL])
|
|---|
| 190 | REPLACE_STRTOUL=0; AC_SUBST([REPLACE_STRTOUL])
|
|---|
| 191 | REPLACE_STRTOULL=0; AC_SUBST([REPLACE_STRTOULL])
|
|---|
| 192 | REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV])
|
|---|
| 193 | REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB])
|
|---|
| 194 | ])
|
|---|