From 0626021e13c6aaf9db1bf34a10e8186867e30901 Mon Sep 17 00:00:00 2001 From: yugui Date: Thu, 3 Jan 2013 15:39:10 +0000 Subject: * io.c (rb_cloexec_fcntl_dupfd): Fix failures in bootstrap_test/test_io.rb. NativeClient does not support F_DUPFD but supports dup2(2). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ io.c | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0ae3fc46be..3ad3af7602 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri Jan 4 00:29:40 2013 Yuki Yugui Sonoda + + * io.c (rb_cloexec_fcntl_dupfd): Fix failures in + bootstrap_test/test_io.rb. NativeClient does not support F_DUPFD + but supports dup2(2). + Thu Jan 3 17:46:50 2013 Kouhei Sutou * lib/rexml/element.rb (REXML::Elements#add): Remove too much diff --git a/io.c b/io.c index f75251b10e..2bbce9f330 100644 --- a/io.c +++ b/io.c @@ -298,7 +298,7 @@ rb_cloexec_fcntl_dupfd(int fd, int minfd) { int ret; -#if defined(HAVE_FCNTL) && defined(F_DUPFD_CLOEXEC) +#if defined(HAVE_FCNTL) && defined(F_DUPFD_CLOEXEC) && !defined(__native_client__) static int try_dupfd_cloexec = 1; if (try_dupfd_cloexec) { ret = fcntl(fd, F_DUPFD_CLOEXEC, minfd); @@ -318,8 +318,10 @@ rb_cloexec_fcntl_dupfd(int fd, int minfd) else { ret = fcntl(fd, F_DUPFD, minfd); } -#else +#elif defined(HAVE_FCNTL) && !defined(__native_client__) ret = fcntl(fd, F_DUPFD, minfd); +#else + ret = dup2(fd, minfd); #endif if (ret == -1) return -1; rb_maygvl_fd_fix_cloexec(ret); -- cgit v1.2.3