changeset 39776:620c49edf4cf

glob-h: New module. * lib/glob.in.h: Use nearly the usual gnulib idioms for header file replacements. * lib/glob.c: Include <config.h>. * m4/glob_h.m4: New file. * m4/glob.m4 (gl_GLOB): Require gl_GLOB_H. Remove code that is moved to glob_h.m4. Set HAVE_GLOB, REPLACE_GLOB, HAVE_GLOB_PATTERN_P, REPLACE_GLOB_PATTERN_P as appropriate. (gl_PREREQ_GLOB): Don't require AC_C_RESTRICT and AC_USE_SYSTEM_EXTENSIONS, now done through module 'glob-h'. * modules/glob-h: New file. * modules/glob (Files): Remove lib/glob.in.h, lib/glob-libc.h. (Dependencies): Add glob-h. Remove extensions, snippet/*, libc-config, lstat, sys_stat. Change conditions. (configure.ac): Test HAVE_GLOB, REPLACE_GLOB, HAVE_GLOB_PATTERN_P, REPLACE_GLOB_PATTERN_P. Set module indicator. (Makefile.am): Remove code that is moved to glob-h. * doc/posix-headers/glob.texi: Mention the 'glob-h' module. * modules/posixcheck (Depends-on): Add glob-h.
author Bruno Haible <bruno@clisp.org>
date Tue, 07 Aug 2018 10:43:06 +0200
parents 9e0852441f4b
children c2e4326c3f66
files ChangeLog doc/posix-headers/glob.texi lib/glob.c lib/glob.in.h m4/glob.m4 m4/glob_h.m4 modules/glob modules/glob-h modules/posixcheck
diffstat 9 files changed, 302 insertions(+), 106 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Aug 07 02:00:37 2018 +0200
+++ b/ChangeLog	Tue Aug 07 10:43:06 2018 +0200
@@ -1,3 +1,25 @@
+2018-08-07  Bruno Haible  <bruno@clisp.org>
+
+	glob-h: New module.
+	* lib/glob.in.h: Use nearly the usual gnulib idioms for header file
+	replacements.
+	* lib/glob.c: Include <config.h>.
+	* m4/glob_h.m4: New file.
+	* m4/glob.m4 (gl_GLOB): Require gl_GLOB_H. Remove code that is moved to
+	glob_h.m4. Set HAVE_GLOB, REPLACE_GLOB, HAVE_GLOB_PATTERN_P,
+	REPLACE_GLOB_PATTERN_P as appropriate.
+	(gl_PREREQ_GLOB): Don't require AC_C_RESTRICT and
+	AC_USE_SYSTEM_EXTENSIONS, now done through module 'glob-h'.
+	* modules/glob-h: New file.
+	* modules/glob (Files): Remove lib/glob.in.h, lib/glob-libc.h.
+	(Dependencies): Add glob-h. Remove extensions, snippet/*, libc-config,
+	lstat, sys_stat. Change conditions.
+	(configure.ac): Test HAVE_GLOB, REPLACE_GLOB, HAVE_GLOB_PATTERN_P,
+	REPLACE_GLOB_PATTERN_P. Set module indicator.
+	(Makefile.am): Remove code that is moved to glob-h.
+	* doc/posix-headers/glob.texi: Mention the 'glob-h' module.
+	* modules/posixcheck (Depends-on): Add glob-h.
+
 2018-08-06  Bruno Haible  <bruno@clisp.org>
 
 	Force generation of substitute .h file when C++ support is enabled.
--- a/doc/posix-headers/glob.texi	Tue Aug 07 02:00:37 2018 +0200
+++ b/doc/posix-headers/glob.texi	Tue Aug 07 10:43:06 2018 +0200
@@ -3,7 +3,7 @@
 
 POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/basedefs/glob.h.html}
 
-Gnulib module: glob
+Gnulib module: glob-h
 
 Portability problems fixed by Gnulib:
 @itemize
--- a/lib/glob.c	Tue Aug 07 02:00:37 2018 +0200
+++ b/lib/glob.c	Tue Aug 07 10:43:06 2018 +0200
@@ -15,6 +15,10 @@
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
+#ifndef _LIBC
+# include <config.h>
+#endif
+
 #include <glob.h>
 
 #include <errno.h>
--- a/lib/glob.in.h	Tue Aug 07 02:00:37 2018 +0200
+++ b/lib/glob.in.h	Tue Aug 07 10:43:06 2018 +0200
@@ -25,7 +25,7 @@
 @PRAGMA_COLUMNS@
 
 /* The include_next requires a split double-inclusion guard.  */
