diff m4/dup.m4 @ 15774:b5685d79081c

dup: Simplify autoconf test. * m4/dup.m4 (gl_FUNC_DUP): Don't run a test program. Instead, just rely on gl_MSVC_INVAL's result.
author Bruno Haible <bruno@clisp.org>
date Sat, 24 Sep 2011 17:42:03 +0200
parents 45b9be95a543
children 8250f2777afc
line wrap: on
line diff
--- a/m4/dup.m4
+++ b/m4/dup.m4
@@ -1,4 +1,4 @@
-# dup.m4 serial 1
+# dup.m4 serial 2
 dnl Copyright (C) 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,
@@ -7,35 +7,10 @@
 AC_DEFUN([gl_FUNC_DUP],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_CHECK_HEADERS_ONCE([unistd.h])
-  AC_CACHE_CHECK([whether dup supports bad arguments], [gl_cv_func_dup_works],
-    [AC_RUN_IFELSE(
-       [AC_LANG_PROGRAM([[
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#else
-# include <io.h>
-#endif
-#include <errno.h>
-]],
-          [[if (dup (-1) != -1)
-              return 1;
-            if (errno != EBADF)
-              return 2;
-            return 0;
-          ]])],
-       [gl_cv_func_dup_works=yes],
-       [gl_cv_func_dup_works=no],
-       [case "$host_os" in
-          mingw*) gl_cv_func_dup_works="guessing no" ;;
-          *)      gl_cv_func_dup_works="guessing yes" ;;
-        esac
-       ])
-    ])
-  case "$gl_cv_func_dup_works" in
-    *no) REPLACE_DUP=1 ;;
-  esac
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_DUP=1
+  fi
   dnl Replace dup() for supporting the gnulib-defined fchdir() function,
   dnl to keep fchdir's bookkeeping up-to-date.
   m4_ifdef([gl_FUNC_FCHDIR], [