From 719432cc36e142b881730d3eb27da3d87cfa490a Mon Sep 17 00:00:00 2001 From: "Derek R. Price" Date: Thu, 14 Jul 2005 14:45:40 +0000 Subject: [PATCH] * m4/glob.m4 (gl_GLOB): Cache glob interface check result. Add check for glob symlink bug. --- m4/ChangeLog | 5 +++++ m4/glob.m4 | 40 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/m4/ChangeLog b/m4/ChangeLog index de300f00a..4b1b8bc47 100644 --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,8 @@ +2005-07-14 Derek Price + + * glob.m4 (gl_GLOB): Cache glob interface check result. Add check for + glob symlink bug. + 2005-07-10 Bruno Haible * size_max.m4 (gl_SIZE_MAX): Cast ~(size_t)0 back to size_t. diff --git a/m4/glob.m4 b/m4/glob.m4 index 8ea213dd7..71d0c0160 100644 --- a/m4/glob.m4 +++ b/m4/glob.m4 @@ -25,12 +25,48 @@ AC_DEFUN([gl_GLOB], AC_CHECK_HEADERS([glob.h], [], [GLOB_H=glob.h]) if test -z "$GLOB_H"; then - AC_COMPILE_IFELSE( + AC_CACHE_CHECK([for GNU glob interface version 1], + [gl_cv_gnu_glob_interface_version_1], +[ AC_COMPILE_IFELSE( [[#include char a[_GNU_GLOB_INTERFACE_VERSION == 1 ? 1 : -1];]], - [], [GLOB_H=glob.h]) + [gl_cv_gnu_glob_interface_version_1=yes], + [gl_cv_gnu_glob_interface_version_1=no])]) + + if test "$gl_cv_gnu_glob_interface_version_1" = "no"; then + GLOB_H=glob.h + fi fi + if test -z "$GLOB_H"; then + AC_CACHE_CHECK([whether glob lists broken symlinks], + [gl_cv_glob_lists_symlinks], +[ if ln -s conf-doesntexist conf$$-globtest 2>/dev/null; then + gl_cv_glob_lists_symlinks=maybe + else + # If we can't make a symlink, then we cannot test this issue. Be + # pessimistic about this. + gl_cv_glob_lists_symlinks=no + fi + + if test $gl_cv_glob_lists_symlinks = maybe; then + AC_RUN_IFELSE( +AC_LANG_PROGRAM( +[[#include +#include ]], +[[glob_t found; +if (glob ("conf*-globtest", 0, NULL, &found) == GLOB_NOMATCH) return 1;]]), + [gl_cv_glob_lists_symlinks=yes], + [gl_cv_glob_lists_symlinks=no], [gl_cv_glob_lists_symlinks=no]) + fi]) + + if test $gl_cv_glob_lists_symlinks = no; then + GLOB_H=glob.h + fi + fi + + rm -f conf$$-globtest + if test -n "$GLOB_H"; then gl_GLOB_SUBSTITUTE fi -- 2.11.0