-#if !@REPLACE_GLOB@
+#if @HAVE_GLOB_H@ && !@REPLACE_GLOB@
 # @INCLUDE_NEXT@ @NEXT_GLOB_H@
 #endif
 
@@ -34,6 +34,10 @@
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
+/* The definition of _GL_ARG_NONNULL is copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
 /* GCC 2.95 and later have "__restrict"; C99 compilers have
    "restrict", and "configure" may have defined "restrict".
    Other compilers use __restrict, __restrict__, and _Restrict, and
@@ -58,7 +62,7 @@
 #endif
 
 
-#if @REPLACE_GLOB@
+#if !@HAVE_GLOB_H@ || @REPLACE_GLOB@
 
 
 /* Preparations for including the standard GNU C Library header.  */
@@ -76,9 +80,17 @@
 #  define __USE_GNU    1
 # endif
 
-# define glob rpl_glob
-# define globfree rpl_globfree
-# define glob_pattern_p rpl_glob_pattern_p
+# if @REPLACE_GLOB@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define glob rpl_glob
+#   define globfree rpl_globfree
+#  endif
+# endif
+# if @REPLACE_GLOB_PATTERN_P@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define glob_pattern_p rpl_glob_pattern_p
+#  endif
+# endif
 # define __glob_pattern_p glob_pattern_p
 
 # define __GLOB_GNULIB 1
@@ -88,32 +100,81 @@
 # include "glob-libc.h"
 
 
-# if defined __cplusplus && defined GNULIB_NAMESPACE
-#  undef glob
-#  undef globfree
-#  undef glob_pattern_p
+#endif
+
+
+#if @GNULIB_GLOB@
+# if @REPLACE_GLOB@
+_GL_FUNCDECL_RPL (glob, int, (const char *_Restrict_ __pattern, int __flags,
+                              _gl_glob_errfunc_fn __errfunc,
+                              glob_t *_Restrict_ __pglob)
+                              _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (glob, int, (const char *_Restrict_ __pattern, int __flags,
                               _gl_glob_errfunc_fn __errfunc,
                               glob_t *_Restrict_ __pglob));
-_GL_CXXALIAS_RPL (globfree, void, (glob_t *__pglob));
-_GL_CXXALIAS_RPL (glob_pattern_p, int, (const char *__pattern, int __quote));
-# endif
-
-#else
-
+# else
+#  if !@HAVE_GLOB@
+_GL_FUNCDECL_SYS (glob, int, (const char *_Restrict_ __pattern, int __flags,
+                              _gl_glob_errfunc_fn __errfunc,
+                              glob_t *_Restrict_ __pglob)
+                              _GL_ARG_NONNULL ((1)));
+#  endif
 _GL_CXXALIAS_SYS (glob, int, (const char *_Restrict_ __pattern, int __flags,
                               _gl_glob_errfunc_fn __errfunc,
                               glob_t *_Restrict_ __pglob));
-_GL_CXXALIAS_SYS (globfree, void, (glob_t *__pglob));
-_GL_CXXALIAS_SYS (glob_pattern_p, int, (const char *__pattern, int __quote));
-
+# endif
+_GL_CXXALIASWARN (glob);
+#elif defined GNULIB_POSIXCHECK
+# undef glob
+# if HAVE_RAW_DECL_GLOB
+_GL_WARN_ON_USE (glob,
+                 "glob is unportable - "
+                 "use gnulib module glob for portability");
+# endif
 #endif
 
-#if 0  /* The C function name is rpl_glob in some cases, not glob.  */
-_GL_CXXALIASWARN (glob);
+#if @GNULIB_GLOB@
+# if @REPLACE_GLOB@
+_GL_FUNCDECL_RPL (globfree, void, (glob_t *__pglob) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (globfree, void, (glob_t *__pglob));
+# else
+#  if !@HAVE_GLOB@
+_GL_FUNCDECL_SYS (globfree, void, (glob_t *__pglob) _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (globfree, void, (glob_t *__pglob));
+# endif
 _GL_CXXALIASWARN (globfree);
+#elif defined GNULIB_POSIXCHECK
+# undef globfree
+# if HAVE_RAW_DECL_GLOBFREE
+_GL_WARN_ON_USE (globfree,
+                 "globfree is unportable - "
+                 "use gnulib module glob for portability");
+# endif
+#endif
+
+#if @GNULIB_GLOB@
+# if @REPLACE_GLOB_PATTERN_P@
+_GL_FUNCDECL_RPL (glob_pattern_p, int, (const char *__pattern, int __quote)
+                                       _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (glob_pattern_p, int, (const char *__pattern, int __quote));
+# else
+#  if !@HAVE_GLOB_PATTERN_P@
+_GL_FUNCDECL_SYS (glob_pattern_p, int, (const char *__pattern, int __quote)
+                                       _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (glob_pattern_p, int, (const char *__pattern, int __quote));
+# endif
 _GL_CXXALIASWARN (glob_pattern_p);
+#elif defined GNULIB_POSIXCHECK
+# undef glob_pattern_p
+# if HAVE_RAW_DECL_GLOB_PATTERN_P
+_GL_WARN_ON_USE (glob_pattern_p,
+                 "glob_pattern_p is unportable - "
+                 "use gnulib module glob for portability");
+# endif
 #endif
 
+
 #endif /* _@GUARD_PREFIX@_GLOB_H */
 #endif /* _@GUARD_PREFIX@_GLOB_H */
--- a/m4/glob.m4	Tue Aug 07 02:00:37 2018 +0200
+++ b/m4/glob.m4	Tue Aug 07 10:43:06 2018 +0200
@@ -1,4 +1,4 @@
-# glob.m4 serial 18
+# glob.m4 serial 19
 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,
@@ -10,15 +10,13 @@
 
 AC_DEFUN([gl_GLOB],
 [
-  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
+  AC_REQUIRE([gl_GLOB_H])
+
+  AC_CHECK_FUNCS_ONCE([glob glob_pattern_p])
+  if test $ac_cv_func_glob = no; then
+    HAVE_GLOB=0
   else
-    REPLACE_GLOB=1
-  fi
 
-  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(
@@ -26,49 +24,55 @@
 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_2" = "no"; then
       REPLACE_GLOB=1
     fi
+
+    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(
+             [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
+         rm -f conf$$-globtest
+        ])
+      if test $gl_cv_glob_lists_symlinks = no; then
+        REPLACE_GLOB=1
+      fi
+    fi
+
   fi
 
-  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([
-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
-       rm -f conf$$-globtest
-      ])
-
-    if test $gl_cv_glob_lists_symlinks = no; then
-      REPLACE_GLOB=1
+  if test $ac_cv_func_glob_pattern_p = no; then
+    HAVE_GLOB_PATTERN_P=0
+  else
+    if test $REPLACE_GLOB = 1; then
+      REPLACE_GLOB_PATTERN_P=1
     fi
   fi
-
-  AC_SUBST([REPLACE_GLOB])
 ])
 
-# Prerequisites of lib/glob.*.
+# Prerequisites of lib/glob.c and lib/globfree.c.
 AC_DEFUN([gl_PREREQ_GLOB],
 [
-  AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])dnl
-  AC_REQUIRE([AC_C_RESTRICT])dnl
-  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])dnl
-  AC_CHECK_HEADERS_ONCE([unistd.h])dnl
-  AC_CHECK_FUNCS_ONCE([getlogin_r getpwnam_r])dnl
+  AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  AC_CHECK_FUNCS_ONCE([getlogin_r getpwnam_r])
 ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m4/glob_h.m4	Tue Aug 07 10:43:06 2018 +0200
@@ -0,0 +1,64 @@
+# glob_h.m4 serial 1
+dnl Copyright (C) 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,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_GLOB_H],
+[
+  AC_REQUIRE([gl_GLOB_H_DEFAULTS])
+  m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])])
+  AC_REQUIRE([AC_C_RESTRICT])
+  AC_CHECK_HEADERS_ONCE([glob.h])
+  gl_CHECK_NEXT_HEADERS([glob.h])
+
+  if test $ac_cv_header_glob_h = yes; then
+    HAVE_GLOB_H=1
+  else
+    HAVE_GLOB_H=0
+  fi
+  AC_SUBST([HAVE_GLOB_H])
+
+  m4_ifdef([gl_POSIXCHECK],
+    [GLOB_H=glob.h],
+    [GLOB_H=''
+     if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then
+       dnl Override <glob.h> always, to support the C++ GNULIB_NAMESPACE.
+       GLOB_H=glob.h
+     else
+       if test $ac_cv_header_glob_h != yes; then
+         dnl Provide a substitute <glob.h> file.
+         GLOB_H=glob.h
+       fi
+     fi
+    ])
+  AC_SUBST([GLOB_H])
+  AM_CONDITIONAL([GL_GENERATE_GLOB_H], [test -n "$GLOB_H"])
+
+  dnl Check for declarations of anything we want to poison if the
+  dnl corresponding gnulib module is not in use.
+  gl_WARN_ON_USE_PREPARE([[#include <glob.h>
+    ]],
+    [glob globfree glob_pattern_p])
+])
+
+AC_DEFUN([gl_GLOB_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_GLOB_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+  dnl Define it also as a C macro, for the benefit of the unit tests.
+  gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_GLOB_H_DEFAULTS],
+[
+  GNULIB_GLOB=0;             AC_SUBST([GNULIB_GLOB])
+  dnl Assume POSIX and GNU behavior unless another module says otherwise.
+  HAVE_GLOB=1;               AC_SUBST([HAVE_GLOB])
+  HAVE_GLOB_PATTERN_P=1;     AC_SUBST([HAVE_GLOB_PATTERN_P])
+  REPLACE_GLOB=0;            AC_SUBST([REPLACE_GLOB])
+  REPLACE_GLOB_PATTERN_P=0;  AC_SUBST([REPLACE_GLOB_PATTERN_P])
+])
--- a/modules/glob	Tue Aug 07 02:00:37 2018 +0200
+++ b/modules/glob	Tue Aug 07 10:43:06 2018 +0200
@@ -3,8 +3,6 @@
 pattern, with GNU extensions.
 
 Files:
-lib/glob.in.h
-lib/glob-libc.h
 lib/glob.c
 lib/glob_internal.h
 lib/glob_pattern_p.c
@@ -12,58 +10,40 @@
 m4/glob.m4
 
 Depends-on:
+glob-h
 c99
-extensions
 largefile
-snippet/c++defs
-alloca          [test $REPLACE_GLOB = 1]
-builtin-expect  [test $REPLACE_GLOB = 1]
-closedir        [test $REPLACE_GLOB = 1]
-d-type          [test $REPLACE_GLOB = 1]
-flexmember      [test $REPLACE_GLOB = 1]
-fnmatch         [test $REPLACE_GLOB = 1]
-getlogin_r      [test $REPLACE_GLOB = 1]
-libc-config     [test $REPLACE_GLOB = 1]
-lstat           [test $REPLACE_GLOB = 1]
-memchr          [test $REPLACE_GLOB = 1]
-mempcpy         [test $REPLACE_GLOB = 1]
-opendir         [test $REPLACE_GLOB = 1]
-readdir         [test $REPLACE_GLOB = 1]
-scratch_buffer  [test $REPLACE_GLOB = 1]
-stdbool         [test $REPLACE_GLOB = 1]
-stdint          [test $REPLACE_GLOB = 1]
-strdup          [test $REPLACE_GLOB = 1]
-sys_stat        [test $REPLACE_GLOB = 1]
-unistd          [test $REPLACE_GLOB = 1]
-malloc-posix    [test $REPLACE_GLOB = 1]
+alloca          [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+builtin-expect  [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+closedir        [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+d-type          [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+flexmember      [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+fnmatch         [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+getlogin_r      [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+memchr          [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+mempcpy         [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+opendir         [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+readdir         [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+scratch_buffer  [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+stdbool         [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+stdint          [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+strdup          [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+unistd          [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
+malloc-posix    [test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1]
 
 configure.ac:
 gl_GLOB
-if test $REPLACE_GLOB = 1; then
+if test $HAVE_GLOB = 0 || test $REPLACE_GLOB = 1; then
   AC_LIBOBJ([glob])
-  AC_LIBOBJ([glob_pattern_p])
   AC_LIBOBJ([globfree])
   gl_PREREQ_GLOB
 fi
+if test $HAVE_GLOB_PATTERN_P = 0 || test $REPLACE_GLOB_PATTERN_P = 1; then
+  AC_LIBOBJ([glob_pattern_p])
+fi
+gl_GLOB_MODULE_INDICATOR([glob])
 
 Makefile.am:
-BUILT_SOURCES += glob.h
-
-# We need the following in order to create <glob.h>.
-glob.h: glob.in.h $(top_builddir)/config.status $(CXXDEFS_H)
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
-	      -e 's|@''REPLACE_GLOB''@|$(REPLACE_GLOB)|g' \
-	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-	      -e 's|@''NEXT_GLOB_H''@|$(NEXT_GLOB_H)|g' \
-	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-	      < $(srcdir)/glob.in.h; \
-	} > $@-t && \
-	mv -f $@-t $@
-MOSTLYCLEANFILES += glob.h glob.h-t
 
 Include:
 <glob.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/glob-h	Tue Aug 07 10:43:06 2018 +0200
@@ -0,0 +1,60 @@
+Description:
+A <glob.h> that conforms to POSIX.
+
+Files:
+lib/glob.in.h
+lib/glob-libc.h
+m4/glob_h.m4
+
+Depends-on:
+extensions
+include_next
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
+libc-config
+lstat
+sys_stat
+
+configure.ac:
+gl_GLOB_H
+
+Makefile.am:
+BUILT_SOURCES += $(GLOB_H)
+
+# We need the following in order to create <glob.h>.
+if GL_GENERATE_GLOB_H
+glob.h: glob.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+	$(AM_V_GEN)rm -f $@-t $@ && \
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+	      -e 's|@''HAVE_GLOB_H''@|$(HAVE_GLOB_H)|g' \
+	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+	      -e 's|@''NEXT_GLOB_H''@|$(NEXT_GLOB_H)|g' \
+	      -e 's/@''GNULIB_GLOB''@/$(GNULIB_GLOB)/g' \
+	      -e 's|@''HAVE_GLOB''@|$(HAVE_GLOB)|g' \
+	      -e 's|@''HAVE_GLOB_PATTERN_P''@|$(HAVE_GLOB_PATTERN_P)|g' \
+	      -e 's|@''REPLACE_GLOB''@|$(REPLACE_GLOB)|g' \
+	      -e 's|@''REPLACE_GLOB_PATTERN_P''@|$(REPLACE_GLOB_PATTERN_P)|g' \
+	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+	      < $(srcdir)/glob.in.h; \
+	} > $@-t && \
+	mv $@-t $@
+else
+glob.h: $(top_builddir)/config.status
+	rm -f $@
+endif
+MOSTLYCLEANFILES += glob.h glob.h-t
+
+Include:
+<glob.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+all, glibc
--- a/modules/posixcheck	Tue Aug 07 02:00:37 2018 +0200
+++ b/modules/posixcheck	Tue Aug 07 10:43:06 2018 +0200
@@ -12,6 +12,7 @@
 dirent
 fcntl-h
 fnmatch-h
+glob-h
 iconv-h
 inttypes-incomplete
 langinfo