# Find the best function to set timestamps.
AC_CHECK_FUNCS([futimens futimes futimesat utimes utime], [break])
-# This is nice to have but not mandatory.
-AC_CHECK_FUNCS([posix_fadvise])
+# These are nice to have but not mandatory.
+AC_CHECK_FUNCS([posix_fadvise pipe2])
TUKLIB_PROGNAME
TUKLIB_INTEGER
// we are root.
warn_fchown = geteuid() == 0;
- // Create a pipe for the self-pipe trick.
+ // Create a pipe for the self-pipe trick. If pipe2() is available,
+ // we can avoid the fcntl() calls.
+# ifdef HAVE_PIPE2
+ if (pipe2(user_abort_pipe, O_NONBLOCK))
+ message_fatal(_("Error creating a pipe: %s"),
+ strerror(errno));
+# else
if (pipe(user_abort_pipe))
message_fatal(_("Error creating a pipe: %s"),
strerror(errno));
message_fatal(_("Error creating a pipe: %s"),
strerror(errno));
}
+# endif
#endif
#ifdef __DJGPP__