From 53f5c5b56fd4b2c6a2fabdd26553296aff192380 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 22 Jul 2021 12:31:19 -0700 Subject: texinfo: Update gnulib to fix build with glibc 2.34 Signed-off-by: Khem Raj Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- .../texinfo/texinfo/0001-gnulib-Update.patch | 11765 +++++++++++++++++++ meta/recipes-extended/texinfo/texinfo_6.8.bb | 1 + 2 files changed, 11766 insertions(+) create mode 100644 meta/recipes-extended/texinfo/texinfo/0001-gnulib-Update.patch (limited to 'meta') diff --git a/meta/recipes-extended/texinfo/texinfo/0001-gnulib-Update.patch b/meta/recipes-extended/texinfo/texinfo/0001-gnulib-Update.patch new file mode 100644 index 0000000000..470212cabd --- /dev/null +++ b/meta/recipes-extended/texinfo/texinfo/0001-gnulib-Update.patch @@ -0,0 +1,11765 @@ +From 4908050c39dbcdcbd59955ea23d692f25f342307 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 7 Jul 2021 13:42:35 -0700 +Subject: [PATCH] gnulib: Update + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + gnulib/lib/Makefile.am | 782 +++++++++++-------- + gnulib/lib/_Noreturn.h | 8 +- + gnulib/lib/alloca.in.h | 20 +- + gnulib/lib/arg-nonnull.h | 8 +- + gnulib/lib/argz.c | 16 +- + gnulib/lib/argz.in.h | 14 +- + gnulib/lib/asnprintf.c | 16 +- + gnulib/lib/asprintf.c | 16 +- + gnulib/lib/attribute.h | 16 +- + gnulib/lib/basename-lgpl.c | 14 +- + gnulib/lib/basename-lgpl.h | 26 +- + gnulib/lib/btowc.c | 14 +- + gnulib/lib/c++defs.h | 8 +- + gnulib/lib/calloc.c | 55 ++ + gnulib/lib/cdefs.h | 26 +- + gnulib/lib/cloexec.c | 18 +- + gnulib/lib/cloexec.h | 18 +- + gnulib/lib/close.c | 14 +- + gnulib/lib/dup2.c | 14 +- + gnulib/lib/dynarray.h | 24 +- + gnulib/lib/errno.in.h | 16 +- + gnulib/lib/error.c | 14 +- + gnulib/lib/error.h | 14 +- + gnulib/lib/exitfail.c | 14 +- + gnulib/lib/exitfail.h | 14 +- + gnulib/lib/fcntl.c | 14 +- + gnulib/lib/fcntl.in.h | 14 +- + gnulib/lib/fd-hook.c | 16 +- + gnulib/lib/fd-hook.h | 16 +- + gnulib/lib/filename.h | 8 +- + gnulib/lib/float+.h | 16 +- + gnulib/lib/float.c | 14 +- + gnulib/lib/float.in.h | 14 +- + gnulib/lib/free.c | 53 ++ + gnulib/lib/fstat.c | 14 +- + gnulib/lib/getdtablesize.c | 14 +- + gnulib/lib/getopt-cdefs.in.h | 21 +- + gnulib/lib/getopt-core.h | 8 +- + gnulib/lib/getopt-ext.h | 8 +- + gnulib/lib/getopt-pfx-core.h | 21 +- + gnulib/lib/getopt-pfx-ext.h | 21 +- + gnulib/lib/getopt.c | 8 +- + gnulib/lib/getopt.in.h | 24 +- + gnulib/lib/getopt1.c | 8 +- + gnulib/lib/getopt_int.h | 8 +- + gnulib/lib/getprogname.c | 18 +- + gnulib/lib/getprogname.h | 8 +- + gnulib/lib/gettext.h | 16 +- + gnulib/lib/glthread/lock.c | 16 +- + gnulib/lib/glthread/lock.h | 16 +- + gnulib/lib/glthread/threadlib.c | 16 +- + gnulib/lib/hard-locale.c | 14 +- + gnulib/lib/hard-locale.h | 14 +- + gnulib/lib/ialloc.c | 21 + + gnulib/lib/ialloc.h | 94 +++ + gnulib/lib/idx.h | 114 +++ + gnulib/lib/intprops.h | 26 +- + gnulib/lib/inttypes.in.h | 14 +- + gnulib/lib/iswblank.c | 16 +- + gnulib/lib/iswdigit.c | 16 +- + gnulib/lib/iswxdigit.c | 16 +- + gnulib/lib/itold.c | 14 +- + gnulib/lib/langinfo.in.h | 16 +- + gnulib/lib/lc-charset-dispatch.c | 14 +- + gnulib/lib/lc-charset-dispatch.h | 14 +- + gnulib/lib/libc-config.h | 25 +- + gnulib/lib/limits.in.h | 16 +- + gnulib/lib/localcharset.c | 16 +- + gnulib/lib/localcharset.h | 16 +- + gnulib/lib/locale.in.h | 14 +- + gnulib/lib/localeconv.c | 14 +- + gnulib/lib/malloc.c | 51 +- + gnulib/lib/malloc/dynarray-skeleton.c | 8 +- + gnulib/lib/malloc/dynarray.h | 8 +- + gnulib/lib/malloc/dynarray_at_failure.c | 8 +- + gnulib/lib/malloc/dynarray_emplace_enlarge.c | 8 +- + gnulib/lib/malloc/dynarray_finalize.c | 8 +- + gnulib/lib/malloc/dynarray_resize.c | 8 +- + gnulib/lib/malloc/dynarray_resize_clear.c | 8 +- + gnulib/lib/malloca.c | 24 +- + gnulib/lib/malloca.h | 21 +- + gnulib/lib/mbchar.c | 14 +- + gnulib/lib/mbchar.h | 14 +- + gnulib/lib/mbiter.c | 18 + + gnulib/lib/mbiter.h | 14 +- + gnulib/lib/mbrtowc-impl-utf8.h | 16 +- + gnulib/lib/mbrtowc-impl.h | 14 +- + gnulib/lib/mbrtowc.c | 14 +- + gnulib/lib/mbscasecmp.c | 14 +- + gnulib/lib/mbschr.c | 14 +- + gnulib/lib/mbsinit.c | 14 +- + gnulib/lib/mbslen.c | 14 +- + gnulib/lib/mbsncasecmp.c | 14 +- + gnulib/lib/mbsstr.c | 14 +- + gnulib/lib/mbtowc-impl.h | 14 +- + gnulib/lib/mbtowc-lock.c | 14 +- + gnulib/lib/mbtowc-lock.h | 14 +- + gnulib/lib/mbtowc.c | 14 +- + gnulib/lib/mbuiter.c | 17 + + gnulib/lib/mbuiter.h | 14 +- + gnulib/lib/memchr.c | 24 +- + gnulib/lib/memchr.valgrind | 14 +- + gnulib/lib/mempcpy.c | 16 +- + gnulib/lib/memrchr.c | 14 +- + gnulib/lib/minmax.h | 60 ++ + gnulib/lib/msvc-inval.c | 16 +- + gnulib/lib/msvc-inval.h | 16 +- + gnulib/lib/msvc-nothrow.c | 16 +- + gnulib/lib/msvc-nothrow.h | 16 +- + gnulib/lib/nl_langinfo-lock.c | 14 +- + gnulib/lib/nl_langinfo.c | 14 +- + gnulib/lib/open.c | 14 +- + gnulib/lib/pathmax.h | 16 +- + gnulib/lib/printf-args.c | 16 +- + gnulib/lib/printf-args.h | 16 +- + gnulib/lib/printf-parse.c | 27 +- + gnulib/lib/printf-parse.h | 16 +- + gnulib/lib/realloc.c | 63 ++ + gnulib/lib/reallocarray.c | 39 + + gnulib/lib/regcomp.c | 8 +- + gnulib/lib/regex.c | 8 +- + gnulib/lib/regex.h | 8 +- + gnulib/lib/regex_internal.c | 8 +- + gnulib/lib/regex_internal.h | 8 +- + gnulib/lib/regexec.c | 20 +- + gnulib/lib/setlocale-lock.c | 14 +- + gnulib/lib/setlocale_null.c | 14 +- + gnulib/lib/setlocale_null.h | 14 +- + gnulib/lib/size_max.h | 16 +- + gnulib/lib/stat-time.c | 18 + + gnulib/lib/stat-time.h | 14 +- + gnulib/lib/stat-w32.c | 14 +- + gnulib/lib/stat-w32.h | 14 +- + gnulib/lib/stat.c | 14 +- + gnulib/lib/stdarg.in.h | 16 +- + gnulib/lib/stdbool.in.h | 16 +- + gnulib/lib/stddef.in.h | 16 +- + gnulib/lib/stdint.in.h | 20 +- + gnulib/lib/stdio.in.h | 24 +- + gnulib/lib/stdlib.in.h | 146 +++- + gnulib/lib/stpcpy.c | 14 +- + gnulib/lib/str-kmp.h | 26 +- + gnulib/lib/str-two-way.h | 16 +- + gnulib/lib/strcasecmp.c | 16 +- + gnulib/lib/strcasestr.c | 16 +- + gnulib/lib/strdup.c | 16 +- + gnulib/lib/streq.h | 16 +- + gnulib/lib/strerror-override.c | 100 +-- + gnulib/lib/strerror-override.h | 15 +- + gnulib/lib/strerror.c | 14 +- + gnulib/lib/string.in.h | 18 +- + gnulib/lib/strings.in.h | 16 +- + gnulib/lib/strncasecmp.c | 16 +- + gnulib/lib/strndup.c | 16 +- + gnulib/lib/strnlen.c | 16 +- + gnulib/lib/strnlen1.c | 14 +- + gnulib/lib/strnlen1.h | 14 +- + gnulib/lib/strstr.c | 16 +- + gnulib/lib/sys_stat.in.h | 16 +- + gnulib/lib/sys_types.in.h | 16 +- + gnulib/lib/time.in.h | 58 +- + gnulib/lib/unistd.c | 18 + + gnulib/lib/unistd.in.h | 29 +- + gnulib/lib/unitypes.in.h | 16 +- + gnulib/lib/uniwidth.in.h | 16 +- + gnulib/lib/uniwidth/cjk.h | 16 +- + gnulib/lib/uniwidth/width.c | 16 +- + gnulib/lib/vasnprintf.c | 71 +- + gnulib/lib/vasnprintf.h | 16 +- + gnulib/lib/vasprintf.c | 16 +- + gnulib/lib/verify.h | 14 +- + gnulib/lib/warn-on-use.h | 8 +- + gnulib/lib/wchar.in.h | 18 +- + gnulib/lib/wcrtomb.c | 14 +- + gnulib/lib/wctype-h.c | 19 + + gnulib/lib/wctype.in.h | 26 +- + gnulib/lib/wcwidth.c | 14 +- + gnulib/lib/windows-initguard.h | 16 +- + gnulib/lib/windows-mutex.c | 16 +- + gnulib/lib/windows-mutex.h | 16 +- + gnulib/lib/windows-once.c | 16 +- + gnulib/lib/windows-once.h | 16 +- + gnulib/lib/windows-recmutex.c | 16 +- + gnulib/lib/windows-recmutex.h | 16 +- + gnulib/lib/windows-rwlock.c | 16 +- + gnulib/lib/windows-rwlock.h | 16 +- + gnulib/lib/xalloc-oversized.h | 53 +- + gnulib/lib/xalloc.h | 143 +--- + gnulib/lib/xmalloc.c | 293 +++++-- + gnulib/lib/xsize.c | 18 + + gnulib/lib/xsize.h | 16 +- + gnulib/m4/calloc.m4 | 82 ++ + gnulib/m4/fcntl_h.m4 | 39 +- + gnulib/m4/free.m4 | 52 ++ + gnulib/m4/fstat.m4 | 4 +- + gnulib/m4/gnulib-common.m4 | 84 +- + gnulib/m4/gnulib-comp.m4 | 192 ++++- + gnulib/m4/inttypes.m4 | 31 +- + gnulib/m4/iswdigit.m4 | 6 +- + gnulib/m4/iswxdigit.m4 | 4 +- + gnulib/m4/langinfo_h.m4 | 25 +- + gnulib/m4/largefile.m4 | 28 +- + gnulib/m4/locale_h.m4 | 37 +- + gnulib/m4/malloc.m4 | 152 +++- + gnulib/m4/math_h.m4 | 227 +++--- + gnulib/m4/mbslen.m4 | 4 +- + gnulib/m4/memchr.m4 | 4 +- + gnulib/m4/mempcpy.m4 | 4 +- + gnulib/m4/memrchr.m4 | 4 +- + gnulib/m4/minmax.m4 | 44 ++ + gnulib/m4/printf.m4 | 5 +- + gnulib/m4/realloc.m4 | 63 ++ + gnulib/m4/reallocarray.m4 | 23 + + gnulib/m4/stat.m4 | 4 +- + gnulib/m4/stddef_h.m4 | 23 +- + gnulib/m4/stdint.m4 | 6 +- + gnulib/m4/stdio_h.m4 | 168 ++-- + gnulib/m4/stdlib_h.m4 | 122 +-- + gnulib/m4/stpcpy.m4 | 4 +- + gnulib/m4/strcase.m4 | 6 +- + gnulib/m4/strcasestr.m4 | 4 +- + gnulib/m4/strdup.m4 | 6 +- + gnulib/m4/strerror.m4 | 4 +- + gnulib/m4/string_h.m4 | 124 +-- + gnulib/m4/strings_h.m4 | 38 +- + gnulib/m4/strndup.m4 | 4 +- + gnulib/m4/strnlen.m4 | 4 +- + gnulib/m4/strstr.m4 | 4 +- + gnulib/m4/sys_socket_h.m4 | 53 +- + gnulib/m4/sys_stat_h.m4 | 65 +- + gnulib/m4/sys_types_h.m4 | 16 +- + gnulib/m4/time_h.m4 | 62 +- + gnulib/m4/unistd_h.m4 | 194 ++--- + gnulib/m4/visibility.m4 | 6 +- + gnulib/m4/wchar_h.m4 | 109 +-- + gnulib/m4/wctype_h.m4 | 39 +- + gnulib/m4/wint_t.m4 | 10 +- + gnulib/m4/year2038.m4 | 112 +++ + 238 files changed, 4521 insertions(+), 2636 deletions(-) + create mode 100644 gnulib/lib/calloc.c + create mode 100644 gnulib/lib/free.c + create mode 100644 gnulib/lib/ialloc.c + create mode 100644 gnulib/lib/ialloc.h + create mode 100644 gnulib/lib/idx.h + create mode 100644 gnulib/lib/minmax.h + create mode 100644 gnulib/lib/realloc.c + create mode 100644 gnulib/lib/reallocarray.c + create mode 100644 gnulib/m4/calloc.m4 + create mode 100644 gnulib/m4/free.m4 + create mode 100644 gnulib/m4/minmax.m4 + create mode 100644 gnulib/m4/realloc.m4 + create mode 100644 gnulib/m4/reallocarray.m4 + create mode 100644 gnulib/m4/year2038.m4 + +--- a/gnulib/lib/Makefile.am ++++ b/gnulib/lib/Makefile.am +@@ -165,6 +165,24 @@ EXTRA_libgnu_a_SOURCES += btowc.c + + ## end gnulib module btowc + ++## begin gnulib module calloc-gnu ++ ++ ++EXTRA_DIST += calloc.c ++ ++EXTRA_libgnu_a_SOURCES += calloc.c ++ ++## end gnulib module calloc-gnu ++ ++## begin gnulib module calloc-posix ++ ++ ++EXTRA_DIST += calloc.c ++ ++EXTRA_libgnu_a_SOURCES += calloc.c ++ ++## end gnulib module calloc-posix ++ + ## begin gnulib module cloexec + + if gl_GNULIB_ENABLED_cloexec +@@ -200,6 +218,32 @@ EXTRA_libgnu_a_SOURCES += dup2.c + ## begin gnulib module dynarray + + if gl_GNULIB_ENABLED_dynarray ++BUILT_SOURCES += malloc/dynarray.gl.h malloc/dynarray-skeleton.gl.h ++ ++malloc/dynarray.gl.h: malloc/dynarray.h ++ $(AM_V_at)$(MKDIR_P) malloc ++ $(AM_V_GEN)rm -f $@-t $@ && \ ++ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ++ sed -e '/libc_hidden_proto/d' < $(srcdir)/malloc/dynarray.h; \ ++ } > $@-t && \ ++ mv $@-t $@ ++MOSTLYCLEANFILES += malloc/dynarray.gl.h malloc/dynarray.gl.h-t ++ ++malloc/dynarray-skeleton.gl.h: malloc/dynarray-skeleton.c ++ $(AM_V_at)$(MKDIR_P) malloc ++ $(AM_V_GEN)rm -f $@-t $@ && \ ++ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ++ sed -e 's|||g' \ ++ -e 's|__attribute_maybe_unused__|_GL_ATTRIBUTE_MAYBE_UNUSED|g' \ ++ -e 's|__attribute_nonnull__|_GL_ATTRIBUTE_NONNULL|g' \ ++ -e 's|__attribute_warn_unused_result__|_GL_ATTRIBUTE_NODISCARD|g' \ ++ -e 's|__glibc_likely|_GL_LIKELY|g' \ ++ -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \ ++ < $(srcdir)/malloc/dynarray-skeleton.c; \ ++ } > $@-t && \ ++ mv $@-t $@ ++MOSTLYCLEANFILES += malloc/dynarray-skeleton.gl.h malloc/dynarray-skeleton.gl.h-t ++ + libgnu_a_SOURCES += malloc/dynarray_at_failure.c malloc/dynarray_emplace_enlarge.c malloc/dynarray_finalize.c malloc/dynarray_resize.c malloc/dynarray_resize_clear.c + + endif +@@ -285,13 +329,13 @@ fcntl.h: fcntl.in.h $(top_builddir)/conf + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ +- -e 's/@''GNULIB_CREAT''@/$(GNULIB_CREAT)/g' \ +- -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ +- -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ +- -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ +- -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ +- -e 's/@''GNULIB_MDA_CREAT''@/$(GNULIB_MDA_CREAT)/g' \ +- -e 's/@''GNULIB_MDA_OPEN''@/$(GNULIB_MDA_OPEN)/g' \ ++ -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \ ++ -e 's/@''GNULIB_FCNTL''@/$(GL_GNULIB_FCNTL)/g' \ ++ -e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \ ++ -e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \ ++ -e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \ ++ -e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \ ++ -e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \ + -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ + -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ + -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \ +@@ -358,6 +402,17 @@ EXTRA_libgnu_a_SOURCES += float.c itold. + + ## end gnulib module float + ++## begin gnulib module free-posix ++ ++if gl_GNULIB_ENABLED_ef07dc4b3077c11ea9cef586db4e5955 ++ ++endif ++EXTRA_DIST += free.c ++ ++EXTRA_libgnu_a_SOURCES += free.c ++ ++## end gnulib module free-posix ++ + ## begin gnulib module fstat + + if gl_GNULIB_ENABLED_fstat +@@ -445,11 +500,23 @@ EXTRA_DIST += $(top_srcdir)/build-aux/co + + ## end gnulib module havelib + ++## begin gnulib module ialloc ++ ++libgnu_a_SOURCES += ialloc.c ++ ++EXTRA_DIST += ialloc.h ++ ++## end gnulib module ialloc ++ ++## begin gnulib module idx ++ ++libgnu_a_SOURCES += idx.h ++ ++## end gnulib module idx ++ + ## begin gnulib module intprops + +-if gl_GNULIB_ENABLED_intprops + +-endif + EXTRA_DIST += intprops.h + + ## end gnulib module intprops +@@ -470,10 +537,10 @@ inttypes.h: inttypes.in.h $(top_builddir + -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ + -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ + -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ +- -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \ +- -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \ +- -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \ +- -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \ ++ -e 's/@''GNULIB_IMAXABS''@/$(GL_GNULIB_IMAXABS)/g' \ ++ -e 's/@''GNULIB_IMAXDIV''@/$(GL_GNULIB_IMAXDIV)/g' \ ++ -e 's/@''GNULIB_STRTOIMAX''@/$(GL_GNULIB_STRTOIMAX)/g' \ ++ -e 's/@''GNULIB_STRTOUMAX''@/$(GL_GNULIB_STRTOUMAX)/g' \ + -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ + -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ + -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ +@@ -540,7 +607,7 @@ langinfo.h: langinfo.in.h $(top_builddir + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ +- -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \ ++ -e 's/@''GNULIB_NL_LANGINFO''@/$(GL_GNULIB_NL_LANGINFO)/g' \ + -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ + -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ + -e 's|@''HAVE_LANGINFO_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|g' \ +@@ -622,11 +689,11 @@ locale.h: locale.in.h $(top_builddir)/co + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ +- -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ +- -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ +- -e 's/@''GNULIB_SETLOCALE_NULL''@/$(GNULIB_SETLOCALE_NULL)/g' \ +- -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ +- -e 's/@''GNULIB_LOCALENAME''@/$(GNULIB_LOCALENAME)/g' \ ++ -e 's/@''GNULIB_LOCALECONV''@/$(GL_GNULIB_LOCALECONV)/g' \ ++ -e 's/@''GNULIB_SETLOCALE''@/$(GL_GNULIB_SETLOCALE)/g' \ ++ -e 's/@''GNULIB_SETLOCALE_NULL''@/$(GL_GNULIB_SETLOCALE_NULL)/g' \ ++ -e 's/@''GNULIB_DUPLOCALE''@/$(GL_GNULIB_DUPLOCALE)/g' \ ++ -e 's/@''GNULIB_LOCALENAME''@/$(GL_GNULIB_LOCALENAME)/g' \ + -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \ + -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ + -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \ +@@ -670,11 +737,18 @@ libgnu_a_SOURCES += glthread/lock.h glth + endif + ## end gnulib module lock + ++## begin gnulib module malloc-gnu ++ ++ ++EXTRA_DIST += malloc.c ++ ++EXTRA_libgnu_a_SOURCES += malloc.c ++ ++## end gnulib module malloc-gnu ++ + ## begin gnulib module malloc-posix + +-if gl_GNULIB_ENABLED_ef455225c00f5049c808c2eda3e76866 + +-endif + EXTRA_DIST += malloc.c + + EXTRA_libgnu_a_SOURCES += malloc.c +@@ -805,6 +879,12 @@ EXTRA_libgnu_a_SOURCES += memrchr.c + + ## end gnulib module memrchr + ++## begin gnulib module minmax ++ ++libgnu_a_SOURCES += minmax.h ++ ++## end gnulib module minmax ++ + ## begin gnulib module msvc-inval + + if gl_GNULIB_ENABLED_f691f076f650964c9f5598c3ee487616 +@@ -856,6 +936,33 @@ EXTRA_DIST += pathmax.h + + ## end gnulib module pathmax + ++## begin gnulib module realloc-gnu ++ ++ ++EXTRA_DIST += realloc.c ++ ++EXTRA_libgnu_a_SOURCES += realloc.c ++ ++## end gnulib module realloc-gnu ++ ++## begin gnulib module realloc-posix ++ ++ ++EXTRA_DIST += realloc.c ++ ++EXTRA_libgnu_a_SOURCES += realloc.c ++ ++## end gnulib module realloc-posix ++ ++## begin gnulib module reallocarray ++ ++ ++EXTRA_DIST += reallocarray.c ++ ++EXTRA_libgnu_a_SOURCES += reallocarray.c ++ ++## end gnulib module reallocarray ++ + ## begin gnulib module regex + + +@@ -1072,7 +1179,7 @@ stdint.h: stdint.in.h $(top_builddir)/co + -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ + -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ + -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ +- -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ ++ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ + < $(srcdir)/stdint.in.h; \ + } > $@-t && \ + mv $@-t $@ +@@ -1100,65 +1207,65 @@ stdio.h: stdio.in.h $(top_builddir)/conf + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ +- -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ +- -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ +- -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ +- -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ +- -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ +- -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ +- -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ +- -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ +- -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ +- -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ +- -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ +- -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ +- -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ +- -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ +- -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ +- -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ +- -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ +- -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ +- -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ +- -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ +- -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ +- -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ +- -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ +- -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ +- -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ +- -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ +- -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ +- -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ +- -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ +- -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ +- -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ +- -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ +- -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ +- -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ +- -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ +- -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ +- -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ +- -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ +- -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ +- -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ +- -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ +- -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ +- -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ +- -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ +- -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ +- -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ +- -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ +- -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ +- -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ +- -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ +- -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ +- -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ +- -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ +- -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GNULIB_MDA_FCLOSEALL)/g' \ +- -e 's/@''GNULIB_MDA_FDOPEN''@/$(GNULIB_MDA_FDOPEN)/g' \ +- -e 's/@''GNULIB_MDA_FILENO''@/$(GNULIB_MDA_FILENO)/g' \ +- -e 's/@''GNULIB_MDA_GETW''@/$(GNULIB_MDA_GETW)/g' \ +- -e 's/@''GNULIB_MDA_PUTW''@/$(GNULIB_MDA_PUTW)/g' \ +- -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GNULIB_MDA_TEMPNAM)/g' \ ++ -e 's/@''GNULIB_DPRINTF''@/$(GL_GNULIB_DPRINTF)/g' \ ++ -e 's/@''GNULIB_FCLOSE''@/$(GL_GNULIB_FCLOSE)/g' \ ++ -e 's/@''GNULIB_FDOPEN''@/$(GL_GNULIB_FDOPEN)/g' \ ++ -e 's/@''GNULIB_FFLUSH''@/$(GL_GNULIB_FFLUSH)/g' \ ++ -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \ ++ -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \ ++ -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \ ++ -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \ ++ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \ ++ -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \ ++ -e 's/@''GNULIB_FPUTC''@/$(GL_GNULIB_FPUTC)/g' \ ++ -e 's/@''GNULIB_FPUTS''@/$(GL_GNULIB_FPUTS)/g' \ ++ -e 's/@''GNULIB_FREAD''@/$(GL_GNULIB_FREAD)/g' \ ++ -e 's/@''GNULIB_FREOPEN''@/$(GL_GNULIB_FREOPEN)/g' \ ++ -e 's/@''GNULIB_FSCANF''@/$(GL_GNULIB_FSCANF)/g' \ ++ -e 's/@''GNULIB_FSEEK''@/$(GL_GNULIB_FSEEK)/g' \ ++ -e 's/@''GNULIB_FSEEKO''@/$(GL_GNULIB_FSEEKO)/g' \ ++ -e 's/@''GNULIB_FTELL''@/$(GL_GNULIB_FTELL)/g' \ ++ -e 's/@''GNULIB_FTELLO''@/$(GL_GNULIB_FTELLO)/g' \ ++ -e 's/@''GNULIB_FWRITE''@/$(GL_GNULIB_FWRITE)/g' \ ++ -e 's/@''GNULIB_GETC''@/$(GL_GNULIB_GETC)/g' \ ++ -e 's/@''GNULIB_GETCHAR''@/$(GL_GNULIB_GETCHAR)/g' \ ++ -e 's/@''GNULIB_GETDELIM''@/$(GL_GNULIB_GETDELIM)/g' \ ++ -e 's/@''GNULIB_GETLINE''@/$(GL_GNULIB_GETLINE)/g' \ ++ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GL_GNULIB_OBSTACK_PRINTF)/g' \ ++ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GL_GNULIB_OBSTACK_PRINTF_POSIX)/g' \ ++ -e 's/@''GNULIB_PCLOSE''@/$(GL_GNULIB_PCLOSE)/g' \ ++ -e 's/@''GNULIB_PERROR''@/$(GL_GNULIB_PERROR)/g' \ ++ -e 's/@''GNULIB_POPEN''@/$(GL_GNULIB_POPEN)/g' \ ++ -e 's/@''GNULIB_PRINTF''@/$(GL_GNULIB_PRINTF)/g' \ ++ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GL_GNULIB_PRINTF_POSIX)/g' \ ++ -e 's/@''GNULIB_PUTC''@/$(GL_GNULIB_PUTC)/g' \ ++ -e 's/@''GNULIB_PUTCHAR''@/$(GL_GNULIB_PUTCHAR)/g' \ ++ -e 's/@''GNULIB_PUTS''@/$(GL_GNULIB_PUTS)/g' \ ++ -e 's/@''GNULIB_REMOVE''@/$(GL_GNULIB_REMOVE)/g' \ ++ -e 's/@''GNULIB_RENAME''@/$(GL_GNULIB_RENAME)/g' \ ++ -e 's/@''GNULIB_RENAMEAT''@/$(GL_GNULIB_RENAMEAT)/g' \ ++ -e 's/@''GNULIB_SCANF''@/$(GL_GNULIB_SCANF)/g' \ ++ -e 's/@''GNULIB_SNPRINTF''@/$(GL_GNULIB_SNPRINTF)/g' \ ++ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GL_GNULIB_SPRINTF_POSIX)/g' \ ++ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GL_GNULIB_STDIO_H_NONBLOCKING)/g' \ ++ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GL_GNULIB_STDIO_H_SIGPIPE)/g' \ ++ -e 's/@''GNULIB_TMPFILE''@/$(GL_GNULIB_TMPFILE)/g' \ ++ -e 's/@''GNULIB_VASPRINTF''@/$(GL_GNULIB_VASPRINTF)/g' \ ++ -e 's/@''GNULIB_VDPRINTF''@/$(GL_GNULIB_VDPRINTF)/g' \ ++ -e 's/@''GNULIB_VFPRINTF''@/$(GL_GNULIB_VFPRINTF)/g' \ ++ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GL_GNULIB_VFPRINTF_POSIX)/g' \ ++ -e 's/@''GNULIB_VFSCANF''@/$(GL_GNULIB_VFSCANF)/g' \ ++ -e 's/@''GNULIB_VSCANF''@/$(GL_GNULIB_VSCANF)/g' \ ++ -e 's/@''GNULIB_VPRINTF''@/$(GL_GNULIB_VPRINTF)/g' \ ++ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GL_GNULIB_VPRINTF_POSIX)/g' \ ++ -e 's/@''GNULIB_VSNPRINTF''@/$(GL_GNULIB_VSNPRINTF)/g' \ ++ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GL_GNULIB_VSPRINTF_POSIX)/g' \ ++ -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GL_GNULIB_MDA_FCLOSEALL)/g' \ ++ -e 's/@''GNULIB_MDA_FDOPEN''@/$(GL_GNULIB_MDA_FDOPEN)/g' \ ++ -e 's/@''GNULIB_MDA_FILENO''@/$(GL_GNULIB_MDA_FILENO)/g' \ ++ -e 's/@''GNULIB_MDA_GETW''@/$(GL_GNULIB_MDA_GETW)/g' \ ++ -e 's/@''GNULIB_MDA_PUTW''@/$(GL_GNULIB_MDA_PUTW)/g' \ ++ -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GL_GNULIB_MDA_TEMPNAM)/g' \ + < $(srcdir)/stdio.in.h | \ + sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \ + -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ +@@ -1236,49 +1343,51 @@ stdlib.h: stdlib.in.h $(top_builddir)/co + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ +- -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ +- -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GNULIB_ALIGNED_ALLOC)/g' \ +- -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ +- -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ +- -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ +- -e 's/@''GNULIB_FREE_POSIX''@/$(GNULIB_FREE_POSIX)/g' \ +- -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ +- -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ +- -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ +- -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ +- -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ +- -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ +- -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ +- -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ +- -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ +- -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ +- -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GNULIB_POSIX_MEMALIGN)/g' \ +- -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ +- -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ +- -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ +- -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ +- -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \ +- -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ +- -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ +- -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ +- -e 's/@''GNULIB_REALLOCARRAY''@/$(GNULIB_REALLOCARRAY)/g' \ +- -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ +- -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ +- -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ +- -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ +- -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ +- -e 's/@''GNULIB_STRTOLD''@/$(GNULIB_STRTOLD)/g' \ +- -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ +- -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ +- -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ +- -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ +- -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ +- -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ +- -e 's/@''GNULIB_MDA_ECVT''@/$(GNULIB_MDA_ECVT)/g' \ +- -e 's/@''GNULIB_MDA_FCVT''@/$(GNULIB_MDA_FCVT)/g' \ +- -e 's/@''GNULIB_MDA_GCVT''@/$(GNULIB_MDA_GCVT)/g' \ +- -e 's/@''GNULIB_MDA_MKTEMP''@/$(GNULIB_MDA_MKTEMP)/g' \ +- -e 's/@''GNULIB_MDA_PUTENV''@/$(GNULIB_MDA_PUTENV)/g' \ ++ -e 's/@''GNULIB__EXIT''@/$(GL_GNULIB__EXIT)/g' \ ++ -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_GNULIB_ALIGNED_ALLOC)/g' \ ++ -e 's/@''GNULIB_ATOLL''@/$(GL_GNULIB_ATOLL)/g' \ ++ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_GNULIB_CALLOC_POSIX)/g' \ ++ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \ ++ -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ ++ -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \ ++ -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \ ++ -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \ ++ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_GNULIB_MALLOC_POSIX)/g' \ ++ -e 's/@''GNULIB_MBTOWC''@/$(GL_GNULIB_MBTOWC)/g' \ ++ -e 's/@''GNULIB_MKDTEMP''@/$(GL_GNULIB_MKDTEMP)/g' \ ++ -e 's/@''GNULIB_MKOSTEMP''@/$(GL_GNULIB_MKOSTEMP)/g' \ ++ -e 's/@''GNULIB_MKOSTEMPS''@/$(GL_GNULIB_MKOSTEMPS)/g' \ ++ -e 's/@''GNULIB_MKSTEMP''@/$(GL_GNULIB_MKSTEMP)/g' \ ++ -e 's/@''GNULIB_MKSTEMPS''@/$(GL_GNULIB_MKSTEMPS)/g' \ ++ -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GL_GNULIB_POSIX_MEMALIGN)/g' \ ++ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GL_GNULIB_POSIX_OPENPT)/g' \ ++ -e 's/@''GNULIB_PTSNAME''@/$(GL_GNULIB_PTSNAME)/g' \ ++ -e 's/@''GNULIB_PTSNAME_R''@/$(GL_GNULIB_PTSNAME_R)/g' \ ++ -e 's/@''GNULIB_PUTENV''@/$(GL_GNULIB_PUTENV)/g' \ ++ -e 's/@''GNULIB_QSORT_R''@/$(GL_GNULIB_QSORT_R)/g' \ ++ -e 's/@''GNULIB_RANDOM''@/$(GL_GNULIB_RANDOM)/g' \ ++ -e 's/@''GNULIB_RANDOM_R''@/$(GL_GNULIB_RANDOM_R)/g' \ ++ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_GNULIB_REALLOC_POSIX)/g' \ ++ -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_GNULIB_REALLOCARRAY)/g' \ ++ -e 's/@''GNULIB_REALPATH''@/$(GL_GNULIB_REALPATH)/g' \ ++ -e 's/@''GNULIB_RPMATCH''@/$(GL_GNULIB_RPMATCH)/g' \ ++ -e 's/@''GNULIB_SECURE_GETENV''@/$(GL_GNULIB_SECURE_GETENV)/g' \ ++ -e 's/@''GNULIB_SETENV''@/$(GL_GNULIB_SETENV)/g' \ ++ -e 's/@''GNULIB_STRTOD''@/$(GL_GNULIB_STRTOD)/g' \ ++ -e 's/@''GNULIB_STRTOL''@/$(GL_GNULIB_STRTOL)/g' \ ++ -e 's/@''GNULIB_STRTOLD''@/$(GL_GNULIB_STRTOLD)/g' \ ++ -e 's/@''GNULIB_STRTOLL''@/$(GL_GNULIB_STRTOLL)/g' \ ++ -e 's/@''GNULIB_STRTOUL''@/$(GL_GNULIB_STRTOUL)/g' \ ++ -e 's/@''GNULIB_STRTOULL''@/$(GL_GNULIB_STRTOULL)/g' \ ++ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GL_GNULIB_SYSTEM_POSIX)/g' \ ++ -e 's/@''GNULIB_UNLOCKPT''@/$(GL_GNULIB_UNLOCKPT)/g' \ ++ -e 's/@''GNULIB_UNSETENV''@/$(GL_GNULIB_UNSETENV)/g' \ ++ -e 's/@''GNULIB_WCTOMB''@/$(GL_GNULIB_WCTOMB)/g' \ ++ -e 's/@''GNULIB_MDA_ECVT''@/$(GL_GNULIB_MDA_ECVT)/g' \ ++ -e 's/@''GNULIB_MDA_FCVT''@/$(GL_GNULIB_MDA_FCVT)/g' \ ++ -e 's/@''GNULIB_MDA_GCVT''@/$(GL_GNULIB_MDA_GCVT)/g' \ ++ -e 's/@''GNULIB_MDA_MKTEMP''@/$(GL_GNULIB_MDA_MKTEMP)/g' \ ++ -e 's/@''GNULIB_MDA_PUTENV''@/$(GL_GNULIB_MDA_PUTENV)/g' \ + < $(srcdir)/stdlib.in.h | \ + sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ + -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \ +@@ -1314,8 +1423,10 @@ stdlib.h: stdlib.in.h $(top_builddir)/co + -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ + -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ + -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ ++ -e 's|@''HAVE_STRTOL''@|$(HAVE_STRTOL)|g' \ + -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ + -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ ++ -e 's|@''HAVE_STRTOUL''@|$(HAVE_STRTOUL)|g' \ + -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ + -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ + -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ +@@ -1337,11 +1448,16 @@ stdlib.h: stdlib.in.h $(top_builddir)/co + -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ + -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ + -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ ++ -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \ + -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ + -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ + -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ + -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ ++ -e 's|@''REPLACE_STRTOL''@|$(REPLACE_STRTOL)|g' \ + -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ ++ -e 's|@''REPLACE_STRTOLL''@|$(REPLACE_STRTOLL)|g' \ ++ -e 's|@''REPLACE_STRTOUL''@|$(REPLACE_STRTOUL)|g' \ ++ -e 's|@''REPLACE_STRTOULL''@|$(REPLACE_STRTOULL)|g' \ + -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ + -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ +@@ -1444,49 +1560,49 @@ string.h: string.in.h $(top_builddir)/co + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ +- -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GNULIB_EXPLICIT_BZERO)/g' \ +- -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ +- -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ +- -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ +- -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ +- -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ +- -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ +- -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ +- -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ +- -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ +- -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ +- -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ +- -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ +- -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ +- -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ +- -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ +- -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ +- -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ +- -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ +- -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ +- -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ +- -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ +- -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ +- -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ +- -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ +- -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ +- -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ +- -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ +- -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ +- -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ +- -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ +- -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ +- -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ +- -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ +- -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ +- -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ +- -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GNULIB_STRERRORNAME_NP)/g' \ +- -e 's/@''GNULIB_SIGABBREV_NP''@/$(GNULIB_SIGABBREV_NP)/g' \ +- -e 's/@''GNULIB_SIGDESCR_NP''@/$(GNULIB_SIGDESCR_NP)/g' \ +- -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ +- -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ +- -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GNULIB_MDA_MEMCCPY)/g' \ +- -e 's/@''GNULIB_MDA_STRDUP''@/$(GNULIB_MDA_STRDUP)/g' \ ++ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_GNULIB_EXPLICIT_BZERO)/g' \ ++ -e 's/@''GNULIB_FFSL''@/$(GL_GNULIB_FFSL)/g' \ ++ -e 's/@''GNULIB_FFSLL''@/$(GL_GNULIB_FFSLL)/g' \ ++ -e 's/@''GNULIB_MBSLEN''@/$(GL_GNULIB_MBSLEN)/g' \ ++ -e 's/@''GNULIB_MBSNLEN''@/$(GL_GNULIB_MBSNLEN)/g' \ ++ -e 's/@''GNULIB_MBSCHR''@/$(GL_GNULIB_MBSCHR)/g' \ ++ -e 's/@''GNULIB_MBSRCHR''@/$(GL_GNULIB_MBSRCHR)/g' \ ++ -e 's/@''GNULIB_MBSSTR''@/$(GL_GNULIB_MBSSTR)/g' \ ++ -e 's/@''GNULIB_MBSCASECMP''@/$(GL_GNULIB_MBSCASECMP)/g' \ ++ -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_GNULIB_MBSNCASECMP)/g' \ ++ -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_GNULIB_MBSPCASECMP)/g' \ ++ -e 's/@''GNULIB_MBSCASESTR''@/$(GL_GNULIB_MBSCASESTR)/g' \ ++ -e 's/@''GNULIB_MBSCSPN''@/$(GL_GNULIB_MBSCSPN)/g' \ ++ -e 's/@''GNULIB_MBSPBRK''@/$(GL_GNULIB_MBSPBRK)/g' \ ++ -e 's/@''GNULIB_MBSSPN''@/$(GL_GNULIB_MBSSPN)/g' \ ++ -e 's/@''GNULIB_MBSSEP''@/$(GL_GNULIB_MBSSEP)/g' \ ++ -e 's/@''GNULIB_MBSTOK_R''@/$(GL_GNULIB_MBSTOK_R)/g' \ ++ -e 's/@''GNULIB_MEMCHR''@/$(GL_GNULIB_MEMCHR)/g' \ ++ -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \ ++ -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \ ++ -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \ ++ -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \ ++ -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \ ++ -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \ ++ -e 's/@''GNULIB_STRCHRNUL''@/$(GL_GNULIB_STRCHRNUL)/g' \ ++ -e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \ ++ -e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \ ++ -e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \ ++ -e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \ ++ -e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \ ++ -e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \ ++ -e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \ ++ -e 's/@''GNULIB_STRCASESTR''@/$(GL_GNULIB_STRCASESTR)/g' \ ++ -e 's/@''GNULIB_STRTOK_R''@/$(GL_GNULIB_STRTOK_R)/g' \ ++ -e 's/@''GNULIB_STRERROR''@/$(GL_GNULIB_STRERROR)/g' \ ++ -e 's/@''GNULIB_STRERROR_R''@/$(GL_GNULIB_STRERROR_R)/g' \ ++ -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_GNULIB_STRERRORNAME_NP)/g' \ ++ -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_GNULIB_SIGABBREV_NP)/g' \ ++ -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_GNULIB_SIGDESCR_NP)/g' \ ++ -e 's/@''GNULIB_STRSIGNAL''@/$(GL_GNULIB_STRSIGNAL)/g' \ ++ -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \ ++ -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \ ++ -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \ + < $(srcdir)/string.in.h | \ + sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ + -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ +@@ -1556,7 +1672,7 @@ strings.h: strings.in.h $(top_builddir)/ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ +- -e 's/@''GNULIB_FFS''@/$(GNULIB_FFS)/g' \ ++ -e 's/@''GNULIB_FFS''@/$(GL_GNULIB_FFS)/g' \ + -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \ + -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ + -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ +@@ -1638,25 +1754,25 @@ sys/stat.h: sys_stat.in.h $(top_builddir + -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ + -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ + -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ +- -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ +- -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ +- -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ +- -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ +- -e 's/@''GNULIB_GETUMASK''@/$(GNULIB_GETUMASK)/g' \ +- -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ +- -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ +- -e 's/@''GNULIB_MKDIR''@/$(GNULIB_MKDIR)/g' \ +- -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ +- -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ +- -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ +- -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ +- -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ +- -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ +- -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ +- -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GNULIB_OVERRIDES_STRUCT_STAT)/g' \ +- -e 's/@''GNULIB_MDA_CHMOD''@/$(GNULIB_MDA_CHMOD)/g' \ +- -e 's/@''GNULIB_MDA_MKDIR''@/$(GNULIB_MDA_MKDIR)/g' \ +- -e 's/@''GNULIB_MDA_UMASK''@/$(GNULIB_MDA_UMASK)/g' \ ++ -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \ ++ -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \ ++ -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \ ++ -e 's/@''GNULIB_FUTIMENS''@/$(GL_GNULIB_FUTIMENS)/g' \ ++ -e 's/@''GNULIB_GETUMASK''@/$(GL_GNULIB_GETUMASK)/g' \ ++ -e 's/@''GNULIB_LCHMOD''@/$(GL_GNULIB_LCHMOD)/g' \ ++ -e 's/@''GNULIB_LSTAT''@/$(GL_GNULIB_LSTAT)/g' \ ++ -e 's/@''GNULIB_MKDIR''@/$(GL_GNULIB_MKDIR)/g' \ ++ -e 's/@''GNULIB_MKDIRAT''@/$(GL_GNULIB_MKDIRAT)/g' \ ++ -e 's/@''GNULIB_MKFIFO''@/$(GL_GNULIB_MKFIFO)/g' \ ++ -e 's/@''GNULIB_MKFIFOAT''@/$(GL_GNULIB_MKFIFOAT)/g' \ ++ -e 's/@''GNULIB_MKNOD''@/$(GL_GNULIB_MKNOD)/g' \ ++ -e 's/@''GNULIB_MKNODAT''@/$(GL_GNULIB_MKNODAT)/g' \ ++ -e 's/@''GNULIB_STAT''@/$(GL_GNULIB_STAT)/g' \ ++ -e 's/@''GNULIB_UTIMENSAT''@/$(GL_GNULIB_UTIMENSAT)/g' \ ++ -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GL_GNULIB_OVERRIDES_STRUCT_STAT)/g' \ ++ -e 's/@''GNULIB_MDA_CHMOD''@/$(GL_GNULIB_MDA_CHMOD)/g' \ ++ -e 's/@''GNULIB_MDA_MKDIR''@/$(GL_GNULIB_MDA_MKDIR)/g' \ ++ -e 's/@''GNULIB_MDA_UMASK''@/$(GL_GNULIB_MDA_UMASK)/g' \ + -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ + -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ + -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ +@@ -1744,18 +1860,18 @@ time.h: time.in.h $(top_builddir)/config + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ +- -e 's/@''GNULIB_CTIME''@/$(GNULIB_CTIME)/g' \ +- -e 's/@''GNULIB_LOCALTIME''@/$(GNULIB_LOCALTIME)/g' \ +- -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ +- -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ +- -e 's/@''GNULIB_STRFTIME''@/$(GNULIB_STRFTIME)/g' \ +- -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ +- -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ +- -e 's/@''GNULIB_TIMESPEC_GET''@/$(GNULIB_TIMESPEC_GET)/g' \ +- -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ +- -e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \ +- -e 's/@''GNULIB_TZSET''@/$(GNULIB_TZSET)/g' \ +- -e 's/@''GNULIB_MDA_TZSET''@/$(GNULIB_MDA_TZSET)/g' \ ++ -e 's/@''GNULIB_CTIME''@/$(GL_GNULIB_CTIME)/g' \ ++ -e 's/@''GNULIB_LOCALTIME''@/$(GL_GNULIB_LOCALTIME)/g' \ ++ -e 's/@''GNULIB_MKTIME''@/$(GL_GNULIB_MKTIME)/g' \ ++ -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \ ++ -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \ ++ -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \ ++ -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \ ++ -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \ ++ -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \ ++ -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \ ++ -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \ ++ -e 's/@''GNULIB_MDA_TZSET''@/$(GL_GNULIB_MDA_TZSET)/g' \ + -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ + -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ + -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ +@@ -1806,89 +1922,89 @@ unistd.h: unistd.in.h $(top_builddir)/co + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ + -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ +- -e 's/@''GNULIB_ACCESS''@/$(GNULIB_ACCESS)/g' \ +- -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ +- -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ +- -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ +- -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GNULIB_COPY_FILE_RANGE)/g' \ +- -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ +- -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ +- -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ +- -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ +- -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ +- -e 's/@''GNULIB_EXECL''@/$(GNULIB_EXECL)/g' \ +- -e 's/@''GNULIB_EXECLE''@/$(GNULIB_EXECLE)/g' \ +- -e 's/@''GNULIB_EXECLP''@/$(GNULIB_EXECLP)/g' \ +- -e 's/@''GNULIB_EXECV''@/$(GNULIB_EXECV)/g' \ +- -e 's/@''GNULIB_EXECVE''@/$(GNULIB_EXECVE)/g' \ +- -e 's/@''GNULIB_EXECVP''@/$(GNULIB_EXECVP)/g' \ +- -e 's/@''GNULIB_EXECVPE''@/$(GNULIB_EXECVPE)/g' \ +- -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ +- -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ +- -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ +- -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ +- -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ +- -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ +- -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ +- -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ +- -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ +- -e 's/@''GNULIB_GETENTROPY''@/$(GNULIB_GETENTROPY)/g' \ +- -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ +- -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ +- -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ +- -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ +- -e 's/@''GNULIB_GETOPT_POSIX''@/$(GNULIB_GETOPT_POSIX)/g' \ +- -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ +- -e 's/@''GNULIB_GETPASS''@/$(GNULIB_GETPASS)/g' \ +- -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ +- -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ +- -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ +- -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ +- -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ +- -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ +- -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ +- -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ +- -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ +- -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ +- -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ +- -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ +- -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ +- -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ +- -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ +- -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ +- -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ +- -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ +- -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ +- -e 's/@''GNULIB_TRUNCATE''@/$(GNULIB_TRUNCATE)/g' \ +- -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ +- -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ +- -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ +- -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ +- -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ +- -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ +- -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ +- -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ +- -e 's/@''GNULIB_MDA_ACCESS''@/$(GNULIB_MDA_ACCESS)/g' \ +- -e 's/@''GNULIB_MDA_CHDIR''@/$(GNULIB_MDA_CHDIR)/g' \ +- -e 's/@''GNULIB_MDA_CLOSE''@/$(GNULIB_MDA_CLOSE)/g' \ +- -e 's/@''GNULIB_MDA_DUP''@/$(GNULIB_MDA_DUP)/g' \ +- -e 's/@''GNULIB_MDA_DUP2''@/$(GNULIB_MDA_DUP2)/g' \ +- -e 's/@''GNULIB_MDA_EXECL''@/$(GNULIB_MDA_EXECL)/g' \ +- -e 's/@''GNULIB_MDA_EXECLE''@/$(GNULIB_MDA_EXECLE)/g' \ +- -e 's/@''GNULIB_MDA_EXECLP''@/$(GNULIB_MDA_EXECLP)/g' \ +- -e 's/@''GNULIB_MDA_EXECV''@/$(GNULIB_MDA_EXECV)/g' \ +- -e 's/@''GNULIB_MDA_EXECVE''@/$(GNULIB_MDA_EXECVE)/g' \ +- -e 's/@''GNULIB_MDA_EXECVP''@/$(GNULIB_MDA_EXECVP)/g' \ +- -e 's/@''GNULIB_MDA_EXECVPE''@/$(GNULIB_MDA_EXECVPE)/g' \ +- -e 's/@''GNULIB_MDA_GETCWD''@/$(GNULIB_MDA_GETCWD)/g' \ +- -e 's/@''GNULIB_MDA_GETPID''@/$(GNULIB_MDA_GETPID)/g' \ +- -e 's/@''GNULIB_MDA_ISATTY''@/$(GNULIB_MDA_ISATTY)/g' \ +- -e 's/@''GNULIB_MDA_LSEEK''@/$(GNULIB_MDA_LSEEK)/g' \ +- -e 's/@''GNULIB_MDA_READ''@/$(GNULIB_MDA_READ)/g' \ +- -e 's/@''GNULIB_MDA_RMDIR''@/$(GNULIB_MDA_RMDIR)/g' \ +- -e 's/@''GNULIB_MDA_SWAB''@/$(GNULIB_MDA_SWAB)/g' \ +- -e 's/@''GNULIB_MDA_UNLINK''@/$(GNULIB_MDA_UNLINK)/g' \ +- -e 's/@''GNULIB_MDA_WRITE''@/$(GNULIB_MDA_WRITE)/g' \ ++ -e 's/@''GNULIB_ACCESS''@/$(GL_GNULIB_ACCESS)/g' \ ++ -e 's/@''GNULIB_CHDIR''@/$(GL_GNULIB_CHDIR)/g' \ ++ -e 's/@''GNULIB_CHOWN''@/$(GL_GNULIB_CHOWN)/g' \ ++ -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ ++ -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_GNULIB_COPY_FILE_RANGE)/g' \ ++ -e 's/@''GNULIB_DUP''@/$(GL_GNULIB_DUP)/g' \ ++ -e 's/@''GNULIB_DUP2''@/$(GL_GNULIB_DUP2)/g' \ ++ -e 's/@''GNULIB_DUP3''@/$(GL_GNULIB_DUP3)/g' \ ++ -e 's/@''GNULIB_ENVIRON''@/$(GL_GNULIB_ENVIRON)/g' \ ++ -e 's/@''GNULIB_EUIDACCESS''@/$(GL_GNULIB_EUIDACCESS)/g' \ ++ -e 's/@''GNULIB_EXECL''@/$(GL_GNULIB_EXECL)/g' \ ++ -e 's/@''GNULIB_EXECLE''@/$(GL_GNULIB_EXECLE)/g' \ ++ -e 's/@''GNULIB_EXECLP''@/$(GL_GNULIB_EXECLP)/g' \ ++ -e 's/@''GNULIB_EXECV''@/$(GL_GNULIB_EXECV)/g' \ ++ -e 's/@''GNULIB_EXECVE''@/$(GL_GNULIB_EXECVE)/g' \ ++ -e 's/@''GNULIB_EXECVP''@/$(GL_GNULIB_EXECVP)/g' \ ++ -e 's/@''GNULIB_EXECVPE''@/$(GL_GNULIB_EXECVPE)/g' \ ++ -e 's/@''GNULIB_FACCESSAT''@/$(GL_GNULIB_FACCESSAT)/g' \ ++ -e 's/@''GNULIB_FCHDIR''@/$(GL_GNULIB_FCHDIR)/g' \ ++ -e 's/@''GNULIB_FCHOWNAT''@/$(GL_GNULIB_FCHOWNAT)/g' \ ++ -e 's/@''GNULIB_FDATASYNC''@/$(GL_GNULIB_FDATASYNC)/g' \ ++ -e 's/@''GNULIB_FSYNC''@/$(GL_GNULIB_FSYNC)/g' \ ++ -e 's/@''GNULIB_FTRUNCATE''@/$(GL_GNULIB_FTRUNCATE)/g' \ ++ -e 's/@''GNULIB_GETCWD''@/$(GL_GNULIB_GETCWD)/g' \ ++ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_GNULIB_GETDOMAINNAME)/g' \ ++ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_GNULIB_GETDTABLESIZE)/g' \ ++ -e 's/@''GNULIB_GETENTROPY''@/$(GL_GNULIB_GETENTROPY)/g' \ ++ -e 's/@''GNULIB_GETGROUPS''@/$(GL_GNULIB_GETGROUPS)/g' \ ++ -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_GNULIB_GETHOSTNAME)/g' \ ++ -e 's/@''GNULIB_GETLOGIN''@/$(GL_GNULIB_GETLOGIN)/g' \ ++ -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_GNULIB_GETLOGIN_R)/g' \ ++ -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \ ++ -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \ ++ -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \ ++ -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \ ++ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \ ++ -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \ ++ -e 's/@''GNULIB_LCHOWN''@/$(GL_GNULIB_LCHOWN)/g' \ ++ -e 's/@''GNULIB_LINK''@/$(GL_GNULIB_LINK)/g' \ ++ -e 's/@''GNULIB_LINKAT''@/$(GL_GNULIB_LINKAT)/g' \ ++ -e 's/@''GNULIB_LSEEK''@/$(GL_GNULIB_LSEEK)/g' \ ++ -e 's/@''GNULIB_PIPE''@/$(GL_GNULIB_PIPE)/g' \ ++ -e 's/@''GNULIB_PIPE2''@/$(GL_GNULIB_PIPE2)/g' \ ++ -e 's/@''GNULIB_PREAD''@/$(GL_GNULIB_PREAD)/g' \ ++ -e 's/@''GNULIB_PWRITE''@/$(GL_GNULIB_PWRITE)/g' \ ++ -e 's/@''GNULIB_READ''@/$(GL_GNULIB_READ)/g' \ ++ -e 's/@''GNULIB_READLINK''@/$(GL_GNULIB_READLINK)/g' \ ++ -e 's/@''GNULIB_READLINKAT''@/$(GL_GNULIB_READLINKAT)/g' \ ++ -e 's/@''GNULIB_RMDIR''@/$(GL_GNULIB_RMDIR)/g' \ ++ -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_GNULIB_SETHOSTNAME)/g' \ ++ -e 's/@''GNULIB_SLEEP''@/$(GL_GNULIB_SLEEP)/g' \ ++ -e 's/@''GNULIB_SYMLINK''@/$(GL_GNULIB_SYMLINK)/g' \ ++ -e 's/@''GNULIB_SYMLINKAT''@/$(GL_GNULIB_SYMLINKAT)/g' \ ++ -e 's/@''GNULIB_TRUNCATE''@/$(GL_GNULIB_TRUNCATE)/g' \ ++ -e 's/@''GNULIB_TTYNAME_R''@/$(GL_GNULIB_TTYNAME_R)/g' \ ++ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_GNULIB_UNISTD_H_GETOPT)/g' \ ++ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ ++ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_GNULIB_UNISTD_H_SIGPIPE)/g' \ ++ -e 's/@''GNULIB_UNLINK''@/$(GL_GNULIB_UNLINK)/g' \ ++ -e 's/@''GNULIB_UNLINKAT''@/$(GL_GNULIB_UNLINKAT)/g' \ ++ -e 's/@''GNULIB_USLEEP''@/$(GL_GNULIB_USLEEP)/g' \ ++ -e 's/@''GNULIB_WRITE''@/$(GL_GNULIB_WRITE)/g' \ ++ -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_GNULIB_MDA_ACCESS)/g' \ ++ -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_GNULIB_MDA_CHDIR)/g' \ ++ -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_GNULIB_MDA_CLOSE)/g' \ ++ -e 's/@''GNULIB_MDA_DUP''@/$(GL_GNULIB_MDA_DUP)/g' \ ++ -e 's/@''GNULIB_MDA_DUP2''@/$(GL_GNULIB_MDA_DUP2)/g' \ ++ -e 's/@''GNULIB_MDA_EXECL''@/$(GL_GNULIB_MDA_EXECL)/g' \ ++ -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_GNULIB_MDA_EXECLE)/g' \ ++ -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_GNULIB_MDA_EXECLP)/g' \ ++ -e 's/@''GNULIB_MDA_EXECV''@/$(GL_GNULIB_MDA_EXECV)/g' \ ++ -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_GNULIB_MDA_EXECVE)/g' \ ++ -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_GNULIB_MDA_EXECVP)/g' \ ++ -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_GNULIB_MDA_EXECVPE)/g' \ ++ -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_GNULIB_MDA_GETCWD)/g' \ ++ -e 's/@''GNULIB_MDA_GETPID''@/$(GL_GNULIB_MDA_GETPID)/g' \ ++ -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_GNULIB_MDA_ISATTY)/g' \ ++ -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_GNULIB_MDA_LSEEK)/g' \ ++ -e 's/@''GNULIB_MDA_READ''@/$(GL_GNULIB_MDA_READ)/g' \ ++ -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_GNULIB_MDA_RMDIR)/g' \ ++ -e 's/@''GNULIB_MDA_SWAB''@/$(GL_GNULIB_MDA_SWAB)/g' \ ++ -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_GNULIB_MDA_UNLINK)/g' \ ++ -e 's/@''GNULIB_MDA_WRITE''@/$(GL_GNULIB_MDA_WRITE)/g' \ + < $(srcdir)/unistd.in.h | \ + sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ + -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ +@@ -2080,49 +2196,49 @@ wchar.h: wchar.in.h $(top_builddir)/conf + -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ + -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ + -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ +- -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ +- -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ +- -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ +- -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ +- -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ +- -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ +- -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ +- -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ +- -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ +- -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ +- -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ +- -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ +- -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ +- -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ +- -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ +- -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ +- -e 's/@''GNULIB_WMEMPCPY''@/$(GNULIB_WMEMPCPY)/g' \ +- -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ +- -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ +- -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ +- -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ +- -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ +- -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ +- -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ +- -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ +- -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ +- -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ +- -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ +- -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ +- -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ +- -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ +- -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ +- -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ +- -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ +- -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ +- -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ +- -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ +- -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ +- -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ +- -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ +- -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ +- -e 's/@''GNULIB_WCSFTIME''@/$(GNULIB_WCSFTIME)/g' \ +- -e 's/@''GNULIB_MDA_WCSDUP''@/$(GNULIB_MDA_WCSDUP)/g' \ ++ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ ++ -e 's/@''GNULIB_BTOWC''@/$(GL_GNULIB_BTOWC)/g' \ ++ -e 's/@''GNULIB_WCTOB''@/$(GL_GNULIB_WCTOB)/g' \ ++ -e 's/@''GNULIB_MBSINIT''@/$(GL_GNULIB_MBSINIT)/g' \ ++ -e 's/@''GNULIB_MBRTOWC''@/$(GL_GNULIB_MBRTOWC)/g' \ ++ -e 's/@''GNULIB_MBRLEN''@/$(GL_GNULIB_MBRLEN)/g' \ ++ -e 's/@''GNULIB_MBSRTOWCS''@/$(GL_GNULIB_MBSRTOWCS)/g' \ ++ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GL_GNULIB_MBSNRTOWCS)/g' \ ++ -e 's/@''GNULIB_WCRTOMB''@/$(GL_GNULIB_WCRTOMB)/g' \ ++ -e 's/@''GNULIB_WCSRTOMBS''@/$(GL_GNULIB_WCSRTOMBS)/g' \ ++ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GL_GNULIB_WCSNRTOMBS)/g' \ ++ -e 's/@''GNULIB_WCWIDTH''@/$(GL_GNULIB_WCWIDTH)/g' \ ++ -e 's/@''GNULIB_WMEMCHR''@/$(GL_GNULIB_WMEMCHR)/g' \ ++ -e 's/@''GNULIB_WMEMCMP''@/$(GL_GNULIB_WMEMCMP)/g' \ ++ -e 's/@''GNULIB_WMEMCPY''@/$(GL_GNULIB_WMEMCPY)/g' \ ++ -e 's/@''GNULIB_WMEMMOVE''@/$(GL_GNULIB_WMEMMOVE)/g' \ ++ -e 's/@''GNULIB_WMEMPCPY''@/$(GL_GNULIB_WMEMPCPY)/g' \ ++ -e 's/@''GNULIB_WMEMSET''@/$(GL_GNULIB_WMEMSET)/g' \ ++ -e 's/@''GNULIB_WCSLEN''@/$(GL_GNULIB_WCSLEN)/g' \ ++ -e 's/@''GNULIB_WCSNLEN''@/$(GL_GNULIB_WCSNLEN)/g' \ ++ -e 's/@''GNULIB_WCSCPY''@/$(GL_GNULIB_WCSCPY)/g' \ ++ -e 's/@''GNULIB_WCPCPY''@/$(GL_GNULIB_WCPCPY)/g' \ ++ -e 's/@''GNULIB_WCSNCPY''@/$(GL_GNULIB_WCSNCPY)/g' \ ++ -e 's/@''GNULIB_WCPNCPY''@/$(GL_GNULIB_WCPNCPY)/g' \ ++ -e 's/@''GNULIB_WCSCAT''@/$(GL_GNULIB_WCSCAT)/g' \ ++ -e 's/@''GNULIB_WCSNCAT''@/$(GL_GNULIB_WCSNCAT)/g' \ ++ -e 's/@''GNULIB_WCSCMP''@/$(GL_GNULIB_WCSCMP)/g' \ ++ -e 's/@''GNULIB_WCSNCMP''@/$(GL_GNULIB_WCSNCMP)/g' \ ++ -e 's/@''GNULIB_WCSCASECMP''@/$(GL_GNULIB_WCSCASECMP)/g' \ ++ -e 's/@''GNULIB_WCSNCASECMP''@/$(GL_GNULIB_WCSNCASECMP)/g' \ ++ -e 's/@''GNULIB_WCSCOLL''@/$(GL_GNULIB_WCSCOLL)/g' \ ++ -e 's/@''GNULIB_WCSXFRM''@/$(GL_GNULIB_WCSXFRM)/g' \ ++ -e 's/@''GNULIB_WCSDUP''@/$(GL_GNULIB_WCSDUP)/g' \ ++ -e 's/@''GNULIB_WCSCHR''@/$(GL_GNULIB_WCSCHR)/g' \ ++ -e 's/@''GNULIB_WCSRCHR''@/$(GL_GNULIB_WCSRCHR)/g' \ ++ -e 's/@''GNULIB_WCSCSPN''@/$(GL_GNULIB_WCSCSPN)/g' \ ++ -e 's/@''GNULIB_WCSSPN''@/$(GL_GNULIB_WCSSPN)/g' \ ++ -e 's/@''GNULIB_WCSPBRK''@/$(GL_GNULIB_WCSPBRK)/g' \ ++ -e 's/@''GNULIB_WCSSTR''@/$(GL_GNULIB_WCSSTR)/g' \ ++ -e 's/@''GNULIB_WCSTOK''@/$(GL_GNULIB_WCSTOK)/g' \ ++ -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \ ++ -e 's/@''GNULIB_WCSFTIME''@/$(GL_GNULIB_WCSFTIME)/g' \ ++ -e 's/@''GNULIB_MDA_WCSDUP''@/$(GL_GNULIB_MDA_WCSDUP)/g' \ + < $(srcdir)/wchar.in.h | \ + sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ + -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ +@@ -2222,14 +2338,14 @@ wctype.h: wctype.in.h $(top_builddir)/co + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ + -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ +- -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ +- -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ +- -e 's/@''GNULIB_ISWDIGIT''@/$(GNULIB_ISWDIGIT)/g' \ +- -e 's/@''GNULIB_ISWXDIGIT''@/$(GNULIB_ISWXDIGIT)/g' \ +- -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ +- -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ +- -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ +- -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ ++ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ ++ -e 's/@''GNULIB_ISWBLANK''@/$(GL_GNULIB_ISWBLANK)/g' \ ++ -e 's/@''GNULIB_ISWDIGIT''@/$(GL_GNULIB_ISWDIGIT)/g' \ ++ -e 's/@''GNULIB_ISWXDIGIT''@/$(GL_GNULIB_ISWXDIGIT)/g' \ ++ -e 's/@''GNULIB_WCTYPE''@/$(GL_GNULIB_WCTYPE)/g' \ ++ -e 's/@''GNULIB_ISWCTYPE''@/$(GL_GNULIB_ISWCTYPE)/g' \ ++ -e 's/@''GNULIB_WCTRANS''@/$(GL_GNULIB_WCTRANS)/g' \ ++ -e 's/@''GNULIB_TOWCTRANS''@/$(GL_GNULIB_TOWCTRANS)/g' \ + -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ + -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ + -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ +--- a/gnulib/lib/_Noreturn.h ++++ b/gnulib/lib/_Noreturn.h +@@ -2,16 +2,16 @@ + Copyright (C) 2011-2021 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or ++ under the terms of the GNU Lesser General Public License as published ++ by the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _Noreturn +--- a/gnulib/lib/alloca.in.h ++++ b/gnulib/lib/alloca.in.h +@@ -3,20 +3,18 @@ + Copyright (C) 1995, 1999, 2001-2004, 2006-2021 Free Software Foundation, + Inc. + +- This program is free software; you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public +- License along with this program; if not, see +- . +- */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H + means there is a real alloca function. */ +--- a/gnulib/lib/arg-nonnull.h ++++ b/gnulib/lib/arg-nonnull.h +@@ -2,16 +2,16 @@ + Copyright (C) 2009-2021 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or ++ under the terms of the GNU Lesser General Public License as published ++ by the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools +--- a/gnulib/lib/argz.c ++++ b/gnulib/lib/argz.c +@@ -3,18 +3,18 @@ + Foundation, Inc. + This file is part of the GNU C Library. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/argz.in.h ++++ b/gnulib/lib/argz.in.h +@@ -3,17 +3,17 @@ + Inc. + This file is part of the GNU C Library. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _ARGZ_H +--- a/gnulib/lib/asnprintf.c ++++ b/gnulib/lib/asnprintf.c +@@ -1,18 +1,18 @@ + /* Formatted output to strings. + Copyright (C) 1999, 2002, 2006, 2009-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/asprintf.c ++++ b/gnulib/lib/asprintf.c +@@ -2,18 +2,18 @@ + Copyright (C) 1999, 2002, 2006-2007, 2009-2021 Free Software Foundation, + Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/attribute.h ++++ b/gnulib/lib/attribute.h +@@ -2,17 +2,17 @@ + + Copyright 2020-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Paul Eggert. */ +--- a/gnulib/lib/basename-lgpl.c ++++ b/gnulib/lib/basename-lgpl.c +@@ -3,17 +3,17 @@ + Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2021 Free Software + Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/basename-lgpl.h ++++ b/gnulib/lib/basename-lgpl.h +@@ -1,20 +1,20 @@ +-/* Extract the last component (base name) of a file name. ++/* Extract the last component (base name) of a file name. + +- Copyright (C) 1998, 2001, 2003-2006, 2009-2021 Free Software Foundation, +- Inc. ++ Copyright (C) 1998, 2001, 2003-2006, 2009-2021 Free Software Foundation, ++ Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program. If not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _BASENAME_LGPL_H + #define _BASENAME_LGPL_H +--- a/gnulib/lib/btowc.c ++++ b/gnulib/lib/btowc.c +@@ -2,17 +2,17 @@ + Copyright (C) 2008, 2010-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2008. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/c++defs.h ++++ b/gnulib/lib/c++defs.h +@@ -2,16 +2,16 @@ + Copyright (C) 2010-2021 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or ++ under the terms of the GNU Lesser General Public License as published ++ by the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _GL_CXXDEFS_H +--- /dev/null ++++ b/gnulib/lib/calloc.c +@@ -0,0 +1,55 @@ ++/* calloc() function that is glibc compatible. ++ This wrapper function is required at least on Tru64 UNIX 5.1 and mingw. ++ Copyright (C) 2004-2007, 2009-2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ ++/* written by Jim Meyering and Bruno Haible */ ++ ++#include ++ ++/* Specification. */ ++#include ++ ++#include ++ ++#include "xalloc-oversized.h" ++ ++/* Call the system's calloc below. */ ++#undef calloc ++ ++/* Allocate and zero-fill an NxS-byte block of memory from the heap, ++ even if N or S is zero. */ ++ ++void * ++rpl_calloc (size_t n, size_t s) ++{ ++ if (n == 0 || s == 0) ++ n = s = 1; ++ ++ if (xalloc_oversized (n, s)) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ ++ void *result = calloc (n, s); ++ ++#if !HAVE_MALLOC_POSIX ++ if (result == NULL) ++ errno = ENOMEM; ++#endif ++ ++ return result; ++} +--- a/gnulib/lib/cdefs.h ++++ b/gnulib/lib/cdefs.h +@@ -2,16 +2,16 @@ + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +@@ -259,10 +259,12 @@ + # define __attribute_const__ /* Ignore */ + #endif + +-#if defined __STDC_VERSION__ && 201710L < __STDC_VERSION__ +-# define __attribute_maybe_unused__ [[__maybe_unused__]] +-#elif __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__) ++#if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__) + # define __attribute_maybe_unused__ __attribute__ ((__unused__)) ++/* Once the next version of the C standard comes out, we can ++ do something like the following here: ++ #elif defined __STDC_VERSION__ && 202???L <= __STDC_VERSION__ ++ # define __attribute_maybe_unused__ [[__maybe_unused__]] */ + #else + # define __attribute_maybe_unused__ /* Ignore */ + #endif +@@ -320,7 +322,9 @@ + #endif + + /* The nonnull function attribute marks pointer parameters that +- must not be NULL. */ ++ must not be NULL. This has the name __nonnull in glibc, ++ and __attribute_nonnull__ in files shared with Gnulib to avoid ++ collision with a different __nonnull in DragonFlyBSD 5.9. */ + #ifndef __attribute_nonnull__ + # if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) + # define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) +@@ -485,9 +489,9 @@ + [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] + #endif + +-/* The #ifndef lets Gnulib avoid including these on non-glibc +- platforms, where the includes typically do not exist. */ +-#ifndef __WORDSIZE ++/* Gnulib avoids including these, as they don't work on non-glibc or ++ older glibc platforms. */ ++#ifndef __GNULIB_CDEFS + # include + # include + #endif +--- a/gnulib/lib/cloexec.c ++++ b/gnulib/lib/cloexec.c +@@ -2,20 +2,20 @@ + + Copyright (C) 1991, 2004-2006, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program. If not, see . ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + +- The code is taken from glibc/manual/llio.texi */ ++/* The code is taken from glibc/manual/llio.texi */ + + #include + +--- a/gnulib/lib/cloexec.h ++++ b/gnulib/lib/cloexec.h +@@ -2,20 +2,18 @@ + + Copyright (C) 2004, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program. If not, see . +- +-*/ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/close.c ++++ b/gnulib/lib/close.c +@@ -1,17 +1,17 @@ + /* close replacement. + Copyright (C) 2008-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/dup2.c ++++ b/gnulib/lib/dup2.c +@@ -2,17 +2,17 @@ + + Copyright (C) 1999, 2004-2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* written by Paul Eggert */ +--- a/gnulib/lib/dynarray.h ++++ b/gnulib/lib/dynarray.h +@@ -1,17 +1,17 @@ + /* Type-safe arrays which grow dynamically. + Copyright 2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Paul Eggert and Bruno Haible, 2021. */ +@@ -257,18 +257,22 @@ static DYNARRAY_ELEMENT * + + #if defined DYNARRAY_STRUCT || defined DYNARRAY_ELEMENT || defined DYNARRAY_PREFIX + +-# include ++# ifndef _GL_LIKELY ++/* Rely on __builtin_expect, as provided by the module 'builtin-expect'. */ ++# define _GL_LIKELY(cond) __builtin_expect ((cond), 1) ++# define _GL_UNLIKELY(cond) __builtin_expect ((cond), 0) ++# endif + + /* Define auxiliary structs and declare auxiliary functions, common to all + instantiations of dynarray. */ +-# include ++# include + + /* Define the instantiation, specified through + DYNARRAY_STRUCT + DYNARRAY_ELEMENT + DYNARRAY_PREFIX + etc. */ +-# include ++# include + + #else + +--- a/gnulib/lib/errno.in.h ++++ b/gnulib/lib/errno.in.h +@@ -2,18 +2,18 @@ + + Copyright (C) 2008-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _@GUARD_PREFIX@_ERRNO_H + +--- a/gnulib/lib/error.c ++++ b/gnulib/lib/error.c +@@ -2,17 +2,17 @@ + Copyright (C) 1990-1998, 2000-2007, 2009-2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by David MacKenzie . */ +--- a/gnulib/lib/error.h ++++ b/gnulib/lib/error.h +@@ -3,17 +3,17 @@ + Inc. + This file is part of the GNU C Library. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _ERROR_H +--- a/gnulib/lib/exitfail.c ++++ b/gnulib/lib/exitfail.c +@@ -2,17 +2,17 @@ + + Copyright (C) 2002-2003, 2005-2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/exitfail.h ++++ b/gnulib/lib/exitfail.h +@@ -2,17 +2,17 @@ + + Copyright (C) 2002, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + extern int volatile exit_failure; +--- a/gnulib/lib/fcntl.c ++++ b/gnulib/lib/fcntl.c +@@ -2,17 +2,17 @@ + + Copyright (C) 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Eric Blake . */ +--- a/gnulib/lib/fcntl.in.h ++++ b/gnulib/lib/fcntl.in.h +@@ -2,17 +2,17 @@ + + Copyright (C) 2006-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* written by Paul Eggert */ +--- a/gnulib/lib/fd-hook.c ++++ b/gnulib/lib/fd-hook.c +@@ -2,17 +2,17 @@ + Copyright (C) 2009-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2009. + +- This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/fd-hook.h ++++ b/gnulib/lib/fd-hook.h +@@ -1,17 +1,17 @@ + /* Hook for making file descriptor functions close(), ioctl() extensible. + Copyright (C) 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + +--- a/gnulib/lib/filename.h ++++ b/gnulib/lib/filename.h +@@ -3,16 +3,16 @@ + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/float+.h ++++ b/gnulib/lib/float+.h +@@ -2,18 +2,18 @@ + Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2007. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _FLOATPLUS_H + #define _FLOATPLUS_H +--- a/gnulib/lib/float.c ++++ b/gnulib/lib/float.c +@@ -2,17 +2,17 @@ + Copyright (C) 2011-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2011. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/float.in.h ++++ b/gnulib/lib/float.in.h +@@ -2,17 +2,17 @@ + + Copyright (C) 2007-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _@GUARD_PREFIX@_FLOAT_H +--- /dev/null ++++ b/gnulib/lib/free.c +@@ -0,0 +1,53 @@ ++/* Make free() preserve errno. ++ ++ Copyright (C) 2003, 2006, 2009-2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ ++/* written by Paul Eggert */ ++ ++#include ++ ++/* Specification. */ ++#include ++ ++/* A function definition is only needed if HAVE_FREE_POSIX is not defined. */ ++#if !HAVE_FREE_POSIX ++ ++# include ++ ++void ++rpl_free (void *p) ++# undef free ++{ ++# if defined __GNUC__ && !defined __clang__ ++ /* An invalid GCC optimization ++ ++ would optimize away the assignments in the code below, when link-time ++ optimization (LTO) is enabled. Make the code more complicated, so that ++ GCC does not grok how to optimize it. */ ++ int err[2]; ++ err[0] = errno; ++ err[1] = errno; ++ errno = 0; ++ free (p); ++ errno = err[errno == 0]; ++# else ++ int err = errno; ++ free (p); ++ errno = err; ++# endif ++} ++ ++#endif +--- a/gnulib/lib/fstat.c ++++ b/gnulib/lib/fstat.c +@@ -1,17 +1,17 @@ + /* fstat() replacement. + Copyright (C) 2011-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* If the user's config.h happens to include , let it include only +--- a/gnulib/lib/getdtablesize.c ++++ b/gnulib/lib/getdtablesize.c +@@ -2,17 +2,17 @@ + Copyright (C) 2008-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2008. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/getopt-cdefs.in.h ++++ b/gnulib/lib/getopt-cdefs.in.h +@@ -4,19 +4,18 @@ + Unlike most of the getopt implementation, it is NOT shared + with the GNU C Library. + +- This file is free software; you can redistribute it and/or modify it +- under the terms of the GNU General Public License as +- published by the Free Software Foundation; either version 3 of +- the License, or (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This file is distributed in the hope that it will be useful, but +- WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public +- License along with gnulib; if not, see +- . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _GETOPT_CDEFS_H + #define _GETOPT_CDEFS_H 1 +--- a/gnulib/lib/getopt-core.h ++++ b/gnulib/lib/getopt-core.h +@@ -4,16 +4,16 @@ + Patches to this file should be submitted to both projects. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/getopt-ext.h ++++ b/gnulib/lib/getopt-ext.h +@@ -4,16 +4,16 @@ + Patches to this file should be submitted to both projects. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/getopt-pfx-core.h ++++ b/gnulib/lib/getopt-pfx-core.h +@@ -4,19 +4,18 @@ + Unlike most of the getopt implementation, it is NOT shared + with the GNU C Library. + +- This file is free software; you can redistribute it and/or modify it +- under the terms of the GNU General Public License as +- published by the Free Software Foundation; either version 3 of +- the License, or (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This file is distributed in the hope that it will be useful, but +- WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public +- License along with gnulib; if not, see +- . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _GETOPT_PFX_CORE_H + #define _GETOPT_PFX_CORE_H 1 +--- a/gnulib/lib/getopt-pfx-ext.h ++++ b/gnulib/lib/getopt-pfx-ext.h +@@ -4,19 +4,18 @@ + Unlike most of the getopt implementation, it is NOT shared + with the GNU C Library. + +- This file is free software; you can redistribute it and/or modify it +- under the terms of the GNU General Public License as +- published by the Free Software Foundation; either version 3 of +- the License, or (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This file is distributed in the hope that it will be useful, but +- WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public +- License along with gnulib; if not, see +- . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _GETOPT_PFX_EXT_H + #define _GETOPT_PFX_EXT_H 1 +--- a/gnulib/lib/getopt.c ++++ b/gnulib/lib/getopt.c +@@ -4,16 +4,16 @@ + Patches to this file should be submitted to both projects. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/getopt.in.h ++++ b/gnulib/lib/getopt.in.h +@@ -5,18 +5,18 @@ + with the GNU C Library, which supplies a different version of + this file. + +- This file is free software; you can redistribute it and/or modify it +- under the terms of the GNU General Public License as +- published by the Free Software Foundation; either version 3 of +- the License, or (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This file is distributed in the hope that it will be useful, but +- WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public +- License along with gnulib; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _@GUARD_PREFIX@_GETOPT_H + +--- a/gnulib/lib/getopt1.c ++++ b/gnulib/lib/getopt1.c +@@ -4,16 +4,16 @@ + Patches to this file should be submitted to both projects. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/getopt_int.h ++++ b/gnulib/lib/getopt_int.h +@@ -4,16 +4,16 @@ + Patches to this file should be submitted to both projects. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/getprogname.c ++++ b/gnulib/lib/getprogname.c +@@ -2,16 +2,16 @@ + Copyright (C) 2016-2021 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or ++ it under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +@@ -43,7 +43,7 @@ + # include + #endif + +-#ifdef __sgi ++#if defined __sgi || defined __osf__ + # include + # include + # include +@@ -224,11 +224,15 @@ getprogname (void) + free (buf.ps_pathptr); + } + return p; +-# elif defined __sgi /* IRIX */ ++# elif defined __sgi || defined __osf__ /* IRIX or Tru64 */ + char filename[50]; + int fd; + +- sprintf (filename, "/proc/pinfo/%d", (int) getpid ()); ++ # if defined __sgi ++ sprintf (filename, "/proc/pinfo/%d", (int) getpid ()); ++ # else ++ sprintf (filename, "/proc/%d", (int) getpid ()); ++ # endif + fd = open (filename, O_RDONLY | O_CLOEXEC); + if (0 <= fd) + { +--- a/gnulib/lib/getprogname.h ++++ b/gnulib/lib/getprogname.h +@@ -2,16 +2,16 @@ + Copyright (C) 2016-2021 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or ++ it under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _GL_GETPROGNAME_H +--- a/gnulib/lib/gettext.h ++++ b/gnulib/lib/gettext.h +@@ -2,18 +2,18 @@ + Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2021 Free Software + Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _LIBGETTEXT_H + #define _LIBGETTEXT_H 1 +--- a/gnulib/lib/glthread/lock.c ++++ b/gnulib/lib/glthread/lock.c +@@ -1,18 +1,18 @@ + /* Locking in multithreaded situations. + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-posix.h, gthr-posix95.h. */ +--- a/gnulib/lib/glthread/lock.h ++++ b/gnulib/lib/glthread/lock.h +@@ -1,18 +1,18 @@ + /* Locking in multithreaded situations. + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-win32.h. */ +--- a/gnulib/lib/glthread/threadlib.c ++++ b/gnulib/lib/glthread/threadlib.c +@@ -1,18 +1,18 @@ + /* Multithreading primitives. + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. */ + +--- a/gnulib/lib/hard-locale.c ++++ b/gnulib/lib/hard-locale.c +@@ -3,17 +3,17 @@ + Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2021 Free Software + Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/hard-locale.h ++++ b/gnulib/lib/hard-locale.h +@@ -2,17 +2,17 @@ + + Copyright (C) 1999, 2003-2004, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef HARD_LOCALE_H_ +--- /dev/null ++++ b/gnulib/lib/ialloc.c +@@ -0,0 +1,21 @@ ++/* malloc with idx_t rather than size_t ++ ++ Copyright 2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 3 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ ++#include ++ ++#define IALLOC_INLINE _GL_EXTERN_INLINE ++#include "ialloc.h" +--- /dev/null ++++ b/gnulib/lib/ialloc.h +@@ -0,0 +1,94 @@ ++/* ialloc.h -- malloc with idx_t rather than size_t ++ ++ Copyright 2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 3 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ ++#ifndef IALLOC_H_ ++#define IALLOC_H_ ++ ++#include "idx.h" ++ ++#include ++#include ++#include ++ ++#ifndef _GL_INLINE_HEADER_BEGIN ++ #error "Please include config.h first." ++#endif ++_GL_INLINE_HEADER_BEGIN ++#ifndef IALLOC_INLINE ++# define IALLOC_INLINE _GL_INLINE ++#endif ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++IALLOC_INLINE void * _GL_ATTRIBUTE_COLD ++_gl_alloc_nomem (void) ++{ ++ errno = ENOMEM; ++ return NULL; ++} ++ ++IALLOC_INLINE void * ++imalloc (idx_t s) ++{ ++ return s <= SIZE_MAX ? malloc (s) : _gl_alloc_nomem (); ++} ++ ++IALLOC_INLINE void * ++irealloc (void *p, idx_t s) ++{ ++ /* Work around GNU realloc glitch by treating a zero size as if it ++ were 1, so that returning NULL is equivalent to failing. */ ++ return s <= SIZE_MAX ? realloc (p, s | !s) : _gl_alloc_nomem (); ++} ++ ++IALLOC_INLINE void * ++icalloc (idx_t n, idx_t s) ++{ ++ if (SIZE_MAX < n) ++ { ++ if (s != 0) ++ return _gl_alloc_nomem (); ++ n = 0; ++ } ++ if (SIZE_MAX < s) ++ { ++ if (n != 0) ++ return _gl_alloc_nomem (); ++ s = 0; ++ } ++ return calloc (n, s); ++} ++ ++IALLOC_INLINE void * ++ireallocarray (void *p, idx_t n, idx_t s) ++{ ++ /* Work around GNU reallocarray glitch by treating a zero size as if ++ it were 1, so that returning NULL is equivalent to failing. */ ++ if (n == 0 || s == 0) ++ n = s = 1; ++ return (n <= SIZE_MAX && s <= SIZE_MAX ++ ? reallocarray (p, n, s) ++ : _gl_alloc_nomem ()); ++} ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif +--- /dev/null ++++ b/gnulib/lib/idx.h +@@ -0,0 +1,114 @@ ++/* A type for indices and sizes. ++ Copyright (C) 2020-2021 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _IDX_H ++#define _IDX_H ++ ++/* Get ptrdiff_t. */ ++#include ++ ++/* Get PTRDIFF_MAX. */ ++#include ++ ++/* The type 'idx_t' holds an (array) index or an (object) size. ++ Its implementation promotes to a signed integer type, ++ which can hold the values ++ 0..2^63-1 (on 64-bit platforms) or ++ 0..2^31-1 (on 32-bit platforms). ++ ++ Why a signed integer type? ++ ++ * Security: Signed types can be checked for overflow via ++ '-fsanitize=undefined', but unsigned types cannot. ++ ++ * Comparisons without surprises: ISO C99 § 6.3.1.8 specifies a few ++ surprising results for comparisons, such as ++ ++ (int) -3 < (unsigned long) 7 => false ++ (int) -3 < (unsigned int) 7 => false ++ and on 32-bit machines: ++ (long) -3 < (unsigned int) 7 => false ++ ++ This is surprising because the natural comparison order is by ++ value in the realm of infinite-precision signed integers (ℤ). ++ ++ The best way to get rid of such surprises is to use signed types ++ for numerical integer values, and use unsigned types only for ++ bit masks and enums. ++ ++ Why not use 'size_t' directly? ++ ++ * Because 'size_t' is an unsigned type, and a signed type is better. ++ See above. ++ ++ Why not use 'ptrdiff_t' directly? ++ ++ * Maintainability: When reading and modifying code, it helps to know that ++ a certain variable cannot have negative values. For example, when you ++ have a loop ++ ++ int n = ...; ++ for (int i = 0; i < n; i++) ... ++ ++ or ++ ++ ptrdiff_t n = ...; ++ for (ptrdiff_t i = 0; i < n; i++) ... ++ ++ you have to ask yourself "what if n < 0?". Whereas in ++ ++ idx_t n = ...; ++ for (idx_t i = 0; i < n; i++) ... ++ ++ you know that this case cannot happen. ++ ++ Similarly, when a programmer writes ++ ++ idx_t = ptr2 - ptr1; ++ ++ there is an implied assertion that ptr1 and ptr2 point into the same ++ object and that ptr1 <= ptr2. ++ ++ * Being future-proof: In the future, range types (integers which are ++ constrained to a certain range of values) may be added to C compilers ++ or to the C standard. Several programming languages (Ada, Haskell, ++ Common Lisp, Pascal) already have range types. Such range types may ++ help producing good code and good warnings. The type 'idx_t' could ++ then be typedef'ed to a range type that is signed after promotion. */ ++ ++/* In the future, idx_t could be typedef'ed to a signed range type. ++ The clang "extended integer types", supported in Clang 11 or newer ++ , ++ are a special case of range types. However, these types don't support binary ++ operators with plain integer types (e.g. expressions such as x > 1). ++ Therefore, they don't behave like signed types (and not like unsigned types ++ either). So, we cannot use them here. */ ++ ++/* Use the signed type 'ptrdiff_t'. */ ++/* Note: ISO C does not mandate that 'size_t' and 'ptrdiff_t' have the same ++ size, but it is so on all platforms we have seen since 1990. */ ++typedef ptrdiff_t idx_t; ++ ++/* IDX_MAX is the maximum value of an idx_t. */ ++#define IDX_MAX PTRDIFF_MAX ++ ++/* So far no need has been found for an IDX_WIDTH macro. ++ Perhaps there should be another macro IDX_VALUE_BITS that does not ++ count the sign bit and is therefore one less than PTRDIFF_WIDTH. */ ++ ++#endif /* _IDX_H */ +--- a/gnulib/lib/intprops.h ++++ b/gnulib/lib/intprops.h +@@ -3,16 +3,16 @@ + Copyright (C) 2001-2021 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or ++ under the terms of the GNU Lesser General Public License as published ++ by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Paul Eggert. */ +@@ -133,7 +133,8 @@ + operators might not yield numerically correct answers due to + arithmetic overflow. They do not rely on undefined or + implementation-defined behavior. Their implementations are simple +- and straightforward, but they are a bit harder to use than the ++ and straightforward, but they are harder to use and may be less ++ efficient than the INT__WRAPV, INT__OK, and + INT__OVERFLOW macros described below. + + Example usage: +@@ -158,6 +159,9 @@ + must have minimum value MIN and maximum MAX. Unsigned types should + use a zero MIN of the proper type. + ++ Because all arguments are subject to integer promotions, these ++ macros typically do not work on types narrower than 'int'. ++ + These macros are tuned for constant MIN and MAX. For commutative + operations such as A + B, they are also tuned for constant B. */ + +@@ -339,9 +343,15 @@ + arguments should not have side effects. + + The WRAPV macros are not constant expressions. They support only +- +, binary -, and *. Because the WRAPV macros convert the result, +- they report overflow in different circumstances than the OVERFLOW +- macros do. ++ +, binary -, and *. ++ ++ Because the WRAPV macros convert the result, they report overflow ++ in different circumstances than the OVERFLOW macros do. For ++ example, in the typical case with 16-bit 'short' and 32-bit 'int', ++ if A, B and R are all of type 'short' then INT_ADD_OVERFLOW (A, B) ++ returns false because the addition cannot overflow after A and B ++ are converted to 'int', whereas INT_ADD_WRAPV (A, B, &R) returns ++ true or false depending on whether the sum fits into 'short'. + + These macros are tuned for their last input argument being a constant. + +--- a/gnulib/lib/inttypes.in.h ++++ b/gnulib/lib/inttypes.in.h +@@ -2,17 +2,17 @@ + Written by Paul Eggert, Bruno Haible, Derek Price. + This file is part of gnulib. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* +--- a/gnulib/lib/iswblank.c ++++ b/gnulib/lib/iswblank.c +@@ -1,18 +1,18 @@ + /* Test wide character for being blank. + Copyright (C) 2008-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/iswdigit.c ++++ b/gnulib/lib/iswdigit.c +@@ -1,18 +1,18 @@ + /* Test wide character for being a digit. + Copyright (C) 2020-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/iswxdigit.c ++++ b/gnulib/lib/iswxdigit.c +@@ -1,18 +1,18 @@ + /* Test wide character for being a hexadecimal digit. + Copyright (C) 2020-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/itold.c ++++ b/gnulib/lib/itold.c +@@ -2,17 +2,17 @@ + Copyright (C) 2011-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2011. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/langinfo.in.h ++++ b/gnulib/lib/langinfo.in.h +@@ -1,18 +1,18 @@ + /* Substitute for and wrapper around . + Copyright (C) 2009-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* + * POSIX for platforms that lack it or have an incomplete one. +--- a/gnulib/lib/lc-charset-dispatch.c ++++ b/gnulib/lib/lc-charset-dispatch.c +@@ -1,17 +1,17 @@ + /* Dispatching based on the current locale's character encoding. + Copyright (C) 2018-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2018. */ +--- a/gnulib/lib/lc-charset-dispatch.h ++++ b/gnulib/lib/lc-charset-dispatch.h +@@ -1,17 +1,17 @@ + /* Dispatching based on the current locale's character encoding. + Copyright (C) 2018-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2018. */ +--- a/gnulib/lib/libc-config.h ++++ b/gnulib/lib/libc-config.h +@@ -3,16 +3,16 @@ + Copyright 2017-2021 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with this program; if not, see + . */ + +@@ -28,7 +28,10 @@ + + When compiled as part of glibc this is a no-op; when compiled as + part of Gnulib this includes Gnulib's and defines macros +- that glibc library code would normally assume. */ ++ that glibc library code would normally assume. ++ ++ Note: This header file MUST NOT be included by public header files ++ of Gnulib. */ + + #include + +@@ -71,7 +74,7 @@ + # endif + #endif + +-#ifndef __attribute_maybe_unused__ ++#ifndef __attribute_nonnull__ + /* either does not exist, or is too old for Gnulib. + Prepare to include , which is Gnulib's version of a + more-recent glibc . */ +@@ -80,13 +83,9 @@ + # ifndef _FEATURES_H + # define _FEATURES_H 1 + # endif +-/* Define __WORDSIZE so that does not attempt to include +- nonexistent files. Make it a syntax error, since Gnulib does not +- use __WORDSIZE now, and if Gnulib uses it later the syntax error +- will let us know that __WORDSIZE needs configuring. */ +-# ifndef __WORDSIZE +-# define __WORDSIZE %%% +-# endif ++/* Define __GNULIB_CDEFS so that does not attempt to include ++ nonexistent files. */ ++# define __GNULIB_CDEFS + /* Undef the macros unconditionally defined by our copy of glibc + , so that they do not clash with any system-defined + versions. */ +--- a/gnulib/lib/limits.in.h ++++ b/gnulib/lib/limits.in.h +@@ -2,18 +2,18 @@ + + Copyright 2016-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public License +- as published by the Free Software Foundation; either version 3, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #if __GNUC__ >= 3 + @PRAGMA_SYSTEM_HEADER@ +--- a/gnulib/lib/localcharset.c ++++ b/gnulib/lib/localcharset.c +@@ -2,18 +2,18 @@ + + Copyright (C) 2000-2006, 2008-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible . */ + +--- a/gnulib/lib/localcharset.h ++++ b/gnulib/lib/localcharset.h +@@ -2,18 +2,18 @@ + Copyright (C) 2000-2003, 2009-2021 Free Software Foundation, Inc. + This file is part of the GNU CHARSET Library. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _LOCALCHARSET_H + #define _LOCALCHARSET_H +--- a/gnulib/lib/locale.in.h ++++ b/gnulib/lib/locale.in.h +@@ -1,17 +1,17 @@ + /* A POSIX . + Copyright (C) 2007-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #if __GNUC__ >= 3 +--- a/gnulib/lib/localeconv.c ++++ b/gnulib/lib/localeconv.c +@@ -1,17 +1,17 @@ + /* Query locale dependent information for formatting numbers. + Copyright (C) 2012-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/malloc.c ++++ b/gnulib/lib/malloc.c +@@ -2,61 +2,50 @@ + + Copyright (C) 1997-1998, 2006-2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* written by Jim Meyering and Bruno Haible */ + + #define _GL_USE_STDLIB_ALLOC 1 + #include +-/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ +-#ifdef malloc +-# define NEED_MALLOC_GNU 1 +-# undef malloc +-/* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */ +-#elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU +-# define NEED_MALLOC_GNU 1 +-#endif + + #include + +-/* A function definition is only needed if NEED_MALLOC_GNU is defined above +- or if the module 'malloc-posix' requests it. */ +-#if NEED_MALLOC_GNU || (GNULIB_MALLOC_POSIX && !HAVE_MALLOC_POSIX) ++#include + +-# include ++#include "xalloc-oversized.h" + +-/* Allocate an N-byte block of memory from the heap. +- If N is zero, allocate a 1-byte block. */ ++/* Allocate an N-byte block of memory from the heap, even if N is 0. */ + + void * + rpl_malloc (size_t n) + { +- void *result; +- +-# if NEED_MALLOC_GNU + if (n == 0) + n = 1; +-# endif + +- result = malloc (n); ++ if (xalloc_oversized (n, 1)) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ ++ void *result = malloc (n); + +-# if !HAVE_MALLOC_POSIX ++#if !HAVE_MALLOC_POSIX + if (result == NULL) + errno = ENOMEM; +-# endif ++#endif + + return result; + } +- +-#endif +--- a/gnulib/lib/malloc/dynarray-skeleton.c ++++ b/gnulib/lib/malloc/dynarray-skeleton.c +@@ -3,16 +3,16 @@ + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/malloc/dynarray.h ++++ b/gnulib/lib/malloc/dynarray.h +@@ -3,16 +3,16 @@ + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/malloc/dynarray_at_failure.c ++++ b/gnulib/lib/malloc/dynarray_at_failure.c +@@ -3,16 +3,16 @@ + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/malloc/dynarray_emplace_enlarge.c ++++ b/gnulib/lib/malloc/dynarray_emplace_enlarge.c +@@ -3,16 +3,16 @@ + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/malloc/dynarray_finalize.c ++++ b/gnulib/lib/malloc/dynarray_finalize.c +@@ -3,16 +3,16 @@ + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/malloc/dynarray_resize.c ++++ b/gnulib/lib/malloc/dynarray_resize.c +@@ -3,16 +3,16 @@ + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/malloc/dynarray_resize_clear.c ++++ b/gnulib/lib/malloc/dynarray_resize_clear.c +@@ -3,16 +3,16 @@ + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/malloca.c ++++ b/gnulib/lib/malloca.c +@@ -2,18 +2,18 @@ + Copyright (C) 2003, 2006-2007, 2009-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2003, 2018. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #define _GL_USE_STDLIB_ALLOC 1 + #include +@@ -21,6 +21,8 @@ + /* Specification. */ + #include "malloca.h" + ++#include "idx.h" ++#include "intprops.h" + #include "verify.h" + + /* The speed critical point in this file is freea() applied to an alloca() +@@ -45,9 +47,9 @@ mmalloca (size_t n) + #if HAVE_ALLOCA + /* Allocate one more word, used to determine the address to pass to freea(), + and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max. */ +- size_t nplus = n + sizeof (small_t) + 2 * sa_alignment_max - 1; +- +- if (nplus >= n) ++ int plus = sizeof (small_t) + 2 * sa_alignment_max - 1; ++ idx_t nplus; ++ if (!INT_ADD_WRAPV (n, plus, &nplus) && !xalloc_oversized (nplus, 1)) + { + char *mem = (char *) malloc (nplus); + +--- a/gnulib/lib/malloca.h ++++ b/gnulib/lib/malloca.h +@@ -2,18 +2,18 @@ + Copyright (C) 2003-2007, 2009-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2003. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _MALLOCA_H + #define _MALLOCA_H +@@ -76,9 +76,10 @@ extern void freea (void *p); + + /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). + It allocates an array of N objects, each with S bytes of memory, +- on the stack. S must be positive and N must be nonnegative. ++ on the stack. N and S should be nonnegative and free of side effects. + The array must be freed using freea() before the function returns. */ +-#define nmalloca(n, s) (xalloc_oversized (n, s) ? NULL : malloca ((n) * (s))) ++#define nmalloca(n, s) \ ++ (xalloc_oversized (n, s) ? NULL : malloca ((n) * (size_t) (s))) + + + #ifdef __cplusplus +--- a/gnulib/lib/mbchar.c ++++ b/gnulib/lib/mbchar.c +@@ -1,16 +1,16 @@ + /* Copyright (C) 2001, 2006, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + +--- a/gnulib/lib/mbchar.h ++++ b/gnulib/lib/mbchar.h +@@ -1,17 +1,17 @@ + /* Multibyte character data type. + Copyright (C) 2001, 2005-2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible . */ +--- a/gnulib/lib/mbiter.c ++++ b/gnulib/lib/mbiter.c +@@ -1,3 +1,21 @@ ++/* Iterating through multibyte strings: macros for multi-byte encodings. ++ ++ Copyright (C) 2012-2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ + #include ++ + #define MBITER_INLINE _GL_EXTERN_INLINE + #include "mbiter.h" +--- a/gnulib/lib/mbiter.h ++++ b/gnulib/lib/mbiter.h +@@ -1,17 +1,17 @@ + /* Iterating through multibyte strings: macros for multi-byte encodings. + Copyright (C) 2001, 2005, 2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible . */ +--- a/gnulib/lib/mbrtowc-impl-utf8.h ++++ b/gnulib/lib/mbrtowc-impl-utf8.h +@@ -1,17 +1,17 @@ + /* Convert multibyte character to wide character. + Copyright (C) 1999-2002, 2005-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2008. */ +@@ -96,7 +96,7 @@ + + if ((c2 ^ 0x80) < 0x40 + && (c >= 0xf1 || c2 >= 0x90) +- && (c < 0xf4 || (c == 0xf4 && c2 < 0x90))) ++ && (c < 0xf4 || (/* c == 0xf4 && */ c2 < 0x90))) + { + if (m == 2) + goto incomplete; +--- a/gnulib/lib/mbrtowc-impl.h ++++ b/gnulib/lib/mbrtowc-impl.h +@@ -1,17 +1,17 @@ + /* Convert multibyte character to wide character. + Copyright (C) 1999-2002, 2005-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2008. */ +--- a/gnulib/lib/mbrtowc.c ++++ b/gnulib/lib/mbrtowc.c +@@ -2,17 +2,17 @@ + Copyright (C) 1999-2002, 2005-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2008. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/mbscasecmp.c ++++ b/gnulib/lib/mbscasecmp.c +@@ -3,17 +3,17 @@ + Written by Bruno Haible , 2005, + based on earlier glibc code. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 3 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/mbschr.c ++++ b/gnulib/lib/mbschr.c +@@ -2,17 +2,17 @@ + Copyright (C) 2007-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2007. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 3 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/mbsinit.c ++++ b/gnulib/lib/mbsinit.c +@@ -2,17 +2,17 @@ + Copyright (C) 2008-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2008. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/mbslen.c ++++ b/gnulib/lib/mbslen.c +@@ -2,17 +2,17 @@ + Copyright (C) 2007-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2007. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 3 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/mbsncasecmp.c ++++ b/gnulib/lib/mbsncasecmp.c +@@ -3,17 +3,17 @@ + Written by Bruno Haible , 2005, + based on earlier glibc code. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 3 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/mbsstr.c ++++ b/gnulib/lib/mbsstr.c +@@ -2,17 +2,17 @@ + Copyright (C) 2005-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2005. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 3 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/mbtowc-impl.h ++++ b/gnulib/lib/mbtowc-impl.h +@@ -2,17 +2,17 @@ + Copyright (C) 2011-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2011. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* We don't need a static internal state, because the encoding is not state +--- a/gnulib/lib/mbtowc-lock.c ++++ b/gnulib/lib/mbtowc-lock.c +@@ -1,17 +1,17 @@ + /* Return the internal lock used by mbrtowc and mbrtoc32. + Copyright (C) 2019-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2019-2020. */ +--- a/gnulib/lib/mbtowc-lock.h ++++ b/gnulib/lib/mbtowc-lock.h +@@ -1,17 +1,17 @@ + /* Use the internal lock used by mbrtowc and mbrtoc32. + Copyright (C) 2019-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2019-2020. */ +--- a/gnulib/lib/mbtowc.c ++++ b/gnulib/lib/mbtowc.c +@@ -2,17 +2,17 @@ + Copyright (C) 2011-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2011. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/mbuiter.c ++++ b/gnulib/lib/mbuiter.c +@@ -1,3 +1,20 @@ ++/* Iterating through multibyte strings: macros for multi-byte encodings. ++ Copyright (C) 2012-2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 3 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ + #include ++ + #define MBUITER_INLINE _GL_EXTERN_INLINE + #include "mbuiter.h" +--- a/gnulib/lib/mbuiter.h ++++ b/gnulib/lib/mbuiter.h +@@ -1,17 +1,17 @@ + /* Iterating through multibyte strings: macros for multi-byte encodings. + Copyright (C) 2001, 2005, 2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 3 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible . */ +--- a/gnulib/lib/memchr.c ++++ b/gnulib/lib/memchr.c +@@ -7,21 +7,21 @@ + adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), + and implemented by Roland McGrath (roland@ai.mit.edu). + +-NOTE: The canonical source of this file is maintained with the GNU C Library. +-Bugs can be reported to bug-glibc@prep.ai.mit.edu. ++ NOTE: The canonical source of this file is maintained with the GNU C Library. ++ Bugs can be reported to bug-glibc@prep.ai.mit.edu. + +-This program is free software: you can redistribute it and/or modify it +-under the terms of the GNU General Public License as published by the +-Free Software Foundation; either version 3 of the License, or any +-later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +-This program is distributed in the hope that it will be useful, +-but WITHOUT ANY WARRANTY; without even the implied warranty of +-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-GNU General Public License for more details. ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +-You should have received a copy of the GNU General Public License +-along with this program. If not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _LIBC + # include +--- a/gnulib/lib/memchr.valgrind ++++ b/gnulib/lib/memchr.valgrind +@@ -2,17 +2,17 @@ + + # Copyright (C) 2009-2021 Free Software Foundation, Inc. + # +-# This program is free software: you can redistribute it and/or modify +-# it under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 3 of the License, or +-# (at your option) any later version. ++# This file is free software: you can redistribute it and/or modify ++# it under the terms of the GNU Lesser General Public License as ++# published by the Free Software Foundation; either version 2.1 of the ++# License, or (at your option) any later version. + # +-# This program is distributed in the hope that it will be useful, ++# This file is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. ++# GNU Lesser General Public License for more details. + # +-# You should have received a copy of the GNU General Public License ++# You should have received a copy of the GNU Lesser General Public License + # along with this program. If not, see . + + # POSIX states that when the character is found, memchr must not read extra +--- a/gnulib/lib/mempcpy.c ++++ b/gnulib/lib/mempcpy.c +@@ -1,18 +1,18 @@ + /* Copy memory area and return pointer after last written byte. + Copyright (C) 2003, 2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/memrchr.c ++++ b/gnulib/lib/memrchr.c +@@ -9,17 +9,17 @@ + adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), + and implemented by Roland McGrath (roland@ai.mit.edu). + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 3 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #if defined _LIBC +--- /dev/null ++++ b/gnulib/lib/minmax.h +@@ -0,0 +1,60 @@ ++/* MIN, MAX macros. ++ Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2021 Free Software ++ Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ ++#ifndef _MINMAX_H ++#define _MINMAX_H ++ ++/* Note: MIN, MAX are also defined in on some systems ++ (glibc, IRIX, HP-UX, OSF/1). Therefore you might get warnings about ++ MIN, MAX macro redefinitions on some systems; the workaround is to ++ #include this file as the last one among the #include list. */ ++ ++/* Before we define the following symbols we get the file ++ since otherwise we get redefinitions on some systems if is ++ included after this file. Likewise for . ++ If more than one of these system headers define MIN and MAX, pick just ++ one of the headers (because the definitions most likely are the same). */ ++#if HAVE_MINMAX_IN_LIMITS_H ++# include ++#elif HAVE_MINMAX_IN_SYS_PARAM_H ++# include ++#endif ++ ++/* Note: MIN and MAX should be used with two arguments of the ++ same type. They might not return the minimum and maximum of their two ++ arguments, if the arguments have different types or have unusual ++ floating-point values. For example, on a typical host with 32-bit 'int', ++ 64-bit 'long long', and 64-bit IEEE 754 'double' types: ++ ++ MAX (-1, 2147483648) returns 4294967295. ++ MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0. ++ MAX (NaN, 0.0) returns 0.0. ++ MAX (+0.0, -0.0) returns -0.0. ++ ++ and in each case the answer is in some sense bogus. */ ++ ++/* MAX(a,b) returns the maximum of A and B. */ ++#ifndef MAX ++# define MAX(a,b) ((a) > (b) ? (a) : (b)) ++#endif ++ ++/* MIN(a,b) returns the minimum of A and B. */ ++#ifndef MIN ++# define MIN(a,b) ((a) < (b) ? (a) : (b)) ++#endif ++ ++#endif /* _MINMAX_H */ +--- a/gnulib/lib/msvc-inval.c ++++ b/gnulib/lib/msvc-inval.c +@@ -1,18 +1,18 @@ + /* Invalid parameter handler for MSVC runtime libraries. + Copyright (C) 2011-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/msvc-inval.h ++++ b/gnulib/lib/msvc-inval.h +@@ -1,18 +1,18 @@ + /* Invalid parameter handler for MSVC runtime libraries. + Copyright (C) 2011-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _MSVC_INVAL_H + #define _MSVC_INVAL_H +--- a/gnulib/lib/msvc-nothrow.c ++++ b/gnulib/lib/msvc-nothrow.c +@@ -2,18 +2,18 @@ + with MSVC runtime libraries. + Copyright (C) 2011-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/msvc-nothrow.h ++++ b/gnulib/lib/msvc-nothrow.h +@@ -2,18 +2,18 @@ + with MSVC runtime libraries. + Copyright (C) 2011-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _MSVC_NOTHROW_H + #define _MSVC_NOTHROW_H +--- a/gnulib/lib/nl_langinfo-lock.c ++++ b/gnulib/lib/nl_langinfo-lock.c +@@ -1,17 +1,17 @@ + /* Return the internal lock used by nl_langinfo. + Copyright (C) 2019-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2019-2020. */ +--- a/gnulib/lib/nl_langinfo.c ++++ b/gnulib/lib/nl_langinfo.c +@@ -2,17 +2,17 @@ + + Copyright (C) 2007-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/open.c ++++ b/gnulib/lib/open.c +@@ -1,17 +1,17 @@ + /* Open a descriptor to a file. + Copyright (C) 2007-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2007. */ +--- a/gnulib/lib/pathmax.h ++++ b/gnulib/lib/pathmax.h +@@ -2,18 +2,18 @@ + Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2021 Free Software + Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _PATHMAX_H + # define _PATHMAX_H +--- a/gnulib/lib/printf-args.c ++++ b/gnulib/lib/printf-args.c +@@ -2,18 +2,18 @@ + Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2021 Free Software + Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* This file can be parametrized with the following macros: + ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. +--- a/gnulib/lib/printf-args.h ++++ b/gnulib/lib/printf-args.h +@@ -2,18 +2,18 @@ + Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2021 Free Software + Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _PRINTF_ARGS_H + #define _PRINTF_ARGS_H +--- a/gnulib/lib/printf-parse.c ++++ b/gnulib/lib/printf-parse.c +@@ -1,18 +1,18 @@ + /* Formatted output to strings. + Copyright (C) 1999-2000, 2002-2003, 2006-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* This file can be parametrized with the following macros: + CHAR_T The element type of the format string. +@@ -48,16 +48,7 @@ + #include + + /* Get intmax_t. */ +-#if defined IN_LIBINTL || defined IN_LIBASPRINTF +-# if HAVE_STDINT_H_WITH_UINTMAX +-# include +-# endif +-# if HAVE_INTTYPES_H_WITH_UINTMAX +-# include +-# endif +-#else +-# include +-#endif ++#include + + /* malloc(), realloc(), free(). */ + #include +--- a/gnulib/lib/printf-parse.h ++++ b/gnulib/lib/printf-parse.h +@@ -2,18 +2,18 @@ + Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2021 Free Software + Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _PRINTF_PARSE_H + #define _PRINTF_PARSE_H +--- /dev/null ++++ b/gnulib/lib/realloc.c +@@ -0,0 +1,63 @@ ++/* realloc() function that is glibc compatible. ++ ++ Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2021 Free Software ++ Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ ++/* written by Jim Meyering and Bruno Haible */ ++ ++#include ++ ++#include ++ ++#include ++ ++#include "xalloc-oversized.h" ++ ++/* Call the system's realloc below. This file does not define ++ _GL_USE_STDLIB_ALLOC because it needs Gnulib's malloc if present. */ ++#undef realloc ++ ++/* Change the size of an allocated block of memory P to N bytes, ++ with error checking. If P is NULL, use malloc. Otherwise if N is zero, ++ free P and return NULL. */ ++ ++void * ++rpl_realloc (void *p, size_t n) ++{ ++ if (p == NULL) ++ return malloc (n); ++ ++ if (n == 0) ++ { ++ free (p); ++ return NULL; ++ } ++ ++ if (xalloc_oversized (n, 1)) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ ++ void *result = realloc (p, n); ++ ++#if !HAVE_MALLOC_POSIX ++ if (result == NULL) ++ errno = ENOMEM; ++#endif ++ ++ return result; ++} +--- /dev/null ++++ b/gnulib/lib/reallocarray.c +@@ -0,0 +1,39 @@ ++/* reallocarray function that is glibc compatible. ++ ++ Copyright (C) 2017-2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ ++/* written by Darshit Shah */ ++ ++#include ++ ++#include ++#include ++ ++#include "intprops.h" ++ ++void * ++reallocarray (void *ptr, size_t nmemb, size_t size) ++{ ++ size_t nbytes; ++ if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes)) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ ++ /* Rely on the semantics of GNU realloc. */ ++ return realloc (ptr, nbytes); ++} +--- a/gnulib/lib/regcomp.c ++++ b/gnulib/lib/regcomp.c +@@ -4,16 +4,16 @@ + Contributed by Isamu Hasegawa . + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/regex.c ++++ b/gnulib/lib/regex.c +@@ -4,16 +4,16 @@ + Contributed by Isamu Hasegawa . + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/regex.h ++++ b/gnulib/lib/regex.h +@@ -4,16 +4,16 @@ + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/regex_internal.c ++++ b/gnulib/lib/regex_internal.c +@@ -4,16 +4,16 @@ + Contributed by Isamu Hasegawa . + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/regex_internal.h ++++ b/gnulib/lib/regex_internal.h +@@ -4,16 +4,16 @@ + Contributed by Isamu Hasegawa . + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +--- a/gnulib/lib/regexec.c ++++ b/gnulib/lib/regexec.c +@@ -4,16 +4,16 @@ + Contributed by Isamu Hasegawa . + + The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU General Public ++ modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either +- version 3 of the License, or (at your option) any later version. ++ version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public ++ You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +@@ -1220,9 +1220,13 @@ proceed_next_node (const re_match_contex + { + re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes; + re_node_set *edests = &dfa->edests[node]; +- bool ok = re_node_set_insert (eps_via_nodes, node); +- if (__glibc_unlikely (! ok)) +- return -2; ++ ++ if (! re_node_set_contains (eps_via_nodes, node)) ++ { ++ bool ok = re_node_set_insert (eps_via_nodes, node); ++ if (__glibc_unlikely (! ok)) ++ return -2; ++ } + + /* Pick a valid destination, or return -1 if none is found. */ + Idx dest_node = -1; +@@ -1414,7 +1418,7 @@ set_regs (const regex_t *preg, const re_ + update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch); + + if ((idx == pmatch[0].rm_eo && cur_node == mctx->last_node) +- || re_node_set_contains (&eps_via_nodes, cur_node)) ++ || (fs && re_node_set_contains (&eps_via_nodes, cur_node))) + { + Idx reg_idx; + cur_node = -1; +--- a/gnulib/lib/setlocale-lock.c ++++ b/gnulib/lib/setlocale-lock.c +@@ -1,17 +1,17 @@ + /* Return the internal lock used by setlocale_null_r. + Copyright (C) 2019-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2019. */ +--- a/gnulib/lib/setlocale_null.c ++++ b/gnulib/lib/setlocale_null.c +@@ -1,17 +1,17 @@ + /* Query the name of the current global locale. + Copyright (C) 2019-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2019. */ +--- a/gnulib/lib/setlocale_null.h ++++ b/gnulib/lib/setlocale_null.h +@@ -1,17 +1,17 @@ + /* Query the name of the current global locale. + Copyright (C) 2019-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2019. */ +--- a/gnulib/lib/size_max.h ++++ b/gnulib/lib/size_max.h +@@ -2,18 +2,18 @@ + Copyright (C) 2005-2006, 2009-2021 Free Software Foundation, Inc. + Written by Simon Josefsson. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef GNULIB_SIZE_MAX_H + #define GNULIB_SIZE_MAX_H +--- a/gnulib/lib/stat-time.c ++++ b/gnulib/lib/stat-time.c +@@ -1,3 +1,21 @@ ++/* stat-related time functions. ++ ++ Copyright (C) 2012-2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ + #include ++ + #define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE + #include "stat-time.h" +--- a/gnulib/lib/stat-time.h ++++ b/gnulib/lib/stat-time.h +@@ -2,17 +2,17 @@ + + Copyright (C) 2005, 2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Paul Eggert. */ +--- a/gnulib/lib/stat-w32.c ++++ b/gnulib/lib/stat-w32.c +@@ -1,17 +1,17 @@ + /* Core of implementation of fstat and stat for native Windows. + Copyright (C) 2017-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible. */ +--- a/gnulib/lib/stat-w32.h ++++ b/gnulib/lib/stat-w32.h +@@ -1,17 +1,17 @@ + /* Core of implementation of fstat and stat for native Windows. + Copyright (C) 2017-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _STAT_W32_H +--- a/gnulib/lib/stat.c ++++ b/gnulib/lib/stat.c +@@ -1,17 +1,17 @@ + /* Work around platform bugs in stat. + Copyright (C) 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Eric Blake and Bruno Haible. */ +--- a/gnulib/lib/stdarg.in.h ++++ b/gnulib/lib/stdarg.in.h +@@ -1,18 +1,18 @@ + /* Substitute for and wrapper around . + Copyright (C) 2008-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _@GUARD_PREFIX@_STDARG_H + +--- a/gnulib/lib/stdbool.in.h ++++ b/gnulib/lib/stdbool.in.h +@@ -1,18 +1,18 @@ + /* Copyright (C) 2001-2003, 2006-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2001. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _GL_STDBOOL_H + #define _GL_STDBOOL_H +--- a/gnulib/lib/stddef.in.h ++++ b/gnulib/lib/stddef.in.h +@@ -2,18 +2,18 @@ + + Copyright (C) 2009-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Eric Blake. */ + +--- a/gnulib/lib/stdint.in.h ++++ b/gnulib/lib/stdint.in.h +@@ -2,18 +2,18 @@ + Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. + This file is part of gnulib. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* + * ISO C 99 for platforms that lack it. +@@ -85,7 +85,7 @@ + + /* Override WINT_MIN and WINT_MAX if gnulib's or overrides + wint_t. */ +-#if @GNULIB_OVERRIDES_WINT_T@ ++#if @GNULIBHEADERS_OVERRIDE_WINT_T@ + # undef WINT_MIN + # undef WINT_MAX + # define WINT_MIN 0x0U +@@ -598,7 +598,7 @@ typedef int _verify_intmax_size[sizeof ( + /* wint_t limits */ + /* If gnulib's or overrides wint_t, @WINT_T_SUFFIX@ is not + accurate, therefore use the definitions from above. */ +-# if !@GNULIB_OVERRIDES_WINT_T@ ++# if !@GNULIBHEADERS_OVERRIDE_WINT_T@ + # undef WINT_MIN + # undef WINT_MAX + # if @HAVE_SIGNED_WINT_T@ +--- a/gnulib/lib/stdio.in.h ++++ b/gnulib/lib/stdio.in.h +@@ -2,18 +2,18 @@ + + Copyright (C) 2004, 2007-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #if __GNUC__ >= 3 + @PRAGMA_SYSTEM_HEADER@ +@@ -242,7 +242,7 @@ _GL_WARN_ON_USE (fclose, "fclose is not + _GL_CXXALIAS_MDA (fcloseall, int, (void)); + # else + # if @HAVE_DECL_FCLOSEALL@ +-# if defined __FreeBSD__ ++# if defined __FreeBSD__ || defined __DragonFly__ + _GL_CXXALIAS_SYS (fcloseall, void, (void)); + # else + _GL_CXXALIAS_SYS (fcloseall, int, (void)); +@@ -1257,6 +1257,7 @@ _GL_CXXALIASWARN (scanf); + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # define snprintf rpl_snprintf + # endif ++# define GNULIB_overrides_snprintf 1 + _GL_FUNCDECL_RPL (snprintf, int, + (char *restrict str, size_t size, + const char *restrict format, ...) +@@ -1302,6 +1303,7 @@ _GL_WARN_ON_USE (snprintf, "snprintf is + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # define sprintf rpl_sprintf + # endif ++# define GNULIB_overrides_sprintf 1 + _GL_FUNCDECL_RPL (sprintf, int, + (char *restrict str, const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) +@@ -1369,6 +1371,7 @@ _GL_WARN_ON_USE (tmpfile, "tmpfile is no + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # define asprintf rpl_asprintf + # endif ++# define GNULIB_overrides_asprintf + _GL_FUNCDECL_RPL (asprintf, int, + (char **result, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) +@@ -1390,6 +1393,7 @@ _GL_CXXALIASWARN (asprintf); + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # define vasprintf rpl_vasprintf + # endif ++# define GNULIB_overrides_vasprintf 1 + _GL_FUNCDECL_RPL (vasprintf, int, + (char **result, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) +@@ -1573,6 +1577,7 @@ _GL_CXXALIASWARN (vscanf); + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # define vsnprintf rpl_vsnprintf + # endif ++# define GNULIB_overrides_vsnprintf 1 + _GL_FUNCDECL_RPL (vsnprintf, int, + (char *restrict str, size_t size, + const char *restrict format, va_list args) +@@ -1609,6 +1614,7 @@ _GL_WARN_ON_USE (vsnprintf, "vsnprintf i + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # define vsprintf rpl_vsprintf + # endif ++# define GNULIB_overrides_vsprintf 1 + _GL_FUNCDECL_RPL (vsprintf, int, + (char *restrict str, + const char *restrict format, va_list args) +--- a/gnulib/lib/stdlib.in.h ++++ b/gnulib/lib/stdlib.in.h +@@ -2,17 +2,17 @@ + + Copyright (C) 1995, 2001-2004, 2006-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #if __GNUC__ >= 3 +@@ -1032,12 +1032,23 @@ _GL_WARN_ON_USE (realloc, "realloc is no + + + #if @GNULIB_REALLOCARRAY@ +-# if ! @HAVE_REALLOCARRAY@ ++# if @REPLACE_REALLOCARRAY@ ++# if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# undef reallocarray ++# define reallocarray rpl_reallocarray ++# endif ++_GL_FUNCDECL_RPL (reallocarray, void *, ++ (void *ptr, size_t nmemb, size_t size)); ++_GL_CXXALIAS_RPL (reallocarray, void *, ++ (void *ptr, size_t nmemb, size_t size)); ++# else ++# if ! @HAVE_REALLOCARRAY@ + _GL_FUNCDECL_SYS (reallocarray, void *, + (void *ptr, size_t nmemb, size_t size)); +-# endif ++# endif + _GL_CXXALIAS_SYS (reallocarray, void *, + (void *ptr, size_t nmemb, size_t size)); ++# endif + _GL_CXXALIASWARN (reallocarray); + #elif defined GNULIB_POSIXCHECK + # undef reallocarray +@@ -1202,6 +1213,47 @@ _GL_WARN_ON_USE (strtold, "strtold is un + # endif + #endif + ++#if @GNULIB_STRTOL@ ++/* Parse a signed integer whose textual representation starts at STRING. ++ The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, ++ it may be decimal or octal (with prefix "0") or hexadecimal (with prefix ++ "0x"). ++ If ENDPTR is not NULL, the address of the first byte after the integer is ++ stored in *ENDPTR. ++ Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set ++ to ERANGE. */ ++# if @REPLACE_STRTOL@ ++# if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# define strtol rpl_strtol ++# endif ++# define GNULIB_defined_strtol_function 1 ++_GL_FUNCDECL_RPL (strtol, long, ++ (const char *restrict string, char **restrict endptr, ++ int base) ++ _GL_ARG_NONNULL ((1))); ++_GL_CXXALIAS_RPL (strtol, long, ++ (const char *restrict string, char **restrict endptr, ++ int base)); ++# else ++# if !@HAVE_STRTOL@ ++_GL_FUNCDECL_SYS (strtol, long, ++ (const char *restrict string, char **restrict endptr, ++ int base) ++ _GL_ARG_NONNULL ((1))); ++# endif ++_GL_CXXALIAS_SYS (strtol, long, ++ (const char *restrict string, char **restrict endptr, ++ int base)); ++# endif ++_GL_CXXALIASWARN (strtol); ++#elif defined GNULIB_POSIXCHECK ++# undef strtol ++# if HAVE_RAW_DECL_STRTOL ++_GL_WARN_ON_USE (strtol, "strtol is unportable - " ++ "use gnulib module strtol for portability"); ++# endif ++#endif ++ + #if @GNULIB_STRTOLL@ + /* Parse a signed integer whose textual representation starts at STRING. + The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, +@@ -1211,15 +1263,29 @@ _GL_WARN_ON_USE (strtold, "strtold is un + stored in *ENDPTR. + Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set + to ERANGE. */ +-# if !@HAVE_STRTOLL@ ++# if @REPLACE_STRTOLL@ ++# if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# define strtoll rpl_strtoll ++# endif ++# define GNULIB_defined_strtoll_function 1 ++_GL_FUNCDECL_RPL (strtoll, long long, ++ (const char *restrict string, char **restrict endptr, ++ int base) ++ _GL_ARG_NONNULL ((1))); ++_GL_CXXALIAS_RPL (strtoll, long long, ++ (const char *restrict string, char **restrict endptr, ++ int base)); ++# else ++# if !@HAVE_STRTOLL@ + _GL_FUNCDECL_SYS (strtoll, long long, + (const char *restrict string, char **restrict endptr, + int base) + _GL_ARG_NONNULL ((1))); +-# endif ++# endif + _GL_CXXALIAS_SYS (strtoll, long long, + (const char *restrict string, char **restrict endptr, + int base)); ++# endif + _GL_CXXALIASWARN (strtoll); + #elif defined GNULIB_POSIXCHECK + # undef strtoll +@@ -1229,6 +1295,46 @@ _GL_WARN_ON_USE (strtoll, "strtoll is un + # endif + #endif + ++#if @GNULIB_STRTOUL@ ++/* Parse an unsigned integer whose textual representation starts at STRING. ++ The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, ++ it may be decimal or octal (with prefix "0") or hexadecimal (with prefix ++ "0x"). ++ If ENDPTR is not NULL, the address of the first byte after the integer is ++ stored in *ENDPTR. ++ Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE. */ ++# if @REPLACE_STRTOUL@ ++# if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# define strtoul rpl_strtoul ++# endif ++# define GNULIB_defined_strtoul_function 1 ++_GL_FUNCDECL_RPL (strtoul, unsigned long, ++ (const char *restrict string, char **restrict endptr, ++ int base) ++ _GL_ARG_NONNULL ((1))); ++_GL_CXXALIAS_RPL (strtoul, unsigned long, ++ (const char *restrict string, char **restrict endptr, ++ int base)); ++# else ++# if !@HAVE_STRTOUL@ ++_GL_FUNCDECL_SYS (strtoul, unsigned long, ++ (const char *restrict string, char **restrict endptr, ++ int base) ++ _GL_ARG_NONNULL ((1))); ++# endif ++_GL_CXXALIAS_SYS (strtoul, unsigned long, ++ (const char *restrict string, char **restrict endptr, ++ int base)); ++# endif ++_GL_CXXALIASWARN (strtoul); ++#elif defined GNULIB_POSIXCHECK ++# undef strtoul ++# if HAVE_RAW_DECL_STRTOUL ++_GL_WARN_ON_USE (strtoul, "strtoul is unportable - " ++ "use gnulib module strtoul for portability"); ++# endif ++#endif ++ + #if @GNULIB_STRTOULL@ + /* Parse an unsigned integer whose textual representation starts at STRING. + The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, +@@ -1238,15 +1344,29 @@ _GL_WARN_ON_USE (strtoll, "strtoll is un + stored in *ENDPTR. + Upon overflow, the return value is ULLONG_MAX, and errno is set to + ERANGE. */ +-# if !@HAVE_STRTOULL@ ++# if @REPLACE_STRTOULL@ ++# if !(defined __cplusplus && defined GNULIB_NAMESPACE) ++# define strtoull rpl_strtoull ++# endif ++# define GNULIB_defined_strtoull_function 1 ++_GL_FUNCDECL_RPL (strtoull, unsigned long long, ++ (const char *restrict string, char **restrict endptr, ++ int base) ++ _GL_ARG_NONNULL ((1))); ++_GL_CXXALIAS_RPL (strtoull, unsigned long long, ++ (const char *restrict string, char **restrict endptr, ++ int base)); ++# else ++# if !@HAVE_STRTOULL@ + _GL_FUNCDECL_SYS (strtoull, unsigned long long, + (const char *restrict string, char **restrict endptr, + int base) + _GL_ARG_NONNULL ((1))); +-# endif ++# endif + _GL_CXXALIAS_SYS (strtoull, unsigned long long, + (const char *restrict string, char **restrict endptr, + int base)); ++# endif + _GL_CXXALIASWARN (strtoull); + #elif defined GNULIB_POSIXCHECK + # undef strtoull +--- a/gnulib/lib/stpcpy.c ++++ b/gnulib/lib/stpcpy.c +@@ -5,17 +5,17 @@ + NOTE: The canonical source of this file is maintained with the GNU C Library. + Bugs can be reported to bug-glibc@prep.ai.mit.edu. + +- This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published by the +- Free Software Foundation; either version 3 of the License, or any +- later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/str-kmp.h ++++ b/gnulib/lib/str-kmp.h +@@ -3,18 +3,26 @@ + Copyright (C) 2005-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2005. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software. ++ It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". ++ You can redistribute it and/or modify it under either ++ - the terms of the GNU Lesser General Public License as published ++ by the Free Software Foundation; either version 3, or (at your ++ option) any later version, or ++ - the terms of the GNU General Public License as published by the ++ Free Software Foundation; either version 2, or (at your option) ++ any later version, or ++ - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License and the GNU General Public License ++ for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public ++ License and of the GNU General Public License along with this ++ program. If not, see . */ + + /* Before including this file, you need to define: + UNIT The element type of the needle and haystack. +--- a/gnulib/lib/str-two-way.h ++++ b/gnulib/lib/str-two-way.h +@@ -3,18 +3,18 @@ + This file is part of the GNU C Library. + Written by Eric Blake , 2008. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Before including this file, you need to include and + , and define: +--- a/gnulib/lib/strcasecmp.c ++++ b/gnulib/lib/strcasecmp.c +@@ -1,18 +1,18 @@ + /* Case-insensitive string comparison function. + Copyright (C) 1998-1999, 2005-2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/strcasestr.c ++++ b/gnulib/lib/strcasestr.c +@@ -2,18 +2,18 @@ + Copyright (C) 2005-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2005. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/strdup.c ++++ b/gnulib/lib/strdup.c +@@ -3,18 +3,18 @@ + + This file is part of the GNU C Library. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _LIBC + # include +--- a/gnulib/lib/streq.h ++++ b/gnulib/lib/streq.h +@@ -1,17 +1,17 @@ + /* Optimized string comparison. + Copyright (C) 2001-2002, 2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible . */ +--- a/gnulib/lib/strerror-override.c ++++ b/gnulib/lib/strerror-override.c +@@ -2,17 +2,17 @@ + + Copyright (C) 2010-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Bruno Haible , 2010. */ +@@ -29,6 +29,8 @@ + # endif + #endif + ++#if !GNULIB_defined_strerror_override_macro ++ + /* If ERRNUM maps to an errno value defined by gnulib, return a string + describing the error. Otherwise return NULL. */ + const char * +@@ -37,12 +39,12 @@ strerror_override (int errnum) + /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ + switch (errnum) + { +-#if REPLACE_STRERROR_0 ++# if REPLACE_STRERROR_0 + case 0: + return "Success"; +-#endif ++# endif + +-#if GNULIB_defined_ESOCK /* native Windows platforms with older */ ++# if GNULIB_defined_ESOCK /* native Windows platforms with older */ + case EINPROGRESS: + return "Operation now in progress"; + case EALREADY: +@@ -89,8 +91,8 @@ strerror_override (int errnum) + return "No route to host"; + case EWOULDBLOCK: + return "Operation would block"; +-#endif +-#if GNULIB_defined_ESTREAMS /* native Windows platforms with older */ ++# endif ++# if GNULIB_defined_ESTREAMS /* native Windows platforms with older */ + case ETXTBSY: + return "Text file busy"; + case ENODATA: +@@ -103,8 +105,8 @@ strerror_override (int errnum) + return "Timer expired"; + case EOTHER: + return "Other error"; +-#endif +-#if GNULIB_defined_EWINSOCK /* native Windows platforms */ ++# endif ++# if GNULIB_defined_EWINSOCK /* native Windows platforms */ + case ESOCKTNOSUPPORT: + return "Socket type not supported"; + case EPFNOSUPPORT: +@@ -125,7 +127,7 @@ strerror_override (int errnum) + return "Stale NFS file handle"; + case EREMOTE: + return "Object is remote"; +-# if HAVE_WINSOCK2_H ++# if HAVE_WINSOCK2_H + /* WSA_INVALID_HANDLE maps to EBADF */ + /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ + /* WSA_INVALID_PARAMETER maps to EINVAL */ +@@ -213,90 +215,92 @@ strerror_override (int errnum) + case WSANO_DATA: + return "Valid name, no data record of requested type"; + /* WSA_QOS_* omitted */ ++# endif + # endif +-#endif + +-#if GNULIB_defined_ENOMSG ++# if GNULIB_defined_ENOMSG + case ENOMSG: + return "No message of desired type"; +-#endif ++# endif + +-#if GNULIB_defined_EIDRM ++# if GNULIB_defined_EIDRM + case EIDRM: + return "Identifier removed"; +-#endif ++# endif + +-#if GNULIB_defined_ENOLINK ++# if GNULIB_defined_ENOLINK + case ENOLINK: + return "Link has been severed"; +-#endif ++# endif + +-#if GNULIB_defined_EPROTO ++# if GNULIB_defined_EPROTO + case EPROTO: + return "Protocol error"; +-#endif ++# endif + +-#if GNULIB_defined_EMULTIHOP ++# if GNULIB_defined_EMULTIHOP + case EMULTIHOP: + return "Multihop attempted"; +-#endif ++# endif + +-#if GNULIB_defined_EBADMSG ++# if GNULIB_defined_EBADMSG + case EBADMSG: + return "Bad message"; +-#endif ++# endif + +-#if GNULIB_defined_EOVERFLOW ++# if GNULIB_defined_EOVERFLOW + case EOVERFLOW: + return "Value too large for defined data type"; +-#endif ++# endif + +-#if GNULIB_defined_ENOTSUP ++# if GNULIB_defined_ENOTSUP + case ENOTSUP: + return "Not supported"; +-#endif ++# endif + +-#if GNULIB_defined_ENETRESET ++# if GNULIB_defined_ENETRESET + case ENETRESET: + return "Network dropped connection on reset"; +-#endif ++# endif + +-#if GNULIB_defined_ECONNABORTED ++# if GNULIB_defined_ECONNABORTED + case ECONNABORTED: + return "Software caused connection abort"; +-#endif ++# endif + +-#if GNULIB_defined_ESTALE ++# if GNULIB_defined_ESTALE + case ESTALE: + return "Stale NFS file handle"; +-#endif ++# endif + +-#if GNULIB_defined_EDQUOT ++# if GNULIB_defined_EDQUOT + case EDQUOT: + return "Disk quota exceeded"; +-#endif ++# endif + +-#if GNULIB_defined_ECANCELED ++# if GNULIB_defined_ECANCELED + case ECANCELED: + return "Operation canceled"; +-#endif ++# endif + +-#if GNULIB_defined_EOWNERDEAD ++# if GNULIB_defined_EOWNERDEAD + case EOWNERDEAD: + return "Owner died"; +-#endif ++# endif + +-#if GNULIB_defined_ENOTRECOVERABLE ++# if GNULIB_defined_ENOTRECOVERABLE + case ENOTRECOVERABLE: + return "State not recoverable"; +-#endif ++# endif + +-#if GNULIB_defined_EILSEQ ++# if GNULIB_defined_EILSEQ + case EILSEQ: + return "Invalid or incomplete multibyte or wide character"; +-#endif ++# endif + + default: + return NULL; + } + } ++ ++#endif +--- a/gnulib/lib/strerror-override.h ++++ b/gnulib/lib/strerror-override.h +@@ -2,17 +2,17 @@ + + Copyright (C) 2010-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _GL_STRERROR_OVERRIDE_H +@@ -51,6 +51,7 @@ + extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST; + # else + # define strerror_override(ignored) NULL ++# define GNULIB_defined_strerror_override_macro 1 + # endif + + #endif /* _GL_STRERROR_OVERRIDE_H */ +--- a/gnulib/lib/strerror.c ++++ b/gnulib/lib/strerror.c +@@ -2,17 +2,17 @@ + + Copyright (C) 2007-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/string.in.h ++++ b/gnulib/lib/string.in.h +@@ -2,18 +2,18 @@ + + Copyright (C) 1995-1996, 2001-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #if __GNUC__ >= 3 + @PRAGMA_SYSTEM_HEADER@ +@@ -446,7 +446,7 @@ _GL_WARN_ON_USE (strdup, "strdup is unpo + #elif @GNULIB_MDA_STRDUP@ + /* On native Windows, map 'creat' to '_creat', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between +- platforms by defining GNULIB_NAMESPACE::creat always. */ ++ platforms by defining GNULIB_NAMESPACE::strdup always. */ + # if defined _WIN32 && !defined __CYGWIN__ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef strdup +--- a/gnulib/lib/strings.in.h ++++ b/gnulib/lib/strings.in.h +@@ -2,18 +2,18 @@ + + Copyright (C) 2007-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _@GUARD_PREFIX@_STRINGS_H + +--- a/gnulib/lib/strncasecmp.c ++++ b/gnulib/lib/strncasecmp.c +@@ -1,18 +1,18 @@ + /* strncasecmp.c -- case insensitive string comparator + Copyright (C) 1998-1999, 2005-2007, 2009-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/strndup.c ++++ b/gnulib/lib/strndup.c +@@ -3,18 +3,18 @@ + Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2021 Free Software + Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published by the +- Free Software Foundation; either version 3, or (at your option) any +- later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/strnlen.c ++++ b/gnulib/lib/strnlen.c +@@ -2,18 +2,18 @@ + Copyright (C) 2005-2007, 2009-2021 Free Software Foundation, Inc. + Written by Simon Josefsson. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/strnlen1.c ++++ b/gnulib/lib/strnlen1.c +@@ -1,17 +1,17 @@ + /* Find the length of STRING + 1, but scan at most MAXLEN bytes. + Copyright (C) 2005-2006, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/strnlen1.h ++++ b/gnulib/lib/strnlen1.h +@@ -1,17 +1,17 @@ + /* Find the length of STRING + 1, but scan at most MAXLEN bytes. + Copyright (C) 2005, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _STRNLEN1_H +--- a/gnulib/lib/strstr.c ++++ b/gnulib/lib/strstr.c +@@ -2,18 +2,18 @@ + Foundation, Inc. + This file is part of the GNU C Library. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* This particular implementation was written by Eric Blake, 2008. */ + +--- a/gnulib/lib/sys_stat.in.h ++++ b/gnulib/lib/sys_stat.in.h +@@ -1,18 +1,18 @@ + /* Provide a more complete sys/stat.h header file. + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ + +--- a/gnulib/lib/sys_types.in.h ++++ b/gnulib/lib/sys_types.in.h +@@ -2,18 +2,18 @@ + + Copyright (C) 2011-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #if __GNUC__ >= 3 + @PRAGMA_SYSTEM_HEADER@ +--- a/gnulib/lib/time.in.h ++++ b/gnulib/lib/time.in.h +@@ -2,18 +2,18 @@ + + Copyright (C) 2007-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #if __GNUC__ >= 3 + @PRAGMA_SYSTEM_HEADER@ +@@ -340,22 +340,60 @@ _GL_CXXALIASWARN (strftime); + # endif + + # if defined _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@ ++/* Functions that use a first-class time zone data type, instead of ++ relying on an implicit global time zone. ++ Inspired by NetBSD. */ ++ ++/* Represents a time zone. ++ (timezone_t) NULL stands for UTC. */ + typedef struct tm_zone *timezone_t; ++ ++/* tzalloc (name) ++ Returns a time zone object for the given time zone NAME. This object ++ represents the time zone that other functions would use it the TZ ++ environment variable was set to NAME. ++ If NAME is NULL, the result represents the time zone that other functions ++ would use it the TZ environment variable was unset. ++ May return NULL if NAME is invalid (this is platform dependent) or ++ upon memory allocation failure. */ + _GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name)); + _GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name)); ++ ++/* tzfree (tz) ++ Frees a time zone object. ++ The argument must have been returned by tzalloc(). */ + _GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz)); + _GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz)); ++ ++/* localtime_rz (tz, &t, &result) ++ Converts an absolute time T to a broken-down time RESULT, assuming the ++ time zone TZ. ++ This function is like 'localtime_r', but relies on the argument TZ instead ++ of an implicit global time zone. */ + _GL_FUNCDECL_SYS (localtime_rz, struct tm *, + (timezone_t __tz, time_t const *restrict __timer, + struct tm *restrict __result) _GL_ARG_NONNULL ((2, 3))); + _GL_CXXALIAS_SYS (localtime_rz, struct tm *, + (timezone_t __tz, time_t const *restrict __timer, + struct tm *restrict __result)); ++ ++/* mktime_z (tz, &tm) ++ Normalizes the broken-down time TM and converts it to an absolute time, ++ assuming the time zone TZ. Returns the absolute time. ++ This function is like 'mktime', but relies on the argument TZ instead ++ of an implicit global time zone. */ + _GL_FUNCDECL_SYS (mktime_z, time_t, +- (timezone_t __tz, struct tm *restrict __result) ++ (timezone_t __tz, struct tm *restrict __tm) + _GL_ARG_NONNULL ((2))); + _GL_CXXALIAS_SYS (mktime_z, time_t, +- (timezone_t __tz, struct tm *restrict __result)); ++ (timezone_t __tz, struct tm *restrict __tm)); ++ ++/* Time zone abbreviation strings (returned by 'localtime_rz' or 'mktime_z' ++ in the 'tm_zone' member of 'struct tm') are valid as long as ++ - the 'struct tm' argument is not destroyed or overwritten, ++ and ++ - the 'timezone_t' argument is not freed through tzfree(). */ ++ + # endif + + /* Convert TM to a time_t value, assuming UTC. */ +--- a/gnulib/lib/unistd.c ++++ b/gnulib/lib/unistd.c +@@ -1,4 +1,22 @@ ++/* Inline functions for . ++ ++ Copyright (C) 2012-2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ + #include ++ + #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE + #include "unistd.h" + typedef int dummy; +--- a/gnulib/lib/unistd.in.h ++++ b/gnulib/lib/unistd.in.h +@@ -1,18 +1,18 @@ + /* Substitute for and wrapper around . + Copyright (C) 2003-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _@GUARD_PREFIX@_UNISTD_H + +@@ -1521,6 +1521,7 @@ _GL_WARN_ON_USE (group_member, "group_me + # undef isatty + # define isatty rpl_isatty + # endif ++# define GNULIB_defined_isatty 1 + _GL_FUNCDECL_RPL (isatty, int, (int fd)); + _GL_CXXALIAS_RPL (isatty, int, (int fd)); + # elif defined _WIN32 && !defined __CYGWIN__ +@@ -2027,15 +2028,23 @@ _GL_WARN_ON_USE (sleep, "sleep is unport + #if @GNULIB_MDA_SWAB@ + /* On native Windows, map 'swab' to '_swab', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between +- platforms by defining GNULIB_NAMESPACE::creat always. */ ++ platforms by defining GNULIB_NAMESPACE::swab always. */ + # if defined _WIN32 && !defined __CYGWIN__ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef swab + # define swab _swab + # endif +-_GL_CXXALIAS_MDA (swab, void, (char *from, char *to, int n)); +-# else ++/* Need to cast, because in old mingw the arguments are ++ (const char *from, char *to, size_t n). */ ++_GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n)); ++# else ++# if defined __hpux /* HP-UX */ ++_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n)); ++# elif defined __sun && !defined _XPG4 /* Solaris */ ++_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n)); ++# else + _GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n)); ++# endif + # endif + _GL_CXXALIASWARN (swab); + #endif +--- a/gnulib/lib/unitypes.in.h ++++ b/gnulib/lib/unitypes.in.h +@@ -1,17 +1,17 @@ + /* Elementary types and macros for the GNU UniString library. + Copyright (C) 2002, 2005-2006, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _UNITYPES_H +--- a/gnulib/lib/uniwidth.in.h ++++ b/gnulib/lib/uniwidth.in.h +@@ -2,17 +2,17 @@ + Copyright (C) 2001-2002, 2005, 2007, 2009-2021 Free Software Foundation, + Inc. + +- This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef _UNIWIDTH_H +--- a/gnulib/lib/uniwidth/cjk.h ++++ b/gnulib/lib/uniwidth/cjk.h +@@ -2,17 +2,17 @@ + Copyright (C) 2001-2002, 2005-2007, 2009-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2002. + +- This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include "streq.h" +--- a/gnulib/lib/uniwidth/width.c ++++ b/gnulib/lib/uniwidth/width.c +@@ -2,17 +2,17 @@ + Copyright (C) 2001-2002, 2006-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2002. + +- This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/vasnprintf.c ++++ b/gnulib/lib/vasnprintf.c +@@ -1,18 +1,18 @@ + /* vsprintf with automatic memory allocation. + Copyright (C) 1999, 2002-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* This file can be parametrized with the following macros: + VASNPRINTF The name of the function being defined. +@@ -60,9 +60,7 @@ + #ifndef VASNPRINTF + # include + #endif +-#ifndef IN_LIBINTL +-# include +-#endif ++#include + + /* Specification. */ + #ifndef VASNPRINTF +@@ -1859,6 +1857,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + /* errno is already set. */ + return NULL; + ++ /* Frees the memory allocated by this function. Preserves errno. */ + #define CLEANUP() \ + if (d.dir != d.direct_alloc_dir) \ + free (d.dir); \ +@@ -1923,7 +1922,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + + /* Ensures that allocated >= needed. Aborts through a jump to + out_of_memory if needed is SIZE_MAX or otherwise too big. */ +-#define ENSURE_ALLOCATION(needed) \ ++#define ENSURE_ALLOCATION_ELSE(needed, oom_statement) \ + if ((needed) > allocated) \ + { \ + size_t memory_size; \ +@@ -1934,17 +1933,19 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + allocated = (needed); \ + memory_size = xtimes (allocated, sizeof (DCHAR_T)); \ + if (size_overflow_p (memory_size)) \ +- goto out_of_memory; \ ++ oom_statement \ + if (result == resultbuf || result == NULL) \ + memory = (DCHAR_T *) malloc (memory_size); \ + else \ + memory = (DCHAR_T *) realloc (result, memory_size); \ + if (memory == NULL) \ +- goto out_of_memory; \ ++ oom_statement \ + if (result == resultbuf && length > 0) \ + DCHAR_CPY (memory, result, length); \ + result = memory; \ + } ++#define ENSURE_ALLOCATION(needed) \ ++ ENSURE_ALLOCATION_ELSE((needed), goto out_of_memory; ) + + for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++) + { +@@ -2183,18 +2184,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + # endif + if (converted == NULL) + { +- int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); +- errno = saved_errno; + return NULL; + } + if (converted != result + length) + { +- ENSURE_ALLOCATION (xsum (length, converted_len)); ++ ENSURE_ALLOCATION_ELSE (xsum (length, converted_len), ++ { free (converted); goto out_of_memory; }); + DCHAR_CPY (result + length, converted, converted_len); + free (converted); + } +@@ -2309,18 +2309,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + # endif + if (converted == NULL) + { +- int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); +- errno = saved_errno; + return NULL; + } + if (converted != result + length) + { +- ENSURE_ALLOCATION (xsum (length, converted_len)); ++ ENSURE_ALLOCATION_ELSE (xsum (length, converted_len), ++ { free (converted); goto out_of_memory; }); + DCHAR_CPY (result + length, converted, converted_len); + free (converted); + } +@@ -2435,18 +2434,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + # endif + if (converted == NULL) + { +- int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); +- errno = saved_errno; + return NULL; + } + if (converted != result + length) + { +- ENSURE_ALLOCATION (xsum (length, converted_len)); ++ ENSURE_ALLOCATION_ELSE (xsum (length, converted_len), ++ { free (converted); goto out_of_memory; }); + DCHAR_CPY (result + length, converted, converted_len); + free (converted); + } +@@ -2852,14 +2850,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + NULL, &tmpdst_len); + if (tmpdst == NULL) + { +- int saved_errno = errno; + free (tmpsrc); + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); +- errno = saved_errno; + return NULL; + } + free (tmpsrc); +@@ -2951,7 +2947,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + } + } + # else +- ENSURE_ALLOCATION (xsum (length, tmpdst_len)); ++ ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len), ++ { free (tmpdst); goto out_of_memory; }); + DCHAR_CPY (result + length, tmpdst, tmpdst_len); + free (tmpdst); + length += tmpdst_len; +@@ -3079,13 +3076,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + NULL, &tmpdst_len); + if (tmpdst == NULL) + { +- int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); +- errno = saved_errno; + return NULL; + } + # endif +@@ -3156,7 +3151,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + } + } + # else +- ENSURE_ALLOCATION (xsum (length, tmpdst_len)); ++ ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len), ++ { free (tmpdst); goto out_of_memory; }); + DCHAR_CPY (result + length, tmpdst, tmpdst_len); + free (tmpdst); + length += tmpdst_len; +@@ -5449,15 +5445,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + /* Attempt to handle failure. */ + if (count < 0) + { +- /* SNPRINTF or sprintf failed. Save and use the errno +- that it has set, if any. */ +- int saved_errno = errno; +- if (saved_errno == 0) ++ /* SNPRINTF or sprintf failed. Use the errno that it ++ has set, if any. */ ++ if (errno == 0) + { + if (dp->conversion == 'c' || dp->conversion == 's') +- saved_errno = EILSEQ; ++ errno = EILSEQ; + else +- saved_errno = EINVAL; ++ errno = EINVAL; + } + + if (!(result == resultbuf || result == NULL)) +@@ -5466,7 +5461,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + free (buf_malloced); + CLEANUP (); + +- errno = saved_errno; + return NULL; + } + +@@ -5602,16 +5596,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * + NULL, &tmpdst_len); + if (tmpdst == NULL) + { +- int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); +- errno = saved_errno; + return NULL; + } +- ENSURE_ALLOCATION (xsum (length, tmpdst_len)); ++ ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len), ++ { free (tmpdst); goto out_of_memory; }); + DCHAR_CPY (result + length, tmpdst, tmpdst_len); + free (tmpdst); + count = tmpdst_len; +--- a/gnulib/lib/vasnprintf.h ++++ b/gnulib/lib/vasnprintf.h +@@ -1,18 +1,18 @@ + /* vsprintf with automatic memory allocation. + Copyright (C) 2002-2004, 2007-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _VASNPRINTF_H + #define _VASNPRINTF_H +--- a/gnulib/lib/vasprintf.c ++++ b/gnulib/lib/vasprintf.c +@@ -1,18 +1,18 @@ + /* Formatted output to strings. + Copyright (C) 1999, 2002, 2006-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License along +- with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #include + +--- a/gnulib/lib/verify.h ++++ b/gnulib/lib/verify.h +@@ -2,17 +2,17 @@ + + Copyright (C) 2005-2006, 2009-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ +--- a/gnulib/lib/warn-on-use.h ++++ b/gnulib/lib/warn-on-use.h +@@ -2,16 +2,16 @@ + Copyright (C) 2010-2021 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it +- under the terms of the GNU General Public License as published +- by the Free Software Foundation; either version 3 of the License, or ++ under the terms of the GNU Lesser General Public License as published ++ by the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- General Public License for more details. ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + /* _GL_WARN_ON_USE (function, "literal string") issues a declaration +--- a/gnulib/lib/wchar.in.h ++++ b/gnulib/lib/wchar.in.h +@@ -2,18 +2,18 @@ + + Copyright (C) 2007-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Eric Blake. */ + +@@ -111,7 +111,7 @@ + /* mingw and MSVC define wint_t as 'unsigned short' in or + . This is too small: ISO C 99 section 7.24.1.(2) says that + wint_t must be "unchanged by default argument promotions". Override it. */ +-# if @GNULIB_OVERRIDES_WINT_T@ ++# if @GNULIBHEADERS_OVERRIDE_WINT_T@ + # if !GNULIB_defined_wint_t + # if @HAVE_CRTDEFS_H@ + # include +--- a/gnulib/lib/wcrtomb.c ++++ b/gnulib/lib/wcrtomb.c +@@ -2,17 +2,17 @@ + Copyright (C) 2008-2021 Free Software Foundation, Inc. + Written by Bruno Haible , 2008. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/wctype-h.c ++++ b/gnulib/lib/wctype-h.c +@@ -1,4 +1,23 @@ ++/* Inline functions for . ++ ++ Copyright (C) 2012-2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ + /* Normally this would be wctype.c, but that name's already taken. */ ++ + #include ++ + #define _GL_WCTYPE_INLINE _GL_EXTERN_INLINE + #include "wctype.h" +--- a/gnulib/lib/wctype.in.h ++++ b/gnulib/lib/wctype.in.h +@@ -2,18 +2,18 @@ + + Copyright (C) 2006-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible and Paul Eggert. */ + +@@ -103,7 +103,7 @@ _GL_INLINE_HEADER_BEGIN + /* mingw and MSVC define wint_t as 'unsigned short' in or + . This is too small: ISO C 99 section 7.24.1.(2) says that + wint_t must be "unchanged by default argument promotions". Override it. */ +-# if @GNULIB_OVERRIDES_WINT_T@ ++# if @GNULIBHEADERS_OVERRIDE_WINT_T@ + # if !GNULIB_defined_wint_t + # if @HAVE_CRTDEFS_H@ + # include +@@ -132,7 +132,7 @@ typedef unsigned int rpl_wint_t; + same way, or not at all. */ + # if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@ + +-# if @GNULIB_OVERRIDES_WINT_T@ /* implies @REPLACE_ISWCNTRL@ */ ++# if @GNULIBHEADERS_OVERRIDE_WINT_T@ /* implies @REPLACE_ISWCNTRL@ */ + + _GL_WCTYPE_INLINE int + rpl_iswalnum (wint_t wc) +@@ -496,7 +496,7 @@ _GL_FUNCDECL_RPL (iswxdigit, int, (wint_ + + # endif + +-# if defined __MINGW32__ && !@GNULIB_OVERRIDES_WINT_T@ ++# if defined __MINGW32__ && !@GNULIBHEADERS_OVERRIDE_WINT_T@ + + /* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t. + The functions towlower and towupper are implemented in the MSVCRT library +@@ -529,7 +529,7 @@ rpl_towupper (wint_t wc) + # define towupper rpl_towupper + # endif + +-# endif /* __MINGW32__ && !@GNULIB_OVERRIDES_WINT_T@ */ ++# endif /* __MINGW32__ && !@GNULIBHEADERS_OVERRIDE_WINT_T@ */ + + # define GNULIB_defined_wctype_functions 1 + #endif +@@ -646,7 +646,7 @@ _GL_WARN_ON_USE (wctype, "wctype is unpo + The argument WC must be either a wchar_t value or WEOF. + The argument DESC must have been returned by the wctype() function. */ + #if @GNULIB_ISWCTYPE@ +-# if @GNULIB_OVERRIDES_WINT_T@ ++# if @GNULIBHEADERS_OVERRIDE_WINT_T@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef iswctype + # define iswctype rpl_iswctype +--- a/gnulib/lib/wcwidth.c ++++ b/gnulib/lib/wcwidth.c +@@ -1,17 +1,17 @@ + /* Determine the number of screen columns needed for a character. + Copyright (C) 2006-2007, 2010-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #include +--- a/gnulib/lib/windows-initguard.h ++++ b/gnulib/lib/windows-initguard.h +@@ -1,18 +1,18 @@ + /* Init guards, somewhat like spinlocks (native Windows implementation). + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ +--- a/gnulib/lib/windows-mutex.c ++++ b/gnulib/lib/windows-mutex.c +@@ -1,18 +1,18 @@ + /* Plain mutexes (native Windows implementation). + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ +--- a/gnulib/lib/windows-mutex.h ++++ b/gnulib/lib/windows-mutex.h +@@ -1,18 +1,18 @@ + /* Plain mutexes (native Windows implementation). + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ +--- a/gnulib/lib/windows-once.c ++++ b/gnulib/lib/windows-once.c +@@ -1,18 +1,18 @@ + /* Once-only control (native Windows implementation). + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ +--- a/gnulib/lib/windows-once.h ++++ b/gnulib/lib/windows-once.h +@@ -1,18 +1,18 @@ + /* Once-only control (native Windows implementation). + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ +--- a/gnulib/lib/windows-recmutex.c ++++ b/gnulib/lib/windows-recmutex.c +@@ -1,18 +1,18 @@ + /* Plain recursive mutexes (native Windows implementation). + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ +--- a/gnulib/lib/windows-recmutex.h ++++ b/gnulib/lib/windows-recmutex.h +@@ -1,18 +1,18 @@ + /* Plain recursive mutexes (native Windows implementation). + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ +--- a/gnulib/lib/windows-rwlock.c ++++ b/gnulib/lib/windows-rwlock.c +@@ -1,18 +1,18 @@ + /* Read-write locks (native Windows implementation). + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ +--- a/gnulib/lib/windows-rwlock.h ++++ b/gnulib/lib/windows-rwlock.h +@@ -1,18 +1,18 @@ + /* Read-write locks (native Windows implementation). + Copyright (C) 2005-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + /* Written by Bruno Haible , 2005. + Based on GCC's gthr-win32.h. */ +--- a/gnulib/lib/xalloc-oversized.h ++++ b/gnulib/lib/xalloc-oversized.h +@@ -2,17 +2,17 @@ + + Copyright (C) 1990-2000, 2003-2004, 2006-2021 Free Software Foundation, Inc. + +- This program is free software: you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3 of the License, or +- (at your option) any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License ++ You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + #ifndef XALLOC_OVERSIZED_H_ +@@ -21,34 +21,39 @@ + #include + #include + +-/* True if N * S would overflow in a size_t calculation, +- or would generate a value larger than PTRDIFF_MAX. ++/* True if N * S does not fit into both ptrdiff_t and size_t. ++ N and S should be nonnegative and free of side effects. + This expands to a constant expression if N and S are both constants. +- By gnulib convention, SIZE_MAX represents overflow in size ++ By gnulib convention, SIZE_MAX represents overflow in size_t + calculations, so the conservative size_t-based dividend to use here + is SIZE_MAX - 1. */ + #define __xalloc_oversized(n, s) \ +- ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) < (n)) +- +-#if PTRDIFF_MAX < SIZE_MAX +-typedef ptrdiff_t __xalloc_count_type; +-#else +-typedef size_t __xalloc_count_type; +-#endif +- +-/* Return 1 if an array of N objects, each of size S, cannot exist +- reliably due to size or ptrdiff_t arithmetic overflow. S must be +- positive and N must be nonnegative. This is a macro, not a +- function, so that it works correctly even when SIZE_MAX < N. */ +- +-#if 7 <= __GNUC__ && !defined __clang__ ++ ((s) != 0 \ ++ && ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) \ ++ < (n))) ++ ++/* Return 1 if and only if an array of N objects, each of size S, ++ cannot exist reliably because its total size in bytes would exceed ++ MIN (PTRDIFF_MAX, SIZE_MAX - 1). ++ ++ N and S should be nonnegative and free of side effects. ++ ++ Warning: (xalloc_oversized (N, S) ? NULL : malloc (N * S)) can ++ misbehave if N and S are both narrower than ptrdiff_t and size_t, ++ and can be rewritten as (xalloc_oversized (N, S) ? NULL ++ : malloc (N * (size_t) S)). ++ ++ This is a macro, not a function, so that it works even if an ++ argument exceeds MAX (PTRDIFF_MAX, SIZE_MAX). */ ++#if 7 <= __GNUC__ && !defined __clang__ && PTRDIFF_MAX < SIZE_MAX + # define xalloc_oversized(n, s) \ +- __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1) +-#elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ ++ __builtin_mul_overflow_p (n, s, (ptrdiff_t) 1) ++#elif (5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ \ ++ && PTRDIFF_MAX < SIZE_MAX) + # define xalloc_oversized(n, s) \ + (__builtin_constant_p (n) && __builtin_constant_p (s) \ + ? __xalloc_oversized (n, s) \ +- : ({ __xalloc_count_type __xalloc_count; \ ++ : ({ ptrdiff_t __xalloc_count; \ + __builtin_mul_overflow (n, s, &__xalloc_count); })) + + /* Other compilers use integer division; this may be slower but is +--- a/gnulib/lib/xalloc.h ++++ b/gnulib/lib/xalloc.h +@@ -21,7 +21,10 @@ + #include + #include + +-#include "xalloc-oversized.h" ++#if GNULIB_XALLOC ++# include "idx.h" ++# include "intprops.h" ++#endif + + #ifndef _GL_INLINE_HEADER_BEGIN + #error "Please include config.h first." +@@ -50,17 +53,26 @@ extern "C" { + + #if GNULIB_XALLOC + +-void *xmalloc (size_t s) +- _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); +-void *xzalloc (size_t s) +- _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); ++void *xmalloc (size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); ++void *ximalloc (idx_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); ++void *xzalloc (size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); ++void *xizalloc (idx_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); + void *xcalloc (size_t n, size_t s) +- _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)); +-void *xrealloc (void *p, size_t s) +- _GL_ATTRIBUTE_ALLOC_SIZE ((2)); +-void *x2realloc (void *p, size_t *pn); +-void *xmemdup (void const *p, size_t s) +- _GL_ATTRIBUTE_ALLOC_SIZE ((2)); ++ _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)); ++void *xicalloc (idx_t n, idx_t s) ++ _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)); ++void *xrealloc (void *p, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2)); ++void *xirealloc (void *p, idx_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2)); ++void *xreallocarray (void *p, size_t n, size_t s) ++ _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); ++void *xireallocarray (void *p, idx_t n, idx_t s) ++ _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); ++void *x2realloc (void *p, size_t *ps); /* superseded by xpalloc */ ++void *x2nrealloc (void *p, size_t *pn, size_t s); /* superseded by xpalloc */ ++void *xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s); ++void *xmemdup (void const *p, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2)); ++void *ximemdup (void const *p, idx_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2)); ++char *ximemdup0 (void const *p, idx_t s) _GL_ATTRIBUTE_MALLOC; + char *xstrdup (char const *str) + _GL_ATTRIBUTE_MALLOC; + +@@ -98,11 +110,10 @@ XALLOC_INLINE void *xnmalloc (size_t n, + XALLOC_INLINE void * + xnmalloc (size_t n, size_t s) + { +- if (xalloc_oversized (n, s)) +- xalloc_die (); +- return xmalloc (n * s); ++ return xreallocarray (NULL, n, s); + } + ++/* FIXME: Deprecate this in favor of xreallocarray? */ + /* Change the size of an allocated block of memory P to an array of N + objects each of S bytes, with error checking. S must be nonzero. */ + +@@ -111,100 +122,7 @@ XALLOC_INLINE void *xnrealloc (void *p, + XALLOC_INLINE void * + xnrealloc (void *p, size_t n, size_t s) + { +- if (xalloc_oversized (n, s)) +- xalloc_die (); +- return xrealloc (p, n * s); +-} +- +-/* If P is null, allocate a block of at least *PN such objects; +- otherwise, reallocate P so that it contains more than *PN objects +- each of S bytes. S must be nonzero. Set *PN to the new number of +- objects, and return the pointer to the new block. *PN is never set +- to zero, and the returned pointer is never null. +- +- Repeated reallocations are guaranteed to make progress, either by +- allocating an initial block with a nonzero size, or by allocating a +- larger block. +- +- In the following implementation, nonzero sizes are increased by a +- factor of approximately 1.5 so that repeated reallocations have +- O(N) overall cost rather than O(N**2) cost, but the +- specification for this function does not guarantee that rate. +- +- Here is an example of use: +- +- int *p = NULL; +- size_t used = 0; +- size_t allocated = 0; +- +- void +- append_int (int value) +- { +- if (used == allocated) +- p = x2nrealloc (p, &allocated, sizeof *p); +- p[used++] = value; +- } +- +- This causes x2nrealloc to allocate a block of some nonzero size the +- first time it is called. +- +- To have finer-grained control over the initial size, set *PN to a +- nonzero value before calling this function with P == NULL. For +- example: +- +- int *p = NULL; +- size_t used = 0; +- size_t allocated = 0; +- size_t allocated1 = 1000; +- +- void +- append_int (int value) +- { +- if (used == allocated) +- { +- p = x2nrealloc (p, &allocated1, sizeof *p); +- allocated = allocated1; +- } +- p[used++] = value; +- } +- +- */ +- +-XALLOC_INLINE void * +-x2nrealloc (void *p, size_t *pn, size_t s) +-{ +- size_t n = *pn; +- +- if (! p) +- { +- if (! n) +- { +- /* The approximate size to use for initial small allocation +- requests, when the invoking code specifies an old size of +- zero. This is the largest "small" request for the GNU C +- library malloc. */ +- enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; +- +- n = DEFAULT_MXFAST / s; +- n += !n; +- } +- if (xalloc_oversized (n, s)) +- xalloc_die (); +- } +- else +- { +- /* Set N = floor (1.5 * N) + 1 so that progress is made even if N == 0. +- Check for overflow, so that N * S stays in both ptrdiff_t and +- size_t range. The check may be slightly conservative, but an +- exact check isn't worth the trouble. */ +- if ((PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX) / 3 * 2 / s +- <= n) +- xalloc_die (); +- n += n / 2 + 1; +- } +- +- *pn = n; +- return xrealloc (p, n * s); ++ return xreallocarray (p, n, s); + } + + /* Return a pointer to a new buffer of N bytes. This is like xmalloc, +@@ -239,9 +157,16 @@ xrealloc (T *p, size_t s) + } + + template inline T * ++xreallocarray (T *p, size_t n, size_t s) ++{ ++ return (T *) xreallocarray ((void *) p, n, s); ++} ++ ++/* FIXME: Deprecate this in favor of xreallocarray? */ ++template inline T * + xnrealloc (T *p, size_t n, size_t s) + { +- return (T *) xnrealloc ((void *) p, n, s); ++ return xreallocarray (p, n, s); + } + + template inline T * +--- a/gnulib/lib/xmalloc.c ++++ b/gnulib/lib/xmalloc.c +@@ -21,80 +21,250 @@ + + #include "xalloc.h" + ++#include "ialloc.h" ++#include "intprops.h" ++#include "minmax.h" ++ + #include + #include + +-/* 1 if calloc, malloc and realloc are known to be compatible with GNU. +- This matters if we are not also using the calloc-gnu, malloc-gnu +- and realloc-gnu modules, which define HAVE_CALLOC_GNU, +- HAVE_MALLOC_GNU and HAVE_REALLOC_GNU and support the GNU API even +- on non-GNU platforms. */ +-#if defined HAVE_CALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__) +-enum { HAVE_GNU_CALLOC = 1 }; +-#else +-enum { HAVE_GNU_CALLOC = 0 }; +-#endif +-#if defined HAVE_MALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__) +-enum { HAVE_GNU_MALLOC = 1 }; +-#else +-enum { HAVE_GNU_MALLOC = 0 }; +-#endif +-#if defined HAVE_REALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__) +-enum { HAVE_GNU_REALLOC = 1 }; +-#else +-enum { HAVE_GNU_REALLOC = 0 }; +-#endif ++static void * _GL_ATTRIBUTE_PURE ++nonnull (void *p) ++{ ++ if (!p) ++ xalloc_die (); ++ return p; ++} + +-/* Allocate N bytes of memory dynamically, with error checking. */ ++/* Allocate S bytes of memory dynamically, with error checking. */ + + void * +-xmalloc (size_t n) ++xmalloc (size_t s) + { +- void *p = malloc (n); +- if (!p && (HAVE_GNU_MALLOC || n)) +- xalloc_die (); +- return p; ++ return nonnull (malloc (s)); ++} ++ ++void * ++ximalloc (idx_t s) ++{ ++ return nonnull (imalloc (s)); + } + +-/* Change the size of an allocated block of memory P to N bytes, ++/* Change the size of an allocated block of memory P to S bytes, + with error checking. */ + + void * +-xrealloc (void *p, size_t n) ++xrealloc (void *p, size_t s) + { +- if (!HAVE_GNU_REALLOC && !n && p) +- { +- /* The GNU and C99 realloc behaviors disagree here. Act like GNU. */ +- free (p); +- return NULL; +- } ++ void *r = realloc (p, s); ++ if (!r && (!p || s)) ++ xalloc_die (); ++ return r; ++} ++ ++void * ++xirealloc (void *p, idx_t s) ++{ ++ return nonnull (irealloc (p, s)); ++} ++ ++/* Change the size of an allocated block of memory P to an array of N ++ objects each of S bytes, with error checking. */ + +- void *r = realloc (p, n); +- if (!r && (n || (HAVE_GNU_REALLOC && !p))) ++void * ++xreallocarray (void *p, size_t n, size_t s) ++{ ++ void *r = reallocarray (p, n, s); ++ if (!r && (!p || (n && s))) + xalloc_die (); + return r; + } + +-/* If P is null, allocate a block of at least *PN bytes; otherwise, +- reallocate P so that it contains more than *PN bytes. *PN must be +- nonzero unless P is null. Set *PN to the new block's size, and +- return the pointer to the new block. *PN is never set to zero, and ++void * ++xireallocarray (void *p, idx_t n, idx_t s) ++{ ++ return nonnull (ireallocarray (p, n, s)); ++} ++ ++/* If P is null, allocate a block of at least *PS bytes; otherwise, ++ reallocate P so that it contains more than *PS bytes. *PS must be ++ nonzero unless P is null. Set *PS to the new block's size, and ++ return the pointer to the new block. *PS is never set to zero, and + the returned pointer is never null. */ + + void * +-x2realloc (void *p, size_t *pn) ++x2realloc (void *p, size_t *ps) ++{ ++ return x2nrealloc (p, ps, 1); ++} ++ ++/* If P is null, allocate a block of at least *PN such objects; ++ otherwise, reallocate P so that it contains more than *PN objects ++ each of S bytes. S must be nonzero. Set *PN to the new number of ++ objects, and return the pointer to the new block. *PN is never set ++ to zero, and the returned pointer is never null. ++ ++ Repeated reallocations are guaranteed to make progress, either by ++ allocating an initial block with a nonzero size, or by allocating a ++ larger block. ++ ++ In the following implementation, nonzero sizes are increased by a ++ factor of approximately 1.5 so that repeated reallocations have ++ O(N) overall cost rather than O(N**2) cost, but the ++ specification for this function does not guarantee that rate. ++ ++ Here is an example of use: ++ ++ int *p = NULL; ++ size_t used = 0; ++ size_t allocated = 0; ++ ++ void ++ append_int (int value) ++ { ++ if (used == allocated) ++ p = x2nrealloc (p, &allocated, sizeof *p); ++ p[used++] = value; ++ } ++ ++ This causes x2nrealloc to allocate a block of some nonzero size the ++ first time it is called. ++ ++ To have finer-grained control over the initial size, set *PN to a ++ nonzero value before calling this function with P == NULL. For ++ example: ++ ++ int *p = NULL; ++ size_t used = 0; ++ size_t allocated = 0; ++ size_t allocated1 = 1000; ++ ++ void ++ append_int (int value) ++ { ++ if (used == allocated) ++ { ++ p = x2nrealloc (p, &allocated1, sizeof *p); ++ allocated = allocated1; ++ } ++ p[used++] = value; ++ } ++ ++ */ ++ ++void * ++x2nrealloc (void *p, size_t *pn, size_t s) + { +- return x2nrealloc (p, pn, 1); ++ size_t n = *pn; ++ ++ if (! p) ++ { ++ if (! n) ++ { ++ /* The approximate size to use for initial small allocation ++ requests, when the invoking code specifies an old size of ++ zero. This is the largest "small" request for the GNU C ++ library malloc. */ ++ enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; ++ ++ n = DEFAULT_MXFAST / s; ++ n += !n; ++ } ++ } ++ else ++ { ++ /* Set N = floor (1.5 * N) + 1 to make progress even if N == 0. */ ++ if (INT_ADD_WRAPV (n, (n >> 1) + 1, &n)) ++ xalloc_die (); ++ } ++ ++ p = xreallocarray (p, n, s); ++ *pn = n; ++ return p; + } + +-/* Allocate N bytes of zeroed memory dynamically, with error checking. ++/* Grow PA, which points to an array of *PN items, and return the ++ location of the reallocated array, updating *PN to reflect its ++ new size. The new array will contain at least N_INCR_MIN more ++ items, but will not contain more than N_MAX items total. ++ S is the size of each item, in bytes. ++ ++ S and N_INCR_MIN must be positive. *PN must be ++ nonnegative. If N_MAX is -1, it is treated as if it were ++ infinity. ++ ++ If PA is null, then allocate a new array instead of reallocating ++ the old one. ++ ++ Thus, to grow an array A without saving its old contents, do ++ { free (A); A = xpalloc (NULL, &AITEMS, ...); }. */ ++ ++void * ++xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s) ++{ ++ idx_t n0 = *pn; ++ ++ /* The approximate size to use for initial small allocation ++ requests. This is the largest "small" request for the GNU C ++ library malloc. */ ++ enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; ++ ++ /* If the array is tiny, grow it to about (but no greater than) ++ DEFAULT_MXFAST bytes. Otherwise, grow it by about 50%. ++ Adjust the growth according to three constraints: N_INCR_MIN, ++ N_MAX, and what the C language can represent safely. */ ++ ++ idx_t n; ++ if (INT_ADD_WRAPV (n0, n0 >> 1, &n)) ++ n = IDX_MAX; ++ if (0 <= n_max && n_max < n) ++ n = n_max; ++ ++ /* NBYTES is of a type suitable for holding the count of bytes in an object. ++ This is typically idx_t, but it should be size_t on (theoretical?) ++ platforms where SIZE_MAX < IDX_MAX so xpalloc does not pass ++ values greater than SIZE_MAX to xrealloc. */ ++#if IDX_MAX <= SIZE_MAX ++ idx_t nbytes; ++#else ++ size_t nbytes; ++#endif ++ idx_t adjusted_nbytes ++ = (INT_MULTIPLY_WRAPV (n, s, &nbytes) ++ ? MIN (IDX_MAX, SIZE_MAX) ++ : nbytes < DEFAULT_MXFAST ? DEFAULT_MXFAST : 0); ++ if (adjusted_nbytes) ++ { ++ n = adjusted_nbytes / s; ++ nbytes = adjusted_nbytes - adjusted_nbytes % s; ++ } ++ ++ if (! pa) ++ *pn = 0; ++ if (n - n0 < n_incr_min ++ && (INT_ADD_WRAPV (n0, n_incr_min, &n) ++ || (0 <= n_max && n_max < n) ++ || INT_MULTIPLY_WRAPV (n, s, &nbytes))) ++ xalloc_die (); ++ pa = xrealloc (pa, nbytes); ++ *pn = n; ++ return pa; ++} ++ ++/* Allocate S bytes of zeroed memory dynamically, with error checking. + There's no need for xnzalloc (N, S), since it would be equivalent + to xcalloc (N, S). */ + + void * +-xzalloc (size_t n) ++xzalloc (size_t s) ++{ ++ return xcalloc (s, 1); ++} ++ ++void * ++xizalloc (idx_t s) + { +- return xcalloc (n, 1); ++ return xicalloc (s, 1); + } + + /* Allocate zeroed memory for N elements of S bytes, with error +@@ -103,15 +273,13 @@ xzalloc (size_t n) + void * + xcalloc (size_t n, size_t s) + { +- void *p; +- /* Test for overflow, since objects with size greater than +- PTRDIFF_MAX cause pointer subtraction to go awry. Omit size-zero +- tests if HAVE_GNU_CALLOC, since GNU calloc never returns NULL if +- successful. */ +- if (xalloc_oversized (n, s) +- || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0))) +- xalloc_die (); +- return p; ++ return nonnull (calloc (n, s)); ++} ++ ++void * ++xicalloc (idx_t n, idx_t s) ++{ ++ return nonnull (icalloc (n, s)); + } + + /* Clone an object P of size S, with error checking. There's no need +@@ -124,6 +292,23 @@ xmemdup (void const *p, size_t s) + return memcpy (xmalloc (s), p, s); + } + ++void * ++ximemdup (void const *p, idx_t s) ++{ ++ return memcpy (ximalloc (s), p, s); ++} ++ ++/* Clone an object P of size S, with error checking. Append ++ a terminating NUL byte. */ ++ ++char * ++ximemdup0 (void const *p, idx_t s) ++{ ++ char *result = ximalloc (s + 1); ++ result[s] = 0; ++ return memcpy (result, p, s); ++} ++ + /* Clone STRING. */ + + char * +--- a/gnulib/lib/xsize.c ++++ b/gnulib/lib/xsize.c +@@ -1,3 +1,21 @@ ++/* Checked size_t computations. ++ ++ Copyright (C) 2012-2021 Free Software Foundation, Inc. ++ ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ This file is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ ++ + #include ++ + #define XSIZE_INLINE _GL_EXTERN_INLINE + #include "xsize.h" +--- a/gnulib/lib/xsize.h ++++ b/gnulib/lib/xsize.h +@@ -2,18 +2,18 @@ + + Copyright (C) 2003, 2008-2021 Free Software Foundation, Inc. + +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. ++ This file is free software: you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. + +- This program is distributed in the hope that it will be useful, ++ This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. ++ GNU Lesser General Public License for more details. + +- You should have received a copy of the GNU General Public License +- along with this program; if not, see . */ ++ You should have received a copy of the GNU Lesser General Public License ++ along with this program. If not, see . */ + + #ifndef _XSIZE_H + #define _XSIZE_H +--- /dev/null ++++ b/gnulib/m4/calloc.m4 +@@ -0,0 +1,82 @@ ++# calloc.m4 serial 27 ++ ++# Copyright (C) 2004-2021 Free Software Foundation, Inc. ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# Written by Jim Meyering. ++ ++# Determine whether calloc (N, S) returns non-NULL when N*S is zero, ++# and returns NULL when N*S overflows. ++# If so, define HAVE_CALLOC. Otherwise, define calloc to rpl_calloc ++# and arrange to use a calloc wrapper function that does work in that case. ++ ++# _AC_FUNC_CALLOC_IF([IF-WORKS], [IF-NOT]) ++# ------------------------------------- ++# If calloc is compatible with GNU calloc, run IF-WORKS, otherwise, IF-NOT. ++AC_DEFUN([_AC_FUNC_CALLOC_IF], ++[ ++ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles ++ AC_CACHE_CHECK([whether calloc (0, n) and calloc (n, 0) return nonnull], ++ [ac_cv_func_calloc_0_nonnull], ++ [if test $cross_compiling != yes; then ++ ac_cv_func_calloc_0_nonnull=yes ++ AC_RUN_IFELSE( ++ [AC_LANG_PROGRAM( ++ [AC_INCLUDES_DEFAULT], ++ [[int result = 0; ++ char * volatile p = calloc (0, 0); ++ if (!p) ++ result |= 1; ++ free (p); ++ return result; ++ ]])], ++ [], ++ [ac_cv_func_calloc_0_nonnull=no]) ++ else ++ case "$host_os" in ++ # Guess yes on glibc systems. ++ *-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; ++ # Guess yes on musl systems. ++ *-musl*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; ++ # Guess yes on native Windows. ++ mingw*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; ++ # If we don't know, obey --enable-cross-guesses. ++ *) ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;; ++ esac ++ fi ++ ]) ++ AS_CASE([$ac_cv_func_calloc_0_nonnull], [*yes], [$1], [$2]) ++]) ++ ++ ++# gl_FUNC_CALLOC_GNU ++# ------------------ ++# Replace calloc if it is not compatible with GNU libc. ++AC_DEFUN([gl_FUNC_CALLOC_GNU], ++[ ++ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ++ AC_REQUIRE([gl_FUNC_CALLOC_POSIX]) ++ if test $REPLACE_CALLOC = 0; then ++ _AC_FUNC_CALLOC_IF([], [REPLACE_CALLOC=1]) ++ fi ++])# gl_FUNC_CALLOC_GNU ++ ++# gl_FUNC_CALLOC_POSIX ++# -------------------- ++# Test whether 'calloc' is POSIX compliant (sets errno to ENOMEM when it ++# fails, and doesn't mess up with ptrdiff_t or size_t overflow), ++# and replace calloc if it is not. ++AC_DEFUN([gl_FUNC_CALLOC_POSIX], ++[ ++ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ++ AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) ++ if test $REPLACE_MALLOC = 1; then ++ REPLACE_CALLOC=1 ++ fi ++ dnl Although in theory we should also test for size_t overflow, ++ dnl in practice testing for ptrdiff_t overflow suffices ++ dnl since PTRDIFF_MAX <= SIZE_MAX on all known Gnulib porting targets. ++ dnl A separate size_t test would slow down 'configure'. ++]) +--- a/gnulib/m4/fcntl_h.m4 ++++ b/gnulib/m4/fcntl_h.m4 +@@ -1,4 +1,4 @@ +-# serial 17 ++# serial 20 + # Configure fcntl.h. + dnl Copyright (C) 2006-2007, 2009-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation +@@ -7,7 +7,7 @@ dnl with or without modifications, as lo + + dnl Written by Paul Eggert. + +-AC_DEFUN([gl_FCNTL_H], ++AC_DEFUN_ONCE([gl_FCNTL_H], + [ + AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) + AC_REQUIRE([gl_FCNTL_O_FLAGS]) +@@ -26,25 +26,40 @@ AC_DEFUN([gl_FCNTL_H], + ]], [fcntl openat]) + ]) + ++# gl_FCNTL_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_FCNTL_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CREAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCNTL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NONBLOCKING]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENAT]) ++ dnl Support Microsoft deprecated alias function names by default. ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CREAT], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_OPEN], [1]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_FCNTL_H_DEFAULTS], + [ +- GNULIB_CREAT=0; AC_SUBST([GNULIB_CREAT]) +- GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL]) +- GNULIB_NONBLOCKING=0; AC_SUBST([GNULIB_NONBLOCKING]) +- GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN]) +- GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT]) +- dnl Support Microsoft deprecated alias function names by default. +- GNULIB_MDA_CREAT=1; AC_SUBST([GNULIB_MDA_CREAT]) +- GNULIB_MDA_OPEN=1; AC_SUBST([GNULIB_MDA_OPEN]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) + HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) +--- /dev/null ++++ b/gnulib/m4/free.m4 +@@ -0,0 +1,52 @@ ++# free.m4 serial 6 ++# Copyright (C) 2003-2005, 2009-2021 Free Software Foundation, Inc. ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# Written by Paul Eggert and Bruno Haible. ++ ++AC_DEFUN([gl_FUNC_FREE], ++[ ++ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ++ ++ dnl In the next release of POSIX, free must preserve errno. ++ dnl https://www.austingroupbugs.net/view.php?id=385 ++ dnl https://sourceware.org/bugzilla/show_bug.cgi?id=17924 ++ dnl So far, we know of three platforms that do this: ++ dnl * glibc >= 2.33, thanks to the fix for this bug: ++ dnl ++ dnl * OpenBSD >= 4.5, thanks to this commit: ++ dnl ++ dnl * Solaris, because its malloc() implementation is based on brk(), ++ dnl not mmap(); hence its free() implementation makes no system calls. ++ dnl For other platforms, you can only be sure if they state it in their ++ dnl documentation, or by code inspection of the free() implementation in libc. ++ AC_CACHE_CHECK([whether free is known to preserve errno], ++ [gl_cv_func_free_preserves_errno], ++ [AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[#include ++ ]], ++ [[#if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__) ++ #elif defined __OpenBSD__ ++ #elif defined __sun ++ #else ++ #error "'free' is not known to preserve errno" ++ #endif ++ ]])], ++ [gl_cv_func_free_preserves_errno=yes], ++ [gl_cv_func_free_preserves_errno=no]) ++ ]) ++ ++ case $gl_cv_func_free_preserves_errno in ++ *yes) ++ AC_DEFINE([HAVE_FREE_POSIX], [1], ++ [Define if the 'free' function is guaranteed to preserve errno.]) ++ ;; ++ *) REPLACE_FREE=1 ;; ++ esac ++]) ++ ++# Prerequisites of lib/free.c. ++AC_DEFUN([gl_PREREQ_FREE], [:]) +--- a/gnulib/m4/fstat.m4 ++++ b/gnulib/m4/fstat.m4 +@@ -1,4 +1,4 @@ +-# fstat.m4 serial 7 ++# fstat.m4 serial 8 + dnl Copyright (C) 2011-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -34,7 +34,7 @@ AC_DEFUN([gl_FUNC_FSTAT], + + # Prerequisites of lib/fstat.c and lib/stat-w32.c. + AC_DEFUN([gl_PREREQ_FSTAT], [ +- AC_REQUIRE([gl_HEADER_SYS_STAT_H]) ++ AC_REQUIRE([gl_SYS_STAT_H]) + AC_REQUIRE([gl_PREREQ_STAT_W32]) + : + ]) +--- a/gnulib/m4/gnulib-common.m4 ++++ b/gnulib/m4/gnulib-common.m4 +@@ -1,4 +1,4 @@ +-# gnulib-common.m4 serial 63 ++# gnulib-common.m4 serial 66 + dnl Copyright (C) 2007-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -357,6 +357,16 @@ AC_DEFUN([gl_COMMON_BODY], [ + export LIBC_FATAL_STDERR_ + ]) + ++# gl_MODULE_INDICATOR_INIT_VARIABLE([variablename]) ++# gl_MODULE_INDICATOR_INIT_VARIABLE([variablename], [initialvalue]) ++# initializes the shell variable that indicates the presence of the given module ++# as a C preprocessor expression. ++AC_DEFUN([gl_MODULE_INDICATOR_INIT_VARIABLE], ++[ ++ GL_MODULE_INDICATOR_PREFIX[]_[$1]=m4_if([$2], , [0], [$2]) ++ AC_SUBST(GL_MODULE_INDICATOR_PREFIX[]_[$1]) ++]) ++ + # gl_MODULE_INDICATOR_CONDITION + # expands to a C preprocessor expression that evaluates to 1 or 0, depending + # whether a gnulib module that has been requested shall be considered present +@@ -369,9 +379,9 @@ m4_define([gl_MODULE_INDICATOR_CONDITION + AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], + [ + gl_MODULE_INDICATOR_SET_VARIABLE_AUX( +- [GNULIB_[]m4_translit([[$1]], +- [abcdefghijklmnopqrstuvwxyz./-], +- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], ++ [GL_MODULE_INDICATOR_PREFIX[]_GNULIB_[]m4_translit([[$1]], ++ [abcdefghijklmnopqrstuvwxyz./-], ++ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], + [gl_MODULE_INDICATOR_CONDITION]) + ]) + +@@ -656,6 +666,72 @@ AC_DEFUN([gl_CACHE_VAL_SILENT], + ]) + ]) + ++# gl_CC_ALLOW_WARNINGS ++# sets and substitutes a variable GL_CFLAG_ALLOW_WARNINGS, to a $(CC) option ++# that reverts a preceding '-Werror' option, if available. ++# This is expected to be '-Wno-error' on gcc, clang (except clang/MSVC), xlclang ++# and empty otherwise. ++AC_DEFUN([gl_CC_ALLOW_WARNINGS], ++[ ++ AC_REQUIRE([AC_PROG_CC]) ++ AC_CACHE_CHECK([for C compiler option to allow warnings], ++ [gl_cv_cc_wallow], ++ [rm -f conftest* ++ echo 'int dummy;' > conftest.c ++ AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err]) >/dev/null ++ AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err]) >/dev/null ++ dnl Test the number of error output lines, because AIX xlc accepts the ++ dnl option '-Wno-error', just to produce a warning ++ dnl "Option -Wno-error was incorrectly specified. The option will be ignored." ++ dnl afterwards. ++ if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then ++ gl_cv_cc_wallow='-Wno-error' ++ else ++ gl_cv_cc_wallow=none ++ fi ++ rm -f conftest* ++ ]) ++ case "$gl_cv_cc_wallow" in ++ none) GL_CFLAG_ALLOW_WARNINGS='' ;; ++ *) GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;; ++ esac ++ AC_SUBST([GL_CFLAG_ALLOW_WARNINGS]) ++]) ++ ++# gl_CXX_ALLOW_WARNINGS ++# sets and substitutes a variable GL_CXXFLAG_ALLOW_WARNINGS, to a $(CC) option ++# that reverts a preceding '-Werror' option, if available. ++AC_DEFUN([gl_CXX_ALLOW_WARNINGS], ++[ ++ dnl Requires AC_PROG_CXX or gl_PROG_ANSI_CXX. ++ if test -n "$CXX" && test "$CXX" != no; then ++ AC_CACHE_CHECK([for C++ compiler option to allow warnings], ++ [gl_cv_cxx_wallow], ++ [rm -f conftest* ++ echo 'int dummy;' > conftest.cc ++ AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -c conftest.cc 2>conftest1.err]) >/dev/null ++ AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -Wno-error -c conftest.cc 2>conftest2.err]) >/dev/null ++ dnl Test the number of error output lines, because AIX xlC accepts the ++ dnl option '-Wno-error', just to produce a warning ++ dnl "Option -Wno-error was incorrectly specified. The option will be ignored." ++ dnl afterwards. ++ if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then ++ gl_cv_cxx_wallow='-Wno-error' ++ else ++ gl_cv_cxx_wallow=none ++ fi ++ rm -f conftest* ++ ]) ++ case "$gl_cv_cxx_wallow" in ++ none) GL_CXXFLAG_ALLOW_WARNINGS='' ;; ++ *) GL_CXXFLAG_ALLOW_WARNINGS="$gl_cv_cxx_wallow" ;; ++ esac ++ else ++ GL_CXXFLAG_ALLOW_WARNINGS='' ++ fi ++ AC_SUBST([GL_CXXFLAG_ALLOW_WARNINGS]) ++]) ++ + dnl Expands to some code for use in .c programs that, on native Windows, defines + dnl the Microsoft deprecated alias function names to the underscore-prefixed + dnl actual function names. With this macro, these function names are available +--- a/gnulib/m4/gnulib-comp.m4 ++++ b/gnulib/m4/gnulib-comp.m4 +@@ -51,6 +51,8 @@ AC_DEFUN([gl_EARLY], + # Code from module btowc: + # Code from module builtin-expect: + # Code from module c99: ++ # Code from module calloc-gnu: ++ # Code from module calloc-posix: + # Code from module cloexec: + # Code from module close: + # Code from module double-slash-root: +@@ -66,6 +68,7 @@ AC_DEFUN([gl_EARLY], + # Code from module fd-hook: + # Code from module filename: + # Code from module float: ++ # Code from module free-posix: + # Code from module fstat: + # Code from module getdtablesize: + # Code from module getopt-gnu: +@@ -74,7 +77,9 @@ AC_DEFUN([gl_EARLY], + # Code from module gettext-h: + # Code from module hard-locale: + # Code from module havelib: ++ # Code from module ialloc: + # Code from module iconv: ++ # Code from module idx: + # Code from module include_next: + # Code from module intprops: + # Code from module inttypes-incomplete: +@@ -84,12 +89,14 @@ AC_DEFUN([gl_EARLY], + # Code from module langinfo: + # Code from module largefile: + AC_REQUIRE([AC_SYS_LARGEFILE]) ++ AC_REQUIRE([gl_YEAR2038_EARLY]) + # Code from module libc-config: + # Code from module limits-h: + # Code from module localcharset: + # Code from module locale: + # Code from module localeconv: + # Code from module lock: ++ # Code from module malloc-gnu: + # Code from module malloc-posix: + # Code from module malloca: + # Code from module mbchar: +@@ -107,6 +114,7 @@ AC_DEFUN([gl_EARLY], + # Code from module memchr: + # Code from module mempcpy: + # Code from module memrchr: ++ # Code from module minmax: + # Code from module msvc-inval: + # Code from module msvc-nothrow: + # Code from module multiarch: +@@ -114,6 +122,9 @@ AC_DEFUN([gl_EARLY], + # Code from module nocrash: + # Code from module open: + # Code from module pathmax: ++ # Code from module realloc-gnu: ++ # Code from module realloc-posix: ++ # Code from module reallocarray: + # Code from module regex: + # Code from module setlocale-null: + # Code from module size_max: +@@ -189,6 +200,8 @@ AC_DEFUN([gl_INIT], + m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) + m4_pushdef([gl_LIBSOURCES_LIST], []) + m4_pushdef([gl_LIBSOURCES_DIR], []) ++ m4_pushdef([GL_MACRO_PREFIX], [gl]) ++ m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL]) + gl_COMMON + gl_source_base='gnulib/lib' + gl_FUNC_ALLOCA +@@ -196,6 +209,15 @@ AC_DEFUN([gl_INIT], + if test -n "$ARGZ_H"; then + AC_LIBOBJ([argz]) + fi ++ gl_FUNC_CALLOC_GNU ++ if test $REPLACE_CALLOC = 1; then ++ AC_LIBOBJ([calloc]) ++ fi ++ gl_FUNC_CALLOC_POSIX ++ if test $REPLACE_CALLOC = 1; then ++ AC_LIBOBJ([calloc]) ++ fi ++ gl_STDLIB_MODULE_INDICATOR([calloc-posix]) + gl_DOUBLE_SLASH_ROOT + gl_HEADER_ERRNO_H + gl_ERROR +@@ -208,6 +230,7 @@ AC_DEFUN([gl_INIT], + AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) + AC_REQUIRE([gl_EXTERN_INLINE]) + gl_FCNTL_H ++ gl_FCNTL_H_REQUIRE_DEFAULTS + gl_FLOAT_H + if test $REPLACE_FLOAT_LDBL = 1; then + AC_LIBOBJ([float]) +@@ -223,10 +246,10 @@ AC_DEFUN([gl_INIT], + if test $REPLACE_GETOPT = 1; then + AC_LIBOBJ([getopt]) + AC_LIBOBJ([getopt1]) +- dnl Arrange for unistd.h to include getopt.h. +- GNULIB_GL_UNISTD_H_GETOPT=1 ++ dnl Define the substituted variable GNULIB_UNISTD_H_GETOPT to 1. ++ gl_UNISTD_H_REQUIRE_DEFAULTS ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT], [1]) + fi +- AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) + gl_UNISTD_MODULE_INDICATOR([getopt-posix]) + gl_FUNC_GETPROGNAME + AC_SUBST([LIBINTL]) +@@ -236,6 +259,7 @@ AC_DEFUN([gl_INIT], + m4_ifdef([gl_ICONV_MODULE_INDICATOR], + [gl_ICONV_MODULE_INDICATOR([iconv])]) + gl_INTTYPES_INCOMPLETE ++ gl_INTTYPES_H_REQUIRE_DEFAULTS + gl_FUNC_ISWBLANK + if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then + : +@@ -265,6 +289,15 @@ AC_DEFUN([gl_INIT], + gl_WCTYPE_MODULE_INDICATOR([iswxdigit]) + AC_REQUIRE([gl_LARGEFILE]) + gl_LIMITS_H ++ gl_FUNC_MALLOC_GNU ++ if test $REPLACE_MALLOC = 1; then ++ AC_LIBOBJ([malloc]) ++ fi ++ AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) ++ if test $REPLACE_MALLOC = 1; then ++ AC_LIBOBJ([malloc]) ++ fi ++ gl_STDLIB_MODULE_INDICATOR([malloc-posix]) + gl_MALLOCA + gl_MBCHAR + gl_MBITER +@@ -305,6 +338,7 @@ AC_DEFUN([gl_INIT], + gl_PREREQ_MEMRCHR + fi + gl_STRING_MODULE_INDICATOR([memrchr]) ++ gl_MINMAX + gl_MULTIARCH + gl_FUNC_OPEN + if test $REPLACE_OPEN = 1; then +@@ -312,6 +346,22 @@ AC_DEFUN([gl_INIT], + gl_PREREQ_OPEN + fi + gl_FCNTL_MODULE_INDICATOR([open]) ++ gl_FUNC_REALLOC_GNU ++ if test $REPLACE_REALLOC = 1; then ++ AC_LIBOBJ([realloc]) ++ fi ++ gl_FUNC_REALLOC_POSIX ++ if test $REPLACE_REALLOC = 1; then ++ AC_LIBOBJ([realloc]) ++ fi ++ gl_STDLIB_MODULE_INDICATOR([realloc-posix]) ++ gl_FUNC_REALLOCARRAY ++ if test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1; then ++ AC_LIBOBJ([reallocarray]) ++ gl_PREREQ_REALLOCARRAY ++ fi ++ gl_MODULE_INDICATOR([reallocarray]) ++ gl_STDLIB_MODULE_INDICATOR([reallocarray]) + gl_REGEX + if test $ac_use_included_regex = yes; then + AC_LIBOBJ([regex]) +@@ -321,9 +371,35 @@ AC_DEFUN([gl_INIT], + gl_STDARG_H + AM_STDBOOL_H + gl_STDDEF_H ++ gl_STDDEF_H_REQUIRE_DEFAULTS + gl_STDINT_H + gl_STDIO_H ++ gl_STDIO_H_REQUIRE_DEFAULTS ++ dnl No need to create extra modules for these functions. Everyone who uses ++ dnl likely needs them. ++ gl_STDIO_MODULE_INDICATOR([fscanf]) ++ gl_MODULE_INDICATOR([fscanf]) ++ gl_STDIO_MODULE_INDICATOR([scanf]) ++ gl_MODULE_INDICATOR([scanf]) ++ gl_STDIO_MODULE_INDICATOR([fgetc]) ++ gl_STDIO_MODULE_INDICATOR([getc]) ++ gl_STDIO_MODULE_INDICATOR([getchar]) ++ gl_STDIO_MODULE_INDICATOR([fgets]) ++ gl_STDIO_MODULE_INDICATOR([fread]) ++ dnl No need to create extra modules for these functions. Everyone who uses ++ dnl likely needs them. ++ gl_STDIO_MODULE_INDICATOR([fprintf]) ++ gl_STDIO_MODULE_INDICATOR([printf]) ++ gl_STDIO_MODULE_INDICATOR([vfprintf]) ++ gl_STDIO_MODULE_INDICATOR([vprintf]) ++ gl_STDIO_MODULE_INDICATOR([fputc]) ++ gl_STDIO_MODULE_INDICATOR([putc]) ++ gl_STDIO_MODULE_INDICATOR([putchar]) ++ gl_STDIO_MODULE_INDICATOR([fputs]) ++ gl_STDIO_MODULE_INDICATOR([puts]) ++ gl_STDIO_MODULE_INDICATOR([fwrite]) + gl_STDLIB_H ++ gl_STDLIB_H_REQUIRE_DEFAULTS + gl_STRCASE + if test $HAVE_STRCASECMP = 0; then + AC_LIBOBJ([strcasecmp]) +@@ -356,8 +432,10 @@ AC_DEFUN([gl_INIT], + fi + gl_MODULE_INDICATOR([strerror]) + gl_STRING_MODULE_INDICATOR([strerror]) +- gl_HEADER_STRING_H +- gl_HEADER_STRINGS_H ++ gl_STRING_H ++ gl_STRING_H_REQUIRE_DEFAULTS ++ gl_STRINGS_H ++ gl_STRINGS_H_REQUIRE_DEFAULTS + gl_FUNC_STRNLEN + if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then + AC_LIBOBJ([strnlen]) +@@ -365,10 +443,27 @@ AC_DEFUN([gl_INIT], + fi + gl_STRING_MODULE_INDICATOR([strnlen]) + gl_SYS_TYPES_H ++ gl_SYS_TYPES_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_UNISTD_H +- gl_LIBUNISTRING_LIBHEADER([0.9.4], [unitypes.h]) +- gl_LIBUNISTRING_LIBHEADER([0.9.4], [uniwidth.h]) ++ gl_UNISTD_H_REQUIRE_DEFAULTS ++ gl_LIBUNISTRING_LIBHEADER([0.9.11], [unitypes.h]) ++ AH_VERBATIM([unitypes_restrict], [ ++ /* This definition is a duplicate of the one in unitypes.h. ++ It is here so that we can cope with an older version of unitypes.h ++ that does not contain this definition and that is pre-installed among ++ the public header files. */ ++ # if defined __restrict \ ++ || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ ++ || __clang_major__ >= 3 ++ # define _UC_RESTRICT __restrict ++ # elif 199901L <= __STDC_VERSION__ || defined restrict ++ # define _UC_RESTRICT restrict ++ # else ++ # define _UC_RESTRICT ++ # endif ++ ]) ++ gl_LIBUNISTRING_LIBHEADER([0.9.11], [uniwidth.h]) + gl_LIBUNISTRING_MODULE([0.9.8], [uniwidth/width]) + gl_FUNC_VASPRINTF + gl_STDIO_MODULE_INDICATOR([vasprintf]) +@@ -376,7 +471,9 @@ AC_DEFUN([gl_INIT], + [AM_][XGETTEXT_OPTION([--flag=asprintf:2:c-format]) + AM_][XGETTEXT_OPTION([--flag=vasprintf:2:c-format])]) + gl_WCHAR_H ++ gl_WCHAR_H_REQUIRE_DEFAULTS + gl_WCTYPE_H ++ gl_WCTYPE_H_REQUIRE_DEFAULTS + gl_FUNC_WCWIDTH + if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then + AC_LIBOBJ([wcwidth]) +@@ -395,17 +492,16 @@ AC_DEFUN([gl_INIT], + gl_gnulib_enabled_dynarray=false + gl_gnulib_enabled_fcntl=false + gl_gnulib_enabled_43fe87a341d9b4b93c47c3ad819a5239=false ++ gl_gnulib_enabled_ef07dc4b3077c11ea9cef586db4e5955=false + gl_gnulib_enabled_fstat=false + gl_gnulib_enabled_getdtablesize=false + gl_gnulib_enabled_30838f5439487421042f2225bed3af76=false +- gl_gnulib_enabled_intprops=false + gl_gnulib_enabled_langinfo=false + gl_gnulib_enabled_21ee726a3540c09237a8e70c0baf7467=false + gl_gnulib_enabled_localcharset=false + gl_gnulib_enabled_locale=false + gl_gnulib_enabled_localeconv=false + gl_gnulib_enabled_lock=false +- gl_gnulib_enabled_ef455225c00f5049c808c2eda3e76866=false + gl_gnulib_enabled_mbtowc=false + gl_gnulib_enabled_mempcpy=false + gl_gnulib_enabled_f691f076f650964c9f5598c3ee487616=false +@@ -506,8 +602,9 @@ AC_DEFUN([gl_INIT], + func_gl_gnulib_m4code_dynarray () + { + if ! $gl_gnulib_enabled_dynarray; then ++ AC_PROG_MKDIR_P + gl_gnulib_enabled_dynarray=true +- func_gl_gnulib_m4code_intprops ++ func_gl_gnulib_m4code_37f71b604aa9c54446783d80f42fe547 + func_gl_gnulib_m4code_21ee726a3540c09237a8e70c0baf7467 + fi + } +@@ -540,6 +637,18 @@ AC_DEFUN([gl_INIT], + gl_gnulib_enabled_43fe87a341d9b4b93c47c3ad819a5239=true + fi + } ++ func_gl_gnulib_m4code_ef07dc4b3077c11ea9cef586db4e5955 () ++ { ++ if ! $gl_gnulib_enabled_ef07dc4b3077c11ea9cef586db4e5955; then ++ gl_FUNC_FREE ++ if test $REPLACE_FREE = 1; then ++ AC_LIBOBJ([free]) ++ gl_PREREQ_FREE ++ fi ++ gl_STDLIB_MODULE_INDICATOR([free-posix]) ++ gl_gnulib_enabled_ef07dc4b3077c11ea9cef586db4e5955=true ++ fi ++ } + func_gl_gnulib_m4code_fstat () + { + if ! $gl_gnulib_enabled_fstat; then +@@ -595,16 +704,11 @@ AC_DEFUN([gl_INIT], + func_gl_gnulib_m4code_e7e881d32ca02f1c997b13c737c64bbd + fi + } +- func_gl_gnulib_m4code_intprops () +- { +- if ! $gl_gnulib_enabled_intprops; then +- gl_gnulib_enabled_intprops=true +- fi +- } + func_gl_gnulib_m4code_langinfo () + { + if ! $gl_gnulib_enabled_langinfo; then + gl_LANGINFO_H ++ gl_LANGINFO_H_REQUIRE_DEFAULTS + gl_gnulib_enabled_langinfo=true + fi + } +@@ -629,6 +733,7 @@ AC_DEFUN([gl_INIT], + { + if ! $gl_gnulib_enabled_locale; then + gl_LOCALE_H ++ gl_LOCALE_H_REQUIRE_DEFAULTS + gl_gnulib_enabled_locale=true + fi + } +@@ -666,18 +771,6 @@ AC_DEFUN([gl_INIT], + fi + fi + } +- func_gl_gnulib_m4code_ef455225c00f5049c808c2eda3e76866 () +- { +- if ! $gl_gnulib_enabled_ef455225c00f5049c808c2eda3e76866; then +- gl_FUNC_MALLOC_POSIX +- if test $REPLACE_MALLOC = 1; then +- AC_LIBOBJ([malloc]) +- fi +- gl_STDLIB_MODULE_INDICATOR([malloc-posix]) +- gl_MODULE_INDICATOR([malloc-posix]) +- gl_gnulib_enabled_ef455225c00f5049c808c2eda3e76866=true +- fi +- } + func_gl_gnulib_m4code_mbtowc () + { + if ! $gl_gnulib_enabled_mbtowc; then +@@ -803,7 +896,6 @@ AC_DEFUN([gl_INIT], + gl_STAT_TIME + gl_STAT_BIRTHTIME + gl_gnulib_enabled_0137e3d3638b33e5819d132d0b23165c=true +- func_gl_gnulib_m4code_intprops + func_gl_gnulib_m4code_time + fi + } +@@ -870,7 +962,8 @@ AC_DEFUN([gl_INIT], + func_gl_gnulib_m4code_sys_stat () + { + if ! $gl_gnulib_enabled_sys_stat; then +- gl_HEADER_SYS_STAT_H ++ gl_SYS_STAT_H ++ gl_SYS_STAT_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_gnulib_enabled_sys_stat=true + func_gl_gnulib_m4code_time +@@ -886,7 +979,8 @@ AC_DEFUN([gl_INIT], + func_gl_gnulib_m4code_time () + { + if ! $gl_gnulib_enabled_time; then +- gl_HEADER_TIME_H ++ gl_TIME_H ++ gl_TIME_H_REQUIRE_DEFAULTS + gl_gnulib_enabled_time=true + fi + } +@@ -897,6 +991,7 @@ AC_DEFUN([gl_INIT], + gl_FUNC_VASNPRINTF + gl_gnulib_enabled_vasnprintf=true + func_gl_gnulib_m4code_attribute ++ func_gl_gnulib_m4code_ef07dc4b3077c11ea9cef586db4e5955 + func_gl_gnulib_m4code_xsize + fi + } +@@ -1002,6 +1097,9 @@ AC_DEFUN([gl_INIT], + if test $REPLACE_OPEN = 1; then + func_gl_gnulib_m4code_stat + fi ++ if test $REPLACE_REALLOC = 1; then ++ func_gl_gnulib_m4code_ef07dc4b3077c11ea9cef586db4e5955 ++ fi + if test $ac_use_included_regex = yes; then + func_gl_gnulib_m4code_attribute + fi +@@ -1015,9 +1113,6 @@ AC_DEFUN([gl_INIT], + func_gl_gnulib_m4code_dynarray + fi + if test $ac_use_included_regex = yes; then +- func_gl_gnulib_m4code_intprops +- fi +- if test $ac_use_included_regex = yes; then + func_gl_gnulib_m4code_langinfo + fi + if test $ac_use_included_regex = yes; then +@@ -1032,12 +1127,6 @@ AC_DEFUN([gl_INIT], + if test $ac_use_included_regex = yes; then + func_gl_gnulib_m4code_wcrtomb + fi +- if test $REPLACE_STRDUP = 1; then +- func_gl_gnulib_m4code_ef455225c00f5049c808c2eda3e76866 +- fi +- if test $REPLACE_STRERROR = 1; then +- func_gl_gnulib_m4code_intprops +- fi + if test $REPLACE_STRERROR = 1; then + func_gl_gnulib_m4code_dbb57f49352be8fb86869629a254fb72 + fi +@@ -1057,17 +1146,16 @@ AC_DEFUN([gl_INIT], + AM_CONDITIONAL([gl_GNULIB_ENABLED_dynarray], [$gl_gnulib_enabled_dynarray]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_fcntl], [$gl_gnulib_enabled_fcntl]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_43fe87a341d9b4b93c47c3ad819a5239], [$gl_gnulib_enabled_43fe87a341d9b4b93c47c3ad819a5239]) ++ AM_CONDITIONAL([gl_GNULIB_ENABLED_ef07dc4b3077c11ea9cef586db4e5955], [$gl_gnulib_enabled_ef07dc4b3077c11ea9cef586db4e5955]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_fstat], [$gl_gnulib_enabled_fstat]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_getdtablesize], [$gl_gnulib_enabled_getdtablesize]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76], [$gl_gnulib_enabled_30838f5439487421042f2225bed3af76]) +- AM_CONDITIONAL([gl_GNULIB_ENABLED_intprops], [$gl_gnulib_enabled_intprops]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_langinfo], [$gl_gnulib_enabled_langinfo]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_21ee726a3540c09237a8e70c0baf7467], [$gl_gnulib_enabled_21ee726a3540c09237a8e70c0baf7467]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_localcharset], [$gl_gnulib_enabled_localcharset]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_locale], [$gl_gnulib_enabled_locale]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_localeconv], [$gl_gnulib_enabled_localeconv]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_lock], [$gl_gnulib_enabled_lock]) +- AM_CONDITIONAL([gl_GNULIB_ENABLED_ef455225c00f5049c808c2eda3e76866], [$gl_gnulib_enabled_ef455225c00f5049c808c2eda3e76866]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_mbtowc], [$gl_gnulib_enabled_mbtowc]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_mempcpy], [$gl_gnulib_enabled_mempcpy]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_f691f076f650964c9f5598c3ee487616], [$gl_gnulib_enabled_f691f076f650964c9f5598c3ee487616]) +@@ -1105,6 +1193,8 @@ AC_DEFUN([gl_INIT], + m4_if(m4_sysval, [0], [], + [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) + ]) ++ m4_popdef([GL_MODULE_INDICATOR_PREFIX]) ++ m4_popdef([GL_MACRO_PREFIX]) + m4_popdef([gl_LIBSOURCES_DIR]) + m4_popdef([gl_LIBSOURCES_LIST]) + m4_popdef([AC_LIBSOURCES]) +@@ -1131,6 +1221,8 @@ AC_DEFUN([gl_INIT], + m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES])) + m4_pushdef([gltests_LIBSOURCES_LIST], []) + m4_pushdef([gltests_LIBSOURCES_DIR], []) ++ m4_pushdef([GL_MACRO_PREFIX], [gltests]) ++ m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL]) + gl_COMMON + gl_source_base='tests' + changequote(,)dnl +@@ -1152,6 +1244,8 @@ changequote([, ])dnl + m4_if(m4_sysval, [0], [], + [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) + ]) ++ m4_popdef([GL_MODULE_INDICATOR_PREFIX]) ++ m4_popdef([GL_MACRO_PREFIX]) + m4_popdef([gltests_LIBSOURCES_DIR]) + m4_popdef([gltests_LIBSOURCES_LIST]) + m4_popdef([AC_LIBSOURCES]) +@@ -1247,6 +1341,7 @@ AC_DEFUN([gl_FILE_LIST], [ + lib/basename-lgpl.h + lib/btowc.c + lib/c++defs.h ++ lib/calloc.c + lib/cdefs.h + lib/cloexec.c + lib/cloexec.h +@@ -1266,6 +1361,7 @@ AC_DEFUN([gl_FILE_LIST], [ + lib/float+.h + lib/float.c + lib/float.in.h ++ lib/free.c + lib/fstat.c + lib/getdtablesize.c + lib/getopt-cdefs.in.h +@@ -1285,6 +1381,9 @@ AC_DEFUN([gl_FILE_LIST], [ + lib/glthread/threadlib.c + lib/hard-locale.c + lib/hard-locale.h ++ lib/ialloc.c ++ lib/ialloc.h ++ lib/idx.h + lib/intprops.h + lib/inttypes.in.h + lib/iswblank.c +@@ -1335,6 +1434,7 @@ AC_DEFUN([gl_FILE_LIST], [ + lib/memchr.valgrind + lib/mempcpy.c + lib/memrchr.c ++ lib/minmax.h + lib/msvc-inval.c + lib/msvc-inval.h + lib/msvc-nothrow.c +@@ -1347,6 +1447,8 @@ AC_DEFUN([gl_FILE_LIST], [ + lib/printf-args.h + lib/printf-parse.c + lib/printf-parse.h ++ lib/realloc.c ++ lib/reallocarray.c + lib/regcomp.c + lib/regex.c + lib/regex.h +@@ -1427,6 +1529,7 @@ AC_DEFUN([gl_FILE_LIST], [ + m4/argz.m4 + m4/btowc.m4 + m4/builtin-expect.m4 ++ m4/calloc.m4 + m4/close.m4 + m4/codeset.m4 + m4/double-slash-root.m4 +@@ -1441,6 +1544,7 @@ AC_DEFUN([gl_FILE_LIST], [ + m4/fcntl.m4 + m4/fcntl_h.m4 + m4/float_h.m4 ++ m4/free.m4 + m4/fstat.m4 + m4/getdtablesize.m4 + m4/getopt.m4 +@@ -1483,6 +1587,7 @@ AC_DEFUN([gl_FILE_LIST], [ + m4/memchr.m4 + m4/mempcpy.m4 + m4/memrchr.m4 ++ m4/minmax.m4 + m4/mmap-anon.m4 + m4/mode_t.m4 + m4/msvc-inval.m4 +@@ -1498,6 +1603,8 @@ AC_DEFUN([gl_FILE_LIST], [ + m4/pid_t.m4 + m4/printf.m4 + m4/pthread_rwlock_rdlock.m4 ++ m4/realloc.m4 ++ m4/reallocarray.m4 + m4/regex.m4 + m4/setlocale_null.m4 + m4/size_max.m4 +@@ -1540,5 +1647,6 @@ AC_DEFUN([gl_FILE_LIST], [ + m4/wint_t.m4 + m4/xalloc.m4 + m4/xsize.m4 ++ m4/year2038.m4 + m4/zzgnulib.m4 + ]) +--- a/gnulib/m4/inttypes.m4 ++++ b/gnulib/m4/inttypes.m4 +@@ -1,4 +1,4 @@ +-# inttypes.m4 serial 32 ++# inttypes.m4 serial 35 + dnl Copyright (C) 2006-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -7,7 +7,7 @@ dnl with or without modifications, as lo + dnl From Derek Price, Bruno Haible. + dnl Test whether is supported or must be substituted. + +-AC_DEFUN([gl_INTTYPES_H], ++AC_DEFUN_ONCE([gl_INTTYPES_H], + [ + AC_REQUIRE([gl_INTTYPES_INCOMPLETE]) + gl_INTTYPES_PRI_SCN +@@ -136,19 +136,34 @@ AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_IN + AC_SUBST([$1]) + ]) + ++# gl_INTTYPES_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_INTTYPES_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_INTTYPES_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXABS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXDIV]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOIMAX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUMAX]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_INTTYPES_H_DEFAULTS], + [ +- GNULIB_IMAXABS=0; AC_SUBST([GNULIB_IMAXABS]) +- GNULIB_IMAXDIV=0; AC_SUBST([GNULIB_IMAXDIV]) +- GNULIB_STRTOIMAX=0; AC_SUBST([GNULIB_STRTOIMAX]) +- GNULIB_STRTOUMAX=0; AC_SUBST([GNULIB_STRTOUMAX]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DECL_IMAXABS=1; AC_SUBST([HAVE_DECL_IMAXABS]) + HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV]) +--- a/gnulib/m4/iswdigit.m4 ++++ b/gnulib/m4/iswdigit.m4 +@@ -1,4 +1,4 @@ +-# iswdigit.m4 serial 2 ++# iswdigit.m4 serial 3 + dnl Copyright (C) 2020-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -81,12 +81,12 @@ main (int argc, char *argv[]) + } + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { +- /* This fails on FreeBSD 12, NetBSD 8.0, MSVC 14. */ ++ /* This fails on FreeBSD 13.0, NetBSD 8.0, MSVC 14. */ + /* U+0663 ARABIC-INDIC DIGIT THREE */ + is = for_character ("\331\243", 2); + if (!(is == 0)) + result |= 4; +- /* This fails on FreeBSD 12, NetBSD 8.0, MSVC 14. */ ++ /* This fails on FreeBSD 13.0, NetBSD 8.0, MSVC 14. */ + /* U+FF11 FULLWIDTH DIGIT ONE */ + is = for_character ("\357\274\221", 3); + if (!(is == 0)) +--- a/gnulib/m4/iswxdigit.m4 ++++ b/gnulib/m4/iswxdigit.m4 +@@ -1,4 +1,4 @@ +-# iswxdigit.m4 serial 2 ++# iswxdigit.m4 serial 3 + dnl Copyright (C) 2020-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -72,7 +72,7 @@ main (int argc, char *argv[]) + } + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { +- /* This fails on FreeBSD 12. */ ++ /* This fails on FreeBSD 13.0. */ + /* U+0663 ARABIC-INDIC DIGIT THREE */ + is = for_character ("\331\243", 2); + if (!(is == 0)) +--- a/gnulib/m4/langinfo_h.m4 ++++ b/gnulib/m4/langinfo_h.m4 +@@ -1,10 +1,10 @@ +-# langinfo_h.m4 serial 9 ++# langinfo_h.m4 serial 12 + dnl Copyright (C) 2009-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + +-AC_DEFUN([gl_LANGINFO_H], ++AC_DEFUN_ONCE([gl_LANGINFO_H], + [ + AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) + +@@ -104,18 +104,33 @@ int a = YESEXPR; + ]], [nl_langinfo]) + ]) + ++# gl_LANGINFO_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_LANGINFO_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_LANGINFO_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_LANGINFO_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NL_LANGINFO]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_LANGINFO_H_DEFAULTS], + [ +- GNULIB_NL_LANGINFO=0; AC_SUBST([GNULIB_NL_LANGINFO]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_NL_LANGINFO=1; AC_SUBST([HAVE_NL_LANGINFO]) + REPLACE_NL_LANGINFO=0; AC_SUBST([REPLACE_NL_LANGINFO]) +--- a/gnulib/m4/largefile.m4 ++++ b/gnulib/m4/largefile.m4 +@@ -22,7 +22,8 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE], + esac + ]) + +-# The following implementation works around a problem in autoconf <= 2.69; ++# Work around a problem in Autoconf through at least 2.71 on glibc 2.34+ ++# with _TIME_BITS. Also, work around a problem in autoconf <= 2.69: + # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5, + # or configures them incorrectly in some cases. + m4_version_prereq([2.70], [], [ +@@ -40,6 +41,7 @@ m4_define([_AC_SYS_LARGEFILE_TEST_INCLUD + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]];[]dnl + ]) ++])# m4_version_prereq 2.70 + + + # _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, +@@ -54,7 +56,8 @@ m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE + [AC_LANG_PROGRAM([$5], [$6])], + [$3=no; break]) + m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( +- [AC_LANG_PROGRAM([#define $1 $2 ++ [AC_LANG_PROGRAM([#undef $1 ++#define $1 $2 + $5], [$6])], + [$3=$2; break]) + $3=unknown +@@ -80,9 +83,8 @@ rm -rf conftest*[]dnl + AC_DEFUN([AC_SYS_LARGEFILE], + [AC_ARG_ENABLE(largefile, + [ --disable-largefile omit support for large files]) +-if test "$enable_largefile" != no; then +- +- AC_CACHE_CHECK([for special C compiler options needed for large files], ++AS_IF([test "$enable_largefile" != no], ++ [AC_CACHE_CHECK([for special C compiler options needed for large files], + ac_cv_sys_largefile_CC, + [ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then +@@ -107,15 +109,15 @@ if test "$enable_largefile" != no; then + ac_cv_sys_file_offset_bits, + [Number of bits in a file offset, on hosts where this is settable.], + [_AC_SYS_LARGEFILE_TEST_INCLUDES]) +- if test $ac_cv_sys_file_offset_bits = unknown; then +- _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, +- ac_cv_sys_large_files, +- [Define for large files, on AIX-style hosts.], +- [_AC_SYS_LARGEFILE_TEST_INCLUDES]) +- fi +-fi ++ AS_CASE([$ac_cv_sys_file_offset_bits], ++ [unknown], ++ [_AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1], ++ [ac_cv_sys_large_files], ++ [Define for large files, on AIX-style hosts.], ++ [_AC_SYS_LARGEFILE_TEST_INCLUDES])], ++ [64], ++ [gl_YEAR2038_BODY([])])]) + ])# AC_SYS_LARGEFILE +-])# m4_version_prereq 2.70 + + # Enable large files on systems where this is implemented by Gnulib, not by the + # system headers. +--- a/gnulib/m4/locale_h.m4 ++++ b/gnulib/m4/locale_h.m4 +@@ -1,13 +1,13 @@ +-# locale_h.m4 serial 25 ++# locale_h.m4 serial 28 + dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + +-AC_DEFUN([gl_LOCALE_H], ++AC_DEFUN_ONCE([gl_LOCALE_H], + [ +- dnl Use AC_REQUIRE here, so that the default behavior below is expanded +- dnl once only, before all statements that occur in other macros. ++ dnl Ensure to expand the default settings once only, before all statements ++ dnl that occur in other macros. + AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) + + dnl Persuade glibc to define locale_t and the int_p_*, int_n_* +@@ -129,22 +129,37 @@ AC_DEFUN([gl_LOCALE_T], + AC_SUBST([HAVE_XLOCALE_H]) + ]) + ++# gl_LOCALE_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_LOCALE_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_LOCALE_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_LOCALE_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALECONV]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE_NULL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUPLOCALE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALENAME]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_LOCALE_H_DEFAULTS], + [ +- GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV]) +- GNULIB_SETLOCALE=0; AC_SUBST([GNULIB_SETLOCALE]) +- GNULIB_SETLOCALE_NULL=0; AC_SUBST([GNULIB_SETLOCALE_NULL]) +- GNULIB_DUPLOCALE=0; AC_SUBST([GNULIB_DUPLOCALE]) +- GNULIB_LOCALENAME=0; AC_SUBST([GNULIB_LOCALENAME]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_NEWLOCALE=1; AC_SUBST([HAVE_NEWLOCALE]) + HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE]) +--- a/gnulib/m4/malloc.m4 ++++ b/gnulib/m4/malloc.m4 +@@ -1,21 +1,21 @@ +-# malloc.m4 serial 22 ++# malloc.m4 serial 27 + dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + # This is adapted with modifications from upstream Autoconf here: +-# https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=04be2b7a29d65d9a08e64e8e56e594c91749598c ++# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n949 + AC_DEFUN([_AC_FUNC_MALLOC_IF], + [ + AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles +- AC_CACHE_CHECK([for GNU libc compatible malloc], ++ AC_CACHE_CHECK([whether malloc (0) returns nonnull], + [ac_cv_func_malloc_0_nonnull], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], +- [[char *p = malloc (0); ++ [[void *p = malloc (0); + int result = !p; + free (p); + return result;]]) +@@ -24,75 +24,151 @@ AC_DEFUN([_AC_FUNC_MALLOC_IF], + [ac_cv_func_malloc_0_nonnull=no], + [case "$host_os" in + # Guess yes on platforms where we know the result. +- *-gnu* | gnu* | *-musl* | freebsd* | midnightbsd* | netbsd* | openbsd* \ +- | hpux* | solaris* | cygwin* | mingw*) ++ *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ ++ | gnu* | *-musl* | midnightbsd* \ ++ | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_malloc_0_nonnull="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; + esac + ]) + ]) +- case "$ac_cv_func_malloc_0_nonnull" in +- *yes) +- $1 +- ;; +- *) +- $2 +- ;; +- esac ++ AS_CASE([$ac_cv_func_malloc_0_nonnull], [*yes], [$1], [$2]) + ])# _AC_FUNC_MALLOC_IF + + # gl_FUNC_MALLOC_GNU + # ------------------ +-# Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if +-# it is not. ++# Replace malloc if it is not compatible with GNU libc. + AC_DEFUN([gl_FUNC_MALLOC_GNU], + [ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) +- dnl _AC_FUNC_MALLOC_IF is defined in Autoconf. +- _AC_FUNC_MALLOC_IF( +- [AC_DEFINE([HAVE_MALLOC_GNU], [1], +- [Define to 1 if your system has a GNU libc compatible 'malloc' +- function, and to 0 otherwise.])], +- [AC_DEFINE([HAVE_MALLOC_GNU], [0]) +- REPLACE_MALLOC=1 ++ AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) ++ if test $REPLACE_MALLOC = 0; then ++ _AC_FUNC_MALLOC_IF([], [REPLACE_MALLOC=1]) ++ fi ++]) ++ ++# gl_FUNC_MALLOC_PTRDIFF ++# ---------------------- ++# Test whether malloc (N) reliably fails when N exceeds PTRDIFF_MAX, ++# and replace malloc otherwise. ++AC_DEFUN([gl_FUNC_MALLOC_PTRDIFF], ++[ ++ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ++ AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF]) ++ test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC=1 ++]) ++ ++# Test whether malloc, realloc, calloc refuse to create objects ++# larger than what can be expressed in ptrdiff_t. ++# Set gl_cv_func_malloc_gnu to yes or no accordingly. ++AC_DEFUN([gl_CHECK_MALLOC_PTRDIFF], ++[ ++ AC_CACHE_CHECK([whether malloc is ptrdiff_t safe], ++ [gl_cv_malloc_ptrdiff], ++ [AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[#include ++ ]], ++ [[/* 64-bit ptrdiff_t is so wide that no practical platform ++ can exceed it. */ ++ #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0) ++ ++ /* On rare machines where size_t fits in ptrdiff_t there ++ is no problem. */ ++ #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX) ++ ++ /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t ++ bounds even on 32-bit platforms. We don't know which ++ non-glibc systems are safe. */ ++ #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__)) ++ ++ #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE ++ return 0; ++ #else ++ #error "malloc might not be ptrdiff_t safe" ++ syntax error ++ #endif ++ ]])], ++ [gl_cv_malloc_ptrdiff=yes], ++ [gl_cv_malloc_ptrdiff=no]) + ]) + ]) + + # gl_FUNC_MALLOC_POSIX + # -------------------- + # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it +-# fails), and replace malloc if it is not. ++# fails, and doesn't mess up with ptrdiff_t overflow), and replace ++# malloc if it is not. + AC_DEFUN([gl_FUNC_MALLOC_POSIX], + [ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ++ AC_REQUIRE([gl_FUNC_MALLOC_PTRDIFF]) + AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) +- if test $gl_cv_func_malloc_posix = yes; then ++ if test "$gl_cv_func_malloc_posix" = yes; then + AC_DEFINE([HAVE_MALLOC_POSIX], [1], +- [Define if the 'malloc' function is POSIX compliant.]) ++ [Define if malloc, realloc, and calloc set errno on allocation failure.]) + else + REPLACE_MALLOC=1 + fi + ]) + +-# Test whether malloc, realloc, calloc are POSIX compliant, ++# Test whether malloc, realloc, calloc set errno to ENOMEM on failure. + # Set gl_cv_func_malloc_posix to yes or no accordingly. + AC_DEFUN([gl_CHECK_MALLOC_POSIX], + [ +- AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant], ++ AC_REQUIRE([AC_CANONICAL_HOST]) ++ AC_CACHE_CHECK([whether malloc, realloc, calloc set errno on failure], + [gl_cv_func_malloc_posix], + [ + dnl It is too dangerous to try to allocate a large amount of memory: + dnl some systems go to their knees when you do that. So assume that +- dnl all Unix implementations of the function are POSIX compliant. +- AC_COMPILE_IFELSE( +- [AC_LANG_PROGRAM( +- [[]], +- [[#if defined _WIN32 && ! defined __CYGWIN__ +- choke me +- #endif +- ]])], +- [gl_cv_func_malloc_posix=yes], +- [gl_cv_func_malloc_posix=no]) ++ dnl all Unix implementations of the function set errno on failure, ++ dnl except on those platforms where we have seen 'test-malloc-gnu', ++ dnl 'test-realloc-gnu', 'test-calloc-gnu' fail. ++ case "$host_os" in ++ mingw*) ++ gl_cv_func_malloc_posix=no ;; ++ irix* | solaris*) ++ dnl On IRIX 6.5, the three functions return NULL with errno unset ++ dnl when the argument is larger than PTRDIFF_MAX. ++ dnl On Solaris 11.3, the three functions return NULL with errno set ++ dnl to EAGAIN, not ENOMEM, when the argument is larger than ++ dnl PTRDIFF_MAX. ++ dnl Here is a test program: ++m4_divert_push([KILL]) ++#include ++#include ++#include ++#define ptrdiff_t long ++#ifndef PTRDIFF_MAX ++# define PTRDIFF_MAX ((ptrdiff_t) ((1UL << (8 * sizeof (ptrdiff_t) - 1)) - 1)) ++#endif ++ ++int main () ++{ ++ void *p; ++ ++ fprintf (stderr, "PTRDIFF_MAX = %lu\n", (unsigned long) PTRDIFF_MAX); ++ ++ errno = 0; ++ p = malloc ((unsigned long) PTRDIFF_MAX + 1); ++ fprintf (stderr, "p=%p errno=%d\n", p, errno); ++ ++ errno = 0; ++ p = calloc (PTRDIFF_MAX / 2 + 1, 2); ++ fprintf (stderr, "p=%p errno=%d\n", p, errno); ++ ++ errno = 0; ++ p = realloc (NULL, (unsigned long) PTRDIFF_MAX + 1); ++ fprintf (stderr, "p=%p errno=%d\n", p, errno); ++ ++ return 0; ++} ++m4_divert_pop([KILL]) ++ gl_cv_func_malloc_posix=no ;; ++ *) ++ gl_cv_func_malloc_posix=yes ;; ++ esac + ]) + ]) +--- a/gnulib/m4/mbslen.m4 ++++ b/gnulib/m4/mbslen.m4 +@@ -1,4 +1,4 @@ +-# mbslen.m4 serial 2 ++# mbslen.m4 serial 3 + dnl Copyright (C) 2010-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -6,7 +6,7 @@ dnl with or without modifications, as lo + + AC_DEFUN([gl_FUNC_MBSLEN], + [ +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_CHECK_FUNCS_ONCE([mbslen]) + if test $ac_cv_func_mbslen = yes; then + HAVE_MBSLEN=1 +--- a/gnulib/m4/memchr.m4 ++++ b/gnulib/m4/memchr.m4 +@@ -1,4 +1,4 @@ +-# memchr.m4 serial 17 ++# memchr.m4 serial 18 + dnl Copyright (C) 2002-2004, 2009-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -13,7 +13,7 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR], + AC_CHECK_HEADERS_ONCE([sys/mman.h]) + AC_CHECK_FUNCS_ONCE([mprotect]) + +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + # Detect platform-specific bugs in some versions of glibc: + # memchr should not dereference anything with length 0 + # https://bugzilla.redhat.com/show_bug.cgi?id=499689 +--- a/gnulib/m4/mempcpy.m4 ++++ b/gnulib/m4/mempcpy.m4 +@@ -1,4 +1,4 @@ +-# mempcpy.m4 serial 11 ++# mempcpy.m4 serial 12 + dnl Copyright (C) 2003-2004, 2006-2007, 2009-2021 Free Software Foundation, + dnl Inc. + dnl This file is free software; the Free Software Foundation +@@ -13,7 +13,7 @@ AC_DEFUN([gl_FUNC_MEMPCPY], + dnl The mempcpy() declaration in lib/string.in.h uses 'restrict'. + AC_REQUIRE([AC_C_RESTRICT]) + +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_CHECK_FUNCS([mempcpy]) + if test $ac_cv_func_mempcpy = no; then + HAVE_MEMPCPY=0 +--- a/gnulib/m4/memrchr.m4 ++++ b/gnulib/m4/memrchr.m4 +@@ -1,4 +1,4 @@ +-# memrchr.m4 serial 10 ++# memrchr.m4 serial 11 + dnl Copyright (C) 2002-2003, 2005-2007, 2009-2021 Free Software Foundation, + dnl Inc. + dnl This file is free software; the Free Software Foundation +@@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_MEMRCHR], + dnl Persuade glibc to declare memrchr(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_CHECK_DECLS_ONCE([memrchr]) + if test $ac_cv_have_decl_memrchr = no; then + HAVE_DECL_MEMRCHR=0 +--- /dev/null ++++ b/gnulib/m4/minmax.m4 +@@ -0,0 +1,44 @@ ++# minmax.m4 serial 4 ++dnl Copyright (C) 2005, 2009-2021 Free Software Foundation, Inc. ++dnl This file is free software; the Free Software Foundation ++dnl gives unlimited permission to copy and/or distribute it, ++dnl with or without modifications, as long as this notice is preserved. ++ ++AC_PREREQ([2.53]) ++ ++AC_DEFUN([gl_MINMAX], ++[ ++ AC_REQUIRE([gl_PREREQ_MINMAX]) ++]) ++ ++# Prerequisites of lib/minmax.h. ++AC_DEFUN([gl_PREREQ_MINMAX], ++[ ++ gl_MINMAX_IN_HEADER([limits.h]) ++ gl_MINMAX_IN_HEADER([sys/param.h]) ++]) ++ ++dnl gl_MINMAX_IN_HEADER(HEADER) ++dnl The parameter has to be a literal header name; it cannot be macro, ++dnl nor a shell variable. (Because autoheader collects only AC_DEFINE ++dnl invocations with a literal macro name.) ++AC_DEFUN([gl_MINMAX_IN_HEADER], ++[ ++ m4_pushdef([header], AS_TR_SH([$1])) ++ m4_pushdef([HEADER], AS_TR_CPP([$1])) ++ AC_CACHE_CHECK([whether <$1> defines MIN and MAX], ++ [gl_cv_minmax_in_]header, ++ [AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[#include <$1> ++ int x = MIN (42, 17);]], ++ [[]])], ++ [gl_cv_minmax_in_]header[=yes], ++ [gl_cv_minmax_in_]header[=no])]) ++ if test $gl_cv_minmax_in_[]header = yes; then ++ AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1, ++ [Define to 1 if <$1> defines the MIN and MAX macros.]) ++ fi ++ m4_popdef([HEADER]) ++ m4_popdef([header]) ++]) +--- a/gnulib/m4/printf.m4 ++++ b/gnulib/m4/printf.m4 +@@ -1,4 +1,4 @@ +-# printf.m4 serial 72 ++# printf.m4 serial 73 + dnl Copyright (C) 2003, 2007-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -537,7 +537,7 @@ int main () + && strcmp (buf, "-0X6.488P-1 33") != 0 + && strcmp (buf, "-0XC.91P-2 33") != 0)) + result |= 2; +- /* This catches a FreeBSD 6.1 bug: it doesn't round. */ ++ /* This catches a FreeBSD 13.0 bug: it doesn't round. */ + if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0 + || (strcmp (buf, "0x1.83p+0 33") != 0 + && strcmp (buf, "0x3.05p-1 33") != 0 +@@ -1690,6 +1690,7 @@ dnl + dnl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + dnl glibc 2.5 . . . . . . . . . . . . . . . . . . . . + dnl glibc 2.3.6 . . . . # . . . . . . . . . . . . . . . ++dnl FreeBSD 13.0 . . . . # . . . . . . . . # . . . . . . + dnl FreeBSD 5.4, 6.1 . . . . # . . . . . . # . # . . . . . . + dnl Mac OS X 10.13.5 . . . # # . # . . . . . . . . . . # . . + dnl Mac OS X 10.5.8 . . . # # . . . . . . # . . . . . . . . +--- /dev/null ++++ b/gnulib/m4/realloc.m4 +@@ -0,0 +1,63 @@ ++# realloc.m4 serial 24 ++dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc. ++dnl This file is free software; the Free Software Foundation ++dnl gives unlimited permission to copy and/or distribute it, ++dnl with or without modifications, as long as this notice is preserved. ++ ++# This is adapted with modifications from upstream Autoconf here: ++# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n1455 ++AC_DEFUN([_AC_FUNC_REALLOC_IF], ++[ ++ AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles ++ AC_CACHE_CHECK([whether realloc (0, 0) returns nonnull], ++ [ac_cv_func_realloc_0_nonnull], ++ [AC_RUN_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[#include ++ ]], ++ [[void *p = realloc (0, 0); ++ int result = !p; ++ free (p); ++ return result;]]) ++ ], ++ [ac_cv_func_realloc_0_nonnull=yes], ++ [ac_cv_func_realloc_0_nonnull=no], ++ [case "$host_os" in ++ # Guess yes on platforms where we know the result. ++ *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ ++ | gnu* | *-musl* | midnightbsd* \ ++ | hpux* | solaris* | cygwin* | mingw* | msys* ) ++ ac_cv_func_realloc_0_nonnull="guessing yes" ;; ++ # If we don't know, obey --enable-cross-guesses. ++ *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;; ++ esac ++ ]) ++ ]) ++ AS_CASE([$ac_cv_func_realloc_0_nonnull], [*yes], [$1], [$2]) ++])# AC_FUNC_REALLOC ++ ++# gl_FUNC_REALLOC_GNU ++# ------------------- ++# Replace realloc if it is not compatible with GNU libc. ++AC_DEFUN([gl_FUNC_REALLOC_GNU], ++[ ++ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ++ AC_REQUIRE([gl_FUNC_REALLOC_POSIX]) ++ if test $REPLACE_REALLOC = 0; then ++ _AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC=1]) ++ fi ++])# gl_FUNC_REALLOC_GNU ++ ++# gl_FUNC_REALLOC_POSIX ++# --------------------- ++# Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it ++# fails, and doesn't mess up with ptrdiff_t overflow), ++# and replace realloc if it is not. ++AC_DEFUN([gl_FUNC_REALLOC_POSIX], ++[ ++ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ++ AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) ++ if test $REPLACE_MALLOC = 1; then ++ REPLACE_REALLOC=1 ++ fi ++]) +--- /dev/null ++++ b/gnulib/m4/reallocarray.m4 +@@ -0,0 +1,23 @@ ++# reallocarray.m4 serial 3 ++dnl Copyright (C) 2017-2021 Free Software Foundation, Inc. ++dnl This file is free software; the Free Software Foundation ++dnl gives unlimited permission to copy and/or distribute it, ++dnl with or without modifications, as long as this notice is preserved. ++ ++AC_DEFUN([gl_FUNC_REALLOCARRAY], ++[ ++ dnl Persuade glibc to declare reallocarray. ++ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) ++ ++ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ++ AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF]) ++ AC_CHECK_FUNCS([reallocarray]) ++ if test "$ac_cv_func_reallocarray" = no; then ++ HAVE_REALLOCARRAY=0 ++ elif test "$gl_cv_malloc_ptrdiff" = no; then ++ REPLACE_REALLOCARRAY=1 ++ fi ++]) ++ ++# Prerequisites of lib/reallocarray.c. ++AC_DEFUN([gl_PREREQ_REALLOCARRAY], [:]) +--- a/gnulib/m4/stat.m4 ++++ b/gnulib/m4/stat.m4 +@@ -1,4 +1,4 @@ +-# serial 17 ++# serial 18 + + # Copyright (C) 2009-2021 Free Software Foundation, Inc. + # +@@ -69,7 +69,7 @@ AC_DEFUN([gl_FUNC_STAT], + + # Prerequisites of lib/stat.c and lib/stat-w32.c. + AC_DEFUN([gl_PREREQ_STAT], [ +- AC_REQUIRE([gl_HEADER_SYS_STAT_H]) ++ AC_REQUIRE([gl_SYS_STAT_H]) + AC_REQUIRE([gl_PREREQ_STAT_W32]) + : + ]) +--- a/gnulib/m4/stddef_h.m4 ++++ b/gnulib/m4/stddef_h.m4 +@@ -1,4 +1,4 @@ +-# stddef_h.m4 serial 9 ++# stddef_h.m4 serial 11 + dnl Copyright (C) 2009-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -6,7 +6,7 @@ dnl with or without modifications, as lo + + dnl A placeholder for , for platforms that have issues. + +-AC_DEFUN([gl_STDDEF_H], ++AC_DEFUN_ONCE([gl_STDDEF_H], + [ + AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) + AC_REQUIRE([gt_TYPE_WCHAR_T]) +@@ -68,13 +68,28 @@ AC_DEFUN([gl_STDDEF_H], + fi + ]) + ++# gl_STDDEF_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_STDDEF_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_STDDEF_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_STDDEF_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS], [ ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_STDDEF_H_DEFAULTS], + [ + dnl Assume proper GNU behavior unless another module says otherwise. +--- a/gnulib/m4/stdint.m4 ++++ b/gnulib/m4/stdint.m4 +@@ -1,4 +1,4 @@ +-# stdint.m4 serial 58 ++# stdint.m4 serial 60 + dnl Copyright (C) 2001-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -170,7 +170,7 @@ struct s { + PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) + && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) + ? 1 : -1; +- /* Detect bug in FreeBSD 6.0 / ia64. */ ++ /* Detect bug in FreeBSD 6.0/ia64 and FreeBSD 13.0/arm64. */ + int check_SIG_ATOMIC: + SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) + && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) +@@ -527,7 +527,7 @@ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], + dnl requirement that wint_t is "unchanged by default argument promotions". + dnl In this case gnulib's and override wint_t. + dnl Set the variable BITSIZEOF_WINT_T accordingly. +- if test $GNULIB_OVERRIDES_WINT_T = 1; then ++ if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then + BITSIZEOF_WINT_T=32 + fi + ]) +--- a/gnulib/m4/stdio_h.m4 ++++ b/gnulib/m4/stdio_h.m4 +@@ -1,11 +1,12 @@ +-# stdio_h.m4 serial 52 ++# stdio_h.m4 serial 56 + dnl Copyright (C) 2007-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + +-AC_DEFUN([gl_STDIO_H], ++AC_DEFUN_ONCE([gl_STDIO_H], + [ ++ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AH_VERBATIM([MINGW_ANSI_STDIO], + [/* Use GNU style printf and scanf. */ + #ifndef __USE_MINGW_ANSI_STDIO +@@ -13,7 +14,6 @@ AC_DEFUN([gl_STDIO_H], + #endif + ]) + AC_DEFINE([__USE_MINGW_ANSI_STDIO]) +- AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + gl_NEXT_HEADERS([stdio.h]) + + dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and +@@ -40,17 +40,6 @@ AC_DEFUN([gl_STDIO_H], + attribute "__gnu_printf__" instead of "__printf__"]) + fi + +- dnl No need to create extra modules for these functions. Everyone who uses +- dnl likely needs them. +- GNULIB_FSCANF=1 +- gl_MODULE_INDICATOR([fscanf]) +- GNULIB_SCANF=1 +- gl_MODULE_INDICATOR([scanf]) +- GNULIB_FGETC=1 +- GNULIB_GETC=1 +- GNULIB_GETCHAR=1 +- GNULIB_FGETS=1 +- GNULIB_FREAD=1 + dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" + dnl "expected source file, required through AC_LIBSOURCES, not found". It is + dnl also an optimization, to avoid performing a configure check whose result +@@ -64,18 +53,6 @@ AC_DEFUN([gl_STDIO_H], + fi + ]) + +- dnl No need to create extra modules for these functions. Everyone who uses +- dnl likely needs them. +- GNULIB_FPRINTF=1 +- GNULIB_PRINTF=1 +- GNULIB_VFPRINTF=1 +- GNULIB_VPRINTF=1 +- GNULIB_FPUTC=1 +- GNULIB_PUTC=1 +- GNULIB_PUTCHAR=1 +- GNULIB_FPUTS=1 +- GNULIB_PUTS=1 +- GNULIB_FWRITE=1 + dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" + dnl "expected source file, required through AC_LIBSOURCES, not found". It is + dnl also an optimization, to avoid performing a configure check whose result +@@ -116,77 +93,92 @@ AC_DEFUN([gl_STDIO_H], + fi + ]) + ++# gl_STDIO_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_STDIO_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_STDIO_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_STDIO_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_STDIO_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DPRINTF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCLOSE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDOPEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFLUSH]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETC]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPURGE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTC]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREAD]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREOPEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSCANF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEKO]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELLO]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FWRITE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETC]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCHAR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDELIM]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLINE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PCLOSE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PERROR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POPEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTC]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTCHAR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMOVE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAMEAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SCANF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SNPRINTF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SPRINTF_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_NONBLOCKING]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_SIGPIPE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TMPFILE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VASPRINTF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFSCANF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSCANF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VDPRINTF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSNPRINTF]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSPRINTF_POSIX]) ++ dnl Support Microsoft deprecated alias function names by default. ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCLOSEALL], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FDOPEN], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FILENO], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETW], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTW], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TEMPNAM], [1]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_STDIO_H_DEFAULTS], + [ +- GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF]) +- GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE]) +- GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN]) +- GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) +- GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC]) +- GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS]) +- GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN]) +- GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF]) +- GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX]) +- GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE]) +- GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC]) +- GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS]) +- GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD]) +- GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN]) +- GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF]) +- GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK]) +- GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) +- GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL]) +- GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO]) +- GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE]) +- GNULIB_GETC=0; AC_SUBST([GNULIB_GETC]) +- GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR]) +- GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) +- GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) +- GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) +- GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) +- GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE]) +- GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR]) +- GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN]) +- GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF]) +- GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX]) +- GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC]) +- GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR]) +- GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS]) +- GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE]) +- GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME]) +- GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT]) +- GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF]) +- GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF]) +- GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX]) +- GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING]) +- GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE]) +- GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE]) +- GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) +- GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF]) +- GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF]) +- GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF]) +- GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF]) +- GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX]) +- GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF]) +- GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX]) +- GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF]) +- GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) +- dnl Support Microsoft deprecated alias function names by default. +- GNULIB_MDA_FCLOSEALL=1; AC_SUBST([GNULIB_MDA_FCLOSEALL]) +- GNULIB_MDA_FDOPEN=1; AC_SUBST([GNULIB_MDA_FDOPEN]) +- GNULIB_MDA_FILENO=1; AC_SUBST([GNULIB_MDA_FILENO]) +- GNULIB_MDA_GETW=1; AC_SUBST([GNULIB_MDA_GETW]) +- GNULIB_MDA_PUTW=1; AC_SUBST([GNULIB_MDA_PUTW]) +- GNULIB_MDA_TEMPNAM=1; AC_SUBST([GNULIB_MDA_TEMPNAM]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DECL_FCLOSEALL=1; AC_SUBST([HAVE_DECL_FCLOSEALL]) + HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE]) +--- a/gnulib/m4/stdlib_h.m4 ++++ b/gnulib/m4/stdlib_h.m4 +@@ -1,10 +1,10 @@ +-# stdlib_h.m4 serial 55 ++# stdlib_h.m4 serial 63 + dnl Copyright (C) 2007-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + +-AC_DEFUN([gl_STDLIB_H], ++AC_DEFUN_ONCE([gl_STDLIB_H], + [ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + gl_NEXT_HEADERS([stdlib.h]) +@@ -28,7 +28,7 @@ AC_DEFUN([gl_STDLIB_H], + posix_memalign posix_openpt ptsname ptsname_r qsort_r + random random_r reallocarray realpath rpmatch secure_getenv setenv + setstate setstate_r srandom srandom_r +- strtod strtold strtoll strtoull unlockpt unsetenv]) ++ strtod strtol strtold strtoll strtoul strtoull unlockpt unsetenv]) + + AC_REQUIRE([AC_C_RESTRICT]) + +@@ -46,61 +46,78 @@ AC_DEFUN([gl_STDLIB_H], + fi + ]) + ++# gl_STDLIB_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_STDLIB_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CANONICALIZE_FILE_NAME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREE_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOADAVG]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSUBOPT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GRANTPT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBTOWC]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDTEMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMPS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMPS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_MEMALIGN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_OPENPT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME_R]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTENV]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_QSORT_R]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SECURE_GETENV]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETENV]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOD]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLD]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOULL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYSTEM_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLOCKPT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNSETENV]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOMB]) ++ dnl Support Microsoft deprecated alias function names by default. ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ECVT], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCVT], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GCVT], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKTEMP], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTENV], [1]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_STDLIB_H_DEFAULTS], + [ +- GNULIB__EXIT=0; AC_SUBST([GNULIB__EXIT]) +- GNULIB_ALIGNED_ALLOC=0; AC_SUBST([GNULIB_ALIGNED_ALLOC]) +- GNULIB_ATOLL=0; AC_SUBST([GNULIB_ATOLL]) +- GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX]) +- GNULIB_CANONICALIZE_FILE_NAME=0; AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME]) +- GNULIB_FREE_POSIX=0; AC_SUBST([GNULIB_FREE_POSIX]) +- GNULIB_GETLOADAVG=0; AC_SUBST([GNULIB_GETLOADAVG]) +- GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT]) +- GNULIB_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT]) +- GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX]) +- GNULIB_MBTOWC=0; AC_SUBST([GNULIB_MBTOWC]) +- GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP]) +- GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP]) +- GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS]) +- GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP]) +- GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS]) +- GNULIB_POSIX_MEMALIGN=0;AC_SUBST([GNULIB_POSIX_MEMALIGN]) +- GNULIB_POSIX_OPENPT=0; AC_SUBST([GNULIB_POSIX_OPENPT]) +- GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME]) +- GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R]) +- GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV]) +- GNULIB_QSORT_R=0; AC_SUBST([GNULIB_QSORT_R]) +- GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM]) +- GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R]) +- GNULIB_REALLOCARRAY=0; AC_SUBST([GNULIB_REALLOCARRAY]) +- GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) +- GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH]) +- GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH]) +- GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV]) +- GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV]) +- GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD]) +- GNULIB_STRTOLD=0; AC_SUBST([GNULIB_STRTOLD]) +- GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL]) +- GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL]) +- GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX]) +- GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT]) +- GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV]) +- GNULIB_WCTOMB=0; AC_SUBST([GNULIB_WCTOMB]) +- dnl Support Microsoft deprecated alias function names by default. +- GNULIB_MDA_ECVT=1; AC_SUBST([GNULIB_MDA_ECVT]) +- GNULIB_MDA_FCVT=1; AC_SUBST([GNULIB_MDA_FCVT]) +- GNULIB_MDA_GCVT=1; AC_SUBST([GNULIB_MDA_GCVT]) +- GNULIB_MDA_MKTEMP=1; AC_SUBST([GNULIB_MDA_MKTEMP]) +- GNULIB_MDA_PUTENV=1; AC_SUBST([GNULIB_MDA_PUTENV]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE__EXIT=1; AC_SUBST([HAVE__EXIT]) + HAVE_ALIGNED_ALLOC=1; AC_SUBST([HAVE_ALIGNED_ALLOC]) +@@ -137,8 +154,10 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], + HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE]) + HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE]) + HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) ++ HAVE_STRTOL=1; AC_SUBST([HAVE_STRTOL]) + HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD]) + HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) ++ HAVE_STRTOUL=1; AC_SUBST([HAVE_STRTOUL]) + HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) + HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) + HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) +@@ -160,11 +179,16 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], + REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM]) + REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) + REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) ++ REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY]) + REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) + REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) + REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE]) + REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) ++ REPLACE_STRTOL=0; AC_SUBST([REPLACE_STRTOL]) + REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD]) ++ REPLACE_STRTOLL=0; AC_SUBST([REPLACE_STRTOLL]) ++ REPLACE_STRTOUL=0; AC_SUBST([REPLACE_STRTOUL]) ++ REPLACE_STRTOULL=0; AC_SUBST([REPLACE_STRTOULL]) + REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) + REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) + ]) +--- a/gnulib/m4/stpcpy.m4 ++++ b/gnulib/m4/stpcpy.m4 +@@ -1,4 +1,4 @@ +-# stpcpy.m4 serial 8 ++# stpcpy.m4 serial 9 + dnl Copyright (C) 2002, 2007, 2009-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -12,7 +12,7 @@ AC_DEFUN([gl_FUNC_STPCPY], + dnl The stpcpy() declaration in lib/string.in.h uses 'restrict'. + AC_REQUIRE([AC_C_RESTRICT]) + +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_CHECK_FUNCS([stpcpy]) + if test $ac_cv_func_stpcpy = no; then + HAVE_STPCPY=0 +--- a/gnulib/m4/strcase.m4 ++++ b/gnulib/m4/strcase.m4 +@@ -1,4 +1,4 @@ +-# strcase.m4 serial 11 ++# strcase.m4 serial 12 + dnl Copyright (C) 2002, 2005-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -12,7 +12,7 @@ AC_DEFUN([gl_STRCASE], + + AC_DEFUN([gl_FUNC_STRCASECMP], + [ +- AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRINGS_H_DEFAULTS]) + AC_CHECK_FUNCS([strcasecmp]) + if test $ac_cv_func_strcasecmp = no; then + HAVE_STRCASECMP=0 +@@ -21,7 +21,7 @@ AC_DEFUN([gl_FUNC_STRCASECMP], + + AC_DEFUN([gl_FUNC_STRNCASECMP], + [ +- AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRINGS_H_DEFAULTS]) + AC_CHECK_FUNCS([strncasecmp]) + if test $ac_cv_func_strncasecmp = yes; then + HAVE_STRNCASECMP=1 +--- a/gnulib/m4/strcasestr.m4 ++++ b/gnulib/m4/strcasestr.m4 +@@ -1,4 +1,4 @@ +-# strcasestr.m4 serial 26 ++# strcasestr.m4 serial 27 + dnl Copyright (C) 2005, 2007-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -7,7 +7,7 @@ dnl with or without modifications, as lo + dnl Check that strcasestr is present and works. + AC_DEFUN([gl_FUNC_STRCASESTR_SIMPLE], + [ +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + + dnl Persuade glibc to declare strcasestr(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) +--- a/gnulib/m4/strdup.m4 ++++ b/gnulib/m4/strdup.m4 +@@ -1,4 +1,4 @@ +-# strdup.m4 serial 14 ++# strdup.m4 serial 15 + + dnl Copyright (C) 2002-2021 Free Software Foundation, Inc. + +@@ -8,7 +8,7 @@ dnl with or without modifications, as lo + + AC_DEFUN([gl_FUNC_STRDUP], + [ +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_CHECK_DECLS_ONCE([strdup]) + if test $ac_cv_have_decl_strdup = no; then + HAVE_DECL_STRDUP=0 +@@ -17,7 +17,7 @@ AC_DEFUN([gl_FUNC_STRDUP], + + AC_DEFUN([gl_FUNC_STRDUP_POSIX], + [ +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) + if test $gl_cv_func_malloc_posix != yes; then + REPLACE_STRDUP=1 +--- a/gnulib/m4/strerror.m4 ++++ b/gnulib/m4/strerror.m4 +@@ -1,4 +1,4 @@ +-# strerror.m4 serial 21 ++# strerror.m4 serial 22 + dnl Copyright (C) 2002, 2007-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -6,7 +6,7 @@ dnl with or without modifications, as lo + + AC_DEFUN([gl_FUNC_STRERROR], + [ +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_REQUIRE([gl_HEADER_ERRNO_H]) + AC_REQUIRE([gl_FUNC_STRERROR_0]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles +--- a/gnulib/m4/string_h.m4 ++++ b/gnulib/m4/string_h.m4 +@@ -5,20 +5,15 @@ + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. + +-# serial 29 ++# serial 32 + + # Written by Paul Eggert. + +-AC_DEFUN([gl_HEADER_STRING_H], ++AC_DEFUN_ONCE([gl_STRING_H], + [ +- dnl Use AC_REQUIRE here, so that the default behavior below is expanded +- dnl once only, before all statements that occur in other macros. +- AC_REQUIRE([gl_HEADER_STRING_H_BODY]) +-]) +- +-AC_DEFUN([gl_HEADER_STRING_H_BODY], +-[ +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only, before all statements ++ dnl that occur in other macros. ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + gl_NEXT_HEADERS([string.h]) + + dnl Check for declarations of anything we want to poison if the +@@ -33,62 +28,77 @@ AC_DEFUN([gl_HEADER_STRING_H_BODY], + AC_REQUIRE([AC_C_RESTRICT]) + ]) + ++# gl_STRING_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_STRING_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_STRING_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + +-AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPLICIT_BZERO]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSLL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMCHR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMMEM]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMPCPY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMRCHR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RAWMEMCHR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPCPY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPNCPY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCHRNUL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRDUP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNCAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNDUP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNLEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPBRK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSEP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSTR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCASESTR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOK_R]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSLEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNLEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCHR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRCHR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSTR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASECMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNCASECMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPCASECMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASESTR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCSPN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPBRK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSPN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSEP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSTOK_R]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR_R]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERRORNAME_NP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGABBREV_NP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGDESCR_NP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSIGNAL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRVERSCMP]) ++ dnl Support Microsoft deprecated alias function names by default. ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MEMCCPY], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_STRDUP], [1]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) ++]) ++ ++AC_DEFUN([gl_STRING_H_DEFAULTS], + [ +- GNULIB_EXPLICIT_BZERO=0; AC_SUBST([GNULIB_EXPLICIT_BZERO]) +- GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL]) +- GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL]) +- GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR]) +- GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM]) +- GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY]) +- GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR]) +- GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR]) +- GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY]) +- GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY]) +- GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL]) +- GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP]) +- GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT]) +- GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP]) +- GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN]) +- GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK]) +- GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP]) +- GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR]) +- GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR]) +- GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R]) +- GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN]) +- GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN]) +- GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR]) +- GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR]) +- GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR]) +- GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP]) +- GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP]) +- GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP]) +- GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR]) +- GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN]) +- GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK]) +- GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN]) +- GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP]) +- GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R]) +- GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR]) +- GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R]) +- GNULIB_STRERRORNAME_NP=0; AC_SUBST([GNULIB_STRERRORNAME_NP]) +- GNULIB_SIGABBREV_NP=0; AC_SUBST([GNULIB_SIGABBREV_NP]) +- GNULIB_SIGDESCR_NP=0; AC_SUBST([GNULIB_SIGDESCR_NP]) +- GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL]) +- GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP]) + HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) +- dnl Support Microsoft deprecated alias function names by default. +- GNULIB_MDA_MEMCCPY=1; AC_SUBST([GNULIB_MDA_MEMCCPY]) +- GNULIB_MDA_STRDUP=1; AC_SUBST([GNULIB_MDA_STRDUP]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_EXPLICIT_BZERO=1; AC_SUBST([HAVE_EXPLICIT_BZERO]) + HAVE_FFSL=1; AC_SUBST([HAVE_FFSL]) +--- a/gnulib/m4/strings_h.m4 ++++ b/gnulib/m4/strings_h.m4 +@@ -1,21 +1,16 @@ + # Configure a replacement for . +-# serial 6 ++# serial 9 + + # Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc. + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. + +-AC_DEFUN([gl_HEADER_STRINGS_H], ++AC_DEFUN_ONCE([gl_STRINGS_H], + [ +- dnl Use AC_REQUIRE here, so that the default behavior below is expanded +- dnl once only, before all statements that occur in other macros. +- AC_REQUIRE([gl_HEADER_STRINGS_H_BODY]) +-]) +- +-AC_DEFUN([gl_HEADER_STRINGS_H_BODY], +-[ +- AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only, before all statements ++ dnl that occur in other macros. ++ AC_REQUIRE([gl_STRINGS_H_DEFAULTS]) + + gl_CHECK_NEXT_HEADERS([strings.h]) + if test $ac_cv_header_strings_h = yes; then +@@ -35,16 +30,31 @@ AC_DEFUN([gl_HEADER_STRINGS_H_BODY], + ]], [ffs strcasecmp strncasecmp]) + ]) + ++# gl_STRINGS_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_STRINGS_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_STRINGS_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + ]) + +-AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS], ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_STRINGS_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STRINGS_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFS]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_STRINGS_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_STRINGS_H_DEFAULTS]) ++]) ++ ++AC_DEFUN([gl_STRINGS_H_DEFAULTS], + [ +- GNULIB_FFS=0; AC_SUBST([GNULIB_FFS]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_FFS=1; AC_SUBST([HAVE_FFS]) + HAVE_STRCASECMP=1; AC_SUBST([HAVE_STRCASECMP]) +--- a/gnulib/m4/strndup.m4 ++++ b/gnulib/m4/strndup.m4 +@@ -1,4 +1,4 @@ +-# strndup.m4 serial 22 ++# strndup.m4 serial 23 + dnl Copyright (C) 2002-2003, 2005-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_STRNDUP], + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_CHECK_DECLS_ONCE([strndup]) + AC_CHECK_FUNCS_ONCE([strndup]) + if test $ac_cv_have_decl_strndup = no; then +--- a/gnulib/m4/strnlen.m4 ++++ b/gnulib/m4/strnlen.m4 +@@ -1,4 +1,4 @@ +-# strnlen.m4 serial 13 ++# strnlen.m4 serial 14 + dnl Copyright (C) 2002-2003, 2005-2007, 2009-2021 Free Software Foundation, + dnl Inc. + dnl This file is free software; the Free Software Foundation +@@ -7,7 +7,7 @@ dnl with or without modifications, as lo + + AC_DEFUN([gl_FUNC_STRNLEN], + [ +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + + dnl Persuade glibc to declare strnlen(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) +--- a/gnulib/m4/strstr.m4 ++++ b/gnulib/m4/strstr.m4 +@@ -1,4 +1,4 @@ +-# strstr.m4 serial 22 ++# strstr.m4 serial 23 + dnl Copyright (C) 2008-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -7,7 +7,7 @@ dnl with or without modifications, as lo + dnl Check that strstr works. + AC_DEFUN([gl_FUNC_STRSTR_SIMPLE], + [ +- AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ++ AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_REQUIRE([gl_FUNC_MEMCHR]) + if test $REPLACE_MEMCHR = 1; then + REPLACE_STRSTR=1 +--- a/gnulib/m4/sys_socket_h.m4 ++++ b/gnulib/m4/sys_socket_h.m4 +@@ -1,4 +1,4 @@ +-# sys_socket_h.m4 serial 25 ++# sys_socket_h.m4 serial 28 + dnl Copyright (C) 2005-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -6,7 +6,7 @@ dnl with or without modifications, as lo + + dnl From Simon Josefsson. + +-AC_DEFUN([gl_HEADER_SYS_SOCKET], ++AC_DEFUN_ONCE([gl_SYS_SOCKET_H], + [ + AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) +@@ -156,32 +156,47 @@ AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP], + AC_SUBST([HAVE_WS2TCPIP_H]) + ]) + ++# gl_SYS_SOCKET_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_SYS_SOCKET_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_SYS_SOCKET_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SOCKET]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CONNECT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BIND]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPEERNAME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKNAME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKOPT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LISTEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECV]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SEND]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECVFROM]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SENDTO]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETSOCKOPT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SHUTDOWN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT4]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], + [ +- GNULIB_SOCKET=0; AC_SUBST([GNULIB_SOCKET]) +- GNULIB_CONNECT=0; AC_SUBST([GNULIB_CONNECT]) +- GNULIB_ACCEPT=0; AC_SUBST([GNULIB_ACCEPT]) +- GNULIB_BIND=0; AC_SUBST([GNULIB_BIND]) +- GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME]) +- GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME]) +- GNULIB_GETSOCKOPT=0; AC_SUBST([GNULIB_GETSOCKOPT]) +- GNULIB_LISTEN=0; AC_SUBST([GNULIB_LISTEN]) +- GNULIB_RECV=0; AC_SUBST([GNULIB_RECV]) +- GNULIB_SEND=0; AC_SUBST([GNULIB_SEND]) +- GNULIB_RECVFROM=0; AC_SUBST([GNULIB_RECVFROM]) +- GNULIB_SENDTO=0; AC_SUBST([GNULIB_SENDTO]) +- GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT]) +- GNULIB_SHUTDOWN=0; AC_SUBST([GNULIB_SHUTDOWN]) +- GNULIB_ACCEPT4=0; AC_SUBST([GNULIB_ACCEPT4]) + HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE]) + HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; + AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY]) +--- a/gnulib/m4/sys_stat_h.m4 ++++ b/gnulib/m4/sys_stat_h.m4 +@@ -1,4 +1,4 @@ +-# sys_stat_h.m4 serial 38 -*- Autoconf -*- ++# sys_stat_h.m4 serial 41 -*- Autoconf -*- + dnl Copyright (C) 2006-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -7,7 +7,7 @@ dnl with or without modifications, as lo + dnl From Eric Blake. + dnl Provide a GNU-like . + +-AC_DEFUN([gl_HEADER_SYS_STAT_H], ++AC_DEFUN_ONCE([gl_SYS_STAT_H], + [ + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) + +@@ -52,38 +52,53 @@ AC_DEFUN([gl_HEADER_SYS_STAT_H], + AC_REQUIRE([AC_C_RESTRICT]) + ]) + ++# gl_SYS_STAT_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_SYS_STAT_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_SYS_STAT_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_UNISTD_H_REQUIRE_DEFAULTS dnl for REPLACE_FCHDIR ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHMODAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTATAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FUTIMENS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUMASK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHMOD]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSTAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIRAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFO]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFOAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNOD]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNODAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UTIMENSAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OVERRIDES_STRUCT_STAT]) ++ dnl Support Microsoft deprecated alias function names by default. ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHMOD], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKDIR], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UMASK], [1]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], + [ +- AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR +- GNULIB_FCHMODAT=0; AC_SUBST([GNULIB_FCHMODAT]) +- GNULIB_FSTAT=0; AC_SUBST([GNULIB_FSTAT]) +- GNULIB_FSTATAT=0; AC_SUBST([GNULIB_FSTATAT]) +- GNULIB_FUTIMENS=0; AC_SUBST([GNULIB_FUTIMENS]) +- GNULIB_GETUMASK=0; AC_SUBST([GNULIB_GETUMASK]) +- GNULIB_LCHMOD=0; AC_SUBST([GNULIB_LCHMOD]) +- GNULIB_LSTAT=0; AC_SUBST([GNULIB_LSTAT]) +- GNULIB_MKDIR=0; AC_SUBST([GNULIB_MKDIR]) +- GNULIB_MKDIRAT=0; AC_SUBST([GNULIB_MKDIRAT]) +- GNULIB_MKFIFO=0; AC_SUBST([GNULIB_MKFIFO]) +- GNULIB_MKFIFOAT=0; AC_SUBST([GNULIB_MKFIFOAT]) +- GNULIB_MKNOD=0; AC_SUBST([GNULIB_MKNOD]) +- GNULIB_MKNODAT=0; AC_SUBST([GNULIB_MKNODAT]) +- GNULIB_STAT=0; AC_SUBST([GNULIB_STAT]) +- GNULIB_UTIMENSAT=0; AC_SUBST([GNULIB_UTIMENSAT]) +- GNULIB_OVERRIDES_STRUCT_STAT=0; AC_SUBST([GNULIB_OVERRIDES_STRUCT_STAT]) +- dnl Support Microsoft deprecated alias function names by default. +- GNULIB_MDA_CHMOD=1; AC_SUBST([GNULIB_MDA_CHMOD]) +- GNULIB_MDA_MKDIR=1; AC_SUBST([GNULIB_MDA_MKDIR]) +- GNULIB_MDA_UMASK=1; AC_SUBST([GNULIB_MDA_UMASK]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT]) + HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT]) +--- a/gnulib/m4/sys_types_h.m4 ++++ b/gnulib/m4/sys_types_h.m4 +@@ -1,4 +1,4 @@ +-# sys_types_h.m4 serial 11 ++# sys_types_h.m4 serial 13 + dnl Copyright (C) 2011-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -6,10 +6,11 @@ dnl with or without modifications, as lo + + AC_DEFUN_ONCE([gl_SYS_TYPES_H], + [ ++ AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) ++ + dnl Use sane struct stat types in OpenVMS 8.2 and later. + AC_DEFINE([_USE_STD_STAT], 1, [For standard stat data types on VMS.]) + +- AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) + gl_NEXT_HEADERS([sys/types.h]) + + dnl Ensure the type pid_t gets defined. +@@ -30,6 +31,17 @@ AC_DEFUN_ONCE([gl_SYS_TYPES_H], + AC_SUBST([WINDOWS_STAT_INODES]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_SYS_TYPES_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS], [ ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], + [ + ]) +--- a/gnulib/m4/time_h.m4 ++++ b/gnulib/m4/time_h.m4 +@@ -2,7 +2,7 @@ + + # Copyright (C) 2000-2001, 2003-2007, 2009-2021 Free Software Foundation, Inc. + +-# serial 15 ++# serial 18 + + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -10,16 +10,11 @@ + + # Written by Paul Eggert and Jim Meyering. + +-AC_DEFUN([gl_HEADER_TIME_H], ++AC_DEFUN_ONCE([gl_TIME_H], + [ +- dnl Use AC_REQUIRE here, so that the default behavior below is expanded +- dnl once only, before all statements that occur in other macros. +- AC_REQUIRE([gl_HEADER_TIME_H_BODY]) +-]) +- +-AC_DEFUN([gl_HEADER_TIME_H_BODY], +-[ +- AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only, before all statements ++ dnl that occur in other macros. ++ AC_REQUIRE([gl_TIME_H_DEFAULTS]) + + gl_NEXT_HEADERS([time.h]) + AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) +@@ -111,30 +106,45 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC] + AC_SUBST([UNISTD_H_DEFINES_STRUCT_TIMESPEC]) + ]) + ++# gl_TIME_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_TIME_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_TIME_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + +-AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS], ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_TIME_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CTIME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKTIME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALTIME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NANOSLEEP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRFTIME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPTIME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMEGM]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GET]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_R]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_RZ]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TZSET]) ++ dnl Support Microsoft deprecated alias function names by default. ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TZSET], [1]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_TIME_H_DEFAULTS]) ++]) ++ ++AC_DEFUN([gl_TIME_H_DEFAULTS], + [ +- GNULIB_CTIME=0; AC_SUBST([GNULIB_CTIME]) +- GNULIB_MKTIME=0; AC_SUBST([GNULIB_MKTIME]) +- GNULIB_LOCALTIME=0; AC_SUBST([GNULIB_LOCALTIME]) +- GNULIB_NANOSLEEP=0; AC_SUBST([GNULIB_NANOSLEEP]) +- GNULIB_STRFTIME=0; AC_SUBST([GNULIB_STRFTIME]) +- GNULIB_STRPTIME=0; AC_SUBST([GNULIB_STRPTIME]) +- GNULIB_TIMEGM=0; AC_SUBST([GNULIB_TIMEGM]) +- GNULIB_TIMESPEC_GET=0; AC_SUBST([GNULIB_TIMESPEC_GET]) +- GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R]) +- GNULIB_TIME_RZ=0; AC_SUBST([GNULIB_TIME_RZ]) +- GNULIB_TZSET=0; AC_SUBST([GNULIB_TZSET]) +- dnl Support Microsoft deprecated alias function names by default. +- GNULIB_MDA_TZSET=1; AC_SUBST([GNULIB_MDA_TZSET]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) + HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) +--- a/gnulib/m4/unistd_h.m4 ++++ b/gnulib/m4/unistd_h.m4 +@@ -1,4 +1,4 @@ +-# unistd_h.m4 serial 85 ++# unistd_h.m4 serial 89 + dnl Copyright (C) 2006-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -6,10 +6,10 @@ dnl with or without modifications, as lo + + dnl Written by Simon Josefsson, Bruno Haible. + +-AC_DEFUN([gl_UNISTD_H], ++AC_DEFUN_ONCE([gl_UNISTD_H], + [ +- dnl Use AC_REQUIRE here, so that the default behavior below is expanded +- dnl once only, before all statements that occur in other macros. ++ dnl Ensure to expand the default settings once only, before all statements ++ dnl that occur in other macros. + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + + gl_CHECK_NEXT_HEADERS([unistd.h]) +@@ -59,100 +59,116 @@ AC_DEFUN([gl_UNISTD_H], + fi + ]) + ++# gl_UNISTD_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_UNISTD_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_UNISTD_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCESS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHDIR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHOWN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CLOSE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPY_FILE_RANGE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP2]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP3]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ENVIRON]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EUIDACCESS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECV]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVPE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FACCESSAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHDIR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHOWNAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDATASYNC]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSYNC]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTRUNCATE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCWD]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDOMAINNAME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDTABLESIZE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETENTROPY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETGROUPS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETHOSTNAME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN_R]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETOPT_POSIX]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAGESIZE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUSERSHELL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GROUP_MEMBER]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISATTY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHOWN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINKAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSEEK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE2]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PREAD]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PWRITE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READ]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINKAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RMDIR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETHOSTNAME]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SLEEP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINKAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCATE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TTYNAME_R]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_NONBLOCKING]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_SIGPIPE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINKAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_USLEEP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WRITE]) ++ dnl Support Microsoft deprecated alias function names by default. ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ACCESS], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHDIR], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CLOSE], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP2], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECL], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLE], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLP], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECV], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVE], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVP], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVPE], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETCWD], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETPID], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ISATTY], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LSEEK], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_READ], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_RMDIR], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_SWAB], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UNLINK], [1]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WRITE], [1]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_UNISTD_H_DEFAULTS], + [ +- GNULIB_ACCESS=0; AC_SUBST([GNULIB_ACCESS]) +- GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR]) +- GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) +- GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) +- GNULIB_COPY_FILE_RANGE=0; AC_SUBST([GNULIB_COPY_FILE_RANGE]) +- GNULIB_DUP=0; AC_SUBST([GNULIB_DUP]) +- GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) +- GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) +- GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON]) +- GNULIB_EUIDACCESS=0; AC_SUBST([GNULIB_EUIDACCESS]) +- GNULIB_EXECL=0; AC_SUBST([GNULIB_EXECL]) +- GNULIB_EXECLE=0; AC_SUBST([GNULIB_EXECLE]) +- GNULIB_EXECLP=0; AC_SUBST([GNULIB_EXECLP]) +- GNULIB_EXECV=0; AC_SUBST([GNULIB_EXECV]) +- GNULIB_EXECVE=0; AC_SUBST([GNULIB_EXECVE]) +- GNULIB_EXECVP=0; AC_SUBST([GNULIB_EXECVP]) +- GNULIB_EXECVPE=0; AC_SUBST([GNULIB_EXECVPE]) +- GNULIB_FACCESSAT=0; AC_SUBST([GNULIB_FACCESSAT]) +- GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) +- GNULIB_FCHOWNAT=0; AC_SUBST([GNULIB_FCHOWNAT]) +- GNULIB_FDATASYNC=0; AC_SUBST([GNULIB_FDATASYNC]) +- GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC]) +- GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) +- GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) +- GNULIB_GETDOMAINNAME=0; AC_SUBST([GNULIB_GETDOMAINNAME]) +- GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE]) +- GNULIB_GETENTROPY=0; AC_SUBST([GNULIB_GETENTROPY]) +- GNULIB_GETGROUPS=0; AC_SUBST([GNULIB_GETGROUPS]) +- GNULIB_GETHOSTNAME=0; AC_SUBST([GNULIB_GETHOSTNAME]) +- GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) +- GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) +- GNULIB_GETOPT_POSIX=0; AC_SUBST([GNULIB_GETOPT_POSIX]) +- GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) +- GNULIB_GETPASS=0; AC_SUBST([GNULIB_GETPASS]) +- GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) +- GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) +- GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY]) +- GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) +- GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) +- GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) +- GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) +- GNULIB_PIPE=0; AC_SUBST([GNULIB_PIPE]) +- GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2]) +- GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD]) +- GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE]) +- GNULIB_READ=0; AC_SUBST([GNULIB_READ]) +- GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) +- GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) +- GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) +- GNULIB_SETHOSTNAME=0; AC_SUBST([GNULIB_SETHOSTNAME]) +- GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) +- GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) +- GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) +- GNULIB_TRUNCATE=0; AC_SUBST([GNULIB_TRUNCATE]) +- GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R]) +- GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING]) +- GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) +- GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) +- GNULIB_UNLINKAT=0; AC_SUBST([GNULIB_UNLINKAT]) +- GNULIB_USLEEP=0; AC_SUBST([GNULIB_USLEEP]) +- GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) +- dnl Support Microsoft deprecated alias function names by default. +- GNULIB_MDA_ACCESS=1; AC_SUBST([GNULIB_MDA_ACCESS]) +- GNULIB_MDA_CHDIR=1; AC_SUBST([GNULIB_MDA_CHDIR]) +- GNULIB_MDA_CLOSE=1; AC_SUBST([GNULIB_MDA_CLOSE]) +- GNULIB_MDA_DUP=1; AC_SUBST([GNULIB_MDA_DUP]) +- GNULIB_MDA_DUP2=1; AC_SUBST([GNULIB_MDA_DUP2]) +- GNULIB_MDA_EXECL=1; AC_SUBST([GNULIB_MDA_EXECL]) +- GNULIB_MDA_EXECLE=1; AC_SUBST([GNULIB_MDA_EXECLE]) +- GNULIB_MDA_EXECLP=1; AC_SUBST([GNULIB_MDA_EXECLP]) +- GNULIB_MDA_EXECV=1; AC_SUBST([GNULIB_MDA_EXECV]) +- GNULIB_MDA_EXECVE=1; AC_SUBST([GNULIB_MDA_EXECVE]) +- GNULIB_MDA_EXECVP=1; AC_SUBST([GNULIB_MDA_EXECVP]) +- GNULIB_MDA_EXECVPE=1; AC_SUBST([GNULIB_MDA_EXECVPE]) +- GNULIB_MDA_GETCWD=1; AC_SUBST([GNULIB_MDA_GETCWD]) +- GNULIB_MDA_GETPID=1; AC_SUBST([GNULIB_MDA_GETPID]) +- GNULIB_MDA_ISATTY=1; AC_SUBST([GNULIB_MDA_ISATTY]) +- GNULIB_MDA_LSEEK=1; AC_SUBST([GNULIB_MDA_LSEEK]) +- GNULIB_MDA_READ=1; AC_SUBST([GNULIB_MDA_READ]) +- GNULIB_MDA_RMDIR=1; AC_SUBST([GNULIB_MDA_RMDIR]) +- GNULIB_MDA_SWAB=1; AC_SUBST([GNULIB_MDA_SWAB]) +- GNULIB_MDA_UNLINK=1; AC_SUBST([GNULIB_MDA_UNLINK]) +- GNULIB_MDA_WRITE=1; AC_SUBST([GNULIB_MDA_WRITE]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) + HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE]) +--- a/gnulib/m4/visibility.m4 ++++ b/gnulib/m4/visibility.m4 +@@ -1,4 +1,4 @@ +-# visibility.m4 serial 7 ++# visibility.m4 serial 8 + dnl Copyright (C) 2005, 2008, 2010-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -59,6 +59,10 @@ AC_DEFUN([gl_VISIBILITY], + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void); ++ int hiddenvar; ++ int exportedvar; ++ int hiddenfunc (void) { return 51; } ++ int exportedfunc (void) { return 1225736919; } + void dummyfunc (void) {} + ]], + [[]])], +--- a/gnulib/m4/wchar_h.m4 ++++ b/gnulib/m4/wchar_h.m4 +@@ -7,9 +7,9 @@ dnl with or without modifications, as lo + + dnl Written by Eric Blake. + +-# wchar_h.m4 serial 50 ++# wchar_h.m4 serial 53 + +-AC_DEFUN([gl_WCHAR_H], ++AC_DEFUN_ONCE([gl_WCHAR_H], + [ + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) +@@ -125,60 +125,75 @@ Configuration aborted.]) + fi + ]) + ++# gl_WCHAR_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_WCHAR_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_WCHAR_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BTOWC]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOB]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSINIT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRTOWC]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRLEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRTOWCS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNRTOWCS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCRTOMB]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSRTOMBS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNRTOMBS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCWIDTH]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCHR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCPY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMMOVE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMPCPY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMSET]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSLEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNLEN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCPY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCPCPY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCPY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCPNCPY]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCAT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCASECMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCASECMP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCOLL]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSXFRM]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSDUP]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCHR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSRCHR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCSPN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSSPN]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSPBRK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSSTR]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSTOK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSWIDTH]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSFTIME]) ++ dnl Support Microsoft deprecated alias function names by default. ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WCSDUP], [1]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_WCHAR_H_DEFAULTS], + [ +- GNULIB_BTOWC=0; AC_SUBST([GNULIB_BTOWC]) +- GNULIB_WCTOB=0; AC_SUBST([GNULIB_WCTOB]) +- GNULIB_MBSINIT=0; AC_SUBST([GNULIB_MBSINIT]) +- GNULIB_MBRTOWC=0; AC_SUBST([GNULIB_MBRTOWC]) +- GNULIB_MBRLEN=0; AC_SUBST([GNULIB_MBRLEN]) +- GNULIB_MBSRTOWCS=0; AC_SUBST([GNULIB_MBSRTOWCS]) +- GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS]) +- GNULIB_WCRTOMB=0; AC_SUBST([GNULIB_WCRTOMB]) +- GNULIB_WCSRTOMBS=0; AC_SUBST([GNULIB_WCSRTOMBS]) +- GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS]) +- GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH]) +- GNULIB_WMEMCHR=0; AC_SUBST([GNULIB_WMEMCHR]) +- GNULIB_WMEMCMP=0; AC_SUBST([GNULIB_WMEMCMP]) +- GNULIB_WMEMCPY=0; AC_SUBST([GNULIB_WMEMCPY]) +- GNULIB_WMEMMOVE=0; AC_SUBST([GNULIB_WMEMMOVE]) +- GNULIB_WMEMPCPY=0; AC_SUBST([GNULIB_WMEMPCPY]) +- GNULIB_WMEMSET=0; AC_SUBST([GNULIB_WMEMSET]) +- GNULIB_WCSLEN=0; AC_SUBST([GNULIB_WCSLEN]) +- GNULIB_WCSNLEN=0; AC_SUBST([GNULIB_WCSNLEN]) +- GNULIB_WCSCPY=0; AC_SUBST([GNULIB_WCSCPY]) +- GNULIB_WCPCPY=0; AC_SUBST([GNULIB_WCPCPY]) +- GNULIB_WCSNCPY=0; AC_SUBST([GNULIB_WCSNCPY]) +- GNULIB_WCPNCPY=0; AC_SUBST([GNULIB_WCPNCPY]) +- GNULIB_WCSCAT=0; AC_SUBST([GNULIB_WCSCAT]) +- GNULIB_WCSNCAT=0; AC_SUBST([GNULIB_WCSNCAT]) +- GNULIB_WCSCMP=0; AC_SUBST([GNULIB_WCSCMP]) +- GNULIB_WCSNCMP=0; AC_SUBST([GNULIB_WCSNCMP]) +- GNULIB_WCSCASECMP=0; AC_SUBST([GNULIB_WCSCASECMP]) +- GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP]) +- GNULIB_WCSCOLL=0; AC_SUBST([GNULIB_WCSCOLL]) +- GNULIB_WCSXFRM=0; AC_SUBST([GNULIB_WCSXFRM]) +- GNULIB_WCSDUP=0; AC_SUBST([GNULIB_WCSDUP]) +- GNULIB_WCSCHR=0; AC_SUBST([GNULIB_WCSCHR]) +- GNULIB_WCSRCHR=0; AC_SUBST([GNULIB_WCSRCHR]) +- GNULIB_WCSCSPN=0; AC_SUBST([GNULIB_WCSCSPN]) +- GNULIB_WCSSPN=0; AC_SUBST([GNULIB_WCSSPN]) +- GNULIB_WCSPBRK=0; AC_SUBST([GNULIB_WCSPBRK]) +- GNULIB_WCSSTR=0; AC_SUBST([GNULIB_WCSSTR]) +- GNULIB_WCSTOK=0; AC_SUBST([GNULIB_WCSTOK]) +- GNULIB_WCSWIDTH=0; AC_SUBST([GNULIB_WCSWIDTH]) +- GNULIB_WCSFTIME=0; AC_SUBST([GNULIB_WCSFTIME]) +- dnl Support Microsoft deprecated alias function names by default. +- GNULIB_MDA_WCSDUP=1; AC_SUBST([GNULIB_MDA_WCSDUP]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) + HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) +--- a/gnulib/m4/wctype_h.m4 ++++ b/gnulib/m4/wctype_h.m4 +@@ -1,4 +1,4 @@ +-# wctype_h.m4 serial 26 ++# wctype_h.m4 serial 30 + + dnl A placeholder for ISO C99 , for platforms that lack it. + +@@ -9,7 +9,7 @@ dnl with or without modifications, as lo + + dnl Written by Paul Eggert. + +-AC_DEFUN([gl_WCTYPE_H], ++AC_DEFUN_ONCE([gl_WCTYPE_H], + [ + AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) + AC_REQUIRE([AC_PROG_CC]) +@@ -62,7 +62,7 @@ AC_DEFUN([gl_WCTYPE_H], + fi + AC_SUBST([HAVE_WCTYPE_H]) + +- if test $GNULIB_OVERRIDES_WINT_T = 1; then ++ if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then + REPLACE_ISWCNTRL=1 + else + case "$gl_cv_func_iswcntrl_works" in +@@ -157,24 +157,39 @@ AC_DEFUN([gl_WCTYPE_H], + ]) + ]) + ++# gl_WCTYPE_MODULE_INDICATOR([modulename]) ++# sets the shell variable that indicates the presence of the given module ++# to a C preprocessor expression that will evaluate to 1. ++# This macro invocation must not occur in macros that are AC_REQUIREd. + AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR], + [ +- dnl Use AC_REQUIRE here, so that the default settings are expanded once only. +- AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) ++ dnl Ensure to expand the default settings once only. ++ gl_WCTYPE_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + ++# Initializes the default values for AC_SUBSTed shell variables. ++# This macro must not be AC_REQUIREd. It must only be invoked, and only ++# outside of macros or in macros that are not AC_REQUIREd. ++AC_DEFUN([gl_WCTYPE_H_REQUIRE_DEFAULTS], ++[ ++ m4_defun(GL_MODULE_INDICATOR_PREFIX[_WCTYPE_H_MODULE_INDICATOR_DEFAULTS], [ ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWBLANK]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWDIGIT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWXDIGIT]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTYPE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWCTYPE]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTRANS]) ++ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOWCTRANS]) ++ ]) ++ m4_require(GL_MODULE_INDICATOR_PREFIX[_WCTYPE_H_MODULE_INDICATOR_DEFAULTS]) ++ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) ++]) ++ + AC_DEFUN([gl_WCTYPE_H_DEFAULTS], + [ +- GNULIB_ISWBLANK=0; AC_SUBST([GNULIB_ISWBLANK]) +- GNULIB_ISWDIGIT=0; AC_SUBST([GNULIB_ISWDIGIT]) +- GNULIB_ISWXDIGIT=0; AC_SUBST([GNULIB_ISWXDIGIT]) +- GNULIB_WCTYPE=0; AC_SUBST([GNULIB_WCTYPE]) +- GNULIB_ISWCTYPE=0; AC_SUBST([GNULIB_ISWCTYPE]) +- GNULIB_WCTRANS=0; AC_SUBST([GNULIB_WCTRANS]) +- GNULIB_TOWCTRANS=0; AC_SUBST([GNULIB_TOWCTRANS]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_ISWBLANK=1; AC_SUBST([HAVE_ISWBLANK]) + HAVE_WCTYPE_T=1; AC_SUBST([HAVE_WCTYPE_T]) +--- a/gnulib/m4/wint_t.m4 ++++ b/gnulib/m4/wint_t.m4 +@@ -1,4 +1,4 @@ +-# wint_t.m4 serial 10 ++# wint_t.m4 serial 11 + dnl Copyright (C) 2003, 2007-2021 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -34,14 +34,14 @@ AC_DEFUN([gt_TYPE_WINT_T], + [gl_cv_type_wint_t_large_enough=yes], + [gl_cv_type_wint_t_large_enough=no])]) + if test $gl_cv_type_wint_t_large_enough = no; then +- GNULIB_OVERRIDES_WINT_T=1 ++ GNULIBHEADERS_OVERRIDE_WINT_T=1 + else +- GNULIB_OVERRIDES_WINT_T=0 ++ GNULIBHEADERS_OVERRIDE_WINT_T=0 + fi + else +- GNULIB_OVERRIDES_WINT_T=0 ++ GNULIBHEADERS_OVERRIDE_WINT_T=0 + fi +- AC_SUBST([GNULIB_OVERRIDES_WINT_T]) ++ AC_SUBST([GNULIBHEADERS_OVERRIDE_WINT_T]) + ]) + + dnl Prerequisites of the 'wint_t' override. +--- /dev/null ++++ b/gnulib/m4/year2038.m4 +@@ -0,0 +1,112 @@ ++# year2038.m4 serial 5 ++dnl Copyright (C) 2017-2021 Free Software Foundation, Inc. ++dnl This file is free software; the Free Software Foundation ++dnl gives unlimited permission to copy and/or distribute it, ++dnl with or without modifications, as long as this notice is preserved. ++ ++dnl Attempt to ensure that 'time_t' is a 64-bit type ++dnl and that the functions time(), stat(), etc. return 64-bit times. ++ ++AC_DEFUN([gl_YEAR2038_EARLY], ++[ ++ AC_REQUIRE([AC_CANONICAL_HOST]) ++ case "$host_os" in ++ mingw*) ++ AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1], ++ [For 64-bit time_t on 32-bit mingw.]) ++ ;; ++ esac ++]) ++ ++# gl_YEAR2038_TEST_INCLUDES ++# ------------------------- ++AC_DEFUN([gl_YEAR2038_TEST_INCLUDES], ++[[ ++ #include ++ /* Check that time_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_TIME_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++ #define LARGE_TIME_T (((time_t) 1 << 31 << 31) - 1 + ((time_t) 1 << 31 << 31)) ++ int verify_time_t_range[(LARGE_TIME_T % 2147483629 == 721 ++ && LARGE_TIME_T % 2147483647 == 1) ++ ? 1 : -1]; ++]]) ++ ++# gl_YEAR2038_BODY(REQUIRE-64-BIT) ++---------------------------------- ++AC_DEFUN([gl_YEAR2038_BODY], ++[ ++ AC_ARG_ENABLE([year2038], ++ [ --disable-year2038 omit support for timestamps past the year 2038]) ++ AS_IF([test "$enable_year2038" != no], ++ [ ++ dnl On many systems, time_t is already a 64-bit type. ++ dnl On those systems where time_t is still 32-bit, it requires kernel ++ dnl and libc support to make it 64-bit. For glibc 2.34 and later on Linux, ++ dnl defining _TIME_BITS=64 and _FILE_OFFSET_BITS=64 is needed on x86 and ARM. ++ dnl ++ dnl On native Windows, the system include files define types __time32_t ++ dnl and __time64_t. By default, time_t is an alias of ++ dnl - __time32_t on 32-bit mingw, ++ dnl - __time64_t on 64-bit mingw and on MSVC (since MSVC 8). ++ dnl But when compiling with -D__MINGW_USE_VC2005_COMPAT, time_t is an ++ dnl alias of __time64_t. ++ dnl And when compiling with -D_USE_32BIT_TIME_T, time_t is an alias of ++ dnl __time32_t. ++ AC_CACHE_CHECK([for 64-bit time_t], [gl_cv_type_time_t_64], ++ [AC_COMPILE_IFELSE( ++ [AC_LANG_SOURCE([gl_YEAR2038_TEST_INCLUDES])], ++ [gl_cv_type_time_t_64=yes], [gl_cv_type_time_t_64=no]) ++ ]) ++ if test "$gl_cv_type_time_t_64" = no; then ++ AC_CACHE_CHECK([for 64-bit time_t with _TIME_BITS=64], ++ [gl_cv_type_time_t_bits_macro], ++ [AC_COMPILE_IFELSE( ++ [AC_LANG_SOURCE([[#define _TIME_BITS 64 ++ #define _FILE_OFFSET_BITS 64 ++ ]gl_YEAR2038_TEST_INCLUDES])], ++ [gl_cv_type_time_t_bits_macro=yes], ++ [gl_cv_type_time_t_bits_macro=no]) ++ ]) ++ if test "$gl_cv_type_time_t_bits_macro" = yes; then ++ AC_DEFINE([_TIME_BITS], [64], ++ [Number of bits in a timestamp, on hosts where this is settable.]) ++ dnl AC_SYS_LARGFILE also defines this; it's OK if we do too. ++ AC_DEFINE([_FILE_OFFSET_BITS], [64], ++ [Number of bits in a file offset, on hosts where this is settable.]) ++ gl_cv_type_time_t_64=yes ++ fi ++ fi ++ if test $gl_cv_type_time_t_64 = no; then ++ AC_COMPILE_IFELSE( ++ [AC_LANG_SOURCE( ++ [[#ifdef _USE_32BIT_TIME_T ++ int ok; ++ #else ++ error fail ++ #endif ++ ]])], ++ [AC_MSG_FAILURE([This package requires a 64-bit 'time_t' type. Remove _USE_32BIT_TIME_T from the compiler flags.])], ++ [# If not cross-compiling and $1 says we should check, ++ # and 'touch' works with a large timestamp, then evidently 64-bit time_t ++ # is desired and supported, so fail and ask the builder to fix the ++ # problem. Otherwise, just warn the builder. ++ m4_ifval([$1], ++ [if test $cross_compiling = no \ ++ && TZ=UTC0 touch -t 210602070628.16 conftest.time 2>/dev/null; then ++ rm -f conftest.time ++ AC_MSG_FAILURE([This package requires a 64-bit 'time_t' type, which your system appears to support. You might try configuring with 'CPPFLAGS="-m64" LDFLAGS="-m64"'. To build with a 32-bit time_t anyway (not recommended), configure with '--disable-year2038'.]) ++ fi]) ++ if test "$gl_warned_about_64_bit_time_t" != yes; then ++ AC_MSG_WARN([This package requires a 64-bit 'time_t' type if there is any way to access timestamps outside the year range 1901-2038 on your platform. Perhaps you should configure with 'CPPFLAGS="-m64" LDFLAGS="-m64"'?]) ++ gl_warned_about_64_bit_time_t=yes ++ fi ++ ]) ++ fi]) ++]) ++ ++AC_DEFUN([gl_YEAR2038], ++[ ++ gl_YEAR2038_BODY([require-64-bit]) ++]) diff --git a/meta/recipes-extended/texinfo/texinfo_6.8.bb b/meta/recipes-extended/texinfo/texinfo_6.8.bb index e5046ffbe1..69af7cf21d 100644 --- a/meta/recipes-extended/texinfo/texinfo_6.8.bb +++ b/meta/recipes-extended/texinfo/texinfo_6.8.bb @@ -29,6 +29,7 @@ TARGET_PATCH = "file://use_host_makedoc.patch" TARGET_PATCH_class-native = "" SRC_URI = "${GNU_MIRROR}/texinfo/${BP}.tar.gz \ + file://0001-gnulib-Update.patch \ file://disable-native-tools.patch \ file://link-zip.patch \ file://dont-depend-on-help2man.patch \ -- cgit 1.2.3-korg