summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2018-03-16 16:25:02 +0100
committerBruno Haible <bruno@clisp.org>2018-03-16 16:25:02 +0100
commita96f69a534a91f5a97379e32aa62bacb84e65d82 (patch)
treef276cd150637f6f2ca92d7f22d27c73e74427466 /m4
parente9866b991d962bc77ed60f11f2dba08305f5d5a2 (diff)
downloadgnulib-a96f69a534a91f5a97379e32aa62bacb84e65d82.tar.gz
glob: Don't compile replacements on recent glibc systems.
* lib/glob.in.h: Use the usual idiom for the double-inclusion guard. If REPLACE_GLOB is 0, include the system's <glob.h> and use _GL_CXXALIAS_SYS. * m4/glob.m4 (gl_GLOB): Set REPLACE_GLOB instead of GLOB_H. Accept _GNU_GLOB_INTERFACE_VERSION 2 as well. Delete the file conf$$-globtest inside the AC_RUN_IFELSE block. Remove GL_GENERATE_GLOB_H conditional. * modules/glob (Dependencies): Test REPLACE_GLOB instead of GLOB_H. Remove snippet/warn-on-use. (configure.ac): Test REPLACE_GLOB instead of GLOB_H. (Makefile.am): Create glob.h always. Update list of substitutions in glob.h. Don't depend on $(WARN_ON_USE_H).
Diffstat (limited to 'm4')
-rw-r--r--m4/glob.m464
1 files changed, 34 insertions, 30 deletions
diff --git a/m4/glob.m4 b/m4/glob.m4
index 9dedb41306..37cb91745c 100644
--- a/m4/glob.m4
+++ b/m4/glob.m4
@@ -1,4 +1,4 @@
-# glob.m4 serial 16
+# glob.m4 serial 18
dnl Copyright (C) 2005-2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -9,54 +9,58 @@ dnl with or without modifications, as long as this notice is preserved.
# always include <glob.h> for the glob prototypes.
AC_DEFUN([gl_GLOB],
-[ GLOB_H=
- AC_CHECK_HEADERS([glob.h], [], [GLOB_H=glob.h])
+[
+ dnl <glob.h> is always overridden, because of the C++ GNULIB_NAMESPACE.
+ gl_CHECK_NEXT_HEADERS([glob.h])
+ if test $ac_cv_header_glob_h = yes; then
+ REPLACE_GLOB=0
+ else
+ REPLACE_GLOB=1
+ fi
- if test -z "$GLOB_H"; then
- AC_CACHE_CHECK([for GNU glob interface version 1],
- [gl_cv_gnu_glob_interface_version_1],
+ if test $REPLACE_GLOB = 0; then
+ AC_CACHE_CHECK([for GNU glob interface version 1 or 2],
+ [gl_cv_gnu_glob_interface_version_1_2],
[ AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[[#include <gnu-versions.h>
-char a[_GNU_GLOB_INTERFACE_VERSION == 1 ? 1 : -1];]])],
- [gl_cv_gnu_glob_interface_version_1=yes],
- [gl_cv_gnu_glob_interface_version_1=no])])
+char a[_GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2 ? 1 : -1];]])],
+ [gl_cv_gnu_glob_interface_version_1_2=yes],
+ [gl_cv_gnu_glob_interface_version_1_2=no])])
- if test "$gl_cv_gnu_glob_interface_version_1" = "no"; then
- GLOB_H=glob.h
+ if test "$gl_cv_gnu_glob_interface_version_1_2" = "no"; then
+ REPLACE_GLOB=1
fi
fi
- if test -z "$GLOB_H"; then
+ if test $REPLACE_GLOB = 0; 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([
+ [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 <stddef.h>
#include <glob.h>]],
[[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])
+ [gl_cv_glob_lists_symlinks=yes],
+ [gl_cv_glob_lists_symlinks=no], [gl_cv_glob_lists_symlinks=no])
+ fi
+ rm -f conf$$-globtest
+ ])
if test $gl_cv_glob_lists_symlinks = no; then
- GLOB_H=glob.h
+ REPLACE_GLOB=1
fi
fi
- rm -f conf$$-globtest
-
- AC_SUBST([GLOB_H])
- AM_CONDITIONAL([GL_GENERATE_GLOB_H], [test -n "$GLOB_H"])
+ AC_SUBST([REPLACE_GLOB])
])
# Prerequisites of lib/glob.*.