All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] glibc: Remove obsolete --enable-stackguard-randomization
@ 2021-07-22 19:31 Khem Raj
  2021-07-22 19:31 ` [PATCH] texinfo: Update gnulib to fix build with glibc 2.34 Khem Raj
  0 siblings, 1 reply; 2+ messages in thread
From: Khem Raj @ 2021-07-22 19:31 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

this has been removed in 2.34 onwards

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-core/glibc/glibc_2.34.bb | 1 -
 1 file changed, 1 deletion(-)

diff --git a/meta/recipes-core/glibc/glibc_2.34.bb b/meta/recipes-core/glibc/glibc_2.34.bb
index b396cd1d59..c713faaff2 100644
--- a/meta/recipes-core/glibc/glibc_2.34.bb
+++ b/meta/recipes-core/glibc/glibc_2.34.bb
@@ -80,7 +80,6 @@ EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
                 --enable-tunables \
                 --enable-bind-now \
                 --enable-stack-protector=strong \
-                --enable-stackguard-randomization \
                 --disable-crypt \
                 --with-default-link \
                 ${@bb.utils.contains_any('SELECTED_OPTIMIZATION', '-O0 -Og', '--disable-werror', '', d)} \
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH] texinfo: Update gnulib to fix build with glibc 2.34
  2021-07-22 19:31 [PATCH] glibc: Remove obsolete --enable-stackguard-randomization Khem Raj
@ 2021-07-22 19:31 ` Khem Raj
  0 siblings, 0 replies; 2+ messages in thread
