X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=m4%2Fgetcwd-path-max.m4;h=14784999d454a312d08a637dc3cb59489eb12919;hb=05a96e0bca75d5b01c337cd7dacd04507d6e6497;hp=74570dfffa6ca9c56fba4e14ca8019e0a79ba969;hpb=359c0a71713e606f440d40f55a43c77349df2aaa;p=gnulib.git diff --git a/m4/getcwd-path-max.m4 b/m4/getcwd-path-max.m4 index 74570dfff..14784999d 100644 --- a/m4/getcwd-path-max.m4 +++ b/m4/getcwd-path-max.m4 @@ -1,4 +1,4 @@ -#serial 9 +# serial 14 # Check for several getcwd bugs with long file names. # If so, arrange to compile the wrapper function. @@ -6,7 +6,7 @@ # I've heard that this is due to a Linux kernel bug, and that it has # been fixed between 2.4.21-pre3 and 2.4.21-pre4. */ -# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2003-2007, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,8 +15,7 @@ AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX], [ - AC_CHECK_DECLS_ONCE(getcwd) - AC_CHECK_HEADERS_ONCE(fcntl.h) + AC_CHECK_DECLS_ONCE([getcwd]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CACHE_CHECK([whether getcwd handles long file names properly], gl_cv_func_getcwd_path_max, @@ -32,9 +31,7 @@ AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX], #include #include #include -#if HAVE_FCNTL_H -# include -#endif +#include #ifndef AT_FDCWD # define AT_FDCWD 0 @@ -64,7 +61,7 @@ AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX], #define BUF_SLOP 20 int -main (void) +main () { #ifndef PATH_MAX /* The Hurd doesn't define this, so getcwd can't exhibit the bug -- @@ -160,13 +157,14 @@ main (void) { size_t i; - /* Unlink first, in case the chdir failed. */ - unlink (DIR_NAME); + /* Try rmdir first, in case the chdir failed. */ + rmdir (DIR_NAME); for (i = 0; i <= n_chdirs; i++) { if (chdir ("..") < 0) break; - rmdir (DIR_NAME); + if (rmdir (DIR_NAME) != 0) + break; } } @@ -183,7 +181,7 @@ main (void) ]) case $gl_cv_func_getcwd_path_max in no,*) - AC_DEFINE([HAVE_PARTLY_WORKING_GETCWD], 1, + AC_DEFINE([HAVE_PARTLY_WORKING_GETCWD], [1], [Define to 1 if getcwd works, except it sometimes fails when it shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT. If __GETCWD_PREFIX is not defined, it doesn't matter whether HAVE_PARTLY_WORKING_GETCWD