Commit | Line | Data |
---|---|---|
9c9d63b1 PM |
1 | # unistd_h.m4 serial 85 |
2 | dnl Copyright (C) 2006-2021 Free Software Foundation, Inc. | |
8839a007 PA |
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 | dnl Written by Simon Josefsson, Bruno Haible. | |
8 | ||
9 | AC_DEFUN([gl_UNISTD_H], | |
10 | [ | |
11 | dnl Use AC_REQUIRE here, so that the default behavior below is expanded | |
12 | dnl once only, before all statements that occur in other macros. | |
13 | AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) | |
14 | ||
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]) | |
22 | ||
23 | dnl Ensure the type pid_t gets defined. | |
24 | AC_REQUIRE([AC_TYPE_PID_T]) | |
25 | ||
26 | dnl Determine WINDOWS_64_BIT_OFF_T. | |
27 | AC_REQUIRE([gl_TYPE_OFF_T]) | |
28 | ||
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> | |
c0c3707f | 40 | # if defined _WIN32 && ! defined __CYGWIN__ |
8839a007 PA |
41 | # include <io.h> |
42 | # endif | |
43 | #endif | |
9c9d63b1 PM |
44 | ]], [access chdir chown copy_file_range dup dup2 dup3 environ euidaccess |
45 | execl execle execlp execv execve execvp execvpe | |
46 | faccessat fchdir | |
c0c3707f | 47 | fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize |
698be2d8 | 48 | getentropy getgroups gethostname getlogin getlogin_r getpagesize getpass |
8839a007 PA |
49 | getusershell setusershell endusershell |
50 | group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite | |
c0c3707f CB |
51 | readlink readlinkat rmdir sethostname sleep symlink symlinkat |
52 | truncate ttyname_r unlink unlinkat usleep]) | |
698be2d8 CB |
53 | |
54 | AC_REQUIRE([AC_C_RESTRICT]) | |
9c9d63b1 PM |
55 | |
56 | AC_CHECK_DECLS_ONCE([execvpe]) | |
57 | if test $ac_cv_have_decl_execvpe = no; then | |
58 | HAVE_DECL_EXECVPE=0 | |
59 | fi | |
8839a007 PA |
60 | ]) |
61 | ||
62 | AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], | |
63 | [ | |
64 | dnl Use AC_REQUIRE here, so that the default settings are expanded once only. | |
65 | AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) | |
66 | gl_MODULE_INDICATOR_SET_VARIABLE([$1]) | |
67 | dnl Define it also as a C macro, for the benefit of the unit tests. | |
68 | gl_MODULE_INDICATOR_FOR_TESTS([$1]) | |
69 | ]) | |
70 | ||
71 | AC_DEFUN([gl_UNISTD_H_DEFAULTS], | |
72 | [ | |
c0c3707f | 73 | GNULIB_ACCESS=0; AC_SUBST([GNULIB_ACCESS]) |
8839a007 PA |
74 | GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR]) |
75 | GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) | |
76 | GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) | |
c0c3707f | 77 | GNULIB_COPY_FILE_RANGE=0; AC_SUBST([GNULIB_COPY_FILE_RANGE]) |
8839a007 PA |
78 | GNULIB_DUP=0; AC_SUBST([GNULIB_DUP]) |
79 | GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) | |
80 | GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) | |
81 | GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON]) | |
82 | GNULIB_EUIDACCESS=0; AC_SUBST([GNULIB_EUIDACCESS]) | |
9c9d63b1 PM |
83 | GNULIB_EXECL=0; AC_SUBST([GNULIB_EXECL]) |
84 | GNULIB_EXECLE=0; AC_SUBST([GNULIB_EXECLE]) | |
85 | GNULIB_EXECLP=0; AC_SUBST([GNULIB_EXECLP]) | |
86 | GNULIB_EXECV=0; AC_SUBST([GNULIB_EXECV]) | |
87 | GNULIB_EXECVE=0; AC_SUBST([GNULIB_EXECVE]) | |
88 | GNULIB_EXECVP=0; AC_SUBST([GNULIB_EXECVP]) | |
89 | GNULIB_EXECVPE=0; AC_SUBST([GNULIB_EXECVPE]) | |
8839a007 PA |
90 | GNULIB_FACCESSAT=0; AC_SUBST([GNULIB_FACCESSAT]) |
91 | GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) | |
92 | GNULIB_FCHOWNAT=0; AC_SUBST([GNULIB_FCHOWNAT]) | |
93 | GNULIB_FDATASYNC=0; AC_SUBST([GNULIB_FDATASYNC]) | |
94 | GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC]) | |
95 | GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) | |
96 | GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) | |
97 | GNULIB_GETDOMAINNAME=0; AC_SUBST([GNULIB_GETDOMAINNAME]) | |
98 | GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE]) | |
698be2d8 | 99 | GNULIB_GETENTROPY=0; AC_SUBST([GNULIB_GETENTROPY]) |
8839a007 PA |
100 | GNULIB_GETGROUPS=0; AC_SUBST([GNULIB_GETGROUPS]) |
101 | GNULIB_GETHOSTNAME=0; AC_SUBST([GNULIB_GETHOSTNAME]) | |
102 | GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) | |
103 | GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) | |
5df4cba6 | 104 | GNULIB_GETOPT_POSIX=0; AC_SUBST([GNULIB_GETOPT_POSIX]) |
8839a007 | 105 | GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) |
c0c3707f | 106 | GNULIB_GETPASS=0; AC_SUBST([GNULIB_GETPASS]) |
8839a007 PA |
107 | GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) |
108 | GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) | |
109 | GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY]) | |
110 | GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) | |
111 | GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) | |
112 | GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) | |
113 | GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) | |
114 | GNULIB_PIPE=0; AC_SUBST([GNULIB_PIPE]) | |
115 | GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2]) | |
116 | GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD]) | |
117 | GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE]) | |
118 | GNULIB_READ=0; AC_SUBST([GNULIB_READ]) | |
119 | GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) | |
120 | GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) | |
121 | GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) | |
122 | GNULIB_SETHOSTNAME=0; AC_SUBST([GNULIB_SETHOSTNAME]) | |
123 | GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) | |
124 | GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) | |
125 | GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) | |
c0c3707f | 126 | GNULIB_TRUNCATE=0; AC_SUBST([GNULIB_TRUNCATE]) |
8839a007 PA |
127 | GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R]) |
128 | GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING]) | |
129 | GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) | |
130 | GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) | |
131 | GNULIB_UNLINKAT=0; AC_SUBST([GNULIB_UNLINKAT]) | |
132 | GNULIB_USLEEP=0; AC_SUBST([GNULIB_USLEEP]) | |
133 | GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) | |
9c9d63b1 PM |
134 | dnl Support Microsoft deprecated alias function names by default. |
135 | GNULIB_MDA_ACCESS=1; AC_SUBST([GNULIB_MDA_ACCESS]) | |
136 | GNULIB_MDA_CHDIR=1; AC_SUBST([GNULIB_MDA_CHDIR]) | |
137 | GNULIB_MDA_CLOSE=1; AC_SUBST([GNULIB_MDA_CLOSE]) | |
138 | GNULIB_MDA_DUP=1; AC_SUBST([GNULIB_MDA_DUP]) | |
139 | GNULIB_MDA_DUP2=1; AC_SUBST([GNULIB_MDA_DUP2]) | |
140 | GNULIB_MDA_EXECL=1; AC_SUBST([GNULIB_MDA_EXECL]) | |
141 | GNULIB_MDA_EXECLE=1; AC_SUBST([GNULIB_MDA_EXECLE]) | |
142 | GNULIB_MDA_EXECLP=1; AC_SUBST([GNULIB_MDA_EXECLP]) | |
143 | GNULIB_MDA_EXECV=1; AC_SUBST([GNULIB_MDA_EXECV]) | |
144 | GNULIB_MDA_EXECVE=1; AC_SUBST([GNULIB_MDA_EXECVE]) | |
145 | GNULIB_MDA_EXECVP=1; AC_SUBST([GNULIB_MDA_EXECVP]) | |
146 | GNULIB_MDA_EXECVPE=1; AC_SUBST([GNULIB_MDA_EXECVPE]) | |
147 | GNULIB_MDA_GETCWD=1; AC_SUBST([GNULIB_MDA_GETCWD]) | |
148 | GNULIB_MDA_GETPID=1; AC_SUBST([GNULIB_MDA_GETPID]) | |
149 | GNULIB_MDA_ISATTY=1; AC_SUBST([GNULIB_MDA_ISATTY]) | |
150 | GNULIB_MDA_LSEEK=1; AC_SUBST([GNULIB_MDA_LSEEK]) | |
151 | GNULIB_MDA_READ=1; AC_SUBST([GNULIB_MDA_READ]) | |
152 | GNULIB_MDA_RMDIR=1; AC_SUBST([GNULIB_MDA_RMDIR]) | |
153 | GNULIB_MDA_SWAB=1; AC_SUBST([GNULIB_MDA_SWAB]) | |
154 | GNULIB_MDA_UNLINK=1; AC_SUBST([GNULIB_MDA_UNLINK]) | |
155 | GNULIB_MDA_WRITE=1; AC_SUBST([GNULIB_MDA_WRITE]) | |
8839a007 PA |
156 | dnl Assume proper GNU behavior unless another module says otherwise. |
157 | HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) | |
c0c3707f | 158 | HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE]) |
8839a007 PA |
159 | HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) |
160 | HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) | |
9c9d63b1 | 161 | HAVE_EXECVPE=1; AC_SUBST([HAVE_EXECVPE]) |
8839a007 PA |
162 | HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) |
163 | HAVE_FCHDIR=1; AC_SUBST([HAVE_FCHDIR]) | |
164 | HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) | |
165 | HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC]) | |
166 | HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) | |
167 | HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) | |
168 | HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) | |
698be2d8 | 169 | HAVE_GETENTROPY=1; AC_SUBST([HAVE_GETENTROPY]) |
8839a007 PA |
170 | HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) |
171 | HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) | |
172 | HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) | |
173 | HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) | |
c0c3707f | 174 | HAVE_GETPASS=1; AC_SUBST([HAVE_GETPASS]) |
8839a007 PA |
175 | HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) |
176 | HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) | |
177 | HAVE_LINK=1; AC_SUBST([HAVE_LINK]) | |
178 | HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) | |
179 | HAVE_PIPE=1; AC_SUBST([HAVE_PIPE]) | |
180 | HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) | |
181 | HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) | |
182 | HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) | |
183 | HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) | |
184 | HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) | |
185 | HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) | |
186 | HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) | |
187 | HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) | |
188 | HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) | |
189 | HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) | |
190 | HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) | |
191 | HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) | |
9c9d63b1 | 192 | HAVE_DECL_EXECVPE=1; AC_SUBST([HAVE_DECL_EXECVPE]) |
8839a007 PA |
193 | HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR]) |
194 | HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC]) | |
195 | HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME]) | |
c0c3707f | 196 | HAVE_DECL_GETLOGIN=1; AC_SUBST([HAVE_DECL_GETLOGIN]) |
8839a007 PA |
197 | HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) |
198 | HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) | |
199 | HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) | |
200 | HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) | |
c0c3707f | 201 | HAVE_DECL_TRUNCATE=1; AC_SUBST([HAVE_DECL_TRUNCATE]) |
8839a007 PA |
202 | HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) |
203 | HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) | |
204 | HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) | |
c0c3707f | 205 | REPLACE_ACCESS=0; AC_SUBST([REPLACE_ACCESS]) |
8839a007 PA |
206 | REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) |
207 | REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) | |
208 | REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) | |
209 | REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) | |
9c9d63b1 PM |
210 | REPLACE_EXECL=0; AC_SUBST([REPLACE_EXECL]) |
211 | REPLACE_EXECLE=0; AC_SUBST([REPLACE_EXECLE]) | |
212 | REPLACE_EXECLP=0; AC_SUBST([REPLACE_EXECLP]) | |
213 | REPLACE_EXECV=0; AC_SUBST([REPLACE_EXECV]) | |
214 | REPLACE_EXECVE=0; AC_SUBST([REPLACE_EXECVE]) | |
215 | REPLACE_EXECVP=0; AC_SUBST([REPLACE_EXECVP]) | |
216 | REPLACE_EXECVPE=0; AC_SUBST([REPLACE_EXECVPE]) | |
c0c3707f | 217 | REPLACE_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT]) |
8839a007 PA |
218 | REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) |
219 | REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) | |
220 | REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) | |
221 | REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) | |
4a626d0a | 222 | REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE]) |
8839a007 PA |
223 | REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) |
224 | REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) | |
225 | REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) | |
c0c3707f | 226 | REPLACE_GETPASS=0; AC_SUBST([REPLACE_GETPASS]) |
8839a007 PA |
227 | REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) |
228 | REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) | |
229 | REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) | |
230 | REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) | |
231 | REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) | |
232 | REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) | |
233 | REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) | |
234 | REPLACE_READ=0; AC_SUBST([REPLACE_READ]) | |
235 | REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) | |
4a626d0a | 236 | REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT]) |
8839a007 PA |
237 | REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) |
238 | REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) | |
239 | REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) | |
4a626d0a | 240 | REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT]) |
c0c3707f | 241 | REPLACE_TRUNCATE=0; AC_SUBST([REPLACE_TRUNCATE]) |
8839a007 PA |
242 | REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) |
243 | REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) | |
244 | REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) | |
245 | REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) | |
246 | REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) | |
698be2d8 | 247 | UNISTD_H_HAVE_SYS_RANDOM_H=0; AC_SUBST([UNISTD_H_HAVE_SYS_RANDOM_H]) |
8839a007 PA |
248 | UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) |
249 | UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; | |
250 | AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) | |
251 | ]) |