Mercurial > hg > octave-nkf > gnulib-hg
changeset 17345:840c32a600aa
getcwd: support coreutils better
Like strtod, getcwd incorrectly referred to HAVE_RAW_DECL_GETCWD,
but this might not be correct in coreutils, which disables
the raw decl checks. Problem reported by Nagendra in
<http://bugs.gnu.org/10305#192>.
* lib/getcwd.c (__getcwd): Do not depend on HAVE_RAW_DECL_GETCWD.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX):
Test the getcwd function, not any macro, since getcwd.c wants the
function.
* m4/getcwd.m4 (gl_FUNC_GETCWD):
Don't define HAVE_MINIMALLY_WORKING_GETCWD if the code doesn't
compile, as might happen if there's a macro but no function.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Wed, 20 Feb 2013 00:04:35 -0800 |
parents | 892b14640382 |
children | e27f620a8d36 |
files | ChangeLog lib/getcwd.c m4/getcwd-path-max.m4 m4/getcwd.m4 |
diffstat | 4 files changed, 18 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,18 @@ 2013-02-19 Paul Eggert <eggert@cs.ucla.edu> + getcwd: support coreutils better + Like strtod, getcwd incorrectly referred to HAVE_RAW_DECL_GETCWD, + but this might not be correct in coreutils, which disables + the raw decl checks. Problem reported by Nagendra in + <http://bugs.gnu.org/10305#192>. + * lib/getcwd.c (__getcwd): Do not depend on HAVE_RAW_DECL_GETCWD. + * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): + Test the getcwd function, not any macro, since getcwd.c wants the + function. + * m4/getcwd.m4 (gl_FUNC_GETCWD): + Don't define HAVE_MINIMALLY_WORKING_GETCWD if the code doesn't + compile, as might happen if there's a macro but no function. + strtod: support coreutils better * lib/strtod.c (underlying_strtod): Just invoke the underlying strtod. HAVE_RAW_DECL_STRTOD might not be correct in coreutils, which
--- a/lib/getcwd.c +++ b/lib/getcwd.c @@ -135,7 +135,7 @@ size_t allocated = size; size_t used; -#if HAVE_RAW_DECL_GETCWD && HAVE_MINIMALLY_WORKING_GETCWD +#if HAVE_MINIMALLY_WORKING_GETCWD /* If AT_FDCWD is not defined, the algorithm below is O(N**2) and this is much slower than the system getcwd (at least on GNU/Linux). So trust the system getcwd's results unless they
--- a/m4/getcwd-path-max.m4 +++ b/m4/getcwd-path-max.m4 @@ -52,6 +52,9 @@ # define is_ENAMETOOLONG(x) 0 #endif +/* Use the getcwd function, not any macro. */ +#undef getcwd + /* Don't get link errors because mkdir is redefined to rpl_mkdir. */ #undef mkdir
--- a/m4/getcwd.m4 +++ b/m4/getcwd.m4 @@ -123,7 +123,7 @@ dnl Define HAVE_MINIMALLY_WORKING_GETCWD and HAVE_PARTLY_WORKING_GETCWD dnl if appropriate. case "$gl_cv_func_getcwd_path_max" in - "no, it has the AIX bug") ;; + "no"|"no, it has the AIX bug") ;; *) AC_DEFINE([HAVE_MINIMALLY_WORKING_GETCWD], [1], [Define to 1 if getcwd minimally works, that is, its result can be