changeset 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 46baff75943d
children 89e7b0355fd3
files ChangeLog m4/dup.m4
diffstat 2 files changed, 11 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-09-24  Bruno Haible  <bruno@clisp.org>
+
+	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.
+
 2011-09-24  Bruno Haible  <bruno@clisp.org>
 
 	Tests for function fwrite().
--- 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], [