--- IO-AIO/configure.ac 2019/03/18 23:52:09 1.13 +++ IO-AIO/configure.ac 2022/09/05 08:43:58 1.18 @@ -70,6 +70,31 @@ dnl readv / preadv, vmsplice AC_CHECK_HEADERS([sys/uio.h]) +AC_CACHE_CHECK([for siginfo_t], ac_cv_siginfo_t, [AC_LINK_IFELSE([AC_LANG_SOURCE([ +#include +int main (void) +{ + siginfo_t si; + si.si_code; + si.si_pid; + si.si_uid; + si.si_value.sival_int; + si.si_value.sival_ptr; + return 0; +} +])],ac_cv_siginfo_t=yes,ac_cv_siginfo_t=no)]) +test $ac_cv_siginfo_t = yes && AC_DEFINE(HAVE_SIGINFO_T, 1, have siginfo_t in signal.h) + +AC_CACHE_CHECK([for unix-style syscall interface], ac_cv_syscall, [AC_LINK_IFELSE([AC_LANG_SOURCE([ +#include +#include +int main (void) +{ + long res = syscall (SYS_exit, 0); + return 0; +} +])],ac_cv_syscall=yes,ac_cv_syscall=no)]) +test $ac_cv_syscall = yes && AC_DEFINE(HAVE_SYSCALL, 1, unix syscall interface) AC_CACHE_CHECK([for splice, vmsplice and tee], ac_cv_linux_splice, [AC_LINK_IFELSE([AC_LANG_SOURCE([ #include @@ -109,7 +134,7 @@ ]])],ac_cv_eventfd=yes,ac_cv_eventfd=no)]) test $ac_cv_eventfd = yes && AC_DEFINE(HAVE_EVENTFD, 1, eventfd(2) is available) -AC_CACHE_CHECK(for timerfd, ac_cv_timerfd, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ +AC_CACHE_CHECK(for timerfd_*, ac_cv_timerfd, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ #include int main (void) { @@ -123,6 +148,16 @@ ]])],ac_cv_timerfd=yes,ac_cv_timerfd=no)]) test $ac_cv_timerfd = yes && AC_DEFINE(HAVE_TIMERFD, 1, timerfd_*(2) are available) +AC_CACHE_CHECK(for memfd_create, ac_cv_memfd_create, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include +int main (void) +{ + int res = memfd_create ("name", MFD_CLOEXEC | MFD_ALLOW_SEALING); + return 0; +} +]])],ac_cv_memfd_create=yes,ac_cv_memfd_create=no)]) +test $ac_cv_memfd_create = yes && AC_DEFINE(HAVE_MEMFD_CREATE, 1, memfd_create(2) is available) + AC_CACHE_CHECK(for copy_file_range, ac_cv_copy_file_range, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ #include #include @@ -224,5 +259,40 @@ ]])],ac_cv_statx=yes,ac_cv_statx=no)]) test $ac_cv_statx = yes && AC_DEFINE(HAVE_STATX, 1, statx(2) is available) +AC_CACHE_CHECK(for accept4, ac_cv_accept4, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include +#include +int main (void) +{ + int res; + res = accept4 (1, (struct sockaddr *)0, (socklen_t)0, SOCK_NONBLOCK | SOCK_CLOEXEC); + return 0; +} +]])],ac_cv_accept4=yes,ac_cv_accept4=no)]) +test $ac_cv_accept4 = yes && AC_DEFINE(HAVE_ACCEPT4, 1, accept4(2) is available) + +AC_CHECK_HEADERS([sys/mount.h]) +AC_CACHE_CHECK(for mount/umount, ac_cv_mount, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include +int main (void) +{ + int res; + res = mount ("path", "path", "fstype", MS_RDONLY, 0); + res = umount ("path"); + return 0; +} +]])],ac_cv_mount=yes,ac_cv_mount=no)]) +test $ac_cv_mount = yes && AC_DEFINE(HAVE_MOUNT, 1, mount/umount are available) +AC_CACHE_CHECK(for umount2, ac_cv_umount2, [AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include +int main (void) +{ + int res; + res = umount2 ("path", MNT_FORCE|MNT_DETACH); + return 0; +} +]])],ac_cv_umount2=yes,ac_cv_umount2=no)]) +test $ac_cv_umount2 = yes && AC_DEFINE(HAVE_UMOUNT2, 1, umount2 is available) + AC_OUTPUT