X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Ffcntl.m4;h=5481cae4d807cd6c89e4428d7273978322af7bf5;hb=533101a268dc5015a140ff4695d8eeb04fbe57b6;hp=3a86f2ca49b286826fee977da79da1fc86100eff;hpb=d60f3b0c6b0f93a601acd1cfd3923f94ca05abb0;p=gnulib.git diff --git a/m4/fcntl.m4 b/m4/fcntl.m4 index 3a86f2ca4..5481cae4d 100644 --- a/m4/fcntl.m4 +++ b/m4/fcntl.m4 @@ -1,5 +1,5 @@ -# fcntl.m4 serial 3 -dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. +# fcntl.m4 serial 5 +dnl Copyright (C) 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -24,11 +24,16 @@ AC_DEFUN([gl_FUNC_FCNTL], gl_REPLACE_FCNTL else dnl cygwin 1.5.x F_DUPFD has wrong errno, and allows negative target + dnl haiku alpha 2 F_DUPFD has wrong errno AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly], [gl_cv_func_fcntl_f_dupfd_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include -]], [[return fcntl (0, F_DUPFD, -1) != -1; +#include +]], [[int result = 0; + if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; + if (errno != EINVAL) result |= 2; + return result; ]])], [gl_cv_func_fcntl_f_dupfd_works=yes], [gl_cv_func_fcntl_f_dupfd_works=no], @@ -68,6 +73,14 @@ choke me dnl No witness macro needed for this bug. fi fi + dnl Replace fcntl() 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 + gl_REPLACE_FCNTL + fi + ]) ]) AC_DEFUN([gl_REPLACE_FCNTL], @@ -79,5 +92,4 @@ AC_DEFUN([gl_REPLACE_FCNTL], else REPLACE_FCNTL=1 fi - AC_LIBOBJ([fcntl]) ])