system/FileDescriptor: make pipe2() mandatory on Linux

This commit is contained in:
Max Kellermann 2018-08-20 17:04:43 +02:00
parent 5487d40be9
commit 795baed3f5
2 changed files with 4 additions and 4 deletions

View File

@ -241,7 +241,7 @@ AC_SEARCH_LIBS([socket], [network socket])
AC_SEARCH_LIBS([gethostbyname], [nsl])
if test x$host_is_linux = xyes; then
AC_CHECK_FUNCS(pipe2 accept4 linkat)
AC_CHECK_FUNCS(accept4 linkat)
fi
AC_CHECK_FUNCS(getpwnam_r getpwuid_r)

View File

@ -120,7 +120,7 @@ FileDescriptor::CreatePipe(FileDescriptor &r, FileDescriptor &w) noexcept
{
int fds[2];
#ifdef HAVE_PIPE2
#ifdef __linux__
const int flags = O_CLOEXEC;
const int result = pipe2(fds, flags);
#elif defined(_WIN32)
@ -145,7 +145,7 @@ FileDescriptor::CreatePipeNonBlock(FileDescriptor &r,
{
int fds[2];
#ifdef HAVE_PIPE2
#ifdef __linux__
const int flags = O_CLOEXEC|O_NONBLOCK;
const int result = pipe2(fds, flags);
#else
@ -158,7 +158,7 @@ FileDescriptor::CreatePipeNonBlock(FileDescriptor &r,
r = FileDescriptor(fds[0]);
w = FileDescriptor(fds[1]);
#ifndef HAVE_PIPE2
#ifndef __linux__
r.SetNonBlocking();
w.SetNonBlocking();
#endif