diff options
author | Bruno Haible <bruno@clisp.org> | 2018-03-16 16:25:02 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2018-03-16 16:25:02 +0100 |
commit | a96f69a534a91f5a97379e32aa62bacb84e65d82 (patch) | |
tree | f276cd150637f6f2ca92d7f22d27c73e74427466 /m4 | |
parent | e9866b991d962bc77ed60f11f2dba08305f5d5a2 (diff) | |
download | gnulib-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.m4 | 64 |
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.*. |