summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-04 23:23:40 +0000
committerkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-04 23:23:40 +0000
commit753f68cf20e1492cf980106027dd1f0969d546f2 (patch)
tree27eb678a081ae31c350cc3c024b18fd319230454 /io.c
parentda9fe1c4528ef8b25f099345428a30b99bdf76ee (diff)
* io.c (rb_cloexec_fcntl_dupfd): improve #ifdef condition.
* io.c (rb_maygvl_fd_fix_cloexec): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/io.c b/io.c
index 2bbce9f330..ea52db0a35 100644
--- a/io.c
+++ b/io.c
@@ -168,7 +168,7 @@ void
rb_maygvl_fd_fix_cloexec(int fd)
{
/* MinGW don't have F_GETFD and FD_CLOEXEC. [ruby-core:40281] */
-#if defined(F_GETFD) && !defined(__native_client__)
+#if defined(HAVE_FCNTL) && defined(F_GETFD) && defined(F_SETFD) && defined(FD_CLOEXEC) && !defined(__native_client__)
int flags, flags2, ret;
flags = fcntl(fd, F_GETFD); /* should not fail except EBADF. */
if (flags == -1) {
@@ -298,7 +298,7 @@ rb_cloexec_fcntl_dupfd(int fd, int minfd)
{
int ret;
-#if defined(HAVE_FCNTL) && defined(F_DUPFD_CLOEXEC) && !defined(__native_client__)
+#if defined(HAVE_FCNTL) && defined(F_DUPFD_CLOEXEC) && defined(F_DUPFD) && !defined(__native_client__)
static int try_dupfd_cloexec = 1;
if (try_dupfd_cloexec) {
ret = fcntl(fd, F_DUPFD_CLOEXEC, minfd);
@@ -318,7 +318,7 @@ rb_cloexec_fcntl_dupfd(int fd, int minfd)
else {
ret = fcntl(fd, F_DUPFD, minfd);
}
-#elif defined(HAVE_FCNTL) && !defined(__native_client__)
+#elif defined(HAVE_FCNTL) && defined(F_DUPFD) && !defined(__native_client__)
ret = fcntl(fd, F_DUPFD, minfd);
#else
ret = dup2(fd, minfd);