X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fdup2.m4;h=5c2cc9674c1f467672b3c25d9dafb0ee6ceb6514;hb=f55bb4f13cc783805ac42d4ecf6e75999902b879;hp=b8794c27b0426b218123207b388609e6eacb81ec;hpb=4a2a66e4454be259d3c6c29a34e625dc1b70bd7f;p=gnulib.git diff --git a/m4/dup2.m4 b/m4/dup2.m4 index b8794c27b..5c2cc9674 100644 --- a/m4/dup2.m4 +++ b/m4/dup2.m4 @@ -1,4 +1,4 @@ -#serial 12 +#serial 14 dnl Copyright (C) 2002, 2005, 2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -12,12 +12,10 @@ AC_DEFUN([gl_FUNC_DUP2], AC_CHECK_FUNCS_ONCE([dup2]) if test $ac_cv_func_dup2 = no; then HAVE_DUP2=0 - AC_LIBOBJ([dup2]) fi ], [ AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.]) ]) - AC_CHECK_FUNCS_ONCE([fcntl]) if test $HAVE_DUP2 = 1; then AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], [AC_RUN_IFELSE([ @@ -25,13 +23,13 @@ AC_DEFUN([gl_FUNC_DUP2], #include #include ]], [int result = 0; -#if HAVE_FCNTL +#ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; -#endif HAVE_FCNTL +#endif if (dup2 (1, 1) == 0) result |= 2; -#if HAVE_FCNTL +#ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif @@ -61,16 +59,15 @@ AC_DEFUN([gl_FUNC_DUP2], esac]) ]) if test "$gl_cv_func_dup2_works" = no; then - gl_REPLACE_DUP2 + REPLACE_DUP2=1 fi fi -]) - -AC_DEFUN([gl_REPLACE_DUP2], -[ - AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - if test $ac_cv_func_dup2 = yes; then - REPLACE_DUP2=1 - fi - AC_LIBOBJ([dup2]) + dnl Replace dup2() for supporting the gnulib-defined fchdir() function, + dnl to keep fchdir's bookkeeping up-to-date. + m4_ifdef([gl_FUNC_FCHDIR], [ + gl_TEST_FCHDIR + if test $HAVE_FCHDIR = 0; then + REPLACE_DUP2=1 + fi + ]) ])