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 | ])
|
---|