diff options
-rw-r--r-- | m4/chdir-long.m4 | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/m4/chdir-long.m4 b/m4/chdir-long.m4 index 73c60e935..10490b8ec 100644 --- a/m4/chdir-long.m4 +++ b/m4/chdir-long.m4 @@ -1,16 +1,30 @@ -#serial 2 +#serial 3 # Written by Jim Meyering. # Use Gnulib's robust chdir function. # It can handle arbitrarily long directory names, which means # that when it is given the name of an existing directory, it # never fails with ENAMETOOLONG. +# Arrange to compile chdir-long.c only on systems that define PATH_MAX. AC_DEFUN([gl_FUNC_CHDIR_LONG], [ AC_LIBSOURCES([chdir-long.c, chdir-long.h]) - AC_LIBOBJ([chdir-long]) - gl_PREREQ_CHDIR_LONG + AC_CACHE_CHECK([whether this system has a definition of PATH_MAX], + gl_have_path_max_definition, + [AC_EGREP_CPP([have_path_max_definition], + [#include <unistd.h> +#include <limits.h> +#ifdef PATH_MAX +have_path_max_definition +#endif], + gl_have_path_max_definition=yes, + gl_have_path_max_definition=no)]) + + if test $gl_have_path_max_definition; then + AC_LIBOBJ([chdir-long]) + gl_PREREQ_CHDIR_LONG + fi ]) AC_DEFUN([gl_PREREQ_CHDIR_LONG], |