texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: * tp/Texinfo/XS: run "gnulib-tool --remove-import


From: Gavin D. Smith
Subject: branch master updated: * tp/Texinfo/XS: run "gnulib-tool --remove-import copy-file". run "gnulib-tool --import gettext-h" as module appears to be necessary and is removed otherwise.
Date: Thu, 14 Nov 2024 12:40:33 -0500

This is an automated email from the git hooks/post-receive script.

gavin pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 0b3498f97d * tp/Texinfo/XS: run "gnulib-tool --remove-import 
copy-file". run "gnulib-tool --import gettext-h" as module appears to be 
necessary and is removed otherwise.
0b3498f97d is described below

commit 0b3498f97d87fa22c92606523461d85f0bb2cdfa
Author: Gavin Smith <gavinsmith0123@gmail.com>
AuthorDate: Thu Nov 14 17:40:25 2024 +0000

    * tp/Texinfo/XS: run "gnulib-tool --remove-import copy-file".
    run "gnulib-tool --import gettext-h" as module appears to be
    necessary and is removed otherwise.
---
 ChangeLog                                          |    6 +
 tp/Texinfo/XS/gnulib/lib/Makefile.am               |  537 +--------
 tp/Texinfo/XS/gnulib/lib/acl-errno-valid.c         |   52 -
 tp/Texinfo/XS/gnulib/lib/acl-internal.c            |  574 ----------
 tp/Texinfo/XS/gnulib/lib/acl-internal.h            |  300 -----
 tp/Texinfo/XS/gnulib/lib/acl.h                     |  114 --
 tp/Texinfo/XS/gnulib/lib/acl_entries.c             |   75 --
 tp/Texinfo/XS/gnulib/lib/basename-lgpl.c           |   70 --
 tp/Texinfo/XS/gnulib/lib/basename-lgpl.h           |   83 --
 tp/Texinfo/XS/gnulib/lib/binary-io.c               |   39 -
 tp/Texinfo/XS/gnulib/lib/binary-io.h               |   89 --
 tp/Texinfo/XS/gnulib/lib/c-ctype.c                 |   21 -
 tp/Texinfo/XS/gnulib/lib/c-ctype.h                 |  366 ------
 tp/Texinfo/XS/gnulib/lib/c-strcase.h               |   61 -
 tp/Texinfo/XS/gnulib/lib/c-strcasecmp.c            |   56 -
 tp/Texinfo/XS/gnulib/lib/c-strcaseeq.h             |  191 ----
 tp/Texinfo/XS/gnulib/lib/c-strncasecmp.c           |   56 -
 tp/Texinfo/XS/gnulib/lib/c32is-impl.h              |  105 --
 tp/Texinfo/XS/gnulib/lib/c32isprint.c              |   26 -
 tp/Texinfo/XS/gnulib/lib/calloc.c                  |   55 -
 tp/Texinfo/XS/gnulib/lib/cloexec.c                 |   83 --
 tp/Texinfo/XS/gnulib/lib/cloexec.h                 |   44 -
 tp/Texinfo/XS/gnulib/lib/copy-file-range.c         |   67 --
 tp/Texinfo/XS/gnulib/lib/copy-file.c               |  261 -----
 tp/Texinfo/XS/gnulib/lib/copy-file.h               |   83 --
 tp/Texinfo/XS/gnulib/lib/error.c                   |  375 ------
 tp/Texinfo/XS/gnulib/lib/error.in.h                |  261 -----
 tp/Texinfo/XS/gnulib/lib/exitfail.c                |   24 -
 tp/Texinfo/XS/gnulib/lib/exitfail.h                |   28 -
 tp/Texinfo/XS/gnulib/lib/fstat.c                   |   94 --
 tp/Texinfo/XS/gnulib/lib/full-write.c              |   79 --
 tp/Texinfo/XS/gnulib/lib/full-write.h              |   35 -
 tp/Texinfo/XS/gnulib/lib/get-permissions.c         |  291 -----
 tp/Texinfo/XS/gnulib/lib/getprogname.c             |  312 -----
 tp/Texinfo/XS/gnulib/lib/getprogname.h             |   26 -
 tp/Texinfo/XS/gnulib/lib/gettime.c                 |   51 -
 tp/Texinfo/XS/gnulib/lib/gettimeofday.c            |  151 ---
 tp/Texinfo/XS/gnulib/lib/hard-locale.c             |   47 -
 tp/Texinfo/XS/gnulib/lib/hard-locale.h             |   38 -
 tp/Texinfo/XS/gnulib/lib/ialloc.c                  |   21 -
 tp/Texinfo/XS/gnulib/lib/ialloc.h                  |  140 ---
 tp/Texinfo/XS/gnulib/lib/ignore-value.h            |   51 -
 tp/Texinfo/XS/gnulib/lib/intprops.h                |  335 ------
 tp/Texinfo/XS/gnulib/lib/lc-charset-dispatch.c     |   82 --
 tp/Texinfo/XS/gnulib/lib/lc-charset-dispatch.h     |   40 -
 tp/Texinfo/XS/gnulib/lib/localcharset.c            | 1159 -------------------
 tp/Texinfo/XS/gnulib/lib/lstat.c                   |  104 --
 tp/Texinfo/XS/gnulib/lib/mbrtoc32.c                |  288 -----
 tp/Texinfo/XS/gnulib/lib/mbrtowc-impl-utf8.h       |  138 ---
 tp/Texinfo/XS/gnulib/lib/mbrtowc-impl.h            |  262 -----
 tp/Texinfo/XS/gnulib/lib/mbrtowc.c                 |  161 ---
 tp/Texinfo/XS/gnulib/lib/mbsinit.c                 |   69 --
 tp/Texinfo/XS/gnulib/lib/mbtowc-lock.c             |  151 ---
 tp/Texinfo/XS/gnulib/lib/mbtowc-lock.h             |  125 --
 tp/Texinfo/XS/gnulib/lib/minmax.h                  |   65 --
 tp/Texinfo/XS/gnulib/lib/open.c                    |  213 ----
 tp/Texinfo/XS/gnulib/lib/qcopy-acl.c               |  104 --
 tp/Texinfo/XS/gnulib/lib/quote.h                   |   56 -
 tp/Texinfo/XS/gnulib/lib/quotearg.c                | 1084 ------------------
 tp/Texinfo/XS/gnulib/lib/quotearg.h                |  452 --------
 tp/Texinfo/XS/gnulib/lib/raise.c                   |   83 --
 tp/Texinfo/XS/gnulib/lib/read.c                    |   95 --
 tp/Texinfo/XS/gnulib/lib/reallocarray.c            |   50 -
 tp/Texinfo/XS/gnulib/lib/safe-read.c               |   71 --
 tp/Texinfo/XS/gnulib/lib/safe-read.h               |   50 -
 tp/Texinfo/XS/gnulib/lib/safe-write.c              |   18 -
 tp/Texinfo/XS/gnulib/lib/safe-write.h              |   50 -
 tp/Texinfo/XS/gnulib/lib/set-permissions.c         |  848 --------------
 tp/Texinfo/XS/gnulib/lib/setlocale-lock.c          |  151 ---
 tp/Texinfo/XS/gnulib/lib/setlocale_null-unlocked.c |  149 ---
 tp/Texinfo/XS/gnulib/lib/setlocale_null.c          |  299 -----
 tp/Texinfo/XS/gnulib/lib/setlocale_null.h          |  110 --
 tp/Texinfo/XS/gnulib/lib/signal.in.h               |  541 ---------
 tp/Texinfo/XS/gnulib/lib/strerror-override.c       |  311 -----
 tp/Texinfo/XS/gnulib/lib/strerror-override.h       |   73 --
 tp/Texinfo/XS/gnulib/lib/strerror.c                |   70 --
 tp/Texinfo/XS/gnulib/lib/sys-limits.h              |   42 -
 tp/Texinfo/XS/gnulib/lib/sys_time.in.h             |  236 ----
 tp/Texinfo/XS/gnulib/lib/timespec.c                |   21 -
 tp/Texinfo/XS/gnulib/lib/timespec.h                |  102 --
 tp/Texinfo/XS/gnulib/lib/unictype/ctype_print.c    |   32 -
 tp/Texinfo/XS/gnulib/lib/unictype/ctype_print.h    | 1202 --------------------
 tp/Texinfo/XS/gnulib/lib/utime.c                   |  287 -----
 tp/Texinfo/XS/gnulib/lib/utime.in.h                |  124 --
 tp/Texinfo/XS/gnulib/lib/utimens.c                 |  680 -----------
 tp/Texinfo/XS/gnulib/lib/utimens.h                 |   82 --
 tp/Texinfo/XS/gnulib/lib/windows-initguard.h       |   35 -
 tp/Texinfo/XS/gnulib/lib/write.c                   |  155 ---
 tp/Texinfo/XS/gnulib/lib/xalloc-die.c              |   41 -
 tp/Texinfo/XS/gnulib/lib/xalloc.h                  |  215 ----
 tp/Texinfo/XS/gnulib/lib/xmalloc.c                 |  340 ------
 tp/Texinfo/XS/gnulib/m4/acl.m4                     |  245 ----
 tp/Texinfo/XS/gnulib/m4/c32rtomb.m4                |  187 ---
 tp/Texinfo/XS/gnulib/m4/calloc.m4                  |   89 --
 tp/Texinfo/XS/gnulib/m4/clock_time.m4              |   55 -
 tp/Texinfo/XS/gnulib/m4/copy-file-range.m4         |   60 -
 tp/Texinfo/XS/gnulib/m4/copy-file.m4               |   13 -
 tp/Texinfo/XS/gnulib/m4/double-slash-root.m4       |   40 -
 tp/Texinfo/XS/gnulib/m4/error.m4                   |   22 -
 tp/Texinfo/XS/gnulib/m4/error_h.m4                 |  129 ---
 tp/Texinfo/XS/gnulib/m4/fstat.m4                   |   42 -
 tp/Texinfo/XS/gnulib/m4/getprogname.m4             |   61 -
 tp/Texinfo/XS/gnulib/m4/gettime.m4                 |   70 --
 tp/Texinfo/XS/gnulib/m4/gettimeofday.m4            |   70 --
 tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4            |    4 +-
 tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4             |  384 -------
 tp/Texinfo/XS/gnulib/m4/localcharset.m4            |   13 -
 tp/Texinfo/XS/gnulib/m4/locale-fr.m4               |  306 -----
 tp/Texinfo/XS/gnulib/m4/lstat.m4                   |   82 --
 tp/Texinfo/XS/gnulib/m4/mbrtoc32.m4                |  326 ------
 tp/Texinfo/XS/gnulib/m4/mbsinit.m4                 |   46 -
 tp/Texinfo/XS/gnulib/m4/minmax.m4                  |   46 -
 tp/Texinfo/XS/gnulib/m4/mode_t.m4                  |   28 -
 tp/Texinfo/XS/gnulib/m4/open-cloexec.m4            |   24 -
 tp/Texinfo/XS/gnulib/m4/open-slash.m4              |   62 -
 tp/Texinfo/XS/gnulib/m4/open.m4                    |   58 -
 tp/Texinfo/XS/gnulib/m4/quote.m4                   |   15 -
 tp/Texinfo/XS/gnulib/m4/quotearg.m4                |   13 -
 tp/Texinfo/XS/gnulib/m4/raise.m4                   |   38 -
 tp/Texinfo/XS/gnulib/m4/read.m4                    |   30 -
 tp/Texinfo/XS/gnulib/m4/reallocarray.m4            |   28 -
 tp/Texinfo/XS/gnulib/m4/safe-read.m4               |   14 -
 tp/Texinfo/XS/gnulib/m4/safe-write.m4              |   13 -
 tp/Texinfo/XS/gnulib/m4/setlocale_null.m4          |  119 --
 tp/Texinfo/XS/gnulib/m4/signal_h.m4                |  106 --
 tp/Texinfo/XS/gnulib/m4/strerror.m4                |  104 --
 tp/Texinfo/XS/gnulib/m4/sys_socket_h.m4            |  208 ----
 tp/Texinfo/XS/gnulib/m4/sys_time_h.m4              |  122 --
 tp/Texinfo/XS/gnulib/m4/threadlib.m4               |  688 -----------
 tp/Texinfo/XS/gnulib/m4/timespec.m4                |   11 -
 tp/Texinfo/XS/gnulib/m4/utime.m4                   |   79 --
 tp/Texinfo/XS/gnulib/m4/utime_h.m4                 |   65 --
 tp/Texinfo/XS/gnulib/m4/utimens.m4                 |   59 -
 tp/Texinfo/XS/gnulib/m4/utimes.m4                  |  162 ---
 tp/Texinfo/XS/gnulib/m4/visibility.m4              |   84 --
 tp/Texinfo/XS/gnulib/m4/write.m4                   |   36 -
 tp/Texinfo/XS/gnulib/m4/xalloc.m4                  |    9 -
 tp/Texinfo/XS/gnulib/m4/xattr.m4                   |   55 -
 tp/Texinfo/XS/gnulib/po/POTFILES.in                |   89 --
 139 files changed, 9 insertions(+), 21489 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c5177a0cf9..bcb8ab19cf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2024-11-14  Gavin Smith <gavinsmith0123@gmail.com>
+
+       * tp/Texinfo/XS: run "gnulib-tool --remove-import copy-file".
+       run "gnulib-tool --import gettext-h" as module appears to be
+       necessary and is removed otherwise.
+
 2024-11-14  Gavin Smith <gavinsmith0123@gmail.com>
 
        Do not require copy-file module
diff --git a/tp/Texinfo/XS/gnulib/lib/Makefile.am 
b/tp/Texinfo/XS/gnulib/lib/Makefile.am
index d3f35f76b0..2b33e1f4f0 100644
--- a/tp/Texinfo/XS/gnulib/lib/Makefile.am
+++ b/tp/Texinfo/XS/gnulib/lib/Makefile.am
@@ -34,9 +34,9 @@
 #  --libtool \
 #  --macro-prefix=gl \
 #  --po-domain=texinfo_tp \
-#  copy-file \
 #  euidaccess \
 #  getline \
+#  gettext-h \
 #  iconv \
 #  libunistring \
 #  locale \
@@ -99,17 +99,10 @@ libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS)
 EXTRA_libgnu_la_SOURCES =
 libgnu_la_LDFLAGS = $(AM_LDFLAGS)
 libgnu_la_LDFLAGS += -no-undefined
-libgnu_la_LDFLAGS += $(CLOCK_TIME_LIB)
 libgnu_la_LDFLAGS += $(EUIDACCESS_LIBGEN)
-libgnu_la_LDFLAGS += $(HARD_LOCALE_LIB)
-libgnu_la_LDFLAGS += $(LIB_ACL)
-libgnu_la_LDFLAGS += $(LTLIBC32CONV)
 libgnu_la_LDFLAGS += $(LTLIBICONV)
 libgnu_la_LDFLAGS += $(LTLIBINTL)
 libgnu_la_LDFLAGS += $(LTLIBUNISTRING)
-libgnu_la_LDFLAGS += $(MBRTOWC_LIB)
-libgnu_la_LDFLAGS += $(QCOPY_ACL_LIB)
-libgnu_la_LDFLAGS += $(SETLOCALE_NULL_LIB)
 
 AM_CPPFLAGS += -DDEFAULT_TEXT_DOMAIN=\"texinfo_tp-gnulib\"
 
@@ -130,16 +123,6 @@ endif
 
 ## end   gnulib module access
 
-## begin gnulib module acl-permissions
-
-libgnu_la_SOURCES += acl-errno-valid.c acl-internal.c    get-permissions.c 
set-permissions.c
-
-EXTRA_DIST += acl-internal.h acl.h acl_entries.c
-
-EXTRA_libgnu_la_SOURCES += acl_entries.c
-
-## end   gnulib module acl-permissions
-
 ## begin gnulib module alloca-opt
 
 BUILT_SOURCES += $(ALLOCA_H)
@@ -207,73 +190,6 @@ EXTRA_DIST += attribute.h
 
 ## end   gnulib module attribute
 
-## begin gnulib module basename-lgpl
-
-libgnu_la_SOURCES += basename-lgpl.c
-
-EXTRA_DIST += basename-lgpl.h
-
-## end   gnulib module basename-lgpl
-
-## begin gnulib module binary-io
-
-libgnu_la_SOURCES += binary-io.h binary-io.c
-
-## end   gnulib module binary-io
-
-## begin gnulib module c-ctype
-
-libgnu_la_SOURCES += c-ctype.h c-ctype.c
-
-## end   gnulib module c-ctype
-
-## begin gnulib module c-strcase
-
-libgnu_la_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c
-
-## end   gnulib module c-strcase
-
-## begin gnulib module c-strcaseeq
-
-
-EXTRA_DIST += c-strcaseeq.h
-
-## end   gnulib module c-strcaseeq
-
-## begin gnulib module c32isprint
-
-libgnu_la_SOURCES += c32isprint.c
-
-EXTRA_DIST += c32is-impl.h
-
-## end   gnulib module c32isprint
-
-## begin gnulib module calloc-gnu
-
-
-EXTRA_DIST += calloc.c
-
-EXTRA_libgnu_la_SOURCES += calloc.c
-
-## end   gnulib module calloc-gnu
-
-## begin gnulib module calloc-posix
-
-
-EXTRA_DIST += calloc.c
-
-EXTRA_libgnu_la_SOURCES += calloc.c
-
-## end   gnulib module calloc-posix
-
-## begin gnulib module cloexec
-
-libgnu_la_SOURCES += cloexec.c
-
-EXTRA_DIST += cloexec.h
-
-## end   gnulib module cloexec
-
 ## begin gnulib module close
 
 if GL_COND_OBJ_CLOSE
@@ -282,20 +198,6 @@ endif
 
 ## end   gnulib module close
 
-## begin gnulib module copy-file
-
-libgnu_la_SOURCES += copy-file.h copy-file.c
-
-## end   gnulib module copy-file
-
-## begin gnulib module copy-file-range
-
-if GL_COND_OBJ_COPY_FILE_RANGE
-libgnu_la_SOURCES += copy-file-range.c
-endif
-
-## end   gnulib module copy-file-range
-
 ## begin gnulib module dup2
 
 if GL_COND_OBJ_DUP2
@@ -336,38 +238,6 @@ EXTRA_DIST += errno.in.h
 
 ## end   gnulib module errno
 
-## begin gnulib module error
-
-if GL_COND_OBJ_ERROR
-libgnu_la_SOURCES += error.c
-endif
-
-## end   gnulib module error
-
-## begin gnulib module error-h
-
-BUILT_SOURCES += error.h
-
-# We need the following in order to override <error.h>.
-error.h: error.in.h $(top_builddir)/config.status $(CXXDEFS_H)
-       $(gl_V_at)$(SED_HEADER_STDOUT) \
-             -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''HAVE_ERROR_H''@|$(HAVE_ERROR_H)|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''NEXT_ERROR_H''@|$(NEXT_ERROR_H)|g' \
-             -e 's|@''HAVE_ERROR''@|$(HAVE_ERROR)|g' \
-             -e 's|@''HAVE_ERROR_AT_LINE''@|$(HAVE_ERROR_AT_LINE)|g' \
-             -e 's|@''REPLACE_ERROR''@|$(REPLACE_ERROR)|g' \
-             -e 's|@''REPLACE_ERROR_AT_LINE''@|$(REPLACE_ERROR_AT_LINE)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             $(srcdir)/error.in.h > $@-t
-       $(AM_V_at)mv $@-t $@
-MOSTLYCLEANFILES += error.h error.h-t
-
-EXTRA_DIST += error.in.h
-
-## end   gnulib module error-h
-
 ## begin gnulib module euidaccess
 
 if GL_COND_OBJ_EUIDACCESS
@@ -376,14 +246,6 @@ endif
 
 ## end   gnulib module euidaccess
 
-## begin gnulib module exitfail
-
-libgnu_la_SOURCES += exitfail.c
-
-EXTRA_DIST += exitfail.h
-
-## end   gnulib module exitfail
-
 ## begin gnulib module fcntl
 
 if GL_COND_OBJ_FCNTL
@@ -486,24 +348,6 @@ endif
 
 ## end   gnulib module free-posix
 
-## begin gnulib module fstat
-
-if GL_COND_OBJ_FSTAT
-libgnu_la_SOURCES += fstat.c
-endif
-
-EXTRA_DIST += stat-w32.c stat-w32.h
-
-EXTRA_libgnu_la_SOURCES += stat-w32.c
-
-## end   gnulib module fstat
-
-## begin gnulib module full-write
-
-libgnu_la_SOURCES += full-write.h full-write.c
-
-## end   gnulib module full-write
-
 ## begin gnulib module gen-header
 
 # In 'sed', replace the pattern space with a "DO NOT EDIT" comment.
@@ -556,36 +400,12 @@ endif
 
 ## end   gnulib module getline
 
-## begin gnulib module getprogname
-
-if GL_COND_OBJ_GETPROGNAME
-libgnu_la_SOURCES += getprogname.c
-endif
-
-EXTRA_DIST += getprogname.h
-
-## end   gnulib module getprogname
-
 ## begin gnulib module gettext-h
 
 libgnu_la_SOURCES += gettext.h
 
 ## end   gnulib module gettext-h
 
-## begin gnulib module gettime
-
-libgnu_la_SOURCES += gettime.c
-
-## end   gnulib module gettime
-
-## begin gnulib module gettimeofday
-
-if GL_COND_OBJ_GETTIMEOFDAY
-libgnu_la_SOURCES += gettimeofday.c
-endif
-
-## end   gnulib module gettimeofday
-
 ## begin gnulib module gperf
 
 GPERF = gperf
@@ -603,14 +423,6 @@ endif
 
 ## end   gnulib module group-member
 
-## begin gnulib module hard-locale
-
-libgnu_la_SOURCES += hard-locale.c
-
-EXTRA_DIST += hard-locale.h
-
-## end   gnulib module hard-locale
-
 ## begin gnulib module havelib
 
 
@@ -618,34 +430,12 @@ EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
 
 ## end   gnulib module havelib
 
-## begin gnulib module ialloc
-
-libgnu_la_SOURCES += ialloc.c
-
-EXTRA_DIST += ialloc.h
-
-## end   gnulib module ialloc
-
 ## begin gnulib module idx
 
 libgnu_la_SOURCES += idx.h
 
 ## end   gnulib module idx
 
-## begin gnulib module ignore-value
-
-
-EXTRA_DIST += ignore-value.h
-
-## end   gnulib module ignore-value
-
-## begin gnulib module intprops
-
-
-EXTRA_DIST += intprops-internal.h intprops.h
-
-## end   gnulib module intprops
-
 ## begin gnulib module inttypes-incomplete
 
 BUILT_SOURCES += inttypes.h
@@ -722,14 +512,6 @@ EXTRA_DIST += limits.in.h
 
 ## end   gnulib module limits-h
 
-## begin gnulib module localcharset
-
-libgnu_la_SOURCES += localcharset.c
-
-EXTRA_DIST += localcharset.h
-
-## end   gnulib module localcharset
-
 ## begin gnulib module locale
 
 BUILT_SOURCES += locale.h
@@ -770,14 +552,6 @@ EXTRA_DIST += locale.in.h
 
 ## end   gnulib module locale
 
-## begin gnulib module lstat
-
-if GL_COND_OBJ_LSTAT
-libgnu_la_SOURCES += lstat.c
-endif
-
-## end   gnulib module lstat
-
 ## begin gnulib module malloc-gnu
 
 
@@ -804,38 +578,6 @@ EXTRA_DIST += malloca.h
 
 ## end   gnulib module malloca
 
-## begin gnulib module mbrtoc32
-
-if GL_COND_OBJ_MBRTOC32
-libgnu_la_SOURCES += mbrtoc32.c
-endif
-
-EXTRA_DIST += lc-charset-dispatch.c lc-charset-dispatch.h mbrtowc-impl-utf8.h 
mbrtowc-impl.h mbtowc-lock.c mbtowc-lock.h windows-initguard.h
-
-EXTRA_libgnu_la_SOURCES += lc-charset-dispatch.c mbtowc-lock.c
-
-## end   gnulib module mbrtoc32
-
-## begin gnulib module mbrtowc
-
-if GL_COND_OBJ_MBRTOWC
-libgnu_la_SOURCES += mbrtowc.c
-endif
-
-EXTRA_DIST += lc-charset-dispatch.c lc-charset-dispatch.h mbrtowc-impl-utf8.h 
mbrtowc-impl.h mbtowc-lock.c mbtowc-lock.h windows-initguard.h
-
-EXTRA_libgnu_la_SOURCES += lc-charset-dispatch.c mbtowc-lock.c
-
-## end   gnulib module mbrtowc
-
-## begin gnulib module mbsinit
-
-if GL_COND_OBJ_MBSINIT
-libgnu_la_SOURCES += mbsinit.c
-endif
-
-## end   gnulib module mbsinit
-
 ## begin gnulib module mbszero
 
 libgnu_la_SOURCES += mbszero.c
@@ -852,12 +594,6 @@ EXTRA_DIST += memchr.valgrind
 
 ## end   gnulib module memchr
 
-## begin gnulib module minmax
-
-libgnu_la_SOURCES += minmax.h
-
-## end   gnulib module minmax
-
 ## begin gnulib module msvc-inval
 
 if GL_COND_OBJ_MSVC_INVAL
@@ -878,14 +614,6 @@ EXTRA_DIST += msvc-nothrow.h
 
 ## end   gnulib module msvc-nothrow
 
-## begin gnulib module open
-
-if GL_COND_OBJ_OPEN
-libgnu_la_SOURCES += open.c
-endif
-
-## end   gnulib module open
-
 ## begin gnulib module pathmax
 
 
@@ -893,35 +621,6 @@ EXTRA_DIST += pathmax.h
 
 ## end   gnulib module pathmax
 
-## begin gnulib module qcopy-acl
-
-libgnu_la_SOURCES += qcopy-acl.c
-
-## end   gnulib module qcopy-acl
-
-## begin gnulib module quote
-
-
-EXTRA_DIST += quote.h
-
-## end   gnulib module quote
-
-## begin gnulib module quotearg
-
-libgnu_la_SOURCES += quotearg.c
-
-EXTRA_DIST += quote.h quotearg.h
-
-## end   gnulib module quotearg
-
-## begin gnulib module raise
-
-if GL_COND_OBJ_RAISE
-libgnu_la_SOURCES += raise.c
-endif
-
-## end   gnulib module raise
-
 ## begin gnulib module rawmemchr
 
 if GL_COND_OBJ_RAWMEMCHR
@@ -932,14 +631,6 @@ EXTRA_DIST += rawmemchr.valgrind
 
 ## end   gnulib module rawmemchr
 
-## begin gnulib module read
-
-if GL_COND_OBJ_READ
-libgnu_la_SOURCES += read.c
-endif
-
-## end   gnulib module read
-
 ## begin gnulib module realloc-gnu
 
 
@@ -958,14 +649,6 @@ EXTRA_libgnu_la_SOURCES += realloc.c
 
 ## end   gnulib module realloc-posix
 
-## begin gnulib module reallocarray
-
-if GL_COND_OBJ_REALLOCARRAY
-libgnu_la_SOURCES += reallocarray.c
-endif
-
-## end   gnulib module reallocarray
-
 ## begin gnulib module root-uid
 
 
@@ -973,24 +656,6 @@ EXTRA_DIST += root-uid.h
 
 ## end   gnulib module root-uid
 
-## begin gnulib module safe-read
-
-libgnu_la_SOURCES += safe-read.c
-
-EXTRA_DIST += safe-read.h sys-limits.h
-
-## end   gnulib module safe-read
-
-## begin gnulib module safe-write
-
-libgnu_la_SOURCES += safe-write.c
-
-EXTRA_DIST += safe-read.c safe-write.h sys-limits.h
-
-EXTRA_libgnu_la_SOURCES += safe-read.c
-
-## end   gnulib module safe-write
-
 ## begin gnulib module setenv
 
 if GL_COND_OBJ_SETENV
@@ -999,68 +664,6 @@ endif
 
 ## end   gnulib module setenv
 
-## begin gnulib module setlocale-null
-
-libgnu_la_SOURCES += setlocale_null.c
-if GL_COND_OBJ_SETLOCALE_LOCK
-libgnu_la_SOURCES += setlocale-lock.c
-endif
-
-EXTRA_DIST += setlocale_null.h windows-initguard.h
-
-## end   gnulib module setlocale-null
-
-## begin gnulib module setlocale-null-unlocked
-
-libgnu_la_SOURCES += setlocale_null-unlocked.c
-
-EXTRA_DIST += setlocale_null.h
-
-## end   gnulib module setlocale-null-unlocked
-
-## begin gnulib module signal-h
-
-BUILT_SOURCES += signal.h
-
-# We need the following in order to create <signal.h> when the system
-# doesn't have a complete one.
-signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) 
$(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(gl_V_at)$(SED_HEADER_STDOUT) \
-             -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \
-             -e 
's/@''GNULIB_PTHREAD_SIGMASK''@/$(GL_GNULIB_PTHREAD_SIGMASK)/g' \
-             -e 's/@''GNULIB_RAISE''@/$(GL_GNULIB_RAISE)/g' \
-             -e 's/@''GNULIB_SIG2STR''@/$(GL_GNULIB_SIG2STR)/g' \
-             -e 
's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GL_GNULIB_SIGNAL_H_SIGPIPE)/g' \
-             -e 's/@''GNULIB_SIGPROCMASK''@/$(GL_GNULIB_SIGPROCMASK)/g' \
-             -e 's/@''GNULIB_SIGACTION''@/$(GL_GNULIB_SIGACTION)/g' \
-             -e 
's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \
-             -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \
-             -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \
-             -e 's|@''HAVE_SIG2STR''@|$(HAVE_SIG2STR)|g' \
-             -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \
-             -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \
-             -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \
-             -e 's|@''HAVE_STR2SIG''@|$(HAVE_STR2SIG)|g' \
-             -e 
's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g'
 \
-             -e 
's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \
-             -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \
-             -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' 
\
-             -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             $(srcdir)/signal.in.h > $@-t
-       $(AM_V_at)mv $@-t $@
-MOSTLYCLEANFILES += signal.h signal.h-t
-
-EXTRA_DIST += signal.in.h
-
-## end   gnulib module signal-h
-
 ## begin gnulib module size_max
 
 libgnu_la_SOURCES += size_max.h
@@ -1587,24 +1190,6 @@ EXTRA_DIST += streq.h
 
 ## end   gnulib module streq
 
-## begin gnulib module strerror
-
-if GL_COND_OBJ_STRERROR
-libgnu_la_SOURCES += strerror.c
-endif
-
-## end   gnulib module strerror
-
-## begin gnulib module strerror-override
-
-if GL_COND_OBJ_STRERROR_OVERRIDE
-libgnu_la_SOURCES += strerror-override.c
-endif
-
-EXTRA_DIST += strerror-override.h
-
-## end   gnulib module strerror-override
-
 ## begin gnulib module string
 
 BUILT_SOURCES += string.h
@@ -1813,39 +1398,6 @@ EXTRA_DIST += sys_stat.in.h
 
 ## end   gnulib module sys_stat
 
-## begin gnulib module sys_time
-
-BUILT_SOURCES += sys/time.h
-
-# We need the following in order to create <sys/time.h> when the system
-# doesn't have one that works with the given compiler.
-sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) 
$(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys'
-       $(AM_V_at)$(SED_HEADER_STDOUT) \
-             -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
-             -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GL_GNULIB_GETTIMEOFDAY)/g' \
-             -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
-             -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \
-             -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
-             -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
-             -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             $(srcdir)/sys_time.in.h > $@-t
-       $(AM_V_at)mv $@-t $@
-MOSTLYCLEANFILES += sys/time.h sys/time.h-t
-MOSTLYCLEANDIRS += sys
-
-EXTRA_DIST += sys_time.in.h
-
-## end   gnulib module sys_time
-
 ## begin gnulib module sys_types
 
 BUILT_SOURCES += sys/types.h
@@ -1938,14 +1490,6 @@ EXTRA_DIST += time.in.h
 
 ## end   gnulib module time-h
 
-## begin gnulib module timespec
-
-libgnu_la_SOURCES += timespec.c
-
-EXTRA_DIST += timespec.h
-
-## end   gnulib module timespec
-
 ## begin gnulib module uchar
 
 BUILT_SOURCES += uchar.h
@@ -2367,16 +1911,6 @@ EXTRA_DIST += unictype/combiningclass.h
 
 ## end   gnulib module unictype/combining-class
 
-## begin gnulib module unictype/ctype-print
-
-if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT
-libgnu_la_SOURCES += unictype/ctype_print.c
-endif
-
-EXTRA_DIST += unictype/bitmap.h unictype/ctype_print.h
-
-## end   gnulib module unictype/ctype-print
-
 ## begin gnulib module unictype/ctype-upper
 
 if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER
@@ -2928,51 +2462,6 @@ endif
 
 ## end   gnulib module unsetenv
 
-## begin gnulib module utime
-
-if GL_COND_OBJ_UTIME
-libgnu_la_SOURCES += utime.c
-endif
-
-## end   gnulib module utime
-
-## begin gnulib module utime-h
-
-BUILT_SOURCES += utime.h
-
-# We need the following in order to create <utime.h> when the system
-# doesn't have one that works with the given compiler.
-utime.h: utime.in.h $(top_builddir)/config.status $(CXXDEFS_H) 
$(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(gl_V_at)$(SED_HEADER_STDOUT) \
-             -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's/@''HAVE_UTIME_H''@/$(HAVE_UTIME_H)/g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_UTIME_H''@|$(NEXT_UTIME_H)|g' \
-             -e 's/@''GNULIB_UTIME''@/$(GL_GNULIB_UTIME)/g' \
-             -e 's/@''GNULIB_MDA_UTIME''@/$(GL_GNULIB_MDA_UTIME)/g' \
-             -e 's|@''HAVE_UTIME''@|$(HAVE_UTIME)|g' \
-             -e 's|@''REPLACE_UTIME''@|$(REPLACE_UTIME)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             $(srcdir)/utime.in.h > $@-t
-       $(AM_V_at)mv $@-t $@
-MOSTLYCLEANFILES += utime.h utime.h-t
-
-EXTRA_DIST += utime.in.h
-
-## end   gnulib module utime-h
-
-## begin gnulib module utimens
-
-libgnu_la_SOURCES += utimens.c
-
-EXTRA_DIST += utimens.h
-
-## end   gnulib module utimens
-
 ## begin gnulib module vasnprintf
 
 
@@ -3182,30 +2671,6 @@ EXTRA_DIST += wctype.in.h
 
 ## end   gnulib module wctype-h
 
-## begin gnulib module write
-
-if GL_COND_OBJ_WRITE
-libgnu_la_SOURCES += write.c
-endif
-
-## end   gnulib module write
-
-## begin gnulib module xalloc
-
-libgnu_la_SOURCES += xmalloc.c
-
-EXTRA_DIST += xalloc.h
-
-## end   gnulib module xalloc
-
-## begin gnulib module xalloc-die
-
-libgnu_la_SOURCES += xalloc-die.c
-
-EXTRA_DIST += xalloc.h
-
-## end   gnulib module xalloc-die
-
 ## begin gnulib module xalloc-oversized
 
 
diff --git a/tp/Texinfo/XS/gnulib/lib/acl-errno-valid.c 
b/tp/Texinfo/XS/gnulib/lib/acl-errno-valid.c
deleted file mode 100644
index ee9407232d..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/acl-errno-valid.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Test whether ACLs are well supported on this system.
-
-   Copyright 2013-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.
-
-   Written by Paul Eggert.  */
-
-#include <config.h>
-
-#include <acl.h>
-
-#include <errno.h>
-
-/* Return true if errno value ERRNUM indicates that ACLs are well
-   supported on this system.  ERRNUM should be an errno value obtained
-   after an ACL-related system call fails.  */
-bool
-acl_errno_valid (int errnum)
-{
-  /* Recognize some common errors such as from an NFS mount that does
-     not support ACLs, even when local drives do.  */
-  switch (errnum)
-    {
-    case EBUSY: return false;
-    case EINVAL: return false;
-#if defined __APPLE__ && defined __MACH__
-    case ENOENT: return false;
-#endif
-    case ENOSYS: return false;
-
-#if defined ENOTSUP && ENOTSUP != EOPNOTSUPP
-# if ENOTSUP != ENOSYS /* Needed for the MS-Windows port of GNU Emacs.  */
-    case ENOTSUP: return false;
-# endif
-#endif
-
-    case EOPNOTSUPP: return false;
-    default: return true;
-    }
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/acl-internal.c 
b/tp/Texinfo/XS/gnulib/lib/acl-internal.c
deleted file mode 100644
index ae5398306a..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/acl-internal.c
+++ /dev/null
@@ -1,574 +0,0 @@
-/* Test whether a file has a nontrivial ACL.  -*- coding: utf-8 -*-
-
-   Copyright (C) 2002-2003, 2005-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.
-
-   Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible.  */
-
-#include <config.h>
-
-#include "acl.h"
-
-#include "acl-internal.h"
-
-#if defined __CYGWIN__
-# include <sys/types.h>
-# include <grp.h>
-# include <string.h>
-#endif
-
-#if USE_ACL && HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, 
Cygwin >= 2.5 */
-
-# if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
-
-/* ACL is an ACL, from a file, stored as type ACL_TYPE_EXTENDED.
-   Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial.  */
-int
-acl_extended_nontrivial (acl_t acl)
-{
-  /* acl is non-trivial if it is non-empty.  */
-  return (acl_entries (acl) > 0);
-}
-
-# else /* Linux, FreeBSD, IRIX, Tru64, Cygwin >= 2.5 */
-
-/* ACL is an ACL, from a file, stored as type ACL_TYPE_ACCESS.
-   Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.
-   Return -1 and set errno upon failure to determine it.  */
-int
-acl_access_nontrivial (acl_t acl)
-{
-  /* acl is non-trivial if it has some entries other than for "user::",
-     "group::", and "other::".  Normally these three should be present
-     at least, allowing us to write
-        return (3 < acl_entries (acl));
-     but the following code is more robust.  */
-#  if HAVE_ACL_FIRST_ENTRY /* Linux, FreeBSD, Cygwin >= 2.5 */
-
-  acl_entry_t ace;
-  int got_one;
-
-  for (got_one = acl_get_entry (acl, ACL_FIRST_ENTRY, &ace);
-       got_one > 0;
-       got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
-    {
-      acl_tag_t tag;
-      if (acl_get_tag_type (ace, &tag) < 0)
-        return -1;
-      switch (tag)
-        {
-        case ACL_USER_OBJ:
-        case ACL_GROUP_OBJ:
-        case ACL_OTHER:
-          break;
-#   ifdef __CYGWIN__
-        /* On Cygwin, a trivial ACL inside the Cygwin file system consists of
-           e.g.
-             user::rwx
-             group::r-x
-             other::r-x
-           but a trivial ACL outside the Cygwin file system has more entries:
-           e.g.
-             user::rwx
-             group::r-x
-             group:SYSTEM:rwx
-             group:Administrators:rwx
-             mask::r-x
-             other::r-x
-           or
-             user::rwx
-             group::r-x
-             group:SYSTEM:rwx
-             group:Administrators:rwx
-             group:Users:rwx
-             mask::rwx
-             other::r-x
-         */
-        case ACL_GROUP:
-          {
-            int ignorable = 0;
-            void *qualifier = acl_get_qualifier (ace);
-            if (qualifier != NULL)
-              {
-                gid_t group_id = *(gid_t const *) qualifier;
-                acl_free (qualifier);
-                struct group *group_details = getgrgid (group_id);
-                if (group_details != NULL)
-                  {
-                    const char *group_sid = group_details->gr_passwd;
-                    /* Ignore the ace if the group_sid is one of
-                       - S-1-5-18 (group "SYSTEM")
-                       - S-1-5-32-544 (group "Administrators")
-                       - S-1-5-32-545 (group "Users")
-                       Cf. 
<https://learn.microsoft.com/en-us/windows/win32/secauthz/well-known-sids>
-                       and look at the output of the 'mkgroup' command.  */
-                    ignorable = (strcmp (group_sid, "S-1-5-18") == 0
-                                 || strcmp (group_sid, "S-1-5-32-544") == 0
-                                 || strcmp (group_sid, "S-1-5-32-545") == 0);
-                  }
-              }
-            if (!ignorable)
-              return 1;
-          }
-          break;
-        case ACL_MASK:
-          /* XXX Is it OK to ignore acl_get_permset (ace, ...) ?  */
-          break;
-#   endif
-        default:
-          return 1;
-        }
-    }
-  return got_one;
-
-#  elif HAVE_ACL_TO_SHORT_TEXT /* IRIX */
-  /* Don't use acl_get_entry: it is undocumented.  */
-
-  int count = acl->acl_cnt;
-  int i;
-
-  for (i = 0; i < count; i++)
-    {
-      acl_entry_t ace = &acl->acl_entry[i];
-      acl_tag_t tag = ace->ae_tag;
-
-      if (!(tag == ACL_USER_OBJ || tag == ACL_GROUP_OBJ
-            || tag == ACL_OTHER_OBJ))
-        return 1;
-    }
-  return 0;
-
-#  elif HAVE_ACL_FREE_TEXT /* Tru64 */
-  /* Don't use acl_get_entry: it takes only one argument and does not work.  */
-
-  int count = acl->acl_num;
-  acl_entry_t ace;
-
-  for (ace = acl->acl_first; count > 0; ace = ace->next, count--)
-    {
-      acl_tag_t tag;
-      acl_perm_t perm;
-
-      tag = ace->entry->acl_type;
-      if (!(tag == ACL_USER_OBJ || tag == ACL_GROUP_OBJ || tag == ACL_OTHER))
-        return 1;
-
-      perm = ace->entry->acl_perm;
-      /* On Tru64, perm can also contain non-standard bits such as
-         PERM_INSERT, PERM_DELETE, PERM_MODIFY, PERM_LOOKUP, ... */
-      if ((perm & ~(ACL_READ | ACL_WRITE | ACL_EXECUTE)) != 0)
-        return 1;
-    }
-  return 0;
-
-#  else
-
-  errno = ENOSYS;
-  return -1;
-#  endif
-}
-
-int
-acl_default_nontrivial (acl_t acl)
-{
-  /* acl is non-trivial if it is non-empty.  */
-  return (acl_entries (acl) > 0);
-}
-
-# endif
-
-#elif USE_ACL && HAVE_FACL && defined GETACL /* Solaris, Cygwin < 2.5, not 
HP-UX */
-
-/* Test an ACL retrieved with GETACL.
-   Return 1 if the given ACL, consisting of COUNT entries, is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-int
-acl_nontrivial (int count, aclent_t *entries)
-{
-  int i;
-
-  for (i = 0; i < count; i++)
-    {
-      aclent_t *ace = &entries[i];
-
-      /* Note: If ace->a_type = USER_OBJ, ace->a_id is the st_uid from stat().
-         If ace->a_type = GROUP_OBJ, ace->a_id is the st_gid from stat().
-         We don't need to check ace->a_id in these cases.  */
-      if (!(ace->a_type == USER_OBJ
-            || ace->a_type == GROUP_OBJ
-            || ace->a_type == OTHER_OBJ
-            /* Note: Cygwin does not return a CLASS_OBJ ("mask:") entry
-               sometimes.  */
-            || ace->a_type == CLASS_OBJ))
-        return 1;
-    }
-  return 0;
-}
-
-# ifdef ACE_GETACL
-
-/* A shortcut for a bitmask.  */
-#  define NEW_ACE_WRITEA_DATA (NEW_ACE_WRITE_DATA | NEW_ACE_APPEND_DATA)
-
-/* Test an ACL retrieved with ACE_GETACL.
-   Return 1 if the given ACL, consisting of COUNT entries, is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-int
-acl_ace_nontrivial (int count, ace_t *entries)
-{
-  int i;
-
-  /* The flags in the ace_t structure changed in a binary incompatible way
-     when ACL_NO_TRIVIAL etc. were introduced in <sys/acl.h> version 1.15.
-     How to distinguish the two conventions at runtime?
-     In the old convention, usually three ACEs have a_flags = ACE_OWNER /
-     ACE_GROUP / ACE_OTHER, in the range 0x0100..0x0400.  In the new
-     convention, these values are not used.  */
-  int old_convention = 0;
-
-  for (i = 0; i < count; i++)
-    if (entries[i].a_flags & (OLD_ACE_OWNER | OLD_ACE_GROUP | OLD_ACE_OTHER))
-      {
-        old_convention = 1;
-        break;
-      }
-
-  if (old_convention)
-    /* Running on Solaris 10.  */
-    for (i = 0; i < count; i++)
-      {
-        ace_t *ace = &entries[i];
-
-        /* Note:
-           If ace->a_flags = ACE_OWNER, ace->a_who is the st_uid from stat().
-           If ace->a_flags = ACE_GROUP, ace->a_who is the st_gid from stat().
-           We don't need to check ace->a_who in these cases.  */
-        if (!(ace->a_type == OLD_ALLOW
-              && (ace->a_flags == OLD_ACE_OWNER
-                  || ace->a_flags == OLD_ACE_GROUP
-                  || ace->a_flags == OLD_ACE_OTHER)))
-          return 1;
-      }
-  else
-    {
-      /* Running on Solaris 10 (newer version) or Solaris 11.  */
-      unsigned int access_masks[6] =
-        {
-          0, /* owner@ deny */
-          0, /* owner@ allow */
-          0, /* group@ deny */
-          0, /* group@ allow */
-          0, /* everyone@ deny */
-          0  /* everyone@ allow */
-        };
-
-      for (i = 0; i < count; i++)
-        {
-          ace_t *ace = &entries[i];
-          unsigned int index1;
-          unsigned int index2;
-
-          if (ace->a_type == NEW_ACE_ACCESS_ALLOWED_ACE_TYPE)
-            index1 = 1;
-          else if (ace->a_type == NEW_ACE_ACCESS_DENIED_ACE_TYPE)
-            index1 = 0;
-          else
-            return 1;
-
-          if (ace->a_flags == NEW_ACE_OWNER)
-            index2 = 0;
-          else if (ace->a_flags == (NEW_ACE_GROUP | NEW_ACE_IDENTIFIER_GROUP))
-            index2 = 2;
-          else if (ace->a_flags == NEW_ACE_EVERYONE)
-            index2 = 4;
-          else
-            return 1;
-
-          access_masks[index1 + index2] |= ace->a_access_mask;
-        }
-
-      /* The same bit shouldn't be both allowed and denied.  */
-      if (access_masks[0] & access_masks[1])
-        return 1;
-      if (access_masks[2] & access_masks[3])
-        return 1;
-      if (access_masks[4] & access_masks[5])
-        return 1;
-
-      /* Check minimum masks.  */
-      if ((NEW_ACE_WRITE_NAMED_ATTRS
-           | NEW_ACE_WRITE_ATTRIBUTES
-           | NEW_ACE_WRITE_ACL
-           | NEW_ACE_WRITE_OWNER)
-          & ~ access_masks[1])
-        return 1;
-      access_masks[1] &= ~(NEW_ACE_WRITE_NAMED_ATTRS
-                           | NEW_ACE_WRITE_ATTRIBUTES
-                           | NEW_ACE_WRITE_ACL
-                           | NEW_ACE_WRITE_OWNER);
-      if ((NEW_ACE_READ_NAMED_ATTRS
-           | NEW_ACE_READ_ATTRIBUTES
-           | NEW_ACE_READ_ACL
-           | NEW_ACE_SYNCHRONIZE)
-          & ~ access_masks[5])
-        return 1;
-      access_masks[5] &= ~(NEW_ACE_READ_NAMED_ATTRS
-                           | NEW_ACE_READ_ATTRIBUTES
-                           | NEW_ACE_READ_ACL
-                           | NEW_ACE_SYNCHRONIZE);
-
-      /* Check the allowed or denied bits.  */
-      switch ((access_masks[0] | access_masks[1])
-              & ~(NEW_ACE_READ_NAMED_ATTRS
-                  | NEW_ACE_READ_ATTRIBUTES
-                  | NEW_ACE_READ_ACL
-                  | NEW_ACE_SYNCHRONIZE))
-        {
-        case 0:
-        case NEW_ACE_READ_DATA:
-        case                     NEW_ACE_WRITEA_DATA:
-        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA:
-        case                                           NEW_ACE_EXECUTE:
-        case NEW_ACE_READ_DATA |                       NEW_ACE_EXECUTE:
-        case                     NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
-        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
-          break;
-        default:
-          return 1;
-        }
-      switch ((access_masks[2] | access_masks[3])
-              & ~(NEW_ACE_READ_NAMED_ATTRS
-                  | NEW_ACE_READ_ATTRIBUTES
-                  | NEW_ACE_READ_ACL
-                  | NEW_ACE_SYNCHRONIZE))
-        {
-        case 0:
-        case NEW_ACE_READ_DATA:
-        case                     NEW_ACE_WRITEA_DATA:
-        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA:
-        case                                           NEW_ACE_EXECUTE:
-        case NEW_ACE_READ_DATA |                       NEW_ACE_EXECUTE:
-        case                     NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
-        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
-          break;
-        default:
-          return 1;
-        }
-      switch ((access_masks[4] | access_masks[5])
-              & ~(NEW_ACE_WRITE_NAMED_ATTRS
-                  | NEW_ACE_WRITE_ATTRIBUTES
-                  | NEW_ACE_WRITE_ACL
-                  | NEW_ACE_WRITE_OWNER))
-        {
-        case 0:
-        case NEW_ACE_READ_DATA:
-        case                     NEW_ACE_WRITEA_DATA:
-        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA:
-        case                                           NEW_ACE_EXECUTE:
-        case NEW_ACE_READ_DATA |                       NEW_ACE_EXECUTE:
-        case                     NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
-        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
-          break;
-        default:
-          return 1;
-        }
-
-      /* Check that the NEW_ACE_WRITE_DATA and NEW_ACE_APPEND_DATA bits are
-         either both allowed or both denied.  */
-      if (((access_masks[0] & NEW_ACE_WRITE_DATA) != 0)
-          != ((access_masks[0] & NEW_ACE_APPEND_DATA) != 0))
-        return 1;
-      if (((access_masks[2] & NEW_ACE_WRITE_DATA) != 0)
-          != ((access_masks[2] & NEW_ACE_APPEND_DATA) != 0))
-        return 1;
-      if (((access_masks[4] & NEW_ACE_WRITE_DATA) != 0)
-          != ((access_masks[4] & NEW_ACE_APPEND_DATA) != 0))
-        return 1;
-    }
-
-  return 0;
-}
-
-# endif
-
-#elif USE_ACL && HAVE_GETACL /* HP-UX */
-
-/* Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-int
-acl_nontrivial (int count, struct acl_entry *entries)
-{
-  int i;
-
-  if (count > 3)
-    return 1;
-
-  for (i = 0; i < count; i++)
-    {
-      struct acl_entry *ace = &entries[i];
-
-      if (ace->uid != ACL_NSUSER && ace->gid != ACL_NSGROUP)
-        return 1;
-    }
-  return 0;
-}
-
-# if HAVE_ACLV_H /* HP-UX >= 11.11 */
-
-/* Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-int
-aclv_nontrivial (int count, struct acl *entries)
-{
-  int i;
-
-  for (i = 0; i < count; i++)
-    {
-      struct acl *ace = &entries[i];
-
-      /* Note: If ace->a_type = USER_OBJ, ace->a_id is the st_uid from stat().
-         If ace->a_type = GROUP_OBJ, ace->a_id is the st_gid from stat().
-         We don't need to check ace->a_id in these cases.  */
-      if (!(ace->a_type == USER_OBJ /* no need to check ace->a_id here */
-            || ace->a_type == GROUP_OBJ /* no need to check ace->a_id here */
-            || ace->a_type == CLASS_OBJ
-            || ace->a_type == OTHER_OBJ))
-        return 1;
-    }
-  return 0;
-}
-
-# endif
-
-#elif USE_ACL && (HAVE_ACLX_GET || HAVE_STATACL) /* AIX */
-
-/* Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-int
-acl_nontrivial (struct acl *a)
-{
-  /* The normal way to iterate through an ACL is like this:
-       struct acl_entry *ace;
-       for (ace = a->acl_ext; ace != acl_last (a); ace = acl_nxt (ace))
-         {
-           struct ace_id *aei;
-           switch (ace->ace_type)
-             {
-             case ACC_PERMIT:
-             case ACC_DENY:
-             case ACC_SPECIFY:
-               ...;
-             }
-           for (aei = ace->ace_id; aei != id_last (ace); aei = id_nxt (aei))
-             ...
-         }
-   */
-  return (acl_last (a) != a->acl_ext ? 1 : 0);
-}
-
-# if HAVE_ACLX_GET && defined ACL_AIX_WIP /* newer AIX */
-
-/* Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-int
-acl_nfs4_nontrivial (nfs4_acl_int_t *a)
-{
-#  if 1 /* let's try this first */
-  return (a->aclEntryN > 0 ? 1 : 0);
-#  else
-  int count = a->aclEntryN;
-  int i;
-
-  for (i = 0; i < count; i++)
-    {
-      nfs4_ace_int_t *ace = &a->aclEntry[i];
-
-      if (!((ace->flags & ACE4_ID_SPECIAL) != 0
-            && (ace->aceWho.special_whoid == ACE4_WHO_OWNER
-                || ace->aceWho.special_whoid == ACE4_WHO_GROUP
-                || ace->aceWho.special_whoid == ACE4_WHO_EVERYONE)
-            && ace->aceType == ACE4_ACCESS_ALLOWED_ACE_TYPE
-            && ace->aceFlags == 0
-            && (ace->aceMask & ~(ACE4_READ_DATA | ACE4_LIST_DIRECTORY
-                                 | ACE4_WRITE_DATA | ACE4_ADD_FILE
-                                 | ACE4_EXECUTE)) == 0))
-        return 1;
-    }
-  return 0;
-#  endif
-}
-
-# endif
-
-#elif USE_ACL && HAVE_ACLSORT /* NonStop Kernel */
-
-/* Test an ACL retrieved with ACL_GET.
-   Return 1 if the given ACL, consisting of COUNT entries, is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-int
-acl_nontrivial (int count, struct acl *entries)
-{
-  int i;
-
-  for (i = 0; i < count; i++)
-    {
-      struct acl *ace = &entries[i];
-
-      /* Note: If ace->a_type = USER_OBJ, ace->a_id is the st_uid from stat().
-         If ace->a_type = GROUP_OBJ, ace->a_id is the st_gid from stat().
-         We don't need to check ace->a_id in these cases.  */
-      if (!(ace->a_type == USER_OBJ /* no need to check ace->a_id here */
-            || ace->a_type == GROUP_OBJ /* no need to check ace->a_id here */
-            || ace->a_type == CLASS_OBJ
-            || ace->a_type == OTHER_OBJ))
-        return 1;
-    }
-  return 0;
-}
-
-#endif
-
-void
-free_permission_context (struct permission_context *ctx)
-{
-#if USE_ACL
-# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 
*/
-  if (ctx->acl)
-    acl_free (ctx->acl);
-#  if !HAVE_ACL_TYPE_EXTENDED
-  if (ctx->default_acl)
-    acl_free (ctx->default_acl);
-#  endif
-
-# elif defined GETACL /* Solaris, Cygwin < 2.5 */
-  free (ctx->entries);
-#  ifdef ACE_GETACL
-  free (ctx->ace_entries);
-#  endif
-
-# elif HAVE_GETACL /* HP-UX */
-
-#  if HAVE_ACLV_H
-#  endif
-
-# elif HAVE_STATACL /* older AIX */
-
-# elif HAVE_ACLSORT /* NonStop Kernel */
-
-# endif
-#endif
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/acl-internal.h 
b/tp/Texinfo/XS/gnulib/lib/acl-internal.h
deleted file mode 100644
index ef1f84dc24..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/acl-internal.h
+++ /dev/null
@@ -1,300 +0,0 @@
-/* Internal implementation of access control lists.  -*- coding: utf-8 -*-
-
-   Copyright (C) 2002-2003, 2005-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.
-
-   Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible.  */
-
-/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_PURE.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#include "acl.h"
-
-#include <stdlib.h>
-
-/* All systems define the ACL related API in <sys/acl.h>.  */
-#if HAVE_SYS_ACL_H
-# include <sys/acl.h>
-#endif
-#if defined HAVE_FACL && ! defined GETACLCNT && defined ACL_CNT
-# define GETACLCNT ACL_CNT
-#endif
-
-/* On Linux and Cygwin >= 2.5, additional ACL related API is available in
-   <acl/libacl.h>.  */
-#ifdef HAVE_ACL_LIBACL_H
-# include <acl/libacl.h>
-#endif
-
-/* On HP-UX >= 11.11, additional ACL API is available in <aclv.h>.  */
-#if HAVE_ACLV_H
-# include <sys/types.h>
-# include <aclv.h>
-/* HP-UX 11.11 lacks these declarations.  */
-extern int acl (char *, int, int, struct acl *);
-extern int aclsort (int, int, struct acl *);
-#endif
-
-#include <errno.h>
-
-#include <limits.h>
-
-#ifndef SIZE_MAX
-# define SIZE_MAX ((size_t) -1)
-#endif
-
-#ifndef HAVE_FCHMOD
-# define HAVE_FCHMOD false
-# define fchmod(fd, mode) (-1)
-#endif
-
-_GL_INLINE_HEADER_BEGIN
-#ifndef ACL_INTERNAL_INLINE
-# define ACL_INTERNAL_INLINE _GL_INLINE
-#endif
-
-#if USE_ACL
-
-# if HAVE_ACL_GET_FILE
-/* POSIX 1003.1e (draft 17 -- abandoned) specific version.  */
-/* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */
-
-#  ifndef MIN_ACL_ENTRIES
-#   define MIN_ACL_ENTRIES 4
-#  endif
-
-/* POSIX 1003.1e (draft 17) */
-#  ifdef HAVE_ACL_GET_FD
-/* Most platforms have a 1-argument acl_get_fd, only OSF/1 has a 2-argument
-   macro(!).  */
-#   if HAVE_ACL_FREE_TEXT /* OSF/1 */
-ACL_INTERNAL_INLINE acl_t
-rpl_acl_get_fd (int fd)
-{
-  return acl_get_fd (fd, ACL_TYPE_ACCESS);
-}
-#    undef acl_get_fd
-#    define acl_get_fd rpl_acl_get_fd
-#   endif
-#  else
-#   define HAVE_ACL_GET_FD false
-#   undef acl_get_fd
-#   define acl_get_fd(fd) (NULL)
-#  endif
-
-/* POSIX 1003.1e (draft 17) */
-#  ifdef HAVE_ACL_SET_FD
-/* Most platforms have a 2-argument acl_set_fd, only OSF/1 has a 3-argument
-   macro(!).  */
-#   if HAVE_ACL_FREE_TEXT /* OSF/1 */
-ACL_INTERNAL_INLINE int
-rpl_acl_set_fd (int fd, acl_t acl)
-{
-  return acl_set_fd (fd, ACL_TYPE_ACCESS, acl);
-}
-#    undef acl_set_fd
-#    define acl_set_fd rpl_acl_set_fd
-#   endif
-#  else
-#   define HAVE_ACL_SET_FD false
-#   undef acl_set_fd
-#   define acl_set_fd(fd, acl) (-1)
-#  endif
-
-/* POSIX 1003.1e (draft 13) */
-#  if ! HAVE_ACL_FREE_TEXT
-#   define acl_free_text(buf) acl_free (buf)
-#  endif
-
-/* Linux-specific */
-/* Cygwin >= 2.5 implements this function, but it returns 1 for all
-   directories, thus is unusable.  */
-#  if !defined HAVE_ACL_EXTENDED_FILE || defined __CYGWIN__
-#   undef HAVE_ACL_EXTENDED_FILE
-#   define HAVE_ACL_EXTENDED_FILE false
-#   define acl_extended_file(name) (-1)
-#  endif
-
-#  if ! defined HAVE_ACL_FROM_MODE && ! defined HAVE_ACL_FROM_TEXT
-#   define acl_from_mode (NULL)
-#  endif
-
-/* Set to 0 if a file's mode is stored independently from the ACL.  */
-#  if (HAVE_ACL_COPY_EXT_NATIVE && HAVE_ACL_CREATE_ENTRY_NP) || defined __sgi 
/* Mac OS X, IRIX */
-#   define MODE_INSIDE_ACL 0
-#  endif
-
-/* Return the number of entries in ACL.
-   Return -1 and set errno upon failure to determine it.  */
-/* Define a replacement for acl_entries if needed. (Only Linux has it.)  */
-#  if !HAVE_ACL_ENTRIES
-#   define acl_entries rpl_acl_entries
-extern int acl_entries (acl_t);
-#  endif
-
-#  if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
-/* ACL is an ACL, from a file, stored as type ACL_TYPE_EXTENDED.
-   Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial.  */
-extern int acl_extended_nontrivial (acl_t);
-#  else
-/* ACL is an ACL, from a file, stored as type ACL_TYPE_ACCESS.
-   Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.
-   Return -1 and set errno upon failure to determine it.  */
-extern int acl_access_nontrivial (acl_t);
-
-/* ACL is an ACL, from a file, stored as type ACL_TYPE_DEFAULT.
-   Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.
-   Return -1 and set errno upon failure to determine it.  */
-extern int acl_default_nontrivial (acl_t);
-#  endif
-
-# elif HAVE_FACL && defined GETACL /* Solaris, Cygwin < 2.5, not HP-UX */
-
-/* Set to 0 if a file's mode is stored independently from the ACL.  */
-#  if defined __CYGWIN__ /* Cygwin */
-#   define MODE_INSIDE_ACL 0
-#  endif
-
-/* Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-extern int acl_nontrivial (int count, aclent_t *entries) _GL_ATTRIBUTE_PURE;
-
-#  ifdef ACE_GETACL /* Solaris 10 */
-
-/* Test an ACL retrieved with ACE_GETACL.
-   Return 1 if the given ACL, consisting of COUNT entries, is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-extern int acl_ace_nontrivial (int count, ace_t *entries) _GL_ATTRIBUTE_PURE;
-
-/* Definitions for when the built executable is executed on Solaris 10
-   (newer version) or Solaris 11.  */
-/* For a_type.  */
-#   define OLD_ALLOW 0
-#   define OLD_DENY  1
-#   define NEW_ACE_ACCESS_ALLOWED_ACE_TYPE 0 /* replaces ALLOW */
-#   define NEW_ACE_ACCESS_DENIED_ACE_TYPE  1 /* replaces DENY */
-/* For a_flags.  */
-#   define OLD_ACE_OWNER            0x0100
-#   define OLD_ACE_GROUP            0x0200
-#   define OLD_ACE_OTHER            0x0400
-#   define NEW_ACE_OWNER            0x1000
-#   define NEW_ACE_GROUP            0x2000
-#   define NEW_ACE_IDENTIFIER_GROUP 0x0040
-#   define NEW_ACE_EVERYONE         0x4000
-/* For a_access_mask.  */
-#   define NEW_ACE_READ_DATA         0x001 /* corresponds to 'r' */
-#   define NEW_ACE_WRITE_DATA        0x002 /* corresponds to 'w' */
-#   define NEW_ACE_APPEND_DATA       0x004
-#   define NEW_ACE_READ_NAMED_ATTRS  0x008
-#   define NEW_ACE_WRITE_NAMED_ATTRS 0x010
-#   define NEW_ACE_EXECUTE           0x020
-#   define NEW_ACE_DELETE_CHILD      0x040
-#   define NEW_ACE_READ_ATTRIBUTES   0x080
-#   define NEW_ACE_WRITE_ATTRIBUTES  0x100
-#   define NEW_ACE_DELETE          0x10000
-#   define NEW_ACE_READ_ACL        0x20000
-#   define NEW_ACE_WRITE_ACL       0x40000
-#   define NEW_ACE_WRITE_OWNER     0x80000
-#   define NEW_ACE_SYNCHRONIZE    0x100000
-
-#  endif
-
-# elif HAVE_GETACL /* HP-UX */
-
-/* Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-extern int acl_nontrivial (int count, struct acl_entry *entries);
-
-#  if HAVE_ACLV_H /* HP-UX >= 11.11 */
-
-/* Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-extern int aclv_nontrivial (int count, struct acl *entries);
-
-#  endif
-
-# elif HAVE_ACLX_GET && 0 /* AIX */
-
-/* TODO */
-
-# elif HAVE_STATACL /* older AIX */
-
-/* Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-extern int acl_nontrivial (struct acl *a);
-
-# elif HAVE_ACLSORT /* NonStop Kernel */
-
-/* Return 1 if the given ACL is non-trivial.
-   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
-extern int acl_nontrivial (int count, struct acl *entries);
-
-# endif
-
-/* Set to 1 if a file's mode is implicit by the ACL.  */
-# ifndef MODE_INSIDE_ACL
-#  define MODE_INSIDE_ACL 1
-# endif
-
-#endif
-
-struct permission_context {
-  mode_t mode;
-#if USE_ACL
-# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 
*/
-  acl_t acl;
-#  if !HAVE_ACL_TYPE_EXTENDED
-  acl_t default_acl;
-#  endif
-  bool acls_not_supported;
-
-# elif defined GETACL /* Solaris, Cygwin < 2.5 */
-  int count;
-  aclent_t *entries;
-#  ifdef ACE_GETACL
-  int ace_count;
-  ace_t *ace_entries;
-#  endif
-
-# elif HAVE_GETACL /* HP-UX */
-  struct acl_entry entries[NACLENTRIES];
-  int count;
-#  if HAVE_ACLV_H
-  struct acl aclv_entries[NACLVENTRIES];
-  int aclv_count;
-#  endif
-
-# elif HAVE_STATACL /* older AIX */
-  union { struct acl a; char room[4096]; } u;
-  bool have_u;
-
-# elif HAVE_ACLSORT /* NonStop Kernel */
-  struct acl entries[NACLENTRIES];
-  int count;
-
-# endif
-#endif
-};
-
-int get_permissions (const char *, int, mode_t, struct permission_context *);
-int set_permissions (struct permission_context *, const char *, int);
-void free_permission_context (struct permission_context *);
-
-_GL_INLINE_HEADER_END
diff --git a/tp/Texinfo/XS/gnulib/lib/acl.h b/tp/Texinfo/XS/gnulib/lib/acl.h
deleted file mode 100644
index 68a421a093..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/acl.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* acl.c - access control lists
-
-   Copyright (C) 2002, 2008-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.
-
-   Written by Paul Eggert.  */
-
-#ifndef _GL_ACL_H
-#define _GL_ACL_H 1
-
-/* This file uses _GL_ATTRIBUTE_CONST, _GL_ATTRIBUTE_DEPRECATED.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Follow symlinks when getting an ACL.  This is a bitmask that is guaranteed
-   not to collide with any <dirent.h> DT_* or _GL_DT_* value.  */
-enum { ACL_SYMLINK_FOLLOW = 0x10000 };
-
-/* Information about an ACL.  */
-struct aclinfo
-{
-  /* If 'size' is nonnegative, a buffer holding the concatenation
-     of extended attribute names, each terminated by NUL
-     (either u.__gl_acl_ch, or heap-allocated).  */
-  char *buf;
-
-  /* The number of useful bytes at the start of buf, counting trailing NULs.
-     If negative, there was an error in getting the ACL info,
-     and u.err is the corresponding errno.  */
-  ssize_t size;
-
-  /* The allocated size of buf.  This is sizeof u.__gl_acl_ch if the
-     buffer is not heap-allocated, and is larger otherwise.
-     For internal use only.  */
-  ssize_t __gl_acl_alloc;
-
-  /* Security context string.  Do not modify its contents.  */
-  char *scontext;
-  /* Security context errno value.  It is zero if there was no
-     error getting the security context.  When nonzero, scontext is "?".  */
-  int scontext_err;
-
-  union
-  {
-    /* An errno value, when there was an error getting the ACL info.  */
-    int err;
-
-    /* A small array of char, big enough for most listxattr results.
-       The size is somewhat arbitrary; it equals the max length of a
-       trivial NFSv4 ACL (a size used by file-has-acl.c in 2023-2024
-       but no longer relevant now), and a different value might be
-       better once experience is gained.  For internal use only.  */
-    char __gl_acl_ch[152];
-  } u;
-};
-
-bool acl_errno_valid (int) _GL_ATTRIBUTE_CONST;
-int file_has_acl (char const *, struct stat const *);
-int file_has_aclinfo (char const *restrict, struct aclinfo *restrict, int);
-
-#if USE_ACL && HAVE_LINUX_XATTR_H && HAVE_LISTXATTR
-bool aclinfo_has_xattr (struct aclinfo const *, char const *)
-  _GL_ATTRIBUTE_PURE;
-void aclinfo_free (struct aclinfo *);
-#else
-# define aclinfo_has_xattr(ai, xattr) false
-# define aclinfo_free(ai) ((void) 0)
-#endif
-#if (USE_ACL && HAVE_LINUX_XATTR_H && HAVE_LISTXATTR \
-     && (HAVE_SMACK || USE_SELINUX_SELINUX_H))
-void aclinfo_scontext_free (char *);
-#else
-# define aclinfo_scontext_free(s) ((void) 0)
-#endif
-
-int qset_acl (char const *, int, mode_t);
-int xset_acl (char const *, int, mode_t);
-/* Old name of xset_acl.  */
-_GL_ATTRIBUTE_DEPRECATED int set_acl (char const *, int, mode_t);
-
-int qcopy_acl (char const *, int, char const *, int, mode_t);
-int xcopy_acl (char const *, int, char const *, int, mode_t);
-/* Old name of xcopy_acl.  */
-_GL_ATTRIBUTE_DEPRECATED int copy_acl (char const *, int, char const *, int,
-                                       mode_t);
-
-int chmod_or_fchmod (char const *, int, mode_t);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/acl_entries.c 
b/tp/Texinfo/XS/gnulib/lib/acl_entries.c
deleted file mode 100644
index 81338323f5..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/acl_entries.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Return the number of entries in an ACL.
-
-   Copyright (C) 2002-2003, 2005-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.
-
-   Written by Paul Eggert and Andreas Gruenbacher.  */
-
-#include <config.h>
-
-#include "acl-internal.h"
-
-/* This file assumes POSIX-draft like ACLs
-   (Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5).  */
-
-/* Return the number of entries in ACL.
-   Return -1 and set errno upon failure to determine it.  */
-
-int
-acl_entries (acl_t acl)
-{
-  int count = 0;
-
-  if (acl != NULL)
-    {
-#if HAVE_ACL_FIRST_ENTRY /* Linux, FreeBSD, Mac OS X, Cygwin >= 2.5 */
-# if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
-      /* acl_get_entry returns 0 when it successfully fetches an entry,
-         and -1/EINVAL at the end.  */
-      acl_entry_t ace;
-      int got_one;
-
-      for (got_one = acl_get_entry (acl, ACL_FIRST_ENTRY, &ace);
-           got_one >= 0;
-           got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
-        count++;
-# else /* Linux, FreeBSD, Cygwin >= 2.5 */
-      /* acl_get_entry returns 1 when it successfully fetches an entry,
-         and 0 at the end.  */
-      acl_entry_t ace;
-      int got_one;
-
-      for (got_one = acl_get_entry (acl, ACL_FIRST_ENTRY, &ace);
-           got_one > 0;
-           got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
-        count++;
-      if (got_one < 0)
-        return -1;
-# endif
-#else /* IRIX, Tru64 */
-# if HAVE_ACL_TO_SHORT_TEXT /* IRIX */
-      /* Don't use acl_get_entry: it is undocumented.  */
-      count = acl->acl_cnt;
-# endif
-# if HAVE_ACL_FREE_TEXT /* Tru64 */
-      /* Don't use acl_get_entry: it takes only one argument and does not
-         work.  */
-      count = acl->acl_num;
-# endif
-#endif
-    }
-
-  return count;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/basename-lgpl.c 
b/tp/Texinfo/XS/gnulib/lib/basename-lgpl.c
deleted file mode 100644
index 256f84609c..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/basename-lgpl.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* basename.c -- return the last element in a file name
-
-   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2024 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>
-
-/* Specification.  */
-#include "basename-lgpl.h"
-
-#include <string.h>
-
-#include "filename.h"
-
-char *
-last_component (char const *name)
-{
-  char const *base = name + FILE_SYSTEM_PREFIX_LEN (name);
-  char const *p;
-  bool last_was_slash = false;
-
-  while (ISSLASH (*base))
-    base++;
-
-  for (p = base; *p; p++)
-    {
-      if (ISSLASH (*p))
-        last_was_slash = true;
-      else if (last_was_slash)
-        {
-          base = p;
-          last_was_slash = false;
-        }
-    }
-
-  return (char *) base;
-}
-
-size_t
-base_len (char const *name)
-{
-  size_t len;
-  size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name);
-
-  for (len = strlen (name);  1 < len && ISSLASH (name[len - 1]);  len--)
-    continue;
-
-  if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1
-      && ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2])
-    return 2;
-
-  if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len
-      && len == prefix_len && ISSLASH (name[prefix_len]))
-    return prefix_len + 1;
-
-  return len;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/basename-lgpl.h 
b/tp/Texinfo/XS/gnulib/lib/basename-lgpl.h
deleted file mode 100644
index 2a56be98e2..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/basename-lgpl.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Extract the last component (base name) of a file name.
-
-   Copyright (C) 1998, 2001, 2003-2006, 2009-2024 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 _BASENAME_LGPL_H
-#define _BASENAME_LGPL_H
-
-/* This file uses _GL_ATTRIBUTE_PURE.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#include <stddef.h>
-
-#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
-# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Return the address of the last file name component of FILENAME.
-   If FILENAME has some trailing slash(es), they are considered to be
-   part of the last component.
-   If FILENAME has no relative file name components because it is a file
-   system root, return the empty string.
-   Examples:
-              FILENAME      RESULT
-              "foo.c"       "foo.c"
-              "foo/bar.c"   "bar.c"
-              "/foo/bar.c"  "bar.c"
-              "foo/bar/"    "bar/"
-              "foo/bar//"   "bar//"
-              "/"           ""
-              "//"          ""
-              ""            ""
-   The return value is a tail of the given FILENAME; do NOT free() it!  */
-
-/* This function was traditionally called 'basename', but we avoid this
-   function name because
-     * Various platforms have different functions in their libc.
-       In particular, the glibc basename(), defined in <string.h>, does
-       not consider trailing slashes to be part of the component:
-              FILENAME      RESULT
-              "foo/bar/"    ""
-              "foo/bar//"   ""
-     * The 'basename' command eliminates trailing slashes and for a root
-       produces a non-empty result:
-              FILENAME      RESULT
-              "foo/bar/"    "bar"
-              "foo/bar//"   "bar"
-              "/"           "/"
-              "//"          "/"
- */
-extern char *last_component (char const *filename) _GL_ATTRIBUTE_PURE;
-
-/* Return the length of the basename FILENAME.
-   Typically FILENAME is the value returned by base_name or last_component.
-   Act like strlen (FILENAME), except omit all trailing slashes.  */
-extern size_t base_len (char const *filename) _GL_ATTRIBUTE_PURE;
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _BASENAME_LGPL_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/binary-io.c 
b/tp/Texinfo/XS/gnulib/lib/binary-io.c
deleted file mode 100644
index 40f01d67ee..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/binary-io.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Binary mode I/O.
-   Copyright 2017-2024 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 BINARY_IO_INLINE _GL_EXTERN_INLINE
-#include "binary-io.h"
-
-#if defined __DJGPP__ || defined __EMX__
-# include <unistd.h>
-
-int
-set_binary_mode (int fd, int mode)
-{
-  if (isatty (fd))
-    /* If FD refers to a console (not a pipe, not a regular file),
-       O_TEXT is the only reasonable mode, both on input and on output.
-       Silently ignore the request.  If we were to return -1 here,
-       all programs that use xset_binary_mode would fail when run
-       with console input or console output.  */
-    return O_TEXT;
-  else
-    return __gl_setmode (fd, mode);
-}
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/binary-io.h 
b/tp/Texinfo/XS/gnulib/lib/binary-io.h
deleted file mode 100644
index 1da018fad8..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/binary-io.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Binary mode I/O.
-   Copyright (C) 2001, 2003, 2005, 2008-2024 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 _BINARY_H
-#define _BINARY_H
-
-/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_UNUSED.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-/* For systems that distinguish between text and binary I/O.
-   O_BINARY is guaranteed by the gnulib <fcntl.h>. */
-#include <fcntl.h>
-
-/* The MSVC7 <stdio.h> doesn't like to be included after '#define fileno ...',
-   so we include it here first.  */
-#include <stdio.h>
-
-_GL_INLINE_HEADER_BEGIN
-#ifndef BINARY_IO_INLINE
-# define BINARY_IO_INLINE _GL_INLINE
-#endif
-
-#if O_BINARY
-# if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__
-#  include <io.h> /* declares setmode() */
-#  define __gl_setmode setmode
-# else
-#  define __gl_setmode _setmode
-#  undef fileno
-#  define fileno _fileno
-# endif
-#else
-  /* On reasonable systems, binary I/O is the only choice.  */
-  /* Use a function rather than a macro, to avoid gcc warnings
-     "warning: statement with no effect".  */
-BINARY_IO_INLINE int
-__gl_setmode (_GL_UNUSED int fd, _GL_UNUSED int mode)
-{
-  return O_BINARY;
-}
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY.
-   Return the old mode if successful, -1 (setting errno) on failure.
-   Ordinarily this function would be called 'setmode', since that is
-   its old name on MS-Windows, but it is called 'set_binary_mode' here
-   to avoid colliding with a BSD function of another name.  */
-
-#if defined __DJGPP__ || defined __EMX__
-extern int set_binary_mode (int fd, int mode);
-#else
-BINARY_IO_INLINE int
-set_binary_mode (int fd, int mode)
-{
-  return __gl_setmode (fd, mode);
-}
-#endif
-
-/* This macro is obsolescent.  */
-#define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY))
-
-
-#ifdef __cplusplus
-}
-#endif
-
-_GL_INLINE_HEADER_END
-
-#endif /* _BINARY_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/c-ctype.c 
b/tp/Texinfo/XS/gnulib/lib/c-ctype.c
deleted file mode 100644
index d3f1b12d5a..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c-ctype.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Character handling in C locale.
-
-   Copyright (C) 2003-2024 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 C_CTYPE_INLINE _GL_EXTERN_INLINE
-#include "c-ctype.h"
diff --git a/tp/Texinfo/XS/gnulib/lib/c-ctype.h 
b/tp/Texinfo/XS/gnulib/lib/c-ctype.h
deleted file mode 100644
index b582de4a7f..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c-ctype.h
+++ /dev/null
@@ -1,366 +0,0 @@
-/* Character handling in C locale.
-
-   These functions work like the corresponding functions in <ctype.h>,
-   except that they have the C (POSIX) locale hardwired, whereas the
-   <ctype.h> functions' behaviour depends on the current locale set via
-   setlocale.
-
-   Copyright (C) 2000-2003, 2006, 2008-2024 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 C_CTYPE_H
-#define C_CTYPE_H
-
-/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-_GL_INLINE_HEADER_BEGIN
-#ifndef C_CTYPE_INLINE
-# define C_CTYPE_INLINE _GL_INLINE
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* The functions defined in this file assume the "C" locale and a character
-   set without diacritics (ASCII-US or EBCDIC-US or something like that).
-   Even if the "C" locale on a particular system is an extension of the ASCII
-   character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it
-   is ISO-8859-1), the functions in this file recognize only the ASCII
-   characters.  */
-
-
-#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
-    && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
-    && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
-    && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
-    && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
-    && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
-    && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
-    && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
-    && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
-    && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
-    && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
-    && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
-    && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
-    && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
-    && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
-    && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
-    && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
-    && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
-    && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
-    && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
-    && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
-    && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
-    && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
-/* The character set is ASCII or one of its variants or extensions, not EBCDIC.
-   Testing the value of '\n' and '\r' is not relevant.  */
-# define C_CTYPE_ASCII 1
-#elif ! (' ' == '\x40' && '0' == '\xf0'                     \
-         && 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \
-         && 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2')
-# error "Only ASCII and EBCDIC are supported"
-#endif
-
-#if 'A' < 0
-# error "EBCDIC and char is signed -- not supported"
-#endif
-
-/* Cases for control characters.  */
-
-#define _C_CTYPE_CNTRL \
-   case '\a': case '\b': case '\f': case '\n': \
-   case '\r': case '\t': case '\v': \
-   _C_CTYPE_OTHER_CNTRL
-
-/* ASCII control characters other than those with \-letter escapes.  */
-
-#if C_CTYPE_ASCII
-# define _C_CTYPE_OTHER_CNTRL \
-    case '\x00': case '\x01': case '\x02': case '\x03': \
-    case '\x04': case '\x05': case '\x06': case '\x0e': \
-    case '\x0f': case '\x10': case '\x11': case '\x12': \
-    case '\x13': case '\x14': case '\x15': case '\x16': \
-    case '\x17': case '\x18': case '\x19': case '\x1a': \
-    case '\x1b': case '\x1c': case '\x1d': case '\x1e': \
-    case '\x1f': case '\x7f'
-#else
-   /* Use EBCDIC code page 1047's assignments for ASCII control chars;
-      assume all EBCDIC code pages agree about these assignments.  */
-# define _C_CTYPE_OTHER_CNTRL \
-    case '\x00': case '\x01': case '\x02': case '\x03': \
-    case '\x07': case '\x0e': case '\x0f': case '\x10': \
-    case '\x11': case '\x12': case '\x13': case '\x18': \
-    case '\x19': case '\x1c': case '\x1d': case '\x1e': \
-    case '\x1f': case '\x26': case '\x27': case '\x2d': \
-    case '\x2e': case '\x32': case '\x37': case '\x3c': \
-    case '\x3d': case '\x3f'
-#endif
-
-/* Cases for lowercase hex letters, and lowercase letters, all offset by N.  */
-
-#define _C_CTYPE_LOWER_A_THRU_F_N(N) \
-   case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \
-   case 'e' + (N): case 'f' + (N)
-#define _C_CTYPE_LOWER_N(N) \
-   _C_CTYPE_LOWER_A_THRU_F_N(N): \
-   case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \
-   case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \
-   case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \
-   case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \
-   case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N)
-
-/* Cases for hex letters, digits, lower, punct, and upper.  */
-
-#define _C_CTYPE_A_THRU_F \
-   _C_CTYPE_LOWER_A_THRU_F_N (0): \
-   _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a')
-#define _C_CTYPE_DIGIT                     \
-   case '0': case '1': case '2': case '3': \
-   case '4': case '5': case '6': case '7': \
-   case '8': case '9'
-#define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0)
-#define _C_CTYPE_PUNCT \
-   case '!': case '"': case '#': case '$':  \
-   case '%': case '&': case '\'': case '(': \
-   case ')': case '*': case '+': case ',':  \
-   case '-': case '.': case '/': case ':':  \
-   case ';': case '<': case '=': case '>':  \
-   case '?': case '@': case '[': case '\\': \
-   case ']': case '^': case '_': case '`':  \
-   case '{': case '|': case '}': case '~'
-#define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a')
-
-
-/* Function definitions.  */
-
-/* Unlike the functions in <ctype.h>, which require an argument in the range
-   of the 'unsigned char' type, the functions here operate on values that are
-   in the 'unsigned char' range or in the 'char' range.  In other words,
-   when you have a 'char' value, you need to cast it before using it as
-   argument to a <ctype.h> function:
-
-         const char *s = ...;
-         if (isalpha ((unsigned char) *s)) ...
-
-   but you don't need to cast it for the functions defined in this file:
-
-         const char *s = ...;
-         if (c_isalpha (*s)) ...
- */
-
-C_CTYPE_INLINE bool
-c_isalnum (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_DIGIT:
-    _C_CTYPE_LOWER:
-    _C_CTYPE_UPPER:
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE bool
-c_isalpha (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_LOWER:
-    _C_CTYPE_UPPER:
-      return true;
-    default:
-      return false;
-    }
-}
-
-/* The function isascii is not locale dependent.
-   Its use in EBCDIC is questionable. */
-C_CTYPE_INLINE bool
-c_isascii (int c)
-{
-  switch (c)
-    {
-    case ' ':
-    _C_CTYPE_CNTRL:
-    _C_CTYPE_DIGIT:
-    _C_CTYPE_LOWER:
-    _C_CTYPE_PUNCT:
-    _C_CTYPE_UPPER:
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE bool
-c_isblank (int c)
-{
-  return c == ' ' || c == '\t';
-}
-
-C_CTYPE_INLINE bool
-c_iscntrl (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_CNTRL:
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE bool
-c_isdigit (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_DIGIT:
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE bool
-c_isgraph (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_DIGIT:
-    _C_CTYPE_LOWER:
-    _C_CTYPE_PUNCT:
-    _C_CTYPE_UPPER:
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE bool
-c_islower (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_LOWER:
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE bool
-c_isprint (int c)
-{
-  switch (c)
-    {
-    case ' ':
-    _C_CTYPE_DIGIT:
-    _C_CTYPE_LOWER:
-    _C_CTYPE_PUNCT:
-    _C_CTYPE_UPPER:
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE bool
-c_ispunct (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_PUNCT:
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE bool
-c_isspace (int c)
-{
-  switch (c)
-    {
-    case ' ': case '\t': case '\n': case '\v': case '\f': case '\r':
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE bool
-c_isupper (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_UPPER:
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE bool
-c_isxdigit (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_DIGIT:
-    _C_CTYPE_A_THRU_F:
-      return true;
-    default:
-      return false;
-    }
-}
-
-C_CTYPE_INLINE int
-c_tolower (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_UPPER:
-      return c - 'A' + 'a';
-    default:
-      return c;
-    }
-}
-
-C_CTYPE_INLINE int
-c_toupper (int c)
-{
-  switch (c)
-    {
-    _C_CTYPE_LOWER:
-      return c - 'a' + 'A';
-    default:
-      return c;
-    }
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-_GL_INLINE_HEADER_END
-
-#endif /* C_CTYPE_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/c-strcase.h 
b/tp/Texinfo/XS/gnulib/lib/c-strcase.h
deleted file mode 100644
index b75e8dd1cb..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c-strcase.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Case-insensitive string comparison functions in C locale.
-   Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2024 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 C_STRCASE_H
-#define C_STRCASE_H
-
-/* This file uses _GL_ATTRIBUTE_PURE.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#include <stddef.h>
-
-
-/* The functions defined in this file assume the "C" locale and a character
-   set without diacritics (ASCII-US or EBCDIC-US or something like that).
-   Even if the "C" locale on a particular system is an extension of the ASCII
-   character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it
-   is ISO-8859-1), the functions in this file recognize only the ASCII
-   characters.  More precisely, one of the string arguments must be an ASCII
-   string; the other one can also contain non-ASCII characters (but then
-   the comparison result will be nonzero).  */
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
-   greater than zero if S1 is lexicographically less than, equal to or greater
-   than S2.  */
-extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE;
-
-/* Compare no more than N characters of strings S1 and S2, ignoring case,
-   returning less than, equal to or greater than zero if S1 is
-   lexicographically less than, equal to or greater than S2.  */
-extern int c_strncasecmp (const char *s1, const char *s2, size_t n)
-  _GL_ATTRIBUTE_PURE;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* C_STRCASE_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/c-strcasecmp.c 
b/tp/Texinfo/XS/gnulib/lib/c-strcasecmp.c
deleted file mode 100644
index 1fa575a856..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c-strcasecmp.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* c-strcasecmp.c -- case insensitive string comparator in C locale
-   Copyright (C) 1998-1999, 2005-2006, 2009-2024 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>
-
-/* Specification.  */
-#include "c-strcase.h"
-
-#include <limits.h>
-
-#include "c-ctype.h"
-
-int
-c_strcasecmp (const char *s1, const char *s2)
-{
-  register const unsigned char *p1 = (const unsigned char *) s1;
-  register const unsigned char *p2 = (const unsigned char *) s2;
-  unsigned char c1, c2;
-
-  if (p1 == p2)
-    return 0;
-
-  do
-    {
-      c1 = c_tolower (*p1);
-      c2 = c_tolower (*p2);
-
-      if (c1 == '\0')
-        break;
-
-      ++p1;
-      ++p2;
-    }
-  while (c1 == c2);
-
-  if (UCHAR_MAX <= INT_MAX)
-    return c1 - c2;
-  else
-    /* On machines where 'char' and 'int' are types of the same size, the
-       difference of two 'unsigned char' values - including the sign bit -
-       doesn't fit in an 'int'.  */
-    return _GL_CMP (c1, c2);
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/c-strcaseeq.h 
b/tp/Texinfo/XS/gnulib/lib/c-strcaseeq.h
deleted file mode 100644
index 0348c559ca..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c-strcaseeq.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/* Optimized case-insensitive string comparison in C locale.
-   Copyright (C) 2001-2002, 2007, 2009-2024 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 Bruno Haible <bruno@clisp.org>.  */
-
-#include "c-strcase.h"
-#include "c-ctype.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* STRCASEEQ allows to optimize string comparison with a small literal string.
-     STRCASEEQ (s, "UTF-8", 'U','T','F','-','8',0,0,0,0)
-   is semantically equivalent to
-     c_strcasecmp (s, "UTF-8") == 0
-   just faster.  */
-
-/* Help GCC to generate good code for string comparisons with
-   immediate strings. */
-#if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__
-
-/* Case insensitive comparison of ASCII characters.  */
-# if C_CTYPE_ASCII
-#  define CASEEQ(other,upper) \
-     (c_isupper (upper) ? ((other) & ~0x20) == (upper) : (other) == (upper))
-# else
-#  define CASEEQ(other,upper) \
-     (c_toupper (other) == (upper))
-# endif
-
-static inline int
-strcaseeq9 (const char *s1, const char *s2)
-{
-  return c_strcasecmp (s1 + 9, s2 + 9) == 0;
-}
-
-static inline int
-strcaseeq8 (const char *s1, const char *s2, char s28)
-{
-  if (CASEEQ (s1[8], s28))
-    {
-      if (s28 == 0)
-        return 1;
-      else
-        return strcaseeq9 (s1, s2);
-    }
-  else
-    return 0;
-}
-
-static inline int
-strcaseeq7 (const char *s1, const char *s2, char s27, char s28)
-{
-  if (CASEEQ (s1[7], s27))
-    {
-      if (s27 == 0)
-        return 1;
-      else
-        return strcaseeq8 (s1, s2, s28);
-    }
-  else
-    return 0;
-}
-
-static inline int
-strcaseeq6 (const char *s1, const char *s2, char s26, char s27, char s28)
-{
-  if (CASEEQ (s1[6], s26))
-    {
-      if (s26 == 0)
-        return 1;
-      else
-        return strcaseeq7 (s1, s2, s27, s28);
-    }
-  else
-    return 0;
-}
-
-static inline int
-strcaseeq5 (const char *s1, const char *s2, char s25, char s26, char s27, char 
s28)
-{
-  if (CASEEQ (s1[5], s25))
-    {
-      if (s25 == 0)
-        return 1;
-      else
-        return strcaseeq6 (s1, s2, s26, s27, s28);
-    }
-  else
-    return 0;
-}
-
-static inline int
-strcaseeq4 (const char *s1, const char *s2, char s24, char s25, char s26, char 
s27, char s28)
-{
-  if (CASEEQ (s1[4], s24))
-    {
-      if (s24 == 0)
-        return 1;
-      else
-        return strcaseeq5 (s1, s2, s25, s26, s27, s28);
-    }
-  else
-    return 0;
-}
-
-static inline int
-strcaseeq3 (const char *s1, const char *s2, char s23, char s24, char s25, char 
s26, char s27, char s28)
-{
-  if (CASEEQ (s1[3], s23))
-    {
-      if (s23 == 0)
-        return 1;
-      else
-        return strcaseeq4 (s1, s2, s24, s25, s26, s27, s28);
-    }
-  else
-    return 0;
-}
-
-static inline int
-strcaseeq2 (const char *s1, const char *s2, char s22, char s23, char s24, char 
s25, char s26, char s27, char s28)
-{
-  if (CASEEQ (s1[2], s22))
-    {
-      if (s22 == 0)
-        return 1;
-      else
-        return strcaseeq3 (s1, s2, s23, s24, s25, s26, s27, s28);
-    }
-  else
-    return 0;
-}
-
-static inline int
-strcaseeq1 (const char *s1, const char *s2, char s21, char s22, char s23, char 
s24, char s25, char s26, char s27, char s28)
-{
-  if (CASEEQ (s1[1], s21))
-    {
-      if (s21 == 0)
-        return 1;
-      else
-        return strcaseeq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28);
-    }
-  else
-    return 0;
-}
-
-static inline int
-strcaseeq0 (const char *s1, const char *s2, char s20, char s21, char s22, char 
s23, char s24, char s25, char s26, char s27, char s28)
-{
-  if (CASEEQ (s1[0], s20))
-    {
-      if (s20 == 0)
-        return 1;
-      else
-        return strcaseeq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28);
-    }
-  else
-    return 0;
-}
-
-#define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
-  strcaseeq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28)
-
-#else
-
-#define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
-  (c_strcasecmp (s1, s2) == 0)
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/c-strncasecmp.c 
b/tp/Texinfo/XS/gnulib/lib/c-strncasecmp.c
deleted file mode 100644
index 4c8b0b6b84..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c-strncasecmp.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* c-strncasecmp.c -- case insensitive string comparator in C locale
-   Copyright (C) 1998-1999, 2005-2006, 2009-2024 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>
-
-/* Specification.  */
-#include "c-strcase.h"
-
-#include <limits.h>
-
-#include "c-ctype.h"
-
-int
-c_strncasecmp (const char *s1, const char *s2, size_t n)
-{
-  register const unsigned char *p1 = (const unsigned char *) s1;
-  register const unsigned char *p2 = (const unsigned char *) s2;
-  unsigned char c1, c2;
-
-  if (p1 == p2 || n == 0)
-    return 0;
-
-  do
-    {
-      c1 = c_tolower (*p1);
-      c2 = c_tolower (*p2);
-
-      if (--n == 0 || c1 == '\0')
-        break;
-
-      ++p1;
-      ++p2;
-    }
-  while (c1 == c2);
-
-  if (UCHAR_MAX <= INT_MAX)
-    return c1 - c2;
-  else
-    /* On machines where 'char' and 'int' are types of the same size, the
-       difference of two 'unsigned char' values - including the sign bit -
-       doesn't fit in an 'int'.  */
-    return _GL_CMP (c1, c2);
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/c32is-impl.h 
b/tp/Texinfo/XS/gnulib/lib/c32is-impl.h
deleted file mode 100644
index 9e9802583f..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c32is-impl.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Test whether a 32-bit wide character belongs to a specific character class.
-   Copyright (C) 2020-2024 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 Bruno Haible <bruno@clisp.org>, 2020.  */
-
-#include <wchar.h>
-#include <wctype.h>
-
-#ifdef __CYGWIN__
-# include <cygwin/version.h>
-#endif
-
-#if GNULIB_defined_mbstate_t
-# include "localcharset.h"
-# include "streq.h"
-#endif
-
-#if GL_CHAR32_T_IS_UNICODE
-# include "lc-charset-unicode.h"
-#endif
-
-#include "unictype.h"
-
-#if _GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t
-_GL_EXTERN_INLINE
-#endif
-int
-FUNC (wint_t wc)
-{
-  /* The char32_t encoding of a multibyte character is defined by the way
-     mbrtoc32() is defined.  */
-
-#if GNULIB_defined_mbstate_t            /* AIX, IRIX */
-  /* mbrtoc32() is defined on top of mbtowc() for the non-UTF-8 locales
-     and directly for the UTF-8 locales.  */
-  if (wc != WEOF)
-    {
-      const char *encoding = locale_charset ();
-      if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
-        return UCS_FUNC (wc);
-      else
-        return WCHAR_FUNC (wc);
-    }
-  else
-    return 0;
-
-#elif HAVE_WORKING_MBRTOC32 && HAVE_WORKING_C32RTOMB /* glibc, Android */
-  /* mbrtoc32() is essentially defined by the system libc.  */
-
-# if _GL_WCHAR_T_IS_UCS4
-  /* The char32_t encoding of a multibyte character is known to be the same as
-     the wchar_t encoding.  */
-  return WCHAR_FUNC (wc);
-# else
-  /* The char32_t encoding of a multibyte character is known to be UCS-4,
-     different from the wchar_t encoding.  */
-  if (wc != WEOF)
-    return UCS_FUNC (wc);
-  else
-    return 0;
-# endif
-
-#elif _GL_SMALL_WCHAR_T                 /* Cygwin, mingw, MSVC */
-  /* The wchar_t encoding is UTF-16.
-     The char32_t encoding is UCS-4.  */
-
-# if defined __CYGWIN__ && CYGWIN_VERSION_DLL_MAJOR >= 1007
-  /* As an extension to POSIX, the iswalnum() function of Cygwin >= 1.7
-     supports also wc arguments outside the Unicode BMP, that is, outside
-     the 'wchar_t' range.  See
-     <https://lists.gnu.org/archive/html/bug-gnulib/2011-02/msg00019.html>
-     = <https://cygwin.com/ml/cygwin/2011-02/msg00044.html>.  */
-  return WCHAR_FUNC (wc);
-# else
-  if (wc == WEOF || wc == (wchar_t) wc)
-    /* wc is in the range for the isw* functions.  */
-    return WCHAR_FUNC (wc);
-  else
-    return UCS_FUNC (wc);
-# endif
-
-#else /* macOS, FreeBSD, NetBSD, OpenBSD, HP-UX, Solaris, Minix, Android */
-  /* char32_t and wchar_t are equivalent.  */
-  static_assert (sizeof (char32_t) == sizeof (wchar_t));
-
-# if GL_CHAR32_T_IS_UNICODE && GL_CHAR32_T_VS_WCHAR_T_NEEDS_CONVERSION
-  return UCS_FUNC (wc);
-# else
-  return WCHAR_FUNC (wc);
-# endif
-#endif
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/c32isprint.c 
b/tp/Texinfo/XS/gnulib/lib/c32isprint.c
deleted file mode 100644
index fd8d7a630a..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c32isprint.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Test 32-bit wide character for being printable.
-   Copyright (C) 2020-2024 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 IN_C32ISPRINT
-/* Specification.  */
-#include <uchar.h>
-
-#define FUNC c32isprint
-#define WCHAR_FUNC iswprint
-#define UCS_FUNC uc_is_print
-#include "c32is-impl.h"
diff --git a/tp/Texinfo/XS/gnulib/lib/calloc.c 
b/tp/Texinfo/XS/gnulib/lib/calloc.c
deleted file mode 100644
index 81dfd3efb5..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/calloc.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* 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-2024 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;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/cloexec.c 
b/tp/Texinfo/XS/gnulib/lib/cloexec.c
deleted file mode 100644
index cdb0d740eb..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/cloexec.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* cloexec.c - set or clear the close-on-exec descriptor flag
-
-   Copyright (C) 1991, 2004-2006, 2009-2024 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/>.  */
-
-/* The code is taken from glibc/manual/llio.texi  */
-
-#include <config.h>
-
-#include "cloexec.h"
-
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
-   or clear the flag if VALUE is false.
-   Return 0 on success, or -1 on error with 'errno' set.
-
-   Note that on MingW, this function does NOT protect DESC from being
-   inherited into spawned children.  Instead, either use dup_cloexec
-   followed by closing the original DESC, or use interfaces such as
-   open or pipe2 that accept flags like O_CLOEXEC to create DESC
-   non-inheritable in the first place.  */
-
-int
-set_cloexec_flag (int desc, bool value)
-{
-#ifdef F_SETFD
-
-  int flags = fcntl (desc, F_GETFD, 0);
-
-  if (0 <= flags)
-    {
-      int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC);
-
-      if (flags == newflags
-          || fcntl (desc, F_SETFD, newflags) != -1)
-        return 0;
-    }
-
-  return -1;
-
-#else /* !F_SETFD */
-
-  /* Use dup2 to reject invalid file descriptors; the cloexec flag
-     will be unaffected.  */
-  if (desc < 0)
-    {
-      errno = EBADF;
-      return -1;
-    }
-  if (dup2 (desc, desc) < 0)
-    /* errno is EBADF here.  */
-    return -1;
-
-  /* There is nothing we can do on this kind of platform.  Punt.  */
-  return 0;
-#endif /* !F_SETFD */
-}
-
-
-/* Duplicates a file handle FD, while marking the copy to be closed
-   prior to exec or spawn.  Returns -1 and sets errno if FD could not
-   be duplicated.  */
-
-int
-dup_cloexec (int fd)
-{
-  return fcntl (fd, F_DUPFD_CLOEXEC, 0);
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/cloexec.h 
b/tp/Texinfo/XS/gnulib/lib/cloexec.h
deleted file mode 100644
index a7944d6dd5..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/cloexec.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* cloexec.c - set or clear the close-on-exec descriptor flag
-
-   Copyright (C) 2004, 2009-2024 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/>.  */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
-   or clear the flag if VALUE is false.
-   Return 0 on success, or -1 on error with 'errno' set.
-
-   Note that on MingW, this function does NOT protect DESC from being
-   inherited into spawned children.  Instead, either use dup_cloexec
-   followed by closing the original DESC, or use interfaces such as
-   open or pipe2 that accept flags like O_CLOEXEC to create DESC
-   non-inheritable in the first place.  */
-
-int set_cloexec_flag (int desc, bool value);
-
-/* Duplicates a file handle FD, while marking the copy to be closed
-   prior to exec or spawn.  Returns -1 and sets errno if FD could not
-   be duplicated.  */
-
-int dup_cloexec (int fd);
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/copy-file-range.c 
b/tp/Texinfo/XS/gnulib/lib/copy-file-range.c
deleted file mode 100644
index e7e3a441c6..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/copy-file-range.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Stub for copy_file_range
-   Copyright 2019-2024 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>
-
-#include <unistd.h>
-
-#include <errno.h>
-
-#if defined __linux__ && HAVE_COPY_FILE_RANGE
-# include <sys/utsname.h>
-#endif
-
-ssize_t
-copy_file_range (int infd, off_t *pinoff,
-                 int outfd, off_t *poutoff,
-                 size_t length, unsigned int flags)
-{
-#undef copy_file_range
-
-#if defined __linux__ && HAVE_COPY_FILE_RANGE
-  /* The implementation of copy_file_range (which first appeared in
-     Linux kernel release 4.5) had many issues before release 5.3
-     <https://lwn.net/Articles/789527/>, so fail with ENOSYS for Linux
-     kernels 5.2 and earlier.
-
-     This workaround, and the configure-time check for Linux, can be
-     removed when such kernels (released March 2016 through September
-     2019) are no longer a consideration.  As of January 2021, the
-     furthest-future planned kernel EOL is December 2024 for kernel
-     release 4.19.  */
-
-    static signed char ok;
-
-    if (! ok)
-      {
-        struct utsname name;
-        uname (&name);
-        char *p = name.release;
-        ok = ((p[1] != '.' || '5' < p[0]
-               || (p[0] == '5' && (p[3] != '.' || '2' < p[2])))
-              ? 1 : -1);
-      }
-
-    if (0 < ok)
-      return copy_file_range (infd, pinoff, outfd, poutoff, length, flags);
-#endif
-
-  /* There is little need to emulate copy_file_range with read+write,
-     since programs that use copy_file_range must fall back on
-     read+write anyway.  */
-  errno = ENOSYS;
-  return -1;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/copy-file.c 
b/tp/Texinfo/XS/gnulib/lib/copy-file.c
deleted file mode 100644
index 60d913e181..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/copy-file.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/* Copying of files.
-   Copyright (C) 2001-2003, 2006-2007, 2009-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-
-#include <config.h>
-
-/* Specification.  */
-#include "copy-file.h"
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#include <error.h>
-#include "ignore-value.h"
-#include "safe-read.h"
-#include "full-write.h"
-#include "stat-time.h"
-#include "utimens.h"
-#include "acl.h"
-#include "binary-io.h"
-#include "quote.h"
-#include "gettext.h"
-
-#define _(str) gettext (str)
-
-enum { IO_SIZE = 32 * 1024 };
-
-static int
-copy_file_internal (const char *src_filename, const char *dest_filename,
-                    bool preserve)
-{
-  int err = 0;
-  int src_fd;
-  struct stat statbuf;
-  int mode;
-  int dest_fd;
-
-  src_fd = open (src_filename, O_RDONLY | O_BINARY | O_CLOEXEC);
-  if (src_fd < 0)
-    return GL_COPY_ERR_OPEN_READ;
-  if (fstat (src_fd, &statbuf) < 0)
-    {
-      err = GL_COPY_ERR_OPEN_READ;
-      goto error_src;
-    }
-
-  mode = statbuf.st_mode & 07777;
-  off_t inbytes = S_ISREG (statbuf.st_mode) ? statbuf.st_size : -1;
-  bool empty_regular_file = inbytes == 0;
-
-  dest_fd = open (dest_filename,
-                  O_WRONLY | O_CREAT | O_TRUNC | O_BINARY | O_CLOEXEC,
-                  /* If preserve is true, we must assume that the file may
-                     have confidential contents.  Therefore open it with mode
-                     0600 and assign the permissions at the end.
-                     If preserve is false, open it with mode 0666 & ~umask.  */
-                  preserve ? 0600 : 0666);
-  if (dest_fd < 0)
-    {
-      err = GL_COPY_ERR_OPEN_BACKUP_WRITE;
-      goto error_src;
-    }
-
-  /* Copy the file contents.  FIXME: Do not copy holes.  */
-  while (0 < inbytes)
-    {
-      size_t copy_max = -1;
-      copy_max -= copy_max % IO_SIZE;
-      size_t len = inbytes < copy_max ? inbytes : copy_max;
-      ssize_t copied = copy_file_range (src_fd, NULL, dest_fd, NULL, len, 0);
-      if (copied <= 0)
-        break;
-      inbytes -= copied;
-    }
-
-  /* Finish up with read/write, in case the file was not a regular
-     file, or the file shrank or had I/O errors (in which case find
-     whether it was a read or write error).  Read empty regular files
-     since they might be in /proc with their true sizes unknown until
-     they are read.  */
-  if (inbytes != 0 || empty_regular_file)
-    {
-      char smallbuf[1024];
-      int bufsize = IO_SIZE;
-      char *buf = malloc (bufsize);
-      if (!buf)
-        buf = smallbuf, bufsize = sizeof smallbuf;
-
-      while (true)
-        {
-          size_t n_read = safe_read (src_fd, buf, bufsize);
-          if (n_read == 0)
-            break;
-          if (n_read == SAFE_READ_ERROR)
-            {
-              err = GL_COPY_ERR_READ;
-              break;
-            }
-          if (full_write (dest_fd, buf, n_read) < n_read)
-            {
-              err = GL_COPY_ERR_WRITE;
-              break;
-            }
-        }
-
-      if (buf != smallbuf)
-        free (buf);
-      if (err)
-        goto error_src_dest;
-    }
-
-#if !USE_ACL
-  if (close (dest_fd) < 0)
-    {
-      err = GL_COPY_ERR_WRITE;
-      goto error_src;
-    }
-  if (close (src_fd) < 0)
-    return GL_COPY_ERR_AFTER_READ;
-#endif
-
-  if (preserve)
-    {
-      /* Preserve the access and modification times.  */
-      {
-        struct timespec ts[2];
-
-        ts[0] = get_stat_atime (&statbuf);
-        ts[1] = get_stat_mtime (&statbuf);
-        utimens (dest_filename, ts);
-      }
-
-#if HAVE_CHOWN
-      /* Preserve the owner and group.  */
-      ignore_value (chown (dest_filename, statbuf.st_uid, statbuf.st_gid));
-#endif
-
-      /* Preserve the access permissions.  */
-#if USE_ACL
-      switch (qcopy_acl (src_filename, src_fd, dest_filename, dest_fd, mode))
-        {
-        case -2:
-          err = GL_COPY_ERR_GET_ACL;
-          goto error_src_dest;
-        case -1:
-          err = GL_COPY_ERR_SET_ACL;
-          goto error_src_dest;
-        }
-#else
-      chmod (dest_filename, mode);
-#endif
-    }
-
-#if USE_ACL
-  if (close (dest_fd) < 0)
-    {
-      err = GL_COPY_ERR_WRITE;
-      goto error_src;
-    }
-  if (close (src_fd) < 0)
-    return GL_COPY_ERR_AFTER_READ;
-#endif
-
-  return 0;
-
- error_src_dest:
-  close (dest_fd);
- error_src:
-  close (src_fd);
-  return err;
-}
-
-int
-qcopy_file_preserving (const char *src_filename, const char *dest_filename)
-{
-  return copy_file_internal (src_filename, dest_filename, true);
-}
-
-int
-copy_file_to (const char *src_filename, const char *dest_filename)
-{
-  return copy_file_internal (src_filename, dest_filename, false);
-}
-
-static void
-handle_error_code (int err, const char *src_filename, const char 
*dest_filename)
-{
-  switch (err)
-    {
-    case 0:
-      return;
-
-    case GL_COPY_ERR_OPEN_READ:
-      error (EXIT_FAILURE, errno, _("error while opening %s for reading"),
-             quote (src_filename));
-
-    case GL_COPY_ERR_OPEN_BACKUP_WRITE:
-      error (EXIT_FAILURE, errno, _("cannot open backup file %s for writing"),
-             quote (dest_filename));
-
-    case GL_COPY_ERR_READ:
-      error (EXIT_FAILURE, errno, _("error reading %s"),
-             quote (src_filename));
-
-    case GL_COPY_ERR_WRITE:
-      error (EXIT_FAILURE, errno, _("error writing %s"),
-             quote (dest_filename));
-
-    case GL_COPY_ERR_AFTER_READ:
-      error (EXIT_FAILURE, errno, _("error after reading %s"),
-             quote (src_filename));
-
-    case GL_COPY_ERR_GET_ACL:
-      error (EXIT_FAILURE, errno, "%s", quote (src_filename));
-
-    case GL_COPY_ERR_SET_ACL:
-      error (EXIT_FAILURE, errno, _("preserving permissions for %s"),
-             quote (dest_filename));
-
-    default:
-      abort ();
-    }
-}
-
-void
-xcopy_file_preserving (const char *src_filename, const char *dest_filename)
-{
-  int err = qcopy_file_preserving (src_filename, dest_filename);
-  handle_error_code (err, src_filename, dest_filename);
-}
-
-void
-copy_file_preserving (const char *src_filename, const char *dest_filename)
-{
-  xcopy_file_preserving (src_filename, dest_filename);
-}
-
-void
-xcopy_file_to (const char *src_filename, const char *dest_filename)
-{
-  int err = copy_file_to (src_filename, dest_filename);
-  handle_error_code (err, src_filename, dest_filename);
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/copy-file.h 
b/tp/Texinfo/XS/gnulib/lib/copy-file.h
deleted file mode 100644
index 3f5aa72d0f..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/copy-file.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copying of files.
-   Copyright (C) 2001-2003, 2009-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-
-/* This file uses _GL_ATTRIBUTE_DEPRECATED.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Error codes returned by qcopy_file_preserving or copy_file_to.  */
-enum
-{
-  GL_COPY_ERR_OPEN_READ = -1,
-  GL_COPY_ERR_OPEN_BACKUP_WRITE = -2,
-  GL_COPY_ERR_READ = -3,
-  GL_COPY_ERR_WRITE = -4,
-  GL_COPY_ERR_AFTER_READ = -5,
-  GL_COPY_ERR_GET_ACL = -6,
-  GL_COPY_ERR_SET_ACL = -7
-};
-
-
-/* Copy a regular file: from src_filename to dest_filename.
-   The destination file is assumed to be a backup file.
-   Modification times, owner, group and access permissions are preserved as
-   far as possible (similarly to what 'cp -p SRC DEST' would do).
-   Return 0 if successful, otherwise set errno and return one of the error
-   codes above.  */
-extern int qcopy_file_preserving (const char *src_filename, const char 
*dest_filename);
-
-/* Copy a regular file: from src_filename to dest_filename.
-   The destination file is assumed to be a backup file.
-   Modification times, owner, group and access permissions are preserved as
-   far as possible (similarly to what 'cp -p SRC DEST' would do).
-   Exit upon failure.  */
-extern void xcopy_file_preserving (const char *src_filename, const char 
*dest_filename);
-
-/* Old name of xcopy_file_preserving.  */
-_GL_ATTRIBUTE_DEPRECATED void copy_file_preserving (const char *src_filename, 
const char *dest_filename);
-
-
-/* Copy a regular file: from src_filename to dest_filename.
-   The source file is assumed to be not confidential.
-   Modification times, owner, group and access permissions of src_filename
-   are *not* copied over to dest_filename (similarly to what 'cat SRC > DEST'
-   would do; if DEST already exists, this is the same as what 'cp SRC DEST'
-   would do.)
-   Return 0 if successful, otherwise set errno and return one of the error
-   codes above.  */
-extern int copy_file_to (const char *src_filename, const char *dest_filename);
-
-/* Copy a regular file: from src_filename to dest_filename.
-   The source file is assumed to be not confidential.
-   Modification times, owner, group and access permissions of src_filename
-   are *not* copied over to dest_filename (similarly to what 'cat SRC > DEST'
-   would do; if DEST already exists, this is the same as what 'cp SRC DEST'
-   would do.)
-   Exit upon failure.  */
-extern void xcopy_file_to (const char *src_filename, const char 
*dest_filename);
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/error.c b/tp/Texinfo/XS/gnulib/lib/error.c
deleted file mode 100644
index 6816805326..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/error.c
+++ /dev/null
@@ -1,375 +0,0 @@
-/* Error handler for noninteractive utilities
-   Copyright (C) 1990-2024 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/>.  */
-
-/* Written by David MacKenzie <djm@gnu.ai.mit.edu>.  */
-
-#if !_LIBC
-# include <config.h>
-# define _GL_NO_INLINE_ERROR
-# define __error_internal(status, err, fmt, args, flags) \
-                  verror (status, err, fmt, args)
-# define __error_at_line_internal(status, err, file, line, fmt, args, flags) \
-                  verror_at_line (status, err, file, line, fmt, args)
-# define error_tail(status, err, fmt, args, flags) \
-        error_tail (status, err, fmt, args)
-#endif
-
-#include <error.h>
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#if !_LIBC && ENABLE_NLS
-# include "gettext.h"
-# define _(msgid) gettext (msgid)
-#endif
-
-#ifdef _LIBC
-# include <libintl.h>
-# include <stdbool.h>
-# include <stdint.h>
-# include <wchar.h>
-# define mbsrtowcs __mbsrtowcs
-# define USE_UNLOCKED_IO 0
-# define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(a, b)
-# define _GL_ARG_NONNULL(a)
-#endif
-
-#if USE_UNLOCKED_IO
-# include "unlocked-io.h"
-#endif
-
-#ifndef _
-# define _(String) String
-#endif
-
-/* If NULL, error will flush stdout, then print on stderr the program
-   name, a colon and a space.  Otherwise, error will call this
-   function without parameters instead.  */
-void (*error_print_progname) (void);
-
-/* This variable is incremented each time 'error' is called.  */
-unsigned int error_message_count;
-
-#ifdef _LIBC
-/* In the GNU C library, there is a predefined variable for this.  */
-
-# define program_name program_invocation_name
-# include <errno.h>
-# include <limits.h>
-# include <libio/libioP.h>
-
-/* In GNU libc we want do not want to use the common name 'error' directly.
-   Instead make it a weak alias.  */
-extern void __error (int status, int errnum, const char *message, ...)
-     __attribute__ ((__format__ (__printf__, 3, 4)));
-extern void __error_at_line (int status, int errnum, const char *file_name,
-                             unsigned int line_number, const char *message,
-                             ...)
-     __attribute__ ((__format__ (__printf__, 5, 6)));
-# define error __error
-# define error_at_line __error_at_line
-
-# include <libio/iolibio.h>
-# define fflush(s) _IO_fflush (s)
-# undef putc
-# define putc(c, fp) _IO_putc (c, fp)
-
-# include <libc-lock.h>
-
-#else /* not _LIBC */
-
-# include <fcntl.h>
-# include <unistd.h>
-
-# if defined _WIN32 && ! defined __CYGWIN__
-/* Get declarations of the native Windows API functions.  */
-#  define WIN32_LEAN_AND_MEAN
-#  include <windows.h>
-/* Get _get_osfhandle.  */
-#  if GNULIB_MSVC_NOTHROW
-#   include "msvc-nothrow.h"
-#  else
-#   include <io.h>
-#  endif
-# endif
-
-/* The gnulib override of fcntl is not needed in this file.  */
-# undef fcntl
-
-# if !(GNULIB_STRERROR_R_POSIX || HAVE_DECL_STRERROR_R)
-#  ifndef HAVE_DECL_STRERROR_R
-"this configure-time declaration test was not run"
-#  endif
-#  if STRERROR_R_CHAR_P
-char *strerror_r (int errnum, char *buf, size_t buflen);
-#  else
-int strerror_r (int errnum, char *buf, size_t buflen);
-#  endif
-# endif
-
-# define program_name getprogname ()
-
-# if GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r
-#  define __strerror_r strerror_r
-# endif /* GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r */
-
-# if GNULIB_defined_verror
-#  undef verror
-# endif
-# if GNULIB_defined_verror_at_line
-#  undef verror_at_line
-# endif
-#endif  /* not _LIBC */
-
-#if !_LIBC
-/* Return non-zero if FD is open.  */
-static int
-is_open (int fd)
-{
-# if defined _WIN32 && ! defined __CYGWIN__
-  /* On native Windows: The initial state of unassigned standard file
-     descriptors is that they are open but point to an INVALID_HANDLE_VALUE.
-     There is no fcntl, and the gnulib replacement fcntl does not support
-     F_GETFL.  */
-  return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE;
-# else
-#  ifndef F_GETFL
-#   error Please port fcntl to your platform
-#  endif
-  return 0 <= fcntl (fd, F_GETFL);
-# endif
-}
-#endif
-
-static void
-flush_stdout (void)
-{
-#if !_LIBC
-  int stdout_fd;
-
-# if GNULIB_FREOPEN_SAFER
-  /* Use of gnulib's freopen-safer module normally ensures that
-       fileno (stdout) == 1
-     whenever stdout is open.  */
-  stdout_fd = STDOUT_FILENO;
-# else
-  /* POSIX states that fileno (stdout) after fclose is unspecified.  But in
-     practice it is not a problem, because stdout is statically allocated and
-     the fd of a FILE stream is stored as a field in its allocated memory.  */
-  stdout_fd = fileno (stdout);
-# endif
-  /* POSIX states that fflush (stdout) after fclose is unspecified; it
-     is safe in glibc, but not on all other platforms.  fflush (NULL)
-     is always defined, but too draconian.  */
-  if (0 <= stdout_fd && is_open (stdout_fd))
-#endif
-    fflush (stdout);
-}
-
-static void
-print_errno_message (int errnum)
-{
-  char const *s;
-
-#if _LIBC || GNULIB_STRERROR_R_POSIX || defined HAVE_STRERROR_R
-  char errbuf[1024];
-# if _LIBC || (!GNULIB_STRERROR_R_POSIX && STRERROR_R_CHAR_P)
-  s = __strerror_r (errnum, errbuf, sizeof errbuf);
-# else
-  if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
-    s = errbuf;
-  else
-    s = 0;
-# endif
-#else
-  s = strerror (errnum);
-#endif
-
-#if !_LIBC
-  if (! s)
-    s = _("Unknown system error");
-#endif
-
-#if _LIBC
-  __fxprintf (NULL, ": %s", s);
-#else
-  fprintf (stderr, ": %s", s);
-#endif
-}
-
-static void _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3))
-error_tail (int status, int errnum, const char *message, va_list args,
-            unsigned int mode_flags)
-{
-#if _LIBC
-  int ret = __vfxprintf (stderr, message, args, mode_flags);
-  if (ret < 0 && errno == ENOMEM && _IO_fwide (stderr, 0) > 0)
-    /* Leave a trace in case the heap allocation of the message string
-       failed.  */
-    fputws_unlocked (L"out of memory\n", stderr);
-#else
-  vfprintf (stderr, message, args);
-#endif
-
-  ++error_message_count;
-  if (errnum)
-    print_errno_message (errnum);
-#if _LIBC
-  __fxprintf (NULL, "\n");
-#else
-  putc ('\n', stderr);
-#endif
-  fflush (stderr);
-  if (status)
-    exit (status);
-}
-
-
-/* Print the program name and error message MESSAGE, which is a printf-style
-   format string with optional args.
-   If ERRNUM is nonzero, print its corresponding system error message.
-   Exit with status STATUS if it is nonzero.  */
-void
-__error_internal (int status, int errnum, const char *message,
-                  va_list args, unsigned int mode_flags)
-{
-#if defined _LIBC
-  /* We do not want this call to be cut short by a thread
-     cancellation.  Therefore disable cancellation for now.  */
-  int state = PTHREAD_CANCEL_ENABLE;
-  __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state);
-#endif
-
-  flush_stdout ();
-#ifdef _LIBC
-  _IO_flockfile (stderr);
-#endif
-  if (error_print_progname)
-    (*error_print_progname) ();
-  else
-    {
-#if _LIBC
-      __fxprintf (NULL, "%s: ", program_name);
-#else
-      fprintf (stderr, "%s: ", program_name);
-#endif
-    }
-
-  error_tail (status, errnum, message, args, mode_flags);
-
-#ifdef _LIBC
-  _IO_funlockfile (stderr);
-  __pthread_setcancelstate (state, NULL);
-#endif
-}
-
-void
-error (int status, int errnum, const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  __error_internal (status, errnum, message, ap, 0);
-  va_end (ap);
-}
-
-/* Sometimes we want to have at most one error per line.  This
-   variable controls whether this mode is selected or not.  */
-int error_one_per_line;
-
-void
-__error_at_line_internal (int status, int errnum, const char *file_name,
-                          unsigned int line_number, const char *message,
-                          va_list args, unsigned int mode_flags)
-{
-  if (error_one_per_line)
-    {
-      static const char *old_file_name;
-      static unsigned int old_line_number;
-
-      if (old_line_number == line_number
-          && (file_name == old_file_name
-              || (old_file_name != NULL
-                  && file_name != NULL
-                  && strcmp (old_file_name, file_name) == 0)))
-
-        /* Simply return and print nothing.  */
-        return;
-
-      old_file_name = file_name;
-      old_line_number = line_number;
-    }
-
-#if defined _LIBC
-  /* We do not want this call to be cut short by a thread
-     cancellation.  Therefore disable cancellation for now.  */
-  int state = PTHREAD_CANCEL_ENABLE;
-  __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state);
-#endif
-
-  flush_stdout ();
-#ifdef _LIBC
-  _IO_flockfile (stderr);
-#endif
-  if (error_print_progname)
-    (*error_print_progname) ();
-  else
-    {
-#if _LIBC
-      __fxprintf (NULL, "%s:", program_name);
-#else
-      fprintf (stderr, "%s:", program_name);
-#endif
-    }
-
-#if _LIBC
-  __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ",
-              file_name, line_number);
-#else
-  fprintf (stderr, file_name != NULL ? "%s:%u: " : " ",
-           file_name, line_number);
-#endif
-
-  error_tail (status, errnum, message, args, mode_flags);
-
-#ifdef _LIBC
-  _IO_funlockfile (stderr);
-  __pthread_setcancelstate (state, NULL);
-#endif
-}
-
-void
-error_at_line (int status, int errnum, const char *file_name,
-               unsigned int line_number, const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  __error_at_line_internal (status, errnum, file_name, line_number,
-                            message, ap, 0);
-  va_end (ap);
-}
-
-#ifdef _LIBC
-/* Make the weak alias.  */
-# undef error
-# undef error_at_line
-weak_alias (__error, error)
-weak_alias (__error_at_line, error_at_line)
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/error.in.h 
b/tp/Texinfo/XS/gnulib/lib/error.in.h
deleted file mode 100644
index 4804c8c465..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/error.in.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/* Declarations for error-reporting functions.
-   Copyright (C) 1995-1997, 2003, 2006, 2008-2024 Free Software Foundation,
-   Inc.
-   This file is part of the GNU C Library.
-
-   This file is free software: you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General 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 _@GUARD_PREFIX@_ERROR_H
-
-/* No @PRAGMA_SYSTEM_HEADER@ here, because it would prevent
-   -Wimplicit-fallthrough warnings for missing FALLTHROUGH after error(...)
-   or error_at_line(...) invocations.  */
-
-/* The include_next requires a split double-inclusion guard.  */
-#if @HAVE_ERROR_H@ && !defined __MINGW32__
-# @INCLUDE_NEXT@ @NEXT_ERROR_H@
-#endif
-
-#ifndef _@GUARD_PREFIX@_ERROR_H
-#define _@GUARD_PREFIX@_ERROR_H
-
-/* This file uses _GL_ATTRIBUTE_ALWAYS_INLINE, _GL_ATTRIBUTE_COLD,
-   _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_MAYBE_UNUSED.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-/* Get va_list.  */
-#include <stdarg.h>
-
-/* Get 'unreachable'.  */
-#include <stddef.h>
-
-/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM.  
*/
-#include <stdio.h>
-
-/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
-
-#if GNULIB_VFPRINTF_POSIX
-# define _GL_ATTRIBUTE_SPEC_PRINTF_ERROR _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD
-#else
-# define _GL_ATTRIBUTE_SPEC_PRINTF_ERROR _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM
-#endif
-
-/* Helper macro for supporting the compiler's control flow analysis better.
-   It evaluates its arguments only once.
-   Test case: Compile copy-file.c with "gcc -Wimplicit-fallthrough".  */
-#if defined __GNUC__ || defined __clang__
-/* Use 'unreachable' to tell the compiler when the function call does not
-   return.  */
-# define __gl_error_call1(function, status, ...) \
-    ((function) (status, __VA_ARGS__), \
-     (status) != 0 ? unreachable () : (void) 0)
-/* If STATUS is a not a constant, the function call may or may not return;
-   therefore -Wimplicit-fallthrough will produce a warning.  Use a compound
-   statement in order to evaluate STATUS only once.
-   If STATUS is a constant, we don't use a compound statement, because that
-   would trigger a -Wimplicit-fallthrough warning even when STATUS is != 0,
-   when not optimizing.  This causes STATUS to be evaluated twice, but
-   that's OK since it does not have side effects.  */
-# define __gl_error_call(function, status, ...)                 \
-    (__builtin_constant_p (status)                              \
-     ? __gl_error_call1 (function, status, __VA_ARGS__)         \
-     : __extension__                                            \
-       ({                                                       \
-         int const __errstatus = status;                        \
-         __gl_error_call1 (function, __errstatus, __VA_ARGS__); \
-       }))
-#else
-# define __gl_error_call(function, status, ...) \
-    (function) (status, __VA_ARGS__)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Print a message with 'fprintf (stderr, FORMAT, ...)';
-   if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
-   If STATUS is nonzero, terminate the program with 'exit (STATUS)'.  */
-#if @REPLACE_ERROR@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  undef error
-#  define error rpl_error
-# endif
-_GL_FUNCDECL_RPL (error, void,
-                  (int __status, int __errnum, const char *__format, ...),
-                  _GL_ATTRIBUTE_COLD
-                  _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 
4)));
-_GL_CXXALIAS_RPL (error, void,
-                  (int __status, int __errnum, const char *__format, ...));
-# ifndef _GL_NO_INLINE_ERROR
-#  undef error
-#  define error(status, ...) \
-     __gl_error_call (rpl_error, status, __VA_ARGS__)
-# endif
-#else
-# if ! @HAVE_ERROR@
-_GL_FUNCDECL_SYS (error, void,
-                  (int __status, int __errnum, const char *__format, ...),
-                  _GL_ATTRIBUTE_COLD
-                  _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 
4)));
-# endif
-_GL_CXXALIAS_SYS (error, void,
-                  (int __status, int __errnum, const char *__format, ...));
-# ifndef _GL_NO_INLINE_ERROR
-#  ifdef error
-/* Only gcc ≥ 4.7 has __builtin_va_arg_pack.  */
-#   if _GL_GNUC_PREREQ (4, 7)
-#    pragma GCC diagnostic push
-#    pragma GCC diagnostic ignored "-Wattributes"
-_GL_ATTRIBUTE_MAYBE_UNUSED
-static void
-_GL_ATTRIBUTE_ALWAYS_INLINE _GL_ATTRIBUTE_COLD
-_GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4))
-_gl_inline_error (int __status, int __errnum, const char *__format, ...)
-{
-  return error (__status, __errnum, __format, __builtin_va_arg_pack ());
-}
-#    pragma GCC diagnostic pop
-#    undef error
-#    define error(status, ...) \
-       __gl_error_call (_gl_inline_error, status, __VA_ARGS__)
-#   endif
-#  else
-#   define error(status, ...) \
-      __gl_error_call (error, status, __VA_ARGS__)
-#  endif
-# endif
-#endif
-#if __GLIBC__ >= 2
-_GL_CXXALIASWARN (error);
-#endif
-
-/* Likewise.  If FILENAME is non-NULL, include FILENAME:LINENO: in the
-   message.  */
-#if @REPLACE_ERROR_AT_LINE@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  undef error_at_line
-#  define error_at_line rpl_error_at_line
-# endif
-_GL_FUNCDECL_RPL (error_at_line, void,
-                  (int __status, int __errnum, const char *__filename,
-                   unsigned int __lineno, const char *__format, ...),
-                  _GL_ATTRIBUTE_COLD
-                  _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 
6)));
-_GL_CXXALIAS_RPL (error_at_line, void,
-                  (int __status, int __errnum, const char *__filename,
-                   unsigned int __lineno, const char *__format, ...));
-# ifndef _GL_NO_INLINE_ERROR
-#  undef error_at_line
-#  define error_at_line(status, ...) \
-     __gl_error_call (rpl_error_at_line, status, __VA_ARGS__)
-# endif
-#else
-# if ! @HAVE_ERROR_AT_LINE@
-_GL_FUNCDECL_SYS (error_at_line, void,
-                  (int __status, int __errnum, const char *__filename,
-                   unsigned int __lineno, const char *__format, ...),
-                  _GL_ATTRIBUTE_COLD
-                  _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 
6)));
-# endif
-_GL_CXXALIAS_SYS (error_at_line, void,
-                  (int __status, int __errnum, const char *__filename,
-                   unsigned int __lineno, const char *__format, ...));
-# ifndef _GL_NO_INLINE_ERROR
-#  ifdef error_at_line
-/* Only gcc ≥ 4.7 has __builtin_va_arg_pack.  */
-#   if _GL_GNUC_PREREQ (4, 7)
-#    pragma GCC diagnostic push
-#    pragma GCC diagnostic ignored "-Wattributes"
-_GL_ATTRIBUTE_MAYBE_UNUSED
-static void
-_GL_ATTRIBUTE_ALWAYS_INLINE _GL_ATTRIBUTE_COLD
-_GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6))
-_gl_inline_error_at_line (int __status, int __errnum, const char *__filename,
-                          unsigned int __lineno, const char *__format, ...)
-{
-  return error_at_line (__status, __errnum, __filename, __lineno, __format,
-                        __builtin_va_arg_pack ());
-}
-#    pragma GCC diagnostic pop
-#    undef error_at_line
-#    define error_at_line(status, ...) \
-       __gl_error_call (_gl_inline_error_at_line, status, __VA_ARGS__)
-#   endif
-#  else
-#   define error_at_line(status, ...) \
-      __gl_error_call (error_at_line, status, __VA_ARGS__)
-#  endif
-# endif
-#endif
-_GL_CXXALIASWARN (error_at_line);
-
-/* Print a message with 'vfprintf (stderr, FORMAT, ARGS)';
-   if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
-   If STATUS is nonzero, terminate the program with 'exit (STATUS)'.
-   Use the globals error_print_progname and error_message_count similarly
-   to error().  */
-
-extern void verror (int __status, int __errnum, const char *__format,
-                    va_list __args)
-     _GL_ATTRIBUTE_COLD
-     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 0));
-#ifndef _GL_NO_INLINE_ERROR
-# ifndef verror
-#  define verror(status, ...) \
-     __gl_error_call (verror, status, __VA_ARGS__)
-#  define GNULIB_defined_verror 1
-# endif
-#endif
-
-/* Print a message with 'vfprintf (stderr, FORMAT, ARGS)';
-   if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
-   If STATUS is nonzero, terminate the program with 'exit (STATUS)'.
-   If FNAME is not NULL, prepend the message with "FNAME:LINENO:".
-   Use the globals error_print_progname, error_message_count, and
-   error_one_per_line similarly to error_at_line().  */
-
-extern void verror_at_line (int __status, int __errnum, const char *__fname,
-                            unsigned int __lineno, const char *__format,
-                            va_list __args)
-     _GL_ATTRIBUTE_COLD
-     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 5, 0));
-#ifdef _GL_NO_INLINE_ERROR
-# ifndef verror_at_line
-#  define verror_at_line(status, ...) \
-     __gl_error_call (verror_at_line, status, __VA_ARGS__)
-#  define GNULIB_defined_verror_at_line 1
-# endif
-#endif
-
-/* If NULL, error will flush stdout, then print on stderr the program
-   name, a colon and a space.  Otherwise, error will call this
-   function without parameters instead.  */
-extern void (*error_print_progname) (void);
-
-/* This variable is incremented each time 'error' is called.  */
-extern unsigned int error_message_count;
-
-/* Sometimes we want to have at most one error per line.  This
-   variable controls whether this mode is selected or not.  */
-extern int error_one_per_line;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _@GUARD_PREFIX@_ERROR_H */
-#endif /* _@GUARD_PREFIX@_ERROR_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/exitfail.c 
b/tp/Texinfo/XS/gnulib/lib/exitfail.c
deleted file mode 100644
index 8a5962e82f..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/exitfail.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Failure exit status
-
-   Copyright (C) 2002-2003, 2005-2007, 2009-2024 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>
-
-#include "exitfail.h"
-
-#include <stdlib.h>
-
-int volatile exit_failure = EXIT_FAILURE;
diff --git a/tp/Texinfo/XS/gnulib/lib/exitfail.h 
b/tp/Texinfo/XS/gnulib/lib/exitfail.h
deleted file mode 100644
index fa264b5c8c..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/exitfail.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Failure exit status
-
-   Copyright (C) 2002, 2009-2024 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/>.  */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-extern int volatile exit_failure;
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/fstat.c b/tp/Texinfo/XS/gnulib/lib/fstat.c
deleted file mode 100644
index 205d5aab80..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/fstat.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* fstat() replacement.
-   Copyright (C) 2011-2024 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/>.  */
-
-/* If the user's config.h happens to include <sys/stat.h>, let it include only
-   the system's <sys/stat.h> here, so that orig_fstat doesn't recurse to
-   rpl_fstat.  */
-#define __need_system_sys_stat_h
-#include <config.h>
-
-/* Get the original definition of fstat.  It might be defined as a macro.  */
-#include <sys/types.h>
-#include <sys/stat.h>
-#undef __need_system_sys_stat_h
-
-#if defined _WIN32 && ! defined __CYGWIN__
-# define WINDOWS_NATIVE
-#endif
-
-#if !defined WINDOWS_NATIVE
-
-static int
-orig_fstat (int fd, struct stat *buf)
-{
-  return fstat (fd, buf);
-}
-
-#endif
-
-/* Specification.  */
-#ifdef __osf__
-/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
-   eliminates this include because of the preliminary #include <sys/stat.h>
-   above.  */
-# include "sys/stat.h"
-#else
-# include <sys/stat.h>
-#endif
-
-#include "stat-time.h"
-
-#include <errno.h>
-#include <unistd.h>
-#ifdef WINDOWS_NATIVE
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-# if GNULIB_MSVC_NOTHROW
-#  include "msvc-nothrow.h"
-# else
-#  include <io.h>
-# endif
-# include "stat-w32.h"
-#endif
-
-int
-rpl_fstat (int fd, struct stat *buf)
-{
-#if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY
-  /* Handle the case when rpl_open() used a dummy file descriptor to work
-     around an open() that can't normally visit directories.  */
-  const char *name = _gl_directory_name (fd);
-  if (name != NULL)
-    return stat (name, buf);
-#endif
-
-#ifdef WINDOWS_NATIVE
-  /* Fill the fields ourselves, because the original fstat function returns
-     values for st_atime, st_mtime, st_ctime that depend on the current time
-     zone.  See
-     <https://lists.gnu.org/r/bug-gnulib/2017-04/msg00134.html>  */
-  HANDLE h = (HANDLE) _get_osfhandle (fd);
-
-  if (h == INVALID_HANDLE_VALUE)
-    {
-      errno = EBADF;
-      return -1;
-    }
-  return _gl_fstat_by_handle (h, NULL, buf);
-#else
-  return stat_time_normalize (orig_fstat (fd, buf), buf);
-#endif
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/full-write.c 
b/tp/Texinfo/XS/gnulib/lib/full-write.c
deleted file mode 100644
index 0559a0a128..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/full-write.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* An interface to read and write that retries (if necessary) until complete.
-
-   Copyright (C) 1993-1994, 1997-2006, 2009-2024 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>
-
-/* Specification.  */
-#ifdef FULL_READ
-# include "full-read.h"
-#else
-# include "full-write.h"
-#endif
-
-#include <errno.h>
-
-#ifdef FULL_READ
-# include "safe-read.h"
-# define safe_rw safe_read
-# define full_rw full_read
-# undef const
-# define const /* empty */
-#else
-# include "safe-write.h"
-# define safe_rw safe_write
-# define full_rw full_write
-#endif
-
-#ifdef FULL_READ
-/* Set errno to zero upon EOF.  */
-# define ZERO_BYTE_TRANSFER_ERRNO 0
-#else
-/* Some buggy drivers return 0 when one tries to write beyond
-   a device's end.  (Example: Linux 1.2.13 on /dev/fd0.)
-   Set errno to ENOSPC so they get a sensible diagnostic.  */
-# define ZERO_BYTE_TRANSFER_ERRNO ENOSPC
-#endif
-
-/* Write(read) COUNT bytes at BUF to(from) descriptor FD, retrying if
-   interrupted or if a partial write(read) occurs.  Return the number
-   of bytes transferred.
-   When writing, set errno if fewer than COUNT bytes are written.
-   When reading, if fewer than COUNT bytes are read, you must examine
-   errno to distinguish failure from EOF (errno == 0).  */
-idx_t
-full_rw (int fd, const void *buf, idx_t count)
-{
-  idx_t total = 0;
-  const char *ptr = (const char *) buf;
-
-  while (count > 0)
-    {
-      ptrdiff_t n_rw = safe_rw (fd, ptr, count);
-      if (n_rw < 0)
-        break;
-      if (n_rw == 0)
-        {
-          errno = ZERO_BYTE_TRANSFER_ERRNO;
-          break;
-        }
-      total += n_rw;
-      ptr += n_rw;
-      count -= n_rw;
-    }
-
-  return total;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/full-write.h 
b/tp/Texinfo/XS/gnulib/lib/full-write.h
deleted file mode 100644
index 7265499618..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/full-write.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* An interface to write() that writes all it is asked to write.
-
-   Copyright (C) 2002-2003, 2009-2024 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 <stddef.h>
-
-#include "idx.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Write COUNT bytes at BUF to descriptor FD, retrying if interrupted
-   or if partial writes occur.  Return the number of bytes successfully
-   written, setting errno if that is less than COUNT.  */
-extern idx_t full_write (int fd, const void *buf, idx_t count);
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/get-permissions.c 
b/tp/Texinfo/XS/gnulib/lib/get-permissions.c
deleted file mode 100644
index 36848d3d08..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/get-permissions.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/* Get permissions of a file.  -*- coding: utf-8 -*-
-
-   Copyright (C) 2002-2003, 2005-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.
-
-   Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible.  */
-
-#include <config.h>
-
-#include <string.h>
-#include "acl.h"
-
-#include "acl-internal.h"
-
-/* Read the permissions of a file into CTX. If DESC is a valid file descriptor,
-   use file descriptor operations, else use filename based operations on NAME.
-   MODE is the file mode obtained from a previous stat call.
-   Return 0 if successful.  Return -1 and set errno upon failure.  */
-
-int
-get_permissions (const char *name, int desc, mode_t mode,
-                 struct permission_context *ctx)
-{
-  memset (ctx, 0, sizeof *ctx);
-  ctx->mode = mode;
-
-#if USE_ACL && HAVE_ACL_GET_FILE
-  /* POSIX 1003.1e (draft 17 -- abandoned) specific version.  */
-  /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */
-# if !HAVE_ACL_TYPE_EXTENDED
-  /* Linux, FreeBSD, IRIX, Tru64, Cygwin >= 2.5 */
-
-  if (HAVE_ACL_GET_FD && desc != -1)
-    ctx->acl = acl_get_fd (desc);
-  else
-    ctx->acl = acl_get_file (name, ACL_TYPE_ACCESS);
-  if (ctx->acl == NULL)
-    return acl_errno_valid (errno) ? -1 : 0;
-
-  /* With POSIX ACLs, a file cannot have "no" acl; a file without
-     extended permissions has a "minimal" acl which is equivalent to the
-     file mode.  */
-
-  if (S_ISDIR (mode))
-    {
-      ctx->default_acl = acl_get_file (name, ACL_TYPE_DEFAULT);
-      if (ctx->default_acl == NULL)
-        return -1;
-    }
-
-#  if HAVE_ACL_TYPE_NFS4  /* FreeBSD */
-
-  /* TODO (see set_permissions). */
-
-#  endif
-
-# else /* HAVE_ACL_TYPE_EXTENDED */
-  /* Mac OS X */
-
-  /* On Mac OS X,  acl_get_file (name, ACL_TYPE_ACCESS)
-     and           acl_get_file (name, ACL_TYPE_DEFAULT)
-     always return NULL / EINVAL.  You have to use
-                   acl_get_file (name, ACL_TYPE_EXTENDED)
-     or            acl_get_fd (open (name, ...))
-     to retrieve an ACL.
-     On the other hand,
-                   acl_set_file (name, ACL_TYPE_ACCESS, acl)
-     and           acl_set_file (name, ACL_TYPE_DEFAULT, acl)
-     have the same effect as
-                   acl_set_file (name, ACL_TYPE_EXTENDED, acl):
-     Each of these calls sets the file's ACL.  */
-
-  if (HAVE_ACL_GET_FD && desc != -1)
-    ctx->acl = acl_get_fd (desc);
-  else
-    ctx->acl = acl_get_file (name, ACL_TYPE_EXTENDED);
-  if (ctx->acl == NULL)
-    return acl_errno_valid (errno) ? -1 : 0;
-
-# endif
-
-#elif USE_ACL && defined GETACL /* Solaris, Cygwin, not HP-UX */
-
-  /* Solaris 2.5 through Solaris 10, Cygwin, and contemporaneous versions
-     of Unixware.  The acl() call returns the access and default ACL both
-     at once.  */
-# ifdef ACE_GETACL
-  /* Solaris also has a different variant of ACLs, used in ZFS and NFSv4
-     file systems (whereas the other ones are used in UFS file systems).
-     There is an API
-       pathconf (name, _PC_ACL_ENABLED)
-       fpathconf (desc, _PC_ACL_ENABLED)
-     that allows us to determine which of the two kinds of ACLs is supported
-     for the given file.  But some file systems may implement this call
-     incorrectly, so better not use it.
-     When fetching the source ACL, we simply fetch both ACL types.
-     When setting the destination ACL, we try either ACL types, assuming
-     that the kernel will translate the ACL from one form to the other.
-     (See in <https://docs.oracle.com/cd/E86824_01/html/E54765/acl-2.html>
-     the description of ENOTSUP.)  */
-  for (;;)
-    {
-      int ret;
-
-      if (desc != -1)
-        ret = facl (desc, ACE_GETACLCNT, 0, NULL);
-      else
-        ret = acl (name, ACE_GETACLCNT, 0, NULL);
-      if (ret < 0)
-        {
-          if (errno == ENOSYS || errno == EINVAL)
-            ret = 0;
-          else
-            return -1;
-        }
-      ctx->ace_count = ret;
-
-      if (ctx->ace_count == 0)
-        break;
-
-      ctx->ace_entries = (ace_t *) malloc (ctx->ace_count * sizeof (ace_t));
-      if (ctx->ace_entries == NULL)
-        {
-          errno = ENOMEM;
-          return -1;
-        }
-
-      if (desc != -1)
-        ret = facl (desc, ACE_GETACL, ctx->ace_count, ctx->ace_entries);
-      else
-        ret = acl (name, ACE_GETACL, ctx->ace_count, ctx->ace_entries);
-      if (ret < 0)
-        {
-          if (errno == ENOSYS || errno == EINVAL)
-            {
-              free (ctx->ace_entries);
-              ctx->ace_entries = NULL;
-              ctx->ace_count = 0;
-              break;
-            }
-          else
-            return -1;
-        }
-      if (ret <= ctx->ace_count)
-        {
-          ctx->ace_count = ret;
-          break;
-        }
-      /* Huh? The number of ACL entries has increased since the last call.
-         Repeat.  */
-      free (ctx->ace_entries);
-      ctx->ace_entries = NULL;
-    }
-# endif
-
-  for (;;)
-    {
-      int ret;
-
-      if (desc != -1)
-        ret = facl (desc, GETACLCNT, 0, NULL);
-      else
-        ret = acl (name, GETACLCNT, 0, NULL);
-      if (ret < 0)
-        {
-          if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP)
-            ret = 0;
-          else
-            return -1;
-        }
-      ctx->count = ret;
-
-      if (ctx->count == 0)
-        break;
-
-      ctx->entries = (aclent_t *) malloc (ctx->count * sizeof (aclent_t));
-      if (ctx->entries == NULL)
-        {
-          errno = ENOMEM;
-          return -1;
-        }
-
-      if (desc != -1)
-        ret = facl (desc, GETACL, ctx->count, ctx->entries);
-      else
-        ret = acl (name, GETACL, ctx->count, ctx->entries);
-      if (ret < 0)
-        {
-          if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP)
-            {
-              free (ctx->entries);
-              ctx->entries = NULL;
-              ctx->count = 0;
-              break;
-            }
-          else
-            return -1;
-        }
-      if (ret <= ctx->count)
-        {
-          ctx->count = ret;
-          break;
-        }
-      /* Huh? The number of ACL entries has increased since the last call.
-         Repeat.  */
-      free (ctx->entries);
-      ctx->entries = NULL;
-    }
-
-#elif USE_ACL && HAVE_GETACL /* HP-UX */
-
-  {
-    int ret;
-
-    if (desc != -1)
-      ret = fgetacl (desc, NACLENTRIES, ctx->entries);
-    else
-      ret = getacl (name, NACLENTRIES, ctx->entries);
-    if (ret < 0)
-      {
-        if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
-          ret = 0;
-        else
-          return -1;
-      }
-    else if (ret > NACLENTRIES)
-      /* If NACLENTRIES cannot be trusted, use dynamic memory allocation.  */
-      abort ();
-    ctx->count = ret;
-
-# if HAVE_ACLV_H
-    ret = acl ((char *) name, ACL_GET, NACLVENTRIES, ctx->aclv_entries);
-    if (ret < 0)
-      {
-        if (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
-          ret = 0;
-        else
-          return -2;
-      }
-    else if (ret > NACLVENTRIES)
-      /* If NACLVENTRIES cannot be trusted, use dynamic memory allocation.  */
-      abort ();
-    ctx->aclv_count = ret;
-# endif
-  }
-
-#elif USE_ACL && HAVE_ACLX_GET && ACL_AIX_WIP /* AIX */
-
-  /* TODO (see set_permissions). */
-
-#elif USE_ACL && HAVE_STATACL /* older AIX */
-
-  {
-    int ret;
-    if (desc != -1)
-      ret = fstatacl (desc, STX_NORMAL, &ctx->u.a, sizeof ctx->u);
-    else
-      ret = statacl ((char *) name, STX_NORMAL, &ctx->u.a, sizeof ctx->u);
-    if (ret == 0)
-      ctx->have_u = true;
-  }
-
-#elif USE_ACL && HAVE_ACLSORT /* NonStop Kernel */
-
-  {
-    int ret = acl ((char *) name, ACL_GET, NACLENTRIES, ctx->entries);
-    if (ret < 0)
-      return -1;
-    else if (ret > NACLENTRIES)
-      /* If NACLENTRIES cannot be trusted, use dynamic memory allocation.  */
-      abort ();
-    ctx->count = ret;
-  }
-
-#endif
-
-  return 0;
-
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/getprogname.c 
b/tp/Texinfo/XS/gnulib/lib/getprogname.c
deleted file mode 100644
index 392a9a2f98..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/getprogname.c
+++ /dev/null
@@ -1,312 +0,0 @@
-/* Program name management.
-   Copyright (C) 2016-2024 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 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 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>
-
-/* Specification.  Also get __argv declaration.  */
-#include <stdlib.h>
-
-#include <errno.h> /* get program_invocation_name declaration */
-
-#ifdef _AIX
-# include <unistd.h>
-# include <procinfo.h>
-# include <string.h>
-#endif
-
-#ifdef __MVS__
-# ifndef _OPEN_SYS
-#  define _OPEN_SYS
-# endif
-# include <string.h>
-# include <sys/ps.h>
-#endif
-
-#ifdef __hpux
-# include <unistd.h>
-# include <sys/param.h>
-# include <sys/pstat.h>
-# include <string.h>
-#endif
-
-#if defined __sgi || defined __osf__
-# include <string.h>
-# include <unistd.h>
-# include <stdio.h>
-# include <fcntl.h>
-# include <sys/procfs.h>
-#endif
-
-#if defined __SCO_VERSION__ || defined __sysv5__
-# include <fcntl.h>
-# include <string.h>
-#endif
-
-#include "basename-lgpl.h"
-
-#ifndef HAVE_GETPROGNAME  /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, 
Solaris >= 11, Cygwin, Android API level >= 21 */
-char const *
-getprogname (void)
-{
-# if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME                /* glibc, BeOS */
-  /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */
-  return program_invocation_short_name;
-# elif HAVE_DECL_PROGRAM_INVOCATION_NAME                    /* glibc, BeOS */
-  /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */
-  return last_component (program_invocation_name);
-# elif HAVE_GETEXECNAME                                     /* Solaris */
-  /* https://docs.oracle.com/cd/E19253-01/816-5168/6mbb3hrb1/index.html */
-  const char *p = getexecname ();
-  if (!p)
-    p = "?";
-  return last_component (p);
-# elif HAVE_DECL___ARGV                                     /* mingw, MSVC */
-  /* https://docs.microsoft.com/en-us/cpp/c-runtime-library/argc-argv-wargv */
-  const char *p = __argv && __argv[0] ? __argv[0] : "?";
-  return last_component (p);
-# elif HAVE_VAR___PROGNAME                                  /* OpenBSD, 
Android, QNX */
-  /* https://man.openbsd.org/style.9 */
-  /* 
http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html
 */
-  /* Be careful to declare this only when we absolutely need it
-     (OpenBSD 5.1), rather than when it's available.  Otherwise,
-     its mere declaration makes program_invocation_short_name
-     malfunction (have zero length) with Fedora 25's glibc.  */
-  extern char *__progname;
-  const char *p = __progname;
-#  if defined __ANDROID__
-  return last_component (p);
-#  else
-  return p && p[0] ? p : "?";
-#  endif
-# elif _AIX                                                 /* AIX */
-  /* Idea by Bastien ROUCARIÈS,
-     https://lists.gnu.org/r/bug-gnulib/2010-12/msg00095.html
-     Reference: 
https://www.ibm.com/support/knowledgecenter/en/ssw_aix_61/com.ibm.aix.basetrf1/getprocs.htm
-  */
-  static char *p;
-  static int first = 1;
-  if (first)
-    {
-      first = 0;
-      pid_t pid = getpid ();
-      struct procentry64 procs;
-      p = (0 < getprocs64 (&procs, sizeof procs, NULL, 0, &pid, 1)
-           ? strdup (procs.pi_comm)
-           : NULL);
-      if (!p)
-        p = "?";
-    }
-  return p;
-# elif defined __hpux
-  static char *p;
-  static int first = 1;
-  if (first)
-    {
-      first = 0;
-      pid_t pid = getpid ();
-      struct pst_status status;
-      if (pstat_getproc (&status, sizeof status, 0, pid) > 0)
-        {
-          char *ucomm = status.pst_ucomm;
-          char *cmd = status.pst_cmd;
-          if (strlen (ucomm) < PST_UCOMMLEN - 1)
-            p = ucomm;
-          else
-            {
-              /* ucomm is truncated to length PST_UCOMMLEN - 1.
-                 Look at cmd instead.  */
-              char *space = strchr (cmd, ' ');
-              if (space != NULL)
-                *space = '\0';
-              p = strrchr (cmd, '/');
-              if (p != NULL)
-                p++;
-              else
-                p = cmd;
-              if (strlen (p) > PST_UCOMMLEN - 1
-                  && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0)
-                /* p is less truncated than ucomm.  */
-                ;
-              else
-                p = ucomm;
-            }
-          p = strdup (p);
-        }
-      else
-        {
-#  if !defined __LP64__
-          /* Support for 32-bit programs running in 64-bit HP-UX.
-             The documented way to do this is to use the same source code
-             as above, but in a compilation unit where '#define _PSTAT64 1'
-             is in effect.  I prefer a single compilation unit; the struct
-             size and the offsets are not going to change.  */
-          char status64[1216];
-          if (__pstat_getproc64 (status64, sizeof status64, 0, pid) > 0)
-            {
-              char *ucomm = status64 + 288;
-              char *cmd = status64 + 168;
-              if (strlen (ucomm) < PST_UCOMMLEN - 1)
-                p = ucomm;
-              else
-                {
-                  /* ucomm is truncated to length PST_UCOMMLEN - 1.
-                     Look at cmd instead.  */
-                  char *space = strchr (cmd, ' ');
-                  if (space != NULL)
-                    *space = '\0';
-                  p = strrchr (cmd, '/');
-                  if (p != NULL)
-                    p++;
-                  else
-                    p = cmd;
-                  if (strlen (p) > PST_UCOMMLEN - 1
-                      && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0)
-                    /* p is less truncated than ucomm.  */
-                    ;
-                  else
-                    p = ucomm;
-                }
-              p = strdup (p);
-            }
-          else
-#  endif
-            p = NULL;
-        }
-      if (!p)
-        p = "?";
-    }
-  return p;
-# elif __MVS__                                              /* z/OS */
-  /* 
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/rtwgetp.htm
 */
-  static char *p = "?";
-  static int first = 1;
-  if (first)
-    {
-      pid_t pid = getpid ();
-      int token;
-      W_PSPROC buf;
-      first = 0;
-      memset (&buf, 0, sizeof(buf));
-      buf.ps_cmdptr    = (char *) malloc (buf.ps_cmdlen    = PS_CMDBLEN_LONG);
-      buf.ps_conttyptr = (char *) malloc (buf.ps_conttylen = PS_CONTTYBLEN);
-      buf.ps_pathptr   = (char *) malloc (buf.ps_pathlen   = PS_PATHBLEN);
-      if (buf.ps_cmdptr && buf.ps_conttyptr && buf.ps_pathptr)
-        {
-          for (token = 0; token >= 0;
-               token = w_getpsent (token, &buf, sizeof(buf)))
-            {
-              if (token > 0 && buf.ps_pid == pid)
-                {
-                  char *s = strdup (last_component (buf.ps_pathptr));
-                  if (s)
-                    {
-#  if defined __XPLINK__ && __CHARSET_LIB == 1
-                      /* The compiler option -qascii is in use.
-                         
https://makingdeveloperslivesbetter.wordpress.com/2022/01/07/is-z-os-ascii-or-ebcdic-yes/
-                         
https://www.ibm.com/docs/en/zos/2.5.0?topic=features-macros-related-compiler-option-settings
-                         So, convert the result from EBCDIC to ASCII.
-                         
https://www.ibm.com/docs/en/zos/2.5.0?topic=functions-e2a-s-convert-string-from-ebcdic-ascii
 */
-                      if (__e2a_s (s) == (size_t)-1)
-                        free (s);
-                      else
-#  endif
-                        p = s;
-                    }
-                  break;
-                }
-            }
-        }
-      free (buf.ps_cmdptr);
-      free (buf.ps_conttyptr);
-      free (buf.ps_pathptr);
-    }
-  return p;
-# elif defined __sgi || defined __osf__                     /* IRIX or Tru64 */
-  char filename[50];
-  int fd;
-
-  # 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)
-    {
-      prpsinfo_t buf;
-      int ioctl_ok = 0 <= ioctl (fd, PIOCPSINFO, &buf);
-      close (fd);
-      if (ioctl_ok)
-        {
-          char *name = buf.pr_fname;
-          size_t namesize = sizeof buf.pr_fname;
-          /* It may not be NUL-terminated.  */
-          char *namenul = memchr (name, '\0', namesize);
-          size_t namelen = namenul ? namenul - name : namesize;
-          char *namecopy = malloc (namelen + 1);
-          if (namecopy)
-            {
-              namecopy[namelen] = '\0';
-              return memcpy (namecopy, name, namelen);
-            }
-        }
-    }
-  return NULL;
-# elif defined __SCO_VERSION__ || defined __sysv5__                /* SCO 
OpenServer6/UnixWare */
-  char buf[80];
-  int fd;
-  sprintf (buf, "/proc/%d/cmdline", getpid());
-  fd = open (buf, O_RDONLY);
-  if (0 <= fd)
-    {
-      size_t n = read (fd, buf, 79);
-      if (n > 0)
-        {
-          buf[n] = '\0'; /* Guarantee null-termination */
-          char *progname;
-          progname = strrchr (buf, '/');
-          if (progname)
-            {
-              progname = progname + 1; /* Skip the '/' */
-            }
-          else
-            {
-              progname = buf;
-            }
-          char *ret;
-          ret = malloc (strlen (progname) + 1);
-          if (ret)
-            {
-              strcpy (ret, progname);
-              return ret;
-            }
-        }
-      close (fd);
-    }
-  return "?";
-# else
-#  error "getprogname module not ported to this OS"
-# endif
-}
-
-#endif
-
-/*
- * Hey Emacs!
- * Local Variables:
- * coding: utf-8
- * End:
- */
diff --git a/tp/Texinfo/XS/gnulib/lib/getprogname.h 
b/tp/Texinfo/XS/gnulib/lib/getprogname.h
deleted file mode 100644
index bee1c1a21a..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/getprogname.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Program name management.
-   Copyright (C) 2016-2024 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 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 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 _GL_GETPROGNAME_H
-#define _GL_GETPROGNAME_H
-
-#include <stdlib.h>
-
-#if __GNUC__ || (__clang_major__ >= 4)
-# warning "The include file getprogname.h is deprecated. Use <stdlib.h> 
instead."
-#endif
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/gettime.c 
b/tp/Texinfo/XS/gnulib/lib/gettime.c
deleted file mode 100644
index 38d3685941..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/gettime.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* gettime -- get the system clock
-
-   Copyright (C) 2002, 2004-2007, 2009-2024 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/>.  */
-
-/* Written by Paul Eggert.  */
-
-#include <config.h>
-
-#include "timespec.h"
-
-#include <sys/time.h>
-
-/* Get the system time into *TS.  */
-
-void
-gettime (struct timespec *ts)
-{
-#if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
-  clock_gettime (CLOCK_REALTIME, ts);
-#elif defined HAVE_TIMESPEC_GET
-  timespec_get (ts, TIME_UTC);
-#else
-  struct timeval tv;
-  gettimeofday (&tv, NULL);
-  *ts = (struct timespec) { .tv_sec  = tv.tv_sec,
-                            .tv_nsec = tv.tv_usec * 1000 };
-#endif
-}
-
-/* Return the current system time as a struct timespec.  */
-
-struct timespec
-current_timespec (void)
-{
-  struct timespec ts;
-  gettime (&ts);
-  return ts;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/gettimeofday.c 
b/tp/Texinfo/XS/gnulib/lib/gettimeofday.c
deleted file mode 100644
index 8dd26f73c0..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/gettimeofday.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Provide gettimeofday for systems that don't have it or for which it's 
broken.
-
-   Copyright (C) 2001-2003, 2005-2007, 2009-2024 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 */
-
-#include <config.h>
-
-/* Specification.  */
-#include <sys/time.h>
-
-#include <time.h>
-
-#if defined _WIN32 && ! defined __CYGWIN__
-# define WINDOWS_NATIVE
-# include <windows.h>
-#endif
-
-#ifdef WINDOWS_NATIVE
-
-/* Don't assume that UNICODE is not defined.  */
-# undef LoadLibrary
-# define LoadLibrary LoadLibraryA
-
-# if !(_WIN32_WINNT >= _WIN32_WINNT_WIN8)
-
-/* Avoid warnings from gcc -Wcast-function-type.  */
-#  define GetProcAddress \
-    (void *) GetProcAddress
-
-/* GetSystemTimePreciseAsFileTime was introduced only in Windows 8.  */
-typedef void (WINAPI * GetSystemTimePreciseAsFileTimeFuncType) (FILETIME 
*lpTime);
-static GetSystemTimePreciseAsFileTimeFuncType 
GetSystemTimePreciseAsFileTimeFunc = NULL;
-static BOOL initialized = FALSE;
-
-static void
-initialize (void)
-{
-  HMODULE kernel32 = LoadLibrary ("kernel32.dll");
-  if (kernel32 != NULL)
-    {
-      GetSystemTimePreciseAsFileTimeFunc =
-        (GetSystemTimePreciseAsFileTimeFuncType) GetProcAddress (kernel32, 
"GetSystemTimePreciseAsFileTime");
-    }
-  initialized = TRUE;
-}
-
-# else
-
-#  define GetSystemTimePreciseAsFileTimeFunc GetSystemTimePreciseAsFileTime
-
-# endif
-
-#endif
-
-/* This is a wrapper for gettimeofday.  It is used only on systems
-   that lack this function, or whose implementation of this function
-   causes problems.
-   Work around the bug in some systems whereby gettimeofday clobbers
-   the static buffer that localtime uses for its return value.  The
-   gettimeofday function from Mac OS X 10.0.4 (i.e., Darwin 1.3.7) has
-   this problem.  */
-
-int
-gettimeofday (struct timeval *restrict tv, void *restrict tz)
-{
-#undef gettimeofday
-#ifdef WINDOWS_NATIVE
-
-  /* On native Windows, there are two ways to get the current time:
-     GetSystemTimeAsFileTime
-     
<https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getsystemtimeasfiletime>
-     or
-     GetSystemTimePreciseAsFileTime
-     
<https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getsystemtimepreciseasfiletime>.
-     GetSystemTimeAsFileTime produces values that jump by increments of
-     15.627 milliseconds (!) on average.
-     Whereas GetSystemTimePreciseAsFileTime values usually jump by 1 or 2
-     microseconds.
-     More discussion on this topic:
-     <http://www.windowstimestamp.com/description>.  */
-  FILETIME current_time;
-
-# if !(_WIN32_WINNT >= _WIN32_WINNT_WIN8)
-  if (!initialized)
-    initialize ();
-# endif
-  if (GetSystemTimePreciseAsFileTimeFunc != NULL)
-    GetSystemTimePreciseAsFileTimeFunc (&current_time);
-  else
-    GetSystemTimeAsFileTime (&current_time);
-
-  /* Convert from FILETIME to 'struct timeval'.  */
-  /* FILETIME: 
<https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-filetime>
 */
-  ULONGLONG since_1601 =
-    ((ULONGLONG) current_time.dwHighDateTime << 32)
-    | (ULONGLONG) current_time.dwLowDateTime;
-  /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 leap
-     years, in total 134774 days.  */
-  ULONGLONG since_1970 =
-    since_1601 - (ULONGLONG) 134774 * (ULONGLONG) 86400 * (ULONGLONG) 10000000;
-  ULONGLONG microseconds_since_1970 = since_1970 / (ULONGLONG) 10;
-  *tv = (struct timeval) {
-    .tv_sec  = microseconds_since_1970 / (ULONGLONG) 1000000,
-    .tv_usec = microseconds_since_1970 % (ULONGLONG) 1000000
-  };
-
-  return 0;
-
-#else
-
-# if HAVE_GETTIMEOFDAY
-
-#  if defined timeval /* 'struct timeval' overridden by gnulib?  */
-#   undef timeval
-  struct timeval otv;
-  int result = gettimeofday (&otv, (struct timezone *) tz);
-  if (result == 0)
-    *tv = otv;
-#  else
-  int result = gettimeofday (tv, (struct timezone *) tz);
-#  endif
-
-  return result;
-
-# else
-
-#  if !defined OK_TO_USE_1S_CLOCK
-#   error "Only 1-second nominal clock resolution found.  Is that intended?" \
-          "If so, compile with the -DOK_TO_USE_1S_CLOCK option."
-#  endif
-  *tv = (struct timeval) { .tv_sec = time (NULL), .tv_usec = 0 };
-
-  return 0;
-
-# endif
-#endif
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/hard-locale.c 
b/tp/Texinfo/XS/gnulib/lib/hard-locale.c
deleted file mode 100644
index 653c580925..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/hard-locale.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* hard-locale.c -- Determine whether a locale is hard.
-
-   Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2024 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>
-
-#include "hard-locale.h"
-
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-
-bool
-hard_locale (int category)
-{
-  char locale[SETLOCALE_NULL_MAX];
-
-  if (setlocale_null_r (category, locale, sizeof (locale)))
-    return false;
-
-  if (!(strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0))
-    return true;
-
-#if defined __ANDROID__
-  /* On Android 5.0 or newer, it is possible to set a locale that has the same
-     name as the "C" locale but in fact uses UTF-8 encoding.  Cf. test case 2 
in
-     <https://lists.gnu.org/archive/html/bug-gnulib/2023-01/msg00141.html>.  */
-  if (MB_CUR_MAX > 1)
-    return true;
-#endif
-
-  return false;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/hard-locale.h 
b/tp/Texinfo/XS/gnulib/lib/hard-locale.h
deleted file mode 100644
index 5d40e522a4..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/hard-locale.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Determine whether a locale is hard.
-
-   Copyright (C) 1999, 2003-2004, 2009-2024 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 HARD_LOCALE_H_
-#define HARD_LOCALE_H_ 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Return true if the specified CATEGORY of the current locale is hard, i.e.
-   different from the C or POSIX locale that has a fixed behavior.
-   CATEGORY must be one of the LC_* values, but not LC_ALL.
-   Note: This function uses the current global locale; it ignores the
-   per-thread locale.  */
-extern bool hard_locale (int category);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* HARD_LOCALE_H_ */
diff --git a/tp/Texinfo/XS/gnulib/lib/ialloc.c 
b/tp/Texinfo/XS/gnulib/lib/ialloc.c
deleted file mode 100644
index 8564a15b6a..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/ialloc.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* malloc with idx_t rather than size_t
-
-   Copyright 2021-2024 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 IALLOC_INLINE _GL_EXTERN_INLINE
-#include "ialloc.h"
diff --git a/tp/Texinfo/XS/gnulib/lib/ialloc.h 
b/tp/Texinfo/XS/gnulib/lib/ialloc.h
deleted file mode 100644
index 2aa94ae7ca..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/ialloc.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* ialloc.h -- malloc with idx_t rather than size_t
-
-   Copyright 2021-2024 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 IALLOC_H_
-#define IALLOC_H_
-
-/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_COLD,
-   _GL_ATTRIBUTE_MALLOC.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#include "idx.h"
-
-#include <errno.h>
-#include <stdint.h>
-#include <stdlib.h>
-#if defined __CHERI_PURE_CAPABILITY__
-# include <cheri.h>
-#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;
-}
-
-/* imalloc (size) is like malloc (size).
-   It returns a non-NULL pointer to size bytes of memory.
-   Upon failure, it returns NULL with errno set.  */
-IALLOC_INLINE
-_GL_ATTRIBUTE_MALLOC /*_GL_ATTRIBUTE_DEALLOC_FREE*/
-void *
-imalloc (idx_t s)
-{
-  return s <= SIZE_MAX ? malloc (s) : _gl_alloc_nomem ();
-}
-
-/* irealloc (ptr, size) is like realloc (ptr, size).
-   It returns a non-NULL pointer to size bytes of memory.
-   Upon failure, it returns NULL with errno set.  */
-IALLOC_INLINE
-/*_GL_ATTRIBUTE_DEALLOC_FREE*/
-void *
-irealloc (void *p, idx_t s)
-{
-  if (s <= SIZE_MAX)
-    {
-      /* Work around GNU realloc glitch by treating a zero size as if it
-         were 1, so that returning NULL is equivalent to failing.  */
-      p = realloc (p, s | !s);
-#if defined __CHERI_PURE_CAPABILITY__
-      if (p != NULL)
-        p = cheri_bounds_set (p, s);
-#endif
-      return p;
-    }
-  else
-    return _gl_alloc_nomem ();
-}
-
-/* icalloc (num, size) is like calloc (num, size).
-   It returns a non-NULL pointer to num * size bytes of memory.
-   Upon failure, it returns NULL with errno set.  */
-IALLOC_INLINE
-_GL_ATTRIBUTE_MALLOC /*_GL_ATTRIBUTE_DEALLOC_FREE*/
-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);
-}
-
-/* ireallocarray (ptr, num, size) is like reallocarray (ptr, num, size).
-   It returns a non-NULL pointer to num * size bytes of memory.
-   Upon failure, it returns NULL with errno set.  */
-IALLOC_INLINE void *
-ireallocarray (void *p, idx_t n, idx_t s)
-{
-  if (n <= SIZE_MAX && s <= SIZE_MAX)
-    {
-      /* Work around GNU reallocarray glitch by treating a zero size as if
-         it were 1, so that returning NULL is equivalent to failing.  */
-      size_t nx = n;
-      size_t sx = s;
-      if (n == 0 || s == 0)
-        nx = sx = 1;
-      p = reallocarray (p, nx, sx);
-#if defined __CHERI_PURE_CAPABILITY__
-      if (p != NULL && (n == 0 || s == 0))
-        p = cheri_bounds_set (p, 0);
-#endif
-      return p;
-    }
-  else
-    return _gl_alloc_nomem ();
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-_GL_INLINE_HEADER_END
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/ignore-value.h 
b/tp/Texinfo/XS/gnulib/lib/ignore-value.h
deleted file mode 100644
index de4a240cef..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/ignore-value.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* ignore a function return without a compiler warning.  -*- coding: utf-8 -*-
-
-   Copyright (C) 2008-2024 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, Eric Blake and Pádraig Brady.  */
-
-/* Use "ignore_value" to avoid a warning when using a function declared with
-   gcc's warn_unused_result attribute, but for which you really do want to
-   ignore the result.  Traditionally, people have used a "(void)" cast to
-   indicate that a function's return value is deliberately unused.  However,
-   if the function is declared with __attribute__((warn_unused_result)),
-   gcc issues a warning even with the cast.
-
-   Caution: most of the time, you really should heed gcc's warning, and
-   check the return value.  However, in those exceptional cases in which
-   you're sure you know what you're doing, use this function.
-
-   For the record, here's one of the ignorable warnings:
-   "copy.c:233: warning: ignoring return value of 'fchown',
-   declared with attribute warn_unused_result".  */
-
-#ifndef _GL_IGNORE_VALUE_H
-#define _GL_IGNORE_VALUE_H
-
-/* Normally casting an expression to void discards its value, but GCC
-   versions 3.4 and newer have __attribute__ ((__warn_unused_result__))
-   which may cause unwanted diagnostics in that case.  Use __typeof__
-   and __extension__ to work around the problem, if the workaround is
-   known to be needed.
-   The workaround is not needed with clang.  */
-#if (3 < __GNUC__ + (4 <= __GNUC_MINOR__)) && !defined __clang__
-# define ignore_value(x) \
-    (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; }))
-#else
-# define ignore_value(x) ((void) (x))
-#endif
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/intprops.h 
b/tp/Texinfo/XS/gnulib/lib/intprops.h
deleted file mode 100644
index 43734f3440..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/intprops.h
+++ /dev/null
@@ -1,335 +0,0 @@
-/* intprops.h -- properties of integer types
-
-   Copyright (C) 2001-2024 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify it
-   under the terms of the GNU Lesser General Public License as published
-   by the Free Software Foundation; either version 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 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 _GL_INTPROPS_H
-#define _GL_INTPROPS_H
-
-#include "intprops-internal.h"
-
-/* The extra casts in the following macros work around compiler bugs,
-   e.g., in Cray C 5.0.3.0.  */
-
-/* True if the arithmetic type T is an integer type.  bool counts as
-   an integer.  */
-#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
-
-/* True if the real type T is signed.  */
-#define TYPE_SIGNED(t) _GL_TYPE_SIGNED (t)
-
-/* Return 1 if the real expression E, after promotion, has a
-   signed or floating type.  Do not evaluate E.  */
-#define EXPR_SIGNED(e) _GL_EXPR_SIGNED (e)
-
-
-/* Minimum and maximum values for integer types and expressions.  */
-
-/* The width in bits of the integer type or expression T.
-   Do not evaluate T.  T must not be a bit-field expression.
-   Padding bits are not supported; this is checked at compile-time below.  */
-#define TYPE_WIDTH(t) _GL_TYPE_WIDTH (t)
-
-/* The maximum and minimum values for the integer type T.  */
-#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t))
-#define TYPE_MAXIMUM(t)                                                 \
-  ((t) (! TYPE_SIGNED (t)                                               \
-        ? (t) -1                                                        \
-        : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1)))
-
-/* Bound on length of the string representing an unsigned integer
-   value representable in B bits.  log10 (2.0) < 146/485.  The
-   smallest value of B where this bound is not tight is 2621.  */
-#define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485)
-
-/* Bound on length of the string representing an integer type or expression T.
-   T must not be a bit-field expression.
-
-   Subtract 1 for the sign bit if T is signed, and then add 1 more for
-   a minus sign if needed.
-
-   Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 1 when its argument is
-   unsigned, this macro may overestimate the true bound by one byte when
-   applied to unsigned types of size 2, 4, 16, ... bytes.  */
-#define INT_STRLEN_BOUND(t)                                     \
-  (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \
-   + _GL_SIGNED_TYPE_OR_EXPR (t))
-
-/* Bound on buffer size needed to represent an integer type or expression T,
-   including the terminating null.  T must not be a bit-field expression.  */
-#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
-
-
-/* Range overflow checks.
-
-   The INT_<op>_RANGE_OVERFLOW macros return 1 if the corresponding C
-   operators overflow arithmetically when given the same arguments.
-   These macros do not rely on undefined or implementation-defined behavior.
-   Although their implementations are simple and straightforward,
-   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:
-
-     long int i = ...;
-     long int j = ...;
-     if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX))
-       printf ("multiply would overflow");
-     else
-       printf ("product is %ld", i * j);
-
-   Restrictions on *_RANGE_OVERFLOW macros:
-
-   These macros do not check for all possible numerical problems or
-   undefined or unspecified behavior: they do not check for division
-   by zero, for bad shift counts, or for shifting negative numbers.
-
-   These macros may evaluate their arguments zero or multiple times,
-   so the arguments should not have side effects.  The arithmetic
-   arguments (including the MIN and MAX arguments) must be of the same
-   integer type after the usual arithmetic conversions, and the type
-   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.  */
-
-/* Return 1 if A + B would overflow in [MIN,MAX] arithmetic.
-   See above for restrictions.  */
-#define INT_ADD_RANGE_OVERFLOW(a, b, min, max)          \
-  ((b) < 0                                              \
-   ? (a) < (min) - (b)                                  \
-   : (max) - (b) < (a))
-
-/* Return 1 if A - B would overflow in [MIN,MAX] arithmetic.
-   See above for restrictions.  */
-#define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max)     \
-  ((b) < 0                                              \
-   ? (max) + (b) < (a)                                  \
-   : (a) < (min) + (b))
-
-/* Return 1 if - A would overflow in [MIN,MAX] arithmetic.
-   See above for restrictions.  */
-#define INT_NEGATE_RANGE_OVERFLOW(a, min, max)          \
-  _GL_INT_NEGATE_RANGE_OVERFLOW (a, min, max)
-
-/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic.
-   See above for restrictions.  Avoid && and || as they tickle
-   bugs in Sun C 5.11 2010/08/13 and other compilers; see
-   <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00401.html>.  */
-#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max)     \
-  ((b) < 0                                              \
-   ? ((a) < 0                                           \
-      ? (a) < (max) / (b)                               \
-      : (b) == -1                                       \
-      ? 0                                               \
-      : (min) / (b) < (a))                              \
-   : (b) == 0                                           \
-   ? 0                                                  \
-   : ((a) < 0                                           \
-      ? (a) < (min) / (b)                               \
-      : (max) / (b) < (a)))
-
-/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic.
-   See above for restrictions.  Do not check for division by zero.  */
-#define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max)       \
-  ((min) < 0 && (b) == -1 && (a) < - (max))
-
-/* Return 1 if A % B would overflow in [MIN,MAX] arithmetic.
-   See above for restrictions.  Do not check for division by zero.
-   Mathematically, % should never overflow, but on x86-like hosts
-   INT_MIN % -1 traps, and the C standard permits this, so treat this
-   as an overflow too.  */
-#define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max)    \
-  INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max)
-
-/* Return 1 if A << B would overflow in [MIN,MAX] arithmetic.
-   See above for restrictions.  Here, MIN and MAX are for A only, and B need
-   not be of the same type as the other arguments.  The C standard says that
-   behavior is undefined for shifts unless 0 <= B < wordwidth, and that when
-   A is negative then A << B has undefined behavior and A >> B has
-   implementation-defined behavior, but do not check these other
-   restrictions.  */
-#define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max)   \
-  ((a) < 0                                              \
-   ? (a) < (min) >> (b)                                 \
-   : (max) >> (b) < (a))
-
-/* The _GL*_OVERFLOW macros have the same restrictions as the
-   *_RANGE_OVERFLOW macros, except that they do not assume that operands
-   (e.g., A and B) have the same type as MIN and MAX.  Instead, they assume
-   that the result (e.g., A + B) has that type.  */
-#if _GL_HAS_BUILTIN_OVERFLOW_P
-# define _GL_ADD_OVERFLOW(a, b, min, max)                               \
-   __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0)
-# define _GL_SUBTRACT_OVERFLOW(a, b, min, max)                          \
-   __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0)
-# define _GL_MULTIPLY_OVERFLOW(a, b, min, max)                          \
-   __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0)
-#else
-# define _GL_ADD_OVERFLOW(a, b, min, max)                                \
-   ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max)                  \
-    : (a) < 0 ? (b) <= (a) + (b)                                         \
-    : (b) < 0 ? (a) <= (a) + (b)                                         \
-    : (a) + (b) < (b))
-# define _GL_SUBTRACT_OVERFLOW(a, b, min, max)                           \
-   ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max)             \
-    : (a) < 0 ? 1                                                        \
-    : (b) < 0 ? (a) - (b) <= (a)                                         \
-    : (a) < (b))
-# define _GL_MULTIPLY_OVERFLOW(a, b, min, max)                           \
-   (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a))))       \
-    || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max))
-#endif
-#define _GL_DIVIDE_OVERFLOW(a, b, min, max)                             \
-  ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max)  \
-   : (a) < 0 ? (b) <= (a) + (b) - 1                                     \
-   : (b) < 0 && (a) + (b) <= (a))
-#define _GL_REMAINDER_OVERFLOW(a, b, min, max)                          \
-  ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max)  \
-   : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b)                     \
-   : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max))
-
-/* Return a nonzero value if A is a mathematical multiple of B, where
-   A is unsigned, B is negative, and MAX is the maximum value of A's
-   type.  A's type must be the same as (A % B)'s type.  Normally (A %
-   -B == 0) suffices, but things get tricky if -B would overflow.  */
-#define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max)                            \
-  (((b) < -_GL_SIGNED_INT_MAXIMUM (b)                                   \
-    ? (_GL_SIGNED_INT_MAXIMUM (b) == (max)                              \
-       ? (a)                                                            \
-       : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1))   \
-    : (a) % - (b))                                                      \
-   == 0)
-
-/* Check for integer overflow, and report low order bits of answer.
-
-   The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators
-   might not yield numerically correct answers due to arithmetic overflow.
-   The INT_<op>_WRAPV macros compute the low-order bits of the sum,
-   difference, and product of two C integers, and return 1 if these
-   low-order bits are not numerically correct.
-   These macros work correctly on all known practical hosts, and do not rely
-   on undefined behavior due to signed arithmetic overflow.
-
-   Example usage, assuming A and B are long int:
-
-     if (INT_MULTIPLY_OVERFLOW (a, b))
-       printf ("result would overflow\n");
-     else
-       printf ("result is %ld (no overflow)\n", a * b);
-
-   Example usage with WRAPV flavor:
-
-     long int result;
-     bool overflow = INT_MULTIPLY_WRAPV (a, b, &result);
-     printf ("result is %ld (%s)\n", result,
-             overflow ? "after overflow" : "no overflow");
-
-   Restrictions on these macros:
-
-   These macros do not check for all possible numerical problems or
-   undefined or unspecified behavior: they do not check for division
-   by zero, for bad shift counts, or for shifting negative numbers.
-
-   These macros may evaluate their arguments zero or multiple times, so the
-   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.  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, B, and *R should be integers; they need not be the same type,
-   and they need not be all signed or all unsigned.
-   However, none of the integer types should be bit-precise,
-   and *R's type should not be char, bool, or an enumeration type.
-
-   Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B,
-   A % B, and A << B would overflow, respectively.  */
-
-#define INT_ADD_OVERFLOW(a, b) \
-  _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW)
-#define INT_SUBTRACT_OVERFLOW(a, b) \
-  _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW)
-#define INT_NEGATE_OVERFLOW(a) _GL_INT_NEGATE_OVERFLOW (a)
-#define INT_MULTIPLY_OVERFLOW(a, b) \
-  _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW)
-#define INT_DIVIDE_OVERFLOW(a, b) \
-  _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW)
-#define INT_REMAINDER_OVERFLOW(a, b) \
-  _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW)
-#define INT_LEFT_SHIFT_OVERFLOW(a, b) \
-  INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \
-                                 _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
-
-/* Return 1 if the expression A <op> B would overflow,
-   where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test,
-   assuming MIN and MAX are the minimum and maximum for the result type.
-   Arguments should be free of side effects.  */
-#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow)        \
-  op_result_overflow (a, b,                                     \
-                      _GL_INT_MINIMUM (_GL_INT_CONVERT (a, b)), \
-                      _GL_INT_MAXIMUM (_GL_INT_CONVERT (a, b)))
-
-/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R.
-   Return 1 if the result overflows.  See above for restrictions.  */
-#define INT_ADD_WRAPV(a, b, r) _GL_INT_ADD_WRAPV (a, b, r)
-#define INT_SUBTRACT_WRAPV(a, b, r) _GL_INT_SUBTRACT_WRAPV (a, b, r)
-#define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r)
-
-/* The following macros compute A + B, A - B, and A * B, respectively.
-   If no overflow occurs, they set *R to the result and return 1;
-   otherwise, they return 0 and may modify *R.
-
-   Example usage:
-
-     long int result;
-     if (INT_ADD_OK (a, b, &result))
-       printf ("result is %ld\n", result);
-     else
-       printf ("overflow\n");
-
-   A, B, and *R should be integers; they need not be the same type,
-   and they need not be all signed or all unsigned.
-   However, none of the integer types should be bit-precise,
-   and *R's type should not be char, bool, or an enumeration type.
-
-   These macros work correctly on all known practical hosts, and do not rely
-   on undefined behavior due to signed arithmetic overflow.
-
-   These macros are not constant expressions.
-
-   These macros may evaluate their arguments zero or multiple times, so the
-   arguments should not have side effects.
-
-   These macros are tuned for B being a constant.  */
-
-#define INT_ADD_OK(a, b, r) (! INT_ADD_WRAPV (a, b, r))
-#define INT_SUBTRACT_OK(a, b, r) (! INT_SUBTRACT_WRAPV (a, b, r))
-#define INT_MULTIPLY_OK(a, b, r) (! INT_MULTIPLY_WRAPV (a, b, r))
-
-#endif /* _GL_INTPROPS_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/lc-charset-dispatch.c 
b/tp/Texinfo/XS/gnulib/lib/lc-charset-dispatch.c
deleted file mode 100644
index e2f8b2f5de..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/lc-charset-dispatch.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Dispatching based on the current locale's character encoding.
-   Copyright (C) 2018-2024 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 Bruno Haible <bruno@clisp.org>, 2018.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include "lc-charset-dispatch.h"
-
-#if GNULIB_defined_mbstate_t
-
-# include "localcharset.h"
-# include "streq.h"
-
-# if GNULIB_WCHAR_SINGLE_LOCALE
-/* When we know that the locale does not change, provide a speedup by
-   caching the value of locale_encoding_classification.  */
-#  define locale_encoding_classification_cached locale_encoding_classification
-# else
-/* By default, don't make assumptions, hence no caching.  */
-#  define locale_encoding_classification_uncached 
locale_encoding_classification
-# endif
-
-# if GNULIB_WCHAR_SINGLE_LOCALE
-static inline
-# endif
-enc_t
-locale_encoding_classification_uncached (void)
-{
-  const char *encoding = locale_charset ();
-  if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
-    return enc_utf8;
-  if (STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0))
-    return enc_eucjp;
-  if (STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
-      || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
-      || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0))
-    return enc_94;
-  if (STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0))
-    return enc_euctw;
-  if (STREQ_OPT (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
-    return enc_gb18030;
-  if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0))
-    return enc_sjis;
-  return enc_other;
-}
-
-# if GNULIB_WCHAR_SINGLE_LOCALE
-
-static int cached_locale_enc = -1;
-
-enc_t
-locale_encoding_classification_cached (void)
-{
-  if (cached_locale_enc < 0)
-    cached_locale_enc = locale_encoding_classification_uncached ();
-  return cached_locale_enc;
-}
-
-# endif
-
-#else
-
-/* This declaration is solely to ensure that after preprocessing
-   this file is never empty.  */
-typedef int dummy;
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/lc-charset-dispatch.h 
b/tp/Texinfo/XS/gnulib/lib/lc-charset-dispatch.h
deleted file mode 100644
index 4c1cf5f1ac..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/lc-charset-dispatch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Dispatching based on the current locale's character encoding.
-   Copyright (C) 2018-2024 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 Bruno Haible <bruno@clisp.org>, 2018.  */
-
-#include <wchar.h>
-
-#if GNULIB_defined_mbstate_t
-
-/* A classification of special values of the encoding of the current locale.  
*/
-typedef enum
-  {
-    enc_other,      /* other */
-    enc_utf8,       /* UTF-8 */
-    enc_eucjp,      /* EUC-JP */
-    enc_94,         /* EUC-KR, GB2312, BIG5 */
-    enc_euctw,      /* EUC-TW */
-    enc_gb18030,    /* GB18030 */
-    enc_sjis        /* SJIS */
-  }
-  enc_t;
-
-/* Returns a classification of special values of the encoding of the current
-   locale.  */
-extern enc_t locale_encoding_classification (void);
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/localcharset.c 
b/tp/Texinfo/XS/gnulib/lib/localcharset.c
deleted file mode 100644
index 93c4baa471..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/localcharset.c
+++ /dev/null
@@ -1,1159 +0,0 @@
-/* Determine a canonical name for the current locale's character encoding.
-
-   Copyright (C) 2000-2006, 2008-2024 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 Bruno Haible <bruno@clisp.org>.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include "localcharset.h"
-
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET
-# define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */
-#endif
-
-#if defined _WIN32 && !defined __CYGWIN__
-# define WINDOWS_NATIVE
-# include <locale.h>
-#endif
-
-#if defined __EMX__
-/* Assume EMX program runs on OS/2, even if compiled under DOS.  */
-# ifndef OS2
-#  define OS2
-# endif
-#endif
-
-#if !defined WINDOWS_NATIVE
-# if HAVE_LANGINFO_CODESET
-#  include <langinfo.h>
-# else
-#  if 0 /* see comment regarding use of setlocale(), below */
-#   include <locale.h>
-#  endif
-# endif
-# ifdef __CYGWIN__
-#  define WIN32_LEAN_AND_MEAN
-#  include <windows.h>
-# endif
-#elif defined WINDOWS_NATIVE
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-  /* For the use of setlocale() below, the Gnulib override in setlocale.c is
-     not needed; see the platform lists in setlocale_null.m4.  */
-# undef setlocale
-#endif
-#if defined OS2
-# define INCL_DOS
-# include <os2.h>
-#endif
-
-/* For MB_CUR_MAX_L */
-#if defined DARWIN7
-# include <xlocale.h>
-#endif
-
-
-#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2
-
-/* On these platforms, we use a mapping from non-canonical encoding name
-   to GNU canonical encoding name.  */
-
-/* With glibc-2.1 or newer, we don't need any canonicalization,
-   because glibc has iconv and both glibc and libiconv support all
-   GNU canonical names directly.  */
-# if !((defined __GNU_LIBRARY__ && __GLIBC__ >= 2) || defined __UCLIBC__)
-
-struct table_entry
-{
-  const char alias[11+1];
-  const char canonical[11+1];
-};
-
-/* Table of platform-dependent mappings, sorted in ascending order.  */
-static const struct table_entry alias_table[] =
-  {
-#  if defined __FreeBSD__                                   /* FreeBSD */
-  /*{ "ARMSCII-8",  "ARMSCII-8" },*/
-    { "Big5",       "BIG5" },
-    { "C",          "ASCII" },
-  /*{ "CP1131",     "CP1131" },*/
-  /*{ "CP1251",     "CP1251" },*/
-  /*{ "CP866",      "CP866" },*/
-  /*{ "GB18030",    "GB18030" },*/
-  /*{ "GB2312",     "GB2312" },*/
-  /*{ "GBK",        "GBK" },*/
-  /*{ "ISCII-DEV",  "?" },*/
-    { "ISO8859-1",  "ISO-8859-1" },
-    { "ISO8859-13", "ISO-8859-13" },
-    { "ISO8859-15", "ISO-8859-15" },
-    { "ISO8859-2",  "ISO-8859-2" },
-    { "ISO8859-5",  "ISO-8859-5" },
-    { "ISO8859-7",  "ISO-8859-7" },
-    { "ISO8859-9",  "ISO-8859-9" },
-  /*{ "KOI8-R",     "KOI8-R" },*/
-  /*{ "KOI8-U",     "KOI8-U" },*/
-    { "SJIS",       "SHIFT_JIS" },
-    { "US-ASCII",   "ASCII" },
-    { "eucCN",      "GB2312" },
-    { "eucJP",      "EUC-JP" },
-    { "eucKR",      "EUC-KR" }
-#   define alias_table_defined
-#  endif
-#  if defined __NetBSD__                                    /* NetBSD */
-    { "646",        "ASCII" },
-  /*{ "ARMSCII-8",  "ARMSCII-8" },*/
-  /*{ "BIG5",       "BIG5" },*/
-    { "Big5-HKSCS", "BIG5-HKSCS" },
-  /*{ "CP1251",     "CP1251" },*/
-  /*{ "CP866",      "CP866" },*/
-  /*{ "GB18030",    "GB18030" },*/
-  /*{ "GB2312",     "GB2312" },*/
-    { "ISO8859-1",  "ISO-8859-1" },
-    { "ISO8859-13", "ISO-8859-13" },
-    { "ISO8859-15", "ISO-8859-15" },
-    { "ISO8859-2",  "ISO-8859-2" },
-    { "ISO8859-4",  "ISO-8859-4" },
-    { "ISO8859-5",  "ISO-8859-5" },
-    { "ISO8859-7",  "ISO-8859-7" },
-  /*{ "KOI8-R",     "KOI8-R" },*/
-  /*{ "KOI8-U",     "KOI8-U" },*/
-  /*{ "PT154",      "PT154" },*/
-    { "SJIS",       "SHIFT_JIS" },
-    { "eucCN",      "GB2312" },
-    { "eucJP",      "EUC-JP" },
-    { "eucKR",      "EUC-KR" },
-    { "eucTW",      "EUC-TW" }
-#   define alias_table_defined
-#  endif
-#  if defined __OpenBSD__                                   /* OpenBSD */
-    { "646",        "ASCII" },
-    { "ISO8859-1",  "ISO-8859-1" },
-    { "ISO8859-13", "ISO-8859-13" },
-    { "ISO8859-15", "ISO-8859-15" },
-    { "ISO8859-2",  "ISO-8859-2" },
-    { "ISO8859-4",  "ISO-8859-4" },
-    { "ISO8859-5",  "ISO-8859-5" },
-    { "ISO8859-7",  "ISO-8859-7" },
-    { "US-ASCII",   "ASCII" }
-#   define alias_table_defined
-#  endif
-#  if defined __APPLE__ && defined __MACH__                 /* Mac OS X */
-    /* Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is
-       useless:
-       - It returns the empty string when LANG is set to a locale of the
-         form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
-         LC_CTYPE file.
-       - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
-         the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
-       - The documentation says:
-           "... all code that calls BSD system routines should ensure
-            that the const *char parameters of these routines are in UTF-8
-            encoding. All BSD system functions expect their string
-            parameters to be in UTF-8 encoding and nothing else."
-         It also says
-           "An additional caveat is that string parameters for files,
-            paths, and other file-system entities must be in canonical
-            UTF-8. In a canonical UTF-8 Unicode string, all decomposable
-            characters are decomposed ..."
-         but this is not true: You can pass non-decomposed UTF-8 strings
-         to file system functions, and it is the OS which will convert
-         them to decomposed UTF-8 before accessing the file system.
-       - The Apple Terminal application displays UTF-8 by default.
-       - However, other applications are free to use different encodings:
-         - xterm uses ISO-8859-1 by default.
-         - TextEdit uses MacRoman by default.
-       We prefer UTF-8 over decomposed UTF-8-MAC because one should
-       minimize the use of decomposed Unicode. Unfortunately, through the
-       Darwin file system, decomposed UTF-8 strings are leaked into user
-       space nevertheless.
-       Then there are also the locales with encodings other than US-ASCII
-       and UTF-8. These locales can be occasionally useful to users (e.g.
-       when grepping through ISO-8859-1 encoded text files), when all their
-       file names are in US-ASCII.
-     */
-    { "ARMSCII-8",  "ARMSCII-8" },
-    { "Big5",       "BIG5" },
-    { "Big5HKSCS",  "BIG5-HKSCS" },
-    { "CP1131",     "CP1131" },
-    { "CP1251",     "CP1251" },
-    { "CP866",      "CP866" },
-    { "CP949",      "CP949" },
-    { "GB18030",    "GB18030" },
-    { "GB2312",     "GB2312" },
-    { "GBK",        "GBK" },
-  /*{ "ISCII-DEV",  "?" },*/
-    { "ISO8859-1",  "ISO-8859-1" },
-    { "ISO8859-13", "ISO-8859-13" },
-    { "ISO8859-15", "ISO-8859-15" },
-    { "ISO8859-2",  "ISO-8859-2" },
-    { "ISO8859-4",  "ISO-8859-4" },
-    { "ISO8859-5",  "ISO-8859-5" },
-    { "ISO8859-7",  "ISO-8859-7" },
-    { "ISO8859-9",  "ISO-8859-9" },
-    { "KOI8-R",     "KOI8-R" },
-    { "KOI8-U",     "KOI8-U" },
-    { "PT154",      "PT154" },
-    { "SJIS",       "SHIFT_JIS" },
-    { "eucCN",      "GB2312" },
-    { "eucJP",      "EUC-JP" },
-    { "eucKR",      "EUC-KR" }
-#   define alias_table_defined
-#  endif
-#  if defined _AIX                                          /* AIX */
-  /*{ "GBK",        "GBK" },*/
-    { "IBM-1046",   "CP1046" },
-    { "IBM-1124",   "CP1124" },
-    { "IBM-1129",   "CP1129" },
-    { "IBM-1252",   "CP1252" },
-    { "IBM-850",    "CP850" },
-    { "IBM-856",    "CP856" },
-    { "IBM-921",    "ISO-8859-13" },
-    { "IBM-922",    "CP922" },
-    { "IBM-932",    "CP932" },
-    { "IBM-943",    "CP943" },
-    { "IBM-eucCN",  "GB2312" },
-    { "IBM-eucJP",  "EUC-JP" },
-    { "IBM-eucKR",  "EUC-KR" },
-    { "IBM-eucTW",  "EUC-TW" },
-    { "ISO8859-1",  "ISO-8859-1" },
-    { "ISO8859-15", "ISO-8859-15" },
-    { "ISO8859-2",  "ISO-8859-2" },
-    { "ISO8859-5",  "ISO-8859-5" },
-    { "ISO8859-6",  "ISO-8859-6" },
-    { "ISO8859-7",  "ISO-8859-7" },
-    { "ISO8859-8",  "ISO-8859-8" },
-    { "ISO8859-9",  "ISO-8859-9" },
-    { "TIS-620",    "TIS-620" },
-  /*{ "UTF-8",      "UTF-8" },*/
-    { "big5",       "BIG5" }
-#   define alias_table_defined
-#  endif
-#  if defined __hpux                                        /* HP-UX */
-    { "SJIS",      "SHIFT_JIS" },
-    { "arabic8",   "HP-ARABIC8" },
-    { "big5",      "BIG5" },
-    { "cp1251",    "CP1251" },
-    { "eucJP",     "EUC-JP" },
-    { "eucKR",     "EUC-KR" },
-    { "eucTW",     "EUC-TW" },
-    { "gb18030",   "GB18030" },
-    { "greek8",    "HP-GREEK8" },
-    { "hebrew8",   "HP-HEBREW8" },
-    { "hkbig5",    "BIG5-HKSCS" },
-    { "hp15CN",    "GB2312" },
-    { "iso88591",  "ISO-8859-1" },
-    { "iso885913", "ISO-8859-13" },
-    { "iso885915", "ISO-8859-15" },
-    { "iso88592",  "ISO-8859-2" },
-    { "iso88594",  "ISO-8859-4" },
-    { "iso88595",  "ISO-8859-5" },
-    { "iso88596",  "ISO-8859-6" },
-    { "iso88597",  "ISO-8859-7" },
-    { "iso88598",  "ISO-8859-8" },
-    { "iso88599",  "ISO-8859-9" },
-    { "kana8",     "HP-KANA8" },
-    { "koi8r",     "KOI8-R" },
-    { "roman8",    "HP-ROMAN8" },
-    { "tis620",    "TIS-620" },
-    { "turkish8",  "HP-TURKISH8" },
-    { "utf8",      "UTF-8" }
-#   define alias_table_defined
-#  endif
-#  if defined __sgi                                         /* IRIX */
-    { "ISO8859-1",  "ISO-8859-1" },
-    { "ISO8859-15", "ISO-8859-15" },
-    { "ISO8859-2",  "ISO-8859-2" },
-    { "ISO8859-5",  "ISO-8859-5" },
-    { "ISO8859-7",  "ISO-8859-7" },
-    { "ISO8859-9",  "ISO-8859-9" },
-    { "eucCN",      "GB2312" },
-    { "eucJP",      "EUC-JP" },
-    { "eucKR",      "EUC-KR" },
-    { "eucTW",      "EUC-TW" }
-#   define alias_table_defined
-#  endif
-#  if defined __osf__                                       /* OSF/1 */
-  /*{ "GBK",        "GBK" },*/
-    { "ISO8859-1",  "ISO-8859-1" },
-    { "ISO8859-15", "ISO-8859-15" },
-    { "ISO8859-2",  "ISO-8859-2" },
-    { "ISO8859-4",  "ISO-8859-4" },
-    { "ISO8859-5",  "ISO-8859-5" },
-    { "ISO8859-7",  "ISO-8859-7" },
-    { "ISO8859-8",  "ISO-8859-8" },
-    { "ISO8859-9",  "ISO-8859-9" },
-    { "KSC5601",    "CP949" },
-    { "SJIS",       "SHIFT_JIS" },
-    { "TACTIS",     "TIS-620" },
-  /*{ "UTF-8",      "UTF-8" },*/
-    { "big5",       "BIG5" },
-    { "cp850",      "CP850" },
-    { "dechanyu",   "DEC-HANYU" },
-    { "dechanzi",   "GB2312" },
-    { "deckanji",   "DEC-KANJI" },
-    { "deckorean",  "EUC-KR" },
-    { "eucJP",      "EUC-JP" },
-    { "eucKR",      "EUC-KR" },
-    { "eucTW",      "EUC-TW" },
-    { "sdeckanji",  "EUC-JP" }
-#   define alias_table_defined
-#  endif
-#  if defined __sun                                         /* Solaris */
-    { "5601",        "EUC-KR" },
-    { "646",         "ASCII" },
-  /*{ "BIG5",        "BIG5" },*/
-    { "Big5-HKSCS",  "BIG5-HKSCS" },
-    { "GB18030",     "GB18030" },
-  /*{ "GBK",         "GBK" },*/
-    { "ISO8859-1",   "ISO-8859-1" },
-    { "ISO8859-11",  "TIS-620" },
-    { "ISO8859-13",  "ISO-8859-13" },
-    { "ISO8859-15",  "ISO-8859-15" },
-    { "ISO8859-2",   "ISO-8859-2" },
-    { "ISO8859-3",   "ISO-8859-3" },
-    { "ISO8859-4",   "ISO-8859-4" },
-    { "ISO8859-5",   "ISO-8859-5" },
-    { "ISO8859-6",   "ISO-8859-6" },
-    { "ISO8859-7",   "ISO-8859-7" },
-    { "ISO8859-8",   "ISO-8859-8" },
-    { "ISO8859-9",   "ISO-8859-9" },
-    { "PCK",         "SHIFT_JIS" },
-    { "TIS620.2533", "TIS-620" },
-  /*{ "UTF-8",       "UTF-8" },*/
-    { "ansi-1251",   "CP1251" },
-    { "cns11643",    "EUC-TW" },
-    { "eucJP",       "EUC-JP" },
-    { "gb2312",      "GB2312" },
-    { "koi8-r",      "KOI8-R" }
-#   define alias_table_defined
-#  endif
-#  if defined __minix                                       /* Minix */
-    { "646", "ASCII" }
-#   define alias_table_defined
-#  endif
-#  if defined WINDOWS_NATIVE || defined __CYGWIN__          /* Windows */
-    { "CP1361",  "JOHAB" },
-    { "CP20127", "ASCII" },
-    { "CP20866", "KOI8-R" },
-    { "CP20936", "GB2312" },
-    { "CP21866", "KOI8-RU" },
-    { "CP28591", "ISO-8859-1" },
-    { "CP28592", "ISO-8859-2" },
-    { "CP28593", "ISO-8859-3" },
-    { "CP28594", "ISO-8859-4" },
-    { "CP28595", "ISO-8859-5" },
-    { "CP28596", "ISO-8859-6" },
-    { "CP28597", "ISO-8859-7" },
-    { "CP28598", "ISO-8859-8" },
-    { "CP28599", "ISO-8859-9" },
-    { "CP28605", "ISO-8859-15" },
-    { "CP38598", "ISO-8859-8" },
-    { "CP51932", "EUC-JP" },
-    { "CP51936", "GB2312" },
-    { "CP51949", "EUC-KR" },
-    { "CP51950", "EUC-TW" },
-    { "CP54936", "GB18030" },
-    { "CP65001", "UTF-8" },
-    { "CP936",   "GBK" }
-#   define alias_table_defined
-#  endif
-#  if defined OS2                                           /* OS/2 */
-    /* The list of encodings is taken from "List of OS/2 Codepages"
-       by Alex Taylor:
-       <http://altsan.org/os2/toolkits/uls/index.html#codepages>.
-       See also "__convcp() of kLIBC":
-       
<https://github.com/bitwiseworks/libc/blob/master/src/emx/src/lib/locale/__convcp.c>.
  */
-    { "CP1004",        "CP1252" },
-  /*{ "CP1041",        "CP943" },*/
-  /*{ "CP1088",        "CP949" },*/
-    { "CP1089",        "ISO-8859-6" },
-  /*{ "CP1114",        "CP950" },*/
-  /*{ "CP1115",        "GB2312" },*/
-    { "CP1208",        "UTF-8" },
-  /*{ "CP1380",        "GB2312" },*/
-    { "CP1381",        "GB2312" },
-    { "CP1383",        "GB2312" },
-    { "CP1386",        "GBK" },
-  /*{ "CP301",         "CP943" },*/
-    { "CP3372",        "EUC-JP" },
-    { "CP4946",        "CP850" },
-  /*{ "CP5048",        "JIS_X0208-1990" },*/
-  /*{ "CP5049",        "JIS_X0212-1990" },*/
-  /*{ "CP5067",        "KS_C_5601-1987" },*/
-    { "CP813",         "ISO-8859-7" },
-    { "CP819",         "ISO-8859-1" },
-    { "CP878",         "KOI8-R" },
-  /*{ "CP897",         "CP943" },*/
-    { "CP912",         "ISO-8859-2" },
-    { "CP913",         "ISO-8859-3" },
-    { "CP914",         "ISO-8859-4" },
-    { "CP915",         "ISO-8859-5" },
-    { "CP916",         "ISO-8859-8" },
-    { "CP920",         "ISO-8859-9" },
-    { "CP921",         "ISO-8859-13" },
-    { "CP923",         "ISO-8859-15" },
-  /*{ "CP941",         "CP943" },*/
-  /*{ "CP947",         "CP950" },*/
-  /*{ "CP951",         "CP949" },*/
-  /*{ "CP952",         "JIS_X0208-1990" },*/
-  /*{ "CP953",         "JIS_X0212-1990" },*/
-    { "CP954",         "EUC-JP" },
-    { "CP964",         "EUC-TW" },
-    { "CP970",         "EUC-KR" },
-  /*{ "CP971",         "KS_C_5601-1987" },*/
-    { "IBM-1004",      "CP1252" },
-  /*{ "IBM-1006",      "?" },*/
-  /*{ "IBM-1008",      "?" },*/
-  /*{ "IBM-1041",      "CP943" },*/
-  /*{ "IBM-1051",      "?" },*/
-  /*{ "IBM-1088",      "CP949" },*/
-    { "IBM-1089",      "ISO-8859-6" },
-  /*{ "IBM-1098",      "?" },*/
-  /*{ "IBM-1114",      "CP950" },*/
-  /*{ "IBM-1115",      "GB2312" },*/
-  /*{ "IBM-1116",      "?" },*/
-  /*{ "IBM-1117",      "?" },*/
-  /*{ "IBM-1118",      "?" },*/
-  /*{ "IBM-1119",      "?" },*/
-    { "IBM-1124",      "CP1124" },
-    { "IBM-1125",      "CP1125" },
-    { "IBM-1131",      "CP1131" },
-    { "IBM-1208",      "UTF-8" },
-    { "IBM-1250",      "CP1250" },
-    { "IBM-1251",      "CP1251" },
-    { "IBM-1252",      "CP1252" },
-    { "IBM-1253",      "CP1253" },
-    { "IBM-1254",      "CP1254" },
-    { "IBM-1255",      "CP1255" },
-    { "IBM-1256",      "CP1256" },
-    { "IBM-1257",      "CP1257" },
-  /*{ "IBM-1275",      "?" },*/
-  /*{ "IBM-1276",      "?" },*/
-  /*{ "IBM-1277",      "?" },*/
-  /*{ "IBM-1280",      "?" },*/
-  /*{ "IBM-1281",      "?" },*/
-  /*{ "IBM-1282",      "?" },*/
-  /*{ "IBM-1283",      "?" },*/
-  /*{ "IBM-1380",      "GB2312" },*/
-    { "IBM-1381",      "GB2312" },
-    { "IBM-1383",      "GB2312" },
-    { "IBM-1386",      "GBK" },
-  /*{ "IBM-301",       "CP943" },*/
-    { "IBM-3372",      "EUC-JP" },
-    { "IBM-367",       "ASCII" },
-    { "IBM-437",       "CP437" },
-    { "IBM-4946",      "CP850" },
-  /*{ "IBM-5048",      "JIS_X0208-1990" },*/
-  /*{ "IBM-5049",      "JIS_X0212-1990" },*/
-  /*{ "IBM-5067",      "KS_C_5601-1987" },*/
-    { "IBM-813",       "ISO-8859-7" },
-    { "IBM-819",       "ISO-8859-1" },
-    { "IBM-850",       "CP850" },
-  /*{ "IBM-851",       "?" },*/
-    { "IBM-852",       "CP852" },
-    { "IBM-855",       "CP855" },
-    { "IBM-856",       "CP856" },
-    { "IBM-857",       "CP857" },
-  /*{ "IBM-859",       "?" },*/
-    { "IBM-860",       "CP860" },
-    { "IBM-861",       "CP861" },
-    { "IBM-862",       "CP862" },
-    { "IBM-863",       "CP863" },
-    { "IBM-864",       "CP864" },
-    { "IBM-865",       "CP865" },
-    { "IBM-866",       "CP866" },
-  /*{ "IBM-868",       "?" },*/
-    { "IBM-869",       "CP869" },
-    { "IBM-874",       "CP874" },
-    { "IBM-878",       "KOI8-R" },
-  /*{ "IBM-895",       "?" },*/
-  /*{ "IBM-897",       "CP943" },*/
-  /*{ "IBM-907",       "?" },*/
-  /*{ "IBM-909",       "?" },*/
-    { "IBM-912",       "ISO-8859-2" },
-    { "IBM-913",       "ISO-8859-3" },
-    { "IBM-914",       "ISO-8859-4" },
-    { "IBM-915",       "ISO-8859-5" },
-    { "IBM-916",       "ISO-8859-8" },
-    { "IBM-920",       "ISO-8859-9" },
-    { "IBM-921",       "ISO-8859-13" },
-    { "IBM-922",       "CP922" },
-    { "IBM-923",       "ISO-8859-15" },
-    { "IBM-932",       "CP932" },
-  /*{ "IBM-941",       "CP943" },*/
-  /*{ "IBM-942",       "?" },*/
-    { "IBM-943",       "CP943" },
-  /*{ "IBM-947",       "CP950" },*/
-    { "IBM-949",       "CP949" },
-    { "IBM-950",       "CP950" },
-  /*{ "IBM-951",       "CP949" },*/
-  /*{ "IBM-952",       "JIS_X0208-1990" },*/
-  /*{ "IBM-953",       "JIS_X0212-1990" },*/
-    { "IBM-954",       "EUC-JP" },
-  /*{ "IBM-955",       "?" },*/
-    { "IBM-964",       "EUC-TW" },
-    { "IBM-970",       "EUC-KR" },
-  /*{ "IBM-971",       "KS_C_5601-1987" },*/
-    { "IBM-eucCN",     "GB2312" },
-    { "IBM-eucJP",     "EUC-JP" },
-    { "IBM-eucKR",     "EUC-KR" },
-    { "IBM-eucTW",     "EUC-TW" },
-    { "IBM33722",      "EUC-JP" },
-    { "ISO8859-1",     "ISO-8859-1" },
-    { "ISO8859-2",     "ISO-8859-2" },
-    { "ISO8859-3",     "ISO-8859-3" },
-    { "ISO8859-4",     "ISO-8859-4" },
-    { "ISO8859-5",     "ISO-8859-5" },
-    { "ISO8859-6",     "ISO-8859-6" },
-    { "ISO8859-7",     "ISO-8859-7" },
-    { "ISO8859-8",     "ISO-8859-8" },
-    { "ISO8859-9",     "ISO-8859-9" },
-  /*{ "JISX0201-1976", "JISX0201-1976" },*/
-  /*{ "JISX0208-1978", "?" },*/
-  /*{ "JISX0208-1983", "JIS_X0208-1983" },*/
-  /*{ "JISX0208-1990", "JIS_X0208-1990" },*/
-  /*{ "JISX0212-1990", "JIS_X0212-1990" },*/
-  /*{ "KSC5601-1987",  "KS_C_5601-1987" },*/
-    { "SJIS-1",        "CP943" },
-    { "SJIS-2",        "CP943" },
-    { "eucJP",         "EUC-JP" },
-    { "eucKR",         "EUC-KR" },
-    { "eucTW-1993",    "EUC-TW" }
-#   define alias_table_defined
-#  endif
-#  if defined VMS                                           /* OpenVMS */
-    /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
-       "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
-       section 10.7 "Handling Different Character Sets".  */
-    { "DECHANYU",  "DEC-HANYU" },
-    { "DECHANZI",  "GB2312" },
-    { "DECKANJI",  "DEC-KANJI" },
-    { "DECKOREAN", "EUC-KR" },
-    { "ISO8859-1", "ISO-8859-1" },
-    { "ISO8859-2", "ISO-8859-2" },
-    { "ISO8859-5", "ISO-8859-5" },
-    { "ISO8859-7", "ISO-8859-7" },
-    { "ISO8859-8", "ISO-8859-8" },
-    { "ISO8859-9", "ISO-8859-9" },
-    { "SDECKANJI", "EUC-JP" },
-    { "SJIS",      "SHIFT_JIS" },
-    { "eucJP",     "EUC-JP" },
-    { "eucTW",     "EUC-TW" }
-#   define alias_table_defined
-#  endif
-#  ifndef alias_table_defined
-    /* Just a dummy entry, to avoid a C syntax error.  */
-    { "", "" }
-#  endif
-  };
-
-# endif
-
-#else
-
-/* On these platforms, we use a mapping from locale name to GNU canonical
-   encoding name.  */
-
-struct table_entry
-{
-  const char locale[17+1];
-  const char canonical[11+1];
-};
-
-/* Table of platform-dependent mappings, sorted in ascending order.  */
-static const struct table_entry locale_table[] =
-  {
-# if defined __FreeBSD__                                    /* FreeBSD 4.2 */
-    { "cs_CZ.ISO_8859-2",  "ISO-8859-2" },
-    { "da_DK.DIS_8859-15", "ISO-8859-15" },
-    { "da_DK.ISO_8859-1",  "ISO-8859-1" },
-    { "de_AT.DIS_8859-15", "ISO-8859-15" },
-    { "de_AT.ISO_8859-1",  "ISO-8859-1" },
-    { "de_CH.DIS_8859-15", "ISO-8859-15" },
-    { "de_CH.ISO_8859-1",  "ISO-8859-1" },
-    { "de_DE.DIS_8859-15", "ISO-8859-15" },
-    { "de_DE.ISO_8859-1",  "ISO-8859-1" },
-    { "en_AU.DIS_8859-15", "ISO-8859-15" },
-    { "en_AU.ISO_8859-1",  "ISO-8859-1" },
-    { "en_CA.DIS_8859-15", "ISO-8859-15" },
-    { "en_CA.ISO_8859-1",  "ISO-8859-1" },
-    { "en_GB.DIS_8859-15", "ISO-8859-15" },
-    { "en_GB.ISO_8859-1",  "ISO-8859-1" },
-    { "en_US.DIS_8859-15", "ISO-8859-15" },
-    { "en_US.ISO_8859-1",  "ISO-8859-1" },
-    { "es_ES.DIS_8859-15", "ISO-8859-15" },
-    { "es_ES.ISO_8859-1",  "ISO-8859-1" },
-    { "fi_FI.DIS_8859-15", "ISO-8859-15" },
-    { "fi_FI.ISO_8859-1",  "ISO-8859-1" },
-    { "fr_BE.DIS_8859-15", "ISO-8859-15" },
-    { "fr_BE.ISO_8859-1",  "ISO-8859-1" },
-    { "fr_CA.DIS_8859-15", "ISO-8859-15" },
-    { "fr_CA.ISO_8859-1",  "ISO-8859-1" },
-    { "fr_CH.DIS_8859-15", "ISO-8859-15" },
-    { "fr_CH.ISO_8859-1",  "ISO-8859-1" },
-    { "fr_FR.DIS_8859-15", "ISO-8859-15" },
-    { "fr_FR.ISO_8859-1",  "ISO-8859-1" },
-    { "hr_HR.ISO_8859-2",  "ISO-8859-2" },
-    { "hu_HU.ISO_8859-2",  "ISO-8859-2" },
-    { "is_IS.DIS_8859-15", "ISO-8859-15" },
-    { "is_IS.ISO_8859-1",  "ISO-8859-1" },
-    { "it_CH.DIS_8859-15", "ISO-8859-15" },
-    { "it_CH.ISO_8859-1",  "ISO-8859-1" },
-    { "it_IT.DIS_8859-15", "ISO-8859-15" },
-    { "it_IT.ISO_8859-1",  "ISO-8859-1" },
-    { "ja_JP.EUC",         "EUC-JP" },
-    { "ja_JP.SJIS",        "SHIFT_JIS" },
-    { "ja_JP.Shift_JIS",   "SHIFT_JIS" },
-    { "ko_KR.EUC",         "EUC-KR" },
-    { "la_LN.ASCII",       "ASCII" },
-    { "la_LN.DIS_8859-15", "ISO-8859-15" },
-    { "la_LN.ISO_8859-1",  "ISO-8859-1" },
-    { "la_LN.ISO_8859-2",  "ISO-8859-2" },
-    { "la_LN.ISO_8859-4",  "ISO-8859-4" },
-    { "lt_LN.ASCII",       "ASCII" },
-    { "lt_LN.DIS_8859-15", "ISO-8859-15" },
-    { "lt_LN.ISO_8859-1",  "ISO-8859-1" },
-    { "lt_LN.ISO_8859-2",  "ISO-8859-2" },
-    { "lt_LT.ISO_8859-4",  "ISO-8859-4" },
-    { "nl_BE.DIS_8859-15", "ISO-8859-15" },
-    { "nl_BE.ISO_8859-1",  "ISO-8859-1" },
-    { "nl_NL.DIS_8859-15", "ISO-8859-15" },
-    { "nl_NL.ISO_8859-1",  "ISO-8859-1" },
-    { "no_NO.DIS_8859-15", "ISO-8859-15" },
-    { "no_NO.ISO_8859-1",  "ISO-8859-1" },
-    { "pl_PL.ISO_8859-2",  "ISO-8859-2" },
-    { "pt_PT.DIS_8859-15", "ISO-8859-15" },
-    { "pt_PT.ISO_8859-1",  "ISO-8859-1" },
-    { "ru_RU.CP866",       "CP866" },
-    { "ru_RU.ISO_8859-5",  "ISO-8859-5" },
-    { "ru_RU.KOI8-R",      "KOI8-R" },
-    { "ru_SU.CP866",       "CP866" },
-    { "ru_SU.ISO_8859-5",  "ISO-8859-5" },
-    { "ru_SU.KOI8-R",      "KOI8-R" },
-    { "sl_SI.ISO_8859-2",  "ISO-8859-2" },
-    { "sv_SE.DIS_8859-15", "ISO-8859-15" },
-    { "sv_SE.ISO_8859-1",  "ISO-8859-1" },
-    { "uk_UA.KOI8-U",      "KOI8-U" },
-    { "zh_CN.EUC",         "GB2312" },
-    { "zh_TW.BIG5",        "BIG5" },
-    { "zh_TW.Big5",        "BIG5" }
-#  define locale_table_defined
-# endif
-# if defined __DJGPP__                                      /* DOS / DJGPP 
2.03 */
-    /* The encodings given here may not all be correct.
-       If you find that the encoding given for your language and
-       country is not the one your DOS machine actually uses, just
-       correct it in this file, and send a mail to
-       Juan Manuel Guerrero <juan.guerrero@gmx.de>
-       and <bug-gnulib@gnu.org>.  */
-    { "C",     "ASCII" },
-    { "ar",    "CP864" },
-    { "ar_AE", "CP864" },
-    { "ar_DZ", "CP864" },
-    { "ar_EG", "CP864" },
-    { "ar_IQ", "CP864" },
-    { "ar_IR", "CP864" },
-    { "ar_JO", "CP864" },
-    { "ar_KW", "CP864" },
-    { "ar_MA", "CP864" },
-    { "ar_OM", "CP864" },
-    { "ar_QA", "CP864" },
-    { "ar_SA", "CP864" },
-    { "ar_SY", "CP864" },
-    { "be",    "CP866" },
-    { "be_BE", "CP866" },
-    { "bg",    "CP866" }, /* not CP855 ?? */
-    { "bg_BG", "CP866" }, /* not CP855 ?? */
-    { "ca",    "CP850" },
-    { "ca_ES", "CP850" },
-    { "cs",    "CP852" },
-    { "cs_CZ", "CP852" },
-    { "da",    "CP865" }, /* not CP850 ?? */
-    { "da_DK", "CP865" }, /* not CP850 ?? */
-    { "de",    "CP850" },
-    { "de_AT", "CP850" },
-    { "de_CH", "CP850" },
-    { "de_DE", "CP850" },
-    { "el",    "CP869" },
-    { "el_GR", "CP869" },
-    { "en",    "CP850" },
-    { "en_AU", "CP850" }, /* not CP437 ?? */
-    { "en_CA", "CP850" },
-    { "en_GB", "CP850" },
-    { "en_NZ", "CP437" },
-    { "en_US", "CP437" },
-    { "en_ZA", "CP850" }, /* not CP437 ?? */
-    { "eo",    "CP850" },
-    { "eo_EO", "CP850" },
-    { "es",    "CP850" },
-    { "es_AR", "CP850" },
-    { "es_BO", "CP850" },
-    { "es_CL", "CP850" },
-    { "es_CO", "CP850" },
-    { "es_CR", "CP850" },
-    { "es_CU", "CP850" },
-    { "es_DO", "CP850" },
-    { "es_EC", "CP850" },
-    { "es_ES", "CP850" },
-    { "es_GT", "CP850" },
-    { "es_HN", "CP850" },
-    { "es_MX", "CP850" },
-    { "es_NI", "CP850" },
-    { "es_PA", "CP850" },
-    { "es_PE", "CP850" },
-    { "es_PY", "CP850" },
-    { "es_SV", "CP850" },
-    { "es_UY", "CP850" },
-    { "es_VE", "CP850" },
-    { "et",    "CP850" },
-    { "et_EE", "CP850" },
-    { "eu",    "CP850" },
-    { "eu_ES", "CP850" },
-    { "fi",    "CP850" },
-    { "fi_FI", "CP850" },
-    { "fr",    "CP850" },
-    { "fr_BE", "CP850" },
-    { "fr_CA", "CP850" },
-    { "fr_CH", "CP850" },
-    { "fr_FR", "CP850" },
-    { "ga",    "CP850" },
-    { "ga_IE", "CP850" },
-    { "gd",    "CP850" },
-    { "gd_GB", "CP850" },
-    { "gl",    "CP850" },
-    { "gl_ES", "CP850" },
-    { "he",    "CP862" },
-    { "he_IL", "CP862" },
-    { "hr",    "CP852" },
-    { "hr_HR", "CP852" },
-    { "hu",    "CP852" },
-    { "hu_HU", "CP852" },
-    { "id",    "CP850" }, /* not CP437 ?? */
-    { "id_ID", "CP850" }, /* not CP437 ?? */
-    { "is",    "CP861" }, /* not CP850 ?? */
-    { "is_IS", "CP861" }, /* not CP850 ?? */
-    { "it",    "CP850" },
-    { "it_CH", "CP850" },
-    { "it_IT", "CP850" },
-    { "ja",    "CP932" },
-    { "ja_JP", "CP932" },
-    { "kr",    "CP949" }, /* not CP934 ?? */
-    { "kr_KR", "CP949" }, /* not CP934 ?? */
-    { "lt",    "CP775" },
-    { "lt_LT", "CP775" },
-    { "lv",    "CP775" },
-    { "lv_LV", "CP775" },
-    { "mk",    "CP866" }, /* not CP855 ?? */
-    { "mk_MK", "CP866" }, /* not CP855 ?? */
-    { "mt",    "CP850" },
-    { "mt_MT", "CP850" },
-    { "nb",    "CP865" }, /* not CP850 ?? */
-    { "nb_NO", "CP865" }, /* not CP850 ?? */
-    { "nl",    "CP850" },
-    { "nl_BE", "CP850" },
-    { "nl_NL", "CP850" },
-    { "nn",    "CP865" }, /* not CP850 ?? */
-    { "nn_NO", "CP865" }, /* not CP850 ?? */
-    { "no",    "CP865" }, /* not CP850 ?? */
-    { "no_NO", "CP865" }, /* not CP850 ?? */
-    { "pl",    "CP852" },
-    { "pl_PL", "CP852" },
-    { "pt",    "CP850" },
-    { "pt_BR", "CP850" },
-    { "pt_PT", "CP850" },
-    { "ro",    "CP852" },
-    { "ro_RO", "CP852" },
-    { "ru",    "CP866" },
-    { "ru_RU", "CP866" },
-    { "sk",    "CP852" },
-    { "sk_SK", "CP852" },
-    { "sl",    "CP852" },
-    { "sl_SI", "CP852" },
-    { "sq",    "CP852" },
-    { "sq_AL", "CP852" },
-    { "sr",    "CP852" }, /* CP852 or CP866 or CP855 ?? */
-    { "sr_CS", "CP852" }, /* CP852 or CP866 or CP855 ?? */
-    { "sr_YU", "CP852" }, /* CP852 or CP866 or CP855 ?? */
-    { "sv",    "CP850" },
-    { "sv_SE", "CP850" },
-    { "th",    "CP874" },
-    { "th_TH", "CP874" },
-    { "tr",    "CP857" },
-    { "tr_TR", "CP857" },
-    { "uk",    "CP1125" },
-    { "uk_UA", "CP1125" },
-    { "zh_CN", "GBK" },
-    { "zh_TW", "CP950" } /* not CP938 ?? */
-#  define locale_table_defined
-# endif
-# ifndef locale_table_defined
-    /* Just a dummy entry, to avoid a C syntax error.  */
-    { "", "" }
-# endif
-  };
-
-#endif
-
-
-/* Determine the current locale's character encoding, and canonicalize it
-   into one of the canonical names listed below.
-   The result must not be freed; it is statically allocated.  The result
-   becomes invalid when setlocale() is used to change the global locale, or
-   when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG
-   is changed; threads in multithreaded programs should not do this.
-   If the canonical name cannot be determined, the result is a non-canonical
-   name.  */
-
-#ifdef STATIC
-STATIC
-#endif
-const char *
-locale_charset (void)
-{
-  const char *codeset;
-
-  /* This function must be multithread-safe.  To achieve this without using
-     thread-local storage, we use a simple strcpy or memcpy to fill this static
-     buffer.  Filling it through, for example, strcpy + strcat would not be
-     guaranteed to leave the buffer's contents intact if another thread is
-     currently accessing it.  If necessary, the contents is first assembled in
-     a stack-allocated buffer.  */
-
-#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2
-
-# if HAVE_LANGINFO_CODESET
-
-  /* Most systems support nl_langinfo (CODESET) nowadays.  */
-  codeset = nl_langinfo (CODESET);
-
-#  ifdef __CYGWIN__
-  /* Cygwin < 1.7 does not have locales.  nl_langinfo (CODESET) always
-     returns "US-ASCII".  Return the suffix of the locale name from the
-     environment variables (if present) or the codepage as a number.  */
-  if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
-    {
-      const char *locale;
-      static char resultbuf[2 + 10 + 1];
-
-      locale = getenv ("LC_ALL");
-      if (locale == NULL || locale[0] == '\0')
-        {
-          locale = getenv ("LC_CTYPE");
-          if (locale == NULL || locale[0] == '\0')
-            locale = getenv ("LANG");
-        }
-      if (locale != NULL && locale[0] != '\0')
-        {
-          /* If the locale name contains an encoding after the dot, return
-             it.  */
-          const char *dot = strchr (locale, '.');
-
-          if (dot != NULL)
-            {
-              const char *modifier;
-
-              dot++;
-              /* Look for the possible @... trailer and remove it, if any.  */
-              modifier = strchr (dot, '@');
-              if (modifier == NULL)
-                return dot;
-              if (modifier - dot < sizeof (resultbuf))
-                {
-                  /* This way of filling resultbuf is multithread-safe.  */
-                  memcpy (resultbuf, dot, modifier - dot);
-                  resultbuf [modifier - dot] = '\0';
-                  return resultbuf;
-                }
-            }
-        }
-
-      /* The Windows API has a function returning the locale's codepage as a
-         number: GetACP().  This encoding is used by Cygwin, unless the user
-         has set the environment variable CYGWIN=codepage:oem (which very few
-         people do).
-         Output directed to console windows needs to be converted (to
-         GetOEMCP() if the console is using a raster font, or to
-         GetConsoleOutputCP() if it is using a TrueType font).  Cygwin does
-         this conversion transparently (see winsup/cygwin/fhandler_console.cc),
-         converting to GetConsoleOutputCP().  This leads to correct results,
-         except when SetConsoleOutputCP has been called and a raster font is
-         in use.  */
-      {
-        char buf[2 + 10 + 1];
-
-        sprintf (buf, "CP%u", GetACP ());
-        strcpy (resultbuf, buf);
-        codeset = resultbuf;
-      }
-    }
-#  endif
-
-  if (codeset == NULL)
-    /* The canonical name cannot be determined.  */
-    codeset = "";
-
-# elif defined WINDOWS_NATIVE
-
-  char buf[2 + 10 + 1];
-  static char resultbuf[2 + 10 + 1];
-
-  /* The Windows API has a function returning the locale's codepage as
-     a number, but the value doesn't change according to what the
-     'setlocale' call specified.  So we use it as a last resort, in
-     case the string returned by 'setlocale' doesn't specify the
-     codepage.  */
-  char *current_locale = setlocale (LC_CTYPE, NULL);
-  char *pdot = strrchr (current_locale, '.');
-
-  if (pdot && 2 + strlen (pdot + 1) + 1 <= sizeof (buf))
-    sprintf (buf, "CP%s", pdot + 1);
-  else
-    {
-      /* The Windows API has a function returning the locale's codepage as a
-         number: GetACP().
-         When the output goes to a console window, it needs to be provided in
-         GetOEMCP() encoding if the console is using a raster font, or in
-         GetConsoleOutputCP() encoding if it is using a TrueType font.
-         But in GUI programs and for output sent to files and pipes, GetACP()
-         encoding is the best bet.  */
-      sprintf (buf, "CP%u", GetACP ());
-    }
-  /* For a locale name such as "French_France.65001", in Windows 10,
-     setlocale now returns "French_France.utf8" instead.  */
-  if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0)
-    codeset = "UTF-8";
-  else
-    {
-      strcpy (resultbuf, buf);
-      codeset = resultbuf;
-    }
-
-# elif defined OS2
-
-  const char *locale;
-  static char resultbuf[2 + 10 + 1];
-  ULONG cp[3];
-  ULONG cplen;
-
-  codeset = NULL;
-
-  /* Allow user to override the codeset, as set in the operating system,
-     with standard language environment variables.  */
-  locale = getenv ("LC_ALL");
-  if (locale == NULL || locale[0] == '\0')
-    {
-      locale = getenv ("LC_CTYPE");
-      if (locale == NULL || locale[0] == '\0')
-        locale = getenv ("LANG");
-    }
-  if (locale != NULL && locale[0] != '\0')
-    {
-      /* If the locale name contains an encoding after the dot, return it.  */
-      const char *dot = strchr (locale, '.');
-
-      if (dot != NULL)
-        {
-          const char *modifier;
-
-          dot++;
-          /* Look for the possible @... trailer and remove it, if any.  */
-          modifier = strchr (dot, '@');
-          if (modifier == NULL)
-            return dot;
-          if (modifier - dot < sizeof (resultbuf))
-            {
-              /* This way of filling resultbuf is multithread-safe.  */
-              memcpy (resultbuf, dot, modifier - dot);
-              resultbuf [modifier - dot] = '\0';
-              return resultbuf;
-            }
-        }
-
-      /* For the POSIX locale, don't use the system's codepage.  */
-      if (strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0)
-        codeset = "";
-    }
-
-  if (codeset == NULL)
-    {
-      /* OS/2 has a function returning the locale's codepage as a number.  */
-      if (DosQueryCp (sizeof (cp), cp, &cplen))
-        codeset = "";
-      else
-        {
-          char buf[2 + 10 + 1];
-
-          sprintf (buf, "CP%u", cp[0]);
-          strcpy (resultbuf, buf);
-          codeset = resultbuf;
-        }
-    }
-
-# else
-
-#  error "Add code for other platforms here."
-
-# endif
-
-  /* Resolve alias.  */
-  {
-# ifdef alias_table_defined
-    /* On some platforms, UTF-8 locales are the most frequently used ones.
-       Speed up the common case and slow down the less common cases by
-       testing for this case first.  */
-#  if defined __OpenBSD__ || (defined __APPLE__ && defined __MACH__) || 
defined __sun || defined __CYGWIN__
-    if (strcmp (codeset, "UTF-8") == 0)
-      goto done_table_lookup;
-    else
-#  endif
-      {
-        const struct table_entry * const table = alias_table;
-        size_t const table_size =
-          sizeof (alias_table) / sizeof (struct table_entry);
-        /* The table is sorted.  Perform a binary search.  */
-        size_t hi = table_size;
-        size_t lo = 0;
-        while (lo < hi)
-          {
-            /* Invariant:
-               for i < lo, strcmp (table[i].alias, codeset) < 0,
-               for i >= hi, strcmp (table[i].alias, codeset) > 0.  */
-            size_t mid = (hi + lo) >> 1; /* >= lo, < hi */
-            int cmp = strcmp (table[mid].alias, codeset);
-            if (cmp < 0)
-              lo = mid + 1;
-            else if (cmp > 0)
-              hi = mid;
-            else
-              {
-                /* Found an i with
-                     strcmp (table[i].alias, codeset) == 0.  */
-                codeset = table[mid].canonical;
-                goto done_table_lookup;
-              }
-          }
-      }
-    if (0)
-      done_table_lookup: {}
-    else
-# endif
-      {
-        /* Did not find it in the table.  */
-        /* On Mac OS X, all modern locales use the UTF-8 encoding.
-           BeOS and Haiku have a single locale, and it has UTF-8 encoding.  */
-# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined 
__HAIKU__
-        codeset = "UTF-8";
-# else
-        /* Don't return an empty string.  GNU libc and GNU libiconv interpret
-           the empty string as denoting "the locale's character encoding",
-           thus GNU libiconv would call this function a second time.  */
-        if (codeset[0] == '\0')
-          codeset = "ASCII";
-# endif
-      }
-  }
-
-#else
-
-  /* On old systems which lack it, use setlocale or getenv.  */
-  const char *locale = NULL;
-
-  /* But most old systems don't have a complete set of locales.  Some
-     (like DJGPP) have only the C locale.  Therefore we don't use setlocale
-     here; it would return "C" when it doesn't support the locale name the
-     user has set.  */
-# if 0
-  locale = setlocale (LC_CTYPE, NULL);
-# endif
-  if (locale == NULL || locale[0] == '\0')
-    {
-      locale = getenv ("LC_ALL");
-      if (locale == NULL || locale[0] == '\0')
-        {
-          locale = getenv ("LC_CTYPE");
-          if (locale == NULL || locale[0] == '\0')
-            locale = getenv ("LANG");
-            if (locale == NULL)
-              locale = "";
-        }
-    }
-
-  /* Map locale name to canonical encoding name.  */
-  {
-# ifdef locale_table_defined
-    const struct table_entry * const table = locale_table;
-    size_t const table_size =
-      sizeof (locale_table) / sizeof (struct table_entry);
-    /* The table is sorted.  Perform a binary search.  */
-    size_t hi = table_size;
-    size_t lo = 0;
-    while (lo < hi)
-      {
-        /* Invariant:
-           for i < lo, strcmp (table[i].locale, locale) < 0,
-           for i >= hi, strcmp (table[i].locale, locale) > 0.  */
-        size_t mid = (hi + lo) >> 1; /* >= lo, < hi */
-        int cmp = strcmp (table[mid].locale, locale);
-        if (cmp < 0)
-          lo = mid + 1;
-        else if (cmp > 0)
-          hi = mid;
-        else
-          {
-            /* Found an i with
-                 strcmp (table[i].locale, locale) == 0.  */
-            codeset = table[mid].canonical;
-            goto done_table_lookup;
-          }
-      }
-    if (0)
-      done_table_lookup: ;
-    else
-# endif
-      {
-        /* Did not find it in the table.  */
-        /* On Mac OS X, all modern locales use the UTF-8 encoding.
-           BeOS and Haiku have a single locale, and it has UTF-8 encoding.  */
-# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined 
__HAIKU__
-        codeset = "UTF-8";
-# else
-        /* The canonical name cannot be determined.  */
-        /* Don't return an empty string.  GNU libc and GNU libiconv interpret
-           the empty string as denoting "the locale's character encoding",
-           thus GNU libiconv would call this function a second time.  */
-        codeset = "ASCII";
-# endif
-      }
-  }
-
-#endif
-
-#ifdef DARWIN7
-  /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8"
-     (the default codeset) does not work when MB_CUR_MAX is 1.  */
-  if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX_L (uselocale (NULL)) <= 1)
-    codeset = "ASCII";
-#endif
-
-  return codeset;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/lstat.c b/tp/Texinfo/XS/gnulib/lib/lstat.c
deleted file mode 100644
index 7c09957e20..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/lstat.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Work around a bug of lstat on some systems
-
-   Copyright (C) 1997-2006, 2008-2024 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 */
-
-/* If the user's config.h happens to include <sys/stat.h>, let it include only
-   the system's <sys/stat.h> here, so that orig_lstat doesn't recurse to
-   rpl_lstat.  */
-#define __need_system_sys_stat_h
-#include <config.h>
-
-#if !HAVE_LSTAT
-/* On systems that lack symlinks, our replacement <sys/stat.h> already
-   defined lstat as stat, so there is nothing further to do other than
-   avoid an empty file.  */
-typedef int dummy;
-#else /* HAVE_LSTAT */
-
-/* Get the original definition of lstat.  It might be defined as a macro.  */
-# include <sys/types.h>
-# include <sys/stat.h>
-# undef __need_system_sys_stat_h
-
-static int
-orig_lstat (const char *filename, struct stat *buf)
-{
-  return lstat (filename, buf);
-}
-
-/* Specification.  */
-# ifdef __osf__
-/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
-   eliminates this include because of the preliminary #include <sys/stat.h>
-   above.  */
-#  include "sys/stat.h"
-# else
-#  include <sys/stat.h>
-# endif
-
-# include "stat-time.h"
-
-# include <string.h>
-# include <errno.h>
-
-/* lstat works differently on Linux and Solaris systems.  POSIX (see
-   "pathname resolution" in the glossary) requires that programs like
-   'ls' take into consideration the fact that FILE has a trailing slash
-   when FILE is a symbolic link.  On Linux and Solaris 10 systems, the
-   lstat function already has the desired semantics (in treating
-   'lstat ("symlink/", sbuf)' just like 'lstat ("symlink/.", sbuf)',
-   but on Solaris 9 and earlier it does not.
-
-   If FILE has a trailing slash and specifies a symbolic link,
-   then use stat() to get more info on the referent of FILE.
-   If the referent is a non-directory, then set errno to ENOTDIR
-   and return -1.  Otherwise, return stat's result.  */
-
-int
-rpl_lstat (const char *file, struct stat *sbuf)
-{
-  int result = orig_lstat (file, sbuf);
-
-  /* This replacement file can blindly check against '/' rather than
-     using the ISSLASH macro, because all platforms with '\\' either
-     lack symlinks (mingw) or have working lstat (cygwin) and thus do
-     not compile this file.  0 len should have already been filtered
-     out above, with a failure return of ENOENT.  */
-  if (result == 0)
-    {
-      if (S_ISDIR (sbuf->st_mode) || file[strlen (file) - 1] != '/')
-        result = stat_time_normalize (result, sbuf);
-      else
-        {
-          /* At this point, a trailing slash is permitted only on
-             symlink-to-dir; but it should have found information on the
-             directory, not the symlink.  Call 'stat' to get info about the
-             link's referent.  Our replacement stat guarantees valid results,
-             even if the symlink is not pointing to a directory.  */
-          if (!S_ISLNK (sbuf->st_mode))
-            {
-              errno = ENOTDIR;
-              return -1;
-            }
-          result = stat (file, sbuf);
-        }
-    }
-  return result;
-}
-
-#endif /* HAVE_LSTAT */
diff --git a/tp/Texinfo/XS/gnulib/lib/mbrtoc32.c 
b/tp/Texinfo/XS/gnulib/lib/mbrtoc32.c
deleted file mode 100644
index 771c857d7d..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/mbrtoc32.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/* Convert multibyte character to 32-bit wide character.
-   Copyright (C) 2020-2024 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 Bruno Haible <bruno@clisp.org>, 2020.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include <uchar.h>
-
-#include "attribute.h"
-
-#include <errno.h>
-#include <stdlib.h>
-
-#if GL_CHAR32_T_IS_UNICODE
-# include "lc-charset-unicode.h"
-#endif
-
-#if GNULIB_defined_mbstate_t /* AIX, IRIX */
-/* Implement mbrtoc32() on top of mbtowc() for the non-UTF-8 locales
-   and directly for the UTF-8 locales.  */
-
-/* Note: On AIX (64-bit) we can implement mbrtoc32 in two equivalent ways:
-   - in a way that parallels the override of mbrtowc; this is the code branch
-     here;
-   - in a way that invokes the overridden mbrtowc; this would be the #else
-     branch below.
-   They are equivalent.  */
-
-# if AVOID_ANY_THREADS
-
-/* The option '--disable-threads' explicitly requests no locking.  */
-
-# elif defined _WIN32 && !defined __CYGWIN__
-
-#  define WIN32_LEAN_AND_MEAN  /* avoid including junk */
-#  include <windows.h>
-
-# elif HAVE_PTHREAD_API
-
-#  include <pthread.h>
-#  if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS
-#   include <threads.h>
-#   pragma weak thrd_exit
-#   define c11_threads_in_use() (thrd_exit != NULL)
-#  else
-#   define c11_threads_in_use() 0
-#  endif
-
-# elif HAVE_THREADS_H
-
-#  include <threads.h>
-
-# endif
-
-# include "lc-charset-dispatch.h"
-# include "mbtowc-lock.h"
-
-static_assert (sizeof (mbstate_t) >= 4);
-static char internal_state[4];
-
-size_t
-mbrtoc32 (char32_t *pwc, const char *s, size_t n, mbstate_t *ps)
-{
-# define FITS_IN_CHAR_TYPE(wc)  1
-# include "mbrtowc-impl.h"
-}
-
-#else /* glibc, macOS, FreeBSD, NetBSD, OpenBSD, HP-UX, Solaris, Cygwin, 
mingw, MSVC, Minix, Android */
-
-/* Implement mbrtoc32() based on the original mbrtoc32() or on mbrtowc().  */
-
-# include <wchar.h>
-
-# include "localcharset.h"
-# include "streq.h"
-
-# if MBRTOC32_IN_C_LOCALE_MAYBE_EILSEQ
-#  include "hard-locale.h"
-#  include <locale.h>
-# endif
-
-static mbstate_t internal_state;
-
-size_t
-mbrtoc32 (char32_t *pwc, const char *s, size_t n, mbstate_t *ps)
-# undef mbrtoc32
-{
-  /* It's simpler to handle the case s == NULL upfront, than to worry about
-     this case later, before every test of pwc and n.  */
-  if (s == NULL)
-    {
-      pwc = NULL;
-      s = "";
-      n = 1;
-    }
-
-# if MBRTOC32_EMPTY_INPUT_BUG || _GL_SMALL_WCHAR_T
-  if (n == 0)
-    return (size_t) -2;
-# endif
-
-  if (ps == NULL)
-    ps = &internal_state;
-
-# if HAVE_WORKING_MBRTOC32 && HAVE_WORKING_C32RTOMB && 
!MBRTOC32_MULTIBYTE_LOCALE_BUG
-  /* mbrtoc32() may produce different values for wc than mbrtowc().  Therefore
-     use mbrtoc32().  */
-
-#  if defined _WIN32 && !defined __CYGWIN__
-  char32_t wc;
-  size_t ret = mbrtoc32 (&wc, s, n, ps);
-  if (ret < (size_t) -2 && pwc != NULL)
-    *pwc = wc;
-#  else
-  size_t ret = mbrtoc32 (pwc, s, n, ps);
-#  endif
-
-#  if GNULIB_MBRTOC32_REGULAR
-  /* Verify that mbrtoc32 is regular.  */
-  if (ret < (size_t) -3 && ! mbsinit (ps))
-    /* This occurs on glibc 2.36.  */
-    mbszero (ps);
-  if (ret == (size_t) -3)
-    abort ();
-#  endif
-
-#  if MBRTOC32_IN_C_LOCALE_MAYBE_EILSEQ
-  if ((size_t) -2 <= ret && n != 0 && ! hard_locale (LC_CTYPE))
-    {
-      if (pwc != NULL)
-        *pwc = (unsigned char) *s;
-      return 1;
-    }
-#  endif
-
-  return ret;
-
-# elif _GL_SMALL_WCHAR_T
-
-  /* Special-case all encodings that may produce wide character values
-     > WCHAR_MAX.  */
-  const char *encoding = locale_charset ();
-  if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
-    {
-      /* Special-case the UTF-8 encoding.  Assume that the wide-character
-         encoding in a UTF-8 locale is UCS-2 or, equivalently, UTF-16.  */
-      /* Here n > 0.  */
-      char *pstate = (char *)ps;
-      size_t nstate = pstate[0];
-      char buf[4];
-      const char *p;
-      size_t m;
-      int res;
-
-      switch (nstate)
-        {
-        case 0:
-          p = s;
-          m = n;
-          break;
-        case 3:
-          buf[2] = pstate[3];
-          FALLTHROUGH;
-        case 2:
-          buf[1] = pstate[2];
-          FALLTHROUGH;
-        case 1:
-          buf[0] = pstate[1];
-          p = buf;
-          m = nstate;
-          buf[m++] = s[0];
-          if (n >= 2 && m < 4)
-            {
-              buf[m++] = s[1];
-              if (n >= 3 && m < 4)
-                buf[m++] = s[2];
-            }
-          break;
-        default:
-          errno = EINVAL;
-          return (size_t)(-1);
-        }
-
-      /* Here m > 0.  */
-
-      {
-#  define FITS_IN_CHAR_TYPE(wc)  1
-#  include "mbrtowc-impl-utf8.h"
-      }
-
-     success:
-      if (nstate >= (res > 0 ? res : 1))
-        abort ();
-      res -= nstate;
-      /* Set *ps to an initial state.  */
-#  if defined _WIN32 && !defined __CYGWIN__
-      /* Native Windows.  */
-      /* MSVC defines 'mbstate_t' as an 8-byte struct; the first 4 bytes 
matter.
-         On mingw, 'mbstate_t' is sometimes defined as 'int', sometimes defined
-         as an 8-byte struct, of which the first 4 bytes matter.  */
-      *(unsigned int *)pstate = 0;
-#  elif defined __CYGWIN__
-      /* Cygwin defines 'mbstate_t' as an 8-byte struct; the first 4 bytes
-         matter.  */
-      ps->__count = 0;
-#  else
-      pstate[0] = 0;
-#  endif
-      return res;
-
-     incomplete:
-      {
-        size_t k = nstate;
-        /* Here 0 <= k < m < 4.  */
-        pstate[++k] = s[0];
-        if (k < m)
-          {
-            pstate[++k] = s[1];
-            if (k < m)
-              pstate[++k] = s[2];
-          }
-        if (k != m)
-          abort ();
-      }
-      pstate[0] = m;
-      return (size_t)(-2);
-
-     invalid:
-      errno = EILSEQ;
-      /* The conversion state is undefined, says POSIX.  */
-      return (size_t)(-1);
-    }
-  else
-    {
-      wchar_t wc;
-      size_t ret = mbrtowc (&wc, s, n, ps);
-      if (ret < (size_t) -2 && pwc != NULL)
-        *pwc = wc;
-      return ret;
-    }
-
-# else
-
-  /* char32_t and wchar_t are equivalent.  Use mbrtowc().  */
-  wchar_t wc;
-  size_t ret = mbrtowc (&wc, s, n, ps);
-
-#  if GNULIB_MBRTOC32_REGULAR
-  /* Ensure that mbrtoc32 is regular.  */
-  if (ret < (size_t) -2 && ! mbsinit (ps))
-    /* This occurs on glibc 2.12.  */
-    mbszero (ps);
-#  endif
-
-#  if GL_CHAR32_T_IS_UNICODE && GL_CHAR32_T_VS_WCHAR_T_NEEDS_CONVERSION
-  if (ret < (size_t) -2 && wc != 0)
-    {
-      wc = locale_encoding_to_unicode (wc);
-      if (wc == 0)
-        {
-          ret = (size_t) -1;
-          errno = EILSEQ;
-        }
-    }
-#  endif
-  if (ret < (size_t) -2 && pwc != NULL)
-    *pwc = wc;
-  return ret;
-
-# endif
-}
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/mbrtowc-impl-utf8.h 
b/tp/Texinfo/XS/gnulib/lib/mbrtowc-impl-utf8.h
deleted file mode 100644
index 3a3ba13c0b..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/mbrtowc-impl-utf8.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Convert multibyte character to wide character.
-   Copyright (C) 1999-2002, 2005-2024 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 Bruno Haible <bruno@clisp.org>, 2008.  */
-
-/* This file contains the part of the body of the mbrtowc and mbrtoc32 
functions
-   that handles the special case of the UTF-8 encoding.  */
-
-        /* Cf. unistr/u8-mbtouc.c.  */
-        unsigned char c = (unsigned char) p[0];
-
-        if (c < 0x80)
-          {
-            if (pwc != NULL)
-              *pwc = c;
-            res = (c == 0 ? 0 : 1);
-            goto success;
-          }
-        if (c >= 0xc2)
-          {
-            if (c < 0xe0)
-              {
-                if (m == 1)
-                  goto incomplete;
-                else /* m >= 2 */
-                  {
-                    unsigned char c2 = (unsigned char) p[1];
-
-                    if ((c2 ^ 0x80) < 0x40)
-                      {
-                        if (pwc != NULL)
-                          *pwc = ((unsigned int) (c & 0x1f) << 6)
-                                 | (unsigned int) (c2 ^ 0x80);
-                        res = 2;
-                        goto success;
-                      }
-                  }
-              }
-            else if (c < 0xf0)
-              {
-                if (m == 1)
-                  goto incomplete;
-                else
-                  {
-                    unsigned char c2 = (unsigned char) p[1];
-
-                    if ((c2 ^ 0x80) < 0x40
-                        && (c >= 0xe1 || c2 >= 0xa0)
-                        && (c != 0xed || c2 < 0xa0))
-                      {
-                        if (m == 2)
-                          goto incomplete;
-                        else /* m >= 3 */
-                          {
-                            unsigned char c3 = (unsigned char) p[2];
-
-                            if ((c3 ^ 0x80) < 0x40)
-                              {
-                                unsigned int wc =
-                                  (((unsigned int) (c & 0x0f) << 12)
-                                   | ((unsigned int) (c2 ^ 0x80) << 6)
-                                   | (unsigned int) (c3 ^ 0x80));
-
-                                if (FITS_IN_CHAR_TYPE (wc))
-                                  {
-                                    if (pwc != NULL)
-                                      *pwc = wc;
-                                    res = 3;
-                                    goto success;
-                                  }
-                              }
-                          }
-                      }
-                  }
-              }
-            else if (c <= 0xf4)
-              {
-                if (m == 1)
-                  goto incomplete;
-                else
-                  {
-                    unsigned char c2 = (unsigned char) p[1];
-
-                    if ((c2 ^ 0x80) < 0x40
-                        && (c >= 0xf1 || c2 >= 0x90)
-                        && (c < 0xf4 || (/* c == 0xf4 && */ c2 < 0x90)))
-                      {
-                        if (m == 2)
-                          goto incomplete;
-                        else
-                          {
-                            unsigned char c3 = (unsigned char) p[2];
-
-                            if ((c3 ^ 0x80) < 0x40)
-                              {
-                                if (m == 3)
-                                  goto incomplete;
-                                else /* m >= 4 */
-                                  {
-                                    unsigned char c4 = (unsigned char) p[3];
-
-                                    if ((c4 ^ 0x80) < 0x40)
-                                      {
-                                        unsigned int wc =
-                                          (((unsigned int) (c & 0x07) << 18)
-                                           | ((unsigned int) (c2 ^ 0x80) << 12)
-                                           | ((unsigned int) (c3 ^ 0x80) << 6)
-                                           | (unsigned int) (c4 ^ 0x80));
-
-                                        if (FITS_IN_CHAR_TYPE (wc))
-                                          {
-                                            if (pwc != NULL)
-                                              *pwc = wc;
-                                            res = 4;
-                                            goto success;
-                                          }
-                                      }
-                                  }
-                              }
-                          }
-                      }
-                  }
-              }
-          }
-        goto invalid;
diff --git a/tp/Texinfo/XS/gnulib/lib/mbrtowc-impl.h 
b/tp/Texinfo/XS/gnulib/lib/mbrtowc-impl.h
deleted file mode 100644
index 963631cae5..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/mbrtowc-impl.h
+++ /dev/null
@@ -1,262 +0,0 @@
-/* Convert multibyte character to wide character.
-   Copyright (C) 1999-2002, 2005-2024 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 Bruno Haible <bruno@clisp.org>, 2008.  */
-
-/* This file contains the body of the mbrtowc and mbrtoc32 functions,
-   when GNULIB_defined_mbstate_t is defined.  */
-
-  char *pstate = (char *)ps;
-
-  if (s == NULL)
-    {
-      pwc = NULL;
-      s = "";
-      n = 1;
-    }
-
-  if (n == 0)
-    return (size_t)(-2);
-
-  /* Here n > 0.  */
-
-  if (pstate == NULL)
-    pstate = internal_state;
-
-  {
-    size_t nstate = pstate[0];
-    char buf[4];
-    const char *p;
-    size_t m;
-    enc_t enc;
-    int res;
-
-    switch (nstate)
-      {
-      case 0:
-        p = s;
-        m = n;
-        break;
-      case 3:
-        buf[2] = pstate[3];
-        FALLTHROUGH;
-      case 2:
-        buf[1] = pstate[2];
-        FALLTHROUGH;
-      case 1:
-        buf[0] = pstate[1];
-        p = buf;
-        m = nstate;
-        buf[m++] = s[0];
-        if (n >= 2 && m < 4)
-          {
-            buf[m++] = s[1];
-            if (n >= 3 && m < 4)
-              buf[m++] = s[2];
-          }
-        break;
-      default:
-        errno = EINVAL;
-        return (size_t)(-1);
-      }
-
-    /* Here m > 0.  */
-
-    enc = locale_encoding_classification ();
-
-    if (enc == enc_utf8) /* UTF-8 */
-      {
-        /* Achieve
-             - multi-thread safety and
-             - the ability to produce wide character values > WCHAR_MAX
-           by not calling mbtowc() at all.  */
-#include "mbrtowc-impl-utf8.h"
-      }
-    else
-      {
-        /* The hidden internal state of mbtowc would make this function not
-           multi-thread safe.  Achieve multi-thread safety through a lock.  */
-        wchar_t wc;
-        res = mbtowc_with_lock (&wc, p, m);
-
-        if (res >= 0)
-          {
-            if ((wc == 0) != (res == 0))
-              abort ();
-            if (pwc != NULL)
-              *pwc = wc;
-            goto success;
-          }
-
-        /* mbtowc does not distinguish between invalid and incomplete multibyte
-           sequences.  But mbrtowc needs to make this distinction.
-           There are two possible approaches:
-             - Use iconv() and its return value.
-             - Use built-in knowledge about the possible encodings.
-           Given the low quality of implementation of iconv() on the systems
-           that lack mbrtowc(), we use the second approach.
-           The possible encodings are:
-             - 8-bit encodings,
-             - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS,
-             - UTF-8 (already handled above).
-           Use specialized code for each.  */
-        if (m >= 4 || m >= MB_CUR_MAX)
-          goto invalid;
-        /* Here MB_CUR_MAX > 1 and 0 < m < 4.  */
-        switch (enc)
-          {
-          /* As a reference for this code, you can use the GNU libiconv
-             implementation.  Look for uses of the RET_TOOFEW macro.  */
-
-          case enc_eucjp: /* EUC-JP */
-            {
-              if (m == 1)
-                {
-                  unsigned char c = (unsigned char) p[0];
-
-                  if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f)
-                    goto incomplete;
-                }
-              if (m == 2)
-                {
-                  unsigned char c = (unsigned char) p[0];
-
-                  if (c == 0x8f)
-                    {
-                      unsigned char c2 = (unsigned char) p[1];
-
-                      if (c2 >= 0xa1 && c2 < 0xff)
-                        goto incomplete;
-                    }
-                }
-              goto invalid;
-            }
-
-          case enc_94: /* EUC-KR, GB2312, BIG5 */
-            {
-              if (m == 1)
-                {
-                  unsigned char c = (unsigned char) p[0];
-
-                  if (c >= 0xa1 && c < 0xff)
-                    goto incomplete;
-                }
-              goto invalid;
-            }
-
-          case enc_euctw: /* EUC-TW */
-            {
-              if (m == 1)
-                {
-                  unsigned char c = (unsigned char) p[0];
-
-                  if ((c >= 0xa1 && c < 0xff) || c == 0x8e)
-                    goto incomplete;
-                }
-              else /* m == 2 || m == 3 */
-                {
-                  unsigned char c = (unsigned char) p[0];
-
-                  if (c == 0x8e)
-                    goto incomplete;
-                }
-              goto invalid;
-            }
-
-          case enc_gb18030: /* GB18030 */
-            {
-              if (m == 1)
-                {
-                  unsigned char c = (unsigned char) p[0];
-
-                  if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe))
-                    goto incomplete;
-                }
-              else /* m == 2 || m == 3 */
-                {
-                  unsigned char c = (unsigned char) p[0];
-
-                  if (c >= 0x90 && c <= 0xe3)
-                    {
-                      unsigned char c2 = (unsigned char) p[1];
-
-                      if (c2 >= 0x30 && c2 <= 0x39)
-                        {
-                          if (m == 2)
-                            goto incomplete;
-                          else /* m == 3 */
-                            {
-                              unsigned char c3 = (unsigned char) p[2];
-
-                              if (c3 >= 0x81 && c3 <= 0xfe)
-                                goto incomplete;
-                            }
-                        }
-                    }
-                }
-              goto invalid;
-            }
-
-          case enc_sjis: /* SJIS */
-            {
-              if (m == 1)
-                {
-                  unsigned char c = (unsigned char) p[0];
-
-                  if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea)
-                      || (c >= 0xf0 && c <= 0xf9))
-                    goto incomplete;
-                }
-              goto invalid;
-            }
-
-          default:
-            /* An unknown multibyte encoding.  */
-            goto incomplete;
-          }
-      }
-
-   success:
-    /* res >= 0 is the corrected return value of
-       mbtowc_with_lock (&wc, p, m).  */
-    if (nstate >= (res > 0 ? res : 1))
-      abort ();
-    res -= nstate;
-    pstate[0] = 0;
-    return res;
-
-   incomplete:
-    {
-      size_t k = nstate;
-      /* Here 0 <= k < m < 4.  */
-      pstate[++k] = s[0];
-      if (k < m)
-        {
-          pstate[++k] = s[1];
-          if (k < m)
-            pstate[++k] = s[2];
-        }
-      if (k != m)
-        abort ();
-    }
-    pstate[0] = m;
-    return (size_t)(-2);
-
-   invalid:
-    errno = EILSEQ;
-    /* The conversion state is undefined, says POSIX.  */
-    return (size_t)(-1);
-  }
diff --git a/tp/Texinfo/XS/gnulib/lib/mbrtowc.c 
b/tp/Texinfo/XS/gnulib/lib/mbrtowc.c
deleted file mode 100644
index 8a1646d2f7..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/mbrtowc.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Convert multibyte character to wide character.
-   Copyright (C) 1999-2002, 2005-2024 Free Software Foundation, Inc.
-   Written by Bruno Haible <bruno@clisp.org>, 2008.
-
-   This file is free software: you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General 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>
-
-/* Specification.  */
-#include <wchar.h>
-
-#if GNULIB_defined_mbstate_t
-/* Implement mbrtowc() on top of mbtowc() for the non-UTF-8 locales
-   and directly for the UTF-8 locales.  */
-
-# include <errno.h>
-# include <stdint.h>
-# include <stdlib.h>
-
-# if AVOID_ANY_THREADS
-
-/* The option '--disable-threads' explicitly requests no locking.  */
-
-# elif defined _WIN32 && !defined __CYGWIN__
-
-#  define WIN32_LEAN_AND_MEAN  /* avoid including junk */
-#  include <windows.h>
-
-# elif HAVE_PTHREAD_API
-
-#  include <pthread.h>
-#  if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS
-#   include <threads.h>
-#   pragma weak thrd_exit
-#   define c11_threads_in_use() (thrd_exit != NULL)
-#  else
-#   define c11_threads_in_use() 0
-#  endif
-
-# elif HAVE_THREADS_H
-
-#  include <threads.h>
-
-# endif
-
-# include "attribute.h"
-# include "lc-charset-dispatch.h"
-# include "mbtowc-lock.h"
-
-static_assert (sizeof (mbstate_t) >= 4);
-static char internal_state[4];
-
-size_t
-mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
-{
-# define FITS_IN_CHAR_TYPE(wc)  ((wc) <= WCHAR_MAX)
-# include "mbrtowc-impl.h"
-}
-
-#else
-/* Override the system's mbrtowc() function.  */
-
-# if MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ
-#  include "hard-locale.h"
-#  include <locale.h>
-# endif
-
-# undef mbrtowc
-
-size_t
-rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
-{
-  size_t ret;
-  wchar_t wc;
-
-# if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG
-  if (s == NULL)
-    {
-      pwc = NULL;
-      s = "";
-      n = 1;
-    }
-# endif
-
-# if MBRTOWC_EMPTY_INPUT_BUG
-  if (n == 0)
-    return (size_t) -2;
-# endif
-
-  if (! pwc)
-    pwc = &wc;
-
-# if MBRTOWC_RETVAL_BUG
-  {
-    static mbstate_t internal_state;
-
-    /* Override mbrtowc's internal state.  We cannot call mbsinit() on the
-       hidden internal state, but we can call it on our variable.  */
-    if (ps == NULL)
-      ps = &internal_state;
-
-    if (!mbsinit (ps))
-      {
-        /* Parse the rest of the multibyte character byte for byte.  */
-        size_t count = 0;
-        for (; n > 0; s++, n--)
-          {
-            ret = mbrtowc (&wc, s, 1, ps);
-
-            if (ret == (size_t)(-1))
-              return (size_t)(-1);
-            count++;
-            if (ret != (size_t)(-2))
-              {
-                /* The multibyte character has been completed.  */
-                *pwc = wc;
-                return (wc == 0 ? 0 : count);
-              }
-          }
-        return (size_t)(-2);
-      }
-  }
-# endif
-
-# if MBRTOWC_STORES_INCOMPLETE_BUG
-  ret = mbrtowc (&wc, s, n, ps);
-  if (ret < (size_t) -2 && pwc != NULL)
-    *pwc = wc;
-# else
-  ret = mbrtowc (pwc, s, n, ps);
-# endif
-
-# if MBRTOWC_NUL_RETVAL_BUG
-  if (ret < (size_t) -2 && !*pwc)
-    return 0;
-# endif
-
-# if MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ
-  if ((size_t) -2 <= ret && n != 0 && ! hard_locale (LC_CTYPE))
-    {
-      unsigned char uc = *s;
-      *pwc = uc;
-      return 1;
-    }
-# endif
-
-  return ret;
-}
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/mbsinit.c 
b/tp/Texinfo/XS/gnulib/lib/mbsinit.c
deleted file mode 100644
index d1b8475c78..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/mbsinit.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Test for initial conversion state.
-   Copyright (C) 2008-2024 Free Software Foundation, Inc.
-   Written by Bruno Haible <bruno@clisp.org>, 2008.
-
-   This file is free software: you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General 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>
-
-/* Specification.  */
-#include <wchar.h>
-
-
-#if GNULIB_defined_mbstate_t
-
-/* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs()
-   and wcrtomb(), wcsrtombs().
-   We assume that
-     - sizeof (mbstate_t) >= 4,
-     - only stateless encodings are supported (such as UTF-8 and EUC-JP, but
-       not ISO-2022 variants),
-     - for each encoding, the number of bytes for a wide character is <= 4.
-       (This maximum is attained for UTF-8, GB18030, EUC-TW.)
-   We define the meaning of mbstate_t as follows:
-     - In mb -> wc direction, mbstate_t's first byte contains the number of
-       buffered bytes (in the range 0..3), followed by up to 3 buffered bytes.
-       See mbrtowc.c.
-     - In wc -> mb direction, mbstate_t contains no information. In other
-       words, it is always in an initial state.  */
-
-static_assert (sizeof (mbstate_t) >= 4);
-
-int
-mbsinit (const mbstate_t *ps)
-{
-  const char *pstate = (const char *)ps;
-
-  return pstate == NULL || pstate[0] == 0;
-}
-
-#else
-
-int
-mbsinit (const mbstate_t *ps)
-{
-# if defined _WIN32 && !defined __CYGWIN__
-  /* Native Windows.  */
-  /* MSVC defines 'mbstate_t' as an 8-byte struct; the first 4 bytes matter.
-     On mingw, 'mbstate_t' is sometimes defined as 'int', sometimes defined as
-     an 8-byte struct, of which the first 4 bytes matter.  */
-  return ps == NULL || *(const unsigned int *)ps == 0;
-# else
-  /* Minix, HP-UX 11.00, Solaris 2.6, Interix, ...  */
-  /* Maybe this definition works, maybe not...  */
-  return ps == NULL || *(const char *)ps == 0;
-# endif
-}
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/mbtowc-lock.c 
b/tp/Texinfo/XS/gnulib/lib/mbtowc-lock.c
deleted file mode 100644
index 9001c5af1f..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/mbtowc-lock.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Return the internal lock used by mbrtowc and mbrtoc32.
-   Copyright (C) 2019-2024 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 Bruno Haible <bruno@clisp.org>, 2019-2020.  */
-
-#include <config.h>
-
-/* The option '--disable-threads' explicitly requests no locking.  */
-/* When it is known that the gl_get_mbtowc_lock function is defined
-   by a dependency library, it should not be defined here.  */
-#if AVOID_ANY_THREADS || OMIT_MBTOWC_LOCK
-
-/* This declaration is solely to ensure that after preprocessing
-   this file is never empty.  */
-typedef int dummy;
-
-#else
-
-/* This file defines the internal lock used by mbrtowc and mbrtoc32.
-   It is a separate compilation unit, so that only one copy of it is
-   present when linking statically.  */
-
-/* Prohibit renaming this symbol.  */
-# undef gl_get_mbtowc_lock
-
-/* Macro for exporting a symbol (function, not variable) defined in this file,
-   when compiled into a shared library.  */
-# ifndef SHLIB_EXPORTED
-#  if HAVE_VISIBILITY
-  /* Override the effect of the compiler option '-fvisibility=hidden'.  */
-#   define SHLIB_EXPORTED __attribute__((__visibility__("default")))
-#  elif defined _WIN32 || defined __CYGWIN__
-#   define SHLIB_EXPORTED __declspec(dllexport)
-#  else
-#   define SHLIB_EXPORTED
-#  endif
-# endif
-
-# if defined _WIN32 && !defined __CYGWIN__
-
-#  define WIN32_LEAN_AND_MEAN  /* avoid including junk */
-#  include <windows.h>
-
-#  include "windows-initguard.h"
-
-/* The return type is a 'CRITICAL_SECTION *', not a 'glwthread_mutex_t *',
-   because the latter is not guaranteed to be a stable ABI in the future.  */
-
-/* Make sure the function gets exported from DLLs.  */
-SHLIB_EXPORTED CRITICAL_SECTION *gl_get_mbtowc_lock (void);
-
-static glwthread_initguard_t guard = GLWTHREAD_INITGUARD_INIT;
-static CRITICAL_SECTION lock;
-
-/* Returns the internal lock used by mbrtowc and mbrtoc32.  */
-CRITICAL_SECTION *
-gl_get_mbtowc_lock (void)
-{
-  if (!guard.done)
-    {
-      if (InterlockedIncrement (&guard.started) == 0)
-        {
-          /* This thread is the first one to need the lock.  Initialize it.  */
-          InitializeCriticalSection (&lock);
-          guard.done = 1;
-        }
-      else
-        {
-          /* Don't let guard.started grow and wrap around.  */
-          InterlockedDecrement (&guard.started);
-          /* Yield the CPU while waiting for another thread to finish
-             initializing this mutex.  */
-          while (!guard.done)
-            Sleep (0);
-        }
-    }
-  return &lock;
-}
-
-# elif HAVE_PTHREAD_API
-
-#  include <pthread.h>
-
-static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-
-/* Make sure the function gets exported from shared libraries.  */
-SHLIB_EXPORTED pthread_mutex_t *gl_get_mbtowc_lock (void);
-
-/* Returns the internal lock used by mbrtowc and mbrtoc32.  */
-pthread_mutex_t *
-gl_get_mbtowc_lock (void)
-{
-  return &mutex;
-}
-
-# elif HAVE_THREADS_H
-
-#  include <threads.h>
-#  include <stdlib.h>
-
-static int volatile init_needed = 1;
-static once_flag init_once = ONCE_FLAG_INIT;
-static mtx_t mutex;
-
-static void
-atomic_init (void)
-{
-  if (mtx_init (&mutex, mtx_plain) != thrd_success)
-    abort ();
-  init_needed = 0;
-}
-
-/* Make sure the function gets exported from shared libraries.  */
-SHLIB_EXPORTED mtx_t *gl_get_mbtowc_lock (void);
-
-/* Returns the internal lock used by mbrtowc and mbrtoc32.  */
-mtx_t *
-gl_get_mbtowc_lock (void)
-{
-  if (init_needed)
-    call_once (&init_once, atomic_init);
-  return &mutex;
-}
-
-# endif
-
-# if (defined _WIN32 || defined __CYGWIN__) && !defined _MSC_VER
-/* Make sure the '__declspec(dllimport)' in mbrtowc.c and mbrtoc32.c does not
-   cause a link failure when no DLLs are involved.  */
-#  if defined _WIN64 || defined _LP64
-#   define IMP(x) __imp_##x
-#  else
-#   define IMP(x) _imp__##x
-#  endif
-void * IMP(gl_get_mbtowc_lock) = &gl_get_mbtowc_lock;
-# endif
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/mbtowc-lock.h 
b/tp/Texinfo/XS/gnulib/lib/mbtowc-lock.h
deleted file mode 100644
index 10f7dc7c85..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/mbtowc-lock.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Use the internal lock used by mbrtowc and mbrtoc32.
-   Copyright (C) 2019-2024 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 Bruno Haible <bruno@clisp.org>, 2019-2020.  */
-
-/* Use a lock, so that no two threads can invoke mbtowc at the same time.  */
-
-static inline int
-mbtowc_unlocked (wchar_t *pwc, const char *p, size_t m)
-{
-  /* Put the hidden internal state of mbtowc into an initial state.
-     This is needed at least with glibc, uClibc, and MSVC CRT.
-     See <https://sourceware.org/bugzilla/show_bug.cgi?id=9674>.  */
-  mbtowc (NULL, NULL, 0);
-
-  return mbtowc (pwc, p, m);
-}
-
-/* Prohibit renaming this symbol.  */
-#undef gl_get_mbtowc_lock
-
-#if AVOID_ANY_THREADS || GNULIB_MBRTOWC_SINGLE_THREAD
-
-/* All uses of this function are in a single thread.  No locking needed.  */
-
-static int
-mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
-{
-  return mbtowc_unlocked (pwc, p, m);
-}
-
-#elif defined _WIN32 && !defined __CYGWIN__
-
-extern __declspec(dllimport) CRITICAL_SECTION *gl_get_mbtowc_lock (void);
-
-static int
-mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
-{
-  CRITICAL_SECTION *lock = gl_get_mbtowc_lock ();
-  int ret;
-
-  EnterCriticalSection (lock);
-  ret = mbtowc_unlocked (pwc, p, m);
-  LeaveCriticalSection (lock);
-
-  return ret;
-}
-
-#elif HAVE_PTHREAD_API /* AIX, IRIX, Cygwin */
-
-extern
-# if defined _WIN32 || defined __CYGWIN__
-  __declspec(dllimport)
-# endif
-  pthread_mutex_t *gl_get_mbtowc_lock (void);
-
-# if HAVE_WEAK_SYMBOLS /* IRIX */
-
-   /* Avoid the need to link with '-lpthread'.  */
-#  pragma weak pthread_mutex_lock
-#  pragma weak pthread_mutex_unlock
-
-   /* Determine whether libpthread is in use.  */
-#  pragma weak pthread_mutexattr_gettype
-   /* See the comments in lock.h.  */
-#  define pthread_in_use() \
-     (pthread_mutexattr_gettype != NULL || c11_threads_in_use ())
-
-# else
-#  define pthread_in_use() 1
-# endif
-
-static int
-mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
-{
-  if (pthread_in_use())
-    {
-      pthread_mutex_t *lock = gl_get_mbtowc_lock ();
-      int ret;
-
-      if (pthread_mutex_lock (lock))
-        abort ();
-      ret = mbtowc_unlocked (pwc, p, m);
-      if (pthread_mutex_unlock (lock))
-        abort ();
-
-      return ret;
-    }
-  else
-    return mbtowc_unlocked (pwc, p, m);
-}
-
-#elif HAVE_THREADS_H
-
-extern mtx_t *gl_get_mbtowc_lock (void);
-
-static int
-mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
-{
-  mtx_t *lock = gl_get_mbtowc_lock ();
-  int ret;
-
-  if (mtx_lock (lock) != thrd_success)
-    abort ();
-  ret = mbtowc_unlocked (pwc, p, m);
-  if (mtx_unlock (lock) != thrd_success)
-    abort ();
-
-  return ret;
-}
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/minmax.h 
b/tp/Texinfo/XS/gnulib/lib/minmax.h
deleted file mode 100644
index f3df58b0d7..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/minmax.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* MIN, MAX macros.
-   Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2024 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.  */
-
-/* This file uses HAVE_MINMAX_IN_LIMITS_H, HAVE_MINMAX_IN_SYS_PARAM_H.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-/* 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 */
diff --git a/tp/Texinfo/XS/gnulib/lib/open.c b/tp/Texinfo/XS/gnulib/lib/open.c
deleted file mode 100644
index e690c9ea77..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/open.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/* Open a descriptor to a file.
-   Copyright (C) 2007-2024 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 Bruno Haible <bruno@clisp.org>, 2007.  */
-
-/* If the user's config.h happens to include <fcntl.h>, let it include only
-   the system's <fcntl.h> here, so that orig_open doesn't recurse to
-   rpl_open.  */
-#define __need_system_fcntl_h
-#include <config.h>
-
-/* Get the original definition of open.  It might be defined as a macro.  */
-#include <fcntl.h>
-#include <sys/types.h>
-#undef __need_system_fcntl_h
-
-static int
-orig_open (const char *filename, int flags, mode_t mode)
-{
-#if defined _WIN32 && !defined __CYGWIN__
-  return _open (filename, flags, mode);
-#else
-  return open (filename, flags, mode);
-#endif
-}
-
-/* Specification.  */
-#ifdef __osf__
-/* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc eliminates
-   this include because of the preliminary #include <fcntl.h> above.  */
-# include "fcntl.h"
-#else
-# include <fcntl.h>
-#endif
-
-#include "cloexec.h"
-
-#include <errno.h>
-#include <stdarg.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#ifndef REPLACE_OPEN_DIRECTORY
-# define REPLACE_OPEN_DIRECTORY 0
-#endif
-
-int
-open (const char *filename, int flags, ...)
-{
-  /* 0 = unknown, 1 = yes, -1 = no.  */
-#if GNULIB_defined_O_CLOEXEC
-  int have_cloexec = -1;
-#else
-  static int have_cloexec;
-#endif
-
-  mode_t mode;
-  int fd;
-
-  mode = 0;
-  if (flags & O_CREAT)
-    {
-      va_list arg;
-      va_start (arg, flags);
-
-      /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4
-         creates crashing code when 'mode_t' is smaller than 'int'.  */
-      mode = va_arg (arg, PROMOTED_MODE_T);
-
-      va_end (arg);
-    }
-
-#if GNULIB_defined_O_NONBLOCK
-  /* The only known platform that lacks O_NONBLOCK is mingw, but it
-     also lacks named pipes and Unix sockets, which are the only two
-     file types that require non-blocking handling in open().
-     Therefore, it is safe to ignore O_NONBLOCK here.  It is handy
-     that mingw also lacks openat(), so that is also covered here.  */
-  flags &= ~O_NONBLOCK;
-#endif
-
-#if defined _WIN32 && ! defined __CYGWIN__
-  if (strcmp (filename, "/dev/null") == 0)
-    filename = "NUL";
-#endif
-
-#if OPEN_TRAILING_SLASH_BUG
-  /* Fail if one of O_CREAT, O_WRONLY, O_RDWR is specified and the filename
-     ends in a slash, as POSIX says such a filename must name a directory
-     
<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>:
-       "A pathname that contains at least one non-<slash> character and that
-        ends with one or more trailing <slash> characters shall not be resolved
-        successfully unless the last pathname component before the trailing
-        <slash> characters names an existing directory"
-     If the named file already exists as a directory, then
-       - if O_CREAT is specified, open() must fail because of the semantics
-         of O_CREAT,
-       - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX
-         <https://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html>
-         says that it fails with errno = EISDIR in this case.
-     If the named file does not exist or does not name a directory, then
-       - if O_CREAT is specified, open() must fail since open() cannot create
-         directories,
-       - if O_WRONLY or O_RDWR is specified, open() must fail because the
-         file does not contain a '.' directory.  */
-  if ((flags & O_CREAT)
-      || (flags & O_ACCMODE) == O_RDWR
-      || (flags & O_ACCMODE) == O_WRONLY)
-    {
-      size_t len = strlen (filename);
-      if (len > 0 && filename[len - 1] == '/')
-        {
-          errno = EISDIR;
-          return -1;
-        }
-    }
-#endif
-
-  fd = orig_open (filename,
-                  flags & ~(have_cloexec < 0 ? O_CLOEXEC : 0), mode);
-
-  if (flags & O_CLOEXEC)
-    {
-      if (! have_cloexec)
-        {
-          if (0 <= fd)
-            have_cloexec = 1;
-          else if (errno == EINVAL)
-            {
-              fd = orig_open (filename, flags & ~O_CLOEXEC, mode);
-              have_cloexec = -1;
-            }
-        }
-      if (have_cloexec < 0 && 0 <= fd)
-        set_cloexec_flag (fd, true);
-    }
-
-
-#if REPLACE_FCHDIR
-  /* Implementing fchdir and fdopendir requires the ability to open a
-     directory file descriptor.  If open doesn't support that (as on
-     mingw), we use a dummy file that behaves the same as directories
-     on Linux (ie. always reports EOF on attempts to read()), and
-     override fstat() in fchdir.c to hide the fact that we have a
-     dummy.  */
-  if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES
-      && ((flags & O_ACCMODE) == O_RDONLY
-          || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH)))
-    {
-      struct stat statbuf;
-      if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode))
-        {
-          /* Maximum recursion depth of 1.  */
-          fd = open ("/dev/null", flags, mode);
-          if (0 <= fd)
-            fd = _gl_register_fd (fd, filename);
-        }
-      else
-        errno = EACCES;
-    }
-#endif
-
-#if OPEN_TRAILING_SLASH_BUG
-  /* If the filename ends in a slash and fd does not refer to a directory,
-     then fail.
-     Rationale: POSIX says such a filename must name a directory
-     
<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>:
-       "A pathname that contains at least one non-<slash> character and that
-        ends with one or more trailing <slash> characters shall not be resolved
-        successfully unless the last pathname component before the trailing
-        <slash> characters names an existing directory"
-     If the named file without the slash is not a directory, open() must fail
-     with ENOTDIR.  */
-  if (fd >= 0)
-    {
-      /* We know len is positive, since open did not fail with ENOENT.  */
-      size_t len = strlen (filename);
-      if (filename[len - 1] == '/')
-        {
-          struct stat statbuf;
-
-          if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode))
-            {
-              close (fd);
-              errno = ENOTDIR;
-              return -1;
-            }
-        }
-    }
-#endif
-
-#if REPLACE_FCHDIR
-  if (!REPLACE_OPEN_DIRECTORY && 0 <= fd)
-    fd = _gl_register_fd (fd, filename);
-#endif
-
-  return fd;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/qcopy-acl.c 
b/tp/Texinfo/XS/gnulib/lib/qcopy-acl.c
deleted file mode 100644
index 877f42588b..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/qcopy-acl.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copy access control list from one file to another.  -*- coding: utf-8 -*-
-
-   Copyright (C) 2002-2003, 2005-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.
-
-   Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible.  */
-
-#include <config.h>
-
-#include "acl.h"
-
-#include "acl-internal.h"
-
-#if USE_XATTR
-
-# include <attr/libattr.h>
-# include <string.h>
-
-# if HAVE_LINUX_XATTR_H
-#  include <linux/xattr.h>
-# endif
-# ifndef XATTR_NAME_NFSV4_ACL
-#  define XATTR_NAME_NFSV4_ACL "system.nfs4_acl"
-# endif
-# ifndef XATTR_NAME_POSIX_ACL_ACCESS
-#  define XATTR_NAME_POSIX_ACL_ACCESS "system.posix_acl_access"
-# endif
-# ifndef XATTR_NAME_POSIX_ACL_DEFAULT
-#  define XATTR_NAME_POSIX_ACL_DEFAULT "system.posix_acl_default"
-# endif
-
-/* Returns 1 if NAME is the name of an extended attribute that is related
-   to permissions, i.e. ACLs.  Returns 0 otherwise.  */
-
-static int
-is_attr_permissions (const char *name, struct error_context *ctx)
-{
-  /* We need to explicitly test for the known extended attribute names,
-     because at least on CentOS 7, attr_copy_action does not do it.  */
-  return strcmp (name, XATTR_NAME_POSIX_ACL_ACCESS) == 0
-         || strcmp (name, XATTR_NAME_POSIX_ACL_DEFAULT) == 0
-         || strcmp (name, XATTR_NAME_NFSV4_ACL) == 0
-         || attr_copy_action (name, ctx) == ATTR_ACTION_PERMISSIONS;
-}
-
-#endif  /* USE_XATTR */
-
-/* Copy access control lists from one file to another. If SOURCE_DESC is
-   a valid file descriptor, use file descriptor operations, else use
-   filename based operations on SRC_NAME. Likewise for DEST_DESC and
-   DST_NAME.
-   If access control lists are not available, fchmod the target file to
-   MODE.  Also sets the non-permission bits of the destination file
-   (S_ISUID, S_ISGID, S_ISVTX) to those from MODE if any are set.
-   Return 0 if successful.
-   Return -2 and set errno for an error relating to the source file.
-   Return -1 and set errno for an error relating to the destination file.  */
-
-int
-qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
-           int dest_desc, mode_t mode)
-{
-  int ret;
-
-#ifdef USE_XATTR
-  /* in case no ACLs present and also to set higher mode bits
-     we chmod before setting ACLs as doing it after could overwrite them
-     (especially true for NFSv4, posix ACL has that ugly "mask" hack that
-     nobody understands) */
-  ret = chmod_or_fchmod (dst_name, dest_desc, mode);
-  /* Rather than fiddling with acls one by one, we just copy the whole ACL 
xattrs
-     (Posix or NFSv4). Of course, that won't address ACLs conversion
-     (i.e. posix <-> nfs4) but we can't do it anyway, so for now, we don't care
-     Functions attr_copy_* return 0 in case we copied something OR nothing
-     to copy */
-  if (ret == 0)
-    ret = source_desc <= 0 || dest_desc <= 0
-      ? attr_copy_file (src_name, dst_name, is_attr_permissions, NULL)
-      : attr_copy_fd (src_name, source_desc, dst_name, dest_desc,
-                      is_attr_permissions, NULL);
-#else
-  /* no XATTR, so we proceed the old dusty way */
-  struct permission_context ctx;
-
-  ret = get_permissions (src_name, source_desc, mode, &ctx);
-  if (ret != 0)
-    return -2;
-  ret = set_permissions (&ctx, dst_name, dest_desc);
-  free_permission_context (&ctx);
-#endif
-  return ret;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/quote.h b/tp/Texinfo/XS/gnulib/lib/quote.h
deleted file mode 100644
index f087a8548a..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/quote.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* quote.h - prototypes for quote.c
-
-   Copyright (C) 1998-2001, 2003, 2009-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-#ifndef QUOTE_H_
-#define QUOTE_H_ 1
-
-#include <stddef.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* The quoting options used by quote_n and quote.  Its type is incomplete,
-   so it's useful only in expressions like '&quote_quoting_options'.  */
-extern struct quoting_options quote_quoting_options;
-
-/* Return an unambiguous printable representation of ARG (of size
-   ARGSIZE), allocated in slot N, suitable for diagnostics.  If
-   ARGSIZE is SIZE_MAX, use the string length of the argument for
-   ARGSIZE.  */
-char const *quote_n_mem (int n, char const *arg, size_t argsize);
-
-/* Return an unambiguous printable representation of ARG (of size
-   ARGSIZE), suitable for diagnostics.  If ARGSIZE is SIZE_MAX, use
-   the string length of the argument for ARGSIZE.  */
-char const *quote_mem (char const *arg, size_t argsize);
-
-/* Return an unambiguous printable representation of ARG, allocated in
-   slot N, suitable for diagnostics.  */
-char const *quote_n (int n, char const *arg);
-
-/* Return an unambiguous printable representation of ARG, suitable for
-   diagnostics.  */
-char const *quote (char const *arg);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !QUOTE_H_ */
diff --git a/tp/Texinfo/XS/gnulib/lib/quotearg.c 
b/tp/Texinfo/XS/gnulib/lib/quotearg.c
deleted file mode 100644
index 8e359beead..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/quotearg.c
+++ /dev/null
@@ -1,1084 +0,0 @@
-/* quotearg.c - quote arguments for output
-
-   Copyright (C) 1998-2002, 2004-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-/* Written by Paul Eggert <eggert@twinsun.com> */
-
-#include <config.h>
-
-/* Without this pragma, gcc 4.7.0 20111124 mistakenly suggests that
-   the quoting_options_from_style function might be candidate for
-   attribute 'pure'  */
-#if _GL_GNUC_PREREQ (4, 6)
-# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
-#endif
-
-#include "quotearg.h"
-#include "quote.h"
-
-#include "attribute.h"
-#include "minmax.h"
-#include "xalloc.h"
-#include "c-strcaseeq.h"
-#include "localcharset.h"
-
-#include <ctype.h>
-#include <errno.h>
-#include <limits.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <uchar.h>
-#include <wchar.h>
-
-#include "gettext.h"
-#define _(msgid) gettext (msgid)
-#define N_(msgid) msgid
-
-#ifndef SIZE_MAX
-# define SIZE_MAX ((size_t) -1)
-#endif
-
-#define INT_BITS (sizeof (int) * CHAR_BIT)
-
-struct quoting_options
-{
-  /* Basic quoting style.  */
-  enum quoting_style style;
-
-  /* Additional flags.  Bitwise combination of enum quoting_flags.  */
-  int flags;
-
-  /* Quote the characters indicated by this bit vector even if the
-     quoting style would not normally require them to be quoted.  */
-  unsigned int quote_these_too[(UCHAR_MAX / INT_BITS) + 1];
-
-  /* The left quote for custom_quoting_style.  */
-  char const *left_quote;
-
-  /* The right quote for custom_quoting_style.  */
-  char const *right_quote;
-};
-
-/* Names of quoting styles.  */
-char const *const quoting_style_args[] =
-{
-  "literal",
-  "shell",
-  "shell-always",
-  "shell-escape",
-  "shell-escape-always",
-  "c",
-  "c-maybe",
-  "escape",
-  "locale",
-  "clocale",
-  0
-};
-
-/* Correspondences to quoting style names.  */
-enum quoting_style const quoting_style_vals[] =
-{
-  literal_quoting_style,
-  shell_quoting_style,
-  shell_always_quoting_style,
-  shell_escape_quoting_style,
-  shell_escape_always_quoting_style,
-  c_quoting_style,
-  c_maybe_quoting_style,
-  escape_quoting_style,
-  locale_quoting_style,
-  clocale_quoting_style
-};
-
-/* The default quoting options.  */
-static struct quoting_options default_quoting_options;
-
-/* Allocate a new set of quoting options, with contents initially identical
-   to O if O is not null, or to the default if O is null.
-   It is the caller's responsibility to free the result.  */
-struct quoting_options *
-clone_quoting_options (struct quoting_options *o)
-{
-  int e = errno;
-  struct quoting_options *p = xmemdup (o ? o : &default_quoting_options,
-                                       sizeof *o);
-  errno = e;
-  return p;
-}
-
-/* Get the value of O's quoting style.  If O is null, use the default.  */
-enum quoting_style
-get_quoting_style (struct quoting_options const *o)
-{
-  return (o ? o : &default_quoting_options)->style;
-}
-
-/* In O (or in the default if O is null),
-   set the value of the quoting style to S.  */
-void
-set_quoting_style (struct quoting_options *o, enum quoting_style s)
-{
-  (o ? o : &default_quoting_options)->style = s;
-}
-
-/* In O (or in the default if O is null),
-   set the value of the quoting options for character C to I.
-   Return the old value.  Currently, the only values defined for I are
-   0 (the default) and 1 (which means to quote the character even if
-   it would not otherwise be quoted).  */
-int
-set_char_quoting (struct quoting_options *o, char c, int i)
-{
-  unsigned char uc = c;
-  unsigned int *p =
-    (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS;
-  int shift = uc % INT_BITS;
-  int r = (*p >> shift) & 1;
-  *p ^= ((i & 1) ^ r) << shift;
-  return r;
-}
-
-/* In O (or in the default if O is null),
-   set the value of the quoting options flag to I, which can be a
-   bitwise combination of enum quoting_flags, or 0 for default
-   behavior.  Return the old value.  */
-int
-set_quoting_flags (struct quoting_options *o, int i)
-{
-  int r;
-  if (!o)
-    o = &default_quoting_options;
-  r = o->flags;
-  o->flags = i;
-  return r;
-}
-
-void
-set_custom_quoting (struct quoting_options *o,
-                    char const *left_quote, char const *right_quote)
-{
-  if (!o)
-    o = &default_quoting_options;
-  o->style = custom_quoting_style;
-  if (!left_quote || !right_quote)
-    abort ();
-  o->left_quote = left_quote;
-  o->right_quote = right_quote;
-}
-
-/* Return quoting options for STYLE, with no extra quoting.  */
-static struct quoting_options /* NOT PURE!! */
-quoting_options_from_style (enum quoting_style style)
-{
-  struct quoting_options o = { literal_quoting_style, 0, { 0 }, NULL, NULL };
-  if (style == custom_quoting_style)
-    abort ();
-  o.style = style;
-  return o;
-}
-
-/* MSGID approximates a quotation mark.  Return its translation if it
-   has one; otherwise, return either it or "\"", depending on S.
-
-   S is either clocale_quoting_style or locale_quoting_style.  */
-static char const *
-gettext_quote (char const *msgid, enum quoting_style s)
-{
-  char const *translation = _(msgid);
-  char const *locale_code;
-
-  if (translation != msgid)
-    return translation;
-
-  /* For UTF-8 and GB-18030, use single quotes U+2018 and U+2019.
-     Here is a list of other locales that include U+2018 and U+2019:
-
-        ISO-8859-7   0xA1                 KOI8-T       0x91
-        CP869        0x8B                 CP874        0x91
-        CP932        0x81 0x65            CP936        0xA1 0xAE
-        CP949        0xA1 0xAE            CP950        0xA1 0xA5
-        CP1250       0x91                 CP1251       0x91
-        CP1252       0x91                 CP1253       0x91
-        CP1254       0x91                 CP1255       0x91
-        CP1256       0x91                 CP1257       0x91
-        EUC-JP       0xA1 0xC6            EUC-KR       0xA1 0xAE
-        EUC-TW       0xA1 0xE4            BIG5         0xA1 0xA5
-        BIG5-HKSCS   0xA1 0xA5            EUC-CN       0xA1 0xAE
-        GBK          0xA1 0xAE            Georgian-PS  0x91
-        PT154        0x91
-
-     None of these is still in wide use; using iconv is overkill.  */
-  locale_code = locale_charset ();
-  if (STRCASEEQ (locale_code, "UTF-8", 'U','T','F','-','8',0,0,0,0))
-    return msgid[0] == '`' ? "\xe2\x80\x98": "\xe2\x80\x99";
-  if (STRCASEEQ (locale_code, "GB18030", 'G','B','1','8','0','3','0',0,0))
-    return msgid[0] == '`' ? "\xa1\ae": "\xa1\xaf";
-
-  return (s == clocale_quoting_style ? "\"" : "'");
-}
-
-/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
-   argument ARG (of size ARGSIZE), using QUOTING_STYLE, FLAGS, and
-   QUOTE_THESE_TOO to control quoting.
-   Terminate the output with a null character, and return the written
-   size of the output, not counting the terminating null.
-   If BUFFERSIZE is too small to store the output string, return the
-   value that would have been returned had BUFFERSIZE been large enough.
-   If ARGSIZE is SIZE_MAX, use the string length of the argument for ARGSIZE.
-
-   This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG,
-   ARGSIZE, O), except it breaks O into its component pieces and is
-   not careful about errno.  */
-
-static size_t
-quotearg_buffer_restyled (char *buffer, size_t buffersize,
-                          char const *arg, size_t argsize,
-                          enum quoting_style quoting_style, int flags,
-                          unsigned int const *quote_these_too,
-                          char const *left_quote,
-                          char const *right_quote)
-{
-  size_t i;
-  size_t len = 0;
-  size_t orig_buffersize = 0;
-  char const *quote_string = 0;
-  size_t quote_string_len = 0;
-  bool backslash_escapes = false;
-  bool unibyte_locale = MB_CUR_MAX == 1;
-  bool elide_outer_quotes = (flags & QA_ELIDE_OUTER_QUOTES) != 0;
-  bool encountered_single_quote = false;
-  bool all_c_and_shell_quote_compat = true;
-
-#define STORE(c) \
-    do \
-      { \
-        if (len < buffersize) \
-          buffer[len] = (c); \
-        len++; \
-      } \
-    while (0)
-
-#define START_ESC() \
-    do \
-      { \
-        if (elide_outer_quotes) \
-          goto force_outer_quoting_style; \
-        escaping = true; \
-        if (quoting_style == shell_always_quoting_style \
-            && ! pending_shell_escape_end) \
-          { \
-            STORE ('\''); \
-            STORE ('$'); \
-            STORE ('\''); \
-            pending_shell_escape_end = true; \
-          } \
-        STORE ('\\'); \
-      } \
-    while (0)
-
-#define END_ESC() \
-    do \
-      { \
-        if (pending_shell_escape_end && ! escaping) \
-          { \
-            STORE ('\''); \
-            STORE ('\''); \
-            pending_shell_escape_end = false; \
-          } \
-      } \
-    while (0)
-
- process_input: ;
-  bool pending_shell_escape_end = false;
-
-  switch (quoting_style)
-    {
-    case c_maybe_quoting_style:
-      quoting_style = c_quoting_style;
-      elide_outer_quotes = true;
-      FALLTHROUGH;
-    case c_quoting_style:
-      if (!elide_outer_quotes)
-        STORE ('"');
-      backslash_escapes = true;
-      quote_string = "\"";
-      quote_string_len = 1;
-      break;
-
-    case escape_quoting_style:
-      backslash_escapes = true;
-      elide_outer_quotes = false;
-      break;
-
-    case locale_quoting_style:
-    case clocale_quoting_style:
-    case custom_quoting_style:
-      {
-        if (quoting_style != custom_quoting_style)
-          {
-            /* TRANSLATORS:
-               Get translations for open and closing quotation marks.
-               The message catalog should translate "`" to a left
-               quotation mark suitable for the locale, and similarly for
-               "'".  For example, a French Unicode local should translate
-               these to U+00AB (LEFT-POINTING DOUBLE ANGLE
-               QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE
-               QUOTATION MARK), respectively.
-
-               If the catalog has no translation, we will try to
-               use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and
-               Unicode U+2019 (RIGHT SINGLE QUOTATION MARK).  If the
-               current locale is not Unicode, locale_quoting_style
-               will quote 'like this', and clocale_quoting_style will
-               quote "like this".  You should always include translations
-               for "`" and "'" even if U+2018 and U+2019 are appropriate
-               for your locale.
-
-               If you don't know what to put here, please see
-               
<https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
-               and use glyphs suitable for your language.  */
-            left_quote = gettext_quote (N_("`"), quoting_style);
-            right_quote = gettext_quote (N_("'"), quoting_style);
-          }
-        if (!elide_outer_quotes)
-          for (quote_string = left_quote; *quote_string; quote_string++)
-            STORE (*quote_string);
-        backslash_escapes = true;
-        quote_string = right_quote;
-        quote_string_len = strlen (quote_string);
-      }
-      break;
-
-    case shell_escape_quoting_style:
-      backslash_escapes = true;
-      FALLTHROUGH;
-    case shell_quoting_style:
-      elide_outer_quotes = true;
-      FALLTHROUGH;
-    case shell_escape_always_quoting_style:
-      if (!elide_outer_quotes)
-        backslash_escapes = true;
-      FALLTHROUGH;
-    case shell_always_quoting_style:
-      quoting_style = shell_always_quoting_style;
-      if (!elide_outer_quotes)
-        STORE ('\'');
-      quote_string = "'";
-      quote_string_len = 1;
-      break;
-
-    case literal_quoting_style:
-      elide_outer_quotes = false;
-      break;
-
-    default:
-      abort ();
-    }
-
-  for (i = 0;  ! (argsize == SIZE_MAX ? arg[i] == '\0' : i == argsize);  i++)
-    {
-      unsigned char c;
-      unsigned char esc;
-      bool is_right_quote = false;
-      bool escaping = false;
-      bool c_and_shell_quote_compat = false;
-
-      if (backslash_escapes
-          && quoting_style != shell_always_quoting_style
-          && quote_string_len
-          && (i + quote_string_len
-              <= (argsize == SIZE_MAX && 1 < quote_string_len
-                  /* Use strlen only if we must: when argsize is SIZE_MAX,
-                     and when the quote string is more than 1 byte long.
-                     If we do call strlen, save the result.  */
-                  ? (argsize = strlen (arg)) : argsize))
-          && memcmp (arg + i, quote_string, quote_string_len) == 0)
-        {
-          if (elide_outer_quotes)
-            goto force_outer_quoting_style;
-          is_right_quote = true;
-        }
-
-      c = arg[i];
-      switch (c)
-        {
-        case '\0':
-          if (backslash_escapes)
-            {
-              START_ESC ();
-              /* If quote_string were to begin with digits, we'd need to
-                 test for the end of the arg as well.  However, it's
-                 hard to imagine any locale that would use digits in
-                 quotes, and set_custom_quoting is documented not to
-                 accept them.  Use only a single \0 with shell-escape
-                 as currently digits are not printed within $'...'  */
-              if (quoting_style != shell_always_quoting_style
-                  && i + 1 < argsize && '0' <= arg[i + 1] && arg[i + 1] <= '9')
-                {
-                  STORE ('0');
-                  STORE ('0');
-                }
-              c = '0';
-              /* We don't have to worry that this last '0' will be
-                 backslash-escaped because, again, quote_string should
-                 not start with it and because quote_these_too is
-                 documented as not accepting it.  */
-            }
-          else if (flags & QA_ELIDE_NULL_BYTES)
-            continue;
-          break;
-
-        case '?':
-          switch (quoting_style)
-            {
-            case shell_always_quoting_style:
-              if (elide_outer_quotes)
-                goto force_outer_quoting_style;
-              break;
-
-            case c_quoting_style:
-              if ((flags & QA_SPLIT_TRIGRAPHS)
-                  && i + 2 < argsize && arg[i + 1] == '?')
-                switch (arg[i + 2])
-                  {
-                  case '!': case '\'':
-                  case '(': case ')': case '-': case '/':
-                  case '<': case '=': case '>':
-                    /* Escape the second '?' in what would otherwise be
-                       a trigraph.  */
-                    if (elide_outer_quotes)
-                      goto force_outer_quoting_style;
-                    c = arg[i + 2];
-                    i += 2;
-                    STORE ('?');
-                    STORE ('"');
-                    STORE ('"');
-                    STORE ('?');
-                    break;
-
-                  default:
-                    break;
-                  }
-              break;
-
-            default:
-              break;
-            }
-          break;
-
-        case '\a': esc = 'a'; goto c_escape;
-        case '\b': esc = 'b'; goto c_escape;
-        case '\f': esc = 'f'; goto c_escape;
-        case '\n': esc = 'n'; goto c_and_shell_escape;
-        case '\r': esc = 'r'; goto c_and_shell_escape;
-        case '\t': esc = 't'; goto c_and_shell_escape;
-        case '\v': esc = 'v'; goto c_escape;
-        case '\\': esc = c;
-          /* Never need to escape '\' in shell case.  */
-          if (quoting_style == shell_always_quoting_style)
-            {
-              if (elide_outer_quotes)
-                goto force_outer_quoting_style;
-              goto store_c;
-            }
-
-          /* No need to escape the escape if we are trying to elide
-             outer quotes and nothing else is problematic.  */
-          if (backslash_escapes && elide_outer_quotes && quote_string_len)
-            goto store_c;
-
-        c_and_shell_escape:
-          if (quoting_style == shell_always_quoting_style
-              && elide_outer_quotes)
-            goto force_outer_quoting_style;
-          /* fall through */
-        c_escape:
-          if (backslash_escapes)
-            {
-              c = esc;
-              goto store_escape;
-            }
-          break;
-
-        case '{': case '}': /* sometimes special if isolated */
-          if (! (argsize == SIZE_MAX ? arg[1] == '\0' : argsize == 1))
-            break;
-          FALLTHROUGH;
-        case '#': case '~':
-          if (i != 0)
-            break;
-          FALLTHROUGH;
-        case ' ':
-          c_and_shell_quote_compat = true;
-          FALLTHROUGH;
-        case '!': /* special in bash */
-        case '"': case '$': case '&':
-        case '(': case ')': case '*': case ';':
-        case '<':
-        case '=': /* sometimes special in 0th or (with "set -k") later args */
-        case '>': case '[':
-        case '^': /* special in old /bin/sh, e.g., Solaris 10 */
-        case '`': case '|':
-          /* A shell special character.  */
-          if (quoting_style == shell_always_quoting_style
-              && elide_outer_quotes)
-            goto force_outer_quoting_style;
-          break;
-
-        case '\'':
-          encountered_single_quote = true;
-          c_and_shell_quote_compat = true;
-          if (quoting_style == shell_always_quoting_style)
-            {
-              if (elide_outer_quotes)
-                goto force_outer_quoting_style;
-
-              if (buffersize && ! orig_buffersize)
-                {
-                  /* Just scan string to see if supports a more concise
-                     representation, rather than writing a longer string
-                     but returning the length of the more concise form.  */
-                  orig_buffersize = buffersize;
-                  buffersize = 0;
-                }
-
-              STORE ('\'');
-              STORE ('\\');
-              STORE ('\'');
-              pending_shell_escape_end = false;
-            }
-          break;
-
-        case '%': case '+': case ',': case '-': case '.': case '/':
-        case '0': case '1': case '2': case '3': case '4': case '5':
-        case '6': case '7': case '8': case '9': case ':':
-        case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-        case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
-        case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
-        case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
-        case 'Y': case 'Z': case ']': case '_': case 'a': case 'b':
-        case 'c': case 'd': case 'e': case 'f': case 'g': case 'h':
-        case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
-        case 'o': case 'p': case 'q': case 'r': case 's': case 't':
-        case 'u': case 'v': case 'w': case 'x': case 'y': case 'z':
-          /* These characters don't cause problems, no matter what the
-             quoting style is.  They cannot start multibyte sequences.
-             A digit or a special letter would cause trouble if it
-             appeared at the beginning of quote_string because we'd then
-             escape by prepending a backslash.  However, it's hard to
-             imagine any locale that would use digits or letters as
-             quotes, and set_custom_quoting is documented not to accept
-             them.  Also, a digit or a special letter would cause
-             trouble if it appeared in quote_these_too, but that's also
-             documented as not accepting them.  */
-          c_and_shell_quote_compat = true;
-          break;
-
-        default:
-          /* If we have a multibyte sequence, copy it until we reach
-             its end, find an error, or come back to the initial shift
-             state.  For C-like styles, if the sequence has
-             unprintable characters, escape the whole sequence, since
-             we can't easily escape single characters within it.  */
-          {
-            /* Length of multibyte sequence found so far.  */
-            size_t m;
-
-            bool printable;
-
-            if (unibyte_locale)
-              {
-                m = 1;
-                printable = isprint (c) != 0;
-              }
-            else
-              {
-                mbstate_t mbstate;
-                mbszero (&mbstate);
-
-                m = 0;
-                printable = true;
-                if (argsize == SIZE_MAX)
-                  argsize = strlen (arg);
-
-                for (;;)
-                  {
-                    char32_t w;
-                    size_t bytes = mbrtoc32 (&w, &arg[i + m],
-                                             argsize - (i + m), &mbstate);
-                    if (bytes == 0)
-                      break;
-                    else if (bytes == (size_t) -1)
-                      {
-                        printable = false;
-                        break;
-                      }
-                    else if (bytes == (size_t) -2)
-                      {
-                        printable = false;
-                        while (i + m < argsize && arg[i + m])
-                          m++;
-                        break;
-                      }
-                    else
-                      {
-                        #if !GNULIB_MBRTOC32_REGULAR
-                        if (bytes == (size_t) -3)
-                          bytes = 0;
-                        #endif
-                        /* Work around a bug with older shells that "see" a '\'
-                           that is really the 2nd byte of a multibyte 
character.
-                           In practice the problem is limited to ASCII
-                           chars >= '@' that are shell special chars.  */
-                        if ('[' == 0x5b && elide_outer_quotes
-                            && quoting_style == shell_always_quoting_style)
-                          {
-                            size_t j;
-                            for (j = 1; j < bytes; j++)
-                              switch (arg[i + m + j])
-                                {
-                                case '[': case '\\': case '^':
-                                case '`': case '|':
-                                  goto force_outer_quoting_style;
-
-                                default:
-                                  break;
-                                }
-                          }
-
-                        if (! c32isprint (w))
-                          printable = false;
-                        m += bytes;
-                      }
-                    #if !GNULIB_MBRTOC32_REGULAR
-                    if (mbsinit (&mbstate))
-                    #endif
-                      break;
-                  }
-              }
-
-            c_and_shell_quote_compat = printable;
-
-            if (1 < m || (backslash_escapes && ! printable))
-              {
-                /* Output a multibyte sequence, or an escaped
-                   unprintable unibyte character.  */
-                size_t ilim = i + m;
-
-                for (;;)
-                  {
-                    if (backslash_escapes && ! printable)
-                      {
-                        START_ESC ();
-                        STORE ('0' + (c >> 6));
-                        STORE ('0' + ((c >> 3) & 7));
-                        c = '0' + (c & 7);
-                      }
-                    else if (is_right_quote)
-                      {
-                        STORE ('\\');
-                        is_right_quote = false;
-                      }
-                    if (ilim <= i + 1)
-                      break;
-                    END_ESC ();
-                    STORE (c);
-                    c = arg[++i];
-                  }
-
-                goto store_c;
-              }
-          }
-        }
-
-      if (! (((backslash_escapes && quoting_style != 
shell_always_quoting_style)
-              || elide_outer_quotes)
-             && quote_these_too
-             && quote_these_too[c / INT_BITS] >> (c % INT_BITS) & 1)
-          && !is_right_quote)
-        goto store_c;
-
-    store_escape:
-      START_ESC ();
-
-    store_c:
-      END_ESC ();
-      STORE (c);
-
-      if (! c_and_shell_quote_compat)
-        all_c_and_shell_quote_compat = false;
-    }
-
-  if (len == 0 && quoting_style == shell_always_quoting_style
-      && elide_outer_quotes)
-    goto force_outer_quoting_style;
-
-  /* Single shell quotes (') are commonly enough used as an apostrophe,
-     that we attempt to minimize the quoting in this case.  Note itʼs
-     better to use the apostrophe modifier "\u02BC" if possible, as that
-     renders better and works with the word match regex \W+ etc.  */
-  if (quoting_style == shell_always_quoting_style && ! elide_outer_quotes
-      && encountered_single_quote)
-    {
-      if (all_c_and_shell_quote_compat)
-        return quotearg_buffer_restyled (buffer, orig_buffersize, arg, argsize,
-                                         c_quoting_style,
-                                         flags, quote_these_too,
-                                         left_quote, right_quote);
-      else if (! buffersize && orig_buffersize)
-        {
-          /* Disable read-only scan, and reprocess to write quoted string.  */
-          buffersize = orig_buffersize;
-          len = 0;
-          goto process_input;
-        }
-    }
-
-  if (quote_string && !elide_outer_quotes)
-    for (; *quote_string; quote_string++)
-      STORE (*quote_string);
-
-  if (len < buffersize)
-    buffer[len] = '\0';
-  return len;
-
- force_outer_quoting_style:
-  /* Don't reuse quote_these_too, since the addition of outer quotes
-     sufficiently quotes the specified characters.  */
-  if (quoting_style == shell_always_quoting_style && backslash_escapes)
-    quoting_style = shell_escape_always_quoting_style;
-  return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
-                                   quoting_style,
-                                   flags & ~QA_ELIDE_OUTER_QUOTES, NULL,
-                                   left_quote, right_quote);
-}
-
-/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
-   argument ARG (of size ARGSIZE), using O to control quoting.
-   If O is null, use the default.
-   Terminate the output with a null character, and return the written
-   size of the output, not counting the terminating null.
-   If BUFFERSIZE is too small to store the output string, return the
-   value that would have been returned had BUFFERSIZE been large enough.
-   If ARGSIZE is SIZE_MAX, use the string length of the argument for
-   ARGSIZE.  */
-size_t
-quotearg_buffer (char *buffer, size_t buffersize,
-                 char const *arg, size_t argsize,
-                 struct quoting_options const *o)
-{
-  struct quoting_options const *p = o ? o : &default_quoting_options;
-  int e = errno;
-  size_t r = quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
-                                       p->style, p->flags, p->quote_these_too,
-                                       p->left_quote, p->right_quote);
-  errno = e;
-  return r;
-}
-
-char *
-quotearg_alloc (char const *arg, size_t argsize,
-                struct quoting_options const *o)
-{
-  return quotearg_alloc_mem (arg, argsize, NULL, o);
-}
-
-/* Like quotearg_buffer (..., ARG, ARGSIZE, O), except return newly
-   allocated storage containing the quoted string, and store the
-   resulting size into *SIZE, if non-NULL.  The result can contain
-   embedded null bytes only if ARGSIZE is not SIZE_MAX, SIZE is not
-   NULL, and set_quoting_flags has not set the null byte elision
-   flag.  */
-char *
-quotearg_alloc_mem (char const *arg, size_t argsize, size_t *size,
-                    struct quoting_options const *o)
-{
-  struct quoting_options const *p = o ? o : &default_quoting_options;
-  int e = errno;
-  /* Elide embedded null bytes if we can't return a size.  */
-  int flags = p->flags | (size ? 0 : QA_ELIDE_NULL_BYTES);
-  size_t bufsize = quotearg_buffer_restyled (0, 0, arg, argsize, p->style,
-                                             flags, p->quote_these_too,
-                                             p->left_quote,
-                                             p->right_quote) + 1;
-  char *buf = xcharalloc (bufsize);
-  quotearg_buffer_restyled (buf, bufsize, arg, argsize, p->style, flags,
-                            p->quote_these_too,
-                            p->left_quote, p->right_quote);
-  errno = e;
-  if (size)
-    *size = bufsize - 1;
-  return buf;
-}
-
-/* A storage slot with size and pointer to a value.  */
-struct slotvec
-{
-  size_t size;
-  char *val;
-};
-
-/* Preallocate a slot 0 buffer, so that the caller can always quote
-   one small component of a "memory exhausted" message in slot 0.  */
-static char slot0[256];
-static int nslots = 1;
-static struct slotvec slotvec0 = {sizeof slot0, slot0};
-static struct slotvec *slotvec = &slotvec0;
-
-void
-quotearg_free (void)
-{
-  struct slotvec *sv = slotvec;
-  int i;
-  for (i = 1; i < nslots; i++)
-    free (sv[i].val);
-  if (sv[0].val != slot0)
-    {
-      free (sv[0].val);
-      slotvec0.size = sizeof slot0;
-      slotvec0.val = slot0;
-    }
-  if (sv != &slotvec0)
-    {
-      free (sv);
-      slotvec = &slotvec0;
-    }
-  nslots = 1;
-}
-
-/* Use storage slot N to return a quoted version of argument ARG.
-   ARG is of size ARGSIZE, but if that is SIZE_MAX, ARG is a
-   null-terminated string.
-   OPTIONS specifies the quoting options.
-   The returned value points to static storage that can be
-   reused by the next call to this function with the same value of N.
-   N must be nonnegative; it is typically small, and must be
-   less than MIN (INT_MAX, IDX_MAX).  The type of N is signed
-   to allow for future extensions (using negative values).  */
-static char *
-quotearg_n_options (int n, char const *arg, size_t argsize,
-                    struct quoting_options const *options)
-{
-  int e = errno;
-
-  struct slotvec *sv = slotvec;
-
-  int nslots_max = MIN (INT_MAX, IDX_MAX);
-  if (! (0 <= n && n < nslots_max))
-    abort ();
-
-  if (nslots <= n)
-    {
-      bool preallocated = (sv == &slotvec0);
-      idx_t new_nslots = nslots;
-
-      slotvec = sv = xpalloc (preallocated ? NULL : sv, &new_nslots,
-                              n - nslots + 1, nslots_max, sizeof *sv);
-      if (preallocated)
-        *sv = slotvec0;
-      memset (sv + nslots, 0, (new_nslots - nslots) * sizeof *sv);
-      nslots = new_nslots;
-    }
-
-  {
-    size_t size = sv[n].size;
-    char *val = sv[n].val;
-    /* Elide embedded null bytes since we don't return a size.  */
-    int flags = options->flags | QA_ELIDE_NULL_BYTES;
-    size_t qsize = quotearg_buffer_restyled (val, size, arg, argsize,
-                                             options->style, flags,
-                                             options->quote_these_too,
-                                             options->left_quote,
-                                             options->right_quote);
-
-    if (size <= qsize)
-      {
-        sv[n].size = size = qsize + 1;
-        if (val != slot0)
-          free (val);
-        sv[n].val = val = xcharalloc (size);
-        quotearg_buffer_restyled (val, size, arg, argsize, options->style,
-                                  flags, options->quote_these_too,
-                                  options->left_quote,
-                                  options->right_quote);
-      }
-
-    errno = e;
-    return val;
-  }
-}
-
-char *
-quotearg_n (int n, char const *arg)
-{
-  return quotearg_n_options (n, arg, SIZE_MAX, &default_quoting_options);
-}
-
-char *
-quotearg_n_mem (int n, char const *arg, size_t argsize)
-{
-  return quotearg_n_options (n, arg, argsize, &default_quoting_options);
-}
-
-char *
-quotearg (char const *arg)
-{
-  return quotearg_n (0, arg);
-}
-
-char *
-quotearg_mem (char const *arg, size_t argsize)
-{
-  return quotearg_n_mem (0, arg, argsize);
-}
-
-char *
-quotearg_n_style (int n, enum quoting_style s, char const *arg)
-{
-  struct quoting_options const o = quoting_options_from_style (s);
-  return quotearg_n_options (n, arg, SIZE_MAX, &o);
-}
-
-char *
-quotearg_n_style_mem (int n, enum quoting_style s,
-                      char const *arg, size_t argsize)
-{
-  struct quoting_options const o = quoting_options_from_style (s);
-  return quotearg_n_options (n, arg, argsize, &o);
-}
-
-char *
-quotearg_style (enum quoting_style s, char const *arg)
-{
-  return quotearg_n_style (0, s, arg);
-}
-
-char *
-quotearg_style_mem (enum quoting_style s, char const *arg, size_t argsize)
-{
-  return quotearg_n_style_mem (0, s, arg, argsize);
-}
-
-char *
-quotearg_char_mem (char const *arg, size_t argsize, char ch)
-{
-  struct quoting_options options;
-  options = default_quoting_options;
-  set_char_quoting (&options, ch, 1);
-  return quotearg_n_options (0, arg, argsize, &options);
-}
-
-char *
-quotearg_char (char const *arg, char ch)
-{
-  return quotearg_char_mem (arg, SIZE_MAX, ch);
-}
-
-char *
-quotearg_colon (char const *arg)
-{
-  return quotearg_char (arg, ':');
-}
-
-char *
-quotearg_colon_mem (char const *arg, size_t argsize)
-{
-  return quotearg_char_mem (arg, argsize, ':');
-}
-
-char *
-quotearg_n_style_colon (int n, enum quoting_style s, char const *arg)
-{
-  struct quoting_options options;
-  options = quoting_options_from_style (s);
-  set_char_quoting (&options, ':', 1);
-  return quotearg_n_options (n, arg, SIZE_MAX, &options);
-}
-
-char *
-quotearg_n_custom (int n, char const *left_quote,
-                   char const *right_quote, char const *arg)
-{
-  return quotearg_n_custom_mem (n, left_quote, right_quote, arg,
-                                SIZE_MAX);
-}
-
-char *
-quotearg_n_custom_mem (int n, char const *left_quote,
-                       char const *right_quote,
-                       char const *arg, size_t argsize)
-{
-  struct quoting_options o = default_quoting_options;
-  set_custom_quoting (&o, left_quote, right_quote);
-  return quotearg_n_options (n, arg, argsize, &o);
-}
-
-char *
-quotearg_custom (char const *left_quote, char const *right_quote,
-                 char const *arg)
-{
-  return quotearg_n_custom (0, left_quote, right_quote, arg);
-}
-
-char *
-quotearg_custom_mem (char const *left_quote, char const *right_quote,
-                     char const *arg, size_t argsize)
-{
-  return quotearg_n_custom_mem (0, left_quote, right_quote, arg,
-                                argsize);
-}
-
-
-/* The quoting option used by the functions of quote.h.  */
-struct quoting_options quote_quoting_options =
-  {
-    locale_quoting_style,
-    0,
-    { 0 },
-    NULL, NULL
-  };
-
-char const *
-quote_n_mem (int n, char const *arg, size_t argsize)
-{
-  return quotearg_n_options (n, arg, argsize, &quote_quoting_options);
-}
-
-char const *
-quote_mem (char const *arg, size_t argsize)
-{
-  return quote_n_mem (0, arg, argsize);
-}
-
-char const *
-quote_n (int n, char const *arg)
-{
-  return quote_n_mem (n, arg, SIZE_MAX);
-}
-
-char const *
-quote (char const *arg)
-{
-  return quote_n (0, arg);
-}
-
-/*
- * Hey Emacs!
- * Local Variables:
- * coding: utf-8
- * End:
- */
diff --git a/tp/Texinfo/XS/gnulib/lib/quotearg.h 
b/tp/Texinfo/XS/gnulib/lib/quotearg.h
deleted file mode 100644
index e525b9a01d..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/quotearg.h
+++ /dev/null
@@ -1,452 +0,0 @@
-/* quotearg.h - quote arguments for output
-
-   Copyright (C) 1998-2002, 2004, 2006, 2008-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-/* Written by Paul Eggert <eggert@twinsun.com> */
-
-#ifndef QUOTEARG_H_
-#define QUOTEARG_H_ 1
-
-/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL.  */
-#if !_GL_CONFIG_H_INCLUDED
-# error "Please include config.h first."
-#endif
-
-#include <stdlib.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Basic quoting styles.  For each style, an example is given on the
-   input strings "simple", "\0 \t\n'\"\033?""?/\\", and "a:b", using
-   quotearg_buffer, quotearg_mem, and quotearg_colon_mem with that
-   style and the default flags and quoted characters.  Note that the
-   examples are shown here as valid C strings rather than what
-   displays on a terminal (with "??/" as a trigraph for "\\").  */
-enum quoting_style
-  {
-    /* Output names as-is (ls --quoting-style=literal).  Can result in
-       embedded null bytes if QA_ELIDE_NULL_BYTES is not in
-       effect.
-
-       quotearg_buffer:
-       "simple", "\0 \t\n'\"\033??/\\", "a:b"
-       quotearg:
-       "simple", " \t\n'\"\033??/\\", "a:b"
-       quotearg_colon:
-       "simple", " \t\n'\"\033??/\\", "a:b"
-    */
-    literal_quoting_style,
-
-    /* Quote names for the shell if they contain shell metacharacters
-       or would cause ambiguous output (ls --quoting-style=shell).
-       Can result in embedded null bytes if QA_ELIDE_NULL_BYTES is not
-       in effect.
-
-       quotearg_buffer:
-       "simple", "'\0 \t\n'\\''\"\033??/\\'", "a:b"
-       quotearg:
-       "simple", "' \t\n'\\''\"\033??/\\'", "a:b"
-       quotearg_colon:
-       "simple", "' \t\n'\\''\"\033??/\\'", "'a:b'"
-    */
-    shell_quoting_style,
-
-    /* Quote names for the shell, even if they would normally not
-       require quoting (ls --quoting-style=shell-always).  Can result
-       in embedded null bytes if QA_ELIDE_NULL_BYTES is not in effect.
-       Behaves like shell_quoting_style if QA_ELIDE_OUTER_QUOTES is in
-       effect.
-
-       quotearg_buffer:
-       "'simple'", "'\0 \t\n'\\''\"\033??/\\'", "'a:b'"
-       quotearg:
-       "'simple'", "' \t\n'\\''\"\033??/\\'", "'a:b'"
-       quotearg_colon:
-       "'simple'", "' \t\n'\\''\"\033??/\\'", "'a:b'"
-    */
-    shell_always_quoting_style,
-
-    /* Quote names for the shell if they contain shell metacharacters
-       or other problematic characters (ls --quoting-style=shell-escape).
-       Non printable characters are quoted using the $'...' syntax
-       
<https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html>,
-       which originated in ksh93 and is widely supported by most shells,
-       and proposed for inclusion in POSIX.
-
-       quotearg_buffer:
-       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "a:b"
-       quotearg:
-       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "a:b"
-       quotearg_colon:
-       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "'a:b'"
-    */
-    shell_escape_quoting_style,
-
-    /* Quote names for the shell even if they would normally not
-       require quoting (ls --quoting-style=shell-escape).
-       Non printable characters are quoted using the $'...' syntax
-       
<https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html>,
-       which originated in ksh93 and is widely supported by most shells,
-       and proposed for inclusion in POSIX.  Behaves like
-       shell_escape_quoting_style if QA_ELIDE_OUTER_QUOTES is in effect.
-
-       quotearg_buffer:
-       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "a:b"
-       quotearg:
-       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "a:b"
-       quotearg_colon:
-       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "'a:b'"
-    */
-    shell_escape_always_quoting_style,
-
-    /* Quote names as for a C language string (ls --quoting-style=c).
-       Behaves like c_maybe_quoting_style if QA_ELIDE_OUTER_QUOTES is
-       in effect.  Split into consecutive strings if
-       QA_SPLIT_TRIGRAPHS.
-
-       quotearg_buffer:
-       "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\""
-       quotearg:
-       "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\""
-       quotearg_colon:
-       "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a\\:b\""
-    */
-    c_quoting_style,
-
-    /* Like c_quoting_style except omit the surrounding double-quote
-       characters if no quoted characters are encountered.
-
-       quotearg_buffer:
-       "simple", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "a:b"
-       quotearg:
-       "simple", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "a:b"
-       quotearg_colon:
-       "simple", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\""
-    */
-    c_maybe_quoting_style,
-
-    /* Like c_quoting_style except always omit the surrounding
-       double-quote characters and ignore QA_SPLIT_TRIGRAPHS
-       (ls --quoting-style=escape).
-
-       quotearg_buffer:
-       "simple", "\\0 \\t\\n'\"\\033??/\\\\", "a:b"
-       quotearg:
-       "simple", "\\0 \\t\\n'\"\\033??/\\\\", "a:b"
-       quotearg_colon:
-       "simple", "\\0 \\t\\n'\"\\033??/\\\\", "a\\:b"
-    */
-    escape_quoting_style,
-
-    /* Like clocale_quoting_style, but use single quotes in the
-       default C locale or if the program does not use gettext
-       (ls --quoting-style=locale).  For UTF-8 locales, quote
-       characters will use Unicode.
-
-       LC_MESSAGES=C
-       quotearg_buffer:
-       "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'"
-       quotearg:
-       "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'"
-       quotearg_colon:
-       "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a\\:b'"
-
-       LC_MESSAGES=pt_PT.utf8
-       quotearg_buffer:
-       "\302\253simple\302\273",
-       "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273"
-       quotearg:
-       "\302\253simple\302\273",
-       "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273"
-       quotearg_colon:
-       "\302\253simple\302\273",
-       "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a\\:b\302\273"
-    */
-    locale_quoting_style,
-
-    /* Like c_quoting_style except use quotation marks appropriate for
-       the locale and ignore QA_SPLIT_TRIGRAPHS
-       (ls --quoting-style=clocale).
-
-       LC_MESSAGES=C
-       quotearg_buffer:
-       "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\""
-       quotearg:
-       "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\""
-       quotearg_colon:
-       "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a\\:b\""
-
-       LC_MESSAGES=pt_PT.utf8
-       quotearg_buffer:
-       "\302\253simple\302\273",
-       "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273"
-       quotearg:
-       "\302\253simple\302\273",
-       "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273"
-       quotearg_colon:
-       "\302\253simple\302\273",
-       "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a\\:b\302\273"
-    */
-    clocale_quoting_style,
-
-    /* Like clocale_quoting_style except use the custom quotation marks
-       set by set_custom_quoting.  If custom quotation marks are not
-       set, the behavior is undefined.
-
-       left_quote = right_quote = "'"
-       quotearg_buffer:
-       "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'"
-       quotearg:
-       "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'"
-       quotearg_colon:
-       "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a\\:b'"
-
-       left_quote = "(" and right_quote = ")"
-       quotearg_buffer:
-       "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a:b)"
-       quotearg:
-       "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a:b)"
-       quotearg_colon:
-       "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a\\:b)"
-
-       left_quote = ":" and right_quote = " "
-       quotearg_buffer:
-       ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a:b "
-       quotearg:
-       ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a:b "
-       quotearg_colon:
-       ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a\\:b "
-
-       left_quote = "\"'" and right_quote = "'\""
-       Notice that this is treated as a single level of quotes or two
-       levels where the outer quote need not be escaped within the inner
-       quotes.  For two levels where the outer quote must be escaped
-       within the inner quotes, you must use separate quotearg
-       invocations.
-       quotearg_buffer:
-       "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a:b'\""
-       quotearg:
-       "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a:b'\""
-       quotearg_colon:
-       "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a\\:b'\""
-    */
-    custom_quoting_style
-  };
-
-/* Flags for use in set_quoting_flags.  */
-enum quoting_flags
-  {
-    /* Always elide null bytes from styles that do not quote them,
-       even when the length of the result is available to the
-       caller.  */
-    QA_ELIDE_NULL_BYTES = 0x01,
-
-    /* Omit the surrounding quote characters if no escaped characters
-       are encountered.  Note that if no other character needs
-       escaping, then neither does the escape character.
-       *Attention!*  This flag is unsupported in combination with the styles
-       shell_escape_quoting_style and shell_escape_always_quoting_style
-       (because in this situation it cannot handle strings that start
-       with a non-printable character).  */
-    QA_ELIDE_OUTER_QUOTES = 0x02,
-
-    /* In the c_quoting_style and c_maybe_quoting_style, split ANSI
-       trigraph sequences into concatenated strings (for example,
-       "?""?/" rather than "??/", which could be confused with
-       "\\").  */
-    QA_SPLIT_TRIGRAPHS = 0x04
-  };
-
-/* For now, --quoting-style=literal is the default, but this may change.  */
-#ifndef DEFAULT_QUOTING_STYLE
-# define DEFAULT_QUOTING_STYLE literal_quoting_style
-#endif
-
-/* Names of quoting styles and their corresponding values.  */
-extern char const *const quoting_style_args[];
-extern enum quoting_style const quoting_style_vals[];
-
-struct quoting_options;
-
-/* The functions listed below set and use a hidden variable
-   that contains the default quoting style options.  */
-
-/* Allocate a new set of quoting options, with contents initially identical
-   to O if O is not null, or to the default if O is null.
-   It is the caller's responsibility to free the result.  */
-struct quoting_options *clone_quoting_options (struct quoting_options *o)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_RETURNS_NONNULL;
-
-/* Get the value of O's quoting style.  If O is null, use the default.  */
-enum quoting_style get_quoting_style (struct quoting_options const *o);
-
-/* In O (or in the default if O is null),
-   set the value of the quoting style to S.  */
-void set_quoting_style (struct quoting_options *o, enum quoting_style s);
-
-/* In O (or in the default if O is null),
-   set the value of the quoting options for character C to I.
-   Return the old value.  Currently, the only values defined for I are
-   0 (the default) and 1 (which means to quote the character even if
-   it would not otherwise be quoted).  C must never be a digit or a
-   letter that has special meaning after a backslash (for example, "\t"
-   for tab).  */
-int set_char_quoting (struct quoting_options *o, char c, int i);
-
-/* In O (or in the default if O is null),
-   set the value of the quoting options flag to I, which can be a
-   bitwise combination of enum quoting_flags, or 0 for default
-   behavior.  Return the old value.  */
-int set_quoting_flags (struct quoting_options *o, int i);
-
-/* In O (or in the default if O is null),
-   set the value of the quoting style to custom_quoting_style,
-   set the left quote to LEFT_QUOTE, and set the right quote to
-   RIGHT_QUOTE.  Each of LEFT_QUOTE and RIGHT_QUOTE must be
-   null-terminated and can be the empty string.  Because backslashes are
-   used for escaping, it does not make sense for RIGHT_QUOTE to contain
-   a backslash.  RIGHT_QUOTE must not begin with a digit or a letter
-   that has special meaning after a backslash (for example, "\t" for
-   tab).  */
-void set_custom_quoting (struct quoting_options *o,
-                         char const *left_quote,
-                         char const *right_quote);
-
-/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
-   argument ARG (of size ARGSIZE), using O to control quoting.
-   If O is null, use the default.
-   Terminate the output with a null character, and return the written
-   size of the output, not counting the terminating null.
-   If BUFFERSIZE is too small to store the output string, return the
-   value that would have been returned had BUFFERSIZE been large enough.
-   If ARGSIZE is -1, use the string length of the argument for ARGSIZE.
-   On output, BUFFER might contain embedded null bytes if ARGSIZE was
-   not -1, the style of O does not use backslash escapes, and the
-   flags of O do not request elision of null bytes.*/
-size_t quotearg_buffer (char *restrict buffer, size_t buffersize,
-                        char const *arg, size_t argsize,
-                        struct quoting_options const *o);
-
-/* Like quotearg_buffer, except return the result in a newly allocated
-   buffer.  It is the caller's responsibility to free the result.  The
-   result will not contain embedded null bytes.  */
-char *quotearg_alloc (char const *arg, size_t argsize,
-                      struct quoting_options const *o)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_RETURNS_NONNULL;
-
-/* Like quotearg_alloc, except that the length of the result,
-   excluding the terminating null byte, is stored into SIZE if it is
-   non-NULL.  The result might contain embedded null bytes if ARGSIZE
-   was not -1, SIZE was not NULL, the style of O does not use
-   backslash escapes, and the flags of O do not request elision of
-   null bytes.*/
-char *quotearg_alloc_mem (char const *arg, size_t argsize,
-                          size_t *size, struct quoting_options const *o)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_RETURNS_NONNULL;
-
-/* Use storage slot N to return a quoted version of the string ARG.
-   Use the default quoting options.
-   The returned value points to static storage that can be
-   reused by the next call to this function with the same value of N.
-   N must be nonnegative.  The output of all functions in the
-   quotearg_n family are guaranteed to not contain embedded null
-   bytes.*/
-char *quotearg_n (int n, char const *arg);
-
-/* Equivalent to quotearg_n (0, ARG).  */
-char *quotearg (char const *arg);
-
-/* Use storage slot N to return a quoted version of the argument ARG
-   of size ARGSIZE.  This is like quotearg_n (N, ARG), except it can
-   quote null bytes.  */
-char *quotearg_n_mem (int n, char const *arg, size_t argsize);
-
-/* Equivalent to quotearg_n_mem (0, ARG, ARGSIZE).  */
-char *quotearg_mem (char const *arg, size_t argsize);
-
-/* Use style S and storage slot N to return a quoted version of the string ARG.
-   This is like quotearg_n (N, ARG), except that it uses S with no other
-   options to specify the quoting method.  */
-char *quotearg_n_style (int n, enum quoting_style s, char const *arg);
-
-/* Use style S and storage slot N to return a quoted version of the
-   argument ARG of size ARGSIZE.  This is like quotearg_n_style
-   (N, S, ARG), except it can quote null bytes.  */
-char *quotearg_n_style_mem (int n, enum quoting_style s,
-                            char const *arg, size_t argsize);
-
-/* Equivalent to quotearg_n_style (0, S, ARG).  */
-char *quotearg_style (enum quoting_style s, char const *arg);
-
-/* Equivalent to quotearg_n_style_mem (0, S, ARG, ARGSIZE).  */
-char *quotearg_style_mem (enum quoting_style s,
-                          char const *arg, size_t argsize);
-
-/* Like quotearg (ARG), except also quote any instances of CH.
-   See set_char_quoting for a description of acceptable CH values.  */
-char *quotearg_char (char const *arg, char ch);
-
-/* Like quotearg_char (ARG, CH), except it can quote null bytes.  */
-char *quotearg_char_mem (char const *arg, size_t argsize, char ch);
-
-/* Equivalent to quotearg_char (ARG, ':').  */
-char *quotearg_colon (char const *arg);
-
-/* Like quotearg_colon (ARG), except it can quote null bytes.  */
-char *quotearg_colon_mem (char const *arg, size_t argsize);
-
-/* Like quotearg_n_style, except with ':' quoting enabled.  */
-char *quotearg_n_style_colon (int n, enum quoting_style s, char const *arg);
-
-/* Like quotearg_n_style (N, S, ARG) but with S as custom_quoting_style
-   with left quote as LEFT_QUOTE and right quote as RIGHT_QUOTE.  See
-   set_custom_quoting for a description of acceptable LEFT_QUOTE and
-   RIGHT_QUOTE values.  */
-char *quotearg_n_custom (int n, char const *left_quote,
-                         char const *right_quote, char const *arg);
-
-/* Like quotearg_n_custom (N, LEFT_QUOTE, RIGHT_QUOTE, ARG) except it
-   can quote null bytes.  */
-char *quotearg_n_custom_mem (int n, char const *left_quote,
-                             char const *right_quote,
-                             char const *arg, size_t argsize);
-
-/* Equivalent to quotearg_n_custom (0, LEFT_QUOTE, RIGHT_QUOTE, ARG).  */
-char *quotearg_custom (char const *left_quote, char const *right_quote,
-                       char const *arg);
-
-/* Equivalent to quotearg_n_custom_mem (0, LEFT_QUOTE, RIGHT_QUOTE, ARG,
-                                        ARGSIZE).  */
-char *quotearg_custom_mem (char const *left_quote,
-                           char const *right_quote,
-                           char const *arg, size_t argsize);
-
-/* Free any dynamically allocated memory.  */
-void quotearg_free (void);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !QUOTEARG_H_ */
diff --git a/tp/Texinfo/XS/gnulib/lib/raise.c b/tp/Texinfo/XS/gnulib/lib/raise.c
deleted file mode 100644
index 891f355a18..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/raise.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Provide a non-threads replacement for the POSIX raise function.
-
-   Copyright (C) 2002-2003, 2005-2006, 2009-2024 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 <signal.h>
-
-#if HAVE_RAISE
-/* Native Windows platform.  */
-
-# include <errno.h>
-
-# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
-#  include "msvc-inval.h"
-# endif
-
-# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
-/* Forward declaration.  */
-static int raise_nothrow (int sig);
-# else
-#  define raise_nothrow raise
-# endif
-
-#else
-/* An old Unix platform.  */
-
-# include <unistd.h>
-
-#endif
-
-int
-raise (int sig)
-#undef raise
-{
-#if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE
-  if (sig == SIGPIPE)
-    return _gl_raise_SIGPIPE ();
-#endif
-
-#if HAVE_RAISE
-  return raise_nothrow (sig);
-#else
-  return kill (getpid (), sig);
-#endif
-}
-
-#if HAVE_RAISE && HAVE_MSVC_INVALID_PARAMETER_HANDLER
-static int
-raise_nothrow (int sig)
-{
-  int result;
-
-  TRY_MSVC_INVAL
-    {
-      result = raise (sig);
-    }
-  CATCH_MSVC_INVAL
-    {
-      result = -1;
-      errno = EINVAL;
-    }
-  DONE_MSVC_INVAL;
-
-  return result;
-}
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/read.c b/tp/Texinfo/XS/gnulib/lib/read.c
deleted file mode 100644
index 28fca4430a..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/read.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* POSIX compatible read() function.
-   Copyright (C) 2008-2024 Free Software Foundation, Inc.
-   Written by Bruno Haible <bruno@clisp.org>, 2011.
-
-   This file is free software: you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General 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>
-
-/* Specification.  */
-#include <unistd.h>
-
-#if defined _WIN32 && ! defined __CYGWIN__
-
-# include <errno.h>
-# include <io.h>
-
-# define WIN32_LEAN_AND_MEAN  /* avoid including junk */
-# include <windows.h>
-
-# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
-#  include "msvc-inval.h"
-# endif
-# if GNULIB_MSVC_NOTHROW
-#  include "msvc-nothrow.h"
-# else
-#  include <io.h>
-# endif
-
-/* Don't assume that UNICODE is not defined.  */
-# undef GetNamedPipeHandleState
-# define GetNamedPipeHandleState GetNamedPipeHandleStateA
-
-# undef read
-
-# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
-static ssize_t
-read_nothrow (int fd, void *buf, size_t count)
-{
-  ssize_t result;
-
-  TRY_MSVC_INVAL
-    {
-      result = _read (fd, buf, count);
-    }
-  CATCH_MSVC_INVAL
-    {
-      result = -1;
-      errno = EBADF;
-    }
-  DONE_MSVC_INVAL;
-
-  return result;
-}
-# else
-#  define read_nothrow _read
-# endif
-
-ssize_t
-rpl_read (int fd, void *buf, size_t count)
-{
-  ssize_t ret = read_nothrow (fd, buf, count);
-
-# if GNULIB_NONBLOCKING
-  if (ret < 0
-      && GetLastError () == ERROR_NO_DATA)
-    {
-      HANDLE h = (HANDLE) _get_osfhandle (fd);
-      if (GetFileType (h) == FILE_TYPE_PIPE)
-        {
-          /* h is a pipe or socket.  */
-          DWORD state;
-          if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL, NULL, 0)
-              && (state & PIPE_NOWAIT) != 0)
-            /* h is a pipe in non-blocking mode.
-               Change errno from EINVAL to EAGAIN.  */
-            errno = EAGAIN;
-        }
-    }
-# endif
-
-  return ret;
-}
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/reallocarray.c 
b/tp/Texinfo/XS/gnulib/lib/reallocarray.c
deleted file mode 100644
index e0377d0870..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/reallocarray.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* reallocarray function that is glibc compatible.
-
-   Copyright (C) 2017-2024 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 <stdckdint.h>
-#include <stdlib.h>
-#include <errno.h>
-
-void *
-reallocarray (void *ptr, size_t nmemb, size_t size)
-{
-  size_t nbytes;
-  if (ckd_mul (&nbytes, nmemb, size))
-    {
-      errno = ENOMEM;
-      return NULL;
-    }
-
-  /* Avoid calling realloc (ptr, 0), since that is undefined behaviour in
-     ISO C 23 and since the GNU libc behaviour may possibly change.  */
-  if (nbytes == 0)
-    {
-      void *new_ptr = malloc (1);
-      if (new_ptr == NULL)
-        /* errno is set here.  */
-        return NULL;
-      free (ptr);
-      return new_ptr;
-    }
-
-  /* Call realloc, setting errno to ENOMEM on failure.  */
-  return realloc (ptr, nbytes);
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/safe-read.c 
b/tp/Texinfo/XS/gnulib/lib/safe-read.c
deleted file mode 100644
index c7d31d535d..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/safe-read.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* An interface to read and write that retries after interrupts.
-
-   Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2024 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>
-
-/* Specification.  */
-#ifdef SAFE_WRITE
-# include "safe-write.h"
-#else
-# include "safe-read.h"
-#endif
-
-/* Get ssize_t.  */
-#include <sys/types.h>
-#include <unistd.h>
-
-#include <errno.h>
-
-#ifdef EINTR
-# define IS_EINTR(x) ((x) == EINTR)
-#else
-# define IS_EINTR(x) 0
-#endif
-
-#include "sys-limits.h"
-
-#ifdef SAFE_WRITE
-# define safe_rw safe_write
-# define rw write
-typedef void const *bufptr;
-#else
-# define safe_rw safe_read
-# define rw read
-typedef void *bufptr;
-#endif
-
-/* Read(write) up to COUNT bytes at BUF from(to) descriptor FD, retrying if
-   interrupted.  Return the number of bytes read(written), zero for EOF,
-   or -1 upon error.  */
-ptrdiff_t
-safe_rw (int fd, bufptr buf, idx_t count)
-{
-  for (;;)
-    {
-      ssize_t result = rw (fd, buf, count <= (size_t) -1 ? count : (size_t) 
-1);
-
-      if (0 <= result)
-        return result;
-      else if (IS_EINTR (errno))
-        continue;
-      else if (errno == EINVAL && SYS_BUFSIZE_MAX < count)
-        count = SYS_BUFSIZE_MAX;
-      else
-        return result;
-    }
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/safe-read.h 
b/tp/Texinfo/XS/gnulib/lib/safe-read.h
deleted file mode 100644
index 6843092948..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/safe-read.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* An interface to read() that retries after interrupts.
-   Copyright (C) 2002, 2006, 2009-2024 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/>.  */
-
-/* Some system calls may be interrupted and fail with errno = EINTR in the
-   following situations:
-     - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user
-       types Ctrl-Z) on some platforms: Mac OS X.
-     - The process receives a signal for which a signal handler was installed
-       with sigaction() with an sa_flags field that does not contain
-       SA_RESTART.
-     - The process receives a signal for which a signal handler was installed
-       with signal() and for which no call to siginterrupt(sig,0) was done,
-       on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris.
-
-   This module provides a wrapper around read() that handles EINTR.  */
-
-#include <stddef.h>
-
-#include "idx.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* This is present for backward compatibility with older versions of this code
-   where safe_read returned size_t, so SAFE_READ_ERROR was SIZE_MAX.  */
-#define SAFE_READ_ERROR ((ptrdiff_t) -1)
-
-/* Read up to COUNT bytes at BUF from descriptor FD, retrying if interrupted.
-   Return the number of bytes read, zero for EOF, or -1 upon error.  */
-extern ptrdiff_t safe_read (int fd, void *buf, idx_t count);
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/safe-write.c 
b/tp/Texinfo/XS/gnulib/lib/safe-write.c
deleted file mode 100644
index fc1da8c9d3..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/safe-write.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* An interface to write that retries after interrupts.
-   Copyright (C) 2002, 2009-2024 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/>.  */
-
-#define SAFE_WRITE
-#include "safe-read.c"
diff --git a/tp/Texinfo/XS/gnulib/lib/safe-write.h 
b/tp/Texinfo/XS/gnulib/lib/safe-write.h
deleted file mode 100644
index 0f77156293..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/safe-write.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* An interface to write() that retries after interrupts.
-   Copyright (C) 2002, 2009-2024 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/>.  */
-
-/* Some system calls may be interrupted and fail with errno = EINTR in the
-   following situations:
-     - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user
-       types Ctrl-Z) on some platforms: Mac OS X.
-     - The process receives a signal for which a signal handler was installed
-       with sigaction() with an sa_flags field that does not contain
-       SA_RESTART.
-     - The process receives a signal for which a signal handler was installed
-       with signal() and for which no call to siginterrupt(sig,0) was done,
-       on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris.
-
-   This module provides a wrapper around write() that handles EINTR.  */
-
-#include <stddef.h>
-
-#include "idx.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* This is present for backward compatibility with older versions of this code
-   where safe_read returned size_t, so SAFE_WRITE_ERROR was SIZE_MAX.  */
-#define SAFE_WRITE_ERROR ((ptrdiff_t) -1)
-
-/* Write up to COUNT bytes at BUF to descriptor FD, retrying if interrupted.
-   Return the number of bytes written, zero for EOF, or -1 upon error.  */
-extern ptrdiff_t safe_write (int fd, const void *buf, idx_t count);
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/set-permissions.c 
b/tp/Texinfo/XS/gnulib/lib/set-permissions.c
deleted file mode 100644
index 83a355faa5..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/set-permissions.c
+++ /dev/null
@@ -1,848 +0,0 @@
-/* Set permissions of a file.  -*- coding: utf-8 -*-
-
-   Copyright (C) 2002-2003, 2005-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.
-
-   Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible.  */
-
-#include <config.h>
-
-#include "acl.h"
-
-#include "acl-internal.h"
-#include "minmax.h"
-
-#if USE_ACL
-# if ! defined HAVE_ACL_FROM_MODE && defined HAVE_ACL_FROM_TEXT /* FreeBSD, 
IRIX, Tru64, Cygwin >= 2.5 */
-#  if HAVE_ACL_GET_FILE && !HAVE_ACL_TYPE_EXTENDED
-
-static acl_t
-acl_from_mode (mode_t mode)
-{
-#  if HAVE_ACL_FREE_TEXT /* Tru64 */
-  char acl_text[] = "u::---,g::---,o::---,";
-#  else /* FreeBSD, IRIX, Cygwin >= 2.5 */
-  char acl_text[] = "u::---,g::---,o::---";
-#  endif
-
-  if (mode & S_IRUSR) acl_text[ 3] = 'r';
-  if (mode & S_IWUSR) acl_text[ 4] = 'w';
-  if (mode & S_IXUSR) acl_text[ 5] = 'x';
-  if (mode & S_IRGRP) acl_text[10] = 'r';
-  if (mode & S_IWGRP) acl_text[11] = 'w';
-  if (mode & S_IXGRP) acl_text[12] = 'x';
-  if (mode & S_IROTH) acl_text[17] = 'r';
-  if (mode & S_IWOTH) acl_text[18] = 'w';
-  if (mode & S_IXOTH) acl_text[19] = 'x';
-
-  return acl_from_text (acl_text);
-}
-#  endif
-# endif
-
-# if HAVE_FACL && defined GETACL /* Solaris, Cygwin < 2.5, not HP-UX */
-static int
-set_acls_from_mode (const char *name, int desc, mode_t mode, bool *must_chmod)
-{
-#  ifdef ACE_GETACL
-  /* Solaris also has a different variant of ACLs, used in ZFS and NFSv4
-     file systems (whereas the other ones are used in UFS file systems).  */
-
-  /* The flags in the ace_t structure changed in a binary incompatible way
-     when ACL_NO_TRIVIAL etc. were introduced in <sys/acl.h> version 1.15.
-     How to distinguish the two conventions at runtime?
-     We fetch the existing ACL.  In the old convention, usually three ACEs have
-     a_flags = ACE_OWNER / ACE_GROUP / ACE_OTHER, in the range 0x0100..0x0400.
-     In the new convention, these values are not used.  */
-  int convention;
-
-  {
-    /* Initially, try to read the entries into a stack-allocated buffer.
-       Use malloc if it does not fit.  */
-    enum
-      {
-        alloc_init = 4000 / sizeof (ace_t), /* >= 3 */
-        alloc_max = MIN (INT_MAX, SIZE_MAX / sizeof (ace_t))
-      };
-    ace_t buf[alloc_init];
-    size_t alloc = alloc_init;
-    ace_t *entries = buf;
-    ace_t *malloced = NULL;
-    int count;
-
-    for (;;)
-      {
-        count = (desc != -1
-                 ? facl (desc, ACE_GETACL, alloc, entries)
-                 : acl (name, ACE_GETACL, alloc, entries));
-        if (count < 0 && errno == ENOSPC)
-          {
-            /* Increase the size of the buffer.  */
-            free (malloced);
-            if (alloc > alloc_max / 2)
-              {
-                errno = ENOMEM;
-                return -1;
-              }
-            alloc = 2 * alloc; /* <= alloc_max */
-            entries = malloced = (ace_t *) malloc (alloc * sizeof (ace_t));
-            if (entries == NULL)
-              {
-                errno = ENOMEM;
-                return -1;
-              }
-            continue;
-          }
-        break;
-      }
-
-    if (count <= 0)
-      convention = -1;
-    else
-      {
-        int i;
-
-        convention = 0;
-        for (i = 0; i < count; i++)
-          if (entries[i].a_flags & (OLD_ACE_OWNER | OLD_ACE_GROUP | 
OLD_ACE_OTHER))
-            {
-              convention = 1;
-              break;
-            }
-      }
-    free (malloced);
-  }
-
-  if (convention >= 0)
-    {
-      ace_t entries[6];
-      int count;
-      int ret;
-
-      if (convention)
-        {
-          /* Running on Solaris 10.  */
-          entries[0].a_type = OLD_ALLOW;
-          entries[0].a_flags = OLD_ACE_OWNER;
-          entries[0].a_who = 0; /* irrelevant */
-          entries[0].a_access_mask = (mode >> 6) & 7;
-          entries[1].a_type = OLD_ALLOW;
-          entries[1].a_flags = OLD_ACE_GROUP;
-          entries[1].a_who = 0; /* irrelevant */
-          entries[1].a_access_mask = (mode >> 3) & 7;
-          entries[2].a_type = OLD_ALLOW;
-          entries[2].a_flags = OLD_ACE_OTHER;
-          entries[2].a_who = 0;
-          entries[2].a_access_mask = mode & 7;
-          count = 3;
-        }
-      else
-        {
-          /* Running on Solaris 10 (newer version) or Solaris 11.
-             The details here were found through "/bin/ls -lvd somefiles".  */
-          entries[0].a_type = NEW_ACE_ACCESS_DENIED_ACE_TYPE;
-          entries[0].a_flags = NEW_ACE_OWNER;
-          entries[0].a_who = 0; /* irrelevant */
-          entries[0].a_access_mask = 0;
-          entries[1].a_type = NEW_ACE_ACCESS_ALLOWED_ACE_TYPE;
-          entries[1].a_flags = NEW_ACE_OWNER;
-          entries[1].a_who = 0; /* irrelevant */
-          entries[1].a_access_mask = NEW_ACE_WRITE_NAMED_ATTRS
-                                     | NEW_ACE_WRITE_ATTRIBUTES
-                                     | NEW_ACE_WRITE_ACL
-                                     | NEW_ACE_WRITE_OWNER;
-          if (mode & 0400)
-            entries[1].a_access_mask |= NEW_ACE_READ_DATA;
-          else
-            entries[0].a_access_mask |= NEW_ACE_READ_DATA;
-          if (mode & 0200)
-            entries[1].a_access_mask |= NEW_ACE_WRITE_DATA | 
NEW_ACE_APPEND_DATA;
-          else
-            entries[0].a_access_mask |= NEW_ACE_WRITE_DATA | 
NEW_ACE_APPEND_DATA;
-          if (mode & 0100)
-            entries[1].a_access_mask |= NEW_ACE_EXECUTE;
-          else
-            entries[0].a_access_mask |= NEW_ACE_EXECUTE;
-          entries[2].a_type = NEW_ACE_ACCESS_DENIED_ACE_TYPE;
-          entries[2].a_flags = NEW_ACE_GROUP | NEW_ACE_IDENTIFIER_GROUP;
-          entries[2].a_who = 0; /* irrelevant */
-          entries[2].a_access_mask = 0;
-          entries[3].a_type = NEW_ACE_ACCESS_ALLOWED_ACE_TYPE;
-          entries[3].a_flags = NEW_ACE_GROUP | NEW_ACE_IDENTIFIER_GROUP;
-          entries[3].a_who = 0; /* irrelevant */
-          entries[3].a_access_mask = 0;
-          if (mode & 0040)
-            entries[3].a_access_mask |= NEW_ACE_READ_DATA;
-          else
-            entries[2].a_access_mask |= NEW_ACE_READ_DATA;
-          if (mode & 0020)
-            entries[3].a_access_mask |= NEW_ACE_WRITE_DATA | 
NEW_ACE_APPEND_DATA;
-          else
-            entries[2].a_access_mask |= NEW_ACE_WRITE_DATA | 
NEW_ACE_APPEND_DATA;
-          if (mode & 0010)
-            entries[3].a_access_mask |= NEW_ACE_EXECUTE;
-          else
-            entries[2].a_access_mask |= NEW_ACE_EXECUTE;
-          entries[4].a_type = NEW_ACE_ACCESS_DENIED_ACE_TYPE;
-          entries[4].a_flags = NEW_ACE_EVERYONE;
-          entries[4].a_who = 0;
-          entries[4].a_access_mask = NEW_ACE_WRITE_NAMED_ATTRS
-                                     | NEW_ACE_WRITE_ATTRIBUTES
-                                     | NEW_ACE_WRITE_ACL
-                                     | NEW_ACE_WRITE_OWNER;
-          entries[5].a_type = NEW_ACE_ACCESS_ALLOWED_ACE_TYPE;
-          entries[5].a_flags = NEW_ACE_EVERYONE;
-          entries[5].a_who = 0;
-          entries[5].a_access_mask = NEW_ACE_READ_NAMED_ATTRS
-                                     | NEW_ACE_READ_ATTRIBUTES
-                                     | NEW_ACE_READ_ACL
-                                     | NEW_ACE_SYNCHRONIZE;
-          if (mode & 0004)
-            entries[5].a_access_mask |= NEW_ACE_READ_DATA;
-          else
-            entries[4].a_access_mask |= NEW_ACE_READ_DATA;
-          if (mode & 0002)
-            entries[5].a_access_mask |= NEW_ACE_WRITE_DATA | 
NEW_ACE_APPEND_DATA;
-          else
-            entries[4].a_access_mask |= NEW_ACE_WRITE_DATA | 
NEW_ACE_APPEND_DATA;
-          if (mode & 0001)
-            entries[5].a_access_mask |= NEW_ACE_EXECUTE;
-          else
-            entries[4].a_access_mask |= NEW_ACE_EXECUTE;
-          count = 6;
-        }
-      if (desc != -1)
-        ret = facl (desc, ACE_SETACL, count, entries);
-      else
-        ret = acl (name, ACE_SETACL, count, entries);
-      if (ret < 0 && errno != EINVAL && errno != ENOTSUP)
-        {
-          if (errno == ENOSYS)
-            {
-              *must_chmod = true;
-              return 0;
-            }
-          return -1;
-        }
-      if (ret == 0)
-        return 0;
-    }
-#  endif
-
-  {
-    aclent_t entries[3];
-    int ret;
-
-    entries[0].a_type = USER_OBJ;
-    entries[0].a_id = 0; /* irrelevant */
-    entries[0].a_perm = (mode >> 6) & 7;
-    entries[1].a_type = GROUP_OBJ;
-    entries[1].a_id = 0; /* irrelevant */
-    entries[1].a_perm = (mode >> 3) & 7;
-    entries[2].a_type = OTHER_OBJ;
-    entries[2].a_id = 0;
-    entries[2].a_perm = mode & 7;
-
-    if (desc != -1)
-      ret = facl (desc, SETACL,
-                  sizeof (entries) / sizeof (aclent_t), entries);
-    else
-      ret = acl (name, SETACL,
-                 sizeof (entries) / sizeof (aclent_t), entries);
-    if (ret < 0)
-      {
-        if (errno == ENOSYS || errno == EOPNOTSUPP)
-          {
-            *must_chmod = true;
-            return 0;
-          }
-        return -1;
-      }
-    return 0;
-  }
-}
-
-# elif HAVE_GETACL /* HP-UX */
-static int
-context_acl_from_mode (struct permission_context *ctx, const char *name, int 
desc)
-{
-  struct stat statbuf;
-  int ret;
-
-  if (desc != -1)
-    ret = fstat (desc, &statbuf);
-  else
-    ret = stat (name, &statbuf);
-  if (ret < 0)
-    return -1;
-
-  ctx->entries[0].uid = statbuf.st_uid;
-  ctx->entries[0].gid = ACL_NSGROUP;
-  ctx->entries[0].mode = (ctx->mode >> 6) & 7;
-  ctx->entries[1].uid = ACL_NSUSER;
-  ctx->entries[1].gid = statbuf.st_gid;
-  ctx->entries[1].mode = (ctx->mode >> 3) & 7;
-  ctx->entries[2].uid = ACL_NSUSER;
-  ctx->entries[2].gid = ACL_NSGROUP;
-  ctx->entries[2].mode = ctx->mode & 7;
-  ctx->count = 3;
-  return 0;
-}
-
-#  if HAVE_ACLV_H /* HP-UX >= 11.11 */
-static int
-context_aclv_from_mode (struct permission_context *ctx)
-{
-  int ret;
-
-  ctx->aclv_entries[0].a_type = USER_OBJ;
-  ctx->aclv_entries[0].a_id = 0; /* irrelevant */
-  ctx->aclv_entries[0].a_perm = (ctx->mode >> 6) & 7;
-  ctx->aclv_entries[1].a_type = GROUP_OBJ;
-  ctx->aclv_entries[1].a_id = 0; /* irrelevant */
-  ctx->aclv_entries[1].a_perm = (ctx->mode >> 3) & 7;
-  ctx->aclv_entries[2].a_type = CLASS_OBJ;
-  ctx->aclv_entries[2].a_id = 0;
-  ctx->aclv_entries[2].a_perm = (ctx->mode >> 3) & 7;
-  ctx->aclv_entries[3].a_type = OTHER_OBJ;
-  ctx->aclv_entries[3].a_id = 0;
-  ctx->aclv_entries[3].a_perm = ctx->mode & 7;
-  ctx->aclv_count = 4;
-
-  ret = aclsort (ctx->aclv_count, 1, ctx->aclv_entries);
-  if (ret > 0)
-    abort ();
-  return ret;
-}
-#  endif
-
-# elif HAVE_ACLX_GET && defined ACL_AIX_WIP /* AIX */
-static int
-set_acls_from_mode (const char *name, int desc, mode_t mode, bool *must_chmod)
-{
-  acl_type_list_t types;
-  size_t types_size = sizeof (types);
-  acl_type_t type;
-
-  if (aclx_gettypes (name, &types, &types_size) < 0
-      || types.num_entries == 0)
-    {
-      *must_chmod = true;
-      return 0;
-    }
-
-  /* XXX Do we need to clear all types of ACLs for the given file, or is it
-     sufficient to clear the first one?  */
-  type = types.entries[0];
-  if (type.u64 == ACL_AIXC)
-    {
-      union { struct acl a; char room[128]; } u;
-      int ret;
-
-      u.a.acl_len = (char *) &u.a.acl_ext[0] - (char *) &u.a; /* no entries */
-      u.a.acl_mode = mode & ~(S_IXACL | 0777);
-      u.a.u_access = (mode >> 6) & 7;
-      u.a.g_access = (mode >> 3) & 7;
-      u.a.o_access = mode & 7;
-
-      if (desc != -1)
-        ret = aclx_fput (desc, SET_ACL | SET_MODE_S_BITS,
-                         type, &u.a, u.a.acl_len, mode);
-      else
-        ret = aclx_put (name, SET_ACL | SET_MODE_S_BITS,
-                        type, &u.a, u.a.acl_len, mode);
-      if (!(ret < 0 && errno == ENOSYS))
-        return ret;
-    }
-  else if (type.u64 == ACL_NFS4)
-    {
-      union { nfs4_acl_int_t a; char room[128]; } u;
-      nfs4_ace_int_t *ace;
-      int ret;
-
-      u.a.aclVersion = NFS4_ACL_INT_STRUCT_VERSION;
-      u.a.aclEntryN = 0;
-      ace = &u.a.aclEntry[0];
-      {
-        ace->flags = ACE4_ID_SPECIAL;
-        ace->aceWho.special_whoid = ACE4_WHO_OWNER;
-        ace->aceType = ACE4_ACCESS_ALLOWED_ACE_TYPE;
-        ace->aceFlags = 0;
-        ace->aceMask =
-          (mode & 0400 ? ACE4_READ_DATA | ACE4_LIST_DIRECTORY : 0)
-          | (mode & 0200
-             ? ACE4_WRITE_DATA | ACE4_ADD_FILE | ACE4_APPEND_DATA
-               | ACE4_ADD_SUBDIRECTORY
-             : 0)
-          | (mode & 0100 ? ACE4_EXECUTE : 0);
-        ace->aceWhoString[0] = '\0';
-        ace->entryLen = (char *) &ace->aceWhoString[4] - (char *) ace;
-        ace = (nfs4_ace_int_t *) (char *) &ace->aceWhoString[4];
-        u.a.aclEntryN++;
-      }
-      {
-        ace->flags = ACE4_ID_SPECIAL;
-        ace->aceWho.special_whoid = ACE4_WHO_GROUP;
-        ace->aceType = ACE4_ACCESS_ALLOWED_ACE_TYPE;
-        ace->aceFlags = 0;
-        ace->aceMask =
-          (mode & 0040 ? ACE4_READ_DATA | ACE4_LIST_DIRECTORY : 0)
-          | (mode & 0020
-             ? ACE4_WRITE_DATA | ACE4_ADD_FILE | ACE4_APPEND_DATA
-               | ACE4_ADD_SUBDIRECTORY
-             : 0)
-          | (mode & 0010 ? ACE4_EXECUTE : 0);
-        ace->aceWhoString[0] = '\0';
-        ace->entryLen = (char *) &ace->aceWhoString[4] - (char *) ace;
-        ace = (nfs4_ace_int_t *) (char *) &ace->aceWhoString[4];
-        u.a.aclEntryN++;
-      }
-      {
-        ace->flags = ACE4_ID_SPECIAL;
-        ace->aceWho.special_whoid = ACE4_WHO_EVERYONE;
-        ace->aceType = ACE4_ACCESS_ALLOWED_ACE_TYPE;
-        ace->aceFlags = 0;
-        ace->aceMask =
-          (mode & 0004 ? ACE4_READ_DATA | ACE4_LIST_DIRECTORY : 0)
-          | (mode & 0002
-             ? ACE4_WRITE_DATA | ACE4_ADD_FILE | ACE4_APPEND_DATA
-               | ACE4_ADD_SUBDIRECTORY
-             : 0)
-          | (mode & 0001 ? ACE4_EXECUTE : 0);
-        ace->aceWhoString[0] = '\0';
-        ace->entryLen = (char *) &ace->aceWhoString[4] - (char *) ace;
-        ace = (nfs4_ace_int_t *) (char *) &ace->aceWhoString[4];
-        u.a.aclEntryN++;
-      }
-      u.a.aclLength = (char *) ace - (char *) &u.a;
-
-      if (desc != -1)
-        ret = aclx_fput (desc, SET_ACL | SET_MODE_S_BITS,
-                         type, &u.a, u.a.aclLength, mode);
-      else
-        ret = aclx_put (name, SET_ACL | SET_MODE_S_BITS,
-                        type, &u.a, u.a.aclLength, mode);
-      if (!(ret < 0 && errno == ENOSYS))
-        return ret;
-    }
-
-  *must_chmod = true;
-  return 0;
-}
-
-# elif HAVE_STATACL /* older AIX */
-static int
-context_acl_from_mode (struct permission_context *ctx)
-{
-  ctx->u.a.acl_len = (char *) &ctx->u.a.acl_ext[0] - (char *) &ctx->u.a; /* no 
entries */
-  ctx->u.a.acl_mode = ctx->mode & ~(S_IXACL | 0777);
-  ctx->u.a.u_access = (ctx->mode >> 6) & 7;
-  ctx->u.a.g_access = (ctx->mode >> 3) & 7;
-  ctx->u.a.o_access = ctx->mode & 7;
-  ctx->have_u = true;
-  return 0;
-}
-
-# elif HAVE_ACLSORT /* NonStop Kernel */
-static int
-context_acl_from_mode (struct permission_context *ctx)
-{
-  int ret;
-
-  ctx->entries[0].a_type = USER_OBJ;
-  ctx->entries[0].a_id = 0; /* irrelevant */
-  ctx->entries[0].a_perm = (ctx->mode >> 6) & 7;
-  ctx->entries[1].a_type = GROUP_OBJ;
-  ctx->entries[1].a_id = 0; /* irrelevant */
-  ctx->entries[1].a_perm = (ctx->mode >> 3) & 7;
-  ctx->entries[2].a_type = CLASS_OBJ;
-  ctx->entries[2].a_id = 0;
-  ctx->entries[2].a_perm = (ctx->mode >> 3) & 7;
-  ctx->entries[3].a_type = OTHER_OBJ;
-  ctx->entries[3].a_id = 0;
-  ctx->entries[3].a_perm = ctx->mode & 7;
-  ctx->count = 4;
-
-  ret = aclsort (ctx->count, 1, entries);
-  if (ret > 0)
-    abort ();
-  return ret;
-}
-# endif
-
-static int
-set_acls (struct permission_context *ctx, const char *name, int desc,
-          int from_mode, bool *must_chmod, bool *acls_set)
-{
-  int ret = 0;
-
-# if HAVE_ACL_GET_FILE
-  /* POSIX 1003.1e (draft 17 -- abandoned) specific version.  */
-  /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */
-#  if !HAVE_ACL_TYPE_EXTENDED
-  /* Linux, FreeBSD, IRIX, Tru64, Cygwin >= 2.5 */
-
-#   ifndef HAVE_ACL_FROM_TEXT
-#    error Must have acl_from_text (see POSIX 1003.1e draft 17).
-#   endif
-#   ifndef HAVE_ACL_DELETE_DEF_FILE
-#    error Must have acl_delete_def_file (see POSIX 1003.1e draft 17).
-#   endif
-
-  if (! ctx->acls_not_supported)
-    {
-      if (ret == 0 && from_mode)
-        {
-          if (ctx->acl)
-            acl_free (ctx->acl);
-          ctx->acl = acl_from_mode (ctx->mode);
-          if (ctx->acl == NULL)
-            ret = -1;
-        }
-
-      if (ret == 0 && ctx->acl)
-        {
-          if (HAVE_ACL_SET_FD && desc != -1)
-            ret = acl_set_fd (desc, ctx->acl);
-          else
-            ret = acl_set_file (name, ACL_TYPE_ACCESS, ctx->acl);
-          if (ret != 0)
-            {
-              if (! acl_errno_valid (errno))
-                {
-                  ctx->acls_not_supported = true;
-                  if (from_mode || acl_access_nontrivial (ctx->acl) == 0)
-                    ret = 0;
-                }
-            }
-          else
-            {
-              *acls_set = true;
-              if (S_ISDIR(ctx->mode))
-                {
-                  if (! from_mode && ctx->default_acl &&
-                      acl_default_nontrivial (ctx->default_acl))
-                    ret = acl_set_file (name, ACL_TYPE_DEFAULT,
-                                        ctx->default_acl);
-                  else
-                    ret = acl_delete_def_file (name);
-                }
-            }
-        }
-    }
-
-#   if HAVE_ACL_TYPE_NFS4  /* FreeBSD */
-
-  /* File systems either support POSIX ACLs (for example, ufs) or NFS4 ACLs
-     (for example, zfs). */
-
-  /* TODO: Implement setting ACLs once get_permissions() reads them. */
-
-#   endif
-
-#  else /* HAVE_ACL_TYPE_EXTENDED */
-  /* Mac OS X */
-
-  /* On Mac OS X,  acl_get_file (name, ACL_TYPE_ACCESS)
-     and           acl_get_file (name, ACL_TYPE_DEFAULT)
-     always return NULL / EINVAL.  You have to use
-                   acl_get_file (name, ACL_TYPE_EXTENDED)
-     or            acl_get_fd (open (name, ...))
-     to retrieve an ACL.
-     On the other hand,
-                   acl_set_file (name, ACL_TYPE_ACCESS, acl)
-     and           acl_set_file (name, ACL_TYPE_DEFAULT, acl)
-     have the same effect as
-                   acl_set_file (name, ACL_TYPE_EXTENDED, acl):
-     Each of these calls sets the file's ACL.  */
-
-  if (ctx->acl == NULL)
-    {
-      acl_t acl;
-
-      /* Remove ACLs if the file has ACLs.  */
-      if (HAVE_ACL_GET_FD && desc != -1)
-        acl = acl_get_fd (desc);
-      else
-        acl = acl_get_file (name, ACL_TYPE_EXTENDED);
-      if (acl)
-        {
-          acl_free (acl);
-
-          acl = acl_init (0);
-          if (acl)
-            {
-              if (HAVE_ACL_SET_FD && desc != -1)
-                ret = acl_set_fd (desc, acl);
-              else
-                ret = acl_set_file (name, ACL_TYPE_EXTENDED, acl);
-              acl_free (acl);
-            }
-          else
-            ret = -1;
-        }
-    }
-  else
-    {
-      if (HAVE_ACL_SET_FD && desc != -1)
-        ret = acl_set_fd (desc, ctx->acl);
-      else
-        ret = acl_set_file (name, ACL_TYPE_EXTENDED, ctx->acl);
-      if (ret != 0)
-        {
-          if (! acl_errno_valid (errno)
-              && ! acl_extended_nontrivial (ctx->acl))
-            ret = 0;
-        }
-    }
-  *acls_set = true;
-
-#  endif
-
-# elif defined GETACL /* Solaris, Cygwin, not HP-UX */
-
-  /* Solaris 2.5 through Solaris 10, Cygwin, and contemporaneous versions
-     of Unixware.  The acl() call returns the access and default ACL both
-     at once.  */
-
-  /* If both ace_entries and entries are available, try SETACL before
-     ACE_SETACL, because SETACL cannot fail with ENOTSUP whereas ACE_SETACL
-     can.  */
-
-  if (from_mode)
-    return set_acls_from_mode (name, desc, ctx->mode, must_chmod);
-
-  if (ret == 0 && ctx->count)
-    {
-      if (desc != -1)
-        ret = facl (desc, SETACL, ctx->count, ctx->entries);
-      else
-        ret = acl (name, SETACL, ctx->count, ctx->entries);
-      if (ret < 0)
-        {
-          if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
-              && acl_nontrivial (ctx->count, ctx->entries) == 0)
-            ret = 0;
-        }
-      else
-        *acls_set = true;
-    }
-
-#  ifdef ACE_GETACL
-  if (ret == 0 && ctx->ace_count)
-    {
-      if (desc != -1)
-        ret = facl (desc, ACE_SETACL, ctx->ace_count, ctx->ace_entries);
-      else
-        ret = acl (name, ACE_SETACL, ctx->ace_count, ctx->ace_entries);
-      if (ret < 0)
-        {
-          if ((errno == ENOSYS || errno == EINVAL || errno == ENOTSUP)
-              && acl_ace_nontrivial (ctx->ace_count, ctx->ace_entries) == 0)
-            ret = 0;
-        }
-      else
-        *acls_set = true;
-    }
-#  endif
-
-# elif HAVE_GETACL /* HP-UX */
-
-  if (from_mode)
-    ret = context_acl_from_mode (ctx, name, desc);
-
-  if (ret == 0 && ctx->count > 0)
-    {
-      if (desc != -1)
-        ret = fsetacl (desc, ctx->count, ctx->entries);
-      else
-        ret = setacl (name, ctx->count, ctx->entries);
-      if (ret < 0)
-        {
-          if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
-              && (from_mode || !acl_nontrivial (ctx->count, ctx->entries)))
-            ret = 0;
-        }
-      else
-        *acls_set = true;
-    }
-
-#  if HAVE_ACLV_H
-  if (from_mode)
-    ret = context_aclv_from_mode (ctx);
-
-  if (ret == 0 && ctx->aclv_count > 0)
-    {
-      ret = acl ((char *) name, ACL_SET, ctx->aclv_count, ctx->aclv_entries);
-      if (ret < 0)
-        {
-          if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
-              && (from_mode || !aclv_nontrivial (ctx->aclv_count, 
ctx->aclv_entries)))
-            ret = 0;
-        }
-      else
-        *acls_set = true;
-    }
-#  endif
-
-# elif HAVE_ACLX_GET && ACL_AIX_WIP /* AIX */
-
-  /* TODO: Implement setting ACLs once get_permissions() reads them. */
-
-  if (from_mode)
-    ret = set_acls_from_mode (name, desc, mode, must_chmod);
-
-# elif HAVE_STATACL /* older AIX */
-
-  if (from_mode)
-    ret = context_acl_from_mode (ctx);
-
-  if (ret == 0 && ctx->have_u)
-    {
-      if (desc != -1)
-        ret = fchacl (desc, &ctx->u.a, ctx->u.a.acl_len);
-      else
-        ret = chacl ((char *) name, &ctx->u.a, ctx->u.a.acl_len);
-      if (ret < 0)
-        {
-          if (errno == ENOSYS && from_mode)
-            ret = 0;
-        }
-      else
-        *acls_set = true;
-    }
-
-# elif HAVE_ACLSORT /* NonStop Kernel */
-
-  if (from_mode)
-    ret = context_acl_from_mode (ctx);
-
-  if (ret == 0 && ctx->count)
-    {
-      ret = acl ((char *) name, ACL_SET, ctx->count, ctx->entries);
-      if (ret != 0)
-        {
-          if (!acl_nontrivial (ctx->count, ctx->entries))
-            ret = 0;
-        }
-      else
-        *acls_set = true;
-    }
-
-# else  /* No ACLs */
-
-  /* Nothing to do. */
-
-# endif
-
-  return ret;
-}
-#endif
-
-/* If DESC is a valid file descriptor use fchmod to change the
-   file's mode to MODE on systems that have fchmod. On systems
-   that don't have fchmod and if DESC is invalid, use chmod on
-   NAME instead.
-   Return 0 if successful.  Return -1 and set errno upon failure.  */
-
-int
-chmod_or_fchmod (const char *name, int desc, mode_t mode)
-{
-  if (HAVE_FCHMOD && desc != -1)
-    return fchmod (desc, mode);
-  else
-    return chmod (name, mode);
-}
-
-/* Set the permissions in CTX on a file. If DESC is a valid file descriptor,
-   use file descriptor operations, else use filename based operations on NAME.
-   If access control lists are not available, fchmod the target file to the
-   mode in CTX.  Also sets the non-permission bits of the destination file
-   (S_ISUID, S_ISGID, S_ISVTX) to those from the mode in CTX if any are set.
-   Return 0 if successful.  Return -1 and set errno upon failure.  */
-
-int
-set_permissions (struct permission_context *ctx, const char *name, int desc)
-{
-  _GL_UNUSED bool acls_set = false;
-  bool early_chmod;
-  bool must_chmod = false;
-  int ret = 0;
-
-#if USE_ACL
-# if HAVE_STATACL
-  /* older AIX */
-  /* There is no need to call chmod_or_fchmod, since the mode
-     bits S_ISUID, S_ISGID, S_ISVTX are also stored in the ACL.  */
-
-  early_chmod = false;
-# else
-  /* All other platforms */
-  /* On Cygwin, it is necessary to call chmod before acl, because
-     chmod can change the contents of the ACL (in ways that don't
-     change the allowed accesses, but still visible).  */
-
-  early_chmod = (! MODE_INSIDE_ACL || (ctx->mode & (S_ISUID | S_ISGID | 
S_ISVTX)));
-# endif
-#else
-  /* No ACLs */
-
-  early_chmod = true;
-#endif
-
-  if (early_chmod)
-    {
-      ret = chmod_or_fchmod (name, desc, ctx->mode);
-      if (ret != 0)
-        return -1;
-    }
-
-#if USE_ACL
-  ret = set_acls (ctx, name, desc, false, &must_chmod, &acls_set);
-  if (! acls_set)
-    {
-      int saved_errno = ret ? errno : 0;
-
-      /* If we can't set an acl which we expect to be able to set, try setting
-         the permissions to ctx->mode. Due to possible inherited permissions,
-         we cannot simply chmod.  */
-
-      ret = set_acls (ctx, name, desc, true, &must_chmod, &acls_set);
-      if (! acls_set)
-        must_chmod = true;
-
-      if (saved_errno)
-        {
-          errno = saved_errno;
-          ret = -1;
-        }
-    }
-#endif
-
-  if (must_chmod && ! early_chmod)
-    {
-      int saved_errno = ret ? errno : 0;
-
-      ret = chmod_or_fchmod (name, desc, ctx->mode);
-
-      if (saved_errno)
-        {
-          errno = saved_errno;
-          ret = -1;
-        }
-    }
-
-  return ret;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/setlocale-lock.c 
b/tp/Texinfo/XS/gnulib/lib/setlocale-lock.c
deleted file mode 100644
index 192489c4ab..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/setlocale-lock.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Return the internal lock used by setlocale_null_r.
-   Copyright (C) 2019-2024 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 Bruno Haible <bruno@clisp.org>, 2019.  */
-
-#include <config.h>
-
-/* The option '--disable-threads' explicitly requests no locking.  */
-/* When it is known that the gl_get_setlocale_null_lock function is defined
-   by a dependency library, it should not be defined here.  */
-#if AVOID_ANY_THREADS || OMIT_SETLOCALE_LOCK
-
-/* This declaration is solely to ensure that after preprocessing
-   this file is never empty.  */
-typedef int dummy;
-
-#else
-
-/* This file defines the internal lock used by setlocale_null_r.
-   It is a separate compilation unit, so that only one copy of it is
-   present when linking statically.  */
-
-/* Prohibit renaming this symbol.  */
-# undef gl_get_setlocale_null_lock
-
-/* Macro for exporting a symbol (function, not variable) defined in this file,
-   when compiled into a shared library.  */
-# ifndef SHLIB_EXPORTED
-#  if HAVE_VISIBILITY
-  /* Override the effect of the compiler option '-fvisibility=hidden'.  */
-#   define SHLIB_EXPORTED __attribute__((__visibility__("default")))
-#  elif defined _WIN32 || defined __CYGWIN__
-#   define SHLIB_EXPORTED __declspec(dllexport)
-#  else
-#   define SHLIB_EXPORTED
-#  endif
-# endif
-
-# if defined _WIN32 && !defined __CYGWIN__
-
-#  define WIN32_LEAN_AND_MEAN  /* avoid including junk */
-#  include <windows.h>
-
-#  include "windows-initguard.h"
-
-/* The return type is a 'CRITICAL_SECTION *', not a 'glwthread_mutex_t *',
-   because the latter is not guaranteed to be a stable ABI in the future.  */
-
-/* Make sure the function gets exported from DLLs.  */
-SHLIB_EXPORTED CRITICAL_SECTION *gl_get_setlocale_null_lock (void);
-
-static glwthread_initguard_t guard = GLWTHREAD_INITGUARD_INIT;
-static CRITICAL_SECTION lock;
-
-/* Returns the internal lock used by setlocale_null_r.  */
-CRITICAL_SECTION *
-gl_get_setlocale_null_lock (void)
-{
-  if (!guard.done)
-    {
-      if (InterlockedIncrement (&guard.started) == 0)
-        {
-          /* This thread is the first one to need the lock.  Initialize it.  */
-          InitializeCriticalSection (&lock);
-          guard.done = 1;
-        }
-      else
-        {
-          /* Don't let guard.started grow and wrap around.  */
-          InterlockedDecrement (&guard.started);
-          /* Yield the CPU while waiting for another thread to finish
-             initializing this mutex.  */
-          while (!guard.done)
-            Sleep (0);
-        }
-    }
-  return &lock;
-}
-
-# elif HAVE_PTHREAD_API
-
-#  include <pthread.h>
-
-static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-
-/* Make sure the function gets exported from shared libraries.  */
-SHLIB_EXPORTED pthread_mutex_t *gl_get_setlocale_null_lock (void);
-
-/* Returns the internal lock used by setlocale_null_r.  */
-pthread_mutex_t *
-gl_get_setlocale_null_lock (void)
-{
-  return &mutex;
-}
-
-# elif HAVE_THREADS_H
-
-#  include <threads.h>
-#  include <stdlib.h>
-
-static int volatile init_needed = 1;
-static once_flag init_once = ONCE_FLAG_INIT;
-static mtx_t mutex;
-
-static void
-atomic_init (void)
-{
-  if (mtx_init (&mutex, mtx_plain) != thrd_success)
-    abort ();
-  init_needed = 0;
-}
-
-/* Make sure the function gets exported from shared libraries.  */
-SHLIB_EXPORTED mtx_t *gl_get_setlocale_null_lock (void);
-
-/* Returns the internal lock used by setlocale_null_r.  */
-mtx_t *
-gl_get_setlocale_null_lock (void)
-{
-  if (init_needed)
-    call_once (&init_once, atomic_init);
-  return &mutex;
-}
-
-# endif
-
-# if (defined _WIN32 || defined __CYGWIN__) && !defined _MSC_VER
-/* Make sure the '__declspec(dllimport)' in setlocale_null.c does not cause
-   a link failure when no DLLs are involved.  */
-#  if defined _WIN64 || defined _LP64
-#   define IMP(x) __imp_##x
-#  else
-#   define IMP(x) _imp__##x
-#  endif
-void * IMP(gl_get_setlocale_null_lock) = &gl_get_setlocale_null_lock;
-# endif
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/setlocale_null-unlocked.c 
b/tp/Texinfo/XS/gnulib/lib/setlocale_null-unlocked.c
deleted file mode 100644
index 0a86f0df78..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/setlocale_null-unlocked.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Query the name of the current global locale, without locking.
-   Copyright (C) 2019-2024 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 Bruno Haible <bruno@clisp.org>, 2019.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include "setlocale_null.h"
-
-#include <errno.h>
-#include <locale.h>
-#include <string.h>
-#if defined _WIN32 && !defined __CYGWIN__
-# include <wchar.h>
-#endif
-
-/* Use the system's setlocale() function, not the gnulib override, here.  */
-#undef setlocale
-
-const char *
-setlocale_null_unlocked (int category)
-{
-  const char *result = setlocale (category, NULL);
-
-#ifdef __ANDROID__
-  if (result == NULL)
-    switch (category)
-      {
-      case LC_CTYPE:
-      case LC_NUMERIC:
-      case LC_TIME:
-      case LC_COLLATE:
-      case LC_MONETARY:
-      case LC_MESSAGES:
-      case LC_ALL:
-      case LC_PAPER:
-      case LC_NAME:
-      case LC_ADDRESS:
-      case LC_TELEPHONE:
-      case LC_MEASUREMENT:
-        result = "C";
-        break;
-      default:
-        break;
-      }
-#endif
-
-  return result;
-}
-
-int
-setlocale_null_r_unlocked (int category, char *buf, size_t bufsize)
-{
-#if defined _WIN32 && !defined __CYGWIN__ && defined _MSC_VER
-  /* On native Windows, nowadays, the setlocale() implementation is based
-     on _wsetlocale() and uses malloc() for the result.  We are better off
-     using _wsetlocale() directly.  */
-  const wchar_t *result = _wsetlocale (category, NULL);
-
-  if (result == NULL)
-    {
-      /* CATEGORY is invalid.  */
-      if (bufsize > 0)
-        /* Return an empty string in BUF.
-           This is a convenience for callers that don't want to write explicit
-           code for handling EINVAL.  */
-        buf[0] = '\0';
-      return EINVAL;
-    }
-  else
-    {
-      size_t length = wcslen (result);
-      if (length < bufsize)
-        {
-          size_t i;
-
-          /* Convert wchar_t[] -> char[], assuming plain ASCII.  */
-          for (i = 0; i <= length; i++)
-            buf[i] = result[i];
-
-          return 0;
-        }
-      else
-        {
-          if (bufsize > 0)
-            {
-              /* Return a truncated result in BUF.
-                 This is a convenience for callers that don't want to write
-                 explicit code for handling ERANGE.  */
-              size_t i;
-
-              /* Convert wchar_t[] -> char[], assuming plain ASCII.  */
-              for (i = 0; i < bufsize; i++)
-                buf[i] = result[i];
-              buf[bufsize - 1] = '\0';
-            }
-          return ERANGE;
-        }
-    }
-#else
-  const char *result = setlocale_null_unlocked (category);
-
-  if (result == NULL)
-    {
-      /* CATEGORY is invalid.  */
-      if (bufsize > 0)
-        /* Return an empty string in BUF.
-           This is a convenience for callers that don't want to write explicit
-           code for handling EINVAL.  */
-        buf[0] = '\0';
-      return EINVAL;
-    }
-  else
-    {
-      size_t length = strlen (result);
-      if (length < bufsize)
-        {
-          memcpy (buf, result, length + 1);
-          return 0;
-        }
-      else
-        {
-          if (bufsize > 0)
-            {
-              /* Return a truncated result in BUF.
-                 This is a convenience for callers that don't want to write
-                 explicit code for handling ERANGE.  */
-              memcpy (buf, result, bufsize - 1);
-              buf[bufsize - 1] = '\0';
-            }
-          return ERANGE;
-        }
-    }
-#endif
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/setlocale_null.c 
b/tp/Texinfo/XS/gnulib/lib/setlocale_null.c
deleted file mode 100644
index 5ecf413de0..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/setlocale_null.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/* Query the name of the current global locale.
-   Copyright (C) 2019-2024 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 Bruno Haible <bruno@clisp.org>, 2019.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include "setlocale_null.h"
-
-#include <errno.h>
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-
-#if !(SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE)
-
-# if AVOID_ANY_THREADS
-
-/* The option '--disable-threads' explicitly requests no locking.  */
-
-# elif defined _WIN32 && !defined __CYGWIN__
-
-#  define WIN32_LEAN_AND_MEAN  /* avoid including junk */
-#  include <windows.h>
-
-# elif HAVE_PTHREAD_API
-
-#  include <pthread.h>
-#  if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS
-#   include <threads.h>
-#   pragma weak thrd_exit
-#   define c11_threads_in_use() (thrd_exit != NULL)
-#  else
-#   define c11_threads_in_use() 0
-#  endif
-
-# elif HAVE_THREADS_H
-
-#  include <threads.h>
-
-# endif
-
-#endif
-
-#if !(SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE) /* musl libc, 
macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin < 3.4.6 */
-
-/* Use a lock, so that no two threads can invoke setlocale_null_r_unlocked
-   at the same time.  */
-
-/* Prohibit renaming this symbol.  */
-# undef gl_get_setlocale_null_lock
-
-# if AVOID_ANY_THREADS
-
-/* The option '--disable-threads' explicitly requests no locking.  */
-#  define setlocale_null_r_with_lock setlocale_null_r_unlocked
-
-# elif defined _WIN32 && !defined __CYGWIN__
-
-extern __declspec(dllimport) CRITICAL_SECTION *gl_get_setlocale_null_lock 
(void);
-
-static int
-setlocale_null_r_with_lock (int category, char *buf, size_t bufsize)
-{
-  CRITICAL_SECTION *lock = gl_get_setlocale_null_lock ();
-  int ret;
-
-  EnterCriticalSection (lock);
-  ret = setlocale_null_r_unlocked (category, buf, bufsize);
-  LeaveCriticalSection (lock);
-
-  return ret;
-}
-
-# elif HAVE_PTHREAD_API /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, 
Haiku, Cygwin < 3.4.6 */
-
-extern
-#  if defined _WIN32 || defined __CYGWIN__
-  __declspec(dllimport)
-#  endif
-  pthread_mutex_t *gl_get_setlocale_null_lock (void);
-
-#  if HAVE_WEAK_SYMBOLS /* musl libc, FreeBSD, NetBSD, OpenBSD, Haiku */
-
-    /* Avoid the need to link with '-lpthread'.  */
-#   pragma weak pthread_mutex_lock
-#   pragma weak pthread_mutex_unlock
-
-    /* Determine whether libpthread is in use.  */
-#   pragma weak pthread_mutexattr_gettype
-    /* See the comments in lock.h.  */
-#   define pthread_in_use() \
-      (pthread_mutexattr_gettype != NULL || c11_threads_in_use ())
-
-#  else
-#   define pthread_in_use() 1
-#  endif
-
-static int
-setlocale_null_r_with_lock (int category, char *buf, size_t bufsize)
-{
-  if (pthread_in_use())
-    {
-      pthread_mutex_t *lock = gl_get_setlocale_null_lock ();
-      int ret;
-
-      if (pthread_mutex_lock (lock))
-        abort ();
-      ret = setlocale_null_r_unlocked (category, buf, bufsize);
-      if (pthread_mutex_unlock (lock))
-        abort ();
-
-      return ret;
-    }
-  else
-    return setlocale_null_r_unlocked (category, buf, bufsize);
-}
-
-# elif HAVE_THREADS_H
-
-extern mtx_t *gl_get_setlocale_null_lock (void);
-
-static int
-setlocale_null_r_with_lock (int category, char *buf, size_t bufsize)
-{
-  mtx_t *lock = gl_get_setlocale_null_lock ();
-  int ret;
-
-  if (mtx_lock (lock) != thrd_success)
-    abort ();
-  ret = setlocale_null_r_unlocked (category, buf, bufsize);
-  if (mtx_unlock (lock) != thrd_success)
-    abort ();
-
-  return ret;
-}
-
-# endif
-
-#endif
-
-int
-setlocale_null_r (int category, char *buf, size_t bufsize)
-{
-#if SETLOCALE_NULL_ALL_MTSAFE
-# if SETLOCALE_NULL_ONE_MTSAFE
-
-  return setlocale_null_r_unlocked (category, buf, bufsize);
-
-# else
-
-  if (category == LC_ALL)
-    return setlocale_null_r_unlocked (category, buf, bufsize);
-  else
-    return setlocale_null_r_with_lock (category, buf, bufsize);
-
-# endif
-#else
-# if SETLOCALE_NULL_ONE_MTSAFE
-
-  if (category == LC_ALL)
-    return setlocale_null_r_with_lock (category, buf, bufsize);
-  else
-    return setlocale_null_r_unlocked (category, buf, bufsize);
-
-# else
-
-  return setlocale_null_r_with_lock (category, buf, bufsize);
-
-# endif
-#endif
-}
-
-const char *
-setlocale_null (int category)
-{
-#if SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE
-  return setlocale_null_unlocked (category);
-#else
-
-  /* This call must be multithread-safe.  To achieve this without using
-     thread-local storage:
-       1. We use a specific static buffer for each possible CATEGORY
-          argument.  So that different threads can call setlocale_mtsafe
-          with different CATEGORY arguments, without interfering.
-       2. We use a simple strcpy or memcpy to fill this static buffer.
-          Filling it through, for example, strcpy + strcat would not be
-          guaranteed to leave the buffer's contents intact if another thread
-          is currently accessing it.  If necessary, the contents is first
-          assembled in a stack-allocated buffer.  */
-  if (category == LC_ALL)
-    {
-# if SETLOCALE_NULL_ALL_MTSAFE
-      return setlocale_null_unlocked (LC_ALL);
-# else
-      char buf[SETLOCALE_NULL_ALL_MAX];
-      static char resultbuf[SETLOCALE_NULL_ALL_MAX];
-
-      if (setlocale_null_r (LC_ALL, buf, sizeof (buf)))
-        return "C";
-      strcpy (resultbuf, buf);
-      return resultbuf;
-# endif
-    }
-  else
-    {
-# if SETLOCALE_NULL_ONE_MTSAFE
-      return setlocale_null_unlocked (category);
-# else
-      enum
-        {
-          LC_CTYPE_INDEX,
-          LC_NUMERIC_INDEX,
-          LC_TIME_INDEX,
-          LC_COLLATE_INDEX,
-          LC_MONETARY_INDEX,
-          LC_MESSAGES_INDEX,
-#  ifdef LC_PAPER
-          LC_PAPER_INDEX,
-#  endif
-#  ifdef LC_NAME
-          LC_NAME_INDEX,
-#  endif
-#  ifdef LC_ADDRESS
-          LC_ADDRESS_INDEX,
-#  endif
-#  ifdef LC_TELEPHONE
-          LC_TELEPHONE_INDEX,
-#  endif
-#  ifdef LC_MEASUREMENT
-          LC_MEASUREMENT_INDEX,
-#  endif
-#  ifdef LC_IDENTIFICATION
-          LC_IDENTIFICATION_INDEX,
-#  endif
-          LC_INDICES_COUNT
-        }
-        i;
-      char buf[SETLOCALE_NULL_MAX];
-      static char resultbuf[LC_INDICES_COUNT][SETLOCALE_NULL_MAX];
-      int err;
-
-      err = setlocale_null_r (category, buf, sizeof (buf));
-      if (err == EINVAL)
-        return NULL;
-      if (err)
-        return "C";
-
-      switch (category)
-        {
-        case LC_CTYPE:          i = LC_CTYPE_INDEX;          break;
-        case LC_NUMERIC:        i = LC_NUMERIC_INDEX;        break;
-        case LC_TIME:           i = LC_TIME_INDEX;           break;
-        case LC_COLLATE:        i = LC_COLLATE_INDEX;        break;
-        case LC_MONETARY:       i = LC_MONETARY_INDEX;       break;
-        case LC_MESSAGES:       i = LC_MESSAGES_INDEX;       break;
-#  ifdef LC_PAPER
-        case LC_PAPER:          i = LC_PAPER_INDEX;          break;
-#  endif
-#  ifdef LC_NAME
-        case LC_NAME:           i = LC_NAME_INDEX;           break;
-#  endif
-#  ifdef LC_ADDRESS
-        case LC_ADDRESS:        i = LC_ADDRESS_INDEX;        break;
-#  endif
-#  ifdef LC_TELEPHONE
-        case LC_TELEPHONE:      i = LC_TELEPHONE_INDEX;      break;
-#  endif
-#  ifdef LC_MEASUREMENT
-        case LC_MEASUREMENT:    i = LC_MEASUREMENT_INDEX;    break;
-#  endif
-#  ifdef LC_IDENTIFICATION
-        case LC_IDENTIFICATION: i = LC_IDENTIFICATION_INDEX; break;
-#  endif
-        default:
-          /* If you get here, a #ifdef LC_xxx is missing.  */
-          abort ();
-        }
-
-      strcpy (resultbuf[i], buf);
-      return resultbuf[i];
-# endif
-    }
-#endif
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/setlocale_null.h 
b/tp/Texinfo/XS/gnulib/lib/setlocale_null.h
deleted file mode 100644
index 966c53cfaa..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/setlocale_null.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Query the name of the current global locale.
-   Copyright (C) 2019-2024 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 Bruno Haible <bruno@clisp.org>, 2019.  */
-
-#ifndef _SETLOCALE_NULL_H
-#define _SETLOCALE_NULL_H
-
-#include <stddef.h>
-
-#include "arg-nonnull.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Recommended size of a buffer for a locale name for a single category.
-   On glibc systems, you can have locale names that are relative file names;
-   assume a maximum length 256.
-   In native Windows, in 2018 the longest locale name was of length 58
-   ("FYRO Macedonian_Former Yugoslav Republic of Macedonia.1251").  */
-#define SETLOCALE_NULL_MAX (256+1)
-
-/* Recommended size of a buffer for a locale name with all categories.
-   On glibc systems, you can have locale names that are relative file names;
-   assume maximum length 256 for each.  There are 12 categories; so, the
-   maximum total length is 148+12*256.
-   In native Windows, there are 5 categories, and the maximum total length is
-   55+5*58.  */
-#define SETLOCALE_NULL_ALL_MAX (148+12*256+1)
-
-/* setlocale_null_r_unlocked (CATEGORY, BUF, BUFSIZE) is like
-   setlocale (CATEGORY, NULL), except that
-     - it returns the resulting locale category name or locale name in the
-       user-supplied buffer BUF, which must be BUFSIZE bytes long.
-   The recommended minimum buffer size is
-     - SETLOCALE_NULL_MAX for CATEGORY != LC_ALL, and
-     - SETLOCALE_NULL_ALL_MAX for CATEGORY == LC_ALL.
-   The return value is an error code: 0 if the call is successful, EINVAL if
-   CATEGORY is invalid, or ERANGE if BUFSIZE is smaller than the length needed
-   size (including the trailing NUL byte).  In the latter case, a truncated
-   result is returned in BUF, but still NUL-terminated if BUFSIZE > 0.
-   This call is guaranteed to be multithread-safe only if
-     - CATEGORY != LC_ALL and SETLOCALE_NULL_ONE_MTSAFE is true, or
-     - CATEGORY == LC_ALL and SETLOCALE_NULL_ALL_MTSAFE is true,
-   and the other threads must not make other setlocale invocations (since
-   changing the global locale has side effects on all threads).  */
-extern int setlocale_null_r_unlocked (int category, char *buf, size_t bufsize)
-  _GL_ARG_NONNULL ((2));
-
-/* setlocale_null_unlocked (CATEGORY) is like setlocale (CATEGORY, NULL).
-   The return value is NULL if CATEGORY is invalid.
-   This call is guaranteed to be multithread-safe only if
-     - CATEGORY != LC_ALL and SETLOCALE_NULL_ONE_MTSAFE is true, or
-     - CATEGORY == LC_ALL and SETLOCALE_NULL_ALL_MTSAFE is true,
-   and the other threads must not make other setlocale invocations (since
-   changing the global locale has side effects on all threads).  */
-extern const char *setlocale_null_unlocked (int category);
-
-/* setlocale_null_r (CATEGORY, BUF, BUFSIZE) is like setlocale (CATEGORY, 
NULL),
-   except that
-     - it is guaranteed to be multithread-safe,
-     - it returns the resulting locale category name or locale name in the
-       user-supplied buffer BUF, which must be BUFSIZE bytes long.
-   The recommended minimum buffer size is
-     - SETLOCALE_NULL_MAX for CATEGORY != LC_ALL, and
-     - SETLOCALE_NULL_ALL_MAX for CATEGORY == LC_ALL.
-   The return value is an error code: 0 if the call is successful, EINVAL if
-   CATEGORY is invalid, or ERANGE if BUFSIZE is smaller than the length needed
-   size (including the trailing NUL byte).  In the latter case, a truncated
-   result is returned in BUF, but still NUL-terminated if BUFSIZE > 0.
-   For this call to be multithread-safe, *all* calls to
-   setlocale (CATEGORY, NULL) in all other threads must have been converted
-   to use setlocale_null_r or setlocale_null as well, and the other threads
-   must not make other setlocale invocations (since changing the global locale
-   has side effects on all threads).  */
-extern int setlocale_null_r (int category, char *buf, size_t bufsize)
-  _GL_ARG_NONNULL ((2));
-
-/* setlocale_null (CATEGORY) is like setlocale (CATEGORY, NULL), except that
-   it is guaranteed to be multithread-safe.
-   The return value is NULL if CATEGORY is invalid.
-   For this call to be multithread-safe, *all* calls to
-   setlocale (CATEGORY, NULL) in all other threads must have been converted
-   to use setlocale_null_r or setlocale_null as well, and the other threads
-   must not make other setlocale invocations (since changing the global locale
-   has side effects on all threads).  */
-extern const char *setlocale_null (int category);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SETLOCALE_NULL_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/signal.in.h 
b/tp/Texinfo/XS/gnulib/lib/signal.in.h
deleted file mode 100644
index 6239b90adf..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/signal.in.h
+++ /dev/null
@@ -1,541 +0,0 @@
-/* A GNU-like <signal.h>.
-
-   Copyright (C) 2006-2024 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/>.  */
-
-#if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-#endif
-@PRAGMA_COLUMNS@
-
-#if defined __need_sig_atomic_t || defined __need_sigset_t || defined 
_GL_ALREADY_INCLUDING_SIGNAL_H || (defined _SIGNAL_H && !defined 
__SIZEOF_PTHREAD_MUTEX_T)
-/* Special invocation convention:
-   - Inside glibc header files.
-   - On glibc systems we have a sequence of nested includes
-     <signal.h> -> <ucontext.h> -> <signal.h>.
-     In this situation, the functions are not yet declared, therefore we cannot
-     provide the C++ aliases.
-   - On glibc systems with GCC 4.3 we have a sequence of nested includes
-     <csignal> -> </usr/include/signal.h> -> <sys/ucontext.h> -> <signal.h>.
-     In this situation, some of the functions are not yet declared, therefore
-     we cannot provide the C++ aliases.  */
-
-# @INCLUDE_NEXT@ @NEXT_SIGNAL_H@
-
-#else
-/* Normal invocation convention.  */
-
-#ifndef _@GUARD_PREFIX@_SIGNAL_H
-
-#define _GL_ALREADY_INCLUDING_SIGNAL_H
-
-/* Define pid_t, uid_t.
-   Also, mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.
-   On Solaris 10, <signal.h> includes <sys/types.h>, which eventually includes
-   us; so include <sys/types.h> now, before the second inclusion guard.  */
-#include <sys/types.h>
-
-/* The include_next requires a split double-inclusion guard.  */
-#@INCLUDE_NEXT@ @NEXT_SIGNAL_H@
-
-#undef _GL_ALREADY_INCLUDING_SIGNAL_H
-
-#ifndef _@GUARD_PREFIX@_SIGNAL_H
-#define _@GUARD_PREFIX@_SIGNAL_H
-
-/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-/* For testing the OpenBSD version.  */
-#if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
-    && defined __OpenBSD__
-# include <sys/param.h>
-#endif
-
-/* Mac OS X 10.3, FreeBSD < 8.0, OpenBSD < 5.1, OSF/1 4.0, Solaris 2.6, 
Android,
-   OS/2 kLIBC declare pthread_sigmask in <pthread.h>, not in <signal.h>.
-   But avoid namespace pollution on glibc systems.*/
-#if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
-    && ((defined __APPLE__ && defined __MACH__) \
-        || (defined __FreeBSD__ && __FreeBSD__ < 8) \
-        || (defined __OpenBSD__ && OpenBSD < 201205) \
-        || defined __osf__ || defined __sun || defined __ANDROID__ \
-        || defined __KLIBC__) \
-    && ! defined __GLIBC__
-# include <pthread.h>
-#endif
-
-/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
-
-/* The definition of _GL_ARG_NONNULL is copied here.  */
-
-/* The definition of _GL_WARN_ON_USE is copied here.  */
-
-/* On AIX, sig_atomic_t already includes volatile.  C99 requires that
-   'volatile sig_atomic_t' ignore the extra modifier, but C89 did not.
-   Hence, redefine this to a non-volatile type as needed.  */
-#if ! @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
-# if !GNULIB_defined_sig_atomic_t
-typedef int rpl_sig_atomic_t;
-#  undef sig_atomic_t
-#  define sig_atomic_t rpl_sig_atomic_t
-#  define GNULIB_defined_sig_atomic_t 1
-# endif
-#endif
-
-/* A set or mask of signals.  */
-#if !@HAVE_SIGSET_T@
-# if !GNULIB_defined_sigset_t
-typedef unsigned int sigset_t;
-#  define GNULIB_defined_sigset_t 1
-# endif
-#endif
-
-/* Define sighandler_t, the type of signal handlers.  A GNU extension.  */
-#if !@HAVE_SIGHANDLER_T@
-# ifdef __cplusplus
-extern "C" {
-# endif
-# if !GNULIB_defined_sighandler_t
-typedef void (*sighandler_t) (int);
-#  define GNULIB_defined_sighandler_t 1
-# endif
-# ifdef __cplusplus
-}
-# endif
-#endif
-
-
-#if @GNULIB_SIGNAL_H_SIGPIPE@
-# ifndef SIGPIPE
-/* Define SIGPIPE to a value that does not overlap with other signals.  */
-#  define SIGPIPE 13
-#  define GNULIB_defined_SIGPIPE 1
-/* To actually use SIGPIPE, you also need the gnulib modules 'sigprocmask',
-   'write', 'stdio'.  */
-# endif
-#endif
-
-
-/* Maximum signal number + 1.  */
-#ifndef NSIG
-# if defined __TANDEM
-#  define NSIG 32
-# endif
-#endif
-
-
-/* Maximum size of a signal name returned by sig2str(), including the
-   terminating NUL byte.  */
-#ifndef SIG2STR_MAX
-/* The longest one: "RTMAX", then "+" or "-", then up to 10 digits, then NUL.
-   Add + 2 as a reserve for the future.  */
-# define SIG2STR_MAX (5 + 1 + 10 + 1 + 2)
-#endif
-
-#if @GNULIB_SIG2STR@
-# if !@HAVE_SIG2STR@
-_GL_FUNCDECL_SYS (sig2str, int, (int signo, char *str), );
-# endif
-_GL_CXXALIAS_SYS (sig2str, int, (int signo, char *str));
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (sig2str);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef sig2str
-# if HAVE_RAW_DECL_SIG2STR
-_GL_WARN_ON_USE (sig2str, "sig2str is not portable - "
-                 "use gnulib module sig2str for portability");
-# endif
-#endif
-
-#if @GNULIB_SIG2STR@
-# if !@HAVE_STR2SIG@
-_GL_FUNCDECL_SYS (str2sig, int, (char const *str, int *signo_p), );
-# endif
-_GL_CXXALIAS_SYS (str2sig, int, (char const *str, int *signo_p));
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (str2sig);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef str2sig
-# if HAVE_RAW_DECL_STR2SIG
-_GL_WARN_ON_USE (str2sig, "str2sig is not portable - "
-                 "use gnulib module sig2str for portability");
-# endif
-#endif
-
-
-#if @GNULIB_PTHREAD_SIGMASK@
-# if @REPLACE_PTHREAD_SIGMASK@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef pthread_sigmask
-#   define pthread_sigmask rpl_pthread_sigmask
-#  endif
-_GL_FUNCDECL_RPL (pthread_sigmask, int,
-                  (int how,
-                   const sigset_t *restrict new_mask,
-                   sigset_t *restrict old_mask), );
-_GL_CXXALIAS_RPL (pthread_sigmask, int,
-                  (int how,
-                   const sigset_t *restrict new_mask,
-                   sigset_t *restrict old_mask));
-# else
-#  if !(@HAVE_PTHREAD_SIGMASK@ || defined pthread_sigmask)
-_GL_FUNCDECL_SYS (pthread_sigmask, int,
-                  (int how,
-                   const sigset_t *restrict new_mask,
-                   sigset_t *restrict old_mask), );
-#  endif
-_GL_CXXALIAS_SYS (pthread_sigmask, int,
-                  (int how,
-                   const sigset_t *restrict new_mask,
-                   sigset_t *restrict old_mask));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (pthread_sigmask);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef pthread_sigmask
-# if HAVE_RAW_DECL_PTHREAD_SIGMASK
-_GL_WARN_ON_USE (pthread_sigmask, "pthread_sigmask is not portable - "
-                 "use gnulib module pthread_sigmask for portability");
-# endif
-#endif
-
-
-#if @GNULIB_RAISE@
-# if @REPLACE_RAISE@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef raise
-#   define raise rpl_raise
-#  endif
-_GL_FUNCDECL_RPL (raise, int, (int sig), );
-_GL_CXXALIAS_RPL (raise, int, (int sig));
-# else
-#  if !@HAVE_RAISE@
-_GL_FUNCDECL_SYS (raise, int, (int sig), );
-#  endif
-_GL_CXXALIAS_SYS (raise, int, (int sig));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (raise);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef raise
-/* Assume raise is always declared.  */
-_GL_WARN_ON_USE (raise, "raise can crash on native Windows - "
-                 "use gnulib module raise for portability");
-#endif
-
-
-#if @GNULIB_SIGPROCMASK@
-# if !@HAVE_POSIX_SIGNALBLOCKING@
-
-#  ifndef GNULIB_defined_signal_blocking
-#   define GNULIB_defined_signal_blocking 1
-#  endif
-
-/* Maximum signal number + 1.  */
-#  ifndef NSIG
-#   define NSIG 32
-#  endif
-
-/* This code supports only 32 signals.  */
-#  if !GNULIB_defined_verify_NSIG_constraint
-typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1];
-#   define GNULIB_defined_verify_NSIG_constraint 1
-#  endif
-
-# endif
-
-/* When also using extern inline, suppress the use of static inline in
-   standard headers of problematic Apple configurations, as Libc at
-   least through Libc-825.26 (2013-04-09) mishandles it; see, e.g.,
-   <https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html>.
-   Perhaps Apple will fix this some day.  */
-#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \
-     && (defined __i386__ || defined __x86_64__))
-# undef sigaddset
-# undef sigdelset
-# undef sigemptyset
-# undef sigfillset
-# undef sigismember
-#endif
-
-/* Test whether a given signal is contained in a signal set.  */
-# if @HAVE_POSIX_SIGNALBLOCKING@
-/* This function is defined as a macro on Mac OS X.  */
-#  if defined __cplusplus && defined GNULIB_NAMESPACE
-#   undef sigismember
-#  endif
-# else
-_GL_FUNCDECL_SYS (sigismember, int, (const sigset_t *set, int sig),
-                                    _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (sigismember, int, (const sigset_t *set, int sig));
-_GL_CXXALIASWARN (sigismember);
-
-/* Initialize a signal set to the empty set.  */
-# if @HAVE_POSIX_SIGNALBLOCKING@
-/* This function is defined as a macro on Mac OS X.  */
-#  if defined __cplusplus && defined GNULIB_NAMESPACE
-#   undef sigemptyset
-#  endif
-# else
-_GL_FUNCDECL_SYS (sigemptyset, int, (sigset_t *set), _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (sigemptyset, int, (sigset_t *set));
-_GL_CXXALIASWARN (sigemptyset);
-
-/* Add a signal to a signal set.  */
-# if @HAVE_POSIX_SIGNALBLOCKING@
-/* This function is defined as a macro on Mac OS X.  */
-#  if defined __cplusplus && defined GNULIB_NAMESPACE
-#   undef sigaddset
-#  endif
-# else
-_GL_FUNCDECL_SYS (sigaddset, int, (sigset_t *set, int sig),
-                                  _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (sigaddset, int, (sigset_t *set, int sig));
-_GL_CXXALIASWARN (sigaddset);
-
-/* Remove a signal from a signal set.  */
-# if @HAVE_POSIX_SIGNALBLOCKING@
-/* This function is defined as a macro on Mac OS X.  */
-#  if defined __cplusplus && defined GNULIB_NAMESPACE
-#   undef sigdelset
-#  endif
-# else
-_GL_FUNCDECL_SYS (sigdelset, int, (sigset_t *set, int sig),
-                                  _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (sigdelset, int, (sigset_t *set, int sig));
-_GL_CXXALIASWARN (sigdelset);
-
-/* Fill a signal set with all possible signals.  */
-# if @HAVE_POSIX_SIGNALBLOCKING@
-/* This function is defined as a macro on Mac OS X.  */
-#  if defined __cplusplus && defined GNULIB_NAMESPACE
-#   undef sigfillset
-#  endif
-# else
-_GL_FUNCDECL_SYS (sigfillset, int, (sigset_t *set), _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (sigfillset, int, (sigset_t *set));
-_GL_CXXALIASWARN (sigfillset);
-
-/* Return the set of those blocked signals that are pending.  */
-# if !@HAVE_POSIX_SIGNALBLOCKING@
-_GL_FUNCDECL_SYS (sigpending, int, (sigset_t *set), _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (sigpending, int, (sigset_t *set));
-_GL_CXXALIASWARN (sigpending);
-
-/* If OLD_SET is not NULL, put the current set of blocked signals in *OLD_SET.
-   Then, if SET is not NULL, affect the current set of blocked signals by
-   combining it with *SET as indicated in OPERATION.
-   In this implementation, you are not allowed to change a signal handler
-   while the signal is blocked.  */
-# if !@HAVE_POSIX_SIGNALBLOCKING@
-#  define SIG_BLOCK   0  /* blocked_set = blocked_set | *set; */
-#  define SIG_SETMASK 1  /* blocked_set = *set; */
-#  define SIG_UNBLOCK 2  /* blocked_set = blocked_set & ~*set; */
-_GL_FUNCDECL_SYS (sigprocmask, int,
-                  (int operation,
-                   const sigset_t *restrict set,
-                   sigset_t *restrict old_set), );
-# endif
-_GL_CXXALIAS_SYS (sigprocmask, int,
-                  (int operation,
-                   const sigset_t *restrict set,
-                   sigset_t *restrict old_set));
-_GL_CXXALIASWARN (sigprocmask);
-
-/* Install the handler FUNC for signal SIG, and return the previous
-   handler.  */
-# ifdef __cplusplus
-extern "C" {
-# endif
-# if !GNULIB_defined_function_taking_int_returning_void_t
-typedef void (*_gl_function_taking_int_returning_void_t) (int);
-#  define GNULIB_defined_function_taking_int_returning_void_t 1
-# endif
-# ifdef __cplusplus
-}
-# endif
-# if !@HAVE_POSIX_SIGNALBLOCKING@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define signal rpl_signal
-#  endif
-_GL_FUNCDECL_RPL (signal, _gl_function_taking_int_returning_void_t,
-                  (int sig, _gl_function_taking_int_returning_void_t func), );
-_GL_CXXALIAS_RPL (signal, _gl_function_taking_int_returning_void_t,
-                  (int sig, _gl_function_taking_int_returning_void_t func));
-# else
-/* On OpenBSD, the declaration of 'signal' may not be present at this point,
-   because it occurs in <sys/signal.h>, not <signal.h> directly.  */
-#  if defined __OpenBSD__
-_GL_FUNCDECL_SYS (signal, _gl_function_taking_int_returning_void_t,
-                  (int sig, _gl_function_taking_int_returning_void_t func), );
-#  endif
-_GL_CXXALIAS_SYS (signal, _gl_function_taking_int_returning_void_t,
-                  (int sig, _gl_function_taking_int_returning_void_t func));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (signal);
-# endif
-
-# if !@HAVE_POSIX_SIGNALBLOCKING@ && GNULIB_defined_SIGPIPE
-/* Raise signal SIGPIPE.  */
-_GL_EXTERN_C int _gl_raise_SIGPIPE (void);
-# endif
-
-#elif defined GNULIB_POSIXCHECK
-# undef sigaddset
-# if HAVE_RAW_DECL_SIGADDSET
-_GL_WARN_ON_USE (sigaddset, "sigaddset is unportable - "
-                 "use the gnulib module sigprocmask for portability");
-# endif
-# undef sigdelset
-# if HAVE_RAW_DECL_SIGDELSET
-_GL_WARN_ON_USE (sigdelset, "sigdelset is unportable - "
-                 "use the gnulib module sigprocmask for portability");
-# endif
-# undef sigemptyset
-# if HAVE_RAW_DECL_SIGEMPTYSET
-_GL_WARN_ON_USE (sigemptyset, "sigemptyset is unportable - "
-                 "use the gnulib module sigprocmask for portability");
-# endif
-# undef sigfillset
-# if HAVE_RAW_DECL_SIGFILLSET
-_GL_WARN_ON_USE (sigfillset, "sigfillset is unportable - "
-                 "use the gnulib module sigprocmask for portability");
-# endif
-# undef sigismember
-# if HAVE_RAW_DECL_SIGISMEMBER
-_GL_WARN_ON_USE (sigismember, "sigismember is unportable - "
-                 "use the gnulib module sigprocmask for portability");
-# endif
-# undef sigpending
-# if HAVE_RAW_DECL_SIGPENDING
-_GL_WARN_ON_USE (sigpending, "sigpending is unportable - "
-                 "use the gnulib module sigprocmask for portability");
-# endif
-# undef sigprocmask
-# if HAVE_RAW_DECL_SIGPROCMASK
-_GL_WARN_ON_USE (sigprocmask, "sigprocmask is unportable - "
-                 "use the gnulib module sigprocmask for portability");
-# endif
-#endif /* @GNULIB_SIGPROCMASK@ */
-
-
-#if @GNULIB_SIGACTION@
-# if !@HAVE_SIGACTION@
-
-#  if !@HAVE_SIGINFO_T@
-
-#   if !GNULIB_defined_siginfo_types
-
-/* Present to allow compilation, but unsupported by gnulib.  */
-union sigval
-{
-  int sival_int;
-  void *sival_ptr;
-};
-
-/* Present to allow compilation, but unsupported by gnulib.  */
-struct siginfo_t
-{
-  int si_signo;
-  int si_code;
-  int si_errno;
-  pid_t si_pid;
-  uid_t si_uid;
-  void *si_addr;
-  int si_status;
-  long si_band;
-  union sigval si_value;
-};
-typedef struct siginfo_t siginfo_t;
-
-#    define GNULIB_defined_siginfo_types 1
-#   endif
-
-#  endif /* !@HAVE_SIGINFO_T@ */
-
-/* We assume that platforms which lack the sigaction() function also lack
-   the 'struct sigaction' type, and vice versa.  */
-
-#  if !GNULIB_defined_struct_sigaction
-
-struct sigaction
-{
-  union
-  {
-    void (*_sa_handler) (int);
-    /* Present to allow compilation, but unsupported by gnulib.  POSIX
-       says that implementations may, but not must, make sa_sigaction
-       overlap with sa_handler, but we know of no implementation where
-       they do not overlap.  */
-    void (*_sa_sigaction) (int, siginfo_t *, void *);
-  } _sa_func;
-  sigset_t sa_mask;
-  /* Not all POSIX flags are supported.  */
-  int sa_flags;
-};
-#   define sa_handler _sa_func._sa_handler
-#   define sa_sigaction _sa_func._sa_sigaction
-/* Unsupported flags are not present.  */
-#   define SA_RESETHAND 1
-#   define SA_NODEFER 2
-#   define SA_RESTART 4
-
-#   define GNULIB_defined_struct_sigaction 1
-#  endif
-
-_GL_FUNCDECL_SYS (sigaction, int, (int, const struct sigaction *restrict,
-                                   struct sigaction *restrict), );
-
-# elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@
-
-#  define sa_sigaction sa_handler
-
-# endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */
-
-_GL_CXXALIAS_SYS (sigaction, int, (int, const struct sigaction *restrict,
-                                   struct sigaction *restrict));
-_GL_CXXALIASWARN (sigaction);
-
-#elif defined GNULIB_POSIXCHECK
-# undef sigaction
-# if HAVE_RAW_DECL_SIGACTION
-_GL_WARN_ON_USE (sigaction, "sigaction is unportable - "
-                 "use the gnulib module sigaction for portability");
-# endif
-#endif
-
-/* Some systems don't have SA_NODEFER.  */
-#ifndef SA_NODEFER
-# define SA_NODEFER 0
-#endif
-
-
-#endif /* _@GUARD_PREFIX@_SIGNAL_H */
-#endif /* _@GUARD_PREFIX@_SIGNAL_H */
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/strerror-override.c 
b/tp/Texinfo/XS/gnulib/lib/strerror-override.c
deleted file mode 100644
index 2d9560f909..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/strerror-override.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/* strerror-override.c --- POSIX compatible system error routine
-
-   Copyright (C) 2010-2024 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 Bruno Haible <bruno@clisp.org>, 2010.  */
-
-#include <config.h>
-
-#include "strerror-override.h"
-
-#include <errno.h>
-
-#if GNULIB_defined_EWINSOCK /* native Windows platforms */
-# if HAVE_WINSOCK2_H
-#  include <winsock2.h>
-# 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 *
-strerror_override (int errnum)
-{
-  /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
-  switch (errnum)
-    {
-# if REPLACE_STRERROR_0
-    case 0:
-      return "Success";
-# endif
-
-# if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
-    case EINPROGRESS:
-      return "Operation now in progress";
-    case EALREADY:
-      return "Operation already in progress";
-    case ENOTSOCK:
-      return "Socket operation on non-socket";
-    case EDESTADDRREQ:
-      return "Destination address required";
-    case EMSGSIZE:
-      return "Message too long";
-    case EPROTOTYPE:
-      return "Protocol wrong type for socket";
-    case ENOPROTOOPT:
-      return "Protocol not available";
-    case EPROTONOSUPPORT:
-      return "Protocol not supported";
-    case EOPNOTSUPP:
-      return "Operation not supported";
-    case EAFNOSUPPORT:
-      return "Address family not supported by protocol";
-    case EADDRINUSE:
-      return "Address already in use";
-    case EADDRNOTAVAIL:
-      return "Cannot assign requested address";
-    case ENETDOWN:
-      return "Network is down";
-    case ENETUNREACH:
-      return "Network is unreachable";
-    case ECONNRESET:
-      return "Connection reset by peer";
-    case ENOBUFS:
-      return "No buffer space available";
-    case EISCONN:
-      return "Transport endpoint is already connected";
-    case ENOTCONN:
-      return "Transport endpoint is not connected";
-    case ETIMEDOUT:
-      return "Connection timed out";
-    case ECONNREFUSED:
-      return "Connection refused";
-    case ELOOP:
-      return "Too many levels of symbolic links";
-    case EHOSTUNREACH:
-      return "No route to host";
-    case EWOULDBLOCK:
-      return "Operation would block";
-# endif
-# if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> 
*/
-    case ETXTBSY:
-      return "Text file busy";
-    case ENODATA:
-      return "No data available";
-    case ENOSR:
-      return "Out of streams resources";
-    case ENOSTR:
-      return "Device not a stream";
-    case ETIME:
-      return "Timer expired";
-    case EOTHER:
-      return "Other error";
-# endif
-# if GNULIB_defined_EWINSOCK /* native Windows platforms */
-    case ESOCKTNOSUPPORT:
-      return "Socket type not supported";
-    case EPFNOSUPPORT:
-      return "Protocol family not supported";
-    case ESHUTDOWN:
-      return "Cannot send after transport endpoint shutdown";
-    case ETOOMANYREFS:
-      return "Too many references: cannot splice";
-    case EHOSTDOWN:
-      return "Host is down";
-    case EPROCLIM:
-      return "Too many processes";
-    case EUSERS:
-      return "Too many users";
-    case EDQUOT:
-      return "Disk quota exceeded";
-    case ESTALE:
-      return "Stale NFS file handle";
-    case EREMOTE:
-      return "Object is remote";
-#  if HAVE_WINSOCK2_H
-      /* WSA_INVALID_HANDLE maps to EBADF */
-      /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
-      /* WSA_INVALID_PARAMETER maps to EINVAL */
-    case WSA_OPERATION_ABORTED:
-      return "Overlapped operation aborted";
-    case WSA_IO_INCOMPLETE:
-      return "Overlapped I/O event object not in signaled state";
-    case WSA_IO_PENDING:
-      return "Overlapped operations will complete later";
-      /* WSAEINTR maps to EINTR */
-      /* WSAEBADF maps to EBADF */
-      /* WSAEACCES maps to EACCES */
-      /* WSAEFAULT maps to EFAULT */
-      /* WSAEINVAL maps to EINVAL */
-      /* WSAEMFILE maps to EMFILE */
-      /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
-      /* WSAEINPROGRESS maps to EINPROGRESS */
-      /* WSAEALREADY maps to EALREADY */
-      /* WSAENOTSOCK maps to ENOTSOCK */
-      /* WSAEDESTADDRREQ maps to EDESTADDRREQ */
-      /* WSAEMSGSIZE maps to EMSGSIZE */
-      /* WSAEPROTOTYPE maps to EPROTOTYPE */
-      /* WSAENOPROTOOPT maps to ENOPROTOOPT */
-      /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */
-      /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
-      /* WSAEOPNOTSUPP maps to EOPNOTSUPP */
-      /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
-      /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */
-      /* WSAEADDRINUSE maps to EADDRINUSE */
-      /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */
-      /* WSAENETDOWN maps to ENETDOWN */
-      /* WSAENETUNREACH maps to ENETUNREACH */
-      /* WSAENETRESET maps to ENETRESET */
-      /* WSAECONNABORTED maps to ECONNABORTED */
-      /* WSAECONNRESET maps to ECONNRESET */
-      /* WSAENOBUFS maps to ENOBUFS */
-      /* WSAEISCONN maps to EISCONN */
-      /* WSAENOTCONN maps to ENOTCONN */
-      /* WSAESHUTDOWN is ESHUTDOWN */
-      /* WSAETOOMANYREFS is ETOOMANYREFS */
-      /* WSAETIMEDOUT maps to ETIMEDOUT */
-      /* WSAECONNREFUSED maps to ECONNREFUSED */
-      /* WSAELOOP maps to ELOOP */
-      /* WSAENAMETOOLONG maps to ENAMETOOLONG */
-      /* WSAEHOSTDOWN is EHOSTDOWN */
-      /* WSAEHOSTUNREACH maps to EHOSTUNREACH */
-      /* WSAENOTEMPTY maps to ENOTEMPTY */
-      /* WSAEPROCLIM is EPROCLIM */
-      /* WSAEUSERS is EUSERS */
-      /* WSAEDQUOT is EDQUOT */
-      /* WSAESTALE is ESTALE */
-      /* WSAEREMOTE is EREMOTE */
-    case WSASYSNOTREADY:
-      return "Network subsystem is unavailable";
-    case WSAVERNOTSUPPORTED:
-      return "Winsock.dll version out of range";
-    case WSANOTINITIALISED:
-      return "Successful WSAStartup not yet performed";
-    case WSAEDISCON:
-      return "Graceful shutdown in progress";
-    case WSAENOMORE: case WSA_E_NO_MORE:
-      return "No more results";
-    case WSAECANCELLED: case WSA_E_CANCELLED:
-      return "Call was canceled";
-    case WSAEINVALIDPROCTABLE:
-      return "Procedure call table is invalid";
-    case WSAEINVALIDPROVIDER:
-      return "Service provider is invalid";
-    case WSAEPROVIDERFAILEDINIT:
-      return "Service provider failed to initialize";
-    case WSASYSCALLFAILURE:
-      return "System call failure";
-    case WSASERVICE_NOT_FOUND:
-      return "Service not found";
-    case WSATYPE_NOT_FOUND:
-      return "Class type not found";
-    case WSAEREFUSED:
-      return "Database query was refused";
-    case WSAHOST_NOT_FOUND:
-      return "Host not found";
-    case WSATRY_AGAIN:
-      return "Nonauthoritative host not found";
-    case WSANO_RECOVERY:
-      return "Nonrecoverable error";
-    case WSANO_DATA:
-      return "Valid name, no data record of requested type";
-      /* WSA_QOS_* omitted */
-#  endif
-# endif
-
-# if GNULIB_defined_ENOMSG
-    case ENOMSG:
-      return "No message of desired type";
-# endif
-
-# if GNULIB_defined_EIDRM
-    case EIDRM:
-      return "Identifier removed";
-# endif
-
-# if GNULIB_defined_ENOLINK
-    case ENOLINK:
-      return "Link has been severed";
-# endif
-
-# if GNULIB_defined_EPROTO
-    case EPROTO:
-      return "Protocol error";
-# endif
-
-# if GNULIB_defined_EMULTIHOP
-    case EMULTIHOP:
-      return "Multihop attempted";
-# endif
-
-# if GNULIB_defined_EBADMSG
-    case EBADMSG:
-      return "Bad message";
-# endif
-
-# if GNULIB_defined_EOVERFLOW
-    case EOVERFLOW:
-      return "Value too large for defined data type";
-# endif
-
-# if GNULIB_defined_ENOTSUP
-    case ENOTSUP:
-      return "Not supported";
-# endif
-
-# if GNULIB_defined_ENETRESET
-    case ENETRESET:
-      return "Network dropped connection on reset";
-# endif
-
-# if GNULIB_defined_ECONNABORTED
-    case ECONNABORTED:
-      return "Software caused connection abort";
-# endif
-
-# if GNULIB_defined_ESTALE
-    case ESTALE:
-      return "Stale NFS file handle";
-# endif
-
-# if GNULIB_defined_EDQUOT
-    case EDQUOT:
-      return "Disk quota exceeded";
-# endif
-
-# if GNULIB_defined_ECANCELED
-    case ECANCELED:
-      return "Operation canceled";
-# endif
-
-# if GNULIB_defined_EOWNERDEAD
-    case EOWNERDEAD:
-      return "Owner died";
-# endif
-
-# if GNULIB_defined_ENOTRECOVERABLE
-    case ENOTRECOVERABLE:
-      return "State not recoverable";
-# endif
-
-# if GNULIB_defined_EILSEQ
-    case EILSEQ:
-      return "Invalid or incomplete multibyte or wide character";
-# endif
-
-# if GNULIB_defined_ESOCKTNOSUPPORT
-    case ESOCKTNOSUPPORT:
-      return "Socket type not supported";
-# endif
-
-    default:
-      return NULL;
-    }
-}
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/strerror-override.h 
b/tp/Texinfo/XS/gnulib/lib/strerror-override.h
deleted file mode 100644
index c496000389..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/strerror-override.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* strerror-override.h --- POSIX compatible system error routine
-
-   Copyright (C) 2010-2024 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 _GL_STRERROR_OVERRIDE_H
-#define _GL_STRERROR_OVERRIDE_H
-
-/* This file uses _GL_ATTRIBUTE_CONST.  */
-#if !_GL_CONFIG_H_INCLUDED
-# error "Please include config.h first."
-#endif
-
-#include <errno.h>
-#include <stddef.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Reasonable buffer size that should never trigger ERANGE; if this
-   proves too small, we intentionally abort(), to remind us to fix
-   this value.  */
-#define STACKBUF_LEN 256
-
-/* If ERRNUM maps to an errno value defined by gnulib, return a string
-   describing the error.  Otherwise return NULL.  */
-#if REPLACE_STRERROR_0 \
-    || GNULIB_defined_ESOCK \
-    || GNULIB_defined_ESTREAMS \
-    || GNULIB_defined_EWINSOCK \
-    || GNULIB_defined_ENOMSG \
-    || GNULIB_defined_EIDRM \
-    || GNULIB_defined_ENOLINK \
-    || GNULIB_defined_EPROTO \
-    || GNULIB_defined_EMULTIHOP \
-    || GNULIB_defined_EBADMSG \
-    || GNULIB_defined_EOVERFLOW \
-    || GNULIB_defined_ENOTSUP \
-    || GNULIB_defined_ENETRESET \
-    || GNULIB_defined_ECONNABORTED \
-    || GNULIB_defined_ESTALE \
-    || GNULIB_defined_EDQUOT \
-    || GNULIB_defined_ECANCELED \
-    || GNULIB_defined_EOWNERDEAD \
-    || GNULIB_defined_ENOTRECOVERABLE \
-    || GNULIB_defined_EILSEQ \
-    || GNULIB_defined_ESOCKTNOSUPPORT
-extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST;
-#else
-# define strerror_override(ignored) NULL
-# define GNULIB_defined_strerror_override_macro 1
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _GL_STRERROR_OVERRIDE_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/strerror.c 
b/tp/Texinfo/XS/gnulib/lib/strerror.c
deleted file mode 100644
index 6b760ff45c..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/strerror.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* strerror.c --- POSIX compatible system error routine
-
-   Copyright (C) 2007-2024 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>
-
-/* Specification.  */
-#include <string.h>
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "intprops.h"
-#include "strerror-override.h"
-
-/* Use the system functions, not the gnulib overrides in this file.  */
-#undef sprintf
-
-char *
-strerror (int n)
-#undef strerror
-{
-  static char buf[STACKBUF_LEN];
-  size_t len;
-
-  /* Cast away const, due to the historical signature of strerror;
-     callers should not be modifying the string.  */
-  const char *msg = strerror_override (n);
-  if (msg)
-    return (char *) msg;
-
-  msg = strerror (n);
-
-  /* Our strerror_r implementation might use the system's strerror
-     buffer, so all other clients of strerror have to see the error
-     copied into a buffer that we manage.  This is not thread-safe,
-     even if the system strerror is, but portable programs shouldn't
-     be using strerror if they care about thread-safety.  */
-  if (!msg || !*msg)
-    {
-      static char const fmt[] = "Unknown error %d";
-      static_assert (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n));
-      sprintf (buf, fmt, n);
-      errno = EINVAL;
-      return buf;
-    }
-
-  /* Fix STACKBUF_LEN if this ever aborts.  */
-  len = strlen (msg);
-  if (sizeof buf <= len)
-    abort ();
-
-  memcpy (buf, msg, len + 1);
-  return buf;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/sys-limits.h 
b/tp/Texinfo/XS/gnulib/lib/sys-limits.h
deleted file mode 100644
index d2f29d808d..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/sys-limits.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* System call limits
-
-   Copyright 2018-2024 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 _GL_SYS_LIMITS_H
-#define _GL_SYS_LIMITS_H
-
-#include <limits.h>
-
-/* Maximum number of bytes to read or write in a single system call.
-   This can be useful for system calls like sendfile on GNU/Linux,
-   which do not handle more than MAX_RW_COUNT bytes correctly.
-   The Linux kernel MAX_RW_COUNT is at least INT_MAX >> 20 << 20,
-   where the 20 comes from the Hexagon port with 1 MiB pages; use that
-   as an approximation, as the exact value may not be available to us.
-
-   Using this also works around a serious Linux bug before 2.6.16; see
-   <https://bugzilla.redhat.com/show_bug.cgi?id=612839>.
-
-   Using this also works around a Tru64 5.1 bug, where attempting
-   to read INT_MAX bytes fails with errno == EINVAL.  See
-   <https://lists.gnu.org/r/bug-gnu-utils/2002-04/msg00010.html>.
-
-   Using this is likely to work around similar bugs in other operating
-   systems.  */
-
-enum { SYS_BUFSIZE_MAX = INT_MAX >> 20 << 20 };
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/sys_time.in.h 
b/tp/Texinfo/XS/gnulib/lib/sys_time.in.h
deleted file mode 100644
index 88e912e60e..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/sys_time.in.h
+++ /dev/null
@@ -1,236 +0,0 @@
-/* Provide a more complete sys/time.h.
-
-   Copyright (C) 2007-2024 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.  */
-
-#ifndef _@GUARD_PREFIX@_SYS_TIME_H
-
-#if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-#endif
-@PRAGMA_COLUMNS@
-
-/* This file uses #include_next of a system file that defines time_t.
-   For the 'year2038' module to work right, <config.h> needs to have been
-   included before.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-/* On Cygwin and on many BSDish systems, <sys/time.h> includes itself
-   recursively via <sys/select.h>.
-   Simply delegate to the system's header in this case; it is a no-op.
-   Without this extra ifdef, the C++ gettimeofday declaration below
-   would be a forward declaration in gnulib's nested <sys/time.h>.  */
-#if defined _CYGWIN_SYS_TIME_H || defined _SYS_TIME_H || defined _SYS_TIME_H_
-# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
-#else
-
-/* The include_next requires a split double-inclusion guard.  */
-#if @HAVE_SYS_TIME_H@
-# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
-#endif
-
-#ifndef _@GUARD_PREFIX@_SYS_TIME_H
-#define _@GUARD_PREFIX@_SYS_TIME_H
-
-/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#if ! @HAVE_SYS_TIME_H@
-# include <time.h>
-#endif
-
-/* On native Windows with MSVC, get the 'struct timeval' type.
-   Also, on native Windows with a 64-bit time_t, where we are overriding the
-   'struct timeval' type, get all declarations of system functions whose
-   signature contains 'struct timeval'.  */
-#if (defined _MSC_VER || @REPLACE_STRUCT_TIMEVAL@) && @HAVE_WINSOCK2_H@ && 
!defined _GL_INCLUDING_WINSOCK2_H
-# define _GL_INCLUDING_WINSOCK2_H
-# include <winsock2.h>
-# undef _GL_INCLUDING_WINSOCK2_H
-#endif
-
-/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
-
-/* The definition of _GL_ARG_NONNULL is copied here.  */
-
-/* The definition of _GL_WARN_ON_USE is copied here.  */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !@HAVE_STRUCT_TIMEVAL@ || @REPLACE_STRUCT_TIMEVAL@
-
-# if @REPLACE_STRUCT_TIMEVAL@
-#  define timeval rpl_timeval
-# endif
-
-# if !GNULIB_defined_struct_timeval
-struct timeval
-{
-  time_t tv_sec;
-  long int tv_usec;
-};
-#  define GNULIB_defined_struct_timeval 1
-# endif
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#if @GNULIB_GETTIMEOFDAY@
-# if @REPLACE_GETTIMEOFDAY@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef gettimeofday
-#   define gettimeofday rpl_gettimeofday
-#  endif
-_GL_FUNCDECL_RPL (gettimeofday, int,
-                  (struct timeval *restrict, void *restrict),
-                  _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (gettimeofday, int,
-                  (struct timeval *restrict, void *restrict));
-# else
-#  if !@HAVE_GETTIMEOFDAY@
-_GL_FUNCDECL_SYS (gettimeofday, int,
-                  (struct timeval *restrict, void *restrict),
-                  _GL_ARG_NONNULL ((1)));
-#  endif
-/* Need to cast, because on glibc systems, by default, the second argument is
-                                                  struct timezone *.  */
-_GL_CXXALIAS_SYS_CAST (gettimeofday, int,
-                       (struct timeval *restrict, void *restrict));
-# endif
-_GL_CXXALIASWARN (gettimeofday);
-# if defined __cplusplus && defined GNULIB_NAMESPACE
-namespace GNULIB_NAMESPACE {
-  typedef ::timeval
-#  undef timeval
-    timeval;
-#  if @REPLACE_STRUCT_TIMEVAL@
-#   define timeval rpl_timeval
-  typedef ::timeval timeval;
-#  endif
-}
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef gettimeofday
-# if HAVE_RAW_DECL_GETTIMEOFDAY
-_GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - "
-                 "use gnulib module gettimeofday for portability");
-# endif
-#endif
-
-/* Hide some function declarations from <winsock2.h>.  */
-
-#if defined _MSC_VER && @HAVE_WINSOCK2_H@
-# if !defined _@GUARD_PREFIX@_UNISTD_H
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef close
-#   define close close_used_without_including_unistd_h
-#  elif !defined __clang__
-     _GL_WARN_ON_USE (close,
-                      "close() used without including <unistd.h>");
-#  endif
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef gethostname
-#   define gethostname gethostname_used_without_including_unistd_h
-#  else
-     _GL_WARN_ON_USE (gethostname,
-                      "gethostname() used without including <unistd.h>");
-#  endif
-# endif
-# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef socket
-#   define socket              socket_used_without_including_sys_socket_h
-#   undef connect
-#   define connect             connect_used_without_including_sys_socket_h
-#   undef accept
-#   define accept              accept_used_without_including_sys_socket_h
-#   undef bind
-#   define bind                bind_used_without_including_sys_socket_h
-#   undef getpeername
-#   define getpeername         getpeername_used_without_including_sys_socket_h
-#   undef getsockname
-#   define getsockname         getsockname_used_without_including_sys_socket_h
-#   undef getsockopt
-#   define getsockopt          getsockopt_used_without_including_sys_socket_h
-#   undef listen
-#   define listen              listen_used_without_including_sys_socket_h
-#   undef recv
-#   define recv                recv_used_without_including_sys_socket_h
-#   undef send
-#   define send                send_used_without_including_sys_socket_h
-#   undef recvfrom
-#   define recvfrom            recvfrom_used_without_including_sys_socket_h
-#   undef sendto
-#   define sendto              sendto_used_without_including_sys_socket_h
-#   undef setsockopt
-#   define setsockopt          setsockopt_used_without_including_sys_socket_h
-#   undef shutdown
-#   define shutdown            shutdown_used_without_including_sys_socket_h
-#  else
-     _GL_WARN_ON_USE (socket,
-                      "socket() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (connect,
-                      "connect() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (accept,
-                      "accept() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (bind,
-                      "bind() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (getpeername,
-                      "getpeername() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (getsockname,
-                      "getsockname() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (getsockopt,
-                      "getsockopt() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (listen,
-                      "listen() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (recv,
-                      "recv() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (send,
-                      "send() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (recvfrom,
-                      "recvfrom() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (sendto,
-                      "sendto() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (setsockopt,
-                      "setsockopt() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (shutdown,
-                      "shutdown() used without including <sys/socket.h>");
-#  endif
-# endif
-# if !defined _@GUARD_PREFIX@_SYS_SELECT_H
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef select
-#   define select select_used_without_including_sys_select_h
-#  else
-     _GL_WARN_ON_USE (select,
-                      "select() used without including <sys/select.h>");
-#  endif
-# endif
-#endif
-
-#endif /* _@GUARD_PREFIX@_SYS_TIME_H */
-#endif /* _CYGWIN_SYS_TIME_H */
-#endif /* _@GUARD_PREFIX@_SYS_TIME_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/timespec.c 
b/tp/Texinfo/XS/gnulib/lib/timespec.c
deleted file mode 100644
index 8cee9870c7..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/timespec.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Inline functions for <timespec.h>.
-
-   Copyright (C) 2012-2024 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 _GL_TIMESPEC_INLINE _GL_EXTERN_INLINE
-#include "timespec.h"
diff --git a/tp/Texinfo/XS/gnulib/lib/timespec.h 
b/tp/Texinfo/XS/gnulib/lib/timespec.h
deleted file mode 100644
index 69ce348569..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/timespec.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* timespec -- System time interface
-
-   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2024 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/>.  */
-
-#if ! defined TIMESPEC_H
-#define TIMESPEC_H
-
-/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_CONST,
-   _GL_ATTRIBUTE_PURE, _GL_CMP.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#include <time.h>
-
-_GL_INLINE_HEADER_BEGIN
-#ifndef _GL_TIMESPEC_INLINE
-# define _GL_TIMESPEC_INLINE _GL_INLINE
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "arg-nonnull.h"
-
-/* Inverse resolution of timespec timestamps (in units per second),
-   and log base 10 of the inverse resolution.  */
-
-enum { TIMESPEC_HZ = 1000000000 };
-enum { LOG10_TIMESPEC_HZ = 9 };
-
-/* Obsolescent names for backward compatibility.
-   They are misnomers, because TIMESPEC_RESOLUTION is not a resolution.  */
-
-enum { TIMESPEC_RESOLUTION = TIMESPEC_HZ };
-enum { LOG10_TIMESPEC_RESOLUTION = LOG10_TIMESPEC_HZ };
-
-/* Return a timespec with seconds S and nanoseconds NS.  */
-
-_GL_TIMESPEC_INLINE struct timespec
-make_timespec (time_t s, long int ns)
-{
-  return (struct timespec) { .tv_sec = s, .tv_nsec = ns };
-}
-
-/* Return negative, zero, positive if A < B, A == B, A > B, respectively.  */
-
-_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE
-timespec_cmp (struct timespec a, struct timespec b)
-{
-  return 2 * _GL_CMP (a.tv_sec, b.tv_sec) + _GL_CMP (a.tv_nsec, b.tv_nsec);
-}
-
-/* Return -1, 0, 1, depending on the sign of A.  A.tv_nsec must be
-   nonnegative.  */
-_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE
-timespec_sign (struct timespec a)
-{
-  return _GL_CMP (a.tv_sec, 0) + (!a.tv_sec & !!a.tv_nsec);
-}
-
-struct timespec timespec_add (struct timespec, struct timespec)
-  _GL_ATTRIBUTE_CONST;
-struct timespec timespec_sub (struct timespec, struct timespec)
-  _GL_ATTRIBUTE_CONST;
-struct timespec dtotimespec (double)
-  _GL_ATTRIBUTE_CONST;
-
-/* Return an approximation to A, of type 'double'.  */
-_GL_TIMESPEC_INLINE double
-timespectod (struct timespec a)
-{
-  return a.tv_sec + a.tv_nsec / 1e9;
-}
-
-long int gettime_res (void);
-struct timespec current_timespec (void);
-void gettime (struct timespec *) _GL_ARG_NONNULL ((1));
-int settime (struct timespec const *) _GL_ARG_NONNULL ((1));
-
-#ifdef __cplusplus
-}
-#endif
-
-_GL_INLINE_HEADER_END
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/unictype/ctype_print.c 
b/tp/Texinfo/XS/gnulib/lib/unictype/ctype_print.c
deleted file mode 100644
index 5e73e42db5..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/unictype/ctype_print.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2024 Free Software Foundation, Inc.
-   Written by Bruno Haible <bruno@clisp.org>, 2002.
-
-   This file is free software: you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General 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>
-
-/* Specification.  */
-#include "unictype.h"
-
-#include "bitmap.h"
-
-/* Define u_is_print table.  */
-#include "ctype_print.h"
-
-bool
-uc_is_print (ucs4_t uc)
-{
-  return bitmap_lookup (&u_is_print, uc);
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/unictype/ctype_print.h 
b/tp/Texinfo/XS/gnulib/lib/unictype/ctype_print.h
deleted file mode 100644
index b700782887..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/unictype/ctype_print.h
+++ /dev/null
@@ -1,1202 +0,0 @@
-/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0.  */
-
-/* Copyright (C) 2000-2024 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/>.  */
-
-#define header_0 16
-#define header_2 9
-#define header_3 127
-#define header_4 15
-static const
-struct
-  {
-    int header[1];
-    int level1[17];
-    short level2[6 << 7];
-    unsigned int level3[94 << 4];
-  }
-u_is_print =
-{
-  { 17 },
-  {
-       18 * sizeof (int) / sizeof (short) +     0,
-       18 * sizeof (int) / sizeof (short) +   128,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   384,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 * sizeof (int) / sizeof (short) +   512,
-       18 * sizeof (int) / sizeof (short) +   640,
-       18 * sizeof (int) / sizeof (short) +   640
-  },
-  {
-       18 +   768 * sizeof (short) / sizeof (int) +     0,
-       18 +   768 * sizeof (short) / sizeof (int) +    16,
-       18 +   768 * sizeof (short) / sizeof (int) +    32,
-       18 +   768 * sizeof (short) / sizeof (int) +    48,
-       18 +   768 * sizeof (short) / sizeof (int) +    64,
-       18 +   768 * sizeof (short) / sizeof (int) +    80,
-       18 +   768 * sizeof (short) / sizeof (int) +    96,
-       18 +   768 * sizeof (short) / sizeof (int) +   112,
-       18 +   768 * sizeof (short) / sizeof (int) +   128,
-       18 +   768 * sizeof (short) / sizeof (int) +   144,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   176,
-       18 +   768 * sizeof (short) / sizeof (int) +   192,
-       18 +   768 * sizeof (short) / sizeof (int) +   208,
-       18 +   768 * sizeof (short) / sizeof (int) +   224,
-       18 +   768 * sizeof (short) / sizeof (int) +   240,
-       18 +   768 * sizeof (short) / sizeof (int) +   256,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   272,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   288,
-       18 +   768 * sizeof (short) / sizeof (int) +   304,
-       18 +   768 * sizeof (short) / sizeof (int) +   320,
-       18 +   768 * sizeof (short) / sizeof (int) +   336,
-       18 +   768 * sizeof (short) / sizeof (int) +   352,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   368,
-       18 +   768 * sizeof (short) / sizeof (int) +   384,
-       18 +   768 * sizeof (short) / sizeof (int) +   400,
-       18 +   768 * sizeof (short) / sizeof (int) +   416,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   432,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   448,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   480,
-       18 +   768 * sizeof (short) / sizeof (int) +   496,
-       18 +   768 * sizeof (short) / sizeof (int) +   512,
-       18 +   768 * sizeof (short) / sizeof (int) +   528,
-       18 +   768 * sizeof (short) / sizeof (int) +   544,
-       18 +   768 * sizeof (short) / sizeof (int) +   560,
-       18 +   768 * sizeof (short) / sizeof (int) +   576,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   608,
-       18 +   768 * sizeof (short) / sizeof (int) +   624,
-       18 +   768 * sizeof (short) / sizeof (int) +   640,
-       18 +   768 * sizeof (short) / sizeof (int) +   656,
-       18 +   768 * sizeof (short) / sizeof (int) +   672,
-       18 +   768 * sizeof (short) / sizeof (int) +   688,
-       18 +   768 * sizeof (short) / sizeof (int) +   704,
-       18 +   768 * sizeof (short) / sizeof (int) +   720,
-       18 +   768 * sizeof (short) / sizeof (int) +   736,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   752,
-       18 +   768 * sizeof (short) / sizeof (int) +   768,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   784,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   800,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   816,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   832,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   848,
-       -1,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   864,
-       18 +   768 * sizeof (short) / sizeof (int) +   880,
-       18 +   768 * sizeof (short) / sizeof (int) +   896,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   912,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   928,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   944,
-       18 +   768 * sizeof (short) / sizeof (int) +   960,
-       18 +   768 * sizeof (short) / sizeof (int) +   976,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   992,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +  1008,
-       18 +   768 * sizeof (short) / sizeof (int) +  1024,
-       18 +   768 * sizeof (short) / sizeof (int) +  1040,
-       18 +   768 * sizeof (short) / sizeof (int) +  1056,
-       18 +   768 * sizeof (short) / sizeof (int) +  1072,
-       18 +   768 * sizeof (short) / sizeof (int) +  1088,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1104,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +  1120,
-       18 +   768 * sizeof (short) / sizeof (int) +  1136,
-       18 +   768 * sizeof (short) / sizeof (int) +  1152,
-       18 +   768 * sizeof (short) / sizeof (int) +  1168,
-       18 +   768 * sizeof (short) / sizeof (int) +  1184,
-       18 +   768 * sizeof (short) / sizeof (int) +  1200,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +  1216,
-       18 +   768 * sizeof (short) / sizeof (int) +  1232,
-       18 +   768 * sizeof (short) / sizeof (int) +  1248,
-       18 +   768 * sizeof (short) / sizeof (int) +  1264,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1280,
-       18 +   768 * sizeof (short) / sizeof (int) +  1296,
-       18 +   768 * sizeof (short) / sizeof (int) +  1312,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1328,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1344,
-       18 +   768 * sizeof (short) / sizeof (int) +  1360,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1376,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1392,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1408,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1424,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1440,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1456,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +  1472,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +   160,
-       18 +   768 * sizeof (short) / sizeof (int) +  1488
-  },
-  {
-    0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x7FFFFFFFU,
-    0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFCFFFFFFU,
-    0xFFFFD7F0U, 0xFFFFFFFBU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFEFFFFU, 0xFE7FFFFFU, 0xFFFFFFFFU,
-    0xFFFEE7FFU, 0xFFFFFFFFU, 0xFFFF00FFU, 0x001F87FFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFBFFFU, 0xFFFFFFFFU, 0xFFFFE7FFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x0003FFFFU, 0xFFFFFFFFU, 0xE7FFFFFFU,
-    0xFFFFFFFFU, 0x7FFF3FFFU, 0x4FFFFFFFU, 0xFFFF07FFU,
-    0xFF837FFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFF99FEFU, 0xF3C5FDFFU, 0xB080799FU, 0x7FFFFFCFU,
-    0xFFF987EEU, 0xD36DFDFFU, 0x5E023987U, 0x007FFFC0U,
-    0xFFFBBFEEU, 0xF3EDFDFFU, 0x00013BBFU, 0xFE03FFCFU,
-    0xFFF99FEEU, 0xF3EDFDFFU, 0xB0E0399FU, 0x00FFFFCFU,
-    0xD63DC7ECU, 0xC3FFC718U, 0x00813DC7U, 0x07FFFFC0U,
-    0xFFFDDFFFU, 0xF3FFFDFFU, 0x27603DDFU, 0xFF80FFCFU,
-    0xFFFDDFFFU, 0xF3EFFDFFU, 0x60603DDFU, 0x000EFFCFU,
-    0xFFFDDFFFU, 0xFFFFFFFFU, 0xFFF0FDDFU, 0xFFFFFFCFU,
-    0xFC7FFFEEU, 0x2FFBFFFFU, 0xFF5F847FU, 0x001CFFC0U,
-    0xFFFFFFFEU, 0x87FFFFFFU, 0x0FFFFFFFU, 0x00000000U,
-    0xFFFFF7D6U, 0x3FFFFFAFU, 0xF3FF7F5FU, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFEFFU, 0xFFFE1FFFU,
-    0xFEFFFFFFU, 0xDFFFFFFFU, 0x07FFDFFFU, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF20BFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x3D7F3DFFU, 0xFFFFFFFFU,
-    0xFFFF3DFFU, 0x7F3DFFFFU, 0xFF7FFF3DU, 0xFFFFFFFFU,
-    0xFF3DFFFFU, 0xFFFFFFFFU, 0xE7FFFFFFU, 0x1FFFFFFFU,
-    0x03FFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x3F3FFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0x1FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x01FFFFFFU,
-    0x803FFFFFU, 0x007FFFFFU, 0x000FFFFFU, 0x000DDFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x3FFFFFFFU, 0x03FF03FFU,
-    0x03FFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x01FFFFFFU,
-    0xFFFFFFFFU, 0xFFFF07FFU, 0xFFFFFFFFU, 0x003FFFFFU,
-    0x7FFFFFFFU, 0x0FFF0FFFU, 0xFFFFFFF1U, 0x001F3FFFU,
-    0xFFFFFFFFU, 0xFFFF0FFFU, 0xC7FF03FFU, 0xFFFFFFFFU,
-    0xCFFFFFFFU, 0xFFFFFFFFU, 0x7FFFFFFFU, 0x9FFFFFFFU,
-    0x03FF03FFU, 0xFFFF3FFFU, 0x00007FFFU, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFDFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xF00FFFFFU,
-    0xFFFFFFFFU, 0xF8FFFFFFU, 0xFFFFE3FFU, 0xFFFFFFFFU,
-    0xFFFF07FFU, 0xE7FFFFFFU, 0xFFFF00FFU, 0x07FFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0x3F3FFFFFU, 0xFFFFFFFFU, 0xAAFF3F3FU, 0x3FFFFFFFU,
-    0xFFFFFFFFU, 0xFFDFFFFFU, 0xEFCFFFDFU, 0x7FDCFFFFU,
-    0xFFFFFFFFU, 0xFFFFFCFFU, 0xFFFFFFFFU, 0xFFF3FFDFU,
-    0x1FFF7FFFU, 0xFFFFFFFFU, 0xFFFF0001U, 0x0001FFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFF0FFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x000003FFU, 0x000007FFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFCFFFFFU,
-    0xFFBFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFE0FFFFFU,
-    0xFFFFFFFFU, 0xFFFF20BFU, 0xFFFFFFFFU, 0x800180FFU,
-    0x007FFFFFU, 0x7F7F7F7FU, 0x7F7F7F7FU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x3FFFFFFFU, 0x00000000U,
-    0xFBFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x000FFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0xFFFF0000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFEU, 0xFFFFFFFFU,
-    0xFE7FFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFE0U, 0xFFFEFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFF7FFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF803FU,
-    0x7FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFF1FFFU, 0xFFFFFFFFU, 0xFFFF007FU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x00000FFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00FFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x1FEB3FFFU, 0xFFFC0000U,
-    0xFFFFFFFFU, 0x03FF1FFFU, 0xFFFFFFFFU, 0x00FFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FFC03FU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x800FFFFFU, 0x1FFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xC3FFBFFFU, 0x7FFFFFFFU,
-    0xFFFFFFFFU, 0x007FFFFFU, 0xF3FF3FFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xF8000007U, 0x007FFFFFU,
-    0x007E7E7EU, 0xFFFF7F7FU, 0xFFFFFFFFU, 0xFFFF0FFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FF3FFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFF000FU, 0xFFFFF87FU, 0x0FFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF3FFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FFFFFFU, 0x00000000U,
-    0xE0F8007FU, 0x5F7FFFFFU, 0xFFFFFFDBU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFF80007U, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFCFFFFU, 0xFFFFFFFFU, 0x000080FFU, 0xFFFF0000U,
-    0x03FFFFFFU, 0xFFFFFFFFU, 0xFFF7FFFFU, 0xFFDF0F7FU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x9FFFFFFFU,
-    0xFFFFFFFEU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x7FFFFFFFU, 0x1CFCFCFCU, 0x3E007F7FU,
-    0xFFFFEFFFU, 0xB7FFFF7FU, 0x3FFF3FFFU, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x07FFFFFFU,
-    0xFFFFFF87U, 0xFF8FFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0x1FFF7FFFU, 0x00000001U, 0xFFFF0000U, 0x3FFFFFFFU,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x1FFFFFFFU, 0xFFFFFFFFU, 0x0001FFFFU, 0x0FFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFE00FU, 0xFFFF07FFU, 0x07FFFFFFU,
-    0xBFFFFFFFU, 0xFFFFFFFFU, 0x003FFF0FU, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0x3FFFFFFFU, 0xFFFF03FFU, 0xFF0FFFFFU, 0x0FFFFFFFU,
-    0xFFFFFFFFU, 0xFFFF00FFU, 0xFFFFFFFFU, 0xF7FF800FU,
-    0xFFB7F7FFU, 0x1BFBFFFBU, 0xFFFFFFFFU, 0x000FFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x007FFFFFU, 0x003FFFFFU, 0x000000FFU,
-    0xFFFFFFBFU, 0x07FDFFFFU, 0x00000000U, 0x00000000U,
-    0xFFFFFD3FU, 0x91BFFFFFU, 0xFFBFFFFFU, 0xFFFFFFFFU,
-    0x7FFFFFFFU, 0x0000FF80U, 0x00000000U, 0xF837FFFFU,
-    0x8FFFFFFFU, 0x83FFFFFFU, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xF0FFFFFFU, 0xFFFCFFFFU, 0xFFFFFFFFU,
-    0xFEEFF06FU, 0x873FFFFFU, 0x01FF01FFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x00000000U, 0xFFFFFFFFU, 0x007FF87FU,
-    0xFFFFFFFFU, 0xFE3FFFFFU, 0xFF3FFFFFU, 0xFF07FFFFU,
-    0x1E03FFFFU, 0x0000FE00U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x000001FFU, 0x00000000U,
-    0xFFFFFFFFU, 0x0007FFFFU, 0xFFFFFFFFU, 0xFC07FFFFU,
-    0xFFFFFFFFU, 0x03FF00FFU, 0xFFFFFFFFU, 0xFFFFFE3FU,
-    0x0000C03FU, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x7FFFFFFFU,
-    0xFFFFFFFFU, 0x00033BFFU, 0x0000001CU, 0xF0000000U,
-    0xFFFFFFFFU, 0xFFFF00FFU, 0x03FFFFFFU, 0xFFFF0000U,
-    0x000003FFU, 0xFFFF0000U, 0x00000FFFU, 0x007FFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFC3FFFU, 0x803FFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF2007U, 0x03FF01FFU,
-    0xFFFFFFFFU, 0xFFDFFFFFU, 0xFFFF00FFU, 0x007FFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x001FFFFEU,
-    0xFFFBFFFFU, 0xFFFFFFFFU, 0x00000003U, 0x00000000U,
-    0xBFFFBD7FU, 0xFFFF03FFU, 0xFFFFFFFFU, 0x03FF07FFU,
-    0xFFF99FEFU, 0xFBEDFDFFU, 0xE081399FU, 0x001F1FCFU,
-    0xFFFF4BFFU, 0xFFBFFFFFU, 0x01BFF7A5U, 0x00000006U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xEFFFFFFFU, 0x00000003U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FF00FFU, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFF3FFFFFU, 0x3FFFFFFFU, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FF001FU, 0x00001FFFU,
-    0xFFFFFFFFU, 0x03FFFFFFU, 0xFFFF03FFU, 0x0000000FU,
-    0xE7FFFFFFU, 0xFFFF0FFFU, 0x0000007FU, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0x0FFFFFFFU, 0x00000000U, 0x00000000U,
-    0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x8007FFFFU,
-    0xFF6FF27FU, 0xF9BFFFFFU, 0x03FF007FU, 0x00000000U,
-    0x00000000U, 0xFFFFFCFFU, 0xFCFFFFFFU, 0x0000001FU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF00FFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFF0007U, 0xFFFFFFFFU, 0x01FFFFFFU,
-    0x000003FFU, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0xFFFFFFFFU, 0x03FF0003U,
-    0xFFFFFDFFU, 0xFF7FFFFFU, 0xFFFF003FU, 0xFFFF1FFFU,
-    0xFFFCFFFFU, 0x007FFEFFU, 0x00000000U, 0x00000000U,
-    0xFFFFFB7FU, 0xB47FFFFFU, 0x03FF00FFU, 0xFFFFFDBFU,
-    0x01FB7FFFU, 0x000003FFU, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x01FFFFFFU,
-    0xFFFDFFFFU, 0xC7FFFFFFU, 0x07FFFFFFU, 0x00000000U,
-    0x00000000U, 0x00010000U, 0xFFFFFFFFU, 0x8003FFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0x03FFFFFFU, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x001F7FFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000000FU, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFF0000U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0007FFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x07FFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000007FU, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0x03FFFFFFU, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0x01FFFFFFU, 0x7FFFFFFFU, 0xFFFFC3FFU,
-    0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFF03FFU, 0x003F3FFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFBFF003FU, 0xE0FFFFFBU,
-    0x0000FFFFU, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0xFFFFFFFFU, 0x03FFFFFFU,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0x07FFFFFFU, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF87FFU, 0xFFFFFFFFU,
-    0xFFFF80FFU, 0x00000000U, 0x00000000U, 0x0003001FU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00FFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0x80000000U,
-    0x000001FFU, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x6FEF0000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x00040007U, 0x00270000U, 0xFFFF00F0U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0FFFFFFFU,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x1FFF07FFU,
-    0xF3FF01FFU, 0x0000000FU, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x000FFFFFU, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFF3FFFU, 0xFFFF007FU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000000FU, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU,
-    0xFFFFFFFFU, 0xFFFFFE7FU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x000007FFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000003FU, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x000FFFFFU, 0x000FFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x007FFFFFU, 0x01FFFFFFU,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFDFFFFFU, 0xFFFFFFFFU,
-    0xDFFFFFFFU, 0xEBFFDE64U, 0xFFFFFFEFU, 0xFFFFFFFFU,
-    0xDFDFE7BFU, 0x7BFFFFFFU, 0xFFFDFC5FU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFF3FU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFCFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xF8000FFFU, 0x0000FFFEU, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x7FFFFFFFU, 0x000007E0U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xF9FFFF7FU, 0xFFFF07DBU, 0xFFFFFFFFU, 0x00003FFFU,
-    0x00008000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0x3FFF1FFFU, 0x0000C3FFU, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFF0000U, 0x00007FFFU, 0xFFFFFFFFU, 0x83FFFFFFU,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0xFFFF0000U, 0x03FFFFFFU,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0xFFFF0000U, 0x87FFFFFFU,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x7FFF6F7FU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x007FFF9FU, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xC3FF0FFFU, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0xFFFE0000U,
-    0xFFFFFFFFU, 0x001FFFFFU, 0x00000000U, 0x00000000U,
-    0xFFFFFFFEU, 0x3FFFFFFFU, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFEFU, 0x0AF7FE96U, 0xAA96EA84U, 0x5EF7F796U,
-    0x0FFFFBFFU, 0x0FFFFBEEU, 0x00000000U, 0x00030000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFF0FFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0x000FFFFFU, 0xFFFE7FFFU, 0xFFFEFFFEU, 0x003FFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x00003FFFU, 0x00000000U, 0xFFFFFFC0U,
-    0xFFFF0007U, 0x0FFFFFFFU, 0x000301FFU, 0x0000003FU,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xF0FFFFFFU, 0x1FFF1FFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xF87FFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FFFFFFU, 0x00010FFFU,
-    0xFFFF0FFFU, 0xFFFFFFFFU, 0x03FF00FFU, 0xFFFFFFFFU,
-    0xFFFF00FFU, 0x0FFF3FFFU, 0x00000003U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x000FFFFFU, 0x1FFF3FFFU,
-    0xFFFF83FFU, 0xFFFFFFFFU, 0x9FFFC07FU, 0x01FF03FFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFF7FFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x03FFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0x3FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFF0003U, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF0001U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0x3FFFFFFFU, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x3FFFFFFFU, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF07FFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, 0x00000000U,
-    0x00000002U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
-    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x3FFFFFFFU
-  }
-};
diff --git a/tp/Texinfo/XS/gnulib/lib/utime.c b/tp/Texinfo/XS/gnulib/lib/utime.c
deleted file mode 100644
index 3535764a2f..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/utime.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/* Work around platform bugs in utime.
-   Copyright (C) 2017-2024 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/>.  */
-
-/* Written by Bruno Haible.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include <utime.h>
-
-#if defined _WIN32 && ! defined __CYGWIN__
-
-# include <errno.h>
-# include <windows.h>
-# include "filename.h"
-# include "malloca.h"
-
-/* Don't assume that UNICODE is not defined.  */
-# undef CreateFile
-# define CreateFile CreateFileA
-# undef GetFileAttributes
-# define GetFileAttributes GetFileAttributesA
-
-int
-_gl_utimens_windows (const char *name, struct timespec ts[2])
-{
-  /* POSIX 
<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>
-     specifies: "More than two leading <slash> characters shall be treated as
-     a single <slash> character."  */
-  if (ISSLASH (name[0]) && ISSLASH (name[1]) && ISSLASH (name[2]))
-    {
-      name += 2;
-      while (ISSLASH (name[1]))
-        name++;
-    }
-
-  size_t len = strlen (name);
-  size_t drive_prefix_len = (HAS_DEVICE (name) ? 2 : 0);
-
-  /* Remove trailing slashes (except the very first one, at position
-     drive_prefix_len), but remember their presence.  */
-  size_t rlen;
-  bool check_dir = false;
-
-  rlen = len;
-  while (rlen > drive_prefix_len && ISSLASH (name[rlen-1]))
-    {
-      check_dir = true;
-      if (rlen == drive_prefix_len + 1)
-        break;
-      rlen--;
-    }
-
-  const char *rname;
-  char *malloca_rname;
-  if (rlen == len)
-    {
-      rname = name;
-      malloca_rname = NULL;
-    }
-  else
-    {
-      malloca_rname = malloca (rlen + 1);
-      if (malloca_rname == NULL)
-        {
-          errno = ENOMEM;
-          return -1;
-        }
-      memcpy (malloca_rname, name, rlen);
-      malloca_rname[rlen] = '\0';
-      rname = malloca_rname;
-    }
-
-  DWORD error;
-
-  /* Open a handle to the file.
-     CreateFile
-     
<https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-createfilea>
-     
<https://docs.microsoft.com/en-us/windows/desktop/FileIO/creating-and-opening-files>
  */
-  HANDLE handle =
-    CreateFile (rname,
-                FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES,
-                FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
-                NULL,
-                OPEN_EXISTING,
-                /* FILE_FLAG_POSIX_SEMANTICS (treat file names that differ only
-                   in case as different) makes sense only when applied to *all*
-                   filesystem operations.  */
-                FILE_FLAG_BACKUP_SEMANTICS /* | FILE_FLAG_POSIX_SEMANTICS */,
-                NULL);
-  if (handle == INVALID_HANDLE_VALUE)
-    {
-      error = GetLastError ();
-      goto failed;
-    }
-
-  if (check_dir)
-    {
-      /* GetFileAttributes
-         
<https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileattributesa>
  */
-      DWORD attributes = GetFileAttributes (rname);
-      if (attributes == INVALID_FILE_ATTRIBUTES)
-        {
-          error = GetLastError ();
-          CloseHandle (handle);
-          goto failed;
-        }
-      if ((attributes & FILE_ATTRIBUTE_DIRECTORY) == 0)
-        {
-          CloseHandle (handle);
-          if (malloca_rname != NULL)
-            freea (malloca_rname);
-          errno = ENOTDIR;
-          return -1;
-        }
-    }
-
-  {
-    /* Use SetFileTime(). See
-       
<https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-setfiletime>
-       
<https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-filetime>
  */
-    FILETIME last_access_time;
-    FILETIME last_write_time;
-    if (ts == NULL)
-      {
-        /* GetSystemTimeAsFileTime is the same as
-           GetSystemTime followed by SystemTimeToFileTime.
-           
<https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getsystemtimeasfiletime>.
-           It would be overkill to use
-           GetSystemTimePreciseAsFileTime
-           
<https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getsystemtimepreciseasfiletime>.
  */
-        FILETIME current_time;
-        GetSystemTimeAsFileTime (&current_time);
-        last_access_time = current_time;
-        last_write_time = current_time;
-      }
-    else
-      {
-        {
-          ULONGLONG time_since_16010101 =
-            (ULONGLONG) ts[0].tv_sec * 10000000 + ts[0].tv_nsec / 100 + 
116444736000000000LL;
-          last_access_time.dwLowDateTime = (DWORD) time_since_16010101;
-          last_access_time.dwHighDateTime = time_since_16010101 >> 32;
-        }
-        {
-          ULONGLONG time_since_16010101 =
-            (ULONGLONG) ts[1].tv_sec * 10000000 + ts[1].tv_nsec / 100 + 
116444736000000000LL;
-          last_write_time.dwLowDateTime = (DWORD) time_since_16010101;
-          last_write_time.dwHighDateTime = time_since_16010101 >> 32;
-        }
-      }
-    if (SetFileTime (handle, NULL, &last_access_time, &last_write_time))
-      {
-        CloseHandle (handle);
-        if (malloca_rname != NULL)
-          freea (malloca_rname);
-        return 0;
-      }
-    else
-      {
-        #if 0
-        DWORD sft_error = GetLastError ();
-        fprintf (stderr, "utimens SetFileTime error 0x%x\n", (unsigned int) 
sft_error);
-        #endif
-        CloseHandle (handle);
-        if (malloca_rname != NULL)
-          freea (malloca_rname);
-        errno = EINVAL;
-        return -1;
-      }
-  }
-
- failed:
-  {
-    #if 0
-    fprintf (stderr, "utimens CreateFile/GetFileAttributes error 0x%x\n", 
(unsigned int) error);
-    #endif
-    if (malloca_rname != NULL)
-      freea (malloca_rname);
-
-    switch (error)
-      {
-      /* Some of these errors probably cannot happen with the specific flags
-         that we pass to CreateFile.  But who knows...  */
-      case ERROR_FILE_NOT_FOUND: /* The last component of rname does not 
exist.  */
-      case ERROR_PATH_NOT_FOUND: /* Some directory component in rname does not 
exist.  */
-      case ERROR_BAD_PATHNAME:   /* rname is such as '\\server'.  */
-      case ERROR_BAD_NETPATH:    /* rname is such as 
'\\nonexistentserver\share'.  */
-      case ERROR_BAD_NET_NAME:   /* rname is such as 
'\\server\nonexistentshare'.  */
-      case ERROR_INVALID_NAME:   /* rname contains wildcards, misplaced colon, 
etc.  */
-      case ERROR_DIRECTORY:
-        errno = ENOENT;
-        break;
-
-      case ERROR_ACCESS_DENIED:  /* rname is such as 'C:\System Volume 
Information\foo'.  */
-      case ERROR_SHARING_VIOLATION: /* rname is such as 'C:\pagefile.sys'.  */
-        errno = (ts != NULL ? EPERM : EACCES);
-        break;
-
-      case ERROR_OUTOFMEMORY:
-        errno = ENOMEM;
-        break;
-
-      case ERROR_WRITE_PROTECT:
-        errno = EROFS;
-        break;
-
-      case ERROR_WRITE_FAULT:
-      case ERROR_READ_FAULT:
-      case ERROR_GEN_FAILURE:
-        errno = EIO;
-        break;
-
-      case ERROR_BUFFER_OVERFLOW:
-      case ERROR_FILENAME_EXCED_RANGE:
-        errno = ENAMETOOLONG;
-        break;
-
-      case ERROR_DELETE_PENDING: /* XXX map to EACCES or EPERM? */
-        errno = EPERM;
-        break;
-
-      default:
-        errno = EINVAL;
-        break;
-      }
-
-    return -1;
-  }
-}
-
-int
-utime (const char *name, const struct utimbuf *ts)
-{
-  if (ts == NULL)
-    return _gl_utimens_windows (name, NULL);
-  else
-    {
-      struct timespec ts_with_nanoseconds[2];
-      ts_with_nanoseconds[0].tv_sec = ts->actime;
-      ts_with_nanoseconds[0].tv_nsec = 0;
-      ts_with_nanoseconds[1].tv_sec = ts->modtime;
-      ts_with_nanoseconds[1].tv_nsec = 0;
-      return _gl_utimens_windows (name, ts_with_nanoseconds);
-    }
-}
-
-#else
-
-# include <errno.h>
-# include <sys/stat.h>
-# include "filename.h"
-
-int
-utime (const char *name, const struct utimbuf *ts)
-#undef utime
-{
-# if REPLACE_FUNC_UTIME_FILE
-  /* macOS 10.13 mistakenly succeeds when given a symbolic link to a
-     non-directory with a trailing slash.  */
-  size_t len = strlen (name);
-  if (len > 0 && ISSLASH (name[len - 1]))
-    {
-      struct stat buf;
-
-      if (stat (name, &buf) == -1 && errno != EOVERFLOW)
-        return -1;
-    }
-# endif /* REPLACE_FUNC_UTIME_FILE */
-
-  return utime (name, ts);
-}
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/utime.in.h 
b/tp/Texinfo/XS/gnulib/lib/utime.in.h
deleted file mode 100644
index 55b7ee8c94..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/utime.in.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Substitute for and wrapper around <utime.h>.
-   Copyright (C) 2017-2024 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 _@GUARD_PREFIX@_UTIME_H
-
-#if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-#endif
-@PRAGMA_COLUMNS@
-
-/* This file uses #include_next of a system file that defines time_t.
-   For the 'year2038' module to work right, <config.h> needs to have been
-   included before.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-/* The include_next requires a split double-inclusion guard.  */
-#if @HAVE_UTIME_H@
-# @INCLUDE_NEXT@ @NEXT_UTIME_H@
-#endif
-
-#ifndef _@GUARD_PREFIX@_UTIME_H
-#define _@GUARD_PREFIX@_UTIME_H
-
-/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#if !@HAVE_UTIME_H@
-# include <sys/utime.h>
-#endif
-
-#if @GNULIB_UTIME@
-/* Get struct timespec.  */
-# include <time.h>
-#endif
-
-/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
-
-/* The definition of _GL_ARG_NONNULL is copied here.  */
-
-/* The definition of _GL_WARN_ON_USE is copied here.  */
-
-
-#if defined _WIN32 && ! defined __CYGWIN__
-
-/* Define 'struct utimbuf' as an alias of 'struct _utimbuf'
-   (or possibly, if present, 'struct __utimbuf64').  */
-# define utimbuf _utimbuf
-
-#endif
-
-
-#if @GNULIB_UTIME@
-# if @REPLACE_UTIME@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define utime rpl_utime
-#  endif
-_GL_FUNCDECL_RPL (utime, int, (const char *filename, const struct utimbuf *ts),
-                              _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (utime, int, (const char *filename, const struct utimbuf 
*ts));
-# elif defined _WIN32 && !defined __CYGWIN__
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef utime
-#   define utime _utime
-#  endif
-_GL_CXXALIAS_MDA (utime, int, (const char *filename, const struct utimbuf 
*ts));
-# else
-#  if !@HAVE_UTIME@
-_GL_FUNCDECL_SYS (utime, int, (const char *filename, const struct utimbuf *ts),
-                              _GL_ARG_NONNULL ((1)));
-#  endif
-_GL_CXXALIAS_SYS (utime, int, (const char *filename, const struct utimbuf 
*ts));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (utime);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef utime
-# if HAVE_RAW_DECL_UTIME
-_GL_WARN_ON_USE (utime,
-                 "utime is unportable - "
-                 "use gnulib module canonicalize-lgpl for portability");
-# endif
-#elif @GNULIB_MDA_UTIME@
-/* On native Windows, map 'utime' to '_utime', so that -loldnames is not
-   required.  In C++ with GNULIB_NAMESPACE, avoid differences between
-   platforms by defining GNULIB_NAMESPACE::utime always.  */
-# if defined _WIN32 && !defined __CYGWIN__
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef utime
-#   define utime _utime
-#  endif
-_GL_CXXALIAS_MDA (utime, int, (const char *filename, const struct utimbuf 
*ts));
-# else
-_GL_CXXALIAS_SYS (utime, int, (const char *filename, const struct utimbuf 
*ts));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (utime);
-# endif
-#endif
-
-#if @GNULIB_UTIME@
-_GL_EXTERN_C int _gl_utimens_windows (const char *filename, struct timespec 
ts[2]);
-#endif
-
-
-#endif /* _@GUARD_PREFIX@_UTIME_H */
-#endif /* _@GUARD_PREFIX@_UTIME_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/utimens.c 
b/tp/Texinfo/XS/gnulib/lib/utimens.c
deleted file mode 100644
index 3c81b5c349..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/utimens.c
+++ /dev/null
@@ -1,680 +0,0 @@
-/* Set file access and modification times.
-
-   Copyright (C) 2003-2024 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/>.  */
-
-/* Written by Paul Eggert.  */
-
-/* derived from a function in touch.c */
-
-#include <config.h>
-
-#define _GL_UTIMENS_INLINE _GL_EXTERN_INLINE
-#include "utimens.h"
-
-#include <errno.h>
-#include <fcntl.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <unistd.h>
-#include <utime.h>
-
-#include "stat-time.h"
-#include "timespec.h"
-
-/* On native Windows, use SetFileTime; but avoid this when compiling
-   GNU Emacs, which arranges for this in some other way and which
-   defines WIN32_LEAN_AND_MEAN itself.  */
-
-#if defined _WIN32 && ! defined __CYGWIN__ && ! defined EMACS_CONFIGURATION
-# define USE_SETFILETIME
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-# if GNULIB_MSVC_NOTHROW
-#  include "msvc-nothrow.h"
-# else
-#  include <io.h>
-# endif
-#endif
-
-/* Avoid recursion with rpl_futimens or rpl_utimensat.  */
-#undef futimens
-#if !HAVE_NEARLY_WORKING_UTIMENSAT
-# undef utimensat
-#endif
-
-/* Solaris 9 mistakenly succeeds when given a non-directory with a
-   trailing slash.  Force the use of rpl_stat for a fix.  */
-#ifndef REPLACE_FUNC_STAT_FILE
-# define REPLACE_FUNC_STAT_FILE 0
-#endif
-
-#if HAVE_UTIMENSAT || HAVE_FUTIMENS
-/* Cache variables for whether the utimensat syscall works; used to
-   avoid calling the syscall if we know it will just fail with ENOSYS,
-   and to avoid unnecessary work in massaging timestamps if the
-   syscall will work.  Multiple variables are needed, to distinguish
-   between the following scenarios on Linux:
-   utimensat doesn't exist, or is in glibc but kernel 2.6.18 fails with ENOSYS
-   kernel 2.6.22 and earlier rejects AT_SYMLINK_NOFOLLOW
-   kernel 2.6.25 and earlier reject UTIME_NOW/UTIME_OMIT with non-zero tv_sec
-   kernel 2.6.32 used with xfs or ntfs-3g fail to honor UTIME_OMIT
-   utimensat completely works
-   For each cache variable: 0 = unknown, 1 = yes, -1 = no.  */
-static int utimensat_works_really;
-static int lutimensat_works_really;
-#endif /* HAVE_UTIMENSAT || HAVE_FUTIMENS */
-
-static bool
-is_valid_timespec (struct timespec const *timespec)
-{
-  return (timespec->tv_nsec == UTIME_NOW
-          || timespec->tv_nsec == UTIME_OMIT
-          || (0 <= timespec->tv_nsec && timespec->tv_nsec < TIMESPEC_HZ));
-}
-
-static bool
-is_valid_timespecs (struct timespec const timespec[2])
-{
-  return (is_valid_timespec (&timespec[0])
-          && is_valid_timespec (&timespec[1]));
-}
-
-/* Validate the requested timestamps.  Return 0 if the resulting
-   timespec can be used for utimensat (after possibly modifying it to
-   work around bugs in utimensat).  Return a positive value if the
-   timespec needs further adjustment based on stat results: 1 if any
-   adjustment is needed for utimes, and 2 if any adjustment is needed
-   for Linux utimensat.  Return -1, with errno set to EINVAL, if
-   timespec is out of range.  */
-static int
-validate_timespec (struct timespec timespec[2])
-{
-  int result = 0;
-  int utime_omit_count = 0;
-  if (!is_valid_timespecs (timespec))
-    {
-      errno = EINVAL;
-      return -1;
-    }
-  /* Work around Linux kernel 2.6.25 bug, where utimensat fails with
-     EINVAL if tv_sec is not 0 when using the flag values of tv_nsec.
-     Flag a Linux kernel 2.6.32 bug, where an mtime of UTIME_OMIT
-     fails to bump ctime.  */
-  if (timespec[0].tv_nsec == UTIME_NOW
-      || timespec[0].tv_nsec == UTIME_OMIT)
-    {
-      timespec[0].tv_sec = 0;
-      result = 1;
-      if (timespec[0].tv_nsec == UTIME_OMIT)
-        utime_omit_count++;
-    }
-  if (timespec[1].tv_nsec == UTIME_NOW
-      || timespec[1].tv_nsec == UTIME_OMIT)
-    {
-      timespec[1].tv_sec = 0;
-      result = 1;
-      if (timespec[1].tv_nsec == UTIME_OMIT)
-        utime_omit_count++;
-    }
-  return result + (utime_omit_count == 1);
-}
-
-/* Normalize any UTIME_NOW or UTIME_OMIT values in (*TS)[0] and (*TS)[1],
-   using STATBUF to obtain the current timestamps of the file.  If
-   both times are UTIME_NOW, set *TS to NULL (as this can avoid some
-   permissions issues).  If both times are UTIME_OMIT, return true
-   (nothing further beyond the prior collection of STATBUF is
-   necessary); otherwise return false.  */
-static bool
-update_timespec (struct stat const *statbuf, struct timespec **ts)
-{
-  struct timespec *timespec = *ts;
-  if (timespec[0].tv_nsec == UTIME_OMIT
-      && timespec[1].tv_nsec == UTIME_OMIT)
-    return true;
-  if (timespec[0].tv_nsec == UTIME_NOW
-      && timespec[1].tv_nsec == UTIME_NOW)
-    {
-      *ts = NULL;
-      return false;
-    }
-
-  if (timespec[0].tv_nsec == UTIME_OMIT)
-    timespec[0] = get_stat_atime (statbuf);
-  else if (timespec[0].tv_nsec == UTIME_NOW)
-    gettime (&timespec[0]);
-
-  if (timespec[1].tv_nsec == UTIME_OMIT)
-    timespec[1] = get_stat_mtime (statbuf);
-  else if (timespec[1].tv_nsec == UTIME_NOW)
-    gettime (&timespec[1]);
-
-  return false;
-}
-
-/* Set the access and modification timestamps of FD (a.k.a. FILE) to be
-   TIMESPEC[0] and TIMESPEC[1], respectively.
-   FD must be either negative -- in which case it is ignored --
-   or a file descriptor that is open on FILE.
-   If FD is nonnegative, then FILE can be NULL, which means
-   use just futimes (or equivalent) instead of utimes (or equivalent),
-   and fail if on an old system without futimes (or equivalent).
-   If TIMESPEC is null, set the timestamps to the current time.
-   Return 0 on success, -1 (setting errno) on failure.  */
-
-int
-fdutimens (int fd, char const *file, struct timespec const timespec[2])
-{
-  struct timespec adjusted_timespec[2];
-  struct timespec *ts = timespec ? adjusted_timespec : NULL;
-  int adjustment_needed = 0;
-  struct stat st;
-
-  if (ts)
-    {
-      adjusted_timespec[0] = timespec[0];
-      adjusted_timespec[1] = timespec[1];
-      adjustment_needed = validate_timespec (ts);
-    }
-  if (adjustment_needed < 0)
-    return -1;
-
-  /* Require that at least one of FD or FILE are potentially valid, to avoid
-     a Linux bug where futimens (AT_FDCWD, NULL) changes "." rather
-     than failing.  */
-  if (fd < 0 && !file)
-    {
-      errno = EBADF;
-      return -1;
-    }
-
-  /* Some Linux-based NFS clients are buggy, and mishandle timestamps
-     of files in NFS file systems in some cases.  We have no
-     configure-time test for this, but please see
-     <https://bugs.gentoo.org/show_bug.cgi?id=132673> for references to
-     some of the problems with Linux 2.6.16.  If this affects you,
-     compile with -DHAVE_BUGGY_NFS_TIME_STAMPS; this is reported to
-     help in some cases, albeit at a cost in performance.  But you
-     really should upgrade your kernel to a fixed version, since the
-     problem affects many applications.  */
-
-#if HAVE_BUGGY_NFS_TIME_STAMPS
-  if (fd < 0)
-    sync ();
-  else
-    fsync (fd);
-#endif
-
-  /* POSIX 2008 added two interfaces to set file timestamps with
-     nanosecond resolution; newer Linux implements both functions via
-     a single syscall.  We provide a fallback for ENOSYS (for example,
-     compiling against Linux 2.6.25 kernel headers and glibc 2.7, but
-     running on Linux 2.6.18 kernel).  */
-#if HAVE_UTIMENSAT || HAVE_FUTIMENS
-  if (0 <= utimensat_works_really)
-    {
-      int result;
-# if defined __linux__ || defined __sun || defined __NetBSD__
-      /* As recently as Linux kernel 2.6.32 (Dec 2009), several file
-         systems (xfs, ntfs-3g) have bugs with a single UTIME_OMIT,
-         but work if both times are either explicitly specified or
-         UTIME_NOW.  Work around it with a preparatory [f]stat prior
-         to calling futimens/utimensat; fortunately, there is not much
-         timing impact due to the extra syscall even on file systems
-         where UTIME_OMIT would have worked.
-
-         The same bug occurs in Solaris 11.1 (Apr 2013).
-         The same bug occurs in NetBSD 10.0 (May 2024).
-
-         FIXME: Simplify this in 2024, when these file system bugs are
-         no longer common on Gnulib target platforms.  */
-      if (adjustment_needed == 2)
-        {
-          if (fd < 0 ? stat (file, &st) : fstat (fd, &st))
-            return -1;
-          if (ts[0].tv_nsec == UTIME_OMIT)
-            ts[0] = get_stat_atime (&st);
-          else if (ts[1].tv_nsec == UTIME_OMIT)
-            ts[1] = get_stat_mtime (&st);
-          /* Note that st is good, in case utimensat gives ENOSYS.  */
-          adjustment_needed++;
-        }
-# endif
-# if HAVE_UTIMENSAT
-      if (fd < 0)
-        {
-#  if defined __APPLE__ && defined __MACH__
-          size_t len = strlen (file);
-          if (len > 0 && file[len - 1] == '/')
-            {
-              struct stat statbuf;
-              if (stat (file, &statbuf) < 0)
-                return -1;
-              if (!S_ISDIR (statbuf.st_mode))
-                {
-                  errno = ENOTDIR;
-                  return -1;
-                }
-            }
-#  endif
-          result = utimensat (AT_FDCWD, file, ts, 0);
-#  ifdef __linux__
-          /* Work around a kernel bug:
-             https://bugzilla.redhat.com/show_bug.cgi?id=442352
-             https://bugzilla.redhat.com/show_bug.cgi?id=449910
-             It appears that utimensat can mistakenly return 280 rather
-             than -1 upon ENOSYS failure.
-             FIXME: remove in 2010 or whenever the offending kernels
-             are no longer in common use.  */
-          if (0 < result)
-            errno = ENOSYS;
-#  endif /* __linux__ */
-          if (result == 0 || errno != ENOSYS)
-            {
-              utimensat_works_really = 1;
-              return result;
-            }
-        }
-# endif /* HAVE_UTIMENSAT */
-# if HAVE_FUTIMENS
-      if (0 <= fd)
-        {
-          result = futimens (fd, ts);
-#  ifdef __linux__
-          /* Work around the same bug as above.  */
-          if (0 < result)
-            errno = ENOSYS;
-#  endif /* __linux__ */
-          if (result == 0 || errno != ENOSYS)
-            {
-              utimensat_works_really = 1;
-              return result;
-            }
-        }
-# endif /* HAVE_FUTIMENS */
-    }
-  utimensat_works_really = -1;
-  lutimensat_works_really = -1;
-#endif /* HAVE_UTIMENSAT || HAVE_FUTIMENS */
-
-#ifdef USE_SETFILETIME
-  /* On native Windows, use SetFileTime(). See
-     
<https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-setfiletime>
-     
<https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-filetime>
  */
-  if (0 <= fd)
-    {
-      HANDLE handle;
-      FILETIME current_time;
-      FILETIME last_access_time;
-      FILETIME last_write_time;
-
-      handle = (HANDLE) _get_osfhandle (fd);
-      if (handle == INVALID_HANDLE_VALUE)
-        {
-          errno = EBADF;
-          return -1;
-        }
-
-      if (ts == NULL || ts[0].tv_nsec == UTIME_NOW || ts[1].tv_nsec == 
UTIME_NOW)
-        {
-          /* GetSystemTimeAsFileTime
-             
<https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getsystemtimeasfiletime>.
-             It would be overkill to use
-             GetSystemTimePreciseAsFileTime
-             
<https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getsystemtimepreciseasfiletime>.
  */
-          GetSystemTimeAsFileTime (&current_time);
-        }
-
-      if (ts == NULL || ts[0].tv_nsec == UTIME_NOW)
-        {
-          last_access_time = current_time;
-        }
-      else if (ts[0].tv_nsec == UTIME_OMIT)
-        {
-          last_access_time.dwLowDateTime = 0;
-          last_access_time.dwHighDateTime = 0;
-        }
-      else
-        {
-          ULONGLONG time_since_16010101 =
-            (ULONGLONG) ts[0].tv_sec * 10000000 + ts[0].tv_nsec / 100 + 
116444736000000000LL;
-          last_access_time.dwLowDateTime = (DWORD) time_since_16010101;
-          last_access_time.dwHighDateTime = time_since_16010101 >> 32;
-        }
-
-      if (ts == NULL || ts[1].tv_nsec == UTIME_NOW)
-        {
-          last_write_time = current_time;
-        }
-      else if (ts[1].tv_nsec == UTIME_OMIT)
-        {
-          last_write_time.dwLowDateTime = 0;
-          last_write_time.dwHighDateTime = 0;
-        }
-      else
-        {
-          ULONGLONG time_since_16010101 =
-            (ULONGLONG) ts[1].tv_sec * 10000000 + ts[1].tv_nsec / 100 + 
116444736000000000LL;
-          last_write_time.dwLowDateTime = (DWORD) time_since_16010101;
-          last_write_time.dwHighDateTime = time_since_16010101 >> 32;
-        }
-
-      if (SetFileTime (handle, NULL, &last_access_time, &last_write_time))
-        return 0;
-      else
-        {
-          DWORD sft_error = GetLastError ();
-          #if 0
-          fprintf (stderr, "fdutimens SetFileTime error 0x%x\n", (unsigned 
int) sft_error);
-          #endif
-          switch (sft_error)
-            {
-            case ERROR_ACCESS_DENIED: /* fd was opened without O_RDWR */
-              errno = EACCES; /* not specified by POSIX */
-              break;
-            default:
-              errno = EINVAL;
-              break;
-            }
-          return -1;
-        }
-    }
-#endif
-
-  /* The platform lacks an interface to set file timestamps with
-     nanosecond resolution, so do the best we can, discarding any
-     fractional part of the timestamp.  */
-
-  if (adjustment_needed || (REPLACE_FUNC_STAT_FILE && fd < 0))
-    {
-      if (adjustment_needed != 3
-          && (fd < 0 ? stat (file, &st) : fstat (fd, &st)))
-        return -1;
-      if (ts && update_timespec (&st, &ts))
-        return 0;
-    }
-
-  {
-#if HAVE_FUTIMESAT || HAVE_WORKING_UTIMES
-    struct timeval timeval[2];
-    struct timeval *t;
-    if (ts)
-      {
-        timeval[0] = (struct timeval) { .tv_sec  = ts[0].tv_sec,
-                                        .tv_usec = ts[0].tv_nsec / 1000 };
-        timeval[1] = (struct timeval) { .tv_sec  = ts[1].tv_sec,
-                                        .tv_usec = ts[1].tv_nsec / 1000 };
-        t = timeval;
-      }
-    else
-      t = NULL;
-
-    if (fd < 0)
-      {
-# if HAVE_FUTIMESAT
-        return futimesat (AT_FDCWD, file, t);
-# endif
-      }
-    else
-      {
-        /* If futimesat or futimes fails here, don't try to speed things
-           up by returning right away.  glibc can incorrectly fail with
-           errno == ENOENT if /proc isn't mounted.  Also, Mandrake 10.0
-           in high security mode doesn't allow ordinary users to read
-           /proc/self, so glibc incorrectly fails with errno == EACCES.
-           If errno == EIO, EPERM, or EROFS, it's probably safe to fail
-           right away, but these cases are rare enough that they're not
-           worth optimizing, and who knows what other messed-up systems
-           are out there?  So play it safe and fall back on the code
-           below.  */
-
-# if (HAVE_FUTIMESAT && !FUTIMESAT_NULL_BUG) || HAVE_FUTIMES
-#  if HAVE_FUTIMESAT && !FUTIMESAT_NULL_BUG
-#   undef futimes
-#   define futimes(fd, t) futimesat (fd, NULL, t)
-#  endif
-        if (futimes (fd, t) == 0)
-          {
-#  if defined __linux__ && defined __GLIBC__
-            /* Work around a longstanding glibc bug, still present as
-               of 2010-12-27.  On older Linux kernels that lack both
-               utimensat and utimes, glibc's futimes rounds instead of
-               truncating when falling back on utime.  The same bug
-               occurs in futimesat with a null 2nd arg.  */
-            if (t)
-              {
-                bool abig = 500000 <= t[0].tv_usec;
-                bool mbig = 500000 <= t[1].tv_usec;
-                if ((abig | mbig) && fstat (fd, &st) == 0)
-                  {
-                    /* If these two subtractions overflow, they'll
-                       track the overflows inside the buggy glibc.  */
-                    time_t adiff = st.st_atime - t[0].tv_sec;
-                    time_t mdiff = st.st_mtime - t[1].tv_sec;
-
-                    struct timeval *tt = NULL;
-                    struct timeval truncated_timeval[2];
-                    truncated_timeval[0] = t[0];
-                    truncated_timeval[1] = t[1];
-                    if (abig && adiff == 1 && get_stat_atime_ns (&st) == 0)
-                      {
-                        tt = truncated_timeval;
-                        tt[0].tv_usec = 0;
-                      }
-                    if (mbig && mdiff == 1 && get_stat_mtime_ns (&st) == 0)
-                      {
-                        tt = truncated_timeval;
-                        tt[1].tv_usec = 0;
-                      }
-                    if (tt)
-                      futimes (fd, tt);
-                  }
-              }
-#  endif
-
-            return 0;
-          }
-# endif
-      }
-#endif /* HAVE_FUTIMESAT || HAVE_WORKING_UTIMES */
-
-    if (!file)
-      {
-#if ! ((HAVE_FUTIMESAT && !FUTIMESAT_NULL_BUG)          \
-        || (HAVE_WORKING_UTIMES && HAVE_FUTIMES))
-        errno = ENOSYS;
-#endif
-        return -1;
-      }
-
-#ifdef USE_SETFILETIME
-    return _gl_utimens_windows (file, ts);
-#elif HAVE_WORKING_UTIMES
-    return utimes (file, t);
-#else
-    {
-      struct utimbuf utimbuf;
-      struct utimbuf *ut;
-      if (ts)
-        {
-          utimbuf = (struct utimbuf) { .actime  = ts[0].tv_sec,
-                                       .modtime = ts[1].tv_sec };
-          ut = &utimbuf;
-        }
-      else
-        ut = NULL;
-
-      return utime (file, ut);
-    }
-#endif /* !HAVE_WORKING_UTIMES */
-  }
-}
-
-/* Set the access and modification timestamps of FILE to be
-   TIMESPEC[0] and TIMESPEC[1], respectively.  */
-int
-utimens (char const *file, struct timespec const timespec[2])
-#undef utimens
-{
-#if HAVE_UTIMENS
-  /* NetBSD's native utimens() does not fulfil the Gnulib expectations:
-     At least in NetBSD 10.0, it does not validate the timespec argument.  */
-  if (timespec != NULL && !is_valid_timespecs (timespec))
-    {
-      errno = EINVAL;
-      return -1;
-    }
-  return utimens (file, timespec);
-#else
-  return fdutimens (-1, file, timespec);
-#endif
-}
-
-/* Set the access and modification timestamps of FILE to be
-   TIMESPEC[0] and TIMESPEC[1], respectively, without dereferencing
-   symlinks.  Fail with ENOSYS if the platform does not support
-   changing symlink timestamps, but FILE was a symlink.  */
-int
-lutimens (char const *file, struct timespec const timespec[2])
-#undef lutimens
-{
-#if HAVE_LUTIMENS
-  /* NetBSD's native lutimens() does not fulfil the Gnulib expectations:
-     At least in NetBSD 10.0, it does not validate the timespec argument.  */
-  if (timespec != NULL && !is_valid_timespecs (timespec))
-    {
-      errno = EINVAL;
-      return -1;
-    }
-  return lutimens (file, timespec);
-#else
-  struct timespec adjusted_timespec[2];
-  struct timespec *ts = timespec ? adjusted_timespec : NULL;
-  int adjustment_needed = 0;
-  struct stat st;
-
-  if (ts)
-    {
-      adjusted_timespec[0] = timespec[0];
-      adjusted_timespec[1] = timespec[1];
-      adjustment_needed = validate_timespec (ts);
-    }
-  if (adjustment_needed < 0)
-    return -1;
-
-  /* The Linux kernel did not support symlink timestamps until
-     utimensat, in version 2.6.22, so we don't need to mimic
-     fdutimens' worry about buggy NFS clients.  But we do have to
-     worry about bogus return values.  */
-
-# if HAVE_UTIMENSAT
-  if (0 <= lutimensat_works_really)
-    {
-      int result;
-#  if defined __linux__ || defined __sun || defined __NetBSD__
-      /* As recently as Linux kernel 2.6.32 (Dec 2009), several file
-         systems (xfs, ntfs-3g) have bugs with a single UTIME_OMIT,
-         but work if both times are either explicitly specified or
-         UTIME_NOW.  Work around it with a preparatory lstat prior to
-         calling utimensat; fortunately, there is not much timing
-         impact due to the extra syscall even on file systems where
-         UTIME_OMIT would have worked.
-
-         The same bug occurs in Solaris 11.1 (Apr 2013).
-         The same bug occurs in NetBSD 10.0 (May 2024).
-
-         FIXME: Simplify this for Linux in 2016 and for Solaris in
-         2024, when file system bugs are no longer common.  */
-      if (adjustment_needed == 2)
-        {
-          if (lstat (file, &st))
-            return -1;
-          if (ts[0].tv_nsec == UTIME_OMIT)
-            ts[0] = get_stat_atime (&st);
-          else if (ts[1].tv_nsec == UTIME_OMIT)
-            ts[1] = get_stat_mtime (&st);
-          /* Note that st is good, in case utimensat gives ENOSYS.  */
-          adjustment_needed++;
-        }
-#  endif
-      result = utimensat (AT_FDCWD, file, ts, AT_SYMLINK_NOFOLLOW);
-#  ifdef __linux__
-      /* Work around a kernel bug:
-         https://bugzilla.redhat.com/show_bug.cgi?id=442352
-         https://bugzilla.redhat.com/show_bug.cgi?id=449910
-         It appears that utimensat can mistakenly return 280 rather
-         than -1 upon ENOSYS failure.
-         FIXME: remove in 2010 or whenever the offending kernels
-         are no longer in common use.  */
-      if (0 < result)
-        errno = ENOSYS;
-#  endif
-      if (result == 0 || errno != ENOSYS)
-        {
-          utimensat_works_really = 1;
-          lutimensat_works_really = 1;
-          return result;
-        }
-    }
-  lutimensat_works_really = -1;
-# endif /* HAVE_UTIMENSAT */
-
-  /* The platform lacks an interface to set file timestamps with
-     nanosecond resolution, so do the best we can, discarding any
-     fractional part of the timestamp.  */
-
-  if (adjustment_needed || REPLACE_FUNC_STAT_FILE)
-    {
-      if (adjustment_needed != 3 && lstat (file, &st))
-        return -1;
-      if (ts && update_timespec (&st, &ts))
-        return 0;
-    }
-
-  /* On Linux, lutimes is a thin wrapper around utimensat, so there is
-     no point trying lutimes if utimensat failed with ENOSYS.  */
-# if HAVE_LUTIMES && !HAVE_UTIMENSAT
-  {
-    struct timeval timeval[2];
-    struct timeval *t;
-    int result;
-    if (ts)
-      {
-        timeval[0] = (struct timeval) { .tv_sec = ts[0].tv_sec,
-                                        .tv_usec = ts[0].tv_nsec / 1000 };
-        timeval[1] = (struct timeval) { .tv_sec = ts[1].tv_sec,
-                                        .tv_usec = ts[1].tv_nsec / 1000 };
-        t = timeval;
-      }
-    else
-      t = NULL;
-
-    result = lutimes (file, t);
-    if (result == 0 || errno != ENOSYS)
-      return result;
-  }
-# endif /* HAVE_LUTIMES && !HAVE_UTIMENSAT */
-
-  /* Out of luck for symlinks, but we still handle regular files.  */
-  if (!(adjustment_needed || REPLACE_FUNC_STAT_FILE) && lstat (file, &st))
-    return -1;
-  if (!S_ISLNK (st.st_mode))
-    return fdutimens (-1, file, ts);
-  errno = ENOSYS;
-  return -1;
-#endif
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/utimens.h 
b/tp/Texinfo/XS/gnulib/lib/utimens.h
deleted file mode 100644
index 762c3f9a85..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/utimens.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Set file access and modification times.
-
-   Copyright 2012-2024 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/>.  */
-
-/* Written by Paul Eggert.  */
-
-/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#include <time.h>
-
-#if HAVE_UTIMENS || HAVE_LUTIMENS
-# include <sys/time.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int fdutimens (int, char const *, struct timespec const [2]);
-
-#if HAVE_UTIMENS
-# define utimens rpl_utimens
-#endif
-int utimens (char const *, struct timespec const [2]);
-
-#if HAVE_LUTIMENS
-# define lutimens rpl_lutimens
-#endif
-int lutimens (char const *, struct timespec const [2]);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#if GNULIB_FDUTIMENSAT
-
-# include <fcntl.h>
-# include <sys/stat.h>
-
-_GL_INLINE_HEADER_BEGIN
-#ifndef _GL_UTIMENS_INLINE
-# define _GL_UTIMENS_INLINE _GL_INLINE
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int fdutimensat (int fd, int dir, char const *name, struct timespec const [2],
-                 int atflag);
-
-/* Using this function makes application code slightly more readable.  */
-_GL_UTIMENS_INLINE int
-lutimensat (int dir, char const *file, struct timespec const times[2])
-{
-  return utimensat (dir, file, times, AT_SYMLINK_NOFOLLOW);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-_GL_INLINE_HEADER_END
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/windows-initguard.h 
b/tp/Texinfo/XS/gnulib/lib/windows-initguard.h
deleted file mode 100644
index 6bace3f047..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/windows-initguard.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Init guards, somewhat like spinlocks (native Windows implementation).
-   Copyright (C) 2005-2024 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 Bruno Haible <bruno@clisp.org>, 2005.
-   Based on GCC's gthr-win32.h.  */
-
-#ifndef _WINDOWS_INITGUARD_H
-#define _WINDOWS_INITGUARD_H
-
-#define WIN32_LEAN_AND_MEAN  /* avoid including junk */
-#include <windows.h>
-
-typedef struct
-        {
-          volatile int done;
-          volatile LONG started;
-        }
-        glwthread_initguard_t;
-
-#define GLWTHREAD_INITGUARD_INIT { 0, -1 }
-
-#endif /* _WINDOWS_INITGUARD_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/write.c b/tp/Texinfo/XS/gnulib/lib/write.c
deleted file mode 100644
index 59b3a7796a..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/write.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* POSIX compatible write() function.
-   Copyright (C) 2008-2024 Free Software Foundation, Inc.
-   Written by Bruno Haible <bruno@clisp.org>, 2008.
-
-   This file is free software: you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General 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>
-
-/* Specification.  */
-#include <unistd.h>
-
-/* On native Windows platforms, SIGPIPE does not exist.  When write() is
-   called on a pipe with no readers, WriteFile() fails with error
-   GetLastError() = ERROR_NO_DATA, and write() in consequence fails with
-   error EINVAL.  */
-
-#if defined _WIN32 && ! defined __CYGWIN__
-
-# include <errno.h>
-# include <signal.h>
-# include <io.h>
-
-# define WIN32_LEAN_AND_MEAN  /* avoid including junk */
-# include <windows.h>
-
-# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
-#  include "msvc-inval.h"
-# endif
-# if GNULIB_MSVC_NOTHROW
-#  include "msvc-nothrow.h"
-# else
-#  include <io.h>
-# endif
-
-/* Don't assume that UNICODE is not defined.  */
-# undef GetNamedPipeHandleState
-# define GetNamedPipeHandleState GetNamedPipeHandleStateA
-
-# undef write
-
-# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
-static ssize_t
-write_nothrow (int fd, const void *buf, size_t count)
-{
-  ssize_t result;
-
-  TRY_MSVC_INVAL
-    {
-      result = _write (fd, buf, count);
-    }
-  CATCH_MSVC_INVAL
-    {
-      result = -1;
-      errno = EBADF;
-    }
-  DONE_MSVC_INVAL;
-
-  return result;
-}
-# else
-#  define write_nothrow _write
-# endif
-
-ssize_t
-rpl_write (int fd, const void *buf, size_t count)
-{
-  for (;;)
-    {
-      ssize_t ret = write_nothrow (fd, buf, count);
-
-      if (ret < 0)
-        {
-# if GNULIB_NONBLOCKING
-          if (errno == ENOSPC)
-            {
-              HANDLE h = (HANDLE) _get_osfhandle (fd);
-              if (GetFileType (h) == FILE_TYPE_PIPE)
-                {
-                  /* h is a pipe or socket.  */
-                  DWORD state;
-                  if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL,
-                                               NULL, 0)
-                      && (state & PIPE_NOWAIT) != 0)
-                    {
-                      /* h is a pipe in non-blocking mode.
-                         We can get here in four situations:
-                           1. When the pipe buffer is full.
-                           2. When count <= pipe_buf_size and the number of
-                              free bytes in the pipe buffer is < count.
-                           3. When count > pipe_buf_size and the number of free
-                              bytes in the pipe buffer is > 0, < pipe_buf_size.
-                           4. When count > pipe_buf_size and the pipe buffer is
-                              entirely empty.
-                         The cases 1 and 2 are POSIX compliant.  In cases 3 and
-                         4 POSIX specifies that write() must split the request
-                         and succeed with a partial write.  We fix case 4.
-                         We don't fix case 3 because it is not essential for
-                         programs.  */
-                      DWORD out_size; /* size of the buffer for outgoing data 
*/
-                      DWORD in_size;  /* size of the buffer for incoming data 
*/
-                      if (GetNamedPipeInfo (h, NULL, &out_size, &in_size, 
NULL))
-                        {
-                          size_t reduced_count = count;
-                          /* In theory we need only one of out_size, in_size.
-                             But I don't know which of the two.  The 
description
-                             is ambiguous.  */
-                          if (out_size != 0 && out_size < reduced_count)
-                            reduced_count = out_size;
-                          if (in_size != 0 && in_size < reduced_count)
-                            reduced_count = in_size;
-                          if (reduced_count < count)
-                            {
-                              /* Attempt to write only the first part.  */
-                              count = reduced_count;
-                              continue;
-                            }
-                        }
-                      /* Change errno from ENOSPC to EAGAIN.  */
-                      errno = EAGAIN;
-                    }
-                }
-            }
-          else
-# endif
-            {
-# if GNULIB_SIGPIPE
-              if (GetLastError () == ERROR_NO_DATA
-                  && GetFileType ((HANDLE) _get_osfhandle (fd))
-                     == FILE_TYPE_PIPE)
-                {
-                  /* Try to raise signal SIGPIPE.  */
-                  raise (SIGPIPE);
-                  /* If it is currently blocked or ignored, change errno from
-                     EINVAL to EPIPE.  */
-                  errno = EPIPE;
-                }
-# endif
-            }
-        }
-      return ret;
-    }
-}
-
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/xalloc-die.c 
b/tp/Texinfo/XS/gnulib/lib/xalloc-die.c
deleted file mode 100644
index c053c7a8db..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/xalloc-die.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Report a memory allocation failure and exit.
-
-   Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-#include <config.h>
-
-#include "xalloc.h"
-
-#include <stdlib.h>
-
-#include <error.h>
-#include "exitfail.h"
-
-#include "gettext.h"
-#define _(msgid) gettext (msgid)
-
-void
-xalloc_die (void)
-{
-  error (exit_failure, 0, "%s", _("memory exhausted"));
-
-  /* _Noreturn cannot be given to error, since it may return if
-     its first argument is 0.  To help compilers understand the
-     xalloc_die does not return, call abort.  Also, the abort is a
-     safety feature if exit_failure is 0 (which shouldn't happen).  */
-  abort ();
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/xalloc.h 
b/tp/Texinfo/XS/gnulib/lib/xalloc.h
deleted file mode 100644
index 75a5db30bb..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/xalloc.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/* xalloc.h -- malloc with out-of-memory checking
-
-   Copyright (C) 1990-2000, 2003-2004, 2006-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-#ifndef XALLOC_H_
-#define XALLOC_H_
-
-/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _Noreturn,
-   _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_MALLOC,
-   _GL_ATTRIBUTE_RETURNS_NONNULL.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#include <stddef.h>
-#include <stdlib.h>
-
-#if GNULIB_XALLOC
-# include "idx.h"
-#endif
-
-_GL_INLINE_HEADER_BEGIN
-#ifndef XALLOC_INLINE
-# define XALLOC_INLINE _GL_INLINE
-#endif
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#if GNULIB_XALLOC_DIE
-
-/* This function is always triggered when memory is exhausted.
-   It must be defined by the application, either explicitly
-   or by using gnulib's xalloc-die module.  This is the
-   function to call when one wants the program to die because of a
-   memory allocation failure.  */
-_Noreturn void xalloc_die (void);
-
-#endif /* GNULIB_XALLOC_DIE */
-
-#if GNULIB_XALLOC
-
-void *xmalloc (size_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *ximalloc (idx_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *xinmalloc (idx_t n, idx_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *xzalloc (size_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *xizalloc (idx_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *xcalloc (size_t n, size_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *xicalloc (idx_t n, idx_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *xrealloc (void *p, size_t s)
-  _GL_ATTRIBUTE_ALLOC_SIZE ((2));
-void *xirealloc (void *p, idx_t s)
-  _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-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)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *x2realloc (void *p, size_t *ps) /* superseded by xpalloc */
-  _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *x2nrealloc (void *p, size_t *pn, size_t s) /* superseded by xpalloc */
-  _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s)
-  _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *xmemdup (void const *p, size_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-void *ximemdup (void const *p, idx_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-char *ximemdup0 (void const *p, idx_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_RETURNS_NONNULL;
-char *xstrdup (char const *str)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_RETURNS_NONNULL;
-
-/* In the following macros, T must be an elementary or structure/union or
-   typedef'ed type, or a pointer to such a type.  To apply one of the
-   following macros to a function pointer or array type, you need to typedef
-   it first and use the typedef name.  */
-
-/* Allocate an object of type T dynamically, with error checking.  */
-/* extern t *XMALLOC (typename t); */
-# define XMALLOC(t) ((t *) xmalloc (sizeof (t)))
-
-/* Allocate memory for N elements of type T, with error checking.  */
-/* extern t *XNMALLOC (size_t n, typename t); */
-# define XNMALLOC(n, t) \
-    ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t))))
-
-/* Allocate an object of type T dynamically, with error checking,
-   and zero it.  */
-/* extern t *XZALLOC (typename t); */
-# define XZALLOC(t) ((t *) xzalloc (sizeof (t)))
-
-/* Allocate memory for N elements of type T, with error checking,
-   and zero it.  */
-/* extern t *XCALLOC (size_t n, typename t); */
-# define XCALLOC(n, t) \
-    ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t))))
-
-
-/* Allocate an array of N objects, each with S bytes of memory,
-   dynamically, with error checking.  S must be nonzero.  */
-
-void *xnmalloc (size_t n, size_t s)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-
-/* 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.  */
-
-XALLOC_INLINE void *xnrealloc (void *p, size_t n, size_t s)
-  _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3));
-XALLOC_INLINE void *
-xnrealloc (void *p, size_t n, size_t s)
-{
-  return xreallocarray (p, n, s);
-}
-
-/* Return a pointer to a new buffer of N bytes.  This is like xmalloc,
-   except it returns char *.  */
-
-char *xcharalloc (size_t n)
-  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
-  _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-
-#endif /* GNULIB_XALLOC */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#if GNULIB_XALLOC && defined __cplusplus
-
-/* C++ does not allow conversions from void * to other pointer types
-   without a cast.  Use templates to work around the problem when
-   possible.  */
-
-template <typename T> inline T *
-xrealloc (T *p, size_t s)
-{
-  return (T *) xrealloc ((void *) p, 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 xreallocarray (p, n, s);
-}
-
-template <typename T> inline T *
-x2realloc (T *p, size_t *pn)
-{
-  return (T *) x2realloc ((void *) p, pn);
-}
-
-template <typename T> inline T *
-x2nrealloc (T *p, size_t *pn, size_t s)
-{
-  return (T *) x2nrealloc ((void *) p, pn, s);
-}
-
-template <typename T> inline T *
-xmemdup (T const *p, size_t s)
-{
-  return (T *) xmemdup ((void const *) p, s);
-}
-
-#endif /* GNULIB_XALLOC && C++ */
-
-
-_GL_INLINE_HEADER_END
-
-#endif /* !XALLOC_H_ */
diff --git a/tp/Texinfo/XS/gnulib/lib/xmalloc.c 
b/tp/Texinfo/XS/gnulib/lib/xmalloc.c
deleted file mode 100644
index 5befdab77c..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/xmalloc.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/* xmalloc.c -- malloc with out of memory checking
-
-   Copyright (C) 1990-2000, 2002-2006, 2008-2024 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 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-#include <config.h>
-
-#define XALLOC_INLINE _GL_EXTERN_INLINE
-
-#include "xalloc.h"
-
-#include "ialloc.h"
-#include "minmax.h"
-
-#include <stdckdint.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-
-static void * _GL_ATTRIBUTE_PURE
-check_nonnull (void *p)
-{
-  if (!p)
-    xalloc_die ();
-  return p;
-}
-
-/* Allocate S bytes of memory dynamically, with error checking.  */
-
-void *
-xmalloc (size_t s)
-{
-  return check_nonnull (malloc (s));
-}
-
-void *
-ximalloc (idx_t s)
-{
-  return check_nonnull (imalloc (s));
-}
-
-char *
-xcharalloc (size_t n)
-{
-  return XNMALLOC (n, char);
-}
-
-/* Change the size of an allocated block of memory P to S bytes,
-   with error checking.  */
-
-void *
-xrealloc (void *p, size_t s)
-{
-  void *r = realloc (p, s);
-  if (!r && (!p || s))
-    xalloc_die ();
-  return r;
-}
-
-void *
-xirealloc (void *p, idx_t s)
-{
-  return check_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 *
-xreallocarray (void *p, size_t n, size_t s)
-{
-  void *r = reallocarray (p, n, s);
-  if (!r && (!p || (n && s)))
-    xalloc_die ();
-  return r;
-}
-
-void *
-xireallocarray (void *p, idx_t n, idx_t s)
-{
-  return check_nonnull (ireallocarray (p, n, s));
-}
-
-/* Allocate an array of N objects, each with S bytes of memory,
-   dynamically, with error checking.  S must be nonzero.  */
-
-void *
-xnmalloc (size_t n, size_t s)
-{
-  return xreallocarray (NULL, n, s);
-}
-
-void *
-xinmalloc (idx_t n, idx_t s)
-{
-  return xireallocarray (NULL, 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 *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)
-{
-  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 (ckd_add (&n, n, (n >> 1) + 1))
-        xalloc_die ();
-    }
-
-  p = xreallocarray (p, n, s);
-  *pn = n;
-  return p;
-}
-
-/* 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 (ckd_add (&n, n0, n0 >> 1))
-    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
-    = (ckd_mul (&nbytes, n, s)
-       ? 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
-      && (ckd_add (&n, n0, n_incr_min)
-          || (0 <= n_max && n_max < n)
-          || ckd_mul (&nbytes, n, s)))
-    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 s)
-{
-  return xcalloc (s, 1);
-}
-
-void *
-xizalloc (idx_t s)
-{
-  return xicalloc (s, 1);
-}
-
-/* Allocate zeroed memory for N elements of S bytes, with error
-   checking.  S must be nonzero.  */
-
-void *
-xcalloc (size_t n, size_t s)
-{
-  return check_nonnull (calloc (n, s));
-}
-
-void *
-xicalloc (idx_t n, idx_t s)
-{
-  return check_nonnull (icalloc (n, s));
-}
-
-/* Clone an object P of size S, with error checking.  There's no need
-   for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any
-   need for an arithmetic overflow check.  */
-
-void *
-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 *
-xstrdup (char const *string)
-{
-  return xmemdup (string, strlen (string) + 1);
-}
diff --git a/tp/Texinfo/XS/gnulib/m4/acl.m4 b/tp/Texinfo/XS/gnulib/m4/acl.m4
deleted file mode 100644
index 3e8d8219d1..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/acl.m4
+++ /dev/null
@@ -1,245 +0,0 @@
-# acl.m4
-# serial 33
-dnl Copyright (C) 2002, 2004-2024 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 This file is offered as-is, without any warranty.
-
-# Check for access control list (ACL) primitives
-
-# Written by Paul Eggert and Jim Meyering.
-
-AC_DEFUN([gl_FUNC_ACL_ARG],
-[
-  gl_need_lib_has_acl=
-  AC_ARG_ENABLE([acl],
-    AS_HELP_STRING([[--disable-acl]], [do not support ACLs]),
-    , [enable_acl=auto])
-  AC_ARG_WITH([libsmack],
-    [AS_HELP_STRING([--without-libsmack],
-       [do not use libsmack, even on systems that have it])]
-    [], [with_libsmack=maybe])
-])
-
-AC_DEFUN_ONCE([gl_FUNC_ACL],
-[
-  AC_REQUIRE([gl_FUNC_ACL_ARG])
-  AC_CHECK_FUNCS_ONCE([fchmod])
-  LIB_ACL=
-  use_acl=0
-  if test "$enable_acl" != no; then
-    dnl On all platforms, the ACL related API is declared in <sys/acl.h>.
-    AC_CHECK_HEADERS([sys/acl.h])
-    if test $ac_cv_header_sys_acl_h = yes; then
-      gl_saved_LIBS=$LIBS
-
-      dnl Test for POSIX-draft-like API (GNU/Linux, FreeBSD, Mac OS X,
-      dnl IRIX, Tru64, Cygwin >= 2.5).
-      dnl -lacl is needed on GNU/Linux, -lpacl on OSF/1.
-      if test $use_acl = 0; then
-        AC_SEARCH_LIBS([acl_get_file], [acl pacl],
-          [if test "$ac_cv_search_acl_get_file" != "none required"; then
-             LIB_ACL=$ac_cv_search_acl_get_file
-           fi
-           AC_CHECK_FUNCS(
-             [acl_get_file acl_get_fd acl_set_file acl_set_fd \
-              acl_free acl_from_mode acl_from_text \
-              acl_delete_def_file acl_extended_file \
-              acl_delete_fd_np acl_delete_file_np \
-              acl_copy_ext_native acl_create_entry_np \
-              acl_to_short_text acl_free_text])
-           # If the acl_get_file bug is detected, don't enable the ACL support.
-           gl_ACL_GET_FILE([use_acl=1], [])
-           if test $use_acl = 1; then
-             dnl On GNU/Linux, an additional API is declared in <acl/libacl.h>.
-             AC_CHECK_HEADERS([acl/libacl.h])
-             AC_REPLACE_FUNCS([acl_entries])
-             AC_CACHE_CHECK([for ACL_FIRST_ENTRY],
-               [gl_cv_acl_ACL_FIRST_ENTRY],
-               [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-[[#include <sys/types.h>
-#include <sys/acl.h>
-int type = ACL_FIRST_ENTRY;]])],
-                  [gl_cv_acl_ACL_FIRST_ENTRY=yes],
-                  [gl_cv_acl_ACL_FIRST_ENTRY=no])])
-             if test $gl_cv_acl_ACL_FIRST_ENTRY = yes; then
-               AC_DEFINE([HAVE_ACL_FIRST_ENTRY], [1],
-                 [Define to 1 if the constant ACL_FIRST_ENTRY exists.])
-             fi
-             dnl On Mac OS X, other types of ACLs are supported.
-             AC_CACHE_CHECK([for ACL_TYPE_EXTENDED],
-               [gl_cv_acl_ACL_TYPE_EXTENDED],
-               [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-[[#include <sys/types.h>
-#include <sys/acl.h>
-int type = ACL_TYPE_EXTENDED;]])],
-                  [gl_cv_acl_ACL_TYPE_EXTENDED=yes],
-                  [gl_cv_acl_ACL_TYPE_EXTENDED=no])])
-             if test $gl_cv_acl_ACL_TYPE_EXTENDED = yes; then
-               AC_DEFINE([HAVE_ACL_TYPE_EXTENDED], [1],
-                 [Define to 1 if the ACL type ACL_TYPE_EXTENDED exists.])
-             fi
-           else
-             LIB_ACL=
-           fi
-          ])
-      fi
-
-      dnl Test for Solaris API (Solaris, Cygwin).
-      if test $use_acl = 0; then
-        AC_CHECK_FUNCS([facl])
-        if test $ac_cv_func_facl = yes; then
-          AC_SEARCH_LIBS([acl_trivial], [sec],
-            [if test "$ac_cv_search_acl_trivial" != "none required"; then
-               LIB_ACL=$ac_cv_search_acl_trivial
-             fi
-            ])
-          AC_CHECK_FUNCS([acl_trivial])
-          use_acl=1
-        fi
-      fi
-
-      dnl Test for HP-UX API.
-      if test $use_acl = 0; then
-        AC_CHECK_FUNCS([getacl])
-        if test $ac_cv_func_getacl = yes; then
-          use_acl=1
-        fi
-        dnl Test for HP-UX 11.11 API.
-        AC_CHECK_HEADERS([aclv.h], [], [], [#include <sys/types.h>])
-      fi
-
-      dnl Test for AIX API (AIX 5.3 or newer).
-      if test $use_acl = 0; then
-        AC_CHECK_FUNCS([aclx_get])
-        if test $ac_cv_func_aclx_get = yes; then
-          use_acl=1
-        fi
-      fi
-
-      dnl Test for older AIX API.
-      if test $use_acl = 0 || test "$ac_cv_func_aclx_get" = yes; then
-        AC_CHECK_FUNCS([statacl])
-        if test $ac_cv_func_statacl = yes; then
-          use_acl=1
-        fi
-      fi
-
-      dnl Test for NonStop Kernel API.
-      if test $use_acl = 0; then
-        AC_CHECK_FUNCS([aclsort])
-        if test $ac_cv_func_aclsort = yes; then
-          use_acl=1
-        fi
-      fi
-
-      LIBS=$gl_saved_LIBS
-    fi
-
-    if test "$enable_acl$use_acl" = yes0; then
-      AC_MSG_ERROR([ACLs enabled but support not detected])
-    elif test "$enable_acl$use_acl" = auto0; then
-      AC_MSG_WARN([libacl development library was not found or not usable.])
-      AC_MSG_WARN([AC_PACKAGE_NAME will be built without ACL support.])
-    fi
-  fi
-  if test -n "$gl_need_lib_has_acl"; then
-    FILE_HAS_ACL_LIB=$LIB_ACL
-  fi
-  AC_SUBST([LIB_ACL])
-  AC_DEFINE_UNQUOTED([USE_ACL], [$use_acl],
-    [Define to nonzero if you want access control list support.])
-  USE_ACL=$use_acl
-  AC_SUBST([USE_ACL])
-])
-
-# gl_ACL_GET_FILE(IF-WORKS, IF-NOT)
-# ---------------------------------
-# If 'acl_get_file' works (does not have a particular bug),
-# run IF-WORKS, otherwise, IF-NOT.
-# When building natively, test for a Darwin 8.7.0 bug, whereby acl_get_file
-# returns NULL, but sets errno = ENOENT for an existing file or directory.
-# When cross-compiling, assume that this old bug no longer applies.
-AC_DEFUN([gl_ACL_GET_FILE],
-[
-  AC_CACHE_CHECK([for working acl_get_file], [gl_cv_func_working_acl_get_file],
-    [gl_cv_func_working_acl_get_file=no
-     AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <sys/types.h>
-           #include <sys/acl.h>
-           #include <errno.h>
-          ]],
-          [[acl_t acl = acl_get_file (".", ACL_TYPE_ACCESS);
-            return acl ? acl_free (acl) != 0 : errno == ENOENT;
-          ]])],
-       [if test $cross_compiling = yes; then
-          gl_cv_func_working_acl_get_file="guessing yes"
-        elif ./conftest$ac_exeext; then
-          gl_cv_func_working_acl_get_file=yes
-        fi])])
-  AS_IF([test "$gl_cv_func_working_acl_get_file" != no], [$1], [$2])
-])
-
-# Prerequisites of module file-has-acl.
-AC_DEFUN([gl_FILE_HAS_ACL],
-[
-  AC_REQUIRE([gl_FUNC_ACL_ARG])
-  # On GNU/Linux, testing if a file has an acl can be done with the
-  # listxattr and getxattr syscalls, which don't require linking
-  # against additional libraries.  Assume this works if linux/attr.h
-  # and listxattr are present.
-  AC_CHECK_HEADERS_ONCE([linux/xattr.h])
-  AC_CHECK_FUNCS_ONCE([listxattr])
-  FILE_HAS_ACL_LIB=
-
-  gl_file_has_acl_uses_smack=no
-  
AS_CASE([$enable_acl,$with_libsmack,$ac_cv_header_linux_xattr_h,$ac_cv_func_listxattr],
-    [no,* | *,no,*], [],
-    [*,*,yes,yes],
-      [AC_CHECK_HEADER([sys/smack.h],
-         [gl_saved_LIBS=$LIBS
-          AC_SEARCH_LIBS([smack_new_label_from_path], [smack],
-            [AC_DEFINE([HAVE_SMACK], [1],
-               [Define to 1 if libsmack is usable.])
-             AS_CASE([$ac_cv_search_smack_new_label_from_path],
-               ["none required"], [],
-               [FILE_HAS_ACL_LIB=$ac_cv_search_new_label_from_path])
-             gl_file_has_acl_uses_smack=yes],
-            [AS_CASE([$with_libsmack],
-               [yes], [AC_MSG_ERROR([libsmack not found or unusable])])])
-          LIBS=$gl_saved_LIBS])])
-
-  gl_file_has_acl_uses_selinux=no
-  
AS_CASE([$enable_acl,$with_selinux,$ac_cv_header_linux_xattr_h,$ac_cv_func_listxattr],
-    [no,* | *,no,*], [],
-    [*,*,yes,yes],
-      [AC_REQUIRE([gl_CHECK_HEADER_SELINUX_SELINUX_H])
-       AS_IF([test $USE_SELINUX_SELINUX_H = 1],
-         [FILE_HAS_ACL_LIB="$FILE_HAS_ACL_LIB $LIB_SELINUX"
-          gl_file_has_acl_uses_selinux=yes])])
-
-  
AS_CASE([$enable_acl,$gl_file_has_acl_uses_selinux,$gl_file_has_acl_uses_smack],
-    [no,* | *,yes,* | *,yes], [],
-    [*],
-      [dnl Set gl_need_lib_has_acl to a nonempty value, so that any
-       dnl later gl_FUNC_ACL call will set FILE_HAS_ACL_LIB=$LIB_ACL.
-       gl_need_lib_has_acl=1
-       FILE_HAS_ACL_LIB=$LIB_ACL])
-  AC_SUBST([FILE_HAS_ACL_LIB])
-])
-
-# Prerequisites of module qcopy-acl.
-AC_DEFUN([gl_QCOPY_ACL],
-[
-  AC_REQUIRE([gl_FUNC_ACL])
-  AC_CHECK_HEADERS_ONCE([linux/xattr.h])
-  gl_FUNC_XATTR
-  if test "$use_xattr" = yes; then
-    QCOPY_ACL_LIB="$LIB_XATTR"
-  else
-    QCOPY_ACL_LIB="$LIB_ACL"
-  fi
-  AC_SUBST([QCOPY_ACL_LIB])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/c32rtomb.m4 
b/tp/Texinfo/XS/gnulib/m4/c32rtomb.m4
deleted file mode 100644
index d880210cd7..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/c32rtomb.m4
+++ /dev/null
@@ -1,187 +0,0 @@
-# c32rtomb.m4
-# serial 8
-dnl Copyright (C) 2020-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_C32RTOMB],
-[
-  AC_REQUIRE([gl_UCHAR_H_DEFAULTS])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
-  AC_REQUIRE([gl_MBRTOC32_SANITYCHECK])
-  AC_REQUIRE([gl_C32RTOMB_SANITYCHECK])
-
-  AC_REQUIRE([gl_CHECK_FUNC_C32RTOMB])
-  if test $gl_cv_func_c32rtomb = no; then
-    HAVE_C32RTOMB=0
-  else
-    dnl When we override mbrtoc32, redefining the meaning of the char32_t
-    dnl values, we need to override c32rtomb as well, for consistency.
-    if test $HAVE_WORKING_MBRTOC32 = 0; then
-      REPLACE_C32RTOMB=1
-    fi
-    AC_CACHE_CHECK([whether c32rtomb return value is correct],
-      [gl_cv_func_c32rtomb_retval],
-      [
-        dnl Initial guess, used when cross-compiling.
-changequote(,)dnl
-        case "$host_os" in
-          # Guess no on AIX.
-          aix*) gl_cv_func_c32rtomb_retval="guessing no" ;;
-          # Guess yes otherwise.
-          *)    gl_cv_func_c32rtomb_retval="guessing yes" ;;
-        esac
-changequote([,])dnl
-        AC_RUN_IFELSE(
-          [AC_LANG_SOURCE([[
-#include <stddef.h>
-#ifdef __HAIKU__
- #include <stdint.h>
-#endif
-#include <uchar.h>
-int main ()
-{
-  int result = 0;
-  if (c32rtomb (NULL, 0, NULL) != 1)
-    result |= 1;
-  return result;
-}]])],
-          [gl_cv_func_c32rtomb_retval=yes],
-          [gl_cv_func_c32rtomb_retval=no],
-          [:])
-      ])
-    case "$gl_cv_func_c32rtomb_retval" in
-      *yes) ;;
-      *) AC_DEFINE([C32RTOMB_RETVAL_BUG], [1],
-           [Define if the c32rtomb function has an incorrect return value.])
-         REPLACE_C32RTOMB=1 ;;
-    esac
-    if test $HAVE_WORKING_C32RTOMB = 0; then
-      REPLACE_C32RTOMB=1
-    fi
-  fi
-])
-
-AC_DEFUN([gl_CHECK_FUNC_C32RTOMB],
-[
-  dnl Cf. gl_CHECK_FUNCS_ANDROID
-  AC_CHECK_DECL([c32rtomb], , ,
-    [[#ifdef __HAIKU__
-       #include <stdint.h>
-      #endif
-      #include <uchar.h>
-    ]])
-  if test $ac_cv_have_decl_c32rtomb = yes; then
-    dnl We can't use AC_CHECK_FUNC here, because c32rtomb() is defined as a
-    dnl static inline function on Haiku 2020.
-    AC_CACHE_CHECK([for c32rtomb], [gl_cv_func_c32rtomb],
-      [AC_LINK_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[#include <stdlib.h>
-              #ifdef __HAIKU__
-               #include <stdint.h>
-              #endif
-              #include <uchar.h>
-            ]],
-            [[char buf[8];
-              return c32rtomb (buf, 0, NULL) == 0;
-            ]])
-         ],
-         [gl_cv_func_c32rtomb=yes],
-         [gl_cv_func_c32rtomb=no])
-      ])
-  else
-    gl_cv_func_c32rtomb=no
-  fi
-])
-
-dnl Test whether c32rtomb works not worse than wcrtomb.
-dnl Result is HAVE_WORKING_C32RTOMB.
-
-AC_DEFUN([gl_C32RTOMB_SANITYCHECK],
-[
-  AC_REQUIRE([AC_PROG_CC])
-  AC_REQUIRE([gl_TYPE_CHAR32_T])
-  AC_REQUIRE([gl_CHECK_FUNC_C32RTOMB])
-  AC_REQUIRE([gt_LOCALE_ZH_CN])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  if test $GNULIBHEADERS_OVERRIDE_CHAR32_T = 1 || test $gl_cv_func_c32rtomb = 
no; then
-    HAVE_WORKING_C32RTOMB=0
-  else
-    AC_CACHE_CHECK([whether c32rtomb works as well as wcrtomb],
-      [gl_cv_func_c32rtomb_sanitycheck],
-      [
-        dnl Initial guess, used when cross-compiling or when no suitable locale
-        dnl is present.
-changequote(,)dnl
-        case "$host_os" in
-          # Guess no on Solaris derivatives.
-          solaris*)
-            if test -f /etc/release && grep 'Oracle Solaris' /etc/release 
>/dev/null; then
-              gl_cv_func_c32rtomb_sanitycheck="guessing yes"
-            else
-              gl_cv_func_c32rtomb_sanitycheck="guessing no"
-            fi
-            ;;
-          # Guess yes otherwise.
-          *)
-            gl_cv_func_c32rtomb_sanitycheck="guessing yes"
-            ;;
-        esac
-changequote([,])dnl
-        if test $LOCALE_ZH_CN != none; then
-          AC_RUN_IFELSE(
-            [AC_LANG_SOURCE([[
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-#ifdef __HAIKU__
- #include <stdint.h>
-#endif
-#include <uchar.h>
-int main ()
-{
-  int result = 0;
-  /* This fails on Solaris 11 OmniOS:
-     c32rtomb returns (size_t)-1.
-     wcrtomb returns 4 (correct).  */
-  if (strcmp ("$LOCALE_ZH_CN", "none") != 0
-      && setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      mbstate_t state;
-      wchar_t wc = (wchar_t) 0xBADFACE;
-      char buf[16];
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, "\201\060\211\070", 4, &state) == 4
-          && wcrtomb (buf, wc, NULL) == 4
-          && memcmp (buf, "\201\060\211\070", 4) == 0)
-        {
-          char32_t c32 = (wchar_t) 0xBADFACE;
-          memset (&state, '\0', sizeof (mbstate_t));
-          if (mbrtoc32 (&c32, "\201\060\211\070", 4, &state) == 4
-              && c32rtomb (buf, c32, NULL) != 4)
-            result |= 1;
-        }
-    }
-  return result;
-}]])],
-            [gl_cv_func_c32rtomb_sanitycheck=yes],
-            [gl_cv_func_c32rtomb_sanitycheck=no],
-            [:])
-        fi
-      ])
-    case "$gl_cv_func_c32rtomb_sanitycheck" in
-      *yes)
-        HAVE_WORKING_C32RTOMB=1
-        AC_DEFINE([HAVE_WORKING_C32RTOMB], [1],
-          [Define if the c32rtomb function basically works.])
-        ;;
-      *) HAVE_WORKING_C32RTOMB=0 ;;
-    esac
-  fi
-  AC_SUBST([HAVE_WORKING_C32RTOMB])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/calloc.m4 
b/tp/Texinfo/XS/gnulib/m4/calloc.m4
deleted file mode 100644
index 77b0d9fd91..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/calloc.m4
+++ /dev/null
@@ -1,89 +0,0 @@
-# calloc.m4
-# serial 34
-dnl Copyright (C) 2004-2024 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 This file is offered as-is, without any warranty.
-
-# 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* | midipix*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
-                             # Guess yes on native Windows.
-         mingw* | windows*)  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])
-
-  dnl Through the dependency on module extensions-aix, _LINUX_SOURCE_COMPAT
-  dnl gets defined already before this macro gets invoked.  This helps
-  dnl if !(__VEC__ || __AIXVEC), and doesn't hurt otherwise.
-
-  REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX"
-  if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 0; then
-    _AC_FUNC_CALLOC_IF([], [REPLACE_CALLOC_FOR_CALLOC_GNU=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_FOR_MALLOC_POSIX = 1; then
-    REPLACE_CALLOC_FOR_CALLOC_POSIX=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'.
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/clock_time.m4 
b/tp/Texinfo/XS/gnulib/m4/clock_time.m4
deleted file mode 100644
index 330883f7b8..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/clock_time.m4
+++ /dev/null
@@ -1,55 +0,0 @@
-# clock_time.m4
-# serial 14
-dnl Copyright (C) 2002-2006, 2009-2024 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 This file is offered as-is, without any warranty.
-
-# Check for clock_getres, clock_gettime and clock_settime,
-# and set CLOCK_TIME_LIB.
-# For a program named, say foo, you should add a line like the following
-# in the corresponding Makefile.am file:
-# foo_LDADD = $(LDADD) $(CLOCK_TIME_LIB)
-
-AC_DEFUN([gl_CLOCK_TIME],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
-  dnl Persuade glibc and Solaris <time.h> to declare these functions.
-  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-
-  # On mingw, these functions are defined in the libwinpthread library,
-  # which is better avoided.  In fact, the clock_gettime function is buggy
-  # in 32-bit mingw, when -D__MINGW_USE_VC2005_COMPAT is used (which Gnulib's
-  # year2038 module does): It leaves the upper 32 bits of the tv_sec field
-  # of the result uninitialized.
-
-  # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
-  # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
-
-  # Save and restore LIBS so e.g., -lrt, isn't added to it.  Otherwise, *all*
-  # programs in the package would end up linked with that potentially-shared
-  # library, inducing unnecessary run-time overhead.
-  CLOCK_TIME_LIB=
-  AC_SUBST([CLOCK_TIME_LIB])
-  case "$host_os" in
-    mingw* | windows*)
-      ac_cv_func_clock_getres=no
-      ac_cv_func_clock_gettime=no
-      ac_cv_func_clock_settime=no
-      ;;
-    *)
-      gl_saved_libs=$LIBS
-        AC_SEARCH_LIBS([clock_gettime], [rt posix4],
-                       [test "$ac_cv_search_clock_gettime" = "none required" ||
-                        CLOCK_TIME_LIB=$ac_cv_search_clock_gettime])
-        AC_CHECK_FUNCS([clock_getres clock_gettime clock_settime])
-      LIBS=$gl_saved_libs
-      ;;
-  esac
-
-  # For backward compatibility.
-  LIB_CLOCK_GETTIME="$CLOCK_TIME_LIB"
-  AC_SUBST([LIB_CLOCK_GETTIME])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/copy-file-range.m4 
b/tp/Texinfo/XS/gnulib/m4/copy-file-range.m4
deleted file mode 100644
index dc13ff422f..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/copy-file-range.m4
+++ /dev/null
@@ -1,60 +0,0 @@
-# copy-file-range.m4
-# serial 5
-dnl Copyright 2019-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_COPY_FILE_RANGE],
-[
-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
-  dnl Persuade glibc <unistd.h> to declare copy_file_range.
-  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-
-  dnl Use AC_LINK_IFELSE, rather than AC_CHECK_FUNCS or a variant,
-  dnl since we don't want AC_CHECK_FUNCS's checks for glibc stubs.
-  dnl Programs that use copy_file_range must fall back on read+write
-  dnl anyway, and there's little point to substituting the Gnulib stub
-  dnl for a glibc stub.
-  case "$host_os" in
-    *-gnu* | gnu*)
-      AC_CACHE_CHECK([for copy_file_range], [gl_cv_func_copy_file_range],
-        [AC_LINK_IFELSE(
-           [AC_LANG_PROGRAM(
-              [[#include <unistd.h>
-              ]],
-              [[ssize_t (*func) (int, off_t *, int, off_t *, size_t, unsigned)
-                  = copy_file_range;
-                return func (0, 0, 0, 0, 0, 0) & 127;
-              ]])
-           ],
-           [gl_cv_func_copy_file_range=yes],
-           [gl_cv_func_copy_file_range=no])
-        ])
-      gl_cv_onwards_func_copy_file_range="$gl_cv_func_copy_file_range"
-      ;;
-    *)
-      gl_CHECK_FUNCS_ANDROID([copy_file_range], [[#include <unistd.h>]])
-      gl_cv_func_copy_file_range="$ac_cv_func_copy_file_range"
-      ;;
-  esac
-  if test "$gl_cv_func_copy_file_range" != yes; then
-    HAVE_COPY_FILE_RANGE=0
-    case "$gl_cv_onwards_func_copy_file_range" in
-      future*) REPLACE_COPY_FILE_RANGE=1 ;;
-    esac
-  else
-    AC_DEFINE([HAVE_COPY_FILE_RANGE], 1,
-      [Define to 1 if the function copy_file_range exists.])
-
-    case $host_os in
-      linux*)
-        # See copy-file-range.c comment re pre-5.3 Linux kernel bugs.
-        # We should be able to remove this hack in 2025.
-        REPLACE_COPY_FILE_RANGE=1;;
-    esac
-  fi
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/copy-file.m4 
b/tp/Texinfo/XS/gnulib/m4/copy-file.m4
deleted file mode 100644
index b745a3e56e..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/copy-file.m4
+++ /dev/null
@@ -1,13 +0,0 @@
-# copy-file.m4
-# serial 5
-dnl Copyright (C) 2003, 2009-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_COPY_FILE],
-[
-  AC_CHECK_HEADERS_ONCE([unistd.h])
-  AC_CHECK_FUNCS([chown])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/double-slash-root.m4 
b/tp/Texinfo/XS/gnulib/m4/double-slash-root.m4
deleted file mode 100644
index 93572ac99a..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/double-slash-root.m4
+++ /dev/null
@@ -1,40 +0,0 @@
-# double-slash-root.m4
-# serial 4   -*- Autoconf -*-
-dnl Copyright (C) 2006, 2008-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_DOUBLE_SLASH_ROOT],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_CACHE_CHECK([whether // is distinct from /], [gl_cv_double_slash_root],
-    [ if test x"$cross_compiling" = xyes ; then
-        # When cross-compiling, there is no way to tell whether // is special
-        # short of a list of hosts.  However, the only known hosts to date
-        # that have a distinct // are Apollo DomainOS (too old to port to),
-        # Cygwin, and z/OS.  If anyone knows of another system for which // has
-        # special semantics and is distinct from /, please report it to
-        # <bug-gnulib@gnu.org>.
-        case $host in
-          *-cygwin | i370-ibm-openedition)
-            gl_cv_double_slash_root=yes ;;
-          *)
-            # Be optimistic and assume that / and // are the same when we
-            # don't know.
-            gl_cv_double_slash_root='unknown, assuming no' ;;
-        esac
-      else
-        set x `ls -di / // 2>/dev/null`
-        if test "$[2]" = "$[4]" && wc //dev/null >/dev/null 2>&1; then
-          gl_cv_double_slash_root=no
-        else
-          gl_cv_double_slash_root=yes
-        fi
-      fi])
-  if test "$gl_cv_double_slash_root" = yes; then
-    AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], [1],
-      [Define to 1 if // is a file system root distinct from /.])
-  fi
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/error.m4 b/tp/Texinfo/XS/gnulib/m4/error.m4
deleted file mode 100644
index 829aee79d4..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/error.m4
+++ /dev/null
@@ -1,22 +0,0 @@
-# error.m4
-# serial 16
-dnl Copyright (C) 1996-1998, 2001-2004, 2009-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_ERROR],
-[
-])
-
-# Prerequisites of lib/error.c.
-AC_DEFUN([gl_PREREQ_ERROR],
-[
-  dnl Use system extensions on Android, so that AC_FUNC_STRERROR_R
-  dnl discovers the GNU API for strerror_r on Android API level 23 and later.
-  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-
-  AC_REQUIRE([AC_FUNC_STRERROR_R])
-  :
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/error_h.m4 
b/tp/Texinfo/XS/gnulib/m4/error_h.m4
deleted file mode 100644
index a07a508fb6..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/error_h.m4
+++ /dev/null
@@ -1,129 +0,0 @@
-# error_h.m4
-# serial 5
-dnl Copyright (C) 1996-2024 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 This file is offered as-is, without any warranty.
-
-dnl From Bruno Haible.
-dnl Provide a working <error.h>.
-
-AC_DEFUN_ONCE([gl_ERROR_H],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-
-  gl_CHECK_NEXT_HEADERS([error.h])
-  if test $ac_cv_header_error_h = yes; then
-    HAVE_ERROR_H=1
-  else
-    HAVE_ERROR_H=0
-  fi
-  AC_SUBST([HAVE_ERROR_H])
-
-  REPLACE_ERROR=0
-
-  gl_CHECK_FUNCS_ANDROID([error], [[#include <error.h>]])
-  if test $ac_cv_func_error = yes; then
-    HAVE_ERROR=1
-  else
-    HAVE_ERROR=0
-    case "$gl_cv_onwards_func_error" in
-      future*) REPLACE_ERROR=1 ;;
-    esac
-  fi
-
-  dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer
-  dnl maintained in Autoconf and because it invokes AC_LIBOBJ.
-  dnl We need to notice a missing declaration, like gl_CHECK_FUNCS_ANDROID 
does.
-  AC_CHECK_DECL([error_at_line], , , [[#include <error.h>]])
-  if test $ac_cv_have_decl_error_at_line = yes; then
-    AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line],
-      [AC_LINK_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[#include <error.h>]],
-            [[error_at_line (0, 0, "", 0, "an error occurred");]])],
-         [ac_cv_lib_error_at_line=yes],
-         [ac_cv_lib_error_at_line=no])])
-  else
-    ac_cv_lib_error_at_line=no
-  fi
-  if test $ac_cv_lib_error_at_line = yes; then
-    HAVE_ERROR_AT_LINE=1
-  else
-    HAVE_ERROR_AT_LINE=0
-  fi
-  REPLACE_ERROR_AT_LINE=0
-
-  if test $ac_cv_func_error = yes && test $ac_cv_lib_error_at_line = yes; then
-    dnl On Android 11, when error_print_progname is set, the output of the
-    dnl error() function contains an extra space.
-    AC_CACHE_CHECK([for working error function],
-      [gl_cv_func_working_error],
-      [if test $cross_compiling != yes; then
-         AC_LINK_IFELSE(
-           [AC_LANG_PROGRAM([[
-              #include <error.h>
-              static void print_no_progname (void) {}
-            ]], [[
-              error_print_progname = print_no_progname;
-              error (0, 0, "foo");
-            ]])
-           ],
-           [rm -f conftest.out
-            if test -s conftest$ac_exeext \
-               && ./conftest$ac_exeext 2> conftest.out; then
-              if grep ' ' conftest.out >/dev/null; then
-                gl_cv_func_working_error=no
-              else
-                gl_cv_func_working_error=yes
-              fi
-            else
-              gl_cv_func_working_error=no
-            fi
-            rm -f conftest.out
-           ],
-           [gl_cv_func_working_error=no])
-       else
-         AC_COMPILE_IFELSE(
-           [AC_LANG_PROGRAM([[
-              #include <error.h>
-            ]], [[
-              error (0, 0, "foo");
-            ]])
-           ],
-           [case "$host_os" in
-                               # Guess yes on glibc systems.
-              *-gnu* | gnu*)   gl_cv_func_working_error="guessing yes" ;;
-                               # Guess no on Android.
-              linux*-android*) gl_cv_func_working_error="guessing no" ;;
-                               # If we don't know, obey --enable-cross-guesses.
-              *)               
gl_cv_func_working_error="$gl_cross_guess_normal" ;;
-            esac
-           ],
-           [gl_cv_func_working_error=no])
-       fi
-      ])
-    case "$gl_cv_func_working_error" in
-      *no)
-        REPLACE_ERROR=1
-        REPLACE_ERROR_AT_LINE=1
-        ;;
-    esac
-  fi
-
-  m4_ifdef([gl_HAVE_MODULE_VERROR],
-    [COMPILE_ERROR_C=1],
-    [if test $HAVE_ERROR = 0 || test $REPLACE_ERROR = 1 \
-        || test $HAVE_ERROR_AT_LINE = 0 \
-        || test $REPLACE_ERROR_AT_LINE = 1; then
-       COMPILE_ERROR_C=1
-     else
-       COMPILE_ERROR_C=0
-     fi])
-
-  AC_SUBST([HAVE_ERROR])
-  AC_SUBST([HAVE_ERROR_AT_LINE])
-  AC_SUBST([REPLACE_ERROR])
-  AC_SUBST([REPLACE_ERROR_AT_LINE])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/fstat.m4 b/tp/Texinfo/XS/gnulib/m4/fstat.m4
deleted file mode 100644
index 4753cd6fbd..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/fstat.m4
+++ /dev/null
@@ -1,42 +0,0 @@
-# fstat.m4
-# serial 10
-dnl Copyright (C) 2011-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_FSTAT],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
-
-  case "$host_os" in
-    darwin* | mingw* | windows* | solaris*)
-      dnl macOS and Solaris stat can return a negative tv_nsec.
-      dnl On MinGW, the original stat() returns st_atime, st_mtime,
-      dnl st_ctime values that are affected by the time zone.
-      REPLACE_FSTAT=1
-      ;;
-  esac
-
-  dnl Replace fstat() for supporting the gnulib-defined open() on directories.
-  m4_ifdef([gl_FUNC_FCHDIR], [
-    gl_TEST_FCHDIR
-    if test $HAVE_FCHDIR = 0; then
-      case "$gl_cv_func_open_directory_works" in
-        *yes) ;;
-        *)
-          REPLACE_FSTAT=1
-          ;;
-      esac
-    fi
-  ])
-])
-
-# Prerequisites of lib/fstat.c and lib/stat-w32.c.
-AC_DEFUN([gl_PREREQ_FSTAT], [
-  AC_REQUIRE([gl_SYS_STAT_H])
-  AC_REQUIRE([gl_PREREQ_STAT_W32])
-  :
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/getprogname.m4 
b/tp/Texinfo/XS/gnulib/m4/getprogname.m4
deleted file mode 100644
index 5398497341..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/getprogname.m4
+++ /dev/null
@@ -1,61 +0,0 @@
-# getprogname.m4
-# serial 8
-dnl Copyright (C) 2016-2024 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 This file is offered as-is, without any warranty.
-
-# Check for getprogname or replacements for it
-
-AC_DEFUN([gl_FUNC_GETPROGNAME],
-[
-  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
-  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  gl_CHECK_FUNCS_ANDROID([getprogname], [[#include <stdlib.h>]])
-  if test $ac_cv_func_getprogname = no; then
-    HAVE_GETPROGNAME=0
-    case "$gl_cv_onwards_func_getprogname" in
-      future*) REPLACE_GETPROGNAME=1 ;;
-    esac
-  fi
-  AC_CHECK_DECLS([program_invocation_name],
-    [],
-    [HAVE_DECL_PROGRAM_INVOCATION_NAME=0],
-    [[#include <errno.h>]])
-])
-
-AC_DEFUN([gl_PREREQ_GETPROGNAME],
-[
-  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  AC_CHECK_FUNCS_ONCE([getexecname])
-  ac_found=0
-  AC_CHECK_DECLS([program_invocation_name], [ac_found=1], [],
-    [#include <errno.h>])
-  AC_CHECK_DECLS([program_invocation_short_name], [ac_found=1], [],
-    [#include <errno.h>])
-  AC_CHECK_DECLS([__argv], [ac_found=1], [], [#include <stdlib.h>])
-
-  # Incur the cost of this test only if none of the above worked.
-  if test $ac_found = 0; then
-    # On OpenBSD 5.1, using the global __progname variable appears to be
-    # the only way to implement getprogname.
-    AC_CACHE_CHECK([whether __progname is defined in default libraries],
-      [gl_cv_var___progname],
-      [
-        gl_cv_var___progname=
-        AC_LINK_IFELSE(
-          [AC_LANG_PROGRAM(
-            [[extern char *__progname;]],
-            [[return *__progname;]]
-          )],
-          [gl_cv_var___progname=yes]
-        )
-      ]
-    )
-    if test "$gl_cv_var___progname" = yes; then
-      AC_DEFINE([HAVE_VAR___PROGNAME], 1,
-        [Define if you have a global __progname variable])
-    fi
-  fi
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/gettime.m4 
b/tp/Texinfo/XS/gnulib/m4/gettime.m4
deleted file mode 100644
index 1e964ab6d4..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/gettime.m4
+++ /dev/null
@@ -1,70 +0,0 @@
-# gettime.m4
-# serial 15
-dnl Copyright (C) 2002, 2004-2006, 2009-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_GETTIME],
-[
-  dnl Prerequisites of lib/gettime.c.
-  AC_REQUIRE([gl_CLOCK_TIME])
-  AC_REQUIRE([gl_TIMESPEC])
-
-  AC_REQUIRE([gl_CHECK_FUNC_TIMESPEC_GET])
-  if test $gl_cv_func_timespec_get = yes; then
-    AC_DEFINE([HAVE_TIMESPEC_GET], [1],
-      [Define if you have the timespec_get function.])
-  fi
-])
-
-dnl Tests whether the function timespec_get exists.
-dnl Sets gl_cv_func_timespec_get and gl_cv_onwards_func_timespec_get.
-AC_DEFUN([gl_CHECK_FUNC_TIMESPEC_GET],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
-  dnl Persuade OpenBSD <time.h> to declare timespec_get().
-  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-
-  dnl We can't use AC_CHECK_FUNC here, because timespec_get() is defined as a
-  dnl static inline function in <time.h> on MSVC 14.
-  dnl But at the same time, we need to notice a missing declaration, like
-  dnl gl_CHECK_FUNCS_ANDROID does.
-  AC_CHECK_DECL([timespec_get], , , [[#include <time.h>]])
-  AC_CACHE_CHECK([for timespec_get], [gl_cv_onwards_func_timespec_get],
-    [if test $ac_cv_have_decl_timespec_get = yes; then
-       AC_LINK_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[#include <time.h>
-              struct timespec ts;
-            ]],
-            [[return timespec_get (&ts, 0);]])
-         ],
-         [gl_cv_onwards_func_timespec_get=yes],
-         [gl_cv_onwards_func_timespec_get=no])
-     else
-       gl_cv_onwards_func_timespec_get=no
-     fi
-     case "$host_os" in
-       linux*-android*)
-         if test $gl_cv_onwards_func_timespec_get = no; then
-           gl_cv_onwards_func_timespec_get='future OS version'
-         fi
-         ;;
-     esac
-    ])
-  case "$gl_cv_onwards_func_timespec_get" in
-    future*) gl_cv_func_timespec_get=no ;;
-    *)       gl_cv_func_timespec_get=$gl_cv_onwards_func_timespec_get ;;
-  esac
-])
-
-AC_DEFUN([gl_GETTIME_RES],
-[
-  dnl Prerequisites of lib/gettime-res.c.
-  AC_REQUIRE([gl_CLOCK_TIME])
-  AC_REQUIRE([gl_TIMESPEC])
-  gl_CHECK_FUNCS_ANDROID([timespec_getres], [[#include <time.h>]])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/gettimeofday.m4 
b/tp/Texinfo/XS/gnulib/m4/gettimeofday.m4
deleted file mode 100644
index 65963fbafa..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/gettimeofday.m4
+++ /dev/null
@@ -1,70 +0,0 @@
-# gettimeofday.m4
-# serial 30
-dnl Copyright (C) 2001-2003, 2005, 2007, 2009-2024 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 This file is offered as-is, without any warranty.
-
-dnl From Jim Meyering.
-
-AC_DEFUN([gl_FUNC_GETTIMEOFDAY],
-[
-  AC_REQUIRE([gl_SYS_TIME_H_DEFAULTS])
-  AC_REQUIRE([AC_C_RESTRICT])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([gl_SYS_TIME_H])
-  AC_CHECK_FUNCS_ONCE([gettimeofday])
-
-  gl_gettimeofday_timezone=void
-  if test $ac_cv_func_gettimeofday != yes; then
-    HAVE_GETTIMEOFDAY=0
-  else
-    AC_CACHE_CHECK([for gettimeofday with POSIX signature],
-      [gl_cv_func_gettimeofday_posix_signature],
-      [AC_COMPILE_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[#include <sys/time.h>
-              struct timeval c;
-              int gettimeofday (struct timeval *restrict, void *restrict);
-            ]],
-            [[/* glibc uses struct timezone * rather than the POSIX void *
-                 if _GNU_SOURCE is defined.  However, since the only portable
-                 use of gettimeofday uses NULL as the second parameter, and
-                 since the glibc definition is actually more typesafe, it is
-                 not worth wrapping this to get a compliant signature.  */
-              int (*f) (struct timeval *restrict, void *restrict)
-                = gettimeofday;
-              int x = f (&c, 0);
-              return !(x | c.tv_sec | c.tv_usec);
-            ]])],
-          [gl_cv_func_gettimeofday_posix_signature=yes],
-          [AC_COMPILE_IFELSE(
-            [AC_LANG_PROGRAM(
-              [[#include <sys/time.h>
-int gettimeofday (struct timeval *restrict, struct timezone *restrict);
-              ]])],
-            [gl_cv_func_gettimeofday_posix_signature=almost],
-            [gl_cv_func_gettimeofday_posix_signature=no])])])
-    if test $gl_cv_func_gettimeofday_posix_signature = almost; then
-      gl_gettimeofday_timezone='struct timezone'
-    elif test $gl_cv_func_gettimeofday_posix_signature != yes; then
-      REPLACE_GETTIMEOFDAY=1
-    fi
-    dnl If we override 'struct timeval', we also have to override gettimeofday.
-    if test $REPLACE_STRUCT_TIMEVAL = 1; then
-      REPLACE_GETTIMEOFDAY=1
-    fi
-    dnl On mingw, the original gettimeofday has only a precision of 15.6
-    dnl milliseconds. So override it.
-    case "$host_os" in
-      mingw* | windows*) REPLACE_GETTIMEOFDAY=1 ;;
-    esac
-  fi
-  AC_DEFINE_UNQUOTED([GETTIMEOFDAY_TIMEZONE], [$gl_gettimeofday_timezone],
-    [Define this to 'void' or 'struct timezone' to match the system's
-     declaration of the second argument to gettimeofday.])
-])
-
-# Prerequisites of lib/gettimeofday.c.
-AC_DEFUN([gl_PREREQ_GETTIMEOFDAY], [:])
diff --git a/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4 
b/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4
index e2ac10353e..66beeab66e 100644
--- a/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4
+++ b/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4
@@ -39,9 +39,9 @@
 #  --libtool \
 #  --macro-prefix=gl \
 #  --po-domain=texinfo_tp \
-#  copy-file \
 #  euidaccess \
 #  getline \
+#  gettext-h \
 #  iconv \
 #  libunistring \
 #  locale \
@@ -78,9 +78,9 @@
 # Specification in the form of a few gnulib-tool.m4 macro invocations:
 gl_LOCAL_DIR([])
 gl_MODULES([
-  copy-file
   euidaccess
   getline
+  gettext-h
   iconv
   libunistring
   locale
diff --git a/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4 
b/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4
index 68b601270c..ff1ad01e51 100644
--- a/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4
+++ b/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4
@@ -44,33 +44,16 @@ AC_DEFUN([gl_EARLY],
 
   # Code from module absolute-header:
   # Code from module access:
-  # Code from module acl-permissions:
   # Code from module alloca-opt:
   # Code from module array-mergesort:
   # Code from module assert-h:
   # Code from module attribute:
-  # Code from module basename-lgpl:
-  # Code from module binary-io:
-  # Code from module c-ctype:
-  # Code from module c-strcase:
-  # Code from module c-strcaseeq:
-  # Code from module c32isprint:
   # Code from module c99:
-  # Code from module calloc-gnu:
-  # Code from module calloc-posix:
-  # Code from module clock-time:
-  # Code from module cloexec:
   # Code from module close:
-  # Code from module copy-file:
-  # Code from module copy-file-range:
-  # Code from module double-slash-root:
   # Code from module dup2:
   # Code from module environ:
   # Code from module errno:
-  # Code from module error:
-  # Code from module error-h:
   # Code from module euidaccess:
-  # Code from module exitfail:
   # Code from module extensions:
   # This is actually already done in the pre-early phase.
   # AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
@@ -83,67 +66,39 @@ AC_DEFUN([gl_EARLY],
   # Code from module filename:
   # Code from module float:
   # Code from module free-posix:
-  # Code from module fstat:
-  # Code from module full-write:
   # Code from module gen-header:
   # Code from module getdelim:
   # Code from module getdtablesize:
   # Code from module getgroups:
   # Code from module getline:
-  # Code from module getprogname:
   # Code from module gettext-h:
-  # Code from module gettime:
-  # Code from module gettimeofday:
   # Code from module gperf:
   # Code from module group-member:
-  # Code from module hard-locale:
   # Code from module havelib:
-  # Code from module ialloc:
   # Code from module iconv:
   # Code from module idx:
-  # Code from module ignore-value:
   # Code from module include_next:
   # Code from module inline:
-  # Code from module intprops:
   # Code from module inttypes-incomplete:
   # Code from module largefile:
   AC_REQUIRE([AC_SYS_LARGEFILE])
   # Code from module libunistring:
   # Code from module limits-h:
-  # Code from module localcharset:
   # Code from module locale:
-  # Code from module lstat:
   # Code from module malloc-gnu:
   # Code from module malloc-posix:
   # Code from module malloca:
-  # Code from module mbrtoc32:
-  # Code from module mbrtowc:
-  # Code from module mbsinit:
   # Code from module mbszero:
   # Code from module memchr:
-  # Code from module minmax:
   # Code from module msvc-inval:
   # Code from module msvc-nothrow:
   # Code from module multiarch:
-  # Code from module open:
   # Code from module pathmax:
-  # Code from module qcopy-acl:
-  # Code from module quote:
-  # Code from module quotearg:
-  # Code from module quotearg-simple:
-  # Code from module raise:
   # Code from module rawmemchr:
-  # Code from module read:
   # Code from module realloc-gnu:
   # Code from module realloc-posix:
-  # Code from module reallocarray:
   # Code from module root-uid:
-  # Code from module safe-read:
-  # Code from module safe-write:
   # Code from module setenv:
-  # Code from module setlocale-null:
-  # Code from module setlocale-null-unlocked:
-  # Code from module signal-h:
   # Code from module size_max:
   # Code from module snippet/_Noreturn:
   # Code from module snippet/arg-nonnull:
@@ -162,17 +117,13 @@ AC_DEFUN([gl_EARLY],
   # Code from module stdlib:
   # Code from module strchrnul:
   # Code from module streq:
-  # Code from module strerror:
-  # Code from module strerror-override:
   # Code from module string:
   # Code from module strndup:
   # Code from module strnlen:
   # Code from module sys_stat:
-  # Code from module sys_time:
   # Code from module sys_types:
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
   # Code from module time-h:
-  # Code from module timespec:
   # Code from module uchar:
   # Code from module unicase/base:
   # Code from module unicase/cased:
@@ -192,7 +143,6 @@ AC_DEFUN([gl_EARLY],
   # Code from module unictype/category-Nd:
   # Code from module unictype/category-test:
   # Code from module unictype/combining-class:
-  # Code from module unictype/ctype-print:
   # Code from module unictype/ctype-upper:
   # Code from module unictype/property-alphabetic:
   # Code from module unictype/property-join-control:
@@ -228,17 +178,11 @@ AC_DEFUN([gl_EARLY],
   # Code from module uniwidth/u8-width:
   # Code from module uniwidth/width:
   # Code from module unsetenv:
-  # Code from module utime:
-  # Code from module utime-h:
-  # Code from module utimens:
   # Code from module vararrays:
   # Code from module vasnprintf:
   # Code from module vasprintf:
   # Code from module wchar:
   # Code from module wctype-h:
-  # Code from module write:
-  # Code from module xalloc:
-  # Code from module xalloc-die:
   # Code from module xalloc-oversized:
   # Code from module xsize:
 ])
@@ -263,43 +207,16 @@ AC_DEFUN([gl_INIT],
   gl_FUNC_ACCESS
   gl_CONDITIONAL([GL_COND_OBJ_ACCESS], [test $REPLACE_ACCESS = 1])
   gl_UNISTD_MODULE_INDICATOR([access])
-  gl_FUNC_ACL
   gl_FUNC_ALLOCA
   gl_CONDITIONAL_HEADER([alloca.h])
   AC_PROG_MKDIR_P
   gl_ASSERT_H
   gl_CONDITIONAL_HEADER([assert.h])
   AC_PROG_MKDIR_P
-  AC_REQUIRE([gl_UCHAR_H])
-  dnl Determine REPLACE_MBSTATE_T, from which GNULIB_defined_mbstate_t is
-  dnl determined.  It describes how mbrtoc32 is implemented.
-  AC_REQUIRE([gl_MBSTATE_T_BROKEN])
-  AC_REQUIRE([gl_MBRTOC32_SANITYCHECK])
-  AC_REQUIRE([gl_C32RTOMB_SANITYCHECK])
-  gl_UCHAR_MODULE_INDICATOR([c32isprint])
-  gl_FUNC_CALLOC_GNU
-  if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 1; then
-    AC_LIBOBJ([calloc])
-  fi
-  gl_STDLIB_MODULE_INDICATOR([calloc-gnu])
-  gl_FUNC_CALLOC_POSIX
-  if test $REPLACE_CALLOC_FOR_CALLOC_POSIX = 1; then
-    AC_LIBOBJ([calloc])
-  fi
-  gl_STDLIB_MODULE_INDICATOR([calloc-posix])
-  gl_CLOCK_TIME
-  gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
   gl_FUNC_CLOSE
   gl_CONDITIONAL([GL_COND_OBJ_CLOSE], [test $REPLACE_CLOSE = 1])
   gl_UNISTD_MODULE_INDICATOR([close])
   gl_MODULE_INDICATOR([close])
-  gl_COPY_FILE
-  gl_FUNC_COPY_FILE_RANGE
-  gl_CONDITIONAL([GL_COND_OBJ_COPY_FILE_RANGE],
-                 [test $HAVE_COPY_FILE_RANGE = 0 ||
-                  test $REPLACE_COPY_FILE_RANGE = 1])
-  gl_UNISTD_MODULE_INDICATOR([copy-file-range])
-  gl_DOUBLE_SLASH_ROOT
   gl_FUNC_DUP2
   gl_CONDITIONAL([GL_COND_OBJ_DUP2], [test $REPLACE_DUP2 = 1])
   AM_COND_IF([GL_COND_OBJ_DUP2], [
@@ -311,17 +228,6 @@ AC_DEFUN([gl_INIT],
   gl_HEADER_ERRNO_H
   gl_CONDITIONAL_HEADER([errno.h])
   AC_PROG_MKDIR_P
-  AC_REQUIRE([gl_ERROR_H])
-  gl_ERROR
-  gl_CONDITIONAL([GL_COND_OBJ_ERROR], [test $COMPILE_ERROR_C = 1])
-  AM_COND_IF([GL_COND_OBJ_ERROR], [
-    gl_PREREQ_ERROR
-  ])
-  m4_ifdef([AM_XGETTEXT_OPTION],
-    [AM_][XGETTEXT_OPTION([--flag=error:3:c-format])
-     AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
-  gl_ERROR_H
-  AC_PROG_MKDIR_P
   gl_FUNC_EUIDACCESS
   gl_CONDITIONAL([GL_COND_OBJ_EUIDACCESS], [test $HAVE_EUIDACCESS = 0])
   AM_COND_IF([GL_COND_OBJ_EUIDACCESS], [
@@ -350,18 +256,6 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_FREE
   ])
   gl_STDLIB_MODULE_INDICATOR([free-posix])
-  gl_FUNC_FSTAT
-  gl_CONDITIONAL([GL_COND_OBJ_FSTAT], [test $REPLACE_FSTAT = 1])
-  AM_COND_IF([GL_COND_OBJ_FSTAT], [
-    case "$host_os" in
-      mingw* | windows*)
-        AC_LIBOBJ([stat-w32])
-        ;;
-    esac
-    gl_PREREQ_FSTAT
-  ])
-  gl_SYS_STAT_MODULE_INDICATOR([fstat])
-  gl_MODULE_INDICATOR([fstat])
   gl_FUNC_GETDELIM
   gl_CONDITIONAL([GL_COND_OBJ_GETDELIM],
                  [test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1])
@@ -386,36 +280,14 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_GETLINE
   ])
   gl_STDIO_MODULE_INDICATOR([getline])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  gl_FUNC_GETPROGNAME
-  gl_CONDITIONAL([GL_COND_OBJ_GETPROGNAME],
-                 [test $HAVE_GETPROGNAME = 0 || test $REPLACE_GETPROGNAME = 1])
-  AM_COND_IF([GL_COND_OBJ_GETPROGNAME], [
-    gl_PREREQ_GETPROGNAME
-  ])
-  gl_STDLIB_MODULE_INDICATOR([getprogname])
   AC_SUBST([LIBINTL])
   AC_SUBST([LTLIBINTL])
-  gl_GETTIME
-  gl_FUNC_GETTIMEOFDAY
-  gl_CONDITIONAL([GL_COND_OBJ_GETTIMEOFDAY],
-                 [test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 
1])
-  AM_COND_IF([GL_COND_OBJ_GETTIMEOFDAY], [
-    gl_PREREQ_GETTIMEOFDAY
-  ])
-  gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
   gl_FUNC_GROUP_MEMBER
   gl_CONDITIONAL([GL_COND_OBJ_GROUP_MEMBER], [test $HAVE_GROUP_MEMBER = 0])
   AM_COND_IF([GL_COND_OBJ_GROUP_MEMBER], [
     gl_PREREQ_GROUP_MEMBER
   ])
   gl_UNISTD_MODULE_INDICATOR([group-member])
-  AC_REQUIRE([gl_FUNC_SETLOCALE_NULL])
-  HARD_LOCALE_LIB="$SETLOCALE_NULL_LIB"
-  AC_SUBST([HARD_LOCALE_LIB])
-  dnl For backward compatibility.
-  LIB_HARD_LOCALE="$HARD_LOCALE_LIB"
-  AC_SUBST([LIB_HARD_LOCALE])
   AC_DEFUN([gl_HAVE_MODULE_HAVELIB])
   AM_ICONV
   m4_ifdef([gl_ICONV_MODULE_INDICATOR],
@@ -429,20 +301,9 @@ AC_DEFUN([gl_INIT],
   gl_LIMITS_H
   gl_CONDITIONAL_HEADER([limits.h])
   AC_PROG_MKDIR_P
-  gl_LOCALCHARSET
-  dnl For backward compatibility. Some packages still use this.
-  LOCALCHARSET_TESTS_ENVIRONMENT=
-  AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
   gl_LOCALE_H
   gl_LOCALE_H_REQUIRE_DEFAULTS
   AC_PROG_MKDIR_P
-  gl_FUNC_LSTAT
-  gl_CONDITIONAL([GL_COND_OBJ_LSTAT], [test $REPLACE_LSTAT = 1])
-  AM_COND_IF([GL_COND_OBJ_LSTAT], [
-    gl_PREREQ_LSTAT
-  ])
-  gl_SYS_STAT_MODULE_INDICATOR([lstat])
-  gl_MODULE_INDICATOR([lstat])
   gl_FUNC_MALLOC_GNU
   if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 1; then
     AC_LIBOBJ([malloc])
@@ -454,37 +315,6 @@ AC_DEFUN([gl_INIT],
   fi
   gl_STDLIB_MODULE_INDICATOR([malloc-posix])
   gl_MALLOCA
-  gl_FUNC_MBRTOC32
-  gl_CONDITIONAL([GL_COND_OBJ_MBRTOC32],
-                 [test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1])
-  AM_COND_IF([GL_COND_OBJ_MBRTOC32], [
-    if test $REPLACE_MBSTATE_T = 1; then
-      AC_LIBOBJ([lc-charset-dispatch])
-      AC_LIBOBJ([mbtowc-lock])
-      gl_PREREQ_MBTOWC_LOCK
-    fi
-    gl_PREREQ_MBRTOC32
-  ])
-  gl_UCHAR_MODULE_INDICATOR([mbrtoc32])
-  gl_FUNC_MBRTOWC
-  gl_CONDITIONAL([GL_COND_OBJ_MBRTOWC],
-                 [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1])
-  AM_COND_IF([GL_COND_OBJ_MBRTOWC], [
-    if test $REPLACE_MBSTATE_T = 1; then
-      AC_LIBOBJ([lc-charset-dispatch])
-      AC_LIBOBJ([mbtowc-lock])
-      gl_PREREQ_MBTOWC_LOCK
-    fi
-    gl_PREREQ_MBRTOWC
-  ])
-  gl_WCHAR_MODULE_INDICATOR([mbrtowc])
-  gl_FUNC_MBSINIT
-  gl_CONDITIONAL([GL_COND_OBJ_MBSINIT],
-                 [test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1])
-  AM_COND_IF([GL_COND_OBJ_MBSINIT], [
-    gl_PREREQ_MBSINIT
-  ])
-  gl_WCHAR_MODULE_INDICATOR([mbsinit])
   AC_REQUIRE([AC_TYPE_MBSTATE_T])
   gl_MBSTATE_T_BROKEN
   gl_MUSL_LIBC
@@ -495,7 +325,6 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_MEMCHR
   ])
   gl_STRING_MODULE_INDICATOR([memchr])
-  gl_MINMAX
   AC_REQUIRE([gl_MSVC_INVAL])
   gl_CONDITIONAL([GL_COND_OBJ_MSVC_INVAL],
                  [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1])
@@ -504,35 +333,13 @@ AC_DEFUN([gl_INIT],
                  [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1])
   gl_MODULE_INDICATOR([msvc-nothrow])
   gl_MULTIARCH
-  gl_FUNC_OPEN
-  gl_CONDITIONAL([GL_COND_OBJ_OPEN], [test $REPLACE_OPEN = 1])
-  AM_COND_IF([GL_COND_OBJ_OPEN], [
-    gl_PREREQ_OPEN
-  ])
-  gl_FCNTL_MODULE_INDICATOR([open])
   gl_PATHMAX
-  gl_QCOPY_ACL
-  gl_QUOTE
-  gl_QUOTEARG
-  gl_FUNC_RAISE
-  gl_CONDITIONAL([GL_COND_OBJ_RAISE],
-                 [test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1])
-  AM_COND_IF([GL_COND_OBJ_RAISE], [
-    gl_PREREQ_RAISE
-  ])
-  gl_SIGNAL_MODULE_INDICATOR([raise])
   gl_FUNC_RAWMEMCHR
   gl_CONDITIONAL([GL_COND_OBJ_RAWMEMCHR], [test $HAVE_RAWMEMCHR = 0])
   AM_COND_IF([GL_COND_OBJ_RAWMEMCHR], [
     gl_PREREQ_RAWMEMCHR
   ])
   gl_STRING_MODULE_INDICATOR([rawmemchr])
-  gl_FUNC_READ
-  gl_CONDITIONAL([GL_COND_OBJ_READ], [test $REPLACE_READ = 1])
-  AM_COND_IF([GL_COND_OBJ_READ], [
-    gl_PREREQ_READ
-  ])
-  gl_UNISTD_MODULE_INDICATOR([read])
   gl_FUNC_REALLOC_GNU
   if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then
     AC_LIBOBJ([realloc])
@@ -543,30 +350,10 @@ AC_DEFUN([gl_INIT],
     AC_LIBOBJ([realloc])
   fi
   gl_STDLIB_MODULE_INDICATOR([realloc-posix])
-  gl_FUNC_REALLOCARRAY
-  gl_CONDITIONAL([GL_COND_OBJ_REALLOCARRAY],
-                 [test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 
1])
-  AM_COND_IF([GL_COND_OBJ_REALLOCARRAY], [
-    gl_PREREQ_REALLOCARRAY
-  ])
-  gl_MODULE_INDICATOR([reallocarray])
-  gl_STDLIB_MODULE_INDICATOR([reallocarray])
-  gl_PREREQ_SAFE_READ
-  gl_PREREQ_SAFE_WRITE
   gl_FUNC_SETENV
   gl_CONDITIONAL([GL_COND_OBJ_SETENV],
                  [test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1])
   gl_STDLIB_MODULE_INDICATOR([setenv])
-  gl_FUNC_SETLOCALE_NULL
-  gl_CONDITIONAL([GL_COND_OBJ_SETLOCALE_LOCK],
-                 [test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test 
$SETLOCALE_NULL_ONE_MTSAFE = 0])
-  AM_COND_IF([GL_COND_OBJ_SETLOCALE_LOCK], [
-    gl_PREREQ_SETLOCALE_LOCK
-  ])
-  gl_LOCALE_MODULE_INDICATOR([setlocale_null])
-  gl_SIGNAL_H
-  gl_SIGNAL_H_REQUIRE_DEFAULTS
-  AC_PROG_MKDIR_P
   gl_SIZE_MAX
   gt_TYPE_SSIZE_T
   gl_FUNC_STAT
@@ -639,17 +426,6 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_STRCHRNUL
   ])
   gl_STRING_MODULE_INDICATOR([strchrnul])
-  gl_FUNC_STRERROR
-  gl_CONDITIONAL([GL_COND_OBJ_STRERROR], [test $REPLACE_STRERROR = 1])
-  gl_MODULE_INDICATOR([strerror])
-  gl_STRING_MODULE_INDICATOR([strerror])
-  AC_REQUIRE([gl_HEADER_ERRNO_H])
-  AC_REQUIRE([gl_FUNC_STRERROR_0])
-  gl_CONDITIONAL([GL_COND_OBJ_STRERROR_OVERRIDE],
-                 [test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1])
-  AM_COND_IF([GL_COND_OBJ_STRERROR_OVERRIDE], [
-    gl_PREREQ_SYS_H_WINSOCK2
-  ])
   gl_STRING_H
   gl_STRING_H_REQUIRE_DEFAULTS
   AC_PROG_MKDIR_P
@@ -667,16 +443,12 @@ AC_DEFUN([gl_INIT],
   gl_SYS_STAT_H
   gl_SYS_STAT_H_REQUIRE_DEFAULTS
   AC_PROG_MKDIR_P
-  gl_SYS_TIME_H
-  gl_SYS_TIME_H_REQUIRE_DEFAULTS
-  AC_PROG_MKDIR_P
   gl_SYS_TYPES_H
   gl_SYS_TYPES_H_REQUIRE_DEFAULTS
   AC_PROG_MKDIR_P
   gl_TIME_H
   gl_TIME_H_REQUIRE_DEFAULTS
   AC_PROG_MKDIR_P
-  gl_TIMESPEC
   gl_UCHAR_H
   gl_UCHAR_H_REQUIRE_DEFAULTS
   AC_PROG_MKDIR_P
@@ -711,8 +483,6 @@ AC_DEFUN([gl_INIT],
   gl_LIBUNISTRING_MODULE([0.9.8], [unictype/category-test])
   gl_LIBUNISTRING_MODULE([1.3], [unictype/combining-class])
   AC_REQUIRE([AC_C_INLINE])
-  gl_LIBUNISTRING_MODULE([1.3], [unictype/ctype-print])
-  AC_REQUIRE([AC_C_INLINE])
   gl_LIBUNISTRING_MODULE([1.3], [unictype/ctype-upper])
   AC_REQUIRE([AC_C_INLINE])
   gl_UNICTYPE_H_REQUIRE_DEFAULTS
@@ -789,17 +559,6 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_UNSETENV
   ])
   gl_STDLIB_MODULE_INDICATOR([unsetenv])
-  gl_FUNC_UTIME
-  gl_CONDITIONAL([GL_COND_OBJ_UTIME],
-                 [test $HAVE_UTIME = 0 || test $REPLACE_UTIME = 1])
-  AM_COND_IF([GL_COND_OBJ_UTIME], [
-    gl_PREREQ_UTIME
-  ])
-  gl_UTIME_MODULE_INDICATOR([utime])
-  gl_UTIME_H
-  gl_UTIME_H_REQUIRE_DEFAULTS
-  AC_PROG_MKDIR_P
-  gl_UTIMENS
   AC_C_VARARRAYS
   AC_REQUIRE([AC_C_RESTRICT])
   gl_FUNC_VASNPRINTF
@@ -814,15 +573,6 @@ AC_DEFUN([gl_INIT],
   gl_WCTYPE_H
   gl_WCTYPE_H_REQUIRE_DEFAULTS
   AC_PROG_MKDIR_P
-  gl_FUNC_WRITE
-  gl_CONDITIONAL([GL_COND_OBJ_WRITE], [test $REPLACE_WRITE = 1])
-  AM_COND_IF([GL_COND_OBJ_WRITE], [
-    gl_PREREQ_WRITE
-  ])
-  gl_UNISTD_MODULE_INDICATOR([write])
-  gl_XALLOC
-  gl_MODULE_INDICATOR([xalloc])
-  gl_MODULE_INDICATOR([xalloc-die])
   gl_XSIZE
   # End of code from modules
   m4_ifval(gl_LIBSOURCES_LIST, [
@@ -995,11 +745,6 @@ AC_DEFUN([gl_FILE_LIST], [
   build-aux/config.rpath
   lib/_Noreturn.h
   lib/access.c
-  lib/acl-errno-valid.c
-  lib/acl-internal.c
-  lib/acl-internal.h
-  lib/acl.h
-  lib/acl_entries.c
   lib/alloca.in.h
   lib/arg-nonnull.h
   lib/array-mergesort.h
@@ -1007,33 +752,11 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/asprintf.c
   lib/assert.in.h
   lib/attribute.h
-  lib/basename-lgpl.c
-  lib/basename-lgpl.h
-  lib/binary-io.c
-  lib/binary-io.h
   lib/c++defs.h
-  lib/c-ctype.c
-  lib/c-ctype.h
-  lib/c-strcase.h
-  lib/c-strcasecmp.c
-  lib/c-strcaseeq.h
-  lib/c-strncasecmp.c
-  lib/c32is-impl.h
-  lib/c32isprint.c
-  lib/calloc.c
-  lib/cloexec.c
-  lib/cloexec.h
   lib/close.c
-  lib/copy-file-range.c
-  lib/copy-file.c
-  lib/copy-file.h
   lib/dup2.c
   lib/errno.in.h
-  lib/error.c
-  lib/error.in.h
   lib/euidaccess.c
-  lib/exitfail.c
-  lib/exitfail.h
   lib/fcntl.c
   lib/fcntl.in.h
   lib/fd-hook.c
@@ -1043,84 +766,40 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/float.c
   lib/float.in.h
   lib/free.c
-  lib/fstat.c
-  lib/full-write.c
-  lib/full-write.h
-  lib/get-permissions.c
   lib/getdelim.c
   lib/getdtablesize.c
   lib/getgroups.c
   lib/getline.c
-  lib/getprogname.c
-  lib/getprogname.h
   lib/gettext.h
-  lib/gettime.c
-  lib/gettimeofday.c
   lib/group-member.c
-  lib/hard-locale.c
-  lib/hard-locale.h
-  lib/ialloc.c
-  lib/ialloc.h
   lib/idx.h
-  lib/ignore-value.h
   lib/intprops-internal.h
-  lib/intprops.h
   lib/inttypes.in.h
   lib/itold.c
-  lib/lc-charset-dispatch.c
-  lib/lc-charset-dispatch.h
   lib/libunistring.valgrind
   lib/limits.in.h
-  lib/localcharset.c
   lib/localcharset.h
   lib/locale.in.h
-  lib/lstat.c
   lib/malloc.c
   lib/malloca.c
   lib/malloca.h
-  lib/mbrtoc32.c
-  lib/mbrtowc-impl-utf8.h
-  lib/mbrtowc-impl.h
-  lib/mbrtowc.c
-  lib/mbsinit.c
   lib/mbszero.c
-  lib/mbtowc-lock.c
-  lib/mbtowc-lock.h
   lib/memchr.c
   lib/memchr.valgrind
-  lib/minmax.h
   lib/msvc-inval.c
   lib/msvc-inval.h
   lib/msvc-nothrow.c
   lib/msvc-nothrow.h
-  lib/open.c
   lib/pathmax.h
   lib/printf-args.c
   lib/printf-args.h
   lib/printf-parse.c
   lib/printf-parse.h
-  lib/qcopy-acl.c
-  lib/quote.h
-  lib/quotearg.c
-  lib/quotearg.h
-  lib/raise.c
   lib/rawmemchr.c
   lib/rawmemchr.valgrind
-  lib/read.c
   lib/realloc.c
-  lib/reallocarray.c
   lib/root-uid.h
-  lib/safe-read.c
-  lib/safe-read.h
-  lib/safe-write.c
-  lib/safe-write.h
-  lib/set-permissions.c
   lib/setenv.c
-  lib/setlocale-lock.c
-  lib/setlocale_null-unlocked.c
-  lib/setlocale_null.c
-  lib/setlocale_null.h
-  lib/signal.in.h
   lib/size_max.h
   lib/stat-time.c
   lib/stat-time.h
@@ -1137,19 +816,12 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/strchrnul.c
   lib/strchrnul.valgrind
   lib/streq.h
-  lib/strerror-override.c
-  lib/strerror-override.h
-  lib/strerror.c
   lib/string.in.h
   lib/strndup.c
   lib/strnlen.c
-  lib/sys-limits.h
   lib/sys_stat.in.h
-  lib/sys_time.in.h
   lib/sys_types.in.h
   lib/time.in.h
-  lib/timespec.c
-  lib/timespec.h
   lib/uchar.in.h
   lib/unicase.in.h
   lib/unicase/cased.c
@@ -1186,8 +858,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unictype/categ_test.c
   lib/unictype/combiningclass.c
   lib/unictype/combiningclass.h
-  lib/unictype/ctype_print.c
-  lib/unictype/ctype_print.h
   lib/unictype/ctype_upper.c
   lib/unictype/ctype_upper.h
   lib/unictype/pr_alphabetic.c
@@ -1243,10 +913,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/uniwidth/width0.h
   lib/uniwidth/width2.h
   lib/unsetenv.c
-  lib/utime.c
-  lib/utime.in.h
-  lib/utimens.c
-  lib/utimens.h
   lib/vasnprintf.c
   lib/vasnprintf.h
   lib/vasprintf.c
@@ -1255,35 +921,21 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/wchar.in.h
   lib/wctype-h.c
   lib/wctype.in.h
-  lib/windows-initguard.h
-  lib/write.c
-  lib/xalloc-die.c
   lib/xalloc-oversized.h
-  lib/xalloc.h
-  lib/xmalloc.c
   lib/xsize.c
   lib/xsize.h
   m4/00gnulib.m4
   m4/absolute-header.m4
   m4/access.m4
-  m4/acl.m4
   m4/alloca.m4
   m4/assert_h.m4
   m4/c-bool.m4
-  m4/c32rtomb.m4
-  m4/calloc.m4
-  m4/clock_time.m4
   m4/close.m4
   m4/codeset.m4
-  m4/copy-file-range.m4
-  m4/copy-file.m4
-  m4/double-slash-root.m4
   m4/dup2.m4
   m4/eealloc.m4
   m4/environ.m4
   m4/errno_h.m4
-  m4/error.m4
-  m4/error_h.m4
   m4/euidaccess.m4
   m4/exponentd.m4
   m4/extensions-aix.m4
@@ -1294,14 +946,10 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/fcntl_h.m4
   m4/float_h.m4
   m4/free.m4
-  m4/fstat.m4
   m4/getdelim.m4
   m4/getdtablesize.m4
   m4/getgroups.m4
   m4/getline.m4
-  m4/getprogname.m4
-  m4/gettime.m4
-  m4/gettimeofday.m4
   m4/gnulib-common.m4
   m4/group-member.m4
   m4/host-cpu-c-abi.m4
@@ -1318,48 +966,29 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/libunistring-base.m4
   m4/libunistring.m4
   m4/limits-h.m4
-  m4/localcharset.m4
   m4/locale-en.m4
-  m4/locale-fr.m4
   m4/locale-ja.m4
   m4/locale-zh.m4
   m4/locale_h.m4
-  m4/lstat.m4
   m4/malloc.m4
   m4/malloca.m4
   m4/math_h.m4
-  m4/mbrtoc32.m4
   m4/mbrtowc.m4
-  m4/mbsinit.m4
   m4/mbstate_t.m4
   m4/memchr.m4
-  m4/minmax.m4
   m4/mmap-anon.m4
-  m4/mode_t.m4
   m4/msvc-inval.m4
   m4/msvc-nothrow.m4
   m4/multiarch.m4
   m4/musl.m4
   m4/off64_t.m4
   m4/off_t.m4
-  m4/open-cloexec.m4
-  m4/open-slash.m4
-  m4/open.m4
   m4/pathmax.m4
   m4/pid_t.m4
   m4/printf.m4
-  m4/quote.m4
-  m4/quotearg.m4
-  m4/raise.m4
   m4/rawmemchr.m4
-  m4/read.m4
   m4/realloc.m4
-  m4/reallocarray.m4
-  m4/safe-read.m4
-  m4/safe-write.m4
   m4/setenv.m4
-  m4/setlocale_null.m4
-  m4/signal_h.m4
   m4/size_max.m4
   m4/ssize_t.m4
   m4/stat-time.m4
@@ -1371,37 +1000,24 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/stdio_h.m4
   m4/stdlib_h.m4
   m4/strchrnul.m4
-  m4/strerror.m4
   m4/string_h.m4
   m4/strndup.m4
   m4/strnlen.m4
-  m4/sys_socket_h.m4
   m4/sys_stat_h.m4
-  m4/sys_time_h.m4
   m4/sys_types_h.m4
-  m4/threadlib.m4
   m4/time_h.m4
-  m4/timespec.m4
   m4/uchar_h.m4
   m4/unicase_h.m4
   m4/unictype_h.m4
   m4/uninorm_h.m4
   m4/unistd_h.m4
-  m4/utime.m4
-  m4/utime_h.m4
-  m4/utimens.m4
-  m4/utimes.m4
   m4/vararrays.m4
   m4/vasnprintf.m4
   m4/vasprintf.m4
-  m4/visibility.m4
   m4/warn-on-use.m4
   m4/wchar_h.m4
   m4/wctype_h.m4
   m4/wint_t.m4
-  m4/write.m4
-  m4/xalloc.m4
-  m4/xattr.m4
   m4/xsize.m4
   m4/zzgnulib.m4
 ])
diff --git a/tp/Texinfo/XS/gnulib/m4/localcharset.m4 
b/tp/Texinfo/XS/gnulib/m4/localcharset.m4
deleted file mode 100644
index 234e638bed..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/localcharset.m4
+++ /dev/null
@@ -1,13 +0,0 @@
-# localcharset.m4
-# serial 8
-dnl Copyright (C) 2002, 2004, 2006, 2009-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_LOCALCHARSET],
-[
-  dnl Prerequisites of lib/localcharset.c.
-  AC_REQUIRE([AM_LANGINFO_CODESET])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/locale-fr.m4 
b/tp/Texinfo/XS/gnulib/m4/locale-fr.m4
deleted file mode 100644
index e28be8b98b..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/locale-fr.m4
+++ /dev/null
@@ -1,306 +0,0 @@
-# locale-fr.m4
-# serial 24
-dnl Copyright (C) 2003, 2005-2024 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 This file is offered as-is, without any warranty.
-
-dnl From Bruno Haible.
-
-dnl Determine the name of a french locale with traditional encoding.
-AC_DEFUN_ONCE([gt_LOCALE_FR],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([AM_LANGINFO_CODESET])
-  AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [
-    AC_LANG_CONFTEST([AC_LANG_SOURCE([[
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale
-     and on Haiku in the fr_FR.UTF-8 locale,
-     localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-# endif
-  return 0;
-#endif
-}
-      ]])])
-    if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" or "ara" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "en" or "eng" as "English" or "English_United States.1252",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" or "jpn" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw* | windows*)
-          # Test for the native Windows locale name.
-          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
-            gt_cv_locale_fr=French_France.1252
-          else
-            # None found.
-            gt_cv_locale_fr=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of 
the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure 
script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; 
then
-            gt_cv_locale_fr=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.ISO-8859-1
-            else
-              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
-                gt_cv_locale_fr=fr_FR.ISO8859-1
-              else
-                # Test for the HP-UX locale name.
-                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
-                  gt_cv_locale_fr=fr_FR.iso88591
-                else
-                  # Test for the Solaris 10 locale name.
-                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
-                    gt_cv_locale_fr=fr
-                  else
-                    # None found.
-                    gt_cv_locale_fr=none
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-  ])
-  LOCALE_FR=$gt_cv_locale_fr
-  case $LOCALE_FR in #(
-    '' | *[[[:space:]\"\$\'*@<:@]]*)
-      dnl This locale name might cause trouble with sh or make.
-      AC_MSG_WARN([invalid locale "$LOCALE_FR"; assuming "none"])
-      LOCALE_FR=none;;
-  esac
-  AC_SUBST([LOCALE_FR])
-])
-
-dnl Determine the name of a french locale with UTF-8 encoding.
-AC_DEFUN_ONCE([gt_LOCALE_FR_UTF8],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([AM_LANGINFO_CODESET])
-  AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [
-    case "$host_os" in
-      *-musl* | midipix*)
-        dnl On musl libc, all kinds of ll_CC.UTF-8 locales exist, even without
-        dnl any locale file on disk. But they are effectively equivalent to the
-        dnl C.UTF-8 locale, except for locale categories (such as LC_MESSSAGES)
-        dnl for which localizations (.mo files) have been installed.
-        gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        ;;
-      *)
-        AC_LANG_CONFTEST([AC_LANG_SOURCE([[
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale
-     and on Haiku in the fr_FR.UTF-8 locale,
-     localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
-          ]])])
-        if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-          case "$host_os" in
-            # Handle native Windows specially, because there setlocale() 
interprets
-            # "ar" or "ara" as "Arabic" or "Arabic_Saudi Arabia.1256",
-            # "en" or "eng" as "English" or "English_United States.1252",
-            # "fr" or "fra" as "French" or "French_France.1252",
-            # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-            # "ja" or "jpn" as "Japanese" or "Japanese_Japan.932",
-            # and similar.
-            mingw* | windows*)
-              # Test for the hypothetical native Windows locale name.
-              if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; 
exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=French_France.65001
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-              ;;
-            *)
-              # Setting LC_ALL is not enough. Need to set LC_TIME to empty, 
because
-              # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning 
of the
-              # configure script would override the LC_ALL setting. Likewise 
for
-              # LC_CTYPE, which is also set at the beginning of the configure 
script.
-              # Test for the usual locale name.
-              if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr_FR
-              else
-                # Test for the locale name with explicit encoding suffix.
-                if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
-                  gt_cv_locale_fr_utf8=fr_FR.UTF-8
-                else
-                  # Test for the Solaris 10 locale name.
-                  if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
-                    gt_cv_locale_fr_utf8=fr.UTF-8
-                  else
-                    # None found.
-                    gt_cv_locale_fr_utf8=none
-                  fi
-                fi
-              fi
-              ;;
-          esac
-        fi
-        rm -fr conftest*
-        ;;
-    esac
-  ])
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
-  case $LOCALE_FR_UTF8 in #(
-    '' | *[[[:space:]\"\$\'*@<:@]]*)
-      dnl This locale name might cause trouble with sh or make.
-      AC_MSG_WARN([invalid locale "$LOCALE_FR_UTF8"; assuming "none"])
-      LOCALE_FR_UTF8=none;;
-  esac
-  AC_SUBST([LOCALE_FR_UTF8])
-
-  dnl Users of $LOCALE_FR_UTF8 need to know which of the locale categories they
-  dnl can rely on.
-  case "$host_os" in
-    *-musl* | midipix*)
-      dnl On musl libc, locale categories other than LC_CTYPE and LC_MESSAGES
-      dnl are effectively unimplemented.
-      LC_COLLATE_IMPLEMENTED=false
-      LC_NUMERIC_IMPLEMENTED=false
-      LC_TIME_IMPLEMENTED=false
-      LC_MONETARY_IMPLEMENTED=false
-      ;;
-    *)
-      LC_COLLATE_IMPLEMENTED=true
-      LC_NUMERIC_IMPLEMENTED=true
-      LC_TIME_IMPLEMENTED=true
-      LC_MONETARY_IMPLEMENTED=true
-      ;;
-  esac
-  AC_SUBST([LC_COLLATE_IMPLEMENTED])
-  AC_SUBST([LC_NUMERIC_IMPLEMENTED])
-  AC_SUBST([LC_TIME_IMPLEMENTED])
-  AC_SUBST([LC_MONETARY_IMPLEMENTED])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/lstat.m4 b/tp/Texinfo/XS/gnulib/m4/lstat.m4
deleted file mode 100644
index 530d99b3a1..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/lstat.m4
+++ /dev/null
@@ -1,82 +0,0 @@
-# lstat.m4
-# serial 36
-dnl Copyright (C) 1997-2001, 2003-2024 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 This file is offered as-is, without any warranty.
-
-dnl From Jim Meyering.
-
-AC_DEFUN([gl_FUNC_LSTAT],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
-  dnl If lstat does not exist, the replacement <sys/stat.h> does
-  dnl "#define lstat stat", and lstat.c is a no-op.
-  AC_CHECK_FUNCS_ONCE([lstat])
-  if test $ac_cv_func_lstat = yes; then
-    AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
-    case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in
-      darwin* | solaris* | *no)
-        REPLACE_LSTAT=1
-        ;;
-    esac
-  else
-    HAVE_LSTAT=0
-  fi
-])
-
-# Prerequisites of lib/lstat.c.
-AC_DEFUN([gl_PREREQ_LSTAT], [:])
-
-AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
-[
-  dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it
-  dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ.
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  AC_CACHE_CHECK([whether lstat correctly handles trailing slash],
-    [gl_cv_func_lstat_dereferences_slashed_symlink],
-    [rm -f conftest.sym conftest.file
-     echo >conftest.file
-     AC_RUN_IFELSE(
-       [AC_LANG_PROGRAM(
-          [AC_INCLUDES_DEFAULT],
-          [[struct stat sbuf;
-            if (symlink ("conftest.file", "conftest.sym") != 0)
-              return 1;
-            /* Linux will dereference the symlink and fail, as required by
-               POSIX.  That is better in the sense that it means we will not
-               have to compile and use the lstat wrapper.  */
-            return lstat ("conftest.sym/", &sbuf) == 0;
-          ]])],
-       [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
-       [gl_cv_func_lstat_dereferences_slashed_symlink=no],
-       [case "$host_os" in
-          linux-* | linux)
-            # Guess yes on Linux systems.
-            gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
-          midipix*)
-            # Guess yes on systems that emulate the Linux system calls.
-            gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
-          *-gnu* | gnu*)
-            # Guess yes on glibc systems.
-            gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
-          mingw* | windows*)
-            # Guess no on native Windows.
-            gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
-          *)
-            # If we don't know, obey --enable-cross-guesses.
-            
gl_cv_func_lstat_dereferences_slashed_symlink="$gl_cross_guess_normal" ;;
-        esac
-       ])
-     rm -f conftest.sym conftest.file
-    ])
-  case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
-    *yes)
-      AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
-        [Define to 1 if 'lstat' dereferences a symlink specified
-         with a trailing slash.])
-      ;;
-  esac
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/mbrtoc32.m4 
b/tp/Texinfo/XS/gnulib/m4/mbrtoc32.m4
deleted file mode 100644
index d72749d493..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/mbrtoc32.m4
+++ /dev/null
@@ -1,326 +0,0 @@
-# mbrtoc32.m4
-# serial 21
-dnl Copyright (C) 2014-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_MBRTOC32],
-[
-  AC_REQUIRE([gl_UCHAR_H_DEFAULTS])
-
-  AC_REQUIRE([AC_TYPE_MBSTATE_T])
-  dnl Determine REPLACE_MBSTATE_T, from which GNULIB_defined_mbstate_t is
-  dnl determined.  It describes how our overridden mbrtowc is implemented.
-  dnl We then implement mbrtoc32 accordingly.
-  AC_REQUIRE([gl_MBSTATE_T_BROKEN])
-
-  AC_REQUIRE([gl_TYPE_CHAR32_T])
-  AC_REQUIRE([gl_MBRTOC32_SANITYCHECK])
-
-  AC_REQUIRE([gl_CHECK_FUNC_MBRTOC32])
-  if test $gl_cv_func_mbrtoc32 = no; then
-    HAVE_MBRTOC32=0
-  else
-    if test $GNULIBHEADERS_OVERRIDE_CHAR32_T = 1 || test $REPLACE_MBSTATE_T = 
1; then
-      REPLACE_MBRTOC32=1
-    else
-      gl_MBRTOC32_EMPTY_INPUT
-      gl_MBRTOC32_C_LOCALE
-      gl_MBRTOC32_UTF8_LOCALE
-      case "$gl_cv_func_mbrtoc32_empty_input" in
-        *yes) ;;
-        *) AC_DEFINE([MBRTOC32_EMPTY_INPUT_BUG], [1],
-             [Define if the mbrtoc32 function does not return (size_t) -2 for 
empty input.])
-           REPLACE_MBRTOC32=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ" in
-        *yes) ;;
-        *) AC_DEFINE([MBRTOC32_IN_C_LOCALE_MAYBE_EILSEQ], [1],
-             [Define if the mbrtoc32 function may signal encoding errors in 
the C locale.])
-           REPLACE_MBRTOC32=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtoc32_utf8_locale_works" in
-        *yes) ;;
-        *) AC_DEFINE([MBRTOC32_MULTIBYTE_LOCALE_BUG], [1],
-             [Define if the mbrtoc32 function does not accept the input bytes 
one-by-one.])
-           REPLACE_MBRTOC32=1
-           dnl Our replacement mbrtoc32 can handle UTF-8, but not GB18030.
-           LOCALE_ZH_CN=none
-           ;;
-      esac
-    fi
-    if test $HAVE_WORKING_MBRTOC32 = 0; then
-      REPLACE_MBRTOC32=1
-    fi
-  fi
-])
-
-AC_DEFUN([gl_CHECK_FUNC_MBRTOC32],
-[
-  dnl Cf. gl_CHECK_FUNCS_ANDROID
-  AC_CHECK_DECL([mbrtoc32], , ,
-    [[#ifdef __HAIKU__
-       #include <stdint.h>
-      #endif
-      #include <uchar.h>
-    ]])
-  if test $ac_cv_have_decl_mbrtoc32 = yes; then
-    dnl We can't use AC_CHECK_FUNC here, because mbrtoc32() is defined as a
-    dnl static inline function on Haiku 2020.
-    AC_CACHE_CHECK([for mbrtoc32], [gl_cv_func_mbrtoc32],
-      [AC_LINK_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[#include <stdlib.h>
-              #ifdef __HAIKU__
-               #include <stdint.h>
-              #endif
-              #include <uchar.h>
-            ]],
-            [[char32_t c;
-              return mbrtoc32 (&c, "", 1, NULL) == 0;
-            ]])
-         ],
-         [gl_cv_func_mbrtoc32=yes],
-         [gl_cv_func_mbrtoc32=no])
-      ])
-  else
-    gl_cv_func_mbrtoc32=no
-  fi
-])
-
-dnl Test whether mbrtoc32 returns the correct value on empty input.
-
-AC_DEFUN([gl_MBRTOC32_EMPTY_INPUT],
-[
-  AC_REQUIRE([AC_PROG_CC])
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  AC_CACHE_CHECK([whether mbrtoc32 works on empty input],
-    [gl_cv_func_mbrtoc32_empty_input],
-    [
-      AC_RUN_IFELSE(
-        [AC_LANG_SOURCE([[
-           #ifdef __HAIKU__
-            #include <stdint.h>
-           #endif
-           #include <uchar.h>
-           static char32_t wc;
-           static mbstate_t mbs;
-           int
-           main (void)
-           {
-             return mbrtoc32 (&wc, "", 0, &mbs) != (size_t) -2;
-           }]])],
-        [gl_cv_func_mbrtoc32_empty_input=yes],
-        [gl_cv_func_mbrtoc32_empty_input=no],
-        [case "$host_os" in
-                              # Guess no on glibc systems.
-           *-gnu* | gnu*)     gl_cv_func_mbrtoc32_empty_input="guessing no" ;;
-                              # Guess no on Android.
-           linux*-android*)   gl_cv_func_mbrtoc32_empty_input="guessing no" ;;
-                              # Guess no on native Windows.
-           mingw* | windows*) gl_cv_func_mbrtoc32_empty_input="guessing no" ;;
-           *)                 gl_cv_func_mbrtoc32_empty_input="guessing yes" ;;
-         esac
-        ])
-    ])
-])
-
-dnl <https://pubs.opengroup.org/onlinepubs/9699919799/functions/mbrtowc.html>
-dnl POSIX:2018 says regarding mbrtowc: "In the POSIX locale an [EILSEQ] error
-dnl cannot occur since all byte values are valid characters."  It is reasonable
-dnl to expect mbrtoc32 to behave in the same way.
-
-AC_DEFUN([gl_MBRTOC32_C_LOCALE],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  AC_CACHE_CHECK([whether the C locale is free of encoding errors],
-    [gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ],
-    [AC_RUN_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <limits.h>
-            #include <locale.h>
-            #ifdef __HAIKU__
-             #include <stdint.h>
-            #endif
-            #include <uchar.h>
-          ]], [[
-            int i;
-            char *locale = setlocale (LC_ALL, "C");
-            if (! locale)
-              return 2;
-            for (i = CHAR_MIN; i <= CHAR_MAX; i++)
-              {
-                char c = i;
-                char32_t wc;
-                mbstate_t mbs = { 0, };
-                size_t ss = mbrtoc32 (&wc, &c, 1, &mbs);
-                if (1 < ss)
-                  return 3;
-              }
-            return 0;
-          ]])],
-       [gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ=yes],
-       [gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ=no],
-       [case "$host_os" in
-                             # Guess yes on native Windows.
-          mingw* | windows*) 
gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ="guessing yes" ;;
-          *)                 
gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ="$gl_cross_guess_normal" ;;
-        esac
-       ])
-    ])
-])
-
-dnl Test whether mbrtoc32 works when it's fed the bytes one-by-one in an UTF-8
-dnl locale.
-
-AC_DEFUN([gl_MBRTOC32_UTF8_LOCALE],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  AC_CACHE_CHECK([whether mbrtoc32 works in an UTF-8 locale],
-    [gl_cv_func_mbrtoc32_utf8_locale_works],
-    [AC_RUN_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <locale.h>
-            #ifdef __HAIKU__
-             #include <stdint.h>
-            #endif
-            #include <uchar.h>
-          ]], [[
-            char *locale = setlocale (LC_ALL, "en_US.UTF-8");
-            if (locale)
-              {
-                /* This test fails on Cygwin 3.5.3.  */
-                mbstate_t state = { 0, };
-                char32_t uc = 0xDEADBEEF;
-                /* \360\237\220\203 = U+0001F403 */
-                if (mbrtoc32 (&uc, "\360", 1, &state) != (size_t)-2)
-                  return 1;
-                if (mbrtoc32 (&uc, "\237", 1, &state) != (size_t)-2)
-                  return 2;
-                if (mbrtoc32 (&uc, "\220", 1, &state) != (size_t)-2)
-                  return 3;
-                if (mbrtoc32 (&uc, "\203", 1, &state) != 1)
-                  return 4;
-                if (uc != 0x0001F403)
-                  return 5;
-              }
-            return 0;
-          ]])],
-       [gl_cv_func_mbrtoc32_utf8_locale_works=yes],
-       [gl_cv_func_mbrtoc32_utf8_locale_works=no],
-       [case "$host_os" in
-                   # Guess no on Cygwin.
-          cygwin*) gl_cv_func_mbrtoc32_utf8_locale_works="guessing no" ;;
-          *)       
gl_cv_func_mbrtoc32_utf8_locale_works="$gl_cross_guess_normal" ;;
-        esac
-       ])
-    ])
-])
-
-dnl Test whether mbrtoc32 works not worse than mbrtowc.
-dnl Result is HAVE_WORKING_MBRTOC32.
-
-AC_DEFUN([gl_MBRTOC32_SANITYCHECK],
-[
-  AC_REQUIRE([AC_PROG_CC])
-  AC_REQUIRE([gl_TYPE_CHAR32_T])
-  AC_REQUIRE([gl_CHECK_FUNC_MBRTOC32])
-  AC_REQUIRE([gt_LOCALE_FR])
-  AC_REQUIRE([gt_LOCALE_ZH_CN])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  if test $GNULIBHEADERS_OVERRIDE_CHAR32_T = 1 || test $gl_cv_func_mbrtoc32 = 
no; then
-    HAVE_WORKING_MBRTOC32=0
-  else
-    AC_CACHE_CHECK([whether mbrtoc32 works as well as mbrtowc],
-      [gl_cv_func_mbrtoc32_sanitycheck],
-      [
-        dnl Initial guess, used when cross-compiling or when no suitable locale
-        dnl is present.
-changequote(,)dnl
-        case "$host_os" in
-          # Guess no on FreeBSD, Solaris, native Windows.
-          freebsd* | midnightbsd* | solaris* | mingw* | windows*)
-            gl_cv_func_mbrtoc32_sanitycheck="guessing no"
-            ;;
-          # Guess yes otherwise.
-          *)
-            gl_cv_func_mbrtoc32_sanitycheck="guessing yes"
-            ;;
-        esac
-changequote([,])dnl
-        if test $LOCALE_FR != none || test $LOCALE_ZH_CN != none; then
-          AC_RUN_IFELSE(
-            [AC_LANG_SOURCE([[
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-#ifdef __HAIKU__
- #include <stdint.h>
-#endif
-#include <uchar.h>
-int main ()
-{
-  int result = 0;
-  /* This fails on native Windows:
-     mbrtoc32 returns (size_t)-1.
-     mbrtowc returns 1 (correct).  */
-  if (strcmp ("$LOCALE_FR", "none") != 0
-      && setlocale (LC_ALL, "$LOCALE_FR") != NULL)
-    {
-      mbstate_t state;
-      wchar_t wc = (wchar_t) 0xBADFACE;
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, "\374", 1, &state) == 1)
-        {
-          char32_t c32 = (wchar_t) 0xBADFACE;
-          memset (&state, '\0', sizeof (mbstate_t));
-          if (mbrtoc32 (&c32, "\374", 1, &state) != 1)
-            result |= 1;
-        }
-    }
-  /* This fails on FreeBSD 13.0 and Solaris 11.4:
-     mbrtoc32 returns (size_t)-2 or (size_t)-1.
-     mbrtowc returns 4 (correct).  */
-  if (strcmp ("$LOCALE_ZH_CN", "none") != 0
-      && setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      mbstate_t state;
-      wchar_t wc = (wchar_t) 0xBADFACE;
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, "\224\071\375\067", 4, &state) == 4)
-        {
-          char32_t c32 = (wchar_t) 0xBADFACE;
-          memset (&state, '\0', sizeof (mbstate_t));
-          if (mbrtoc32 (&c32, "\224\071\375\067", 4, &state) != 4)
-            result |= 2;
-        }
-    }
-  return result;
-}]])],
-            [gl_cv_func_mbrtoc32_sanitycheck=yes],
-            [gl_cv_func_mbrtoc32_sanitycheck=no],
-            [:])
-        fi
-      ])
-    case "$gl_cv_func_mbrtoc32_sanitycheck" in
-      *yes)
-        HAVE_WORKING_MBRTOC32=1
-        AC_DEFINE([HAVE_WORKING_MBRTOC32], [1],
-          [Define if the mbrtoc32 function basically works.])
-        ;;
-      *) HAVE_WORKING_MBRTOC32=0 ;;
-    esac
-  fi
-  AC_SUBST([HAVE_WORKING_MBRTOC32])
-])
-
-# Prerequisites of lib/mbrtoc32.c and lib/lc-charset-dispatch.c.
-AC_DEFUN([gl_PREREQ_MBRTOC32], [
-  AC_REQUIRE([gl_C32RTOMB_SANITYCHECK])
-  :
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/mbsinit.m4 
b/tp/Texinfo/XS/gnulib/m4/mbsinit.m4
deleted file mode 100644
index 2d807ed599..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/mbsinit.m4
+++ /dev/null
@@ -1,46 +0,0 @@
-# mbsinit.m4
-# serial 10
-dnl Copyright (C) 2008, 2010-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_MBSINIT],
-[
-  AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
-  AC_REQUIRE([AC_TYPE_MBSTATE_T])
-  gl_MBSTATE_T_BROKEN
-
-  AC_CHECK_FUNCS_ONCE([mbsinit])
-  if test $ac_cv_func_mbsinit = no; then
-    HAVE_MBSINIT=0
-    AC_CHECK_DECLS([mbsinit],,, [[
-      #include <wchar.h>
-    ]])
-    if test $ac_cv_have_decl_mbsinit = yes; then
-      dnl On Minix 3.1.8, the system's <wchar.h> declares mbsinit() although
-      dnl it does not have the function. Avoid a collision with gnulib's
-      dnl replacement.
-      REPLACE_MBSINIT=1
-    fi
-  else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_MBSINIT=1
-    else
-      dnl On mingw, mbsinit() always returns 1, which is inappropriate for
-      dnl states produced by mbrtowc() for an incomplete multibyte character
-      dnl in multibyte locales.
-      case "$host_os" in
-        mingw* | windows*) REPLACE_MBSINIT=1 ;;
-      esac
-    fi
-  fi
-])
-
-# Prerequisites of lib/mbsinit.c.
-AC_DEFUN([gl_PREREQ_MBSINIT], [
-  :
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/minmax.m4 
b/tp/Texinfo/XS/gnulib/m4/minmax.m4
deleted file mode 100644
index 2ce09e0777..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/minmax.m4
+++ /dev/null
@@ -1,46 +0,0 @@
-# minmax.m4
-# serial 4
-dnl Copyright (C) 2005, 2009-2024 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 This file is offered as-is, without any warranty.
-
-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])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/mode_t.m4 
b/tp/Texinfo/XS/gnulib/m4/mode_t.m4
deleted file mode 100644
index 159ef755d0..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/mode_t.m4
+++ /dev/null
@@ -1,28 +0,0 @@
-# mode_t.m4
-# serial 2
-dnl Copyright (C) 2009-2024 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 This file is offered as-is, without any warranty.
-
-# For using mode_t, it's sufficient to use AC_TYPE_MODE_T and
-# include <sys/types.h>.
-
-# Define PROMOTED_MODE_T to the type that is the result of "default argument
-# promotion" (ISO C 6.5.2.2.(6)) of the type mode_t.
-AC_DEFUN([gl_PROMOTED_TYPE_MODE_T],
-[
-  AC_REQUIRE([AC_TYPE_MODE_T])
-  AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [
-    dnl Assume mode_t promotes to 'int' if and only if it is smaller than 
'int',
-    dnl and to itself otherwise. This assumption is not guaranteed by the ISO C
-    dnl standard, but we don't know of any real-world counterexamples.
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]],
-      [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])],
-      [gl_cv_promoted_mode_t='int'],
-      [gl_cv_promoted_mode_t='mode_t'])
-  ])
-  AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t],
-    [Define to the type that is the result of default argument promotions of 
type mode_t.])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/open-cloexec.m4 
b/tp/Texinfo/XS/gnulib/m4/open-cloexec.m4
deleted file mode 100644
index 91aa6efbea..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/open-cloexec.m4
+++ /dev/null
@@ -1,24 +0,0 @@
-# open-cloexec.m4
-# serial 1
-dnl Copyright 2017-2024 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 This file is offered as-is, without any warranty.
-
-# Test whether O_CLOEXEC is defined.
-
-AC_DEFUN([gl_PREPROC_O_CLOEXEC],
-[
-  AC_CACHE_CHECK([for O_CLOEXEC],
-    [gl_cv_macro_O_CLOEXEC],
-    [AC_COMPILE_IFELSE(
-       [AC_LANG_PROGRAM([[#include <fcntl.h>
-                          #ifndef O_CLOEXEC
-                            choke me;
-                          #endif
-                        ]],
-                        [[return O_CLOEXEC;]])],
-       [gl_cv_macro_O_CLOEXEC=yes],
-       [gl_cv_macro_O_CLOEXEC=no])])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/open-slash.m4 
b/tp/Texinfo/XS/gnulib/m4/open-slash.m4
deleted file mode 100644
index 9d5c21ce1f..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/open-slash.m4
+++ /dev/null
@@ -1,62 +0,0 @@
-# open-slash.m4
-# serial 2
-dnl Copyright (C) 2007-2024 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 This file is offered as-is, without any warranty.
-
-dnl Tests whether open() and creat() recognize a trailing slash.
-dnl Sets gl_cv_func_open_slash.
-AC_DEFUN([gl_OPEN_TRAILING_SLASH_BUG],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  dnl open("foo/") should not create a file when the file name has a
-  dnl trailing slash.  FreeBSD only has the problem on symlinks.
-  AC_CHECK_FUNCS_ONCE([lstat])
-  AC_CACHE_CHECK([whether open recognizes a trailing slash],
-    [gl_cv_func_open_slash],
-    [# Assume that if we have lstat, we can also check symlinks.
-     if test $ac_cv_func_lstat = yes; then
-       touch conftest.tmp
-       ln -s conftest.tmp conftest.lnk
-     fi
-     AC_RUN_IFELSE(
-       [AC_LANG_SOURCE([[
-#include <fcntl.h>
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-]GL_MDA_DEFINES[
-int main ()
-{
-  int result = 0;
-#if HAVE_LSTAT
-  if (open ("conftest.lnk/", O_RDONLY) != -1)
-    result |= 1;
-#endif
-  if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
-    result |= 2;
-  return result;
-}]])],
-       [gl_cv_func_open_slash=yes],
-       [gl_cv_func_open_slash=no],
-       [
-changequote(,)dnl
-        case "$host_os" in
-          freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
-            gl_cv_func_open_slash="guessing no" ;;
-          *)
-            gl_cv_func_open_slash="guessing yes" ;;
-        esac
-changequote([,])dnl
-       ])
-     rm -f conftest.sl conftest.tmp conftest.lnk
-    ])
-  case "$gl_cv_func_open_slash" in
-    *no)
-      AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1],
-        [Define to 1 if open() fails to recognize a trailing slash.])
-      ;;
-  esac
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/open.m4 b/tp/Texinfo/XS/gnulib/m4/open.m4
deleted file mode 100644
index 600c2ec80d..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/open.m4
+++ /dev/null
@@ -1,58 +0,0 @@
-# open.m4
-# serial 16
-dnl Copyright (C) 2007-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_OPEN],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([gl_PREPROC_O_CLOEXEC])
-  case "$host_os" in
-    mingw* | windows* | pw*)
-      REPLACE_OPEN=1
-      ;;
-    *)
-      dnl open("foo/") should not create a file when the file name has a
-      dnl trailing slash.  FreeBSD only has the problem on symlinks.
-      AC_CHECK_FUNCS_ONCE([lstat])
-      if test "$gl_cv_macro_O_CLOEXEC" != yes; then
-        REPLACE_OPEN=1
-      fi
-      gl_OPEN_TRAILING_SLASH_BUG
-      case "$gl_cv_func_open_slash" in
-        *no)
-          REPLACE_OPEN=1
-          ;;
-      esac
-      ;;
-  esac
-  dnl Replace open() for supporting the gnulib-defined fchdir() function,
-  dnl to keep fchdir's bookkeeping up-to-date.
-  m4_ifdef([gl_FUNC_FCHDIR], [
-    if test $REPLACE_OPEN = 0; then
-      gl_TEST_FCHDIR
-      if test $HAVE_FCHDIR = 0; then
-        REPLACE_OPEN=1
-      fi
-    fi
-  ])
-  dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag.
-  m4_ifdef([gl_NONBLOCKING_IO], [
-    if test $REPLACE_OPEN = 0; then
-      gl_NONBLOCKING_IO
-      if test $gl_cv_have_open_O_NONBLOCK != yes; then
-        REPLACE_OPEN=1
-      fi
-    fi
-  ])
-])
-
-# Prerequisites of lib/open.c.
-AC_DEFUN([gl_PREREQ_OPEN],
-[
-  AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
-  :
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/quote.m4 b/tp/Texinfo/XS/gnulib/m4/quote.m4
deleted file mode 100644
index b73e7ee9dc..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/quote.m4
+++ /dev/null
@@ -1,15 +0,0 @@
-# quote.m4
-# serial 6
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2024 Free Software Foundation,
-dnl 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_QUOTE],
-[
-  dnl Prerequisites of lib/quote.c.
-  dnl (none)
-  :
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/quotearg.m4 
b/tp/Texinfo/XS/gnulib/m4/quotearg.m4
deleted file mode 100644
index e07a710d94..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/quotearg.m4
+++ /dev/null
@@ -1,13 +0,0 @@
-# quotearg.m4
-# serial 10
-dnl Copyright (C) 2002, 2004-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_QUOTEARG],
-[
-  AC_REQUIRE([AC_C_RESTRICT])
-  :
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/raise.m4 b/tp/Texinfo/XS/gnulib/m4/raise.m4
deleted file mode 100644
index d5bf4d571c..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/raise.m4
+++ /dev/null
@@ -1,38 +0,0 @@
-# raise.m4
-# serial 4
-dnl Copyright (C) 2011-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_RAISE],
-[
-  AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_CHECK_FUNCS([raise])
-  if test $ac_cv_func_raise = no; then
-    HAVE_RAISE=0
-  else
-    m4_ifdef([gl_MSVC_INVAL], [
-      AC_REQUIRE([gl_MSVC_INVAL])
-      if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
-        REPLACE_RAISE=1
-      fi
-    ])
-    m4_ifdef([gl_SIGNALBLOCKING], [
-      gl_SIGNALBLOCKING
-      if test $HAVE_POSIX_SIGNALBLOCKING = 0; then
-        m4_ifdef([gl_SIGNAL_SIGPIPE], [
-          gl_SIGNAL_SIGPIPE
-          if test $gl_cv_header_signal_h_SIGPIPE != yes; then
-            REPLACE_RAISE=1
-          fi
-        ], [:])
-      fi
-    ])
-  fi
-])
-
-# Prerequisites of lib/raise.c.
-AC_DEFUN([gl_PREREQ_RAISE], [:])
diff --git a/tp/Texinfo/XS/gnulib/m4/read.m4 b/tp/Texinfo/XS/gnulib/m4/read.m4
deleted file mode 100644
index 6413e64b3a..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/read.m4
+++ /dev/null
@@ -1,30 +0,0 @@
-# read.m4
-# serial 5
-dnl Copyright (C) 2011-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_READ],
-[
-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  m4_ifdef([gl_MSVC_INVAL], [
-    AC_REQUIRE([gl_MSVC_INVAL])
-    if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
-      REPLACE_READ=1
-    fi
-  ])
-  dnl This ifdef is just an optimization, to avoid performing a configure
-  dnl check whose result is not used. It does not make the test of
-  dnl GNULIB_UNISTD_H_NONBLOCKING or GNULIB_NONBLOCKING redundant.
-  m4_ifdef([gl_NONBLOCKING_IO], [
-    gl_NONBLOCKING_IO
-    if test $gl_cv_have_nonblocking != yes; then
-      REPLACE_READ=1
-    fi
-  ])
-])
-
-# Prerequisites of lib/read.c.
-AC_DEFUN([gl_PREREQ_READ], [:])
diff --git a/tp/Texinfo/XS/gnulib/m4/reallocarray.m4 
b/tp/Texinfo/XS/gnulib/m4/reallocarray.m4
deleted file mode 100644
index 9407a7fe63..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/reallocarray.m4
+++ /dev/null
@@ -1,28 +0,0 @@
-# reallocarray.m4
-# serial 5
-dnl Copyright (C) 2017-2024 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 This file is offered as-is, without any warranty.
-
-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])
-  gl_CHECK_FUNCS_ANDROID([reallocarray], [[#include <stdlib.h>]])
-  if test "$ac_cv_func_reallocarray" = no; then
-    HAVE_REALLOCARRAY=0
-    case "$gl_cv_onwards_func_reallocarray" in
-      future*) REPLACE_REALLOCARRAY=1 ;;
-    esac
-  elif test "$gl_cv_malloc_ptrdiff" = no; then
-    REPLACE_REALLOCARRAY=1
-  fi
-])
-
-# Prerequisites of lib/reallocarray.c.
-AC_DEFUN([gl_PREREQ_REALLOCARRAY], [:])
diff --git a/tp/Texinfo/XS/gnulib/m4/safe-read.m4 
b/tp/Texinfo/XS/gnulib/m4/safe-read.m4
deleted file mode 100644
index 6e7012af41..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/safe-read.m4
+++ /dev/null
@@ -1,14 +0,0 @@
-# safe-read.m4
-# serial 6
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2024 Free Software Foundation,
-dnl 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 This file is offered as-is, without any warranty.
-
-# Prerequisites of lib/safe-read.c.
-AC_DEFUN([gl_PREREQ_SAFE_READ],
-[
-  AC_REQUIRE([gt_TYPE_SSIZE_T])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/safe-write.m4 
b/tp/Texinfo/XS/gnulib/m4/safe-write.m4
deleted file mode 100644
index 5d8f884e6b..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/safe-write.m4
+++ /dev/null
@@ -1,13 +0,0 @@
-# safe-write.m4
-# serial 4
-dnl Copyright (C) 2002, 2005-2006, 2009-2024 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 This file is offered as-is, without any warranty.
-
-# Prerequisites of lib/safe-write.c.
-AC_DEFUN([gl_PREREQ_SAFE_WRITE],
-[
-  gl_PREREQ_SAFE_READ
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/setlocale_null.m4 
b/tp/Texinfo/XS/gnulib/m4/setlocale_null.m4
deleted file mode 100644
index 47c0fb2c27..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/setlocale_null.m4
+++ /dev/null
@@ -1,119 +0,0 @@
-# setlocale_null.m4
-# serial 9
-dnl Copyright (C) 2019-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_SETLOCALE_NULL],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([gl_PTHREADLIB])
-  AC_CHECK_HEADERS_ONCE([threads.h])
-
-  AC_CACHE_CHECK([whether setlocale (LC_ALL, NULL) is multithread-safe],
-    [gl_cv_func_setlocale_null_all_mtsafe],
-    [case "$host_os" in
-       # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku.
-       *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | 
openbsd* | aix* | haiku*)
-         gl_cv_func_setlocale_null_all_mtsafe=no ;;
-       # Guess no on Cygwin < 3.4.6.
-       cygwin*)
-         AC_EGREP_CPP([Lucky user],
-           [
-#if defined __CYGWIN__
- #include <cygwin/version.h>
- #if CYGWIN_VERSION_DLL_COMBINED >= CYGWIN_VERSION_DLL_MAKE_COMBINED (3004, 6)
-  Lucky user
- #endif
-#endif
-          ],
-          [gl_cv_func_setlocale_null_all_mtsafe=yes],
-          [gl_cv_func_setlocale_null_all_mtsafe=no])
-        ;;
-       # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows.
-       *-gnu* | gnu* | hpux* | irix* | solaris* | mingw* | windows*)
-         gl_cv_func_setlocale_null_all_mtsafe=yes ;;
-       # If we don't know, obey --enable-cross-guesses.
-       *)
-         gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;;
-     esac
-    ])
-  dnl On platforms without multithreading, there is no issue.
-  case "$host_os" in
-    mingw* | windows*) ;;
-    *)
-      if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then
-        gl_cv_func_setlocale_null_all_mtsafe="trivially yes"
-      fi
-      ;;
-  esac
-  case "$gl_cv_func_setlocale_null_all_mtsafe" in
-    *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;;
-    *)    SETLOCALE_NULL_ALL_MTSAFE=0 ;;
-  esac
-  AC_DEFINE_UNQUOTED([SETLOCALE_NULL_ALL_MTSAFE], [$SETLOCALE_NULL_ALL_MTSAFE],
-    [Define to 1 if setlocale (LC_ALL, NULL) is multithread-safe.])
-
-  dnl This is about a single category (not LC_ALL).
-  AC_CACHE_CHECK([whether setlocale (category, NULL) is multithread-safe],
-    [gl_cv_func_setlocale_null_one_mtsafe],
-    [case "$host_os" in
-       # Guess no on OpenBSD, AIX.
-       openbsd* | aix*)
-         gl_cv_func_setlocale_null_one_mtsafe=no ;;
-       # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, 
Solaris, Haiku, Cygwin, native Windows.
-       *-gnu* | gnu* | *-musl* | midipix* | darwin* | freebsd* | midnightbsd* 
| netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw* | windows*)
-         gl_cv_func_setlocale_null_one_mtsafe=yes ;;
-       # If we don't know, obey --enable-cross-guesses.
-       *)
-         gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;;
-     esac
-    ])
-  dnl On platforms without multithreading, there is no issue.
-  case "$host_os" in
-    mingw* | windows*) ;;
-    *)
-      if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then
-        gl_cv_func_setlocale_null_one_mtsafe="trivially yes"
-      fi
-      ;;
-  esac
-  case "$gl_cv_func_setlocale_null_one_mtsafe" in
-    *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;;
-    *)    SETLOCALE_NULL_ONE_MTSAFE=0 ;;
-  esac
-  AC_DEFINE_UNQUOTED([SETLOCALE_NULL_ONE_MTSAFE], [$SETLOCALE_NULL_ONE_MTSAFE],
-    [Define to 1 if setlocale (category, NULL) is multithread-safe.])
-
-  dnl Determine link dependencies of lib/setlocale_null.c and 
lib/setlocale-lock.c.
-  if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 
0; then
-    case "$host_os" in
-      mingw* | windows*)
-        SETLOCALE_NULL_LIB=
-        ;;
-      *)
-        gl_WEAK_SYMBOLS
-        case "$gl_cv_have_weak" in
-          *yes) SETLOCALE_NULL_LIB= ;;
-          *)    SETLOCALE_NULL_LIB="$LIBPTHREAD" ;;
-        esac
-        ;;
-    esac
-  else
-    SETLOCALE_NULL_LIB=
-  fi
-  dnl SETLOCALE_NULL_LIB is expected to be '-pthread' or '-lpthread' on AIX
-  dnl with gcc or xlc, and empty otherwise.
-  AC_SUBST([SETLOCALE_NULL_LIB])
-  dnl For backward compatibility.
-  LIB_SETLOCALE_NULL="$SETLOCALE_NULL_LIB"
-  AC_SUBST([LIB_SETLOCALE_NULL])
-])
-
-# Prerequisites of lib/setlocale-lock.c.
-AC_DEFUN([gl_PREREQ_SETLOCALE_LOCK],
-[
-  gl_VISIBILITY
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/signal_h.m4 
b/tp/Texinfo/XS/gnulib/m4/signal_h.m4
deleted file mode 100644
index ef6c5df949..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/signal_h.m4
+++ /dev/null
@@ -1,106 +0,0 @@
-# signal_h.m4
-# serial 23
-dnl Copyright (C) 2007-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN_ONCE([gl_SIGNAL_H],
-[
-  AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
-  AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T])
-  gl_NEXT_HEADERS([signal.h])
-
-# AIX declares sig_atomic_t to already include volatile, and C89 compilers
-# then choke on 'volatile sig_atomic_t'.  C99 requires that it compile.
-  AC_CHECK_TYPE([volatile sig_atomic_t], [],
-    [HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0], [[
-#include <signal.h>
-    ]])
-
-  dnl Ensure the type pid_t gets defined.
-  AC_REQUIRE([AC_TYPE_PID_T])
-
-  AC_REQUIRE([AC_TYPE_UID_T])
-
-  dnl Persuade glibc <signal.h> to define sighandler_t.
-  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-  AC_CHECK_TYPE([sighandler_t], [], [HAVE_SIGHANDLER_T=0], [[
-#include <signal.h>
-    ]])
-
-  dnl Check for declarations of anything we want to poison if the
-  dnl corresponding gnulib module is not in use.
-  gl_WARN_ON_USE_PREPARE([[#include <signal.h>
-    ]], [sig2str str2sig
-    pthread_sigmask sigaction
-    sigaddset sigdelset sigemptyset sigfillset sigismember
-    sigpending sigprocmask])
-
-  AC_REQUIRE([AC_C_RESTRICT])
-])
-
-AC_DEFUN([gl_CHECK_TYPE_SIGSET_T],
-[
-  AC_CHECK_TYPES([sigset_t],
-    [gl_cv_type_sigset_t=yes], [gl_cv_type_sigset_t=no],
-    [[
-      #include <signal.h>
-      /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.  */
-      #include <sys/types.h>
-    ]])
-  if test $gl_cv_type_sigset_t != yes; then
-    HAVE_SIGSET_T=0
-  fi
-])
-
-# gl_SIGNAL_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_SIGNAL_MODULE_INDICATOR],
-[
-  dnl Ensure to expand the default settings once only.
-  gl_SIGNAL_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_SIGNAL_H_REQUIRE_DEFAULTS],
-[
-  m4_defun(GL_MODULE_INDICATOR_PREFIX[_SIGNAL_H_MODULE_INDICATOR_DEFAULTS], [
-    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTHREAD_SIGMASK])
-    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RAISE])
-    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIG2STR])
-    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGNAL_H_SIGPIPE])
-    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGPROCMASK])
-    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGACTION])
-  ])
-  m4_require(GL_MODULE_INDICATOR_PREFIX[_SIGNAL_H_MODULE_INDICATOR_DEFAULTS])
-  AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
-])
-
-AC_DEFUN([gl_SIGNAL_H_DEFAULTS],
-[
-  dnl Assume proper GNU behavior unless another module says otherwise.
-  HAVE_POSIX_SIGNALBLOCKING=1; AC_SUBST([HAVE_POSIX_SIGNALBLOCKING])
-  HAVE_PTHREAD_SIGMASK=1;      AC_SUBST([HAVE_PTHREAD_SIGMASK])
-  HAVE_RAISE=1;                AC_SUBST([HAVE_RAISE])
-  HAVE_SIG2STR=1;              AC_SUBST([HAVE_SIG2STR])
-  HAVE_SIGSET_T=1;             AC_SUBST([HAVE_SIGSET_T])
-  HAVE_SIGINFO_T=1;            AC_SUBST([HAVE_SIGINFO_T])
-  HAVE_SIGACTION=1;            AC_SUBST([HAVE_SIGACTION])
-  HAVE_STR2SIG=1;              AC_SUBST([HAVE_STR2SIG])
-  HAVE_STRUCT_SIGACTION_SA_SIGACTION=1;
-                               AC_SUBST([HAVE_STRUCT_SIGACTION_SA_SIGACTION])
-  HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
-                               AC_SUBST([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T])
-  HAVE_SIGHANDLER_T=1;         AC_SUBST([HAVE_SIGHANDLER_T])
-  REPLACE_PTHREAD_SIGMASK=0;   AC_SUBST([REPLACE_PTHREAD_SIGMASK])
-  REPLACE_RAISE=0;             AC_SUBST([REPLACE_RAISE])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/strerror.m4 
b/tp/Texinfo/XS/gnulib/m4/strerror.m4
deleted file mode 100644
index 4b962af23a..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/strerror.m4
+++ /dev/null
@@ -1,104 +0,0 @@
-# strerror.m4
-# serial 25
-dnl Copyright (C) 2002, 2007-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_STRERROR],
-[
-  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
-  m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
-    AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
-  ])
-  if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then
-    AC_CACHE_CHECK([for working strerror function],
-     [gl_cv_func_working_strerror],
-     [AC_RUN_IFELSE(
-        [AC_LANG_PROGRAM(
-           [[#include <string.h>
-           ]],
-           [[if (!*strerror (-2)) return 1;]])],
-        [gl_cv_func_working_strerror=yes],
-        [gl_cv_func_working_strerror=no],
-        [case "$host_os" in
-                               # Guess yes on glibc systems.
-           *-gnu* | gnu*)      gl_cv_func_working_strerror="guessing yes" ;;
-                               # Guess yes on musl systems.
-           *-musl* | midipix*) gl_cv_func_working_strerror="guessing yes" ;;
-                               # If we don't know, obey --enable-cross-guesses.
-           *)                  
gl_cv_func_working_strerror="$gl_cross_guess_normal" ;;
-         esac
-        ])
-    ])
-    case "$gl_cv_func_working_strerror" in
-      *yes) ;;
-      *)
-        dnl The system's strerror() fails to return a string for out-of-range
-        dnl integers. Replace it.
-        REPLACE_STRERROR=1
-        ;;
-    esac
-    m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
-      dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's
-      dnl buffer, we must replace strerror.
-      case "$gl_cv_func_strerror_r_works" in
-        *no) REPLACE_STRERROR=1 ;;
-      esac
-    ])
-  else
-    dnl The system's strerror() cannot know about the new errno values we add
-    dnl to <errno.h>, or any fix for strerror(0). Replace it.
-    REPLACE_STRERROR=1
-  fi
-])
-
-dnl Detect if strerror(0) passes (that is, does not set errno, and does not
-dnl return a string that matches strerror(-1)).
-AC_DEFUN([gl_FUNC_STRERROR_0],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  REPLACE_STRERROR_0=0
-  AC_CACHE_CHECK([whether strerror(0) succeeds],
-   [gl_cv_func_strerror_0_works],
-   [AC_RUN_IFELSE(
-      [AC_LANG_PROGRAM(
-         [[#include <string.h>
-           #include <errno.h>
-         ]],
-         [[int result = 0;
-           char *str;
-           errno = 0;
-           str = strerror (0);
-           if (!*str) result |= 1;
-           if (errno) result |= 2;
-           if (strstr (str, "nknown") || strstr (str, "ndefined"))
-             result |= 4;
-           return result;]])],
-      [gl_cv_func_strerror_0_works=yes],
-      [gl_cv_func_strerror_0_works=no],
-      [case "$host_os" in
-                             # Guess yes on glibc systems.
-         *-gnu* | gnu*)      gl_cv_func_strerror_0_works="guessing yes" ;;
-                             # Guess yes on musl systems.
-         *-musl* | midipix*) gl_cv_func_strerror_0_works="guessing yes" ;;
-                             # Guess yes on native Windows.
-         mingw* | windows*)  gl_cv_func_strerror_0_works="guessing yes" ;;
-                             # If we don't know, obey --enable-cross-guesses.
-         *)                  
gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;;
-       esac
-      ])
-  ])
-  case "$gl_cv_func_strerror_0_works" in
-    *yes) ;;
-    *)
-      REPLACE_STRERROR_0=1
-      AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0)
-        does not return a message implying success.])
-      ;;
-  esac
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/sys_socket_h.m4 
b/tp/Texinfo/XS/gnulib/m4/sys_socket_h.m4
deleted file mode 100644
index 2f1edcef1a..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/sys_socket_h.m4
+++ /dev/null
@@ -1,208 +0,0 @@
-# sys_socket_h.m4
-# serial 29
-dnl Copyright (C) 2005-2024 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 This file is offered as-is, without any warranty.
-
-dnl From Simon Josefsson.
-
-AC_DEFUN_ONCE([gl_SYS_SOCKET_H],
-[
-  AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
-  dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have
-  dnl old-style declarations (with return type 'int' instead of 'ssize_t')
-  dnl unless _POSIX_PII_SOCKET is defined.
-  case "$host_os" in
-    osf*)
-      AC_DEFINE([_POSIX_PII_SOCKET], [1],
-        [Define to 1 in order to get the POSIX compatible declarations
-         of socket functions.])
-      ;;
-  esac
-
-  GL_GENERATE_SYS_SOCKET_H=false
-  AC_CACHE_CHECK([whether <sys/socket.h> is self-contained],
-    [gl_cv_header_sys_socket_h_selfcontained],
-    [
-      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[]])],
-        [gl_cv_header_sys_socket_h_selfcontained=yes],
-        [gl_cv_header_sys_socket_h_selfcontained=no])
-    ])
-  if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
-    dnl If the shutdown function exists, <sys/socket.h> should define
-    dnl SHUT_RD, SHUT_WR, SHUT_RDWR.
-    AC_CHECK_FUNCS([shutdown])
-    if test $ac_cv_func_shutdown = yes; then
-      AC_CACHE_CHECK([whether <sys/socket.h> defines the SHUT_* macros],
-        [gl_cv_header_sys_socket_h_shut],
-        [
-          AC_COMPILE_IFELSE(
-            [AC_LANG_PROGRAM([[#include <sys/socket.h>]],
-               [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])],
-            [gl_cv_header_sys_socket_h_shut=yes],
-            [gl_cv_header_sys_socket_h_shut=no])
-        ])
-      if test $gl_cv_header_sys_socket_h_shut = no; then
-        GL_GENERATE_SYS_SOCKET_H=true
-      fi
-    fi
-  fi
-  # We need to check for ws2tcpip.h now.
-  gl_PREREQ_SYS_H_SOCKET
-  AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[
-  /* sys/types.h is not needed according to POSIX, but the
-     sys/socket.h in i386-unknown-freebsd4.10 and
-     powerpc-apple-darwin5.5 required it. */
-#include <sys/types.h>
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-])
-  if test $ac_cv_type_struct_sockaddr_storage = no; then
-    HAVE_STRUCT_SOCKADDR_STORAGE=0
-  fi
-  if test $ac_cv_type_sa_family_t = no; then
-    HAVE_SA_FAMILY_T=0
-  fi
-  if test $ac_cv_type_struct_sockaddr_storage != no; then
-    AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family],
-      [],
-      [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0],
-      [#include <sys/types.h>
-       #ifdef HAVE_SYS_SOCKET_H
-       #include <sys/socket.h>
-       #endif
-       #ifdef HAVE_WS2TCPIP_H
-       #include <ws2tcpip.h>
-       #endif
-      ])
-  fi
-  if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \
-     || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then
-    GL_GENERATE_SYS_SOCKET_H=true
-  fi
-  gl_PREREQ_SYS_H_WINSOCK2
-
-  dnl Check for declarations of anything we want to poison if the
-  dnl corresponding gnulib module is not in use.
-  gl_WARN_ON_USE_PREPARE([[
-/* Some systems require prerequisite headers.  */
-#include <sys/types.h>
-#include <sys/socket.h>
-    ]], [socket connect accept bind getpeername getsockname getsockopt
-    listen recv send recvfrom sendto setsockopt shutdown accept4])
-
-  AC_REQUIRE([AC_C_RESTRICT])
-])
-
-AC_DEFUN([gl_PREREQ_SYS_H_SOCKET],
-[
-  dnl Check prerequisites of the <sys/socket.h> replacement.
-  AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])
-  gl_CHECK_NEXT_HEADERS([sys/socket.h])
-  if test $ac_cv_header_sys_socket_h = yes; then
-    HAVE_SYS_SOCKET_H=1
-  else
-    HAVE_SYS_SOCKET_H=0
-  fi
-  AC_SUBST([HAVE_SYS_SOCKET_H])
-  gl_PREREQ_SYS_H_WS2TCPIP
-])
-
-# Common prerequisites of the <sys/socket.h> replacement and of the
-# <sys/select.h> replacement.
-# Sets and substitutes HAVE_WINSOCK2_H.
-AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2],
-[
-  m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])])
-  m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])])
-  AC_CHECK_HEADERS_ONCE([sys/socket.h])
-  if test $ac_cv_header_sys_socket_h != yes; then
-    dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
-    dnl the check for those headers unconditional; yet cygwin reports
-    dnl that the headers are present but cannot be compiled (since on
-    dnl cygwin, all socket information should come from sys/socket.h).
-    AC_CHECK_HEADERS([winsock2.h])
-  fi
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    HAVE_WINSOCK2_H=1
-    UNISTD_H_HAVE_WINSOCK2_H=1
-    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
-  else
-    HAVE_WINSOCK2_H=0
-  fi
-  AC_SUBST([HAVE_WINSOCK2_H])
-])
-
-# Common prerequisites of the <sys/socket.h> replacement and of the
-# <arpa/inet.h> replacement.
-# Sets and substitutes HAVE_WS2TCPIP_H.
-AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP],
-[
-  AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])
-  if test $ac_cv_header_sys_socket_h = yes; then
-    HAVE_WS2TCPIP_H=0
-  else
-    if test $ac_cv_header_ws2tcpip_h = yes; then
-      HAVE_WS2TCPIP_H=1
-    else
-      HAVE_WS2TCPIP_H=0
-    fi
-  fi
-  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 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],
-[
-  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])
-  HAVE_SA_FAMILY_T=1;   AC_SUBST([HAVE_SA_FAMILY_T])
-  HAVE_ACCEPT4=1;       AC_SUBST([HAVE_ACCEPT4])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/sys_time_h.m4 
b/tp/Texinfo/XS/gnulib/m4/sys_time_h.m4
deleted file mode 100644
index 6954319e4b..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/sys_time_h.m4
+++ /dev/null
@@ -1,122 +0,0 @@
-# sys_time_h.m4
-# serial 12
-dnl Copyright (C) 2007, 2009-2024 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 This file is offered as-is, without any warranty.
-
-# Configure a replacement for <sys/time.h>.
-
-# Written by Paul Eggert and Martin Lambers.
-
-AC_DEFUN_ONCE([gl_SYS_TIME_H],
-[
-  dnl Use AC_REQUIRE here, so that the REPLACE_GETTIMEOFDAY=0 statement
-  dnl below is expanded once only, before all REPLACE_GETTIMEOFDAY=1
-  dnl statements that occur in other macros.
-  AC_REQUIRE([gl_SYS_TIME_H_DEFAULTS])
-  AC_REQUIRE([AC_C_RESTRICT])
-  AC_CHECK_HEADERS_ONCE([sys/time.h])
-  gl_CHECK_NEXT_HEADERS([sys/time.h])
-
-  if test $ac_cv_header_sys_time_h != yes; then
-    HAVE_SYS_TIME_H=0
-  fi
-
-  dnl On native Windows with MSVC, 'struct timeval' is defined in <winsock2.h>
-  dnl only. So include that header in the list.
-  gl_PREREQ_SYS_H_WINSOCK2
-  AC_CACHE_CHECK([for struct timeval], [gl_cv_sys_struct_timeval],
-    [AC_COMPILE_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#if HAVE_SYS_TIME_H
-             #include <sys/time.h>
-            #endif
-            #include <time.h>
-            #if HAVE_WINSOCK2_H
-            # include <winsock2.h>
-            #endif
-          ]],
-          [[static struct timeval x; x.tv_sec = x.tv_usec;]])],
-       [gl_cv_sys_struct_timeval=yes],
-       [gl_cv_sys_struct_timeval=no])
-    ])
-  if test $gl_cv_sys_struct_timeval != yes; then
-    HAVE_STRUCT_TIMEVAL=0
-  else
-    dnl On native Windows with a 64-bit 'time_t', 'struct timeval' is defined
-    dnl (in <sys/time.h> and <winsock2.h> for mingw64, in <winsock2.h> only
-    dnl for MSVC) with a tv_sec field of type 'long' (32-bit!), which is
-    dnl smaller than the 'time_t' type mandated by POSIX.
-    dnl On OpenBSD 5.1 amd64, tv_sec is 64 bits and time_t 32 bits, but
-    dnl that is good enough.
-    AC_CACHE_CHECK([for wide-enough struct timeval.tv_sec member],
-      [gl_cv_sys_struct_timeval_tv_sec],
-      [AC_COMPILE_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[#if HAVE_SYS_TIME_H
-               #include <sys/time.h>
-              #endif
-              #include <time.h>
-              #if HAVE_WINSOCK2_H
-              # include <winsock2.h>
-              #endif
-            ]],
-            [[static struct timeval x;
-              typedef int verify_tv_sec_type[
-                sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1
-              ];
-            ]])],
-         [gl_cv_sys_struct_timeval_tv_sec=yes],
-         [gl_cv_sys_struct_timeval_tv_sec=no])
-      ])
-    if test $gl_cv_sys_struct_timeval_tv_sec != yes; then
-      REPLACE_STRUCT_TIMEVAL=1
-    fi
-  fi
-
-  dnl Check for declarations of anything we want to poison if the
-  dnl corresponding gnulib module is not in use.
-  gl_WARN_ON_USE_PREPARE([[
-#if HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-#include <time.h>
-    ]], [gettimeofday])
-])
-
-# gl_SYS_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_SYS_TIME_MODULE_INDICATOR],
-[
-  dnl Ensure to expand the default settings once only.
-  gl_SYS_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])
-])
-
-# 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_TIME_H_REQUIRE_DEFAULTS],
-[
-  m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_TIME_H_MODULE_INDICATOR_DEFAULTS], [
-    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETTIMEOFDAY])
-  ])
-  m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_TIME_H_MODULE_INDICATOR_DEFAULTS])
-  AC_REQUIRE([gl_SYS_TIME_H_DEFAULTS])
-])
-
-AC_DEFUN([gl_SYS_TIME_H_DEFAULTS],
-[
-  dnl Assume POSIX behavior unless another module says otherwise.
-  HAVE_GETTIMEOFDAY=1;       AC_SUBST([HAVE_GETTIMEOFDAY])
-  HAVE_STRUCT_TIMEVAL=1;     AC_SUBST([HAVE_STRUCT_TIMEVAL])
-  HAVE_SYS_TIME_H=1;         AC_SUBST([HAVE_SYS_TIME_H])
-  REPLACE_GETTIMEOFDAY=0;    AC_SUBST([REPLACE_GETTIMEOFDAY])
-  REPLACE_STRUCT_TIMEVAL=0;  AC_SUBST([REPLACE_STRUCT_TIMEVAL])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/threadlib.m4 
b/tp/Texinfo/XS/gnulib/m4/threadlib.m4
deleted file mode 100644
index 0f52aac478..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/threadlib.m4
+++ /dev/null
@@ -1,688 +0,0 @@
-# threadlib.m4
-# serial 42
-dnl Copyright (C) 2005-2024 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 This file is offered as-is, without any warranty.
-
-dnl From Bruno Haible.
-
-AC_PREREQ([2.60])
-
-dnl The general structure of the multithreading modules in gnulib is that we
-dnl have three set of modules:
-dnl
-dnl   * POSIX API:
-dnl     pthread, which combines
-dnl       pthread-h
-dnl       pthread-thread
-dnl       pthread-once
-dnl       pthread-mutex
-dnl       pthread-rwlock
-dnl       pthread-cond
-dnl       pthread-tss
-dnl       pthread-spin
-dnl     sched_yield
-dnl
-dnl   * ISO C API:
-dnl     threads, which combines
-dnl       threads-h
-dnl       thrd
-dnl       mtx
-dnl       cnd
-dnl       tss
-dnl
-dnl   * Gnulib API, with an implementation that can be chosen at configure
-dnl     time through the option --enable-threads=...
-dnl       thread
-dnl       lock
-dnl       cond
-dnl       tls
-dnl       yield
-dnl
-dnl They are independent, except for the fact that
-dnl   - the implementation of the ISO C API may use the POSIX (or some other
-dnl     platform dependent) API,
-dnl   - the implementation of the Gnulib API may use the POSIX or ISO C or
-dnl     some other platform dependent API, depending on the --enable-threads
-dnl     option.
-dnl
-dnl This file contains macros for all of these APIs!
-
-dnl 
============================================================================
-dnl Macros for all thread APIs
-
-AC_DEFUN([gl_ANYTHREADLIB_EARLY],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  if test -z "$gl_anythreadlib_early_done"; then
-    case "$host_os" in
-      osf*)
-        # On OSF/1, the compiler needs the flag -D_REENTRANT so that it
-        # groks <pthread.h>. cc also understands the flag -pthread, but
-        # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
-        # 2. putting a flag into CPPFLAGS that has an effect on the linker
-        # causes the AC_LINK_IFELSE test below to succeed unexpectedly,
-        # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
-        CPPFLAGS="$CPPFLAGS -D_REENTRANT"
-        ;;
-    esac
-    # Some systems optimize for single-threaded programs by default, and
-    # need special flags to disable these optimizations. For example, the
-    # definition of 'errno' in <errno.h>.
-    case "$host_os" in
-      aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;;
-      solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;;
-    esac
-    gl_anythreadlib_early_done=done
-  fi
-])
-
-dnl Checks whether the compiler and linker support weak declarations of 
symbols.
-
-AC_DEFUN([gl_WEAK_SYMBOLS],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_CACHE_CHECK([whether imported symbols can be declared weak],
-    [gl_cv_have_weak],
-    [case "$host_os" in
-       cygwin* | mingw* | windows*)
-         dnl On Cygwin 3.2.0 with gcc 10.2, and likewise on mingw 10.0.0 with
-         dnl gcc 11.3, the test below would succeed, but programs that use
-         dnl pthread_in_use() with weak symbol references crash miserably at
-         dnl runtime.
-         gl_cv_have_weak="guessing no"
-         ;;
-       *)
-         gl_cv_have_weak=no
-         dnl First, test whether the compiler accepts it syntactically.
-         AC_LINK_IFELSE(
-           [AC_LANG_PROGRAM(
-              [[extern void xyzzy ();
-#pragma weak xyzzy]],
-              [[xyzzy();]])],
-           [gl_cv_have_weak=maybe])
-         if test $gl_cv_have_weak = maybe; then
-           dnl Second, test whether it actually works. On Cygwin 1.7.2, with
-           dnl gcc 4.3, symbols declared weak always evaluate to the address 0.
-           AC_RUN_IFELSE(
-             [AC_LANG_SOURCE([[
-#include <stdio.h>
-#pragma weak fputs
-int main ()
-{
-  return (fputs == NULL);
-}]])],
-             [gl_cv_have_weak=yes],
-             [gl_cv_have_weak=no],
-             [dnl When cross-compiling, assume that only ELF platforms support
-              dnl weak symbols.
-              AC_EGREP_CPP([Extensible Linking Format],
-                [#ifdef __ELF__
-                 Extensible Linking Format
-                 #endif
-                ],
-                [gl_cv_have_weak="guessing yes"],
-                [gl_cv_have_weak="guessing no"])
-             ])
-         fi
-         ;;
-     esac
-     dnl But when linking statically, weak symbols don't work.
-     case " $LDFLAGS " in
-       *" -static "*) gl_cv_have_weak=no ;;
-     esac
-     dnl Test for a bug in FreeBSD 11: A link error occurs when using a weak
-     dnl symbol and linking against a shared library that has a dependency on
-     dnl the shared library that defines the symbol.
-     case "$gl_cv_have_weak" in
-       *yes)
-         case "$host_os" in
-           freebsd* | dragonfly* | midnightbsd*)
-             : > conftest1.c
-             $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so 
conftest1.c -lpthread >&AS_MESSAGE_LOG_FD 2>&1
-             cat <<EOF > conftest2.c
-#include <pthread.h>
-#pragma weak pthread_mutexattr_gettype
-int main ()
-{
-  return (pthread_mutexattr_gettype != NULL);
-}
-EOF
-             $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c 
libempty.so >&AS_MESSAGE_LOG_FD 2>&1 \
-               || gl_cv_have_weak=no
-             rm -f conftest1.c libempty.so conftest2.c conftest
-             ;;
-         esac
-         ;;
-     esac
-    ])
-  case "$gl_cv_have_weak" in
-    *yes)
-      AC_DEFINE([HAVE_WEAK_SYMBOLS], [1],
-        [Define to 1 if the compiler and linker support weak declarations of 
symbols.])
-      ;;
-  esac
-])
-
-dnl 
============================================================================
-dnl Macros for the POSIX API
-
-dnl gl_PTHREADLIB
-dnl -------------
-dnl Tests for the libraries needs for using the POSIX threads API.
-dnl Sets the variable LIBPTHREAD to the linker options for use in a Makefile.
-dnl Sets the variable LIBPMULTITHREAD, for programs that really need
-dnl multithread functionality. The difference between LIBPTHREAD and
-dnl LIBPMULTITHREAD is that on platforms supporting weak symbols, typically
-dnl LIBPTHREAD is empty whereas LIBPMULTITHREAD is not.
-dnl Sets the variable SCHED_YIELD_LIB to the linker options needed to use the
-dnl sched_yield() function.
-dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for
-dnl multithread-safe programs.
-dnl Defines the C macro HAVE_PTHREAD_API if (at least parts of) the POSIX
-dnl threads API is available.
-
-dnl The guts of gl_PTHREADLIB. Needs to be expanded only once.
-
-AC_DEFUN([gl_PTHREADLIB_BODY],
-[
-  AC_REQUIRE([gl_ANYTHREADLIB_EARLY])
-  if test -z "$gl_pthreadlib_body_done"; then
-    gl_pthread_api=no
-    LIBPTHREAD=
-    LIBPMULTITHREAD=
-    # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
-    # it groks <pthread.h>. It's added above, in gl_ANYTHREADLIB_EARLY.
-    AC_CHECK_HEADER([pthread.h],
-      [gl_have_pthread_h=yes], [gl_have_pthread_h=no])
-    if test "$gl_have_pthread_h" = yes; then
-      # Other possible tests:
-      #   -lpthreads (FSU threads, PCthreads)
-      #   -lgthreads
-      # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist
-      # in libc. IRIX 6.5 has the first one in both libc and libpthread, but
-      # the second one only in libpthread, and lock.c needs it.
-      #
-      # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04
-      # needs -pthread for some reason.  See:
-      # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html
-      saved_LIBS="$LIBS"
-      for gl_pthread in '' '-pthread'; do
-        LIBS="$LIBS $gl_pthread"
-        AC_LINK_IFELSE(
-          [AC_LANG_PROGRAM(
-             [[#include <pthread.h>
-               pthread_mutex_t m;
-               pthread_mutexattr_t ma;
-             ]],
-             [[pthread_mutex_lock (&m);
-               pthread_mutexattr_init (&ma);]])],
-          [gl_pthread_api=yes
-           LIBPTHREAD=$gl_pthread
-           LIBPMULTITHREAD=$gl_pthread])
-        LIBS="$saved_LIBS"
-        test $gl_pthread_api = yes && break
-      done
-      echo "$as_me:__oline__: gl_pthread_api=$gl_pthread_api" 
>&AS_MESSAGE_LOG_FD
-      echo "$as_me:__oline__: LIBPTHREAD=$LIBPTHREAD" >&AS_MESSAGE_LOG_FD
-
-      gl_pthread_in_glibc=no
-      # On Linux with glibc >= 2.34, libc contains the fully functional
-      # pthread functions.
-      case "$host_os" in
-        linux*)
-          AC_EGREP_CPP([Lucky user],
-            [#include <features.h>
-             #ifdef __GNU_LIBRARY__
-              #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2)
-               Lucky user
-              #endif
-             #endif
-            ],
-            [gl_pthread_in_glibc=yes],
-            [])
-          ;;
-      esac
-      echo "$as_me:__oline__: gl_pthread_in_glibc=$gl_pthread_in_glibc" 
>&AS_MESSAGE_LOG_FD
-
-      # Test for libpthread by looking for pthread_kill. (Not pthread_self,
-      # since it is defined as a macro on OSF/1.)
-      if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then
-        # The program links fine without libpthread. But it may actually
-        # need to link with libpthread in order to create multiple threads.
-        AC_CHECK_LIB([pthread], [pthread_kill],
-          [if test $gl_pthread_in_glibc = yes; then
-             LIBPMULTITHREAD=
-           else
-             LIBPMULTITHREAD=-lpthread
-             # On Solaris and HP-UX, most pthread functions exist also in libc.
-             # Therefore pthread_in_use() needs to actually try to create a
-             # thread: pthread_create from libc will fail, whereas
-             # pthread_create will actually create a thread.
-             # On Solaris 10 or newer, this test is no longer needed, because
-             # libc contains the fully functional pthread functions.
-             case "$host_os" in
-changequote(,)dnl
-               solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*)
-changequote([,])dnl
-                 AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1],
-                   [Define if the pthread_in_use() detection is hard.])
-             esac
-           fi
-          ],
-          [dnl This is needed on FreeBSD 5.2.1.
-           AC_CHECK_LIB([thr], [pthread_kill],
-             [if test $gl_pthread_in_glibc = yes; then
-                LIBPMULTITHREAD=
-              else
-                LIBPMULTITHREAD=-lthr
-              fi
-             ])
-          ])
-      elif test $gl_pthread_api != yes; then
-        # Some library is needed. Try libpthread and libc_r.
-        AC_CHECK_LIB([pthread], [pthread_kill],
-          [gl_pthread_api=yes
-           LIBPTHREAD=-lpthread
-           LIBPMULTITHREAD=-lpthread])
-        if test $gl_pthread_api != yes; then
-          # For FreeBSD 4.
-          AC_CHECK_LIB([c_r], [pthread_kill],
-            [gl_pthread_api=yes
-             LIBPTHREAD=-lc_r
-             LIBPMULTITHREAD=-lc_r])
-        fi
-      fi
-      echo "$as_me:__oline__: LIBPMULTITHREAD=$LIBPMULTITHREAD" 
>&AS_MESSAGE_LOG_FD
-    fi
-    AC_MSG_CHECKING([whether POSIX threads API is available])
-    AC_MSG_RESULT([$gl_pthread_api])
-    AC_SUBST([LIBPTHREAD])
-    AC_SUBST([LIBPMULTITHREAD])
-    if test $gl_pthread_api = yes; then
-      AC_DEFINE([HAVE_PTHREAD_API], [1],
-        [Define if you have the <pthread.h> header and the POSIX threads API.])
-    fi
-
-    dnl On some systems, sched_yield is in librt, rather than in libpthread.
-    AC_LINK_IFELSE(
-      [AC_LANG_PROGRAM(
-         [[#include <sched.h>]],
-         [[sched_yield ();]])],
-      [SCHED_YIELD_LIB=
-      ],
-      [dnl Solaris 7...10 has sched_yield in librt, not in libpthread or libc.
-       AC_CHECK_LIB([rt], [sched_yield], [SCHED_YIELD_LIB=-lrt],
-         [dnl Solaris 2.5.1, 2.6 has sched_yield in libposix4, not librt.
-          AC_CHECK_LIB([posix4], [sched_yield], [SCHED_YIELD_LIB=-lposix4])])
-      ])
-    AC_SUBST([SCHED_YIELD_LIB])
-    dnl For backward compatibility.
-    LIB_SCHED_YIELD="$SCHED_YIELD_LIB"
-    AC_SUBST([LIB_SCHED_YIELD])
-
-    gl_pthreadlib_body_done=done
-  fi
-])
-
-AC_DEFUN([gl_PTHREADLIB],
-[
-  AC_REQUIRE([gl_ANYTHREADLIB_EARLY])
-  gl_PTHREADLIB_BODY
-])
-
-dnl 
============================================================================
-dnl Macros for the ISO C API
-
-dnl gl_STDTHREADLIB
-dnl ---------------
-dnl Tests for the libraries needs for using the ISO C threads API.
-dnl Sets the variable LIBSTDTHREAD to the linker options for use in a Makefile.
-dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for
-dnl multithread-safe programs.
-dnl Defines the C macro HAVE_THREADS_H if (at least parts of) the ISO C threads
-dnl API is available.
-
-dnl The guts of gl_STDTHREADLIB. Needs to be expanded only once.
-
-AC_DEFUN([gl_STDTHREADLIB_BODY],
-[
-  AC_REQUIRE([gl_ANYTHREADLIB_EARLY])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  if test -z "$gl_stdthreadlib_body_done"; then
-    AC_CHECK_HEADERS_ONCE([threads.h])
-
-    case "$host_os" in
-      mingw* | windows*)
-        LIBSTDTHREAD=
-        ;;
-      *)
-        gl_PTHREADLIB_BODY
-        if test $ac_cv_header_threads_h = yes; then
-          dnl glibc >= 2.29 has thrd_create in libpthread.
-          dnl FreeBSD >= 10 has thrd_create in libstdthreads; this library 
depends
-          dnl on libpthread (for the symbol 'pthread_mutexattr_gettype').
-          dnl glibc >= 2.34, AIX >= 7.1, and Solaris >= 11.4 have thrd_create 
in
-          dnl libc.
-          gl_CHECK_FUNCS_ANDROID([thrd_create], [[#include <threads.h>]])
-          if test $ac_cv_func_thrd_create = yes; then
-            LIBSTDTHREAD=
-          else
-            AC_CHECK_LIB([stdthreads], [thrd_create], [
-              LIBSTDTHREAD='-lstdthreads -lpthread'
-            ], [
-              dnl Guess that thrd_create is in libpthread.
-              LIBSTDTHREAD="$LIBPMULTITHREAD"
-            ])
-          fi
-        else
-          dnl Libraries needed by thrd.c, mtx.c, cnd.c, tss.c.
-          LIBSTDTHREAD="$LIBPMULTITHREAD $SCHED_YIELD_LIB"
-        fi
-        ;;
-    esac
-    AC_SUBST([LIBSTDTHREAD])
-
-    AC_MSG_CHECKING([whether ISO C threads API is available])
-    AC_MSG_RESULT([$ac_cv_header_threads_h])
-    gl_stdthreadlib_body_done=done
-  fi
-])
-
-AC_DEFUN([gl_STDTHREADLIB],
-[
-  AC_REQUIRE([gl_ANYTHREADLIB_EARLY])
-  gl_STDTHREADLIB_BODY
-])
-
-dnl 
============================================================================
-dnl Macros for the Gnulib API
-
-dnl gl_THREADLIB
-dnl ------------
-dnl Tests for a multithreading library to be used.
-dnl If the configure.ac contains a definition of the gl_THREADLIB_DEFAULT_NO
-dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the
-dnl default is 'no', otherwise it is system dependent. In both cases, the user
-dnl can change the choice through the options --enable-threads=choice or
-dnl --disable-threads.
-dnl Defines at most one of the macros USE_ISOC_THREADS, USE_POSIX_THREADS,
-dnl USE_ISOC_AND_POSIX_THREADS, USE_WINDOWS_THREADS.
-dnl The choice --enable-threads=isoc+posix is available only on platforms that
-dnl have both the ISO C and the POSIX threads APIs. It has the effect of using
-dnl the ISO C API for most things and the POSIX API only for creating and
-dnl controlling threads (because there is no equivalent to pthread_atfork in
-dnl the ISO C API).
-dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use
-dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with
-dnl libtool).
-dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for
-dnl programs that really need multithread functionality. The difference
-dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak
-dnl symbols, typically LIBTHREAD is empty whereas LIBMULTITHREAD is not.
-dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for
-dnl multithread-safe programs.
-dnl Since support for GNU pth was removed, $LTLIBTHREAD and $LIBTHREAD have the
-dnl same value, and similarly $LTLIBMULTITHREAD and $LIBMULTITHREAD have the
-dnl same value. Only system libraries are needed.
-
-AC_DEFUN([gl_THREADLIB_EARLY],
-[
-  AC_REQUIRE([gl_THREADLIB_EARLY_BODY])
-])
-
-dnl The guts of gl_THREADLIB_EARLY. Needs to be expanded only once.
-
-AC_DEFUN([gl_THREADLIB_EARLY_BODY],
-[
-  dnl Ordering constraints: This macro modifies CPPFLAGS in a way that
-  dnl influences the result of the autoconf tests that test for *_unlocked
-  dnl declarations, on AIX 5 at least. Therefore it must come early.
-  AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl
-  AC_BEFORE([$0], [gl_ARGP])dnl
-
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems.
-  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-  dnl Check for multithreading.
-  m4_ifdef([gl_THREADLIB_DEFAULT_NO],
-    [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])],
-    [m4_divert_text([DEFAULTS], [gl_use_threads_default=])])
-  dnl gl_use_winpthreads_default defaults to 'no', because in mingw 10, like
-  dnl in mingw 5, the use of libwinpthread still makes test-pthread-tss crash.
-  m4_divert_text([DEFAULTS], [gl_use_winpthreads_default=no])
-  AC_ARG_ENABLE([threads],
-AS_HELP_STRING([[--enable-threads={isoc|posix|isoc+posix|windows}]], [specify 
multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [
-AS_HELP_STRING([[--disable-threads]], [build without multithread safety])]),
-    [gl_use_threads=$enableval],
-    [if test -n "$gl_use_threads_default"; then
-       gl_use_threads="$gl_use_threads_default"
-     else
-changequote(,)dnl
-       case "$host_os" in
-         dnl Disable multithreading by default on OSF/1, because it interferes
-         dnl with fork()/exec(): When msgexec is linked with -lpthread, its
-         dnl child process gets an endless segmentation fault inside execvp().
-         osf*) gl_use_threads=no ;;
-         dnl Disable multithreading by default on Cygwin 1.5.x, because it has
-         dnl bugs that lead to endless loops or crashes. See
-         dnl <https://cygwin.com/ml/cygwin/2009-08/msg00283.html>.
-         cygwin*)
-               case `uname -r` in
-                 1.[0-5].*) gl_use_threads=no ;;
-                 *)         gl_use_threads=yes ;;
-               esac
-               ;;
-         dnl Obey gl_AVOID_WINPTHREAD on mingw.
-         mingw* | windows*)
-               case "$gl_use_winpthreads_default" in
-                 yes) gl_use_threads=posix ;;
-                 no)  gl_use_threads=windows ;;
-                 *)   gl_use_threads=yes ;;
-               esac
-               ;;
-         *)    gl_use_threads=yes ;;
-       esac
-changequote([,])dnl
-     fi
-    ])
-  if test "$gl_use_threads" = yes \
-     || test "$gl_use_threads" = isoc \
-     || test "$gl_use_threads" = posix \
-     || test "$gl_use_threads" = isoc+posix; then
-    # For using <threads.h> or <pthread.h>:
-    gl_ANYTHREADLIB_EARLY
-  fi
-])
-
-dnl The guts of gl_THREADLIB. Needs to be expanded only once.
-
-AC_DEFUN([gl_THREADLIB_BODY],
-[
-  AC_REQUIRE([gl_THREADLIB_EARLY_BODY])
-  gl_threads_api=none
-  LIBTHREAD=
-  LTLIBTHREAD=
-  LIBMULTITHREAD=
-  LTLIBMULTITHREAD=
-  if test "$gl_use_threads" != no; then
-    dnl Check whether the compiler and linker support weak declarations.
-    gl_WEAK_SYMBOLS
-    if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
-      dnl If we use weak symbols to implement pthread_in_use / pth_in_use /
-      dnl thread_in_use, we also need to test whether the ISO C 11 thrd_create
-      dnl facility is in use.
-      AC_CHECK_HEADERS_ONCE([threads.h])
-      :
-    fi
-    if test "$gl_use_threads" = isoc || test "$gl_use_threads" = isoc+posix; 
then
-      AC_CHECK_HEADERS_ONCE([threads.h])
-      gl_have_isoc_threads="$ac_cv_header_threads_h"
-    fi
-    if test "$gl_use_threads" = yes \
-       || test "$gl_use_threads" = posix \
-       || test "$gl_use_threads" = isoc+posix; then
-      gl_PTHREADLIB_BODY
-      LIBTHREAD=$LIBPTHREAD LTLIBTHREAD=$LIBPTHREAD
-      LIBMULTITHREAD=$LIBPMULTITHREAD LTLIBMULTITHREAD=$LIBPMULTITHREAD
-      if test $gl_pthread_api = yes; then
-        if test "$gl_use_threads" = isoc+posix && test "$gl_have_isoc_threads" 
= yes; then
-          gl_threads_api='isoc+posix'
-          AC_DEFINE([USE_ISOC_AND_POSIX_THREADS], [1],
-            [Define if the combination of the ISO C and POSIX multithreading 
APIs can be used.])
-          LIBTHREAD= LTLIBTHREAD=
-        else
-          gl_threads_api=posix
-          AC_DEFINE([USE_POSIX_THREADS], [1],
-            [Define if the POSIX multithreading library can be used.])
-          if test -z "$LIBMULTITHREAD" && test -z "$LTLIBMULTITHREAD"; then
-            AC_DEFINE([USE_POSIX_THREADS_FROM_LIBC], [1],
-              [Define if references to the POSIX multithreading library are 
satisfied by libc.])
-          else
-            if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
-              AC_DEFINE([USE_POSIX_THREADS_WEAK], [1],
-                [Define if references to the POSIX multithreading library 
should be made weak.])
-              LIBTHREAD= LTLIBTHREAD=
-            else
-              case "$host_os" in
-                freebsd* | dragonfly* | midnightbsd*)
-                  if test "x$LIBTHREAD" != "x$LIBMULTITHREAD"; then
-                    dnl If weak symbols can't tell whether pthread_create(), 
pthread_key_create()
-                    dnl etc. will succeed, we need a runtime test.
-                    AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1],
-                      [Define if the pthread_in_use() detection is hard.])
-                  fi
-                  ;;
-              esac
-            fi
-          fi
-        fi
-      fi
-    fi
-    if test $gl_threads_api = none; then
-      if test "$gl_use_threads" = isoc && test "$gl_have_isoc_threads" = yes; 
then
-        gl_STDTHREADLIB_BODY
-        LIBTHREAD=$LIBSTDTHREAD LTLIBTHREAD=$LIBSTDTHREAD
-        LIBMULTITHREAD=$LIBSTDTHREAD LTLIBMULTITHREAD=$LIBSTDTHREAD
-        gl_threads_api=isoc
-        AC_DEFINE([USE_ISOC_THREADS], [1],
-          [Define if the ISO C multithreading library can be used.])
-      fi
-    fi
-    if test $gl_threads_api = none; then
-      case "$gl_use_threads" in
-        yes | windows | win32) # The 'win32' is for backward compatibility.
-          if { case "$host_os" in
-                 mingw* | windows*) true;;
-                 *) false;;
-               esac
-             }; then
-            gl_threads_api=windows
-            AC_DEFINE([USE_WINDOWS_THREADS], [1],
-              [Define if the native Windows multithreading API can be used.])
-          fi
-          ;;
-      esac
-    fi
-  else
-    dnl "$gl_use_threads" is "no".
-    AC_DEFINE([AVOID_ANY_THREADS], [1],
-      [Define if no multithread safety and no multithreading is desired.])
-  fi
-  AC_MSG_CHECKING([for multithread API to use])
-  AC_MSG_RESULT([$gl_threads_api])
-  AC_SUBST([LIBTHREAD])
-  AC_SUBST([LTLIBTHREAD])
-  AC_SUBST([LIBMULTITHREAD])
-  AC_SUBST([LTLIBMULTITHREAD])
-])
-
-AC_DEFUN([gl_THREADLIB],
-[
-  AC_REQUIRE([gl_THREADLIB_EARLY])
-  AC_REQUIRE([gl_THREADLIB_BODY])
-])
-
-
-dnl gl_DISABLE_THREADS
-dnl ------------------
-dnl Sets the gl_THREADLIB default so that threads are not used by default.
-dnl The user can still override it at installation time, by using the
-dnl configure option '--enable-threads'.
-
-AC_DEFUN([gl_DISABLE_THREADS], [
-  m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no])
-])
-
-
-dnl gl_AVOID_WINPTHREAD
-dnl -------------------
-dnl Sets the gl_THREADLIB default so that on mingw, a dependency to the
-dnl libwinpthread DLL (mingw-w64 winpthreads library) is avoided.
-dnl The user can still override it at installation time, by using the
-dnl configure option '--enable-threads=posix'.
-dnl As of 2023, this is now the default.
-
-AC_DEFUN([gl_AVOID_WINPTHREAD], [
-  m4_divert_text([INIT_PREPARE], [gl_use_winpthreads_default=no])
-])
-
-
-dnl 
============================================================================
-
-
-dnl Survey of platforms:
-dnl
-dnl Platform           Available  Compiler    Supports   test-lock
-dnl                    flavours   option      weak       result
-dnl ---------------    ---------  ---------   --------   ---------
-dnl Linux 2.4/glibc    posix      -lpthread       Y      OK
-dnl
-dnl Linux/glibc 2.34   posix                      Y      OK
-dnl
-dnl GNU Hurd/glibc     posix      -lpthread       Y      OK
-dnl
-dnl Ubuntu 14.04       posix      -pthread        Y      OK
-dnl
-dnl FreeBSD 5.3        posix      -lc_r           Y
-dnl                    posix      -lkse ?         Y
-dnl                    posix      -lpthread ?     Y
-dnl                    posix      -lthr           Y
-dnl
-dnl FreeBSD 5.2        posix      -lc_r           Y
-dnl                    posix      -lkse           Y
-dnl                    posix      -lthr           Y
-dnl
-dnl FreeBSD 4.0,4.10   posix      -lc_r           Y      OK
-dnl
-dnl NetBSD 1.6         --
-dnl
-dnl OpenBSD 3.4        posix      -lpthread       Y      OK
-dnl
-dnl Mac OS X 10.[123]  posix      -lpthread       Y      OK
-dnl
-dnl Solaris 7,8,9      posix      -lpthread       Y      Sol 7,8: 0.0; Sol 9: 
OK
-dnl
-dnl HP-UX 11           posix      -lpthread       N (cc) OK
-dnl                                               Y (gcc)
-dnl
-dnl IRIX 6.5           posix      -lpthread       Y      0.5
-dnl
-dnl AIX 4.3,5.1        posix      -lpthread       N      AIX 4: 0.5; AIX 5: OK
-dnl
-dnl OSF/1 4.0,5.1      posix      -pthread (cc)   N      OK
-dnl                               -lpthread (gcc) Y
-dnl
-dnl Cygwin             posix      -lpthread       Y      OK
-dnl
-dnl Mingw              windows                    N      OK
-dnl
-dnl BeOS 5             --
-dnl
-dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is
-dnl turned off:
-dnl   OK if all three tests terminate OK,
-dnl   0.5 if the first test terminates OK but the second one loops endlessly,
-dnl   0.0 if the first test already loops endlessly.
diff --git a/tp/Texinfo/XS/gnulib/m4/timespec.m4 
b/tp/Texinfo/XS/gnulib/m4/timespec.m4
deleted file mode 100644
index 39255320c7..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/timespec.m4
+++ /dev/null
@@ -1,11 +0,0 @@
-# timespec.m4
-# serial 15
-dnl Copyright (C) 2000-2001, 2003-2007, 2009-2024 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 This file is offered as-is, without any warranty.
-
-dnl From Jim Meyering
-
-AC_DEFUN([gl_TIMESPEC], [:])
diff --git a/tp/Texinfo/XS/gnulib/m4/utime.m4 b/tp/Texinfo/XS/gnulib/m4/utime.m4
deleted file mode 100644
index c4310300b9..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/utime.m4
+++ /dev/null
@@ -1,79 +0,0 @@
-# utime.m4
-# serial 6
-dnl Copyright (C) 2017-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_UTIME],
-[
-  AC_REQUIRE([gl_UTIME_H_DEFAULTS])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_CHECK_FUNCS_ONCE([lstat])
-  case "$host_os" in
-    mingw* | windows*)
-      dnl On this platform, the original utime() or _utime() produces
-      dnl timestamps that are affected by the time zone.
-      dnl Use the function name 'rpl_utime' always, in order to avoid a
-      dnl possible conflict with the function name 'utime' from oldnames.lib
-      dnl (MSVC) or liboldnames.a (mingw).
-      REPLACE_UTIME=1
-      ;;
-    *)
-      AC_CHECK_FUNCS([utime])
-      if test $ac_cv_func_utime = no; then
-        HAVE_UTIME=0
-      else
-        dnl On macOS 10.13, utime("link-to-file/", NULL) mistakenly succeeds.
-        AC_CACHE_CHECK([whether utime handles trailing slashes on files],
-          [gl_cv_func_utime_file_slash],
-          [touch conftest.tmp
-           # Assume that if we have lstat, we can also check symlinks.
-           if test $ac_cv_func_lstat = yes; then
-             ln -s conftest.tmp conftest.lnk
-           fi
-           AC_RUN_IFELSE(
-             [AC_LANG_PROGRAM(
-               [[#include <stddef.h>
-                 #include <utime.h>
-               ]],
-               [[int result = 0;
-                 if (!utime ("conftest.tmp/", NULL))
-                   result |= 1;
-                 #if HAVE_LSTAT
-                 if (!utime ("conftest.lnk/", NULL))
-                   result |= 2;
-                 #endif
-                 return result;
-               ]])],
-             [gl_cv_func_utime_file_slash=yes],
-             [gl_cv_func_utime_file_slash=no],
-             [case "$host_os" in
-                                   # Guess yes on Linux systems
-                                   # and on systems that emulate the Linux 
system calls.
-                linux* | midipix*) gl_cv_func_utime_file_slash="guessing yes" 
;;
-                                   # Guess yes on glibc systems.
-                *-gnu* | gnu*)     gl_cv_func_utime_file_slash="guessing yes" 
;;
-                                   # Guess no on macOS.
-                darwin*)           gl_cv_func_utime_file_slash="guessing no" ;;
-                                   # If we don't know, obey 
--enable-cross-guesses.
-                  *)               
gl_cv_func_utime_file_slash="$gl_cross_guess_normal" ;;
-              esac
-             ])
-           rm -f conftest.tmp conftest.lnk
-          ])
-        case $gl_cv_func_stat_file_slash in
-          *no)
-            REPLACE_UTIME=1
-            AC_DEFINE([REPLACE_FUNC_UTIME_FILE], [1],
-              [Define to 1 if utime needs help when passed a file name with a 
trailing slash])
-            ;;
-        esac
-      fi
-      ;;
-  esac
-])
-
-# Prerequisites of lib/utime.c.
-AC_DEFUN([gl_PREREQ_UTIME], [:])
diff --git a/tp/Texinfo/XS/gnulib/m4/utime_h.m4 
b/tp/Texinfo/XS/gnulib/m4/utime_h.m4
deleted file mode 100644
index 0d3aa8727b..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/utime_h.m4
+++ /dev/null
@@ -1,65 +0,0 @@
-# utime_h.m4
-# serial 8
-dnl Copyright (C) 2017-2024 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 This file is offered as-is, without any warranty.
-
-dnl From Bruno Haible.
-
-AC_DEFUN_ONCE([gl_UTIME_H],
-[
-  AC_REQUIRE([gl_UTIME_H_DEFAULTS])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])])
-  AC_CHECK_HEADERS_ONCE([utime.h])
-  gl_CHECK_NEXT_HEADERS([utime.h])
-
-  if test $ac_cv_header_utime_h = yes; then
-    HAVE_UTIME_H=1
-  else
-    HAVE_UTIME_H=0
-  fi
-  AC_SUBST([HAVE_UTIME_H])
-
-  dnl Check for declarations of anything we want to poison if the
-  dnl corresponding gnulib module is not in use.
-  gl_WARN_ON_USE_PREPARE([[#include <utime.h>
-    ]],
-    [utime])
-])
-
-# gl_UTIME_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_UTIME_MODULE_INDICATOR],
-[
-  dnl Ensure to expand the default settings once only.
-  gl_UTIME_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_UTIME_H_REQUIRE_DEFAULTS],
-[
-  m4_defun(GL_MODULE_INDICATOR_PREFIX[_UTIME_H_MODULE_INDICATOR_DEFAULTS], [
-    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UTIME])
-    dnl Support Microsoft deprecated alias function names by default.
-    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UTIME], [1])
-  ])
-  m4_require(GL_MODULE_INDICATOR_PREFIX[_UTIME_H_MODULE_INDICATOR_DEFAULTS])
-  AC_REQUIRE([gl_UTIME_H_DEFAULTS])
-])
-
-AC_DEFUN([gl_UTIME_H_DEFAULTS],
-[
-  dnl Assume POSIX behavior unless another module says otherwise.
-  HAVE_UTIME=1;              AC_SUBST([HAVE_UTIME])
-  REPLACE_UTIME=0;           AC_SUBST([REPLACE_UTIME])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/utimens.m4 
b/tp/Texinfo/XS/gnulib/m4/utimens.m4
deleted file mode 100644
index 5730b55feb..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/utimens.m4
+++ /dev/null
@@ -1,59 +0,0 @@
-# utimens.m4
-# serial 17
-dnl Copyright (C) 2003-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_UTIMENS],
-[
-  dnl Prerequisites of lib/utimens.c.
-  AC_REQUIRE([gl_FUNC_UTIMES])
-  AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  gl_CHECK_FUNCS_ANDROID([futimes], [[#include <sys/time.h>]])
-  gl_CHECK_FUNCS_ANDROID([futimesat], [[#include <sys/time.h>]])
-  gl_CHECK_FUNCS_ANDROID([lutimes], [[#include <sys/time.h>]])
-  gl_CHECK_FUNCS_ANDROID([futimens], [[#include <sys/stat.h>]])
-  gl_CHECK_FUNCS_ANDROID([utimensat], [[#include <sys/stat.h>]])
-  AC_CHECK_FUNCS_ONCE([utimens lutimens])
-
-  if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then
-    dnl FreeBSD 8.0-rc2 mishandles futimesat(fd,NULL,time).  It is not
-    dnl standardized, but Solaris implemented it first and uses it as
-    dnl its only means to set fd time.
-    AC_CACHE_CHECK([whether futimesat handles NULL file],
-      [gl_cv_func_futimesat_works],
-      [touch conftest.file
-       AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <stddef.h>
-#include <sys/times.h>
-#include <fcntl.h>
-]GL_MDA_DEFINES],
-        [[int fd = open ("conftest.file", O_RDWR);
-          if (fd < 0) return 1;
-          if (futimesat (fd, NULL, NULL)) return 2;
-        ]])],
-        [gl_cv_func_futimesat_works=yes],
-        [gl_cv_func_futimesat_works=no],
-        [case "$host_os" in
-                              # Guess yes on Linux systems
-                              # and on systems that emulate the Linux system 
calls.
-           linux* | midipix*) gl_cv_func_futimesat_works="guessing yes" ;;
-                              # Guess yes on glibc systems.
-           *-gnu*)            gl_cv_func_futimesat_works="guessing yes" ;;
-                              # If we don't know, obey --enable-cross-guesses.
-           *)                 
gl_cv_func_futimesat_works="$gl_cross_guess_normal" ;;
-         esac
-        ])
-      rm -f conftest.file])
-    case "$gl_cv_func_futimesat_works" in
-      *yes) ;;
-      *)
-        AC_DEFINE([FUTIMESAT_NULL_BUG], [1],
-          [Define to 1 if futimesat mishandles a NULL file name.])
-        ;;
-    esac
-  fi
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/utimes.m4 
b/tp/Texinfo/XS/gnulib/m4/utimes.m4
deleted file mode 100644
index 807b4600f0..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/utimes.m4
+++ /dev/null
@@ -1,162 +0,0 @@
-# Detect some bugs in glibc's implementation of utimes.
-# serial 9
-
-dnl Copyright (C) 2003-2005, 2009-2024 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 This file is offered as-is, without any warranty.
-
-# See if we need to work around bugs in glibc's implementation of
-# utimes from 2003-07-12 to 2003-09-17.
-# First, there was a bug that would make utimes set mtime
-# and atime to zero (1970-01-01) unconditionally.
-# Then, there was code to round rather than truncate.
-# Then, there was an implementation (sparc64, Linux-2.4.28, glibc-2.3.3)
-# that didn't honor the NULL-means-set-to-current-time semantics.
-# Finally, there was also a version of utimes that failed on read-only
-# files, while utime worked fine (linux-2.2.20, glibc-2.2.5).
-#
-# From Jim Meyering, with suggestions from Paul Eggert.
-
-AC_DEFUN([gl_FUNC_UTIMES],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  AC_CACHE_CHECK([whether the utimes function works],
-                 [gl_cv_func_working_utimes],
-    [AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/time.h>
-#include <time.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <utime.h>
-#include <errno.h>
-]GL_MDA_DEFINES[
-
-static int
-inorder (time_t a, time_t b, time_t c)
-{
-  return a <= b && b <= c;
-}
-
-int
-main ()
-{
-  int result = 0;
-  char const *file = "conftest.utimes";
-  /* On OS/2, file timestamps must be on or after 1980 in local time,
-     with an even number of seconds.  */
-  static struct timeval timeval[2] = {{315620000 + 10, 10},
-                                      {315620000 + 1000000, 999998}};
-
-  /* Test whether utimes() essentially works.  */
-  {
-    struct stat sbuf;
-    FILE *f = fopen (file, "w");
-    if (f == NULL)
-      result |= 1;
-    else if (fclose (f) != 0)
-      result |= 1;
-    else if (utimes (file, timeval) != 0)
-      result |= 2;
-    else if (lstat (file, &sbuf) != 0)
-      result |= 1;
-    else if (!(sbuf.st_atime == timeval[0].tv_sec
-               && sbuf.st_mtime == timeval[1].tv_sec))
-      result |= 4;
-    if (unlink (file) != 0)
-      result |= 1;
-  }
-
-  /* Test whether utimes() with a NULL argument sets the file's timestamp
-     to the current time.  Use 'fstat' as well as 'time' to
-     determine the "current" time, to accommodate NFS file systems
-     if there is a time skew between the host and the NFS server.  */
-  {
-    int fd = open (file, O_WRONLY|O_CREAT, 0644);
-    if (fd < 0)
-      result |= 1;
-    else
-      {
-        time_t t0, t2;
-        struct stat st0, st1, st2;
-        if (time (&t0) == (time_t) -1)
-          result |= 1;
-        else if (fstat (fd, &st0) != 0)
-          result |= 1;
-        else if (utimes (file, timeval) != 0
-                 && (errno != EACCES
-                     /* OS/2 kLIBC utimes fails on opened files.  */
-                     || close (fd) != 0
-                     || utimes (file, timeval) != 0
-                     || (fd = open (file, O_WRONLY)) < 0))
-          result |= 2;
-        else if (utimes (file, NULL) != 0
-                 && (errno != EACCES
-                     /* OS/2 kLIBC utimes fails on opened files.  */
-                     || close (fd) != 0
-                     || utimes (file, NULL) != 0
-                     || (fd = open (file, O_WRONLY)) < 0))
-          result |= 8;
-        else if (fstat (fd, &st1) != 0)
-          result |= 1;
-        else if (write (fd, "\n", 1) != 1)
-          result |= 1;
-        else if (fstat (fd, &st2) != 0)
-          result |= 1;
-        else if (time (&t2) == (time_t) -1)
-          result |= 1;
-        else
-          {
-            int m_ok_POSIX = inorder (t0, st1.st_mtime, t2);
-            int m_ok_NFS = inorder (st0.st_mtime, st1.st_mtime, st2.st_mtime);
-            if (! (st1.st_atime == st1.st_mtime))
-              result |= 16;
-            if (! (m_ok_POSIX || m_ok_NFS))
-              result |= 32;
-          }
-        if (close (fd) != 0)
-          result |= 1;
-      }
-    if (unlink (file) != 0)
-      result |= 1;
-  }
-
-  /* Test whether utimes() with a NULL argument works on read-only files.  */
-  {
-    int fd = open (file, O_WRONLY|O_CREAT, 0444);
-    if (fd < 0)
-      result |= 1;
-    else if (close (fd) != 0)
-      result |= 1;
-    else if (utimes (file, NULL) != 0)
-      result |= 64;
-    if (unlink (file) != 0)
-      result |= 1;
-  }
-
-  return result;
-}
-  ]])],
-       [gl_cv_func_working_utimes=yes],
-       [gl_cv_func_working_utimes=no],
-       [case "$host_os" in
-                             # Guess yes on musl systems.
-          *-musl*)           gl_cv_func_working_utimes="guessing yes" ;;
-                             # Guess no on native Windows.
-          mingw* | windows*) gl_cv_func_working_utimes="guessing no" ;;
-          *)                 
gl_cv_func_working_utimes="$gl_cross_guess_normal" ;;
-        esac
-       ])
-    ])
-
-  case "$gl_cv_func_working_utimes" in
-    *yes)
-      AC_DEFINE([HAVE_WORKING_UTIMES], [1], [Define if utimes works properly.])
-      ;;
-  esac
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/visibility.m4 
b/tp/Texinfo/XS/gnulib/m4/visibility.m4
deleted file mode 100644
index e72532db8c..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/visibility.m4
+++ /dev/null
@@ -1,84 +0,0 @@
-# visibility.m4
-# serial 9
-dnl Copyright (C) 2005, 2008, 2010-2024 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 This file is offered as-is, without any warranty.
-
-dnl From Bruno Haible.
-
-dnl Tests whether the compiler supports the command-line option
-dnl -fvisibility=hidden and the function and variable attributes
-dnl __attribute__((__visibility__("hidden"))) and
-dnl __attribute__((__visibility__("default"))).
-dnl Does *not* test for __visibility__("protected") - which has tricky
-dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
-dnl Mac OS X.
-dnl Does *not* test for __visibility__("internal") - which has processor
-dnl dependent semantics.
-dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
-dnl "really only recommended for legacy code".
-dnl Set the variable CFLAG_VISIBILITY.
-dnl Defines and sets the variable HAVE_VISIBILITY.
-
-AC_DEFUN([gl_VISIBILITY],
-[
-  AC_REQUIRE([AC_PROG_CC])
-  CFLAG_VISIBILITY=
-  HAVE_VISIBILITY=0
-  if test -n "$GCC"; then
-    dnl First, check whether -Werror can be added to the command line, or
-    dnl whether it leads to an error because of some other option that the
-    dnl user has put into $CC $CFLAGS $CPPFLAGS.
-    AC_CACHE_CHECK([whether the -Werror option is usable],
-      [gl_cv_cc_vis_werror],
-      [gl_saved_CFLAGS="$CFLAGS"
-       CFLAGS="$CFLAGS -Werror"
-       AC_COMPILE_IFELSE(
-         [AC_LANG_PROGRAM([[]], [[]])],
-         [gl_cv_cc_vis_werror=yes],
-         [gl_cv_cc_vis_werror=no])
-       CFLAGS="$gl_saved_CFLAGS"
-      ])
-    dnl Now check whether visibility declarations are supported.
-    AC_CACHE_CHECK([for simple visibility declarations],
-      [gl_cv_cc_visibility],
-      [gl_saved_CFLAGS="$CFLAGS"
-       CFLAGS="$CFLAGS -fvisibility=hidden"
-       dnl We use the option -Werror and a function dummyfunc, because on some
-       dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
-       dnl "visibility attribute not supported in this configuration; ignored"
-       dnl at the first function definition in every compilation unit, and we
-       dnl don't want to use the option in this case.
-       if test $gl_cv_cc_vis_werror = yes; then
-         CFLAGS="$CFLAGS -Werror"
-       fi
-       AC_COMPILE_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[extern __attribute__((__visibility__("hidden"))) int hiddenvar;
-              extern __attribute__((__visibility__("default"))) int 
exportedvar;
-              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) {}
-            ]],
-            [[]])],
-         [gl_cv_cc_visibility=yes],
-         [gl_cv_cc_visibility=no])
-       CFLAGS="$gl_saved_CFLAGS"
-      ])
-    if test $gl_cv_cc_visibility = yes; then
-      CFLAG_VISIBILITY="-fvisibility=hidden"
-      HAVE_VISIBILITY=1
-    fi
-  fi
-  AC_SUBST([CFLAG_VISIBILITY])
-  AC_SUBST([HAVE_VISIBILITY])
-  AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
-    [Define to 1 or 0, depending whether the compiler supports simple 
visibility declarations.])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/write.m4 b/tp/Texinfo/XS/gnulib/m4/write.m4
deleted file mode 100644
index 4ae9b7a9ff..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/write.m4
+++ /dev/null
@@ -1,36 +0,0 @@
-# write.m4
-# serial 6
-dnl Copyright (C) 2008-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_FUNC_WRITE],
-[
-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  m4_ifdef([gl_MSVC_INVAL], [
-    AC_REQUIRE([gl_MSVC_INVAL])
-    if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
-      REPLACE_WRITE=1
-    fi
-  ])
-  dnl This ifdef is just an optimization, to avoid performing a configure
-  dnl check whose result is not used. It does not make the test of
-  dnl GNULIB_UNISTD_H_SIGPIPE or GNULIB_SIGPIPE redundant.
-  m4_ifdef([gl_SIGNAL_SIGPIPE], [
-    gl_SIGNAL_SIGPIPE
-    if test $gl_cv_header_signal_h_SIGPIPE != yes; then
-      REPLACE_WRITE=1
-    fi
-  ])
-  m4_ifdef([gl_NONBLOCKING_IO], [
-    gl_NONBLOCKING_IO
-    if test $gl_cv_have_nonblocking != yes; then
-      REPLACE_WRITE=1
-    fi
-  ])
-])
-
-# Prerequisites of lib/write.c.
-AC_DEFUN([gl_PREREQ_WRITE], [:])
diff --git a/tp/Texinfo/XS/gnulib/m4/xalloc.m4 
b/tp/Texinfo/XS/gnulib/m4/xalloc.m4
deleted file mode 100644
index 1255bbae10..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/xalloc.m4
+++ /dev/null
@@ -1,9 +0,0 @@
-# xalloc.m4
-# serial 18
-dnl Copyright (C) 2002-2006, 2009-2024 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 This file is offered as-is, without any warranty.
-
-AC_DEFUN([gl_XALLOC], [:])
diff --git a/tp/Texinfo/XS/gnulib/m4/xattr.m4 b/tp/Texinfo/XS/gnulib/m4/xattr.m4
deleted file mode 100644
index 9b2dd8d245..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/xattr.m4
+++ /dev/null
@@ -1,55 +0,0 @@
-# xattr.m4
-# serial 7
-dnl Copyright (C) 2003-2024 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 This file is offered as-is, without any warranty.
-
-# Check for Extended Attributes (Linux)
-
-AC_DEFUN([gl_FUNC_XATTR],
-[
-  AC_ARG_ENABLE([xattr],
-        AS_HELP_STRING([[--disable-xattr]],
-                       [do not support extended attributes]),
-        [use_xattr=$enableval], [use_xattr=yes])
-
-  LIB_XATTR=
-  AC_SUBST([LIB_XATTR])
-
-  if test "$use_xattr" = yes; then
-    AC_CACHE_CHECK([for xattr library with ATTR_ACTION_PERMISSIONS],
-      [gl_cv_xattr_lib],
-      [gl_cv_xattr_lib=no
-       AC_LANG_CONFTEST(
-         [AC_LANG_PROGRAM(
-            [[#include <attr/error_context.h>
-              #include <attr/libattr.h>
-              static int
-              is_attr_permissions (const char *name, struct error_context *ctx)
-              {
-                return attr_copy_action (name, ctx) == ATTR_ACTION_PERMISSIONS;
-              }
-            ]],
-            [[return attr_copy_fd ("/", 0, "/", 0, is_attr_permissions, 0);
-            ]])])
-       AC_LINK_IFELSE([],
-         [gl_cv_xattr_lib='none required'],
-         [xattr_saved_LIBS=$LIBS
-          LIBS="-lattr $LIBS"
-          AC_LINK_IFELSE([], [gl_cv_xattr_lib=-lattr])
-          LIBS=$xattr_saved_LIBS])])
-    if test "$gl_cv_xattr_lib" = no; then
-      AC_MSG_WARN([libattr development library was not found or not usable.])
-      AC_MSG_WARN([AC_PACKAGE_NAME will be built without xattr support.])
-      use_xattr=no
-    elif test "$gl_cv_xattr_lib" != 'none required'; then
-      LIB_XATTR=$gl_cv_xattr_lib
-    fi
-  fi
-  if test "$use_xattr" = yes; then
-    AC_DEFINE([USE_XATTR], [1],
-      [Define to 1 to use the Linux extended attributes library.])
-  fi
-])
diff --git a/tp/Texinfo/XS/gnulib/po/POTFILES.in 
b/tp/Texinfo/XS/gnulib/po/POTFILES.in
index b8e9a90201..0772bbb951 100644
--- a/tp/Texinfo/XS/gnulib/po/POTFILES.in
+++ b/tp/Texinfo/XS/gnulib/po/POTFILES.in
@@ -24,11 +24,6 @@
 # List of files which contain translatable strings.
 gnulib/lib/_Noreturn.h
 gnulib/lib/access.c
-gnulib/lib/acl-errno-valid.c
-gnulib/lib/acl-internal.c
-gnulib/lib/acl-internal.h
-gnulib/lib/acl.h
-gnulib/lib/acl_entries.c
 gnulib/lib/alloca.in.h
 gnulib/lib/arg-nonnull.h
 gnulib/lib/array-mergesort.h
@@ -36,33 +31,11 @@ gnulib/lib/asnprintf.c
 gnulib/lib/asprintf.c
 gnulib/lib/assert.in.h
 gnulib/lib/attribute.h
-gnulib/lib/basename-lgpl.c
-gnulib/lib/basename-lgpl.h
-gnulib/lib/binary-io.c
-gnulib/lib/binary-io.h
 gnulib/lib/c++defs.h
-gnulib/lib/c-ctype.c
-gnulib/lib/c-ctype.h
-gnulib/lib/c-strcase.h
-gnulib/lib/c-strcasecmp.c
-gnulib/lib/c-strcaseeq.h
-gnulib/lib/c-strncasecmp.c
-gnulib/lib/c32is-impl.h
-gnulib/lib/c32isprint.c
-gnulib/lib/calloc.c
-gnulib/lib/cloexec.c
-gnulib/lib/cloexec.h
 gnulib/lib/close.c
-gnulib/lib/copy-file-range.c
-gnulib/lib/copy-file.c
-gnulib/lib/copy-file.h
 gnulib/lib/dup2.c
 gnulib/lib/errno.in.h
-gnulib/lib/error.c
-gnulib/lib/error.in.h
 gnulib/lib/euidaccess.c
-gnulib/lib/exitfail.c
-gnulib/lib/exitfail.h
 gnulib/lib/fcntl.c
 gnulib/lib/fcntl.in.h
 gnulib/lib/fd-hook.c
@@ -72,84 +45,40 @@ gnulib/lib/float+.h
 gnulib/lib/float.c
 gnulib/lib/float.in.h
 gnulib/lib/free.c
-gnulib/lib/fstat.c
-gnulib/lib/full-write.c
-gnulib/lib/full-write.h
-gnulib/lib/get-permissions.c
 gnulib/lib/getdelim.c
 gnulib/lib/getdtablesize.c
 gnulib/lib/getgroups.c
 gnulib/lib/getline.c
-gnulib/lib/getprogname.c
-gnulib/lib/getprogname.h
 gnulib/lib/gettext.h
-gnulib/lib/gettime.c
-gnulib/lib/gettimeofday.c
 gnulib/lib/group-member.c
-gnulib/lib/hard-locale.c
-gnulib/lib/hard-locale.h
-gnulib/lib/ialloc.c
-gnulib/lib/ialloc.h
 gnulib/lib/idx.h
-gnulib/lib/ignore-value.h
 gnulib/lib/intprops-internal.h
-gnulib/lib/intprops.h
 gnulib/lib/inttypes.in.h
 gnulib/lib/itold.c
-gnulib/lib/lc-charset-dispatch.c
-gnulib/lib/lc-charset-dispatch.h
 gnulib/lib/libunistring.valgrind
 gnulib/lib/limits.in.h
-gnulib/lib/localcharset.c
 gnulib/lib/localcharset.h
 gnulib/lib/locale.in.h
-gnulib/lib/lstat.c
 gnulib/lib/malloc.c
 gnulib/lib/malloca.c
 gnulib/lib/malloca.h
-gnulib/lib/mbrtoc32.c
-gnulib/lib/mbrtowc-impl-utf8.h
-gnulib/lib/mbrtowc-impl.h
-gnulib/lib/mbrtowc.c
-gnulib/lib/mbsinit.c
 gnulib/lib/mbszero.c
-gnulib/lib/mbtowc-lock.c
-gnulib/lib/mbtowc-lock.h
 gnulib/lib/memchr.c
 gnulib/lib/memchr.valgrind
-gnulib/lib/minmax.h
 gnulib/lib/msvc-inval.c
 gnulib/lib/msvc-inval.h
 gnulib/lib/msvc-nothrow.c
 gnulib/lib/msvc-nothrow.h
-gnulib/lib/open.c
 gnulib/lib/pathmax.h
 gnulib/lib/printf-args.c
 gnulib/lib/printf-args.h
 gnulib/lib/printf-parse.c
 gnulib/lib/printf-parse.h
-gnulib/lib/qcopy-acl.c
-gnulib/lib/quote.h
-gnulib/lib/quotearg.c
-gnulib/lib/quotearg.h
-gnulib/lib/raise.c
 gnulib/lib/rawmemchr.c
 gnulib/lib/rawmemchr.valgrind
-gnulib/lib/read.c
 gnulib/lib/realloc.c
-gnulib/lib/reallocarray.c
 gnulib/lib/root-uid.h
-gnulib/lib/safe-read.c
-gnulib/lib/safe-read.h
-gnulib/lib/safe-write.c
-gnulib/lib/safe-write.h
-gnulib/lib/set-permissions.c
 gnulib/lib/setenv.c
-gnulib/lib/setlocale-lock.c
-gnulib/lib/setlocale_null-unlocked.c
-gnulib/lib/setlocale_null.c
-gnulib/lib/setlocale_null.h
-gnulib/lib/signal.in.h
 gnulib/lib/size_max.h
 gnulib/lib/stat-time.c
 gnulib/lib/stat-time.h
@@ -166,19 +95,12 @@ gnulib/lib/stdlib.in.h
 gnulib/lib/strchrnul.c
 gnulib/lib/strchrnul.valgrind
 gnulib/lib/streq.h
-gnulib/lib/strerror-override.c
-gnulib/lib/strerror-override.h
-gnulib/lib/strerror.c
 gnulib/lib/string.in.h
 gnulib/lib/strndup.c
 gnulib/lib/strnlen.c
-gnulib/lib/sys-limits.h
 gnulib/lib/sys_stat.in.h
-gnulib/lib/sys_time.in.h
 gnulib/lib/sys_types.in.h
 gnulib/lib/time.in.h
-gnulib/lib/timespec.c
-gnulib/lib/timespec.h
 gnulib/lib/uchar.in.h
 gnulib/lib/unicase.in.h
 gnulib/lib/unicase/cased.c
@@ -215,8 +137,6 @@ gnulib/lib/unictype/categ_Nd.h
 gnulib/lib/unictype/categ_test.c
 gnulib/lib/unictype/combiningclass.c
 gnulib/lib/unictype/combiningclass.h
-gnulib/lib/unictype/ctype_print.c
-gnulib/lib/unictype/ctype_print.h
 gnulib/lib/unictype/ctype_upper.c
 gnulib/lib/unictype/ctype_upper.h
 gnulib/lib/unictype/pr_alphabetic.c
@@ -272,10 +192,6 @@ gnulib/lib/uniwidth/width.c
 gnulib/lib/uniwidth/width0.h
 gnulib/lib/uniwidth/width2.h
 gnulib/lib/unsetenv.c
-gnulib/lib/utime.c
-gnulib/lib/utime.in.h
-gnulib/lib/utimens.c
-gnulib/lib/utimens.h
 gnulib/lib/vasnprintf.c
 gnulib/lib/vasnprintf.h
 gnulib/lib/vasprintf.c
@@ -284,11 +200,6 @@ gnulib/lib/warn-on-use.h
 gnulib/lib/wchar.in.h
 gnulib/lib/wctype-h.c
 gnulib/lib/wctype.in.h
-gnulib/lib/windows-initguard.h
-gnulib/lib/write.c
-gnulib/lib/xalloc-die.c
 gnulib/lib/xalloc-oversized.h
-gnulib/lib/xalloc.h
-gnulib/lib/xmalloc.c
 gnulib/lib/xsize.c
 gnulib/lib/xsize.h



reply via email to

[Prev in Thread] Current Thread [Next in Thread]