ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/configure.ac
(Generate patch)

Comparing IO-AIO/configure.ac (file contents):
Revision 1.12 by root, Sun Mar 10 12:16:48 2019 UTC vs.
Revision 1.20 by root, Wed Sep 28 08:24:25 2022 UTC

12# for these to work, you need to run autoheader in IO::AIO, not libeio :( 12# for these to work, you need to run autoheader in IO::AIO, not libeio :(
13 13
14AC_CACHE_CHECK(for set/getrlimit, ac_cv_rlimits, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ 14AC_CACHE_CHECK(for set/getrlimit, ac_cv_rlimits, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
15#include <sys/time.h> 15#include <sys/time.h>
16#include <sys/resource.h> 16#include <sys/resource.h>
17int res;
18int main (void) 17int main (void)
19{ 18{
20 struct rlimit srl; 19 struct rlimit srl;
20 int res;
21 srl.rlim_cur = srl.rlim_max = RLIM_INFINITY; 21 srl.rlim_cur = srl.rlim_max = RLIM_INFINITY;
22 res = getrlimit (RLIMIT_NOFILE, &srl); 22 res = getrlimit (RLIMIT_NOFILE, &srl);
23 res = setrlimit (RLIMIT_NOFILE, &srl); 23 res = setrlimit (RLIMIT_NOFILE, &srl);
24 return 0; 24 return 0;
25} 25}
68AC_CHECK_HEADERS([sys/mkdev.h]) 68AC_CHECK_HEADERS([sys/mkdev.h])
69 69
70dnl readv / preadv, vmsplice 70dnl readv / preadv, vmsplice
71AC_CHECK_HEADERS([sys/uio.h]) 71AC_CHECK_HEADERS([sys/uio.h])
72 72
73dnl fexecve has always been in the single unix specification
74dnl but some atrocities (like opsnbsd and osx) claim implementing it
75dnl but then not definining it. ugh. garbage. and fexecve would be
76dnl useful for security, but, no, not on openbsd. we'd rather lie
77dnl about it.
78AC_CACHE_CHECK(for fexecve, ac_cv_fexecve, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
79#include <fcntl.h>
80#include <unistd.h>
81int main (void)
82{
83 int res = fexecve (-1, "argv", 0);
84 return 0;
85}
86]])],ac_cv_fexecve=yes,ac_cv_fexecve=no)])
87test $ac_cv_fexecve = yes && AC_DEFINE(HAVE_FEXECVE, 1, fexecve(2) is available)
88
89AC_CACHE_CHECK([for siginfo_t], ac_cv_siginfo_t, [AC_LINK_IFELSE([AC_LANG_SOURCE([
90#include <signal.h>
91int main (void)
92{
93 siginfo_t si;
94 si.si_code;
95 si.si_pid;
96 si.si_uid;
97 si.si_value.sival_int;
98 si.si_value.sival_ptr;
99 return 0;
100}
101])],ac_cv_siginfo_t=yes,ac_cv_siginfo_t=no)])
102test $ac_cv_siginfo_t = yes && AC_DEFINE(HAVE_SIGINFO_T, 1, have siginfo_t in signal.h)
103
104AC_CACHE_CHECK([for unix-style syscall interface], ac_cv_syscall, [AC_LINK_IFELSE([AC_LANG_SOURCE([
105#include <unistd.h>
106#include <sys/syscall.h>
107int main (void)
108{
109 long res = syscall (SYS_exit, 0);
110 return 0;
111}
112])],ac_cv_syscall=yes,ac_cv_syscall=no)])
113test $ac_cv_syscall = yes && AC_DEFINE(HAVE_SYSCALL, 1, unix syscall interface)
73 114
74AC_CACHE_CHECK([for splice, vmsplice and tee], ac_cv_linux_splice, [AC_LINK_IFELSE([AC_LANG_SOURCE([ 115AC_CACHE_CHECK([for splice, vmsplice and tee], ac_cv_linux_splice, [AC_LINK_IFELSE([AC_LANG_SOURCE([
75#include <sys/types.h> 116#include <sys/types.h>
76#include <fcntl.h> 117#include <fcntl.h>
77#include <sys/uio.h> 118#include <sys/uio.h>
87test $ac_cv_linux_splice = yes && AC_DEFINE(HAVE_LINUX_SPLICE, 1, splice/vmsplice/tee(2) are available) 128test $ac_cv_linux_splice = yes && AC_DEFINE(HAVE_LINUX_SPLICE, 1, splice/vmsplice/tee(2) are available)
88 129
89AC_CACHE_CHECK(for pipe2, ac_cv_pipe2, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ 130AC_CACHE_CHECK(for pipe2, ac_cv_pipe2, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
90#include <fcntl.h> 131#include <fcntl.h>
91#include <unistd.h> 132#include <unistd.h>
133int main (void)
134{
92int res; 135 int res;
93int main (void)
94{
95 res = pipe2 (0, 0); 136 res = pipe2 (0, 0);
96 return 0; 137 return 0;
97} 138}
98]])],ac_cv_pipe2=yes,ac_cv_pipe2=no)]) 139]])],ac_cv_pipe2=yes,ac_cv_pipe2=no)])
99test $ac_cv_pipe2 = yes && AC_DEFINE(HAVE_PIPE2, 1, pipe2(2) is available) 140test $ac_cv_pipe2 = yes && AC_DEFINE(HAVE_PIPE2, 1, pipe2(2) is available)
100 141
101AC_CACHE_CHECK(for eventfd, ac_cv_eventfd, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ 142AC_CACHE_CHECK(for eventfd, ac_cv_eventfd, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
102#include <sys/eventfd.h> 143#include <sys/eventfd.h>
144int main (void)
145{
103int res; 146 int res;
104int main (void)
105{
106 res = eventfd (1, EFD_CLOEXEC | EFD_NONBLOCK); 147 res = eventfd (1, EFD_CLOEXEC | EFD_NONBLOCK);
107 return 0; 148 return 0;
108} 149}
109]])],ac_cv_eventfd=yes,ac_cv_eventfd=no)]) 150]])],ac_cv_eventfd=yes,ac_cv_eventfd=no)])
110test $ac_cv_eventfd = yes && AC_DEFINE(HAVE_EVENTFD, 1, eventfd(2) is available) 151test $ac_cv_eventfd = yes && AC_DEFINE(HAVE_EVENTFD, 1, eventfd(2) is available)
111 152
112AC_CACHE_CHECK(for timerfd, ac_cv_timerfd, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ 153AC_CACHE_CHECK(for timerfd_*, ac_cv_timerfd, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
113#include <sys/timerfd.h> 154#include <sys/timerfd.h>
114int res;
115int main (void) 155int main (void)
116{ 156{
117 struct itimerspec its; 157 struct itimerspec its;
158 int res;
118 res = timerfd_create (CLOCK_REALTIME, TFD_CLOEXEC | TFD_NONBLOCK); 159 res = timerfd_create (CLOCK_REALTIME, TFD_CLOEXEC | TFD_NONBLOCK);
119 res = timerfd_settime (res, TFD_TIMER_ABSTIME /*| TFD_TIMER_CANCEL_ON_SET*/, &its, 0); 160 res = timerfd_settime (res, TFD_TIMER_ABSTIME /*| TFD_TIMER_CANCEL_ON_SET*/, &its, 0);
120 res = timerfd_gettime (res, &its); 161 res = timerfd_gettime (res, &its);
121 return 0; 162 return 0;
122} 163}
123]])],ac_cv_timerfd=yes,ac_cv_timerfd=no)]) 164]])],ac_cv_timerfd=yes,ac_cv_timerfd=no)])
124test $ac_cv_timerfd = yes && AC_DEFINE(HAVE_TIMERFD, 1, timerfd_*(2) are available) 165test $ac_cv_timerfd = yes && AC_DEFINE(HAVE_TIMERFD, 1, timerfd_*(2) are available)
125 166
167AC_CACHE_CHECK(for memfd_create, ac_cv_memfd_create, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
168#include <sys/mman.h>
169int main (void)
170{
171 int res = memfd_create ("name", MFD_CLOEXEC | MFD_ALLOW_SEALING);
172 return 0;
173}
174]])],ac_cv_memfd_create=yes,ac_cv_memfd_create=no)])
175test $ac_cv_memfd_create = yes && AC_DEFINE(HAVE_MEMFD_CREATE, 1, memfd_create(2) is available)
176
126AC_CACHE_CHECK(for copy_file_range, ac_cv_copy_file_range, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ 177AC_CACHE_CHECK(for copy_file_range, ac_cv_copy_file_range, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
127#include <unistd.h> 178#include <unistd.h>
128#include <sys/syscall.h> 179#include <sys/syscall.h>
129/*#include <linux/copy.h>*/ 180/*#include <linux/copy.h>*/
181int main (void)
182{
130int res; 183 int res;
131int main (void)
132{
133 /*res = syscall (SYS_copy_file_range, 0, 0, 0, 0, 0, COPY_FR_REFLINK | COPY_FR_DEDUP | COPY_FR_COPY);*/ 184 /*res = syscall (SYS_copy_file_range, 0, 0, 0, 0, 0, COPY_FR_REFLINK | COPY_FR_DEDUP | COPY_FR_COPY);*/
134 res = syscall (SYS_copy_file_range, 0, 0, 0, 0, 0, 0); 185 res = syscall (SYS_copy_file_range, 0, 0, 0, 0, 0, 0);
135 return 0; 186 return 0;
136} 187}
137]])],ac_cv_copy_file_range=yes,ac_cv_copy_file_range=no)]) 188]])],ac_cv_copy_file_range=yes,ac_cv_copy_file_range=no)])
201 return PL_statcache.st_gen; 252 return PL_statcache.st_gen;
202} 253}
203]])],ac_cv_st_gen=yes,ac_cv_st_gen=no)]) 254]])],ac_cv_st_gen=yes,ac_cv_st_gen=no)])
204test $ac_cv_st_gen = yes && AC_DEFINE(HAVE_ST_GEN, 1, stat st_gen member) 255test $ac_cv_st_gen = yes && AC_DEFINE(HAVE_ST_GEN, 1, stat st_gen member)
205 256
257AC_CACHE_CHECK(for statx, ac_cv_statx, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
258#include <sys/types.h>
259#include <sys/stat.h>
260#include <unistd.h>
261#include <fcntl.h>
262int res;
263int main (void)
264{
265 struct statx sx;
266 int res;
267 res = statx (AT_FDCWD, ".",
268 AT_EMPTY_PATH | AT_NO_AUTOMOUNT | AT_SYMLINK_NOFOLLOW | AT_STATX_SYNC_AS_STAT | AT_STATX_FORCE_SYNC | AT_STATX_DONT_SYNC,
269 STATX_ALL, &sx);
270 STATX_TYPE; STATX_MODE; STATX_NLINK; STATX_UID; STATX_GID; STATX_ATIME; STATX_MTIME; STATX_CTIME;
271 STATX_INO; STATX_SIZE; STATX_BLOCKS; STATX_BASIC_STATS; STATX_BTIME; STATX_ALL;
272 STATX_ATTR_COMPRESSED; STATX_ATTR_IMMUTABLE; STATX_ATTR_APPEND; STATX_ATTR_NODUMP; STATX_ATTR_ENCRYPTED;
273 return 0;
274}
275]])],ac_cv_statx=yes,ac_cv_statx=no)])
276test $ac_cv_statx = yes && AC_DEFINE(HAVE_STATX, 1, statx(2) is available)
277
278AC_CACHE_CHECK(for accept4, ac_cv_accept4, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
279#include <sys/types.h>
280#include <sys/socket.h>
281int main (void)
282{
283 int res = accept4 (1, (struct sockaddr *)0, (socklen_t)0, SOCK_NONBLOCK | SOCK_CLOEXEC);
284 return 0;
285}
286]])],ac_cv_accept4=yes,ac_cv_accept4=no)])
287test $ac_cv_accept4 = yes && AC_DEFINE(HAVE_ACCEPT4, 1, accept4(2) is available)
288
289AC_CHECK_HEADERS([sys/mount.h])
290AC_CACHE_CHECK(for mount, ac_cv_mount, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
291#include <sys/mount.h>
292int main (void)
293{
294 int res = mount ("path", "path", "fstype", MS_RDONLY, 0);
295 return 0;
296}
297]])],ac_cv_mount=yes,ac_cv_mount=no)])
298test $ac_cv_mount = yes && AC_DEFINE(HAVE_MOUNT, 1, mount is available)
299AC_CACHE_CHECK(for umount, ac_cv_umount, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
300#include <sys/mount.h>
301int main (void)
302{
303 int res = umount ("path");
304 return 0;
305}
306]])],ac_cv_umount=yes,ac_cv_umount=no)])
307test $ac_cv_umount = yes && AC_DEFINE(HAVE_UMOUNT, 1, umount is available)
308AC_CACHE_CHECK(for umount2, ac_cv_umount2, [AC_LINK_IFELSE([AC_LANG_SOURCE([[
309#include <sys/mount.h>
310int main (void)
311{
312 int res = umount2 ("path", MNT_FORCE|MNT_DETACH);
313 return 0;
314}
315]])],ac_cv_umount2=yes,ac_cv_umount2=no)])
316test $ac_cv_umount2 = yes && AC_DEFINE(HAVE_UMOUNT2, 1, umount2 is available)
317
206AC_OUTPUT 318AC_OUTPUT
207 319

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines