Fix "warning: 'format' attribute argument not supported: rpl_printf".
[gnulib.git] / m4 / stdlib_h.m4
blob743066a6336f9c3632813ea8cabe9f42a099ddcc
1 # stdlib_h.m4 serial 49
2 dnl Copyright (C) 2007-2020 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.
7 AC_DEFUN([gl_STDLIB_H],
9   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
10   gl_NEXT_HEADERS([stdlib.h])
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 atoll canonicalize_file_name getloadavg getsubopt grantpt
26     initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps
27     posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray
28     realpath rpmatch secure_getenv setenv setstate setstate_r srandom
29     srandom_r strtod strtold strtoll strtoull unlockpt unsetenv])
31   AC_REQUIRE([AC_C_RESTRICT])
34 AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
36   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
37   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
38   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
39   dnl Define it also as a C macro, for the benefit of the unit tests.
40   gl_MODULE_INDICATOR_FOR_TESTS([$1])
43 AC_DEFUN([gl_STDLIB_H_DEFAULTS],
45   GNULIB__EXIT=0;         AC_SUBST([GNULIB__EXIT])
46   GNULIB_ATOLL=0;         AC_SUBST([GNULIB_ATOLL])
47   GNULIB_CALLOC_POSIX=0;  AC_SUBST([GNULIB_CALLOC_POSIX])
48   GNULIB_CANONICALIZE_FILE_NAME=0;  AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME])
49   GNULIB_GETLOADAVG=0;    AC_SUBST([GNULIB_GETLOADAVG])
50   GNULIB_GETSUBOPT=0;     AC_SUBST([GNULIB_GETSUBOPT])
51   GNULIB_GRANTPT=0;       AC_SUBST([GNULIB_GRANTPT])
52   GNULIB_MALLOC_POSIX=0;  AC_SUBST([GNULIB_MALLOC_POSIX])
53   GNULIB_MBTOWC=0;        AC_SUBST([GNULIB_MBTOWC])
54   GNULIB_MKDTEMP=0;       AC_SUBST([GNULIB_MKDTEMP])
55   GNULIB_MKOSTEMP=0;      AC_SUBST([GNULIB_MKOSTEMP])
56   GNULIB_MKOSTEMPS=0;     AC_SUBST([GNULIB_MKOSTEMPS])
57   GNULIB_MKSTEMP=0;       AC_SUBST([GNULIB_MKSTEMP])
58   GNULIB_MKSTEMPS=0;      AC_SUBST([GNULIB_MKSTEMPS])
59   GNULIB_POSIX_OPENPT=0;  AC_SUBST([GNULIB_POSIX_OPENPT])
60   GNULIB_PTSNAME=0;       AC_SUBST([GNULIB_PTSNAME])
61   GNULIB_PTSNAME_R=0;     AC_SUBST([GNULIB_PTSNAME_R])
62   GNULIB_PUTENV=0;        AC_SUBST([GNULIB_PUTENV])
63   GNULIB_QSORT_R=0;       AC_SUBST([GNULIB_QSORT_R])
64   GNULIB_RANDOM=0;        AC_SUBST([GNULIB_RANDOM])
65   GNULIB_RANDOM_R=0;      AC_SUBST([GNULIB_RANDOM_R])
66   GNULIB_REALLOCARRAY=0;  AC_SUBST([GNULIB_REALLOCARRAY])
67   GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
68   GNULIB_REALPATH=0;      AC_SUBST([GNULIB_REALPATH])
69   GNULIB_RPMATCH=0;       AC_SUBST([GNULIB_RPMATCH])
70   GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV])
71   GNULIB_SETENV=0;        AC_SUBST([GNULIB_SETENV])
72   GNULIB_STRTOD=0;        AC_SUBST([GNULIB_STRTOD])
73   GNULIB_STRTOLD=0;       AC_SUBST([GNULIB_STRTOLD])
74   GNULIB_STRTOLL=0;       AC_SUBST([GNULIB_STRTOLL])
75   GNULIB_STRTOULL=0;      AC_SUBST([GNULIB_STRTOULL])
76   GNULIB_SYSTEM_POSIX=0;  AC_SUBST([GNULIB_SYSTEM_POSIX])
77   GNULIB_UNLOCKPT=0;      AC_SUBST([GNULIB_UNLOCKPT])
78   GNULIB_UNSETENV=0;      AC_SUBST([GNULIB_UNSETENV])
79   GNULIB_WCTOMB=0;        AC_SUBST([GNULIB_WCTOMB])
80   dnl Assume proper GNU behavior unless another module says otherwise.
81   HAVE__EXIT=1;              AC_SUBST([HAVE__EXIT])
82   HAVE_ATOLL=1;              AC_SUBST([HAVE_ATOLL])
83   HAVE_CANONICALIZE_FILE_NAME=1;  AC_SUBST([HAVE_CANONICALIZE_FILE_NAME])
84   HAVE_DECL_GETLOADAVG=1;    AC_SUBST([HAVE_DECL_GETLOADAVG])
85   HAVE_GETSUBOPT=1;          AC_SUBST([HAVE_GETSUBOPT])
86   HAVE_GRANTPT=1;            AC_SUBST([HAVE_GRANTPT])
87   HAVE_INITSTATE=1;          AC_SUBST([HAVE_INITSTATE])
88   HAVE_DECL_INITSTATE=1;     AC_SUBST([HAVE_DECL_INITSTATE])
89   HAVE_MBTOWC=1;             AC_SUBST([HAVE_MBTOWC])
90   HAVE_MKDTEMP=1;            AC_SUBST([HAVE_MKDTEMP])
91   HAVE_MKOSTEMP=1;           AC_SUBST([HAVE_MKOSTEMP])
92   HAVE_MKOSTEMPS=1;          AC_SUBST([HAVE_MKOSTEMPS])
93   HAVE_MKSTEMP=1;            AC_SUBST([HAVE_MKSTEMP])
94   HAVE_MKSTEMPS=1;           AC_SUBST([HAVE_MKSTEMPS])
95   HAVE_POSIX_OPENPT=1;       AC_SUBST([HAVE_POSIX_OPENPT])
96   HAVE_PTSNAME=1;            AC_SUBST([HAVE_PTSNAME])
97   HAVE_PTSNAME_R=1;          AC_SUBST([HAVE_PTSNAME_R])
98   HAVE_QSORT_R=1;            AC_SUBST([HAVE_QSORT_R])
99   HAVE_RANDOM=1;             AC_SUBST([HAVE_RANDOM])
100   HAVE_RANDOM_H=1;           AC_SUBST([HAVE_RANDOM_H])
101   HAVE_RANDOM_R=1;           AC_SUBST([HAVE_RANDOM_R])
102   HAVE_REALLOCARRAY=1;       AC_SUBST([HAVE_REALLOCARRAY])
103   HAVE_REALPATH=1;           AC_SUBST([HAVE_REALPATH])
104   HAVE_RPMATCH=1;            AC_SUBST([HAVE_RPMATCH])
105   HAVE_SECURE_GETENV=1;      AC_SUBST([HAVE_SECURE_GETENV])
106   HAVE_SETENV=1;             AC_SUBST([HAVE_SETENV])
107   HAVE_DECL_SETENV=1;        AC_SUBST([HAVE_DECL_SETENV])
108   HAVE_SETSTATE=1;           AC_SUBST([HAVE_SETSTATE])
109   HAVE_DECL_SETSTATE=1;      AC_SUBST([HAVE_DECL_SETSTATE])
110   HAVE_STRTOD=1;             AC_SUBST([HAVE_STRTOD])
111   HAVE_STRTOLD=1;            AC_SUBST([HAVE_STRTOLD])
112   HAVE_STRTOLL=1;            AC_SUBST([HAVE_STRTOLL])
113   HAVE_STRTOULL=1;           AC_SUBST([HAVE_STRTOULL])
114   HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
115   HAVE_SYS_LOADAVG_H=0;      AC_SUBST([HAVE_SYS_LOADAVG_H])
116   HAVE_UNLOCKPT=1;           AC_SUBST([HAVE_UNLOCKPT])
117   HAVE_DECL_UNSETENV=1;      AC_SUBST([HAVE_DECL_UNSETENV])
118   REPLACE_CALLOC=0;          AC_SUBST([REPLACE_CALLOC])
119   REPLACE_CANONICALIZE_FILE_NAME=0;  AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
120   REPLACE_INITSTATE=0;       AC_SUBST([REPLACE_INITSTATE])
121   REPLACE_MALLOC=0;          AC_SUBST([REPLACE_MALLOC])
122   REPLACE_MBTOWC=0;          AC_SUBST([REPLACE_MBTOWC])
123   REPLACE_MKSTEMP=0;         AC_SUBST([REPLACE_MKSTEMP])
124   REPLACE_PTSNAME=0;         AC_SUBST([REPLACE_PTSNAME])
125   REPLACE_PTSNAME_R=0;       AC_SUBST([REPLACE_PTSNAME_R])
126   REPLACE_PUTENV=0;          AC_SUBST([REPLACE_PUTENV])
127   REPLACE_QSORT_R=0;         AC_SUBST([REPLACE_QSORT_R])
128   REPLACE_RANDOM=0;          AC_SUBST([REPLACE_RANDOM])
129   REPLACE_RANDOM_R=0;        AC_SUBST([REPLACE_RANDOM_R])
130   REPLACE_REALLOC=0;         AC_SUBST([REPLACE_REALLOC])
131   REPLACE_REALPATH=0;        AC_SUBST([REPLACE_REALPATH])
132   REPLACE_SETENV=0;          AC_SUBST([REPLACE_SETENV])
133   REPLACE_SETSTATE=0;        AC_SUBST([REPLACE_SETSTATE])
134   REPLACE_STRTOD=0;          AC_SUBST([REPLACE_STRTOD])
135   REPLACE_STRTOLD=0;         AC_SUBST([REPLACE_STRTOLD])
136   REPLACE_UNSETENV=0;        AC_SUBST([REPLACE_UNSETENV])
137   REPLACE_WCTOMB=0;          AC_SUBST([REPLACE_WCTOMB])