Adjust check_swap tests
[monitoring-plugins.git] / gl / m4 / unistd_h.m4
blobf4384027e3776649830d42ecaeaff3b659b42340
1 # unistd_h.m4 serial 90
2 dnl Copyright (C) 2006-2023 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 dnl Written by Simon Josefsson, Bruno Haible.
9 AC_DEFUN_ONCE([gl_UNISTD_H],
11   dnl Ensure to expand the default settings once only, before all statements
12   dnl that occur in other macros.
13   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
15   gl_CHECK_NEXT_HEADERS([unistd.h])
16   if test $ac_cv_header_unistd_h = yes; then
17     HAVE_UNISTD_H=1
18   else
19     HAVE_UNISTD_H=0
20   fi
21   AC_SUBST([HAVE_UNISTD_H])
23   dnl Ensure the type pid_t gets defined.
24   AC_REQUIRE([AC_TYPE_PID_T])
26   dnl Determine WINDOWS_64_BIT_OFF_T.
27   AC_REQUIRE([gl_TYPE_OFF_T])
29   dnl Check for declarations of anything we want to poison if the
30   dnl corresponding gnulib module is not in use.
31   gl_WARN_ON_USE_PREPARE([[
32 #if HAVE_UNISTD_H
33 # include <unistd.h>
34 #endif
35 /* Some systems declare various items in the wrong headers.  */
36 #if !(defined __GLIBC__ && !defined __UCLIBC__)
37 # include <fcntl.h>
38 # include <stdio.h>
39 # include <stdlib.h>
40 # if defined _WIN32 && ! defined __CYGWIN__
41 #  include <io.h>
42 # endif
43 #endif
44     ]], [access chdir chown copy_file_range dup dup2 dup3 environ euidaccess
45     execl execle execlp execv execve execvp execvpe
46     faccessat fchdir
47     fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize
48     getentropy getgroups gethostname getlogin getlogin_r getpagesize getpass
49     getusershell setusershell endusershell
50     group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite
51     readlink readlinkat rmdir sethostname sleep symlink symlinkat
52     truncate ttyname_r unlink unlinkat usleep])
54   AC_REQUIRE([AC_C_RESTRICT])
56   AC_CHECK_DECLS_ONCE([execvpe])
57   if test $ac_cv_have_decl_execvpe = no; then
58     HAVE_DECL_EXECVPE=0
59   fi
62 # gl_UNISTD_MODULE_INDICATOR([modulename])
63 # sets the shell variable that indicates the presence of the given module
64 # to a C preprocessor expression that will evaluate to 1.
65 # This macro invocation must not occur in macros that are AC_REQUIREd.
66 AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
68   dnl Ensure to expand the default settings once only.
69   gl_UNISTD_H_REQUIRE_DEFAULTS
70   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
71   dnl Define it also as a C macro, for the benefit of the unit tests.
72   gl_MODULE_INDICATOR_FOR_TESTS([$1])
75 # Initializes the default values for AC_SUBSTed shell variables.
76 # This macro must not be AC_REQUIREd.  It must only be invoked, and only
77 # outside of macros or in macros that are not AC_REQUIREd.
78 AC_DEFUN([gl_UNISTD_H_REQUIRE_DEFAULTS],
80   m4_defun(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS], [
81     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCESS])
82     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHDIR])
83     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHOWN])
84     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CLOSE])
85     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPY_FILE_RANGE])
86     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP])
87     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP2])
88     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP3])
89     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ENVIRON])
90     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EUIDACCESS])
91     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECL])
92     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLE])
93     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLP])
94     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECV])
95     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVE])
96     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVP])
97     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVPE])
98     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FACCESSAT])
99     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHDIR])
100     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHOWNAT])
101     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDATASYNC])
102     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSYNC])
103     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTRUNCATE])
104     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCWD])
105     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDOMAINNAME])
106     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDTABLESIZE])
107     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETENTROPY])
108     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETGROUPS])
109     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETHOSTNAME])
110     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN])
111     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN_R])
112     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETOPT_POSIX])
113     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAGESIZE])
114     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS])
115     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS_GNU])
116     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUSERSHELL])
117     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GROUP_MEMBER])
118     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISATTY])
119     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHOWN])
120     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINK])
121     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINKAT])
122     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSEEK])
123     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE])
124     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE2])
125     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PREAD])
126     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PWRITE])
127     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READ])
128     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINK])
129     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINKAT])
130     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RMDIR])
131     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETHOSTNAME])
132     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SLEEP])
133     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINK])
134     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINKAT])
135     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCATE])
136     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TTYNAME_R])
137     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT])
138     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_NONBLOCKING])
139     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_SIGPIPE])
140     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINK])
141     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINKAT])
142     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_USLEEP])
143     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WRITE])
144     dnl Support Microsoft deprecated alias function names by default.
145     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ACCESS], [1])
146     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHDIR], [1])
147     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CLOSE], [1])
148     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP], [1])
149     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP2], [1])
150     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECL], [1])
151     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLE], [1])
152     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLP], [1])
153     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECV], [1])
154     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVE], [1])
155     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVP], [1])
156     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVPE], [1])
157     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETCWD], [1])
158     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETPID], [1])
159     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ISATTY], [1])
160     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LSEEK], [1])
161     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_READ], [1])
162     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_RMDIR], [1])
163     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_SWAB], [1])
164     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UNLINK], [1])
165     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WRITE], [1])
166   ])
167   m4_require(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS])
168   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
171 AC_DEFUN([gl_UNISTD_H_DEFAULTS],
173   dnl Assume proper GNU behavior unless another module says otherwise.
174   HAVE_CHOWN=1;                      AC_SUBST([HAVE_CHOWN])
175   HAVE_COPY_FILE_RANGE=1;            AC_SUBST([HAVE_COPY_FILE_RANGE])
176   HAVE_DUP3=1;                       AC_SUBST([HAVE_DUP3])
177   HAVE_EUIDACCESS=1;                 AC_SUBST([HAVE_EUIDACCESS])
178   HAVE_EXECVPE=1;                    AC_SUBST([HAVE_EXECVPE])
179   HAVE_FACCESSAT=1;                  AC_SUBST([HAVE_FACCESSAT])
180   HAVE_FCHDIR=1;                     AC_SUBST([HAVE_FCHDIR])
181   HAVE_FCHOWNAT=1;                   AC_SUBST([HAVE_FCHOWNAT])
182   HAVE_FDATASYNC=1;                  AC_SUBST([HAVE_FDATASYNC])
183   HAVE_FSYNC=1;                      AC_SUBST([HAVE_FSYNC])
184   HAVE_FTRUNCATE=1;                  AC_SUBST([HAVE_FTRUNCATE])
185   HAVE_GETDTABLESIZE=1;              AC_SUBST([HAVE_GETDTABLESIZE])
186   HAVE_GETENTROPY=1;                 AC_SUBST([HAVE_GETENTROPY])
187   HAVE_GETGROUPS=1;                  AC_SUBST([HAVE_GETGROUPS])
188   HAVE_GETHOSTNAME=1;                AC_SUBST([HAVE_GETHOSTNAME])
189   HAVE_GETLOGIN=1;                   AC_SUBST([HAVE_GETLOGIN])
190   HAVE_GETPAGESIZE=1;                AC_SUBST([HAVE_GETPAGESIZE])
191   HAVE_GETPASS=1;                    AC_SUBST([HAVE_GETPASS])
192   HAVE_GROUP_MEMBER=1;               AC_SUBST([HAVE_GROUP_MEMBER])
193   HAVE_LCHOWN=1;                     AC_SUBST([HAVE_LCHOWN])
194   HAVE_LINK=1;                       AC_SUBST([HAVE_LINK])
195   HAVE_LINKAT=1;                     AC_SUBST([HAVE_LINKAT])
196   HAVE_PIPE=1;                       AC_SUBST([HAVE_PIPE])
197   HAVE_PIPE2=1;                      AC_SUBST([HAVE_PIPE2])
198   HAVE_PREAD=1;                      AC_SUBST([HAVE_PREAD])
199   HAVE_PWRITE=1;                     AC_SUBST([HAVE_PWRITE])
200   HAVE_READLINK=1;                   AC_SUBST([HAVE_READLINK])
201   HAVE_READLINKAT=1;                 AC_SUBST([HAVE_READLINKAT])
202   HAVE_SETHOSTNAME=1;                AC_SUBST([HAVE_SETHOSTNAME])
203   HAVE_SLEEP=1;                      AC_SUBST([HAVE_SLEEP])
204   HAVE_SYMLINK=1;                    AC_SUBST([HAVE_SYMLINK])
205   HAVE_SYMLINKAT=1;                  AC_SUBST([HAVE_SYMLINKAT])
206   HAVE_UNLINKAT=1;                   AC_SUBST([HAVE_UNLINKAT])
207   HAVE_USLEEP=1;                     AC_SUBST([HAVE_USLEEP])
208   HAVE_DECL_ENVIRON=1;               AC_SUBST([HAVE_DECL_ENVIRON])
209   HAVE_DECL_EXECVPE=1;               AC_SUBST([HAVE_DECL_EXECVPE])
210   HAVE_DECL_FCHDIR=1;                AC_SUBST([HAVE_DECL_FCHDIR])
211   HAVE_DECL_FDATASYNC=1;             AC_SUBST([HAVE_DECL_FDATASYNC])
212   HAVE_DECL_GETDOMAINNAME=1;         AC_SUBST([HAVE_DECL_GETDOMAINNAME])
213   HAVE_DECL_GETLOGIN=1;              AC_SUBST([HAVE_DECL_GETLOGIN])
214   HAVE_DECL_GETLOGIN_R=1;            AC_SUBST([HAVE_DECL_GETLOGIN_R])
215   HAVE_DECL_GETPAGESIZE=1;           AC_SUBST([HAVE_DECL_GETPAGESIZE])
216   HAVE_DECL_GETUSERSHELL=1;          AC_SUBST([HAVE_DECL_GETUSERSHELL])
217   HAVE_DECL_SETHOSTNAME=1;           AC_SUBST([HAVE_DECL_SETHOSTNAME])
218   HAVE_DECL_TRUNCATE=1;              AC_SUBST([HAVE_DECL_TRUNCATE])
219   HAVE_DECL_TTYNAME_R=1;             AC_SUBST([HAVE_DECL_TTYNAME_R])
220   HAVE_OS_H=0;                       AC_SUBST([HAVE_OS_H])
221   HAVE_SYS_PARAM_H=0;                AC_SUBST([HAVE_SYS_PARAM_H])
222   REPLACE_ACCESS=0;                  AC_SUBST([REPLACE_ACCESS])
223   REPLACE_CHOWN=0;                   AC_SUBST([REPLACE_CHOWN])
224   REPLACE_CLOSE=0;                   AC_SUBST([REPLACE_CLOSE])
225   REPLACE_COPY_FILE_RANGE=0;         AC_SUBST([REPLACE_COPY_FILE_RANGE])
226   REPLACE_DUP=0;                     AC_SUBST([REPLACE_DUP])
227   REPLACE_DUP2=0;                    AC_SUBST([REPLACE_DUP2])
228   REPLACE_EXECL=0;                   AC_SUBST([REPLACE_EXECL])
229   REPLACE_EXECLE=0;                  AC_SUBST([REPLACE_EXECLE])
230   REPLACE_EXECLP=0;                  AC_SUBST([REPLACE_EXECLP])
231   REPLACE_EXECV=0;                   AC_SUBST([REPLACE_EXECV])
232   REPLACE_EXECVE=0;                  AC_SUBST([REPLACE_EXECVE])
233   REPLACE_EXECVP=0;                  AC_SUBST([REPLACE_EXECVP])
234   REPLACE_EXECVPE=0;                 AC_SUBST([REPLACE_EXECVPE])
235   REPLACE_FACCESSAT=0;               AC_SUBST([REPLACE_FACCESSAT])
236   REPLACE_FCHOWNAT=0;                AC_SUBST([REPLACE_FCHOWNAT])
237   REPLACE_FTRUNCATE=0;               AC_SUBST([REPLACE_FTRUNCATE])
238   REPLACE_GETCWD=0;                  AC_SUBST([REPLACE_GETCWD])
239   REPLACE_GETDOMAINNAME=0;           AC_SUBST([REPLACE_GETDOMAINNAME])
240   REPLACE_GETDTABLESIZE=0;           AC_SUBST([REPLACE_GETDTABLESIZE])
241   REPLACE_GETLOGIN_R=0;              AC_SUBST([REPLACE_GETLOGIN_R])
242   REPLACE_GETGROUPS=0;               AC_SUBST([REPLACE_GETGROUPS])
243   REPLACE_GETPAGESIZE=0;             AC_SUBST([REPLACE_GETPAGESIZE])
244   REPLACE_GETPASS=0;                 AC_SUBST([REPLACE_GETPASS])
245   REPLACE_GETPASS_FOR_GETPASS_GNU=0; AC_SUBST([REPLACE_GETPASS_FOR_GETPASS_GNU])
246   REPLACE_ISATTY=0;                  AC_SUBST([REPLACE_ISATTY])
247   REPLACE_LCHOWN=0;                  AC_SUBST([REPLACE_LCHOWN])
248   REPLACE_LINK=0;                    AC_SUBST([REPLACE_LINK])
249   REPLACE_LINKAT=0;                  AC_SUBST([REPLACE_LINKAT])
250   REPLACE_LSEEK=0;                   AC_SUBST([REPLACE_LSEEK])
251   REPLACE_PREAD=0;                   AC_SUBST([REPLACE_PREAD])
252   REPLACE_PWRITE=0;                  AC_SUBST([REPLACE_PWRITE])
253   REPLACE_READ=0;                    AC_SUBST([REPLACE_READ])
254   REPLACE_READLINK=0;                AC_SUBST([REPLACE_READLINK])
255   REPLACE_READLINKAT=0;              AC_SUBST([REPLACE_READLINKAT])
256   REPLACE_RMDIR=0;                   AC_SUBST([REPLACE_RMDIR])
257   REPLACE_SLEEP=0;                   AC_SUBST([REPLACE_SLEEP])
258   REPLACE_SYMLINK=0;                 AC_SUBST([REPLACE_SYMLINK])
259   REPLACE_SYMLINKAT=0;               AC_SUBST([REPLACE_SYMLINKAT])
260   REPLACE_TRUNCATE=0;                AC_SUBST([REPLACE_TRUNCATE])
261   REPLACE_TTYNAME_R=0;               AC_SUBST([REPLACE_TTYNAME_R])
262   REPLACE_UNLINK=0;                  AC_SUBST([REPLACE_UNLINK])
263   REPLACE_UNLINKAT=0;                AC_SUBST([REPLACE_UNLINKAT])
264   REPLACE_USLEEP=0;                  AC_SUBST([REPLACE_USLEEP])
265   REPLACE_WRITE=0;                   AC_SUBST([REPLACE_WRITE])
266   UNISTD_H_HAVE_SYS_RANDOM_H=0;      AC_SUBST([UNISTD_H_HAVE_SYS_RANDOM_H])
267   UNISTD_H_HAVE_WINSOCK2_H=0;        AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H])
268   UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
269                            AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS])