summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog213
-rw-r--r--Makefile89
-rw-r--r--lib/acl-internal.h8
-rw-r--r--lib/acl.h5
-rw-r--r--lib/alignalloc.h9
-rw-r--r--lib/alignof.h5
-rw-r--r--lib/argmatch.h5
-rw-r--r--lib/argp-fmtstream.h9
-rw-r--r--lib/argp.h8
-rw-r--r--lib/argv-iter.h5
-rw-r--r--lib/arpa_inet.in.h5
-rw-r--r--lib/attribute.h15
-rw-r--r--lib/backupfile.h5
-rw-r--r--lib/base32.h5
-rw-r--r--lib/base64.h5
-rw-r--r--lib/basename-lgpl.h5
-rw-r--r--lib/binary-io.h8
-rw-r--r--lib/bitrotate.h8
-rw-r--r--lib/bitset.h5
-rw-r--r--lib/bitsetv.h5
-rw-r--r--lib/c-ctype.h4
-rw-r--r--lib/c-snprintf.h5
-rw-r--r--lib/c-stack.h9
-rw-r--r--lib/c-strcase.h5
-rw-r--r--lib/c-vasnprintf.h5
-rw-r--r--lib/c-vasprintf.h5
-rw-r--r--lib/c-vsnprintf.h5
-rw-r--r--lib/c-xvasprintf.h5
-rw-r--r--lib/canon-host.h5
-rw-r--r--lib/canonicalize.h5
-rw-r--r--lib/clean-temp.h5
-rw-r--r--lib/concat-filename.h5
-rw-r--r--lib/count-leading-zeros.h8
-rw-r--r--lib/count-one-bits.h8
-rw-r--r--lib/count-trailing-zeros.h8
-rw-r--r--lib/ctype.in.h5
-rw-r--r--lib/dfa.h6
-rw-r--r--lib/di-set.h6
-rw-r--r--lib/dirent-safer.h5
-rw-r--r--lib/dirent.in.h6
-rw-r--r--lib/dirname.h6
-rw-r--r--lib/eealloc.h9
-rw-r--r--lib/eloop-threshold.h5
-rw-r--r--lib/error.in.h5
-rw-r--r--lib/exclude.h6
-rw-r--r--lib/execinfo.in.h4
-rw-r--r--lib/fatal-signal.h5
-rw-r--r--lib/fcntl.in.h5
-rw-r--r--lib/file-type.h5
-rw-r--r--lib/filenamecat.h5
-rw-r--r--lib/filevercmp.h5
-rw-r--r--lib/flexmember.h5
-rw-r--r--lib/fnmatch.in.h5
-rw-r--r--lib/fpending.h5
-rw-r--r--lib/freadable.h5
-rw-r--r--lib/freadahead.h5
-rw-r--r--lib/freading.h5
-rw-r--r--lib/fts_.h5
-rw-r--r--lib/fwritable.h5
-rw-r--r--lib/fwriting.h5
-rw-r--r--lib/gc.h5
-rw-r--r--lib/get_progname_of.h5
-rw-r--r--lib/gethrxtime.h8
-rw-r--r--lib/gl_list.h9
-rw-r--r--lib/gl_map.h9
-rw-r--r--lib/gl_omap.h9
-rw-r--r--lib/gl_openssl.h8
-rw-r--r--lib/gl_oset.h9
-rw-r--r--lib/gl_set.h9
-rw-r--r--lib/gl_xlist.h9
-rw-r--r--lib/gl_xmap.h9
-rw-r--r--lib/gl_xomap.h9
-rw-r--r--lib/gl_xoset.h9
-rw-r--r--lib/gl_xset.h9
-rw-r--r--lib/gl_xsublist.h9
-rw-r--r--lib/glob.in.h5
-rw-r--r--lib/glthread/cond.h9
-rw-r--r--lib/glthread/thread.h5
-rw-r--r--lib/hamt.h7
-rw-r--r--lib/hash-pjw-bare.h5
-rw-r--r--lib/hash-pjw.h5
-rw-r--r--lib/hash-triple.h5
-rw-r--r--lib/hash.h7
-rw-r--r--lib/i-ring.h5
-rw-r--r--lib/ialloc.h9
-rw-r--r--lib/iconv.in.h5
-rw-r--r--lib/ino-map.h6
-rw-r--r--lib/inttostr.h5
-rw-r--r--lib/inttypes.in.h5
-rw-r--r--lib/javaversion.h5
-rw-r--r--lib/langinfo.in.h5
-rw-r--r--lib/locale.in.h5
-rw-r--r--lib/localename.h5
-rw-r--r--lib/malloc.in.h5
-rw-r--r--lib/malloca.h6
-rw-r--r--lib/math.in.h9
-rw-r--r--lib/mbchar.h8
-rw-r--r--lib/mbfile.h8
-rw-r--r--lib/mbiter.h8
-rw-r--r--lib/mbuiter.h8
-rw-r--r--lib/memcasecmp.h5
-rw-r--r--lib/memchr2.h5
-rw-r--r--lib/memcmp2.h5
-rw-r--r--lib/modechange.h5
-rw-r--r--lib/monetary.in.h5
-rw-r--r--lib/mountlist.h5
-rw-r--r--lib/netdb.in.h5
-rw-r--r--lib/obstack.h5
-rw-r--r--lib/openat.h9
-rw-r--r--lib/opendirat.h5
-rw-r--r--lib/pagealign_alloc.h7
-rw-r--r--lib/pipe-filter-aux.h4
-rw-r--r--lib/pipe-filter.h5
-rw-r--r--lib/poll.in.h5
-rw-r--r--lib/priv-set.h4
-rw-r--r--lib/pthread.in.h5
-rw-r--r--lib/pty.in.h5
-rw-r--r--lib/quotearg.h5
-rw-r--r--lib/read-file.h5
-rw-r--r--lib/readline.h5
-rw-r--r--lib/readutmp.h5
-rw-r--r--lib/regex-quote.h5
-rw-r--r--lib/relocatable.h5
-rw-r--r--lib/safe-alloc.h9
-rw-r--r--lib/savedir.h5
-rw-r--r--lib/savewd.h10
-rw-r--r--lib/sched.in.h5
-rw-r--r--lib/se-context.in.h11
-rw-r--r--lib/se-label.in.h10
-rw-r--r--lib/se-selinux.in.h9
-rw-r--r--lib/search.in.h5
-rw-r--r--lib/sh-quote.h5
-rw-r--r--lib/sig-handler.h8
-rw-r--r--lib/signal.in.h5
-rw-r--r--lib/sigpipe-die.h5
-rw-r--r--lib/sockets.h5
-rw-r--r--lib/spawn.in.h5
-rw-r--r--lib/ssfmalloc.h5
-rw-r--r--lib/stack.h5
-rw-r--r--lib/stat-time.h9
-rw-r--r--lib/stdalign.in.h5
-rw-r--r--lib/stdarg.in.h5
-rw-r--r--lib/stddef.in.h5
-rw-r--r--lib/stdio-safer.h5
-rw-r--r--lib/stdio.in.h6
-rw-r--r--lib/stdlib.in.h6
-rw-r--r--lib/stdnoreturn.in.h5
-rw-r--r--lib/strerror-override.h5
-rw-r--r--lib/striconv.h5
-rw-r--r--lib/striconveh.h5
-rw-r--r--lib/striconveha.h5
-rw-r--r--lib/string-buffer.h5
-rw-r--r--lib/string-desc-quotearg.h9
-rw-r--r--lib/string-desc.h9
-rw-r--r--lib/string.in.h6
-rw-r--r--lib/strings.in.h5
-rw-r--r--lib/strnlen1.h5
-rw-r--r--lib/sys_file.in.h5
-rw-r--r--lib/sys_ioctl.in.h5
-rw-r--r--lib/sys_random.in.h5
-rw-r--r--lib/sys_resource.in.h5
-rw-r--r--lib/sys_select.in.h5
-rw-r--r--lib/sys_socket.in.h5
-rw-r--r--lib/sys_stat.in.h5
-rw-r--r--lib/sys_time.in.h5
-rw-r--r--lib/sys_times.in.h5
-rw-r--r--lib/sys_utsname.in.h5
-rw-r--r--lib/sys_wait.in.h5
-rw-r--r--lib/system-quote.h5
-rw-r--r--lib/term-style-control.h5
-rw-r--r--lib/termios.in.h5
-rw-r--r--lib/textstyle.in.h5
-rw-r--r--lib/threads.in.h5
-rw-r--r--lib/time.in.h5
-rw-r--r--lib/timespec.h9
-rw-r--r--lib/trim.h5
-rw-r--r--lib/u64.h8
-rw-r--r--lib/uchar.in.h9
-rw-r--r--lib/unistd.in.h8
-rw-r--r--lib/utime.in.h5
-rw-r--r--lib/utimens.h8
-rw-r--r--lib/utmp.in.h5
-rw-r--r--lib/vasnprintf.h5
-rw-r--r--lib/verror.h5
-rw-r--r--lib/version-etc.h5
-rw-r--r--lib/wchar.in.h6
-rw-r--r--lib/wctype.in.h8
-rw-r--r--lib/windows-spawn.h5
-rw-r--r--lib/windows-thread.h5
-rw-r--r--lib/xalloc.h10
-rw-r--r--lib/xbinary-io.h8
-rw-r--r--lib/xgetcwd.h5
-rw-r--r--lib/xgetdomainname.h5
-rw-r--r--lib/xgethostname.h5
-rw-r--r--lib/xmalloca.h6
-rw-r--r--lib/xmemdup0.h5
-rw-r--r--lib/xprintf.h5
-rw-r--r--lib/xreadlink.h5
-rw-r--r--lib/xsize.h8
-rw-r--r--lib/xstriconv.h5
-rw-r--r--lib/xstriconveh.h5
-rw-r--r--lib/xstring-desc.h8
-rw-r--r--lib/xstrndup.h5
-rw-r--r--lib/xstrtol-error.h5
-rw-r--r--lib/xtime.h4
-rw-r--r--lib/xvasprintf.h5
-rw-r--r--m4/gnulib-common.m46
207 files changed, 1374 insertions, 165 deletions
diff --git a/ChangeLog b/ChangeLog
index c80d5587e8..21ab60e8a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,216 @@
+2023-04-12 Bruno Haible <bruno@clisp.org>
+
+ Add more reminders to include <config.h>.
+ * m4/gnulib-common.m4 (gl_COMMON): In config.h, define
+ _GL_CONFIG_H_INCLUDED.
+ * lib/acl-internal.h: Test _GL_CONFIG_H_INCLUDED instead of
+ _GL_INLINE_HEADER_BEGIN.
+ * lib/alignalloc.h: Likewise.
+ * lib/argp-fmtstream.h: Likewise.
+ * lib/argp.h: Likewise.
+ * lib/binary-io.h: Likewise.
+ * lib/bitrotate.h: Likewise.
+ * lib/c-ctype.h: Likewise.
+ * lib/count-leading-zeros.h: Likewise.
+ * lib/count-one-bits.h: Likewise.
+ * lib/count-trailing-zeros.h: Likewise.
+ * lib/eealloc.h: Likewise.
+ * lib/execinfo.in.h: Likewise.
+ * lib/gethrxtime.h: Likewise.
+ * lib/gl_list.h: Likewise.
+ * lib/gl_map.h: Likewise.
+ * lib/gl_omap.h: Likewise.
+ * lib/gl_openssl.h: Likewise.
+ * lib/gl_oset.h: Likewise.
+ * lib/gl_set.h: Likewise.
+ * lib/gl_xlist.h: Likewise.
+ * lib/gl_xmap.h: Likewise.
+ * lib/gl_xomap.h: Likewise.
+ * lib/gl_xoset.h: Likewise.
+ * lib/gl_xset.h: Likewise.
+ * lib/gl_xsublist.h: Likewise.
+ * lib/glthread/cond.h: Likewise.
+ * lib/hamt.h: Likewise.
+ * lib/ialloc.h: Likewise.
+ * lib/math.in.h: Likewise.
+ * lib/mbchar.h: Likewise.
+ * lib/mbfile.h: Likewise.
+ * lib/mbiter.h: Likewise.
+ * lib/mbuiter.h: Likewise.
+ * lib/openat.h: Likewise.
+ * lib/pipe-filter-aux.h: Likewise.
+ * lib/priv-set.h: Likewise.
+ * lib/safe-alloc.h: Likewise.
+ * lib/savewd.h: Likewise.
+ * lib/se-context.in.h: Likewise.
+ * lib/se-label.in.h: Likewise.
+ * lib/se-selinux.in.h: Likewise.
+ * lib/sig-handler.h: Likewise.
+ * lib/stat-time.h: Likewise.
+ * lib/string-desc-quotearg.h: Likewise.
+ * lib/string-desc.h: Likewise.
+ * lib/sys_socket.in.h: Likewise.
+ * lib/timespec.h: Likewise.
+ * lib/u64.h: Likewise.
+ * lib/uchar.in.h: Likewise.
+ * lib/unistd.in.h: Likewise.
+ * lib/utimens.h: Likewise.
+ * lib/wctype.in.h: Likewise.
+ * lib/xalloc.h: Likewise.
+ * lib/xbinary-io.h: Likewise.
+ * lib/xsize.h: Likewise.
+ * lib/xstring-desc.h: Likewise.
+ * lib/xtime.h: Likewise.
+ * lib/acl.h: Check that config.h was already included.
+ * lib/alignof.h: Likewise.
+ * lib/argmatch.h: Likewise.
+ * lib/argv-iter.h: Likewise.
+ * lib/arpa_inet.in.h: Likewise.
+ * lib/attribute.h: Likewise.
+ * lib/backupfile.h: Likewise.
+ * lib/base32.h: Likewise.
+ * lib/base64.h: Likewise.
+ * lib/basename-lgpl.h: Likewise.
+ * lib/bitset.h: Likewise.
+ * lib/bitsetv.h: Likewise.
+ * lib/c-snprintf.h: Likewise.
+ * lib/c-stack.h: Likewise.
+ * lib/c-strcase.h: Likewise.
+ * lib/c-vasnprintf.h: Likewise.
+ * lib/c-vasprintf.h: Likewise.
+ * lib/c-vsnprintf.h: Likewise.
+ * lib/c-xvasprintf.h: Likewise.
+ * lib/canon-host.h: Likewise.
+ * lib/canonicalize.h: Likewise.
+ * lib/clean-temp.h: Likewise.
+ * lib/concat-filename.h: Likewise.
+ * lib/ctype.in.h: Likewise.
+ * lib/dfa.h: Likewise.
+ * lib/di-set.h: Likewise.
+ * lib/dirent-safer.h: Likewise.
+ * lib/dirent.in.h: Likewise.
+ * lib/dirname.h: Likewise.
+ * lib/eloop-threshold.h: Likewise.
+ * lib/error.in.h: Likewise.
+ * lib/exclude.h: Likewise.
+ * lib/fatal-signal.h: Likewise.
+ * lib/fcntl.in.h: Likewise.
+ * lib/file-type.h: Likewise.
+ * lib/filenamecat.h: Likewise.
+ * lib/filevercmp.h: Likewise.
+ * lib/flexmember.h: Likewise.
+ * lib/fnmatch.in.h: Likewise.
+ * lib/fpending.h: Likewise.
+ * lib/freadable.h: Likewise.
+ * lib/freadahead.h: Likewise.
+ * lib/freading.h: Likewise.
+ * lib/fts_.h: Likewise.
+ * lib/fwritable.h: Likewise.
+ * lib/fwriting.h: Likewise.
+ * lib/gc.h: Likewise.
+ * lib/get_progname_of.h: Likewise.
+ * lib/glob.in.h: Likewise.
+ * lib/glthread/thread.h: Likewise.
+ * lib/hash-pjw-bare.h: Likewise.
+ * lib/hash-pjw.h: Likewise.
+ * lib/hash-triple.h: Likewise.
+ * lib/hash.h: Likewise.
+ * lib/i-ring.h: Likewise.
+ * lib/iconv.in.h: Likewise.
+ * lib/ino-map.h: Likewise.
+ * lib/inttostr.h: Likewise.
+ * lib/inttypes.in.h: Likewise.
+ * lib/javaversion.h: Likewise.
+ * lib/langinfo.in.h: Likewise.
+ * lib/locale.in.h: Likewise.
+ * lib/localename.h: Likewise.
+ * lib/malloc.in.h: Likewise.
+ * lib/malloca.h: Likewise.
+ * lib/memcasecmp.h: Likewise.
+ * lib/memchr2.h: Likewise.
+ * lib/memcmp2.h: Likewise.
+ * lib/modechange.h: Likewise.
+ * lib/monetary.in.h: Likewise.
+ * lib/mountlist.h: Likewise.
+ * lib/netdb.in.h: Likewise.
+ * lib/obstack.h: Likewise.
+ * lib/opendirat.h: Likewise.
+ * lib/pagealign_alloc.h: Likewise.
+ * lib/pipe-filter.h: Likewise.
+ * lib/poll.in.h: Likewise.
+ * lib/pthread.in.h: Likewise.
+ * lib/pty.in.h: Likewise.
+ * lib/quotearg.h: Likewise.
+ * lib/read-file.h: Likewise.
+ * lib/readline.h: Likewise.
+ * lib/readutmp.h: Likewise.
+ * lib/regex-quote.h: Likewise.
+ * lib/relocatable.h: Likewise.
+ * lib/savedir.h: Likewise.
+ * lib/sched.in.h: Likewise.
+ * lib/search.in.h: Likewise.
+ * lib/sh-quote.h: Likewise.
+ * lib/signal.in.h: Likewise.
+ * lib/sigpipe-die.h: Likewise.
+ * lib/sockets.h: Likewise.
+ * lib/spawn.in.h: Likewise.
+ * lib/ssfmalloc.h: Likewise.
+ * lib/stack.h: Likewise.
+ * lib/stdalign.in.h: Likewise.
+ * lib/stdarg.in.h: Likewise.
+ * lib/stddef.in.h: Likewise.
+ * lib/stdio-safer.h: Likewise.
+ * lib/stdio.in.h: Likewise.
+ * lib/stdlib.in.h: Likewise.
+ * lib/stdnoreturn.in.h: Likewise.
+ * lib/strerror-override.h: Likewise.
+ * lib/striconv.h: Likewise.
+ * lib/striconveh.h: Likewise.
+ * lib/striconveha.h: Likewise.
+ * lib/string-buffer.h: Likewise.
+ * lib/string.in.h: Likewise.
+ * lib/strings.in.h: Likewise.
+ * lib/strnlen1.h: Likewise.
+ * lib/sys_file.in.h: Likewise.
+ * lib/sys_ioctl.in.h: Likewise.
+ * lib/sys_random.in.h: Likewise.
+ * lib/sys_resource.in.h: Likewise.
+ * lib/sys_select.in.h: Likewise.
+ * lib/sys_stat.in.h: Likewise.
+ * lib/sys_time.in.h: Likewise.
+ * lib/sys_times.in.h: Likewise.
+ * lib/sys_utsname.in.h: Likewise.
+ * lib/sys_wait.in.h: Likewise.
+ * lib/system-quote.h: Likewise.
+ * lib/term-style-control.h: Likewise.
+ * lib/termios.in.h: Likewise.
+ * lib/textstyle.in.h: Likewise.
+ * lib/threads.in.h: Likewise.
+ * lib/time.in.h: Likewise.
+ * lib/trim.h: Likewise.
+ * lib/utime.in.h: Likewise.
+ * lib/utmp.in.h: Likewise.
+ * lib/vasnprintf.h: Likewise.
+ * lib/verror.h: Likewise.
+ * lib/version-etc.h: Likewise.
+ * lib/wchar.in.h: Likewise.
+ * lib/windows-spawn.h: Likewise.
+ * lib/windows-thread.h: Likewise.
+ * lib/xgetcwd.h: Likewise.
+ * lib/xgetdomainname.h: Likewise.
+ * lib/xgethostname.h: Likewise.
+ * lib/xmalloca.h: Likewise.
+ * lib/xmemdup0.h: Likewise.
+ * lib/xprintf.h: Likewise.
+ * lib/xreadlink.h: Likewise.
+ * lib/xstriconv.h: Likewise.
+ * lib/xstriconveh.h: Likewise.
+ * lib/xstrndup.h: Likewise.
+ * lib/xstrtol-error.h: Likewise.
+ * lib/xvasprintf.h: Likewise.
+ * Makefile (config_h_MACROS*): New variables.
+ (sc_check_config_h_reminder): New rule.
+
2023-04-11 Paul Eggert <eggert@cs.ucla.edu>
doc: update year2038 list further
diff --git a/Makefile b/Makefile
index 1044869450..76e3b5cc54 100644
--- a/Makefile
+++ b/Makefile
@@ -138,6 +138,95 @@ sc_check_sym_list:
<(sed -n /^_intprops_name/,/^_intprops_syms_re/p top/maint.mk \
|sed '/^_/d;s/^ //;s/ *\\$$//')
+
+# List of C macros defined through AH_VERBATIM in m4/extern-inline.m4:
+config_h_MACROS1 = \
+ _GL_INLINE \
+ _GL_EXTERN_INLINE \
+ _GL_INLINE_HEADER_BEGIN \
+ _GL_INLINE_HEADER_END
+# List of C macros defined through AH_VERBATIM in m4/gnulib-common.m4:
+config_h_MACROS2 = \
+ _GL_GNUC_PREREQ \
+ _Noreturn \
+ _GL_ATTRIBUTE_ALLOC_SIZE \
+ _GL_ATTRIBUTE_ALWAYS_INLINE \
+ _GL_ATTRIBUTE_ARTIFICIAL \
+ _GL_ATTRIBUTE_COLD \
+ _GL_ATTRIBUTE_CONST \
+ _GL_ATTRIBUTE_DEALLOC \
+ _GL_ATTRIBUTE_DEPRECATED \
+ _GL_ATTRIBUTE_ERROR \
+ _GL_ATTRIBUTE_WARNING \
+ _GL_ATTRIBUTE_EXTERNALLY_VISIBLE \
+ _GL_ATTRIBUTE_FALLTHROUGH \
+ _GL_ATTRIBUTE_FORMAT \
+ _GL_ATTRIBUTE_LEAF \
+ _GL_ATTRIBUTE_MALLOC \
+ _GL_ATTRIBUTE_MAY_ALIAS \
+ _GL_ATTRIBUTE_MAYBE_UNUSED \
+ _GL_UNUSED \
+ _GL_ATTRIBUTE_NODISCARD \
+ _GL_ATTRIBUTE_NOINLINE \
+ _GL_ATTRIBUTE_NONNULL \
+ _GL_ATTRIBUTE_NONSTRING \
+ _GL_ATTRIBUTE_NOTHROW \
+ _GL_ATTRIBUTE_PACKED \
+ _GL_ATTRIBUTE_PURE \
+ _GL_ATTRIBUTE_RETURNS_NONNULL \
+ _GL_ATTRIBUTE_SENTINEL \
+ _GL_ATTRIBUTE_UNUSED \
+ _GL_UNUSED_LABEL \
+ _GL_BEGIN_C_LINKAGE \
+ _GL_END_C_LINKAGE \
+ _GL_ASYNC_SAFE \
+ _GL_CMP
+# List of C macros defined through AH_VERBATIM in m4/nullptr.m4:
+config_h_MACROS3 = \
+ nullptr
+# List of C macros defined through AH_VERBATIM in m4/posixcheck.m4:
+config_h_MACROS4 = \
+ GNULIB_POSIXCHECK
+# List of C macros defined through AH_VERBATIM in m4/sh-filename.m4:
+config_h_MACROS5 = \
+ BOURNE_SHELL
+# List of C macros defined through AH_VERBATIM in m4/stdalign.m4:
+config_h_MACROS6 = \
+ alignof \
+ alignas
+# List of C macros defined through AH_VERBATIM in m4/stdarg.m4:
+config_h_MACROS7 = \
+ va_copy
+# List of C macros defined through AH_VERBATIM in m4/threads_h.m4:
+config_h_MACROS8 = \
+ _Thread_local
+# List of C macros defined through AH_VERBATIM (only the most important ones):
+config_h_MACROS = \
+ $(config_h_MACROS1) $(config_h_MACROS2) $(config_h_MACROS3) \
+ $(config_h_MACROS4) $(config_h_MACROS5) $(config_h_MACROS6) \
+ $(config_h_MACROS7) $(config_h_MACROS8)
+
+# Ensure that .h files that use macros from config.h contain a reminder to
+# include <config.h>.
+sc_check_config_h_reminder:
+ fail=0; \
+ for file in `grep -l -F -w -f <(for macro in $(config_h_MACROS); do echo $$macro; done) lib/*.h lib/*/*.h`; do \
+ : "Filter out .h files that are not public header files of their respective module."; \
+ include_pattern='[<"]'`echo $$file | sed -e 's,^lib/,,' -e 's,[.]in[.]h,.h,' -e 's,_,[/_],g' -e 's,[.],[.],g'`'[>"]' ; \
+ if ./gnulib-tool --extract-include-directive `./gnulib-tool --find $$file` | grep "$$include_pattern" >/dev/null; then \
+ grep '# *error "Please include config[.]h first[.]"' $$file >/dev/null \
+ || { echo -n "File $$file lacks a config.h reminder. Needed for:"; \
+ for macro in $(config_h_MACROS); do \
+ if grep -F -w $$macro $$file >/dev/null; then echo -n " $$macro"; fi; \
+ done; \
+ echo; \
+ fail=1; \
+ }; \
+ fi; \
+ done; \
+ exit $$fail
+
+
# Ensure that the copyright statements in files and in the module descriptions
# are consistent.
sc_check_copyright:
diff --git a/lib/acl-internal.h b/lib/acl-internal.h
index c97e847cdc..496e41d7b2 100644
--- a/lib/acl-internal.h
+++ b/lib/acl-internal.h
@@ -17,6 +17,11 @@
Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible. */
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "acl.h"
#include <stdlib.h>
@@ -60,9 +65,6 @@ extern int aclsort (int, int, struct acl *);
# define fchmod(fd, mode) (-1)
#endif
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef ACL_INTERNAL_INLINE
# define ACL_INTERNAL_INLINE _GL_INLINE
diff --git a/lib/acl.h b/lib/acl.h
index 58e5797179..0d02120055 100644
--- a/lib/acl.h
+++ b/lib/acl.h
@@ -20,6 +20,11 @@
#ifndef _GL_ACL_H
#define _GL_ACL_H 1
+/* This file uses _GL_ATTRIBUTE_CONST. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/lib/alignalloc.h b/lib/alignalloc.h
index eacf47880a..1574e26c92 100644
--- a/lib/alignalloc.h
+++ b/lib/alignalloc.h
@@ -20,13 +20,16 @@
#ifndef ALIGNALLOC_H_
#define ALIGNALLOC_H_
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_ALLOC_SIZE,
+ _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <errno.h>
#include <stdlib.h>
#include "idx.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef ALIGNALLOC_INLINE
# define ALIGNALLOC_INLINE _GL_INLINE
diff --git a/lib/alignof.h b/lib/alignof.h
index 2ded1c7884..a790972763 100644
--- a/lib/alignof.h
+++ b/lib/alignof.h
@@ -17,6 +17,11 @@
#ifndef _ALIGNOF_H
#define _ALIGNOF_H
+/* This file uses alignof. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
/* alignof_slot (TYPE)
diff --git a/lib/argmatch.h b/lib/argmatch.h
index f18127fc96..9e8d217d6d 100644
--- a/lib/argmatch.h
+++ b/lib/argmatch.h
@@ -22,6 +22,11 @@
#ifndef ARGMATCH_H_
# define ARGMATCH_H_ 1
+/* This file uses _GL_ATTRIBUTE_PURE. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <limits.h>
# include <stddef.h>
# include <stdio.h>
diff --git a/lib/argp-fmtstream.h b/lib/argp-fmtstream.h
index 3a42e372f3..5738551255 100644
--- a/lib/argp-fmtstream.h
+++ b/lib/argp-fmtstream.h
@@ -24,6 +24,12 @@
#ifndef _ARGP_FMTSTREAM_H
#define _ARGP_FMTSTREAM_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, __GL_INLINE, _GL_ATTRIBUTE_DEALLOC,
+ _GL_ATTRIBUTE_FORMAT. */
+#if !_LIBC && !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
#include <string.h>
#include <unistd.h>
@@ -187,9 +193,6 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
#define __argp_fmtstream_point argp_fmtstream_point
#define __argp_fmtstream_update _argp_fmtstream_update
#define __argp_fmtstream_ensure _argp_fmtstream_ensure
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef ARGP_FS_EI
# define ARGP_FS_EI _GL_INLINE
diff --git a/lib/argp.h b/lib/argp.h
index ae0edd390e..7de939a2a1 100644
--- a/lib/argp.h
+++ b/lib/argp.h
@@ -19,6 +19,11 @@
#ifndef _ARGP_H
#define _ARGP_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_FORMAT. */
+#if !_LIBC && !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
#include <ctype.h>
#include <getopt.h>
@@ -590,9 +595,6 @@ extern void *__argp_input (const struct argp *__restrict __argp,
# define __argp_state_help argp_state_help
# define __option_is_short _option_is_short
# define __option_is_end _option_is_end
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
# ifndef ARGP_EI
# define ARGP_EI _GL_INLINE
diff --git a/lib/argv-iter.h b/lib/argv-iter.h
index d420ded808..d2d986c20a 100644
--- a/lib/argv-iter.h
+++ b/lib/argv-iter.h
@@ -14,6 +14,11 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
/* Definition of _GL_ARG_NONNULL. */
diff --git a/lib/arpa_inet.in.h b/lib/arpa_inet.in.h
index 80e6713fdd..6df3901c07 100644
--- a/lib/arpa_inet.in.h
+++ b/lib/arpa_inet.in.h
@@ -49,6 +49,11 @@
#ifndef _@GUARD_PREFIX@_ARPA_INET_H
#define _@GUARD_PREFIX@_ARPA_INET_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get all possible declarations of inet_ntop() and inet_pton(). */
#if (@GNULIB_INET_NTOP@ || @GNULIB_INET_PTON@ || defined GNULIB_POSIXCHECK) \
&& @HAVE_WS2TCPIP_H@
diff --git a/lib/attribute.h b/lib/attribute.h
index 130644d879..9464fde0f3 100644
--- a/lib/attribute.h
+++ b/lib/attribute.h
@@ -41,6 +41,21 @@
These names begin with 'ATTRIBUTE_' to avoid name clashes. */
+/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_ALWAYS_INLINE,
+ _GL_ATTRIBUTE_ARTIFICIAL, _GL_ATTRIBUTE_COLD, _GL_ATTRIBUTE_CONST,
+ _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEPRECATED, _GL_ATTRIBUTE_ERROR,
+ _GL_ATTRIBUTE_WARNING, _GL_ATTRIBUTE_EXTERNALLY_VISIBLE,
+ _GL_ATTRIBUTE_FALLTHROUGH, _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_LEAF,
+ _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_MAY_ALIAS, _GL_ATTRIBUTE_MAYBE_UNUSED,
+ _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOINLINE, _GL_ATTRIBUTE_NONNULL,
+ _GL_ATTRIBUTE_NONSTRING, _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED,
+ _GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_RETURNS_NONNULL,
+ _GL_ATTRIBUTE_SENTINEL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+
/* =============== Attributes for specific kinds of functions =============== */
/* Attributes for functions that should not be used. */
diff --git a/lib/backupfile.h b/lib/backupfile.h
index 81fc35cf00..73fa610225 100644
--- a/lib/backupfile.h
+++ b/lib/backupfile.h
@@ -19,6 +19,11 @@
#ifndef BACKUPFILE_H_
#define BACKUPFILE_H_
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get AT_FDCWD, as a convenience for users of this file. */
#include <fcntl.h>
diff --git a/lib/base32.h b/lib/base32.h
index 8f8d862ab1..2e784d95c8 100644
--- a/lib/base32.h
+++ b/lib/base32.h
@@ -18,6 +18,11 @@
#ifndef BASE32_H
# define BASE32_H
+/* This file uses _GL_ATTRIBUTE_CONST. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get idx_t. */
# include <idx.h>
diff --git a/lib/base64.h b/lib/base64.h
index 9913765200..b5cb2ea5cb 100644
--- a/lib/base64.h
+++ b/lib/base64.h
@@ -18,6 +18,11 @@
#ifndef BASE64_H
# define BASE64_H
+/* This file uses _GL_ATTRIBUTE_CONST. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get idx_t. */
# include <idx.h>
diff --git a/lib/basename-lgpl.h b/lib/basename-lgpl.h
index 5d996c1da5..c1982fa8eb 100644
--- a/lib/basename-lgpl.h
+++ b/lib/basename-lgpl.h
@@ -19,6 +19,11 @@
#ifndef _BASENAME_LGPL_H
#define _BASENAME_LGPL_H
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
diff --git a/lib/binary-io.h b/lib/binary-io.h
index 6f4db25335..855d6f819f 100644
--- a/lib/binary-io.h
+++ b/lib/binary-io.h
@@ -17,6 +17,11 @@
#ifndef _BINARY_H
#define _BINARY_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_UNUSED. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* For systems that distinguish between text and binary I/O.
O_BINARY is guaranteed by the gnulib <fcntl.h>. */
#include <fcntl.h>
@@ -25,9 +30,6 @@
so we include it here first. */
#include <stdio.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef BINARY_IO_INLINE
# define BINARY_IO_INLINE _GL_INLINE
diff --git a/lib/bitrotate.h b/lib/bitrotate.h
index de1ee8257c..6fb7b4957f 100644
--- a/lib/bitrotate.h
+++ b/lib/bitrotate.h
@@ -19,13 +19,15 @@
#ifndef _GL_BITROTATE_H
#define _GL_BITROTATE_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <limits.h>
#include <stdint.h>
#include <sys/types.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef BITROTATE_INLINE
# define BITROTATE_INLINE _GL_INLINE
diff --git a/lib/bitset.h b/lib/bitset.h
index fe5da8fd6a..bb6596f7fe 100644
--- a/lib/bitset.h
+++ b/lib/bitset.h
@@ -23,6 +23,11 @@
/* This file is the public interface to the bitset abstract data type.
Only use the functions and macros defined in this file. */
+/* This file uses _GL_ATTRIBUTE_DEALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
#if USE_UNLOCKED_IO
# include "unlocked-io.h"
diff --git a/lib/bitsetv.h b/lib/bitsetv.h
index 72f7e0bd05..96cdd1d7fb 100644
--- a/lib/bitsetv.h
+++ b/lib/bitsetv.h
@@ -21,6 +21,11 @@
#ifndef _BITSETV_H
#define _BITSETV_H
+/* This file uses _GL_ATTRIBUTE_DEALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "bitset.h"
typedef bitset * bitsetv;
diff --git a/lib/c-ctype.h b/lib/c-ctype.h
index 35ca83d7d4..cb0f4f3ba1 100644
--- a/lib/c-ctype.h
+++ b/lib/c-ctype.h
@@ -23,9 +23,11 @@
#ifndef C_CTYPE_H
#define C_CTYPE_H
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
_GL_INLINE_HEADER_BEGIN
#ifndef C_CTYPE_INLINE
# define C_CTYPE_INLINE _GL_INLINE
diff --git a/lib/c-snprintf.h b/lib/c-snprintf.h
index 3515b14f66..c973f35b8a 100644
--- a/lib/c-snprintf.h
+++ b/lib/c-snprintf.h
@@ -17,6 +17,11 @@
#ifndef _C_SNPRINTF_H
#define _C_SNPRINTF_H
+/* This file uses _GL_ATTRIBUTE_FORMAT. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get size_t. */
#include <stddef.h>
diff --git a/lib/c-stack.h b/lib/c-stack.h
index d9556a9db2..7958112b82 100644
--- a/lib/c-stack.h
+++ b/lib/c-stack.h
@@ -15,6 +15,11 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ASYNC_SAFE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#ifdef __cplusplus
extern "C"
{
@@ -52,6 +57,6 @@ extern "C"
extern int c_stack_action (_GL_ASYNC_SAFE void (* /*action*/) (int));
-# ifdef __cplusplus
+#ifdef __cplusplus
}
-# endif
+#endif
diff --git a/lib/c-strcase.h b/lib/c-strcase.h
index 9bcca01b27..5dfa96c41f 100644
--- a/lib/c-strcase.h
+++ b/lib/c-strcase.h
@@ -18,6 +18,11 @@
#ifndef C_STRCASE_H
#define C_STRCASE_H
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
diff --git a/lib/c-vasnprintf.h b/lib/c-vasnprintf.h
index 21464ceb1d..c2f0c0c96d 100644
--- a/lib/c-vasnprintf.h
+++ b/lib/c-vasnprintf.h
@@ -17,6 +17,11 @@
#ifndef _C_VASNPRINTF_H
#define _C_VASNPRINTF_H
+/* This file uses _GL_ATTRIBUTE_FORMAT. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get va_list. */
#include <stdarg.h>
diff --git a/lib/c-vasprintf.h b/lib/c-vasprintf.h
index 9c4a042612..f61e78299e 100644
--- a/lib/c-vasprintf.h
+++ b/lib/c-vasprintf.h
@@ -17,6 +17,11 @@
#ifndef _C_VASPRINTF_H
#define _C_VASPRINTF_H
+/* This file uses _GL_ATTRIBUTE_FORMAT. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get va_list. */
#include <stdarg.h>
diff --git a/lib/c-vsnprintf.h b/lib/c-vsnprintf.h
index 978f372635..3e94846d22 100644
--- a/lib/c-vsnprintf.h
+++ b/lib/c-vsnprintf.h
@@ -17,6 +17,11 @@
#ifndef _C_VSNPRINTF_H
#define _C_VSNPRINTF_H
+/* This file uses _GL_ATTRIBUTE_FORMAT. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get size_t. */
#include <stddef.h>
diff --git a/lib/c-xvasprintf.h b/lib/c-xvasprintf.h
index 985314b738..33f87cd17c 100644
--- a/lib/c-xvasprintf.h
+++ b/lib/c-xvasprintf.h
@@ -17,6 +17,11 @@
#ifndef _C_XVASPRINTF_H
#define _C_XVASPRINTF_H
+/* This file uses _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get va_list. */
#include <stdarg.h>
diff --git a/lib/canon-host.h b/lib/canon-host.h
index c1f55c0982..91faabf7f7 100644
--- a/lib/canon-host.h
+++ b/lib/canon-host.h
@@ -20,6 +20,11 @@
#ifndef CANON_HOST_H
# define CANON_HOST_H 1
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <stdlib.h>
char *canon_host (char const *host)
diff --git a/lib/canonicalize.h b/lib/canonicalize.h
index e0cfafd8fa..ea09c666f9 100644
--- a/lib/canonicalize.h
+++ b/lib/canonicalize.h
@@ -17,6 +17,11 @@
#ifndef CANONICALIZE_H_
# define CANONICALIZE_H_
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h> /* for canonicalize_file_name */
#define CAN_MODE_MASK (CAN_EXISTING | CAN_ALL_BUT_LAST | CAN_MISSING)
diff --git a/lib/clean-temp.h b/lib/clean-temp.h
index 1e754561b3..a7cf6e74c0 100644
--- a/lib/clean-temp.h
+++ b/lib/clean-temp.h
@@ -18,6 +18,11 @@
#ifndef _CLEAN_TEMP_H
#define _CLEAN_TEMP_H
+/* This file uses _GL_ATTRIBUTE_DEALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
#include <sys/types.h>
diff --git a/lib/concat-filename.h b/lib/concat-filename.h
index 0912226387..490aa96fe5 100644
--- a/lib/concat-filename.h
+++ b/lib/concat-filename.h
@@ -17,6 +17,11 @@
#ifndef _CONCAT_FILENAME_H
#define _CONCAT_FILENAME_H
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
#ifdef __cplusplus
diff --git a/lib/count-leading-zeros.h b/lib/count-leading-zeros.h
index 99151d695b..9fe2a03ee0 100644
--- a/lib/count-leading-zeros.h
+++ b/lib/count-leading-zeros.h
@@ -19,12 +19,14 @@
#ifndef COUNT_LEADING_ZEROS_H
#define COUNT_LEADING_ZEROS_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <limits.h>
#include <stdlib.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef COUNT_LEADING_ZEROS_INLINE
# define COUNT_LEADING_ZEROS_INLINE _GL_INLINE
diff --git a/lib/count-one-bits.h b/lib/count-one-bits.h
index 01a60b77b8..2821a1fb75 100644
--- a/lib/count-one-bits.h
+++ b/lib/count-one-bits.h
@@ -19,12 +19,14 @@
#ifndef COUNT_ONE_BITS_H
#define COUNT_ONE_BITS_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <limits.h>
#include <stdlib.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef COUNT_ONE_BITS_INLINE
# define COUNT_ONE_BITS_INLINE _GL_INLINE
diff --git a/lib/count-trailing-zeros.h b/lib/count-trailing-zeros.h
index ef8e164126..9b33df76f6 100644
--- a/lib/count-trailing-zeros.h
+++ b/lib/count-trailing-zeros.h
@@ -19,12 +19,14 @@
#ifndef COUNT_TRAILING_ZEROS_H
#define COUNT_TRAILING_ZEROS_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <limits.h>
#include <stdlib.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef COUNT_TRAILING_ZEROS_INLINE
# define COUNT_TRAILING_ZEROS_INLINE _GL_INLINE
diff --git a/lib/ctype.in.h b/lib/ctype.in.h
index 9ae63f911a..8f7b68aa0f 100644
--- a/lib/ctype.in.h
+++ b/lib/ctype.in.h
@@ -36,6 +36,11 @@
#ifndef _@GUARD_PREFIX@_CTYPE_H
#define _@GUARD_PREFIX@_CTYPE_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
diff --git a/lib/dfa.h b/lib/dfa.h
index 6ac30ffac3..117332694e 100644
--- a/lib/dfa.h
+++ b/lib/dfa.h
@@ -21,6 +21,12 @@
#ifndef DFA_H_
#define DFA_H_
+/* This file uses _Noreturn, _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+ _GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "idx.h"
#include <regex.h>
#include <stddef.h>
diff --git a/lib/di-set.h b/lib/di-set.h
index 10dacd584e..01e10c891f 100644
--- a/lib/di-set.h
+++ b/lib/di-set.h
@@ -19,6 +19,12 @@
#ifndef _GL_DI_SET_H
# define _GL_DI_SET_H
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+ _GL_ATTRIBUTE_NONNULL. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <sys/types.h>
struct di_set;
diff --git a/lib/dirent-safer.h b/lib/dirent-safer.h
index e7d00c5771..d9dad70ed0 100644
--- a/lib/dirent-safer.h
+++ b/lib/dirent-safer.h
@@ -17,6 +17,11 @@
/* Written by Eric Blake. */
+/* This file uses _GL_ATTRIBUTE_DEALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <dirent.h>
#ifdef __cplusplus
diff --git a/lib/dirent.in.h b/lib/dirent.in.h
index 2aaabd054a..e4e65bdeb8 100644
--- a/lib/dirent.in.h
+++ b/lib/dirent.in.h
@@ -29,6 +29,12 @@
#ifndef _@GUARD_PREFIX@_DIRENT_H
#define _@GUARD_PREFIX@_DIRENT_H
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+ _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get ino_t. Needed on some systems, including glibc 2.8. */
#include <sys/types.h>
diff --git a/lib/dirname.h b/lib/dirname.h
index f98e83bd4c..0344f1c44c 100644
--- a/lib/dirname.h
+++ b/lib/dirname.h
@@ -19,6 +19,12 @@
#ifndef DIRNAME_H_
# define DIRNAME_H_ 1
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_PURE,
+ _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
# include <stdlib.h>
# include "filename.h"
# include "basename-lgpl.h"
diff --git a/lib/eealloc.h b/lib/eealloc.h
index 6a897072d7..6666f172c6 100644
--- a/lib/eealloc.h
+++ b/lib/eealloc.h
@@ -29,11 +29,14 @@
and realloc() this way; on such platforms the workalikes are aliased
to the original malloc()/realloc() functions. */
-#include <stdlib.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_ALLOC_SIZE,
+ _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <stdlib.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef EEALLOC_INLINE
# define EEALLOC_INLINE _GL_INLINE
diff --git a/lib/eloop-threshold.h b/lib/eloop-threshold.h
index 510f261795..d9b154e486 100644
--- a/lib/eloop-threshold.h
+++ b/lib/eloop-threshold.h
@@ -19,6 +19,11 @@
#ifndef _ELOOP_THRESHOLD_H
#define _ELOOP_THRESHOLD_H 1
+/* This file uses _GL_ATTRIBUTE_CONST. */
+#if !_LIBC && !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <limits.h>
#ifdef _LIBC
# include <sys/param.h>
diff --git a/lib/error.in.h b/lib/error.in.h
index dcb49d1608..9a520f1ee3 100644
--- a/lib/error.in.h
+++ b/lib/error.in.h
@@ -30,6 +30,11 @@
#ifndef _@GUARD_PREFIX@_ERROR_H
#define _@GUARD_PREFIX@_ERROR_H
+/* This file uses _GL_ATTRIBUTE_FORMAT. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM. */
#include <stdio.h>
diff --git a/lib/exclude.h b/lib/exclude.h
index a16b8171b6..c91e04316a 100644
--- a/lib/exclude.h
+++ b/lib/exclude.h
@@ -19,6 +19,12 @@
#ifndef _GL_EXCLUDE_H
#define _GL_EXCLUDE_H 1
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+ _GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
/* Written by Paul Eggert <eggert@twinsun.com>
diff --git a/lib/execinfo.in.h b/lib/execinfo.in.h
index ff9293b632..56b04d1d86 100644
--- a/lib/execinfo.in.h
+++ b/lib/execinfo.in.h
@@ -20,9 +20,11 @@
#ifndef _GL_EXECINFO_H
#define _GL_EXECINFO_H
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
_GL_INLINE_HEADER_BEGIN
#ifndef _GL_EXECINFO_INLINE
# define _GL_EXECINFO_INLINE _GL_INLINE
diff --git a/lib/fatal-signal.h b/lib/fatal-signal.h
index 7baae2e15b..fed4f4bb66 100644
--- a/lib/fatal-signal.h
+++ b/lib/fatal-signal.h
@@ -19,6 +19,11 @@
#ifndef _FATAL_SIGNAL_H
#define _FATAL_SIGNAL_H
+/* This file uses _GL_ASYNC_SAFE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <signal.h>
#ifdef __cplusplus
diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h
index e034eaf9f5..595e348223 100644
--- a/lib/fcntl.in.h
+++ b/lib/fcntl.in.h
@@ -74,6 +74,11 @@
#ifndef _@GUARD_PREFIX@_FCNTL_H
#define _@GUARD_PREFIX@_FCNTL_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */
# include <unistd.h>
#endif
diff --git a/lib/file-type.h b/lib/file-type.h
index 3301729e5a..2c5a8e9afd 100644
--- a/lib/file-type.h
+++ b/lib/file-type.h
@@ -21,6 +21,11 @@
#ifndef FILE_TYPE_H
# define FILE_TYPE_H 1
+/* This file uses _GL_ATTRIBUTE_PURE. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <sys/types.h>
# include <sys/stat.h>
diff --git a/lib/filenamecat.h b/lib/filenamecat.h
index ab867f9c81..29a4daafd4 100644
--- a/lib/filenamecat.h
+++ b/lib/filenamecat.h
@@ -18,6 +18,11 @@
/* Written by Jim Meyering. */
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
#if GNULIB_FILENAMECAT
diff --git a/lib/filevercmp.h b/lib/filevercmp.h
index 6b81ab32a7..9e052bdd08 100644
--- a/lib/filevercmp.h
+++ b/lib/filevercmp.h
@@ -20,6 +20,11 @@
#ifndef FILEVERCMP_H
#define FILEVERCMP_H
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
/* Compare strings A and B as file names containing version numbers,
diff --git a/lib/flexmember.h b/lib/flexmember.h
index a6cc876a6d..8c5915ecf9 100644
--- a/lib/flexmember.h
+++ b/lib/flexmember.h
@@ -20,6 +20,11 @@
Written by Paul Eggert. */
+/* This file uses _Alignof. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
/* Nonzero multiple of alignment of TYPE, suitable for FLEXSIZEOF below.
diff --git a/lib/fnmatch.in.h b/lib/fnmatch.in.h
index e8d19e2751..2502c61aa2 100644
--- a/lib/fnmatch.in.h
+++ b/lib/fnmatch.in.h
@@ -32,6 +32,11 @@
#ifndef _@GUARD_PREFIX@_FNMATCH_H
#define _@GUARD_PREFIX@_FNMATCH_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
diff --git a/lib/fpending.h b/lib/fpending.h
index 5e860db681..0585dcb329 100644
--- a/lib/fpending.h
+++ b/lib/fpending.h
@@ -18,6 +18,11 @@
Written by Jim Meyering. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
#include <stdio.h>
#if HAVE_STDIO_EXT_H
diff --git a/lib/freadable.h b/lib/freadable.h
index 1a676b106f..c5d5d5cfb9 100644
--- a/lib/freadable.h
+++ b/lib/freadable.h
@@ -14,6 +14,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
/* Return true if the stream STREAM supports reading, false if it supports
diff --git a/lib/freadahead.h b/lib/freadahead.h
index 91c74d525c..d47026a05a 100644
--- a/lib/freadahead.h
+++ b/lib/freadahead.h
@@ -14,6 +14,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
#include <stdio.h>
diff --git a/lib/freading.h b/lib/freading.h
index 27b3abbc76..c18ea4a292 100644
--- a/lib/freading.h
+++ b/lib/freading.h
@@ -14,6 +14,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
/* Return true if the stream STREAM is opened read-only, or if the
diff --git a/lib/fts_.h b/lib/fts_.h
index 6de50bf692..fa3d4146e2 100644
--- a/lib/fts_.h
+++ b/lib/fts_.h
@@ -49,6 +49,11 @@
#ifndef _FTS_H
# define _FTS_H 1
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_NODISCARD. */
+# if !_LIBC && !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# ifdef _LIBC
# include <features.h>
# if __STDC_VERSION__ < 199901L
diff --git a/lib/fwritable.h b/lib/fwritable.h
index f87b112194..d3c0b46615 100644
--- a/lib/fwritable.h
+++ b/lib/fwritable.h
@@ -14,6 +14,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
/* Return true if the stream STREAM supports writing, false if it supports
diff --git a/lib/fwriting.h b/lib/fwriting.h
index 91e060081f..28cb2c878a 100644
--- a/lib/fwriting.h
+++ b/lib/fwriting.h
@@ -14,6 +14,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
/* Return true if the stream STREAM is opened write-only or
diff --git a/lib/gc.h b/lib/gc.h
index 1b94e36693..69a251f550 100644
--- a/lib/gc.h
+++ b/lib/gc.h
@@ -19,6 +19,11 @@
#ifndef _GL_GC_H
# define _GL_GC_H
+/* This file uses _GL_ATTRIBUTE_CONST. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
/* Get size_t. */
# include <stddef.h>
diff --git a/lib/get_progname_of.h b/lib/get_progname_of.h
index 58b21accdb..a6b75195f8 100644
--- a/lib/get_progname_of.h
+++ b/lib/get_progname_of.h
@@ -18,6 +18,11 @@
#ifndef _GET_PROGNAME_OF_H
#define _GET_PROGNAME_OF_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
#include <sys/types.h>
diff --git a/lib/gethrxtime.h b/lib/gethrxtime.h
index 4a6847b725..3a1340b69d 100644
--- a/lib/gethrxtime.h
+++ b/lib/gethrxtime.h
@@ -20,11 +20,13 @@
#ifndef GETHRXTIME_H_
#define GETHRXTIME_H_ 1
-#include "xtime.h"
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include "xtime.h"
+
_GL_INLINE_HEADER_BEGIN
#ifndef GETHRXTIME_INLINE
# define GETHRXTIME_INLINE _GL_INLINE
diff --git a/lib/gl_list.h b/lib/gl_list.h
index 9bb3d38206..b550db0672 100644
--- a/lib/gl_list.h
+++ b/lib/gl_list.h
@@ -18,11 +18,14 @@
#ifndef _GL_LIST_H
#define _GL_LIST_H
-#include <stddef.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_NODISCARD. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <stddef.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef GL_LIST_INLINE
# define GL_LIST_INLINE _GL_INLINE
diff --git a/lib/gl_map.h b/lib/gl_map.h
index f646ce8f51..12846f44d1 100644
--- a/lib/gl_map.h
+++ b/lib/gl_map.h
@@ -18,11 +18,14 @@
#ifndef _GL_MAP_H
#define _GL_MAP_H
-#include <stddef.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_NODISCARD. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <stddef.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef GL_MAP_INLINE
# define GL_MAP_INLINE _GL_INLINE
diff --git a/lib/gl_omap.h b/lib/gl_omap.h
index 180c5df448..124c6d0852 100644
--- a/lib/gl_omap.h
+++ b/lib/gl_omap.h
@@ -18,11 +18,14 @@
#ifndef _GL_OMAP_H
#define _GL_OMAP_H
-#include <stddef.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_NODISCARD. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <stddef.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef GL_OMAP_INLINE
# define GL_OMAP_INLINE _GL_INLINE
diff --git a/lib/gl_openssl.h b/lib/gl_openssl.h
index f63c386ecb..159a837f1a 100644
--- a/lib/gl_openssl.h
+++ b/lib/gl_openssl.h
@@ -17,13 +17,15 @@
/* Written by Pádraig Brady */
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#ifndef GL_OPENSSL_NAME
# error "Please define GL_OPENSSL_NAME to 1,5,256 etc."
#endif
-#ifndef _GL_INLINE_HEADER_BEGIN
-# error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef GL_OPENSSL_INLINE
# define GL_OPENSSL_INLINE _GL_INLINE
diff --git a/lib/gl_oset.h b/lib/gl_oset.h
index 890056484a..d5f20297b8 100644
--- a/lib/gl_oset.h
+++ b/lib/gl_oset.h
@@ -18,11 +18,14 @@
#ifndef _GL_OSET_H
#define _GL_OSET_H
-#include <stddef.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_NODISCARD. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <stddef.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef GL_OSET_INLINE
# define GL_OSET_INLINE _GL_INLINE
diff --git a/lib/gl_set.h b/lib/gl_set.h
index b600ad572e..e88e2552bd 100644
--- a/lib/gl_set.h
+++ b/lib/gl_set.h
@@ -18,11 +18,14 @@
#ifndef _GL_SET_H
#define _GL_SET_H
-#include <stddef.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_NODISCARD. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <stddef.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef GL_SET_INLINE
# define GL_SET_INLINE _GL_INLINE
diff --git a/lib/gl_xlist.h b/lib/gl_xlist.h
index f5fd929bbe..91ed804b9d 100644
--- a/lib/gl_xlist.h
+++ b/lib/gl_xlist.h
@@ -18,12 +18,15 @@
#ifndef _GL_XLIST_H
#define _GL_XLIST_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "gl_list.h"
#include "xalloc.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef GL_XLIST_INLINE
# define GL_XLIST_INLINE _GL_INLINE
diff --git a/lib/gl_xmap.h b/lib/gl_xmap.h
index cfb2b9c3b9..ad1edbfb76 100644
--- a/lib/gl_xmap.h
+++ b/lib/gl_xmap.h
@@ -18,12 +18,15 @@
#ifndef _GL_XMAP_H
#define _GL_XMAP_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "gl_map.h"
#include "xalloc.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef GL_XMAP_INLINE
# define GL_XMAP_INLINE _GL_INLINE
diff --git a/lib/gl_xomap.h b/lib/gl_xomap.h
index 4b7da8d019..e9115627d2 100644
--- a/lib/gl_xomap.h
+++ b/lib/gl_xomap.h
@@ -18,12 +18,15 @@
#ifndef _GL_XOMAP_H
#define _GL_XOMAP_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "gl_omap.h"
#include "xalloc.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef GL_XOMAP_INLINE
# define GL_XOMAP_INLINE _GL_INLINE
diff --git a/lib/gl_xoset.h b/lib/gl_xoset.h
index f58930985c..5ebb209b2d 100644
--- a/lib/gl_xoset.h
+++ b/lib/gl_xoset.h
@@ -18,12 +18,15 @@
#ifndef _GL_XOSET_H
#define _GL_XOSET_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "gl_oset.h"
#include "xalloc.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef GL_XOSET_INLINE
# define GL_XOSET_INLINE _GL_INLINE
diff --git a/lib/gl_xset.h b/lib/gl_xset.h
index 769bca8210..921e1f38f4 100644
--- a/lib/gl_xset.h
+++ b/lib/gl_xset.h
@@ -18,12 +18,15 @@
#ifndef _GL_XSET_H
#define _GL_XSET_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "gl_set.h"
#include "xalloc.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef GL_XSET_INLINE
# define GL_XSET_INLINE _GL_INLINE
diff --git a/lib/gl_xsublist.h b/lib/gl_xsublist.h
index 47db4ab277..5d92e6c3e5 100644
--- a/lib/gl_xsublist.h
+++ b/lib/gl_xsublist.h
@@ -19,12 +19,15 @@
#ifndef _GL_XSUBLIST_H
#define _GL_XSUBLIST_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "gl_sublist.h"
#include "xalloc.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef GL_XSUBLIST_INLINE
# define GL_XSUBLIST_INLINE _GL_INLINE
diff --git a/lib/glob.in.h b/lib/glob.in.h
index 7fc3ef7347..1f0481d524 100644
--- a/lib/glob.in.h
+++ b/lib/glob.in.h
@@ -32,6 +32,11 @@
#ifndef _@GUARD_PREFIX@_GLOB_H
#define _@GUARD_PREFIX@_GLOB_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
diff --git a/lib/glthread/cond.h b/lib/glthread/cond.h
index 5e6f681cac..4c780d2def 100644
--- a/lib/glthread/cond.h
+++ b/lib/glthread/cond.h
@@ -48,6 +48,11 @@
#ifndef _GLTHREAD_COND_H
#define _GLTHREAD_COND_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <errno.h>
#include <stdlib.h>
#include <time.h>
@@ -66,10 +71,6 @@
# endif
#endif
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
-
_GL_INLINE_HEADER_BEGIN
#ifndef _GLTHREAD_COND_INLINE
# define _GLTHREAD_COND_INLINE _GL_INLINE
diff --git a/lib/glthread/thread.h b/lib/glthread/thread.h
index 788dc5fe68..091b601e99 100644
--- a/lib/glthread/thread.h
+++ b/lib/glthread/thread.h
@@ -70,6 +70,11 @@
#ifndef _GLTHREAD_THREAD_H
#define _GLTHREAD_THREAD_H
+/* This file uses _Noreturn. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <errno.h>
#include <stdlib.h>
diff --git a/lib/hamt.h b/lib/hamt.h
index 36142418d3..bd025d4cb4 100644
--- a/lib/hamt.h
+++ b/lib/hamt.h
@@ -45,9 +45,12 @@
#ifndef _GL_HAMT_H
#define _GL_HAMT_H
-#ifndef _GL_INLINE_HEADER_BEGIN
-# error "Please include config.h first."
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_DEALLOC,
+ _GL_ATTRIBUTE_NODISCARD. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
#endif
+
_GL_INLINE_HEADER_BEGIN
#ifndef _GL_HAMT_INLINE
# define _GL_HAMT_INLINE _GL_INLINE
diff --git a/lib/hash-pjw-bare.h b/lib/hash-pjw-bare.h
index fb847946fb..7498ca20b4 100644
--- a/lib/hash-pjw-bare.h
+++ b/lib/hash-pjw-bare.h
@@ -14,6 +14,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
/* Compute a hash code for a buffer starting at X and of size N,
diff --git a/lib/hash-pjw.h b/lib/hash-pjw.h
index 5e046c54d4..69af02f2c4 100644
--- a/lib/hash-pjw.h
+++ b/lib/hash-pjw.h
@@ -14,6 +14,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
/* Compute a hash code for a NUL-terminated string starting at X,
diff --git a/lib/hash-triple.h b/lib/hash-triple.h
index 64d437285d..f2cf38b1db 100644
--- a/lib/hash-triple.h
+++ b/lib/hash-triple.h
@@ -19,6 +19,11 @@
#ifndef HASH_TRIPLE_H
#define HASH_TRIPLE_H
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/lib/hash.h b/lib/hash.h
index fe88b4dda8..be42e5af6a 100644
--- a/lib/hash.h
+++ b/lib/hash.h
@@ -24,6 +24,13 @@
#ifndef HASH_H_
# define HASH_H_
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEPRECATED,
+ _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_PURE,
+ _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
# include <stdio.h>
# ifdef __cplusplus
diff --git a/lib/i-ring.h b/lib/i-ring.h
index a2e0c7a571..e10b5d980b 100644
--- a/lib/i-ring.h
+++ b/lib/i-ring.h
@@ -15,6 +15,11 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
enum { I_RING_SIZE = 4 };
static_assert (1 <= I_RING_SIZE);
diff --git a/lib/ialloc.h b/lib/ialloc.h
index 275237ccb1..8d49887b6a 100644
--- a/lib/ialloc.h
+++ b/lib/ialloc.h
@@ -18,15 +18,18 @@
#ifndef IALLOC_H_
#define IALLOC_H_
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_COLD,
+ _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "idx.h"
#include <errno.h>
#include <stdint.h>
#include <stdlib.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef IALLOC_INLINE
# define IALLOC_INLINE _GL_INLINE
diff --git a/lib/iconv.in.h b/lib/iconv.in.h
index 09943a72cb..49390e98ca 100644
--- a/lib/iconv.in.h
+++ b/lib/iconv.in.h
@@ -28,6 +28,11 @@
#ifndef _@GUARD_PREFIX@_ICONV_H
#define _@GUARD_PREFIX@_ICONV_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
diff --git a/lib/ino-map.h b/lib/ino-map.h
index 06a664b3ed..a71d7bcfbb 100644
--- a/lib/ino-map.h
+++ b/lib/ino-map.h
@@ -19,6 +19,12 @@
#ifndef _GL_INO_MAP_H
# define _GL_INO_MAP_H
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+ _GL_ATTRIBUTE_NONNULL. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <sys/types.h>
# define INO_MAP_INSERT_FAILURE ((size_t) -1)
diff --git a/lib/inttostr.h b/lib/inttostr.h
index 6fbe2312bf..7e653f2d1f 100644
--- a/lib/inttostr.h
+++ b/lib/inttostr.h
@@ -17,6 +17,11 @@
/* Written by Paul Eggert */
+/* This file uses _GL_ATTRIBUTE_NODISCARD. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdint.h>
#include <sys/types.h>
diff --git a/lib/inttypes.in.h b/lib/inttypes.in.h
index 5b7ef12dc7..aa8258d33c 100644
--- a/lib/inttypes.in.h
+++ b/lib/inttypes.in.h
@@ -46,6 +46,11 @@
#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
#define INTTYPES_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Include <stdint.h> or the gnulib replacement.
But avoid namespace pollution on glibc systems. */
#ifndef __GLIBC__
diff --git a/lib/javaversion.h b/lib/javaversion.h
index 1e89291e7d..99157466b9 100644
--- a/lib/javaversion.h
+++ b/lib/javaversion.h
@@ -18,6 +18,11 @@
#ifndef _JAVAVERSION_H
#define _JAVAVERSION_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
diff --git a/lib/langinfo.in.h b/lib/langinfo.in.h
index 82e1e3cb1b..057cf15695 100644
--- a/lib/langinfo.in.h
+++ b/lib/langinfo.in.h
@@ -34,6 +34,11 @@
#ifndef _@GUARD_PREFIX@_LANGINFO_H
#define _@GUARD_PREFIX@_LANGINFO_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#if !@HAVE_LANGINFO_H@
diff --git a/lib/locale.in.h b/lib/locale.in.h
index e37702c4eb..917a43b02d 100644
--- a/lib/locale.in.h
+++ b/lib/locale.in.h
@@ -44,6 +44,11 @@
#ifndef _@GUARD_PREFIX@_LOCALE_H
#define _@GUARD_PREFIX@_LOCALE_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* NetBSD 5.0 mis-defines NULL. */
#include <stddef.h>
diff --git a/lib/localename.h b/lib/localename.h
index bfb429cb4d..f5663a6b37 100644
--- a/lib/localename.h
+++ b/lib/localename.h
@@ -17,6 +17,11 @@
#ifndef _GL_LOCALENAME_H
#define _GL_LOCALENAME_H
+/* This file uses _GL_ATTRIBUTE_CONST. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/lib/malloc.in.h b/lib/malloc.in.h
index 2fcbe23535..3da05c2057 100644
--- a/lib/malloc.in.h
+++ b/lib/malloc.in.h
@@ -46,6 +46,11 @@
#ifndef _@GUARD_PREFIX@_MALLOC_H
#define _@GUARD_PREFIX@_MALLOC_H
+/* This file uses _GL_ATTRIBUTE_DEALLOC, GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Solaris declares memalign() in <stdlib.h>, not in <malloc.h>. */
#if defined __sun || defined __hpux
# include <stdlib.h>
diff --git a/lib/malloca.h b/lib/malloca.h
index 325c727717..576a56de40 100644
--- a/lib/malloca.h
+++ b/lib/malloca.h
@@ -18,6 +18,12 @@
#ifndef _MALLOCA_H
#define _MALLOCA_H
+/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_DEALLOC,
+ _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <alloca.h>
#include <stddef.h>
#include <stdlib.h>
diff --git a/lib/math.in.h b/lib/math.in.h
index 76d48a4443..9d0e6918aa 100644
--- a/lib/math.in.h
+++ b/lib/math.in.h
@@ -48,14 +48,17 @@
#ifndef _@GUARD_PREFIX@_MATH_H
#define _@GUARD_PREFIX@_MATH_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_CONST,
+ GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>. */
#if defined __VMS && ! defined NAN
# include <fp.h>
#endif
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef _GL_MATH_INLINE
# define _GL_MATH_INLINE _GL_INLINE
diff --git a/lib/mbchar.h b/lib/mbchar.h
index 65050c023b..a2ff1d8b21 100644
--- a/lib/mbchar.h
+++ b/lib/mbchar.h
@@ -144,13 +144,15 @@
#ifndef _MBCHAR_H
#define _MBCHAR_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <string.h>
#include <wchar.h>
#include <wctype.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef MBCHAR_INLINE
# define MBCHAR_INLINE _GL_INLINE
diff --git a/lib/mbfile.h b/lib/mbfile.h
index faf95f4be7..3482f394b9 100644
--- a/lib/mbfile.h
+++ b/lib/mbfile.h
@@ -47,6 +47,11 @@
#ifndef _MBFILE_H
#define _MBFILE_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <assert.h>
#include <stdio.h>
#include <string.h>
@@ -54,9 +59,6 @@
#include "mbchar.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef MBFILE_INLINE
# define MBFILE_INLINE _GL_INLINE
diff --git a/lib/mbiter.h b/lib/mbiter.h
index ce901932f1..7b41870b55 100644
--- a/lib/mbiter.h
+++ b/lib/mbiter.h
@@ -82,6 +82,11 @@
#ifndef _MBITER_H
#define _MBITER_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <assert.h>
#include <stddef.h>
#include <string.h>
@@ -89,9 +94,6 @@
#include "mbchar.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef MBITER_INLINE
# define MBITER_INLINE _GL_INLINE
diff --git a/lib/mbuiter.h b/lib/mbuiter.h
index fc1b9dbb32..7a619f19e1 100644
--- a/lib/mbuiter.h
+++ b/lib/mbuiter.h
@@ -89,6 +89,11 @@
#ifndef _MBUITER_H
#define _MBUITER_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <assert.h>
#include <stddef.h>
#include <stdlib.h>
@@ -98,9 +103,6 @@
#include "mbchar.h"
#include "strnlen1.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef MBUITER_INLINE
# define MBUITER_INLINE _GL_INLINE
diff --git a/lib/memcasecmp.h b/lib/memcasecmp.h
index d8732401df..e5101aff03 100644
--- a/lib/memcasecmp.h
+++ b/lib/memcasecmp.h
@@ -17,6 +17,11 @@
/* Written by Jim Meyering. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
int memcasecmp (const void *vs1, const void *vs2, size_t n) _GL_ATTRIBUTE_PURE;
diff --git a/lib/memchr2.h b/lib/memchr2.h
index 51d8e7bbcf..6554a676b4 100644
--- a/lib/memchr2.h
+++ b/lib/memchr2.h
@@ -14,6 +14,11 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
#ifdef __cplusplus
diff --git a/lib/memcmp2.h b/lib/memcmp2.h
index abcf3e7650..0878a73e73 100644
--- a/lib/memcmp2.h
+++ b/lib/memcmp2.h
@@ -17,6 +17,11 @@
#ifndef MEMCMP2_H
#define MEMCMP2_H
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
#ifdef __cplusplus
diff --git a/lib/modechange.h b/lib/modechange.h
index cd613c8555..b4fc36a563 100644
--- a/lib/modechange.h
+++ b/lib/modechange.h
@@ -19,6 +19,11 @@
#if ! defined MODECHANGE_H_
# define MODECHANGE_H_
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <stdlib.h>
# include <sys/types.h>
diff --git a/lib/monetary.in.h b/lib/monetary.in.h
index 255958d2d8..45a92802b5 100644
--- a/lib/monetary.in.h
+++ b/lib/monetary.in.h
@@ -29,6 +29,11 @@
#ifndef _@GUARD_PREFIX@_MONETARY_H
#define _@GUARD_PREFIX@_MONETARY_H
+/* This file uses _GL_ATTRIBUTE_FORMAT, GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#if @GNULIB_STRFMON_L@
# if @HAVE_XLOCALE_H@
/* Get locale_t on Mac OS X 10.12. */
diff --git a/lib/mountlist.h b/lib/mountlist.h
index aed7f8877f..d33f13a036 100644
--- a/lib/mountlist.h
+++ b/lib/mountlist.h
@@ -19,6 +19,11 @@
#ifndef MOUNTLIST_H_
# define MOUNTLIST_H_
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <sys/types.h>
/* A mount table entry. */
diff --git a/lib/netdb.in.h b/lib/netdb.in.h
index 9549cd7326..ea5ff40c60 100644
--- a/lib/netdb.in.h
+++ b/lib/netdb.in.h
@@ -36,6 +36,11 @@
#ifndef _@GUARD_PREFIX@_NETDB_H
#define _@GUARD_PREFIX@_NETDB_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get <netdb.h> definitions such as 'socklen_t' on IRIX 6.5 and OSF/1 4.0 and
'struct hostent' on MinGW. */
#include <sys/socket.h>
diff --git a/lib/obstack.h b/lib/obstack.h
index 1e66e4d4c8..cb080c33b5 100644
--- a/lib/obstack.h
+++ b/lib/obstack.h
@@ -103,6 +103,11 @@
#ifndef _OBSTACK_H
#define _OBSTACK_H 1
+/* This file uses _Noreturn, _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#ifndef _OBSTACK_INTERFACE_VERSION
# define _OBSTACK_INTERFACE_VERSION 2
#endif
diff --git a/lib/openat.h b/lib/openat.h
index 37d8eedbee..ba4a780dc0 100644
--- a/lib/openat.h
+++ b/lib/openat.h
@@ -19,15 +19,18 @@
#ifndef _GL_HEADER_OPENAT
#define _GL_HEADER_OPENAT
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _Noreturn,
+ _GL_ATTRIBUTE_DEPRECATED. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#if !HAVE_OPENAT
diff --git a/lib/opendirat.h b/lib/opendirat.h
index 9e445cd29a..5934e89bcd 100644
--- a/lib/opendirat.h
+++ b/lib/opendirat.h
@@ -15,6 +15,11 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <dirent.h>
DIR *opendirat (int, char const *, int, int *)
diff --git a/lib/pagealign_alloc.h b/lib/pagealign_alloc.h
index 8f2083c446..e8ed6551c5 100644
--- a/lib/pagealign_alloc.h
+++ b/lib/pagealign_alloc.h
@@ -18,6 +18,13 @@
#ifndef _PAGEALIGN_ALLOC_H
# define _PAGEALIGN_ALLOC_H
+/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_DEALLOC,
+ _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_NONNULL,
+ _GL_ATTRIBUTE_RETURNS_NONNULL. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <stddef.h>
/* Free a memory block.
diff --git a/lib/pipe-filter-aux.h b/lib/pipe-filter-aux.h
index 6294d0df85..4d60ddace9 100644
--- a/lib/pipe-filter-aux.h
+++ b/lib/pipe-filter-aux.h
@@ -15,9 +15,11 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
_GL_INLINE_HEADER_BEGIN
#ifndef PIPE_FILTER_AUX_INLINE
# define PIPE_FILTER_AUX_INLINE _GL_INLINE
diff --git a/lib/pipe-filter.h b/lib/pipe-filter.h
index d93ba9d84d..219f07c901 100644
--- a/lib/pipe-filter.h
+++ b/lib/pipe-filter.h
@@ -19,6 +19,11 @@
#ifndef _PIPE_FILTER_H
#define _PIPE_FILTER_H
+/* This file uses _GL_ATTRIBUTE_DEALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
#ifdef __cplusplus
diff --git a/lib/poll.in.h b/lib/poll.in.h
index 9a15ef6732..5ae097fa60 100644
--- a/lib/poll.in.h
+++ b/lib/poll.in.h
@@ -33,6 +33,11 @@
#ifndef _@GUARD_PREFIX@_POLL_H
#define _@GUARD_PREFIX@_POLL_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* On native Windows, get the 'struct pollfd' type and the POLL* macro
definitions before we override them. mingw defines them in <winsock2.h>
if _WIN32_WINNT >= 0x0600. */
diff --git a/lib/priv-set.h b/lib/priv-set.h
index 78af45038f..e9ffc0c9aa 100644
--- a/lib/priv-set.h
+++ b/lib/priv-set.h
@@ -17,9 +17,11 @@
Written by David Bartley. */
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
_GL_INLINE_HEADER_BEGIN
#ifndef PRIV_SET_INLINE
# define PRIV_SET_INLINE _GL_INLINE
diff --git a/lib/pthread.in.h b/lib/pthread.in.h
index 4f206681a9..ff6ad34a32 100644
--- a/lib/pthread.in.h
+++ b/lib/pthread.in.h
@@ -51,6 +51,11 @@
#ifndef _@GUARD_PREFIX@_PTHREAD_H_
#define _@GUARD_PREFIX@_PTHREAD_H_
+/* This file uses _Noreturn, _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#define __need_system_stdlib_h
#include <stdlib.h>
#undef __need_system_stdlib_h
diff --git a/lib/pty.in.h b/lib/pty.in.h
index 8f7b81071a..f746234428 100644
--- a/lib/pty.in.h
+++ b/lib/pty.in.h
@@ -29,6 +29,11 @@
#ifndef _@GUARD_PREFIX@_PTY_H
#define _@GUARD_PREFIX@_PTY_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Some platforms declare this in a different header than glibc. */
#if @HAVE_UTIL_H@
# include <util.h>
diff --git a/lib/quotearg.h b/lib/quotearg.h
index eb156126cb..baab58668f 100644
--- a/lib/quotearg.h
+++ b/lib/quotearg.h
@@ -21,6 +21,11 @@
#ifndef QUOTEARG_H_
# define QUOTEARG_H_ 1
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <stdlib.h>
/* Basic quoting styles. For each style, an example is given on the
diff --git a/lib/read-file.h b/lib/read-file.h
index 4122954e9b..5a241369c5 100644
--- a/lib/read-file.h
+++ b/lib/read-file.h
@@ -18,6 +18,11 @@
#ifndef READ_FILE_H
#define READ_FILE_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get size_t, free(). */
#include <stdlib.h>
diff --git a/lib/readline.h b/lib/readline.h
index 3840d0fc2a..9048b727d7 100644
--- a/lib/readline.h
+++ b/lib/readline.h
@@ -18,6 +18,11 @@
#ifndef GL_READLINE_H
#define GL_READLINE_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#if HAVE_READLINE_READLINE_H
/* <readline/readline.h> makes use of the FILE type without including
<stdio.h> itself. */
diff --git a/lib/readutmp.h b/lib/readutmp.h
index bf2437e02a..eda80a44fa 100644
--- a/lib/readutmp.h
+++ b/lib/readutmp.h
@@ -20,6 +20,11 @@
#ifndef __READUTMP_H__
# define __READUTMP_H__
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <stdlib.h>
# include <sys/types.h>
diff --git a/lib/regex-quote.h b/lib/regex-quote.h
index cc704b2bbc..db8c249e50 100644
--- a/lib/regex-quote.h
+++ b/lib/regex-quote.h
@@ -18,6 +18,11 @@
#ifndef _REGEX_QUOTE_H
#define _REGEX_QUOTE_H
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
/* Specifies a quotation task for converting a fixed string to a regular
diff --git a/lib/relocatable.h b/lib/relocatable.h
index ce8238a906..b29c29ed1b 100644
--- a/lib/relocatable.h
+++ b/lib/relocatable.h
@@ -18,6 +18,11 @@
#ifndef _RELOCATABLE_H
#define _RELOCATABLE_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
#ifdef __cplusplus
diff --git a/lib/safe-alloc.h b/lib/safe-alloc.h
index 6896e88147..46079d5c69 100644
--- a/lib/safe-alloc.h
+++ b/lib/safe-alloc.h
@@ -20,11 +20,14 @@
#ifndef SAFE_ALLOC_H_
#define SAFE_ALLOC_H_
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_NODISCARD. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef SAFE_ALLOC_INLINE
# define SAFE_ALLOC_INLINE _GL_INLINE
diff --git a/lib/savedir.h b/lib/savedir.h
index 0cc7c4eeaf..a1244ccbe4 100644
--- a/lib/savedir.h
+++ b/lib/savedir.h
@@ -21,6 +21,11 @@
#ifndef _GL_SAVEDIR_H
#define _GL_SAVEDIR_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <dirent.h>
#include <stdlib.h>
diff --git a/lib/savewd.h b/lib/savewd.h
index 4f69c04a05..3727f6a47b 100644
--- a/lib/savewd.h
+++ b/lib/savewd.h
@@ -18,13 +18,15 @@
/* Written by Paul Eggert. */
#ifndef SAVEWD_H
-# define SAVEWD_H 1
+#define SAVEWD_H 1
-#include <sys/types.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <sys/types.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef SAVEWD_INLINE
# define SAVEWD_INLINE _GL_INLINE
diff --git a/lib/sched.in.h b/lib/sched.in.h
index 2e035b5548..fb314b86a3 100644
--- a/lib/sched.in.h
+++ b/lib/sched.in.h
@@ -32,6 +32,11 @@
#ifndef _@GUARD_PREFIX@_SCHED_H
#define _@GUARD_PREFIX@_SCHED_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get pid_t.
This is needed on glibc 2.11 (see
glibc bug <https://sourceware.org/bugzilla/show_bug.cgi?id=13198>)
diff --git a/lib/se-context.in.h b/lib/se-context.in.h
index 28515fb522..3847358e7e 100644
--- a/lib/se-context.in.h
+++ b/lib/se-context.in.h
@@ -17,13 +17,16 @@
/* Written by Jim Meyering, 2007. */
#ifndef SELINUX_CONTEXT_H
-# define SELINUX_CONTEXT_H
+#define SELINUX_CONTEXT_H
-# include <errno.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_MAYBE_UNUSED. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <errno.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef SE_CONTEXT_INLINE
# define SE_CONTEXT_INLINE _GL_INLINE
diff --git a/lib/se-label.in.h b/lib/se-label.in.h
index 2e2a6ce8eb..6455808679 100644
--- a/lib/se-label.in.h
+++ b/lib/se-label.in.h
@@ -17,15 +17,17 @@
/* Written by Paul Eggert. */
#ifndef SELINUX_LABEL_H
-
#define SELINUX_LABEL_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_MAYBE_UNUSED. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <selinux/selinux.h>
#include <errno.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef SE_LABEL_INLINE
# define SE_LABEL_INLINE _GL_INLINE
diff --git a/lib/se-selinux.in.h b/lib/se-selinux.in.h
index edf273be1f..5ec13dde73 100644
--- a/lib/se-selinux.in.h
+++ b/lib/se-selinux.in.h
@@ -27,12 +27,15 @@
# if !defined _@GUARD_PREFIX@_SELINUX_SELINUX_H
# define _@GUARD_PREFIX@_SELINUX_SELINUX_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_MAYBE_UNUSED. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <sys/types.h>
# include <errno.h>
-# ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-# endif
_GL_INLINE_HEADER_BEGIN
# ifndef SE_SELINUX_INLINE
# define SE_SELINUX_INLINE _GL_INLINE
diff --git a/lib/search.in.h b/lib/search.in.h
index 32b022edc6..c0f5f0a856 100644
--- a/lib/search.in.h
+++ b/lib/search.in.h
@@ -30,6 +30,11 @@
#ifndef _@GUARD_PREFIX@_SEARCH_H
#define _@GUARD_PREFIX@_SEARCH_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
diff --git a/lib/sh-quote.h b/lib/sh-quote.h
index df8e6af6d1..8c377c442c 100644
--- a/lib/sh-quote.h
+++ b/lib/sh-quote.h
@@ -22,6 +22,11 @@
arguments, since Unix shells interpret characters like " ", "'", "<", ">",
"$", '*', '?' etc. in a special way. */
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
#ifdef __cplusplus
diff --git a/lib/sig-handler.h b/lib/sig-handler.h
index 3ead5fabe6..e85d30b3d3 100644
--- a/lib/sig-handler.h
+++ b/lib/sig-handler.h
@@ -18,11 +18,13 @@
#ifndef _GL_SIG_HANDLER_H
#define _GL_SIG_HANDLER_H
-#include <signal.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <signal.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef SIG_HANDLER_INLINE
# define SIG_HANDLER_INLINE _GL_INLINE
diff --git a/lib/signal.in.h b/lib/signal.in.h
index fea12e6572..a7006a2c49 100644
--- a/lib/signal.in.h
+++ b/lib/signal.in.h
@@ -55,6 +55,11 @@
#ifndef _@GUARD_PREFIX@_SIGNAL_H
#define _@GUARD_PREFIX@_SIGNAL_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* For testing the OpenBSD version. */
#if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
&& defined __OpenBSD__
diff --git a/lib/sigpipe-die.h b/lib/sigpipe-die.h
index 1917d8cff0..f90edf105f 100644
--- a/lib/sigpipe-die.h
+++ b/lib/sigpipe-die.h
@@ -41,6 +41,11 @@
#ifndef _SIGPIPE_DIE_H
#define _SIGPIPE_DIE_H
+/* This file uses _Noreturn. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/lib/sockets.h b/lib/sockets.h
index a0b1601d6b..55d5e3a4b5 100644
--- a/lib/sockets.h
+++ b/lib/sockets.h
@@ -20,6 +20,11 @@
#ifndef SOCKETS_H
#define SOCKETS_H 1
+/* This file uses _GL_ATTRIBUTE_CONST. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#define SOCKETS_1_0 0x0001
#define SOCKETS_1_1 0x0101
#define SOCKETS_2_0 0x0002
diff --git a/lib/spawn.in.h b/lib/spawn.in.h
index b35e5d77b3..169dd0bf96 100644
--- a/lib/spawn.in.h
+++ b/lib/spawn.in.h
@@ -47,6 +47,11 @@
#ifndef _@GUARD_PREFIX@_SPAWN_H
#define _@GUARD_PREFIX@_SPAWN_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get definitions of 'struct sched_param' and 'sigset_t'.
But avoid namespace pollution on glibc systems. */
#if !(defined __GLIBC__ && !defined __UCLIBC__)
diff --git a/lib/ssfmalloc.h b/lib/ssfmalloc.h
index 510a08d400..87f44014e4 100644
--- a/lib/ssfmalloc.h
+++ b/lib/ssfmalloc.h
@@ -78,6 +78,11 @@
beginning of a page sequence returned by ALLOC_PAGES.
*/
+/* This file uses _GL_CMP. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* =================== Declarations of exported functions =================== */
#include <stdint.h>
diff --git a/lib/stack.h b/lib/stack.h
index 7a1abafc9c..ab6b873176 100644
--- a/lib/stack.h
+++ b/lib/stack.h
@@ -58,6 +58,11 @@
#include "xalloc.h"
*/
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#ifndef GL_STACK_ELEMENT
# error "Please define GL_STACK_ELEMENT first."
#endif
diff --git a/lib/stat-time.h b/lib/stat-time.h
index 92aa1e64e2..487e8b0971 100644
--- a/lib/stat-time.h
+++ b/lib/stat-time.h
@@ -20,15 +20,18 @@
#ifndef STAT_TIME_H
#define STAT_TIME_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_UNUSED,
+ _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <errno.h>
#include <stdckdint.h>
#include <stddef.h>
#include <sys/stat.h>
#include <time.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef _GL_STAT_TIME_INLINE
# define _GL_STAT_TIME_INLINE _GL_INLINE
diff --git a/lib/stdalign.in.h b/lib/stdalign.in.h
index b616c100fd..2503817c87 100644
--- a/lib/stdalign.in.h
+++ b/lib/stdalign.in.h
@@ -37,6 +37,11 @@
#ifndef _@GUARD_PREFIX@_STDALIGN_H
#define _@GUARD_PREFIX@_STDALIGN_H
+/* This file uses alignof, alignas. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#if (defined alignas \
|| (defined __STDC_VERSION__ && 202311 <= __STDC_VERSION__) \
|| (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)))
diff --git a/lib/stdarg.in.h b/lib/stdarg.in.h
index 64baf87f04..8145216e86 100644
--- a/lib/stdarg.in.h
+++ b/lib/stdarg.in.h
@@ -27,6 +27,11 @@
#ifndef _@GUARD_PREFIX@_STDARG_H
#define _@GUARD_PREFIX@_STDARG_H
+/* This file uses va_copy. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#ifndef va_copy
# define va_copy(a,b) ((a) = (b))
#endif
diff --git a/lib/stddef.in.h b/lib/stddef.in.h
index ddbb74cedb..431e819b8b 100644
--- a/lib/stddef.in.h
+++ b/lib/stddef.in.h
@@ -101,6 +101,11 @@ typedef long max_align_t;
# ifndef _@GUARD_PREFIX@_STDDEF_H
# define _@GUARD_PREFIX@_STDDEF_H
+/* This file uses _Noreturn. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Some platforms lack wchar_t. */
#if !@HAVE_WCHAR_T@
# define wchar_t int
diff --git a/lib/stdio-safer.h b/lib/stdio-safer.h
index 9d404f1397..d091a25189 100644
--- a/lib/stdio-safer.h
+++ b/lib/stdio-safer.h
@@ -17,6 +17,11 @@
/* Written by Paul Eggert. */
+/* This file uses _GL_ATTRIBUTE_DEALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdio.h>
#if GNULIB_FOPEN_SAFER
diff --git a/lib/stdio.in.h b/lib/stdio.in.h
index f318014978..9c63e36b2a 100644
--- a/lib/stdio.in.h
+++ b/lib/stdio.in.h
@@ -57,6 +57,12 @@
#ifndef _@GUARD_PREFIX@_STDIO_H
#define _@GUARD_PREFIX@_STDIO_H
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_FORMAT,
+ GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get va_list. Needed on many systems, including glibc 2.8. */
#include <stdarg.h>
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h
index f79c5a9d29..da827a5c7b 100644
--- a/lib/stdlib.in.h
+++ b/lib/stdlib.in.h
@@ -37,6 +37,12 @@
#ifndef _@GUARD_PREFIX@_STDLIB_H
#define _@GUARD_PREFIX@_STDLIB_H
+/* This file uses _Noreturn, _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+ _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* NetBSD 5.0 mis-defines NULL. */
#include <stddef.h>
diff --git a/lib/stdnoreturn.in.h b/lib/stdnoreturn.in.h
index 9a304ef05b..d6d4c2adac 100644
--- a/lib/stdnoreturn.in.h
+++ b/lib/stdnoreturn.in.h
@@ -17,6 +17,11 @@
/* Written by Paul Eggert. */
+/* This file uses _Noreturn. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#ifndef noreturn
/* ISO C11 <stdnoreturn.h> for platforms that lack it.
diff --git a/lib/strerror-override.h b/lib/strerror-override.h
index 388cc28227..c9b3ba8c19 100644
--- a/lib/strerror-override.h
+++ b/lib/strerror-override.h
@@ -18,6 +18,11 @@
#ifndef _GL_STRERROR_OVERRIDE_H
# define _GL_STRERROR_OVERRIDE_H
+/* This file uses _GL_ATTRIBUTE_CONST. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <errno.h>
# include <stddef.h>
diff --git a/lib/striconv.h b/lib/striconv.h
index d0eb8e642d..6cd7dc31cf 100644
--- a/lib/striconv.h
+++ b/lib/striconv.h
@@ -18,6 +18,11 @@
#ifndef _STRICONV_H
#define _STRICONV_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
#if HAVE_ICONV
#include <iconv.h>
diff --git a/lib/striconveh.h b/lib/striconveh.h
index 7858b03ef6..6bced43e9c 100644
--- a/lib/striconveh.h
+++ b/lib/striconveh.h
@@ -18,6 +18,11 @@
#ifndef _STRICONVEH_H
#define _STRICONVEH_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
#if HAVE_ICONV
#include <iconv.h>
diff --git a/lib/striconveha.h b/lib/striconveha.h
index d0b0f4ddb7..a5c307ea2a 100644
--- a/lib/striconveha.h
+++ b/lib/striconveha.h
@@ -18,6 +18,11 @@
#ifndef _STRICONVEHA_H
#define _STRICONVEHA_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
#include "iconveh.h"
diff --git a/lib/string-buffer.h b/lib/string-buffer.h
index 8e2d80d16e..6cc4a82dec 100644
--- a/lib/string-buffer.h
+++ b/lib/string-buffer.h
@@ -19,6 +19,11 @@
#ifndef _STRING_BUFFER_H
#define _STRING_BUFFER_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdarg.h>
#include <stdlib.h>
diff --git a/lib/string-desc-quotearg.h b/lib/string-desc-quotearg.h
index b7cb306b89..20237a3bc7 100644
--- a/lib/string-desc-quotearg.h
+++ b/lib/string-desc-quotearg.h
@@ -19,13 +19,16 @@
#ifndef _STRING_DESC_QUOTEARG_H
#define _STRING_DESC_QUOTEARG_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_MALLOC,
+ _GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "string-desc.h"
#include "quotearg.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef GL_STRING_DESC_QUOTEARG_INLINE
# define GL_STRING_DESC_QUOTEARG_INLINE _GL_INLINE
diff --git a/lib/string-desc.h b/lib/string-desc.h
index 9bd086f689..e5204d4ea6 100644
--- a/lib/string-desc.h
+++ b/lib/string-desc.h
@@ -19,6 +19,12 @@
#ifndef _STRING_DESC_H
#define _STRING_DESC_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
+ _GL_ATTRIBUTE_NODISCARD. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get ptrdiff_t. */
#include <stddef.h>
@@ -32,9 +38,6 @@
#include "idx.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef GL_STRING_DESC_INLINE
# define GL_STRING_DESC_INLINE _GL_INLINE
diff --git a/lib/string.in.h b/lib/string.in.h
index b6bf432e1f..f7e46e936f 100644
--- a/lib/string.in.h
+++ b/lib/string.in.h
@@ -44,6 +44,12 @@
#ifndef _@GUARD_PREFIX@_STRING_H
#define _@GUARD_PREFIX@_STRING_H
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+ _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* NetBSD 5.0 mis-defines NULL. */
#include <stddef.h>
diff --git a/lib/strings.in.h b/lib/strings.in.h
index 2cfe8b1670..bc5c2a1e88 100644
--- a/lib/strings.in.h
+++ b/lib/strings.in.h
@@ -36,6 +36,11 @@
#ifndef _@GUARD_PREFIX@_STRINGS_H
#define _@GUARD_PREFIX@_STRINGS_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#if ! @HAVE_DECL_STRNCASECMP@
/* Get size_t. */
# include <stddef.h>
diff --git a/lib/strnlen1.h b/lib/strnlen1.h
index 9e5b502bef..02dcd4c4ab 100644
--- a/lib/strnlen1.h
+++ b/lib/strnlen1.h
@@ -17,6 +17,11 @@
#ifndef _STRNLEN1_H
#define _STRNLEN1_H
+/* This file uses _GL_ATTRIBUTE_PURE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
diff --git a/lib/sys_file.in.h b/lib/sys_file.in.h
index d05337ad42..fb402e04c6 100644
--- a/lib/sys_file.in.h
+++ b/lib/sys_file.in.h
@@ -32,6 +32,11 @@
#ifndef _@GUARD_PREFIX@_SYS_FILE_H
#define _@GUARD_PREFIX@_SYS_FILE_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#ifndef LOCK_SH
/* Operations for the 'flock' call (same as Linux kernel constants). */
# define LOCK_SH 1 /* Shared lock. */
diff --git a/lib/sys_ioctl.in.h b/lib/sys_ioctl.in.h
index 86840e45a9..48e9c68090 100644
--- a/lib/sys_ioctl.in.h
+++ b/lib/sys_ioctl.in.h
@@ -29,6 +29,11 @@
#ifndef _@GUARD_PREFIX@_SYS_IOCTL_H
#define _@GUARD_PREFIX@_SYS_IOCTL_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* AIX 5.1 and Solaris 10 declare ioctl() in <unistd.h> and in <stropts.h>,
but not in <sys/ioctl.h>.
Haiku declares ioctl() in <unistd.h>, but not in <sys/ioctl.h>.
diff --git a/lib/sys_random.in.h b/lib/sys_random.in.h
index 8dca132683..35fd47b6b5 100644
--- a/lib/sys_random.in.h
+++ b/lib/sys_random.in.h
@@ -45,6 +45,11 @@
#ifndef _@GUARD_PREFIX@_SYS_RANDOM_H
#define _@GUARD_PREFIX@_SYS_RANDOM_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <sys/types.h>
/* Define the GRND_* constants. */
diff --git a/lib/sys_resource.in.h b/lib/sys_resource.in.h
index b0af9aa289..d7b898824e 100644
--- a/lib/sys_resource.in.h
+++ b/lib/sys_resource.in.h
@@ -36,6 +36,11 @@
#ifndef _@GUARD_PREFIX@_SYS_RESOURCE_H
#define _@GUARD_PREFIX@_SYS_RESOURCE_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#if !@HAVE_SYS_RESOURCE_H@
/* A platform that lacks <sys/resource.h>. */
diff --git a/lib/sys_select.in.h b/lib/sys_select.in.h
index 13440fa6f0..e817274181 100644
--- a/lib/sys_select.in.h
+++ b/lib/sys_select.in.h
@@ -71,6 +71,11 @@
#ifndef _@GUARD_PREFIX@_SYS_SELECT_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* On many platforms, <sys/select.h> assumes prior inclusion of
<sys/types.h>. Also, mingw defines sigset_t there, instead of
in <signal.h> where it belongs. */
diff --git a/lib/sys_socket.in.h b/lib/sys_socket.in.h
index 6705593f4a..a3c0e834f4 100644
--- a/lib/sys_socket.in.h
+++ b/lib/sys_socket.in.h
@@ -63,9 +63,12 @@
#ifndef _@GUARD_PREFIX@_SYS_SOCKET_H
#define _@GUARD_PREFIX@_SYS_SOCKET_H
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, GNULIB_POSIXCHECK,
+ alignof. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
_GL_INLINE_HEADER_BEGIN
#ifndef _GL_SYS_SOCKET_INLINE
# define _GL_SYS_SOCKET_INLINE _GL_INLINE
diff --git a/lib/sys_stat.in.h b/lib/sys_stat.in.h
index 0c2f39c12b..cbf98d9177 100644
--- a/lib/sys_stat.in.h
+++ b/lib/sys_stat.in.h
@@ -48,6 +48,11 @@
#ifndef _@GUARD_PREFIX@_SYS_STAT_H
#define _@GUARD_PREFIX@_SYS_STAT_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
diff --git a/lib/sys_time.in.h b/lib/sys_time.in.h
index e833d55167..62cd6bcd35 100644
--- a/lib/sys_time.in.h
+++ b/lib/sys_time.in.h
@@ -41,6 +41,11 @@
#ifndef _@GUARD_PREFIX@_SYS_TIME_H
#define _@GUARD_PREFIX@_SYS_TIME_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#if ! @HAVE_SYS_TIME_H@
# include <time.h>
#endif
diff --git a/lib/sys_times.in.h b/lib/sys_times.in.h
index 148dc60db9..6977f70318 100644
--- a/lib/sys_times.in.h
+++ b/lib/sys_times.in.h
@@ -32,6 +32,11 @@
# define _@GUARD_PREFIX@_SYS_TIMES_H
+/* This file uses GNULIB_POSIXCHECK. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
/* Get clock_t.
But avoid namespace pollution on glibc systems. */
# ifndef __GLIBC__
diff --git a/lib/sys_utsname.in.h b/lib/sys_utsname.in.h
index 4420d94ef4..db689116df 100644
--- a/lib/sys_utsname.in.h
+++ b/lib/sys_utsname.in.h
@@ -35,6 +35,11 @@
#define _@GUARD_PREFIX@_SYS_UTSNAME_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
diff --git a/lib/sys_wait.in.h b/lib/sys_wait.in.h
index 6454eb5ad7..15d8ab28f1 100644
--- a/lib/sys_wait.in.h
+++ b/lib/sys_wait.in.h
@@ -30,6 +30,11 @@
#ifndef _@GUARD_PREFIX@_SYS_WAIT_H
#define _@GUARD_PREFIX@_SYS_WAIT_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get pid_t. */
#include <sys/types.h>
diff --git a/lib/system-quote.h b/lib/system-quote.h
index 2046c06a7e..870a5c1107 100644
--- a/lib/system-quote.h
+++ b/lib/system-quote.h
@@ -46,6 +46,11 @@
is to truncate the entire command line.
*/
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
#ifdef __cplusplus
diff --git a/lib/term-style-control.h b/lib/term-style-control.h
index 4e14c7c5b1..6b77277cf3 100644
--- a/lib/term-style-control.h
+++ b/lib/term-style-control.h
@@ -21,6 +21,11 @@
/* The user of this file will define a macro 'term_style_user_data', such that
'struct term_style_user_data' is a user-defined struct. */
+/* This file uses _GL_ASYNC_SAFE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* The amount of control to take over the underlying tty in order to avoid
garbled output on the screen, due to interleaved output of escape sequences
diff --git a/lib/termios.in.h b/lib/termios.in.h
index aa3a7cc9d9..2b64250d55 100644
--- a/lib/termios.in.h
+++ b/lib/termios.in.h
@@ -40,6 +40,11 @@ extern "C" {
#ifndef _@GUARD_PREFIX@_TERMIOS_H
#define _@GUARD_PREFIX@_TERMIOS_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get pid_t. */
#include <sys/types.h>
diff --git a/lib/textstyle.in.h b/lib/textstyle.in.h
index 38645bf6f8..c87fa38059 100644
--- a/lib/textstyle.in.h
+++ b/lib/textstyle.in.h
@@ -30,6 +30,11 @@
#ifndef _TEXTSTYLE_H
#define _TEXTSTYLE_H
+/* This file uses _GL_ATTRIBUTE_MAYBE_UNUSED, HAVE_TCDRAIN. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <errno.h>
#include <stdarg.h>
#include <stddef.h>
diff --git a/lib/threads.in.h b/lib/threads.in.h
index 2bc0f23b32..ff01b50cbb 100644
--- a/lib/threads.in.h
+++ b/lib/threads.in.h
@@ -47,6 +47,11 @@
#ifndef _@GUARD_PREFIX@_THREADS_H
#define _@GUARD_PREFIX@_THREADS_H
+/* This file uses _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, _Thread_local. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#if !@HAVE_THREADS_H@
# include <time.h>
diff --git a/lib/time.in.h b/lib/time.in.h
index f9b517a3dd..39dc1e4369 100644
--- a/lib/time.in.h
+++ b/lib/time.in.h
@@ -45,6 +45,11 @@
# @INCLUDE_NEXT@ @NEXT_TIME_H@
+/* This file uses _GL_ATTRIBUTE_DEPRECATED, GNULIB_POSIXCHECK. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
/* NetBSD 5.0 mis-defines NULL. */
# include <stddef.h>
diff --git a/lib/timespec.h b/lib/timespec.h
index ba78647f09..0bdfd76ef7 100644
--- a/lib/timespec.h
+++ b/lib/timespec.h
@@ -19,11 +19,14 @@
#if ! defined TIMESPEC_H
#define TIMESPEC_H
-#include <time.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_CONST,
+ _GL_ATTRIBUTE_PURE, _GL_CMP. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <time.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef _GL_TIMESPEC_INLINE
# define _GL_TIMESPEC_INLINE _GL_INLINE
diff --git a/lib/trim.h b/lib/trim.h
index b558fb218a..a8040ef3ad 100644
--- a/lib/trim.h
+++ b/lib/trim.h
@@ -16,6 +16,11 @@
/* Written by Davide Angelocola <davide.angelocola@gmail.com> */
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
/* Trim mode. */
diff --git a/lib/u64.h b/lib/u64.h
index 0353ad4d9a..8a99335b6a 100644
--- a/lib/u64.h
+++ b/lib/u64.h
@@ -17,11 +17,13 @@
/* Written by Paul Eggert. */
-#include <stdint.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include <stdint.h>
+
_GL_INLINE_HEADER_BEGIN
#ifndef _GL_U64_INLINE
# define _GL_U64_INLINE _GL_INLINE
diff --git a/lib/uchar.in.h b/lib/uchar.in.h
index 27b91c5b58..aaba0b604a 100644
--- a/lib/uchar.in.h
+++ b/lib/uchar.in.h
@@ -43,6 +43,12 @@
# @INCLUDE_NEXT@ @NEXT_UCHAR_H@
#endif
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_BEGIN_C_LINKAGE,
+ _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get uint_least16_t, uint_least32_t. */
#include <stdint.h>
@@ -66,9 +72,6 @@
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index 8ba9867894..93ca7a97f9 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -69,6 +69,11 @@
#if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
#define _@GUARD_PREFIX@_UNISTD_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* NetBSD 5.0 mis-defines NULL. Also get size_t. */
/* But avoid namespace pollution on glibc systems. */
#ifndef __GLIBC__
@@ -170,9 +175,6 @@
# include <getopt-pfx-core.h>
#endif
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef _GL_UNISTD_INLINE
# define _GL_UNISTD_INLINE _GL_INLINE
diff --git a/lib/utime.in.h b/lib/utime.in.h
index b185019176..384271434a 100644
--- a/lib/utime.in.h
+++ b/lib/utime.in.h
@@ -29,6 +29,11 @@
#ifndef _@GUARD_PREFIX@_UTIME_H
#define _@GUARD_PREFIX@_UTIME_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#if !@HAVE_UTIME_H@
# include <sys/utime.h>
#endif
diff --git a/lib/utimens.h b/lib/utimens.h
index a7056981f3..4a21792a7e 100644
--- a/lib/utimens.h
+++ b/lib/utimens.h
@@ -17,6 +17,11 @@
/* Written by Paul Eggert. */
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <time.h>
int fdutimens (int, char const *, struct timespec const [2]);
int utimens (char const *, struct timespec const [2]);
@@ -26,9 +31,6 @@ int lutimens (char const *, struct timespec const [2]);
# include <fcntl.h>
# include <sys/stat.h>
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef _GL_UTIMENS_INLINE
# define _GL_UTIMENS_INLINE _GL_INLINE
diff --git a/lib/utmp.in.h b/lib/utmp.in.h
index 2c8c79d129..895704cb1b 100644
--- a/lib/utmp.in.h
+++ b/lib/utmp.in.h
@@ -32,6 +32,11 @@
#ifndef _@GUARD_PREFIX@_UTMP_H
#define _@GUARD_PREFIX@_UTMP_H
+/* This file uses GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* FreeBSD, NetBSD, OpenBSD, macOS, Minix, Haiku declare login_tty in
<util.h> or <libutil.h>, not in <utmp.h>. Solaris declares it in
<termios.h>, not in <utmp.h>. */
diff --git a/lib/vasnprintf.h b/lib/vasnprintf.h
index f69649fb45..2d13407079 100644
--- a/lib/vasnprintf.h
+++ b/lib/vasnprintf.h
@@ -17,6 +17,11 @@
#ifndef _VASNPRINTF_H
#define _VASNPRINTF_H
+/* This file uses _GL_ATTRIBUTE_FORMAT. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get va_list. */
#include <stdarg.h>
diff --git a/lib/verror.h b/lib/verror.h
index 8917988db6..bd385e1ef5 100644
--- a/lib/verror.h
+++ b/lib/verror.h
@@ -17,6 +17,11 @@
#ifndef _VERROR_H
#define _VERROR_H 1
+/* This file uses _GL_ATTRIBUTE_FORMAT. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdarg.h>
/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */
diff --git a/lib/version-etc.h b/lib/version-etc.h
index 58297fc349..2313d98b3f 100644
--- a/lib/version-etc.h
+++ b/lib/version-etc.h
@@ -19,6 +19,11 @@
#ifndef VERSION_ETC_H
# define VERSION_ETC_H 1
+/* This file uses _GL_ATTRIBUTE_SENTINEL. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include <stdarg.h>
# include <stdio.h>
diff --git a/lib/wchar.in.h b/lib/wchar.in.h
index 194a1c6723..b2620ad92e 100644
--- a/lib/wchar.in.h
+++ b/lib/wchar.in.h
@@ -84,6 +84,12 @@
#ifndef _@GUARD_PREFIX@_WCHAR_H
#define _@GUARD_PREFIX@_WCHAR_H
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+ _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
that can be freed by passing them as the Ith argument to the
function F. */
diff --git a/lib/wctype.in.h b/lib/wctype.in.h
index f6e474d38d..22fa1df239 100644
--- a/lib/wctype.in.h
+++ b/lib/wctype.in.h
@@ -44,6 +44,11 @@
#ifndef _@GUARD_PREFIX@_WCTYPE_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, GNULIB_POSIXCHECK. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#if @HAVE_WINT_T@
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
# include <wchar.h>
@@ -68,9 +73,6 @@
#ifndef _@GUARD_PREFIX@_WCTYPE_H
#define _@GUARD_PREFIX@_WCTYPE_H
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef _GL_WCTYPE_INLINE
# define _GL_WCTYPE_INLINE _GL_INLINE
diff --git a/lib/windows-spawn.h b/lib/windows-spawn.h
index 42c5af7717..b218181803 100644
--- a/lib/windows-spawn.h
+++ b/lib/windows-spawn.h
@@ -18,6 +18,11 @@
#ifndef _WINDOWS_SPAWN_H
#define _WINDOWS_SPAWN_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdint.h>
#include <stdlib.h>
diff --git a/lib/windows-thread.h b/lib/windows-thread.h
index 68b8e96813..e6511d736e 100644
--- a/lib/windows-thread.h
+++ b/lib/windows-thread.h
@@ -20,6 +20,11 @@
#ifndef _WINDOWS_THREAD_H
#define _WINDOWS_THREAD_H
+/* This file uses _Noreturn. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#define WIN32_LEAN_AND_MEAN /* avoid including junk */
#include <windows.h>
diff --git a/lib/xalloc.h b/lib/xalloc.h
index f373c2fe59..0a951e1d59 100644
--- a/lib/xalloc.h
+++ b/lib/xalloc.h
@@ -18,6 +18,13 @@
#ifndef XALLOC_H_
#define XALLOC_H_
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _Noreturn,
+ _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_MALLOC,
+ _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stddef.h>
#include <stdlib.h>
@@ -25,9 +32,6 @@
# include "idx.h"
#endif
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef XALLOC_INLINE
# define XALLOC_INLINE _GL_INLINE
diff --git a/lib/xbinary-io.h b/lib/xbinary-io.h
index e66df769f4..d38256b489 100644
--- a/lib/xbinary-io.h
+++ b/lib/xbinary-io.h
@@ -17,11 +17,13 @@
#ifndef _XBINARY_IO_H
#define _XBINARY_IO_H
-#include "binary-io.h"
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _Noreturn. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
+#include "binary-io.h"
+
_GL_INLINE_HEADER_BEGIN
#ifndef XBINARY_IO_INLINE
# define XBINARY_IO_INLINE _GL_INLINE
diff --git a/lib/xgetcwd.h b/lib/xgetcwd.h
index 7467bc7bf1..59d225e642 100644
--- a/lib/xgetcwd.h
+++ b/lib/xgetcwd.h
@@ -14,6 +14,11 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
extern char *xgetcwd (void)
diff --git a/lib/xgetdomainname.h b/lib/xgetdomainname.h
index 2d4d67bdf2..86b8b18b80 100644
--- a/lib/xgetdomainname.h
+++ b/lib/xgetdomainname.h
@@ -18,6 +18,11 @@
#ifndef _XGETDOMAINNAME_H
#define _XGETDOMAINNAME_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
/* Return the NIS domain name of the machine, in malloc'd storage.
diff --git a/lib/xgethostname.h b/lib/xgethostname.h
index aad35601a8..c404b77439 100644
--- a/lib/xgethostname.h
+++ b/lib/xgethostname.h
@@ -15,6 +15,11 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
char *xgethostname (void)
diff --git a/lib/xmalloca.h b/lib/xmalloca.h
index 4b1bd470c2..3f03eba5aa 100644
--- a/lib/xmalloca.h
+++ b/lib/xmalloca.h
@@ -18,6 +18,12 @@
#ifndef _XMALLOCA_H
#define _XMALLOCA_H
+/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_DEALLOC,
+ _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include "malloca.h"
#include "xalloc.h"
#include "xalloc-oversized.h"
diff --git a/lib/xmemdup0.h b/lib/xmemdup0.h
index 4f9888c314..256cb4e966 100644
--- a/lib/xmemdup0.h
+++ b/lib/xmemdup0.h
@@ -18,6 +18,11 @@
#ifndef XMEMDUP_H_
# define XMEMDUP_H_
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
# include <stdlib.h>
diff --git a/lib/xprintf.h b/lib/xprintf.h
index ae1ea8f71d..3e05290299 100644
--- a/lib/xprintf.h
+++ b/lib/xprintf.h
@@ -17,6 +17,11 @@
#ifndef _XPRINTF_H
#define _XPRINTF_H
+/* This file uses _GL_ATTRIBUTE_FORMAT. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdarg.h>
#include <stdio.h>
diff --git a/lib/xreadlink.h b/lib/xreadlink.h
index 48438ce7cb..44f848f86d 100644
--- a/lib/xreadlink.h
+++ b/lib/xreadlink.h
@@ -18,6 +18,11 @@
/* Written by Jim Meyering <jim@meyering.net> */
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
extern char *xreadlink (char const *filename)
diff --git a/lib/xsize.h b/lib/xsize.h
index 1ec78e776f..746d6569bf 100644
--- a/lib/xsize.h
+++ b/lib/xsize.h
@@ -18,6 +18,11 @@
#ifndef _XSIZE_H
#define _XSIZE_H
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get size_t. */
#include <stddef.h>
@@ -30,9 +35,6 @@
/* Get ATTRIBUTE_PURE. */
#include "attribute.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef XSIZE_INLINE
# define XSIZE_INLINE _GL_INLINE
diff --git a/lib/xstriconv.h b/lib/xstriconv.h
index f693194f8d..ee17e490c5 100644
--- a/lib/xstriconv.h
+++ b/lib/xstriconv.h
@@ -18,6 +18,11 @@
#ifndef _XSTRICONV_H
#define _XSTRICONV_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
#if HAVE_ICONV
#include <iconv.h>
diff --git a/lib/xstriconveh.h b/lib/xstriconveh.h
index bb3c3a8db0..fe15eed912 100644
--- a/lib/xstriconveh.h
+++ b/lib/xstriconveh.h
@@ -18,6 +18,11 @@
#ifndef _XSTRICONVEH_H
#define _XSTRICONVEH_H
+/* This file uses _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
/* Get the 'enum iconv_ilseq_handler' and iconveh_t types, and the
diff --git a/lib/xstring-desc.h b/lib/xstring-desc.h
index b07831baf4..cbc0f97eab 100644
--- a/lib/xstring-desc.h
+++ b/lib/xstring-desc.h
@@ -19,14 +19,16 @@
#ifndef _XSTRING_DESC_H
#define _XSTRING_DESC_H 1
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <string.h>
#include "string-desc.h"
#include "xalloc.h"
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
_GL_INLINE_HEADER_BEGIN
#ifndef GL_XSTRING_DESC_INLINE
# define GL_XSTRING_DESC_INLINE _GL_INLINE
diff --git a/lib/xstrndup.h b/lib/xstrndup.h
index 502881ea3d..5844731010 100644
--- a/lib/xstrndup.h
+++ b/lib/xstrndup.h
@@ -15,6 +15,11 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
#include <stdlib.h>
/* Return a newly allocated copy of at most N bytes of STRING.
diff --git a/lib/xstrtol-error.h b/lib/xstrtol-error.h
index d8892ea871..0872f590d9 100644
--- a/lib/xstrtol-error.h
+++ b/lib/xstrtol-error.h
@@ -19,6 +19,11 @@
#ifndef XSTRTOL_ERROR_H_
# define XSTRTOL_ERROR_H_ 1
+/* This file uses _Noreturn. */
+# if !_GL_CONFIG_H_INCLUDED
+# error "Please include config.h first."
+# endif
+
# include "xstrtol.h"
# include <getopt.h>
diff --git a/lib/xtime.h b/lib/xtime.h
index ddad01ed47..84a8a5db9a 100644
--- a/lib/xtime.h
+++ b/lib/xtime.h
@@ -20,9 +20,11 @@
#ifndef XTIME_H_
#define XTIME_H_ 1
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */
+#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
+
_GL_INLINE_HEADER_BEGIN
#ifndef XTIME_INLINE
# define XTIME_INLINE _GL_INLINE
diff --git a/lib/xvasprintf.h b/lib/xvasprintf.h
index 2f941ab22a..6a5952faa6 100644
--- a/lib/xvasprintf.h
+++ b/lib/xvasprintf.h
@@ -17,6 +17,11 @@
#ifndef _XVASPRINTF_H
#define _XVASPRINTF_H
+/* This file uses _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_MALLOC. */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
/* Get va_list. */
#include <stdarg.h>
diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4
index 0df2181871..0216017461 100644
--- a/m4/gnulib-common.m4
+++ b/m4/gnulib-common.m4
@@ -1,4 +1,4 @@
-# gnulib-common.m4 serial 83
+# gnulib-common.m4 serial 84
dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -15,6 +15,10 @@ AC_DEFUN([gl_COMMON], [
AC_REQUIRE([gl_ZZGNULIB])
])
AC_DEFUN([gl_COMMON_BODY], [
+ AH_VERBATIM([0witness],
+[/* Witness that <config.h> has been included. */
+#define _GL_CONFIG_H_INCLUDED 1
+])
AH_VERBATIM([_GL_GNUC_PREREQ],
[/* True if the compiler says it groks GNU C version MAJOR.MINOR. */
#if defined __GNUC__ && defined __GNUC_MINOR__