From b5bfe10b5a7adcb72dad1139c6470c92354952c8 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 22 Sep 2011 14:17:57 +0200 Subject: [PATCH] Consolidate all uses of PATH_MAX in *.m4 files. * m4/pathmax.m4 (gl_PATHMAX_SNIPPET, gl_PATHMAX_SNIPPET_PREREQ): New macros. * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Use gl_PATHMAX_SNIPPET_PREREQ and gl_PATHMAX_SNIPPET. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise. * modules/chdir-long (Files): Add m4/pathmax.m4. * modules/getcwd (Files): Likewise. --- ChangeLog | 12 ++++++++++++ m4/chdir-long.m4 | 12 ++++-------- m4/getcwd-abort-bug.m4 | 6 ++++-- m4/getcwd-path-max.m4 | 5 ++++- m4/pathmax.m4 | 32 +++++++++++++++++++++++++++++++- modules/chdir-long | 1 + modules/getcwd | 1 + 7 files changed, 57 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index f6f275093..df9570252 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,17 @@ 2011-09-21 Bruno Haible + Consolidate all uses of PATH_MAX in *.m4 files. + * m4/pathmax.m4 (gl_PATHMAX_SNIPPET, gl_PATHMAX_SNIPPET_PREREQ): New + macros. + * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Use gl_PATHMAX_SNIPPET_PREREQ + and gl_PATHMAX_SNIPPET. + * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise. + * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise. + * modules/chdir-long (Files): Add m4/pathmax.m4. + * modules/getcwd (Files): Likewise. + +2011-09-21 Bruno Haible + ftruncate: Un-deprecate, concentrate on Win32 support. * modules/ftruncate (Status, Notice): Remove sections. (Depends-on): Add largefile. diff --git a/m4/chdir-long.m4 b/m4/chdir-long.m4 index fdba1914d..8c38c04b3 100644 --- a/m4/chdir-long.m4 +++ b/m4/chdir-long.m4 @@ -1,4 +1,4 @@ -#serial 13 +#serial 14 # Use Gnulib's robust chdir function. # It can handle arbitrarily long directory names, which means @@ -15,16 +15,12 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_CHDIR_LONG], [ - AC_CHECK_HEADERS_ONCE([unistd.h]) + AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ]) AC_CACHE_CHECK([whether this system has an arbitrary file name length limit], gl_cv_have_arbitrary_file_name_length_limit, [AC_EGREP_CPP([have_arbitrary_file_name_length_limit], - [ -#if HAVE_UNISTD_H -# include -#endif -#include -#if defined PATH_MAX || defined MAXPATHLEN + gl_PATHMAX_SNIPPET[ +#ifdef PATH_MAX have_arbitrary_file_name_length_limit #endif], gl_cv_have_arbitrary_file_name_length_limit=yes, diff --git a/m4/getcwd-abort-bug.m4 b/m4/getcwd-abort-bug.m4 index 0d3f34f84..60ea03cde 100644 --- a/m4/getcwd-abort-bug.m4 +++ b/m4/getcwd-abort-bug.m4 @@ -1,4 +1,4 @@ -# serial 5 +# serial 6 # Determine whether getcwd aborts when the length of the working directory # name is unusually large. Any length between 4k and 16k trigger the bug # when using glibc-2.4.90-9 or older. @@ -15,6 +15,7 @@ AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG], [ AC_CHECK_DECLS_ONCE([getcwd]) AC_CHECK_HEADERS_ONCE([unistd.h]) + AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ]) AC_CHECK_FUNCS([getpagesize]) AC_CACHE_CHECK([whether getcwd aborts when 4k < cwd_length < 16k], gl_cv_func_getcwd_abort_bug, @@ -32,10 +33,11 @@ AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG], #else /* on Windows with MSVC */ # include #endif -#include #include #include +]gl_PATHMAX_SNIPPET[ + /* Don't get link errors because mkdir is redefined to rpl_mkdir. */ #undef mkdir diff --git a/m4/getcwd-path-max.m4 b/m4/getcwd-path-max.m4 index 65ee49103..6be4b2ce6 100644 --- a/m4/getcwd-path-max.m4 +++ b/m4/getcwd-path-max.m4 @@ -1,4 +1,4 @@ -# serial 17 +# serial 18 # Check for several getcwd bugs with long file names. # If so, arrange to compile the wrapper function. @@ -18,6 +18,7 @@ AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX], AC_CHECK_DECLS_ONCE([getcwd]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([unistd.h]) + AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ]) AC_CACHE_CHECK([whether getcwd handles long file names properly], gl_cv_func_getcwd_path_max, [# Arrange for deletion of the temporary directory this test creates. @@ -39,6 +40,8 @@ AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX], #include #include +]gl_PATHMAX_SNIPPET[ + #ifndef AT_FDCWD # define AT_FDCWD 0 #endif diff --git a/m4/pathmax.m4 b/m4/pathmax.m4 index 0856722c3..4913fa06c 100644 --- a/m4/pathmax.m4 +++ b/m4/pathmax.m4 @@ -1,4 +1,4 @@ -# pathmax.m4 serial 9 +# pathmax.m4 serial 10 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation @@ -10,3 +10,33 @@ AC_DEFUN([gl_PATHMAX], dnl Prerequisites of lib/pathmax.h. AC_CHECK_HEADERS_ONCE([sys/param.h]) ]) + +# Expands to a piece of C program that defines PATH_MAX in the same way as +# "pathmax.h" will do. +AC_DEFUN([gl_PATHMAX_SNIPPET], [[ +/* Arrange to define PATH_MAX, like "pathmax.h" does. */ +#if HAVE_UNISTD_H +# include +#endif +#include +#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN +# include +#endif +#if !defined PATH_MAX && defined MAXPATHLEN +# define PATH_MAX MAXPATHLEN +#endif +#ifdef __hpux +# undef PATH_MAX +# define PATH_MAX 1024 +#endif +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# undef PATH_MAX +# define PATH_MAX 260 +#endif +]]) + +# Prerequisites of gl_PATHMAX_SNIPPET. +AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ], +[ + AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) +]) diff --git a/modules/chdir-long b/modules/chdir-long index a456b1385..7f54760ee 100644 --- a/modules/chdir-long +++ b/modules/chdir-long @@ -5,6 +5,7 @@ Files: lib/chdir-long.h lib/chdir-long.c m4/chdir-long.m4 +m4/pathmax.m4 Depends-on: unistd diff --git a/modules/getcwd b/modules/getcwd index 6a030bac5..c68cd8ea9 100644 --- a/modules/getcwd +++ b/modules/getcwd @@ -6,6 +6,7 @@ lib/getcwd.c m4/getcwd-abort-bug.m4 m4/getcwd-path-max.m4 m4/getcwd.m4 +m4/pathmax.m4 Depends-on: unistd -- 2.11.0