From: Khem Raj @ 2021-07-22 19:31 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../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

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 <raj.khem@gmail.com>
+Date: Wed, 7 Jul 2021 13:42:35 -0700
+Subject: [PATCH] gnulib: Update
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ 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|<malloc/dynarray\.h>|<malloc/dynarray.gl.h>|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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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
+-   <https://www.gnu.org/licenses/>.
+-  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* _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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++
++/* written by Jim Meyering and Bruno Haible */
++
++#include <config.h>
++
++/* Specification.  */
++#include <stdlib.h>
++
++#include <errno.h>
++
++#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
+    <https://www.gnu.org/licenses/>.  */
+ 
+@@ -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 <bits/wordsize.h>
+ # include <bits/long-double.h>
+ #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 <https://www.gnu.org/licenses/>.
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+-   The code is taken from glibc/manual/llio.texi  */
++/* The code is taken from glibc/manual/llio.texi  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.
+-
+-*/
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <stdbool.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <libc-config.h>
++# 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 <malloc/dynarray.h>
++# include <malloc/dynarray.gl.h>
+ 
+ /* Define the instantiation, specified through
+      DYNARRAY_STRUCT
+      DYNARRAY_ELEMENT
+      DYNARRAY_PREFIX
+    etc.  */
+-# include <malloc/dynarray-skeleton.c>
++# include <malloc/dynarray-skeleton.gl.h>
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by David MacKenzie <djm@gnu.ai.mit.edu>.  */
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Eric Blake <ebb9@byu.net>.  */
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ 
+--- 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++
++/* written by Paul Eggert */
++
++#include <config.h>
++
++/* Specification.  */
++#include <stdlib.h>
++
++/* A function definition is only needed if HAVE_FREE_POSIX is not defined.  */
++#if !HAVE_FREE_POSIX
++
++# include <errno.h>
++
++void
++rpl_free (void *p)
++# undef free
++{
++# if defined __GNUC__ && !defined __clang__
++  /* An invalid GCC optimization
++     <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98396>
++     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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* If the user's config.h happens to include <sys/stat.h>, 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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
+-   <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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
+-   <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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
+-   <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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
+    <https://www.gnu.org/licenses/>.  */
+ \f
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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
+    <https://www.gnu.org/licenses/>.  */
+ \f
+--- 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+@@ -43,7 +43,7 @@
+ # include <string.h>
+ #endif
+ 
+-#ifdef __sgi
++#if defined __sgi || defined __osf__
+ # include <string.h>
+ # include <unistd.h>
+ # include <stdio.h>
+@@ -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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++
++#include <config.h>
++
++#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 <https://www.gnu.org/licenses/>.  */
++
++#ifndef IALLOC_H_
++#define IALLOC_H_
++
++#include "idx.h"
++
++#include <errno.h>
++#include <stdint.h>
++#include <stdlib.h>
++
++#ifndef _GL_INLINE_HEADER_BEGIN
++ #error "Please include config.h first."
++#endif
++_GL_INLINE_HEADER_BEGIN
++#ifndef IALLOC_INLINE
++# define IALLOC_INLINE _GL_INLINE
++#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
++   <https://www.gnu.org/licenses/>.  */
++
++#ifndef _IDX_H
++#define _IDX_H
++
++/* Get ptrdiff_t.  */
++#include <stddef.h>
++
++/* Get PTRDIFF_MAX.  */
++#include <stdint.h>
++
++/* 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
++   <https://clang.llvm.org/docs/LanguageExtensions.html#extended-integer-types>,
++   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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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_<op>_WRAPV, INT_<op>_OK, and
+    INT_<op>_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 <https://www.gnu.org/licenses/>.  */
+ 
+ /*
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/langinfo.in.h
++++ b/gnulib/lib/langinfo.in.h
+@@ -1,18 +1,18 @@
+ /* Substitute for and wrapper around <langinfo.h>.
+    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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /*
+  * POSIX <langinfo.h> 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+@@ -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 <config.h> 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 <config.h>
+ 
+@@ -71,7 +74,7 @@
+ # endif
+ #endif
+ 
+-#ifndef __attribute_maybe_unused__
++#ifndef __attribute_nonnull__
+ /* <sys/cdefs.h> either does not exist, or is too old for Gnulib.
+    Prepare to include <cdefs.h>, which is Gnulib's version of a
+    more-recent glibc <sys/cdefs.h>.  */
+@@ -80,13 +83,9 @@
+ # ifndef _FEATURES_H
+ #  define _FEATURES_H 1
+ # endif
+-/* Define __WORDSIZE so that <cdefs.h> 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 <cdefs.h> does not attempt to include
++   nonexistent files.  */
++# define __GNULIB_CDEFS
+ /* Undef the macros unconditionally defined by our copy of glibc
+    <sys/cdefs.h>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _LOCALCHARSET_H
+ #define _LOCALCHARSET_H
+--- a/gnulib/lib/locale.in.h
++++ b/gnulib/lib/locale.in.h
+@@ -1,17 +1,17 @@
+ /* A POSIX <locale.h>.
+    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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* written by Jim Meyering and Bruno Haible */
+ 
+ #define _GL_USE_STDLIB_ALLOC 1
+ #include <config.h>
+-/* 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 <stdlib.h>
+ 
+-/* 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 <errno.h>
+ 
+-# include <errno.h>
++#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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #define _GL_USE_STDLIB_ALLOC 1
+ #include <config.h>
+@@ -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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+--- 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 <https://www.gnu.org/licenses/>.  */
++
+ #include <config.h>
++
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/mbscasecmp.c
++++ b/gnulib/lib/mbscasecmp.c
+@@ -3,17 +3,17 @@
+    Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/mbsncasecmp.c
++++ b/gnulib/lib/mbsncasecmp.c
+@@ -3,17 +3,17 @@
+    Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
++
+ #include <config.h>
++
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _LIBC
+ # include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.
+ 
+ # 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++
++#ifndef _MINMAX_H
++#define _MINMAX_H
++
++/* Note: MIN, MAX are also defined in <sys/param.h> 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 <limits.h> file
++   since otherwise we get redefinitions on some systems if <limits.h> is
++   included after this file.  Likewise for <sys/param.h>.
++   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 <limits.h>
++#elif HAVE_MINMAX_IN_SYS_PARAM_H
++# include <sys/param.h>
++#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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* This file 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* This file can be parametrized with the following macros:
+      CHAR_T             The element type of the format string.
+@@ -48,16 +48,7 @@
+ #include <stddef.h>
+ 
+ /* Get intmax_t.  */
+-#if defined IN_LIBINTL || defined IN_LIBASPRINTF
+-# if HAVE_STDINT_H_WITH_UINTMAX
+-#  include <stdint.h>
+-# endif
+-# if HAVE_INTTYPES_H_WITH_UINTMAX
+-#  include <inttypes.h>
+-# endif
+-#else
+-# include <stdint.h>
+-#endif
++#include <stdint.h>
+ 
+ /* malloc(), realloc(), free().  */
+ #include <stdlib.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++
++/* written by Jim Meyering and Bruno Haible */
++
++#include <config.h>
++
++#include <stdlib.h>
++
++#include <errno.h>
++
++#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 <https://www.gnu.org/licenses/>.  */
++
++/* written by Darshit Shah */
++
++#include <config.h>
++
++#include <stdlib.h>
++#include <errno.h>
++
++#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 <isamu@yamato.ibm.com>.
+ 
+    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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/regex.c
++++ b/gnulib/lib/regex.c
+@@ -4,16 +4,16 @@
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+ 
+    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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- 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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/regex_internal.c
++++ b/gnulib/lib/regex_internal.c
+@@ -4,16 +4,16 @@
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+ 
+    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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/regex_internal.h
++++ b/gnulib/lib/regex_internal.h
+@@ -4,16 +4,16 @@
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+ 
+    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
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/regexec.c
++++ b/gnulib/lib/regexec.c
+@@ -4,16 +4,16 @@
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+ 
+    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
+    <https://www.gnu.org/licenses/>.  */
+ 
+@@ -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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++
+ #include <config.h>
++
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <stdarg.h>.
+    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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <haible@clisp.cons.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /*
+  * ISO C 99 <stdint.h> for platforms that lack it.
+@@ -85,7 +85,7 @@
+ 
+ /* Override WINT_MIN and WINT_MAX if gnulib's <wchar.h> or <wctype.h> 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 <wchar.h> or <wctype.h> 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <ebb9@byu.net>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Before including this file, you need to include <config.h> and
+    <string.h>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _LIBC
+ # include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <errno.h> */
++# if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
+     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 <errno.h> */
++# endif
++# if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
+     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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* This 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <unistd.h>.
++
++   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 <https://www.gnu.org/licenses/>.  */
++
+ #include <config.h>
++
+ #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 <unistd.h>.
+    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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* This file can be parametrized with the following macros:
+      VASNPRINTF         The name of the function being defined.
+@@ -60,9 +60,7 @@
+ #ifndef VASNPRINTF
+ # include <config.h>
+ #endif
+-#ifndef IN_LIBINTL
+-# include <alloca.h>
+-#endif
++#include <alloca.h>
+ 
+ /* 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <https://www.gnu.org/licenses/>.  */
+ 
+ /* _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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Eric Blake.  */
+ 
+@@ -111,7 +111,7 @@
+ /* mingw and MSVC define wint_t as 'unsigned short' in <crtdefs.h> or
+    <stddef.h>.  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 <crtdefs.h>
+--- 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 <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/wctype-h.c
++++ b/gnulib/lib/wctype-h.c
+@@ -1,4 +1,23 @@
++/* Inline functions for <wctype.h>.
++
++   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 <https://www.gnu.org/licenses/>.  */
++
+ /* Normally this would be wctype.c, but that name's already taken.  */
++
+ #include <config.h>
++
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* 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 <crtdefs.h> or
+    <stddef.h>.  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 <crtdefs.h>
+@@ -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 <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 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 <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef XALLOC_OVERSIZED_H_
+@@ -21,34 +21,39 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
+-/* 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 <stddef.h>
+ #include <stdint.h>
+ 
+-#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 <typename T> 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 <typename T> inline T *
+ xnrealloc (T *p, size_t n, size_t s)
+ {
+-  return (T *) xnrealloc ((void *) p, n, s);
++  return xreallocarray (p, n, s);
+ }
+ 
+ template <typename T> 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 <stdlib.h>
+ #include <string.h>
+ 
+-/* 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 <https://www.gnu.org/licenses/>.  */
++
+ #include <config.h>
++
+ #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 <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #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   <https://sourceware.org/bugzilla/show_bug.cgi?id=17924>
++  dnl * OpenBSD >= 4.5, thanks to this commit:
++  dnl   <https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdlib/malloc.c.diff?r1=1.100&r2=1.101&f=h>
++  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 <stdlib.h>
++          ]],
++          [[#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 <stdio.h> 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 <stdio.h> 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 <inttypes.h> 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 <locale.h> 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 <stdlib.h>
+           ]],
+-          [[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 <stdint.h>
++          ]],
++          [[/* 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 <errno.h>
++#include <stdio.h>
++#include <stdlib.h>
++#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 <string.h> 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 <stdlib.h>
++          ]],
++          [[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 <stdlib.h> 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 <stddef.h>, 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 <wchar.h> and <wctype.h> 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 <stdio.h> 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 <stdio.h> 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 <string.h> 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 <strings.h>.
+-# 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 <string.h> 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 <sys/stat.h>.
+ 
+-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 <wctype.h>, 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 <time.h>
++  /* 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 \
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-22 19:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-22 19:31 [PATCH] glibc: Remove obsolete --enable-stackguard-randomization Khem Raj
2021-07-22 19:31 ` [PATCH] texinfo: Update gnulib to fix build with glibc 2.34 Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.