texinfo-commits
[Top][All Lists]
Advanced

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

[no subject]


From: Gavin D. Smith
Date: Wed, 13 Nov 2024 17:17:03 -0500 (EST)

branch: master
commit b1bfcea126e4048b526066f1a4e7b05471a824f8
Author: Gavin Smith <gavinsmith0123@gmail.com>
AuthorDate: Wed Nov 13 22:16:15 2024 +0000

    * tp/Texinfo/XS: run
      gnulib-tool --add-import obstack.  Module not currently used.
---
 ChangeLog                               |   5 +
 tp/Texinfo/XS/gnulib/lib/Makefile.am    |  35 --
 tp/Texinfo/XS/gnulib/lib/alignof.h      |  56 ----
 tp/Texinfo/XS/gnulib/lib/obstack.c      | 332 -------------------
 tp/Texinfo/XS/gnulib/lib/obstack.in.h   | 555 --------------------------------
 tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4 |   2 -
 tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4  |  14 -
 tp/Texinfo/XS/gnulib/m4/obstack.m4      |  72 -----
 tp/Texinfo/XS/gnulib/m4/stdalign.m4     | 209 ------------
 tp/Texinfo/XS/gnulib/po/POTFILES.in     |   3 -
 10 files changed, 5 insertions(+), 1278 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index defab96ec7..6cd0a0397c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2024-11-13  Gavin Smith <gavinsmith0123@gmail.com>
+
+       * tp/Texinfo/XS: run
+         gnulib-tool --add-import obstack.  Module not currently used.
+
 2024-11-10  Gavin Smith <gavinsmith0123@gmail.com>
 
        pretest 7.1.91
diff --git a/tp/Texinfo/XS/gnulib/lib/Makefile.am 
b/tp/Texinfo/XS/gnulib/lib/Makefile.am
index 5952d1bfb6..d3f35f76b0 100644
--- a/tp/Texinfo/XS/gnulib/lib/Makefile.am
+++ b/tp/Texinfo/XS/gnulib/lib/Makefile.am
@@ -40,7 +40,6 @@
 #  iconv \
 #  libunistring \
 #  locale \
-#  obstack \
 #  setenv \
 #  strchrnul \
 #  strndup \
@@ -141,13 +140,6 @@ EXTRA_libgnu_la_SOURCES += acl_entries.c
 
 ## end   gnulib module acl-permissions
 
-## begin gnulib module alignof
-
-
-EXTRA_DIST += alignof.h
-
-## end   gnulib module alignof
-
 ## begin gnulib module alloca-opt
 
 BUILT_SOURCES += $(ALLOCA_H)
@@ -886,33 +878,6 @@ EXTRA_DIST += msvc-nothrow.h
 
 ## end   gnulib module msvc-nothrow
 
-## begin gnulib module obstack
-
-BUILT_SOURCES += $(OBSTACK_H)
-
-# We need the following in order to create <obstack.h> when the system
-# doesn't have one that works with any size object.
-if GL_GENERATE_OBSTACK_H
-obstack.h: obstack.in.h $(top_builddir)/config.status
-       $(gl_V_at)$(SED_HEADER_STDOUT) \
-             -e 's|@''REPLACE_OBSTACK''@|$(REPLACE_OBSTACK)|g' \
-             -e 's|@''SMALL_PTRDIFF_T''@|$(SMALL_PTRDIFF_T)|g' \
-             $(srcdir)/obstack.in.h > $@-t
-       $(AM_V_at)mv $@-t $@
-else
-obstack.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += obstack.h obstack.h-t
-
-if GL_COND_OBJ_OBSTACK
-libgnu_la_SOURCES += obstack.c
-endif
-
-EXTRA_DIST += obstack.in.h
-
-## end   gnulib module obstack
-
 ## begin gnulib module open
 
 if GL_COND_OBJ_OPEN
diff --git a/tp/Texinfo/XS/gnulib/lib/alignof.h 
b/tp/Texinfo/XS/gnulib/lib/alignof.h
deleted file mode 100644
index 581aaee9bc..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/alignof.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Determine alignment of types.
-   Copyright (C) 2003-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/>.  */
-
-#ifndef _ALIGNOF_H
-#define _ALIGNOF_H
-
-/* This file uses alignof.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#include <stddef.h>
-
-/* alignof_slot (TYPE)
-   Determine the alignment of a structure slot (field) of a given type,
-   at compile time.  Note that the result depends on the ABI.
-   This is the same as alignof (TYPE).
-   Note: The result cannot be used as a value for an 'enum' constant,
-   due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc.  */
-#if defined __cplusplus
-  template <class type> struct alignof_helper { char __slot1; type __slot2; };
-# define alignof_slot(type) offsetof (alignof_helper<type>, __slot2)
-#else
-# define alignof_slot(type) alignof (type)
-#endif
-
-/* alignof_type (TYPE)
-   Determine the good alignment of an object of the given type at compile time.
-   Note that this is not necessarily the same as alignof_slot(type).
-   For example, with GNU C on x86 platforms and with clang on Linux/x86:
-   alignof_type(long long) = 8, but alignof_slot(long long) = 4.
-   And alignof_type(double) = 8, but
-   - when -malign-double is not specified:  alignof_slot(double) = 4,
-   - when -malign-double is specified:      alignof_slot(double) = 8.
-   Note: The result cannot be used as a value for an 'enum' constant,
-   due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc.  */
-#if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__
-# define alignof_type __alignof__
-#else
-# define alignof_type alignof_slot
-#endif
-
-#endif /* _ALIGNOF_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/obstack.c 
b/tp/Texinfo/XS/gnulib/lib/obstack.c
deleted file mode 100644
index b00cd88e1a..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/obstack.c
+++ /dev/null
@@ -1,332 +0,0 @@
-/* obstack.c - subroutines used implicitly by object stack macros
-   Copyright (C) 1988-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 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/>.  */
-
-
-#ifdef _LIBC
-# include <obstack.h>
-#else
-# include <config.h>
-# include "obstack.h"
-#endif
-
-/* NOTE BEFORE MODIFYING THIS FILE IN GNU LIBC: _OBSTACK_INTERFACE_VERSION in
-   gnu-versions.h must be incremented whenever callers compiled using an old
-   obstack.h can no longer properly call the functions in this file.  */
-
-/* If GCC, or if an oddball (testing?) host that #defines __alignof__,
-   use the already-supplied __alignof__.  Otherwise, this must be Gnulib
-   (as glibc assumes GCC); defer to Gnulib's alignof_type.  */
-#if !defined __GNUC__ && !defined __alignof__
-# include <alignof.h>
-# define __alignof__(type) alignof_type (type)
-#endif
-#include <stdlib.h>
-#include <stdint.h>
-
-#ifndef MAX
-# define MAX(a,b) ((a) > (b) ? (a) : (b))
-#endif
-
-/* Determine default alignment.  */
-
-/* If malloc were really smart, it would round addresses to DEFAULT_ALIGNMENT.
-   But in fact it might be less smart and round addresses to as much as
-   DEFAULT_ROUNDING.  So we prepare for it to do that.
-
-   DEFAULT_ALIGNMENT cannot be an enum constant; see gnulib's alignof.h.  */
-#define DEFAULT_ALIGNMENT MAX (__alignof__ (long double),                    \
-                               MAX (__alignof__ (uintmax_t),                 \
-                                    __alignof__ (void *)))
-#define DEFAULT_ROUNDING MAX (sizeof (long double),                          \
-                               MAX (sizeof (uintmax_t),                        
      \
-                                    sizeof (void *)))
-
-/* Call functions with either the traditional malloc/free calling
-   interface, or the mmalloc/mfree interface (that adds an extra first
-   argument), based on the value of use_extra_arg.  */
-
-static void *
-call_chunkfun (struct obstack *h, size_t size)
-{
-  if (h->use_extra_arg)
-    return h->chunkfun.extra (h->extra_arg, size);
-  else
-    return h->chunkfun.plain (size);
-}
-
-static void
-call_freefun (struct obstack *h, void *old_chunk)
-{
-  if (h->use_extra_arg)
-    h->freefun.extra (h->extra_arg, old_chunk);
-  else
-    h->freefun.plain (old_chunk);
-}
-
-
-/* Initialize an obstack H for use.  Specify chunk size SIZE (0 means default).
-   Objects start on multiples of ALIGNMENT (0 means use default).
-
-   Return nonzero if successful, calls obstack_alloc_failed_handler if
-   allocation fails.  */
-
-static int
-_obstack_begin_worker (struct obstack *h,
-                       _OBSTACK_SIZE_T size, _OBSTACK_SIZE_T alignment)
-{
-  struct _obstack_chunk *chunk; /* points to new chunk */
-
-  if (alignment == 0)
-    alignment = DEFAULT_ALIGNMENT;
-  if (size == 0)
-    /* Default size is what GNU malloc can fit in a 4096-byte block.  */
-    {
-      /* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc.
-         Use the values for range checking, because if range checking is off,
-         the extra bytes won't be missed terribly, but if range checking is on
-         and we used a larger request, a whole extra 4096 bytes would be
-         allocated.
-
-         These number are irrelevant to the new GNU malloc.  I suspect it is
-         less sensitive to the size of the request.  */
-      int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1))
-                    + 4 + DEFAULT_ROUNDING - 1)
-                   & ~(DEFAULT_ROUNDING - 1));
-      size = 4096 - extra;
-    }
-
-  h->chunk_size = size;
-  h->alignment_mask = alignment - 1;
-
-  chunk = h->chunk = call_chunkfun (h, h->chunk_size);
-  if (!chunk)
-    (*obstack_alloc_failed_handler) ();
-  h->next_free = h->object_base = __PTR_ALIGN ((char *) chunk, chunk->contents,
-                                               alignment - 1);
-  h->chunk_limit = chunk->limit = (char *) chunk + h->chunk_size;
-  chunk->prev = 0;
-  /* The initial chunk now contains no empty object.  */
-  h->maybe_empty_object = 0;
-  h->alloc_failed = 0;
-  return 1;
-}
-
-int
-_obstack_begin (struct obstack *h,
-                _OBSTACK_SIZE_T size, _OBSTACK_SIZE_T alignment,
-                void *(*chunkfun) (size_t),
-                void (*freefun) (void *))
-{
-  h->chunkfun.plain = chunkfun;
-  h->freefun.plain = freefun;
-  h->use_extra_arg = 0;
-  return _obstack_begin_worker (h, size, alignment);
-}
-
-int
-_obstack_begin_1 (struct obstack *h,
-                  _OBSTACK_SIZE_T size, _OBSTACK_SIZE_T alignment,
-                  void *(*chunkfun) (void *, size_t),
-                  void (*freefun) (void *, void *),
-                  void *arg)
-{
-  h->chunkfun.extra = chunkfun;
-  h->freefun.extra = freefun;
-  h->extra_arg = arg;
-  h->use_extra_arg = 1;
-  return _obstack_begin_worker (h, size, alignment);
-}
-
-/* Allocate a new current chunk for the obstack *H
-   on the assumption that LENGTH bytes need to be added
-   to the current object, or a new object of length LENGTH allocated.
-   Copies any partial object from the end of the old chunk
-   to the beginning of the new one.  */
-
-void
-_obstack_newchunk (struct obstack *h, _OBSTACK_SIZE_T length)
-{
-  struct _obstack_chunk *old_chunk = h->chunk;
-  struct _obstack_chunk *new_chunk = 0;
-  size_t obj_size = h->next_free - h->object_base;
-  char *object_base;
-
-  /* Compute size for new chunk.  */
-  size_t sum1 = obj_size + length;
-  size_t sum2 = sum1 + h->alignment_mask;
-  size_t new_size = sum2 + (obj_size >> 3) + 100;
-  if (new_size < sum2)
-    new_size = sum2;
-  if (new_size < h->chunk_size)
-    new_size = h->chunk_size;
-
-  /* Allocate and initialize the new chunk.  */
-  if (obj_size <= sum1 && sum1 <= sum2)
-    new_chunk = call_chunkfun (h, new_size);
-  if (!new_chunk)
-    (*obstack_alloc_failed_handler)();
-  h->chunk = new_chunk;
-  new_chunk->prev = old_chunk;
-  new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size;
-
-  /* Compute an aligned object_base in the new chunk */
-  object_base =
-    __PTR_ALIGN ((char *) new_chunk, new_chunk->contents, h->alignment_mask);
-
-  /* Move the existing object to the new chunk.  */
-  memcpy (object_base, h->object_base, obj_size);
-
-  /* If the object just copied was the only data in OLD_CHUNK,
-     free that chunk and remove it from the chain.
-     But not if that chunk might contain an empty object.  */
-  if (!h->maybe_empty_object
-      && (h->object_base
-          == __PTR_ALIGN ((char *) old_chunk, old_chunk->contents,
-                          h->alignment_mask)))
-    {
-      new_chunk->prev = old_chunk->prev;
-      call_freefun (h, old_chunk);
-    }
-
-  h->object_base = object_base;
-  h->next_free = h->object_base + obj_size;
-  /* The new chunk certainly contains no empty object yet.  */
-  h->maybe_empty_object = 0;
-}
-
-/* Return nonzero if object OBJ has been allocated from obstack H.
-   This is here for debugging.
-   If you use it in a program, you are probably losing.  */
-
-/* Suppress -Wmissing-prototypes warning.  We don't want to declare this in
-   obstack.h because it is just for debugging.  */
-int _obstack_allocated_p (struct obstack *h, void *obj) __attribute_pure__;
-
-int
-_obstack_allocated_p (struct obstack *h, void *obj)
-{
-  struct _obstack_chunk *lp;    /* below addr of any objects in this chunk */
-  struct _obstack_chunk *plp;   /* point to previous chunk if any */
-
-  lp = (h)->chunk;
-  /* We use >= rather than > since the object cannot be exactly at
-     the beginning of the chunk but might be an empty object exactly
-     at the end of an adjacent chunk.  */
-  while (lp != 0 && ((void *) lp >= obj || (void *) (lp)->limit < obj))
-    {
-      plp = lp->prev;
-      lp = plp;
-    }
-  return lp != 0;
-}
-
-/* Free objects in obstack H, including OBJ and everything allocate
-   more recently than OBJ.  If OBJ is zero, free everything in H.  */
-
-void
-_obstack_free (struct obstack *h, void *obj)
-{
-  struct _obstack_chunk *lp;    /* below addr of any objects in this chunk */
-  struct _obstack_chunk *plp;   /* point to previous chunk if any */
-
-  lp = h->chunk;
-  /* We use >= because there cannot be an object at the beginning of a chunk.
-     But there can be an empty object at that address
-     at the end of another chunk.  */
-  while (lp != 0 && ((void *) lp >= obj || (void *) (lp)->limit < obj))
-    {
-      plp = lp->prev;
-      call_freefun (h, lp);
-      lp = plp;
-      /* If we switch chunks, we can't tell whether the new current
-         chunk contains an empty object, so assume that it may.  */
-      h->maybe_empty_object = 1;
-    }
-  if (lp)
-    {
-      h->object_base = h->next_free = (char *) (obj);
-      h->chunk_limit = lp->limit;
-      h->chunk = lp;
-    }
-  else if (obj != 0)
-    /* obj is not in any of the chunks! */
-    abort ();
-}
-
-_OBSTACK_SIZE_T
-_obstack_memory_used (struct obstack *h)
-{
-  struct _obstack_chunk *lp;
-  _OBSTACK_SIZE_T nbytes = 0;
-
-  for (lp = h->chunk; lp != 0; lp = lp->prev)
-    {
-      nbytes += lp->limit - (char *) lp;
-    }
-  return nbytes;
-}
-
-#ifndef _OBSTACK_NO_ERROR_HANDLER
-/* Define the error handler.  */
-# include <stdio.h>
-
-/* Exit value used when 'print_and_abort' is used.  */
-# ifdef _LIBC
-int obstack_exit_failure = EXIT_FAILURE;
-# else
-#  include "exitfail.h"
-#  define obstack_exit_failure exit_failure
-# endif
-
-# ifdef _LIBC
-#  include <libintl.h>
-# else
-#  include "gettext.h"
-# endif
-# ifndef _
-#  define _(msgid) gettext (msgid)
-# endif
-
-# ifdef _LIBC
-#  include <libio/iolibio.h>
-# endif
-
-static __attribute_noreturn__ void
-print_and_abort (void)
-{
-  /* Don't change any of these strings.  Yes, it would be possible to add
-     the newline to the string and use fputs or so.  But this must not
-     happen because the "memory exhausted" message appears in other places
-     like this and the translation should be reused instead of creating
-     a very similar string which requires a separate translation.  */
-# ifdef _LIBC
-  (void) __fxprintf (NULL, "%s\n", _("memory exhausted"));
-# else
-  fprintf (stderr, "%s\n", _("memory exhausted"));
-# endif
-  exit (obstack_exit_failure);
-}
-
-/* The functions allocating more room by calling 'obstack_chunk_alloc'
-   jump to the handler pointed to by 'obstack_alloc_failed_handler'.
-   This can be set to a user defined function which should either
-   abort gracefully or use longjump - but shouldn't return.  This
-   variable by default points to the internal function
-   'print_and_abort'.  */
-__attribute_noreturn__ void (*obstack_alloc_failed_handler) (void)
-  = print_and_abort;
-#endif /* !_OBSTACK_NO_ERROR_HANDLER */
diff --git a/tp/Texinfo/XS/gnulib/lib/obstack.in.h 
b/tp/Texinfo/XS/gnulib/lib/obstack.in.h
deleted file mode 100644
index 28fb4d8916..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/obstack.in.h
+++ /dev/null
@@ -1,555 +0,0 @@
-/* obstack.h - object stack macros
-   Copyright (C) 1988-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 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/>.  */
-
-/* Summary:
-
-   All the apparent functions defined here are macros. The idea
-   is that you would use these pre-tested macros to solve a
-   very specific set of problems, and they would run fast.
-   Caution: no side-effects in arguments please!! They may be
-   evaluated MANY times!!
-
-   These macros operate a stack of objects.  Each object starts life
-   small, and may grow to maturity.  (Consider building a word syllable
-   by syllable.)  An object can move while it is growing.  Once it has
-   been "finished" it never changes address again.  So the "top of the
-   stack" is typically an immature growing object, while the rest of the
-   stack is of mature, fixed size and fixed address objects.
-
-   These routines grab large chunks of memory, using a function you
-   supply, called 'obstack_chunk_alloc'.  On occasion, they free chunks,
-   by calling 'obstack_chunk_free'.  You must define them and declare
-   them before using any obstack macros.
-
-   Each independent stack is represented by a 'struct obstack'.
-   Each of the obstack macros expects a pointer to such a structure
-   as the first argument.
-
-   One motivation for this package is the problem of growing char strings
-   in symbol tables.  Unless you are "fascist pig with a read-only mind"
-   --Gosper's immortal quote from HAKMEM item 154, out of context--you
-   would not like to put any arbitrary upper limit on the length of your
-   symbols.
-
-   In practice this often means you will build many short symbols and a
-   few long symbols.  At the time you are reading a symbol you don't know
-   how long it is.  One traditional method is to read a symbol into a
-   buffer, realloc()ating the buffer every time you try to read a symbol
-   that is longer than the buffer.  This is beaut, but you still will
-   want to copy the symbol from the buffer to a more permanent
-   symbol-table entry say about half the time.
-
-   With obstacks, you can work differently.  Use one obstack for all symbol
-   names.  As you read a symbol, grow the name in the obstack gradually.
-   When the name is complete, finalize it.  Then, if the symbol exists already,
-   free the newly read name.
-
-   The way we do this is to take a large chunk, allocating memory from
-   low addresses.  When you want to build a symbol in the chunk you just
-   add chars above the current "high water mark" in the chunk.  When you
-   have finished adding chars, because you got to the end of the symbol,
-   you know how long the chars are, and you can create a new object.
-   Mostly the chars will not burst over the highest address of the chunk,
-   because you would typically expect a chunk to be (say) 100 times as
-   long as an average object.
-
-   In case that isn't clear, when we have enough chars to make up
-   the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed)
-   so we just point to it where it lies.  No moving of chars is
-   needed and this is the second win: potentially long strings need
-   never be explicitly shuffled. Once an object is formed, it does not
-   change its address during its lifetime.
-
-   When the chars burst over a chunk boundary, we allocate a larger
-   chunk, and then copy the partly formed object from the end of the old
-   chunk to the beginning of the new larger chunk.  We then carry on
-   accreting characters to the end of the object as we normally would.
-
-   A special macro is provided to add a single char at a time to a
-   growing object.  This allows the use of register variables, which
-   break the ordinary 'growth' macro.
-
-   Summary:
-        We allocate large chunks.
-        We carve out one object at a time from the current chunk.
-        Once carved, an object never moves.
-        We are free to append data of any size to the currently
-          growing object.
-        Exactly one object is growing in an obstack at any one time.
-        You can run one obstack per control block.
-        You may have as many control blocks as you dare.
-        Because of the way we do it, you can "unwind" an obstack
-          back to a previous state. (You may remove objects much
-          as you would with a stack.)
- */
-
-/* Documentation (part of the GNU libc manual):
-   <https://www.gnu.org/software/libc/manual/html_node/Obstacks.html>  */
-
-
-/* Don't do the contents of this file more than once.  */
-#ifndef _OBSTACK_H
-#define _OBSTACK_H 1
-
-/* This file uses _Noreturn, _GL_ATTRIBUTE_PURE.  */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#include <stddef.h>             /* For size_t and ptrdiff_t.  */
-#include <stdint.h>             /* For uintptr_t.  */
-#include <string.h>             /* For memcpy.  */
-
-#if __STDC_VERSION__ < 199901L || defined __HP_cc
-# define __FLEXIBLE_ARRAY_MEMBER 1
-#else
-# define __FLEXIBLE_ARRAY_MEMBER
-#endif
-
-/* These macros highlight the places where this implementation
-   is different from the one in GNU libc.  */
-#ifdef _LIBC
-# define _OBSTACK_SIZE_T unsigned int
-# define _CHUNK_SIZE_T unsigned long
-# define _OBSTACK_CAST(type, expr) ((type) (expr))
-#else
-/* In Gnulib, we use sane types, especially for 64-bit hosts.  */
-# define _OBSTACK_SIZE_T size_t
-# define _CHUNK_SIZE_T size_t
-# define _OBSTACK_CAST(type, expr) (expr)
-#endif
-
-/* __PTR_ALIGN(B, P, A) returns the result of aligning P to the next multiple
-   of A + 1.  B must be the base of an object addressed by P.  B and P must be
-   of type char *.  A + 1 must be a power of 2.
-   If ptrdiff_t is narrower than a pointer (e.g., the AS/400), play it
-   safe and compute the alignment relative to B.  Otherwise, use the
-   faster strategy of computing the alignment through uintptr_t.  */
-#if @SMALL_PTRDIFF_T@
-# define __PTR_ALIGN(B, P, A) \
-   ((B) + (((P) - (B) + (A)) & ~(A)))
-#else
-# define __PTR_ALIGN(B, P, A) \
-   ((P) + ((- (uintptr_t) (P)) & (A)))
-#endif
-
-#ifndef __attribute_pure__
-# define __attribute_pure__ _GL_ATTRIBUTE_PURE
-#endif
-
-/* Not the same as _Noreturn, since it also works with function pointers.  */
-#ifndef __attribute_noreturn__
-# if 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ || 0x5110 <= 
__SUNPRO_C
-#  define __attribute_noreturn__ __attribute__ ((__noreturn__))
-# else
-#  define __attribute_noreturn__
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct _obstack_chunk           /* Lives at front of each chunk. */
-{
-  char *limit;                  /* 1 past end of this chunk */
-  struct _obstack_chunk *prev;  /* address of prior chunk or NULL */
-  char contents[__FLEXIBLE_ARRAY_MEMBER]; /* objects begin here */
-};
-
-struct obstack          /* control current object in current chunk */
-{
-  _CHUNK_SIZE_T chunk_size;     /* preferred size to allocate chunks in */
-  struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */
-  char *object_base;            /* address of object we are building */
-  char *next_free;              /* where to add next char to current object */
-  char *chunk_limit;            /* address of char after current chunk */
-  union
-  {
-    _OBSTACK_SIZE_T i;
-    void *p;
-  } temp;                       /* Temporary for some macros.  */
-  _OBSTACK_SIZE_T alignment_mask;  /* Mask of alignment for each object. */
-
-  /* These prototypes vary based on 'use_extra_arg'.  */
-  union
-  {
-    void *(*plain) (size_t);
-    void *(*extra) (void *, size_t);
-  } chunkfun;
-  union
-  {
-    void (*plain) (void *);
-    void (*extra) (void *, void *);
-  } freefun;
-
-  void *extra_arg;              /* first arg for chunk alloc/dealloc funcs */
-  unsigned use_extra_arg : 1;     /* chunk alloc/dealloc funcs take extra arg 
*/
-  unsigned maybe_empty_object : 1; /* There is a possibility that the current
-                                      chunk contains a zero-length object.  
This
-                                      prevents freeing the chunk if we allocate
-                                      a bigger chunk to replace it. */
-  unsigned alloc_failed : 1;      /* No longer used, as we now call the failed
-                                     handler on error, but retained for binary
-                                     compatibility.  */
-};
-
-/* Declare the external functions we use; they are in obstack.c.  */
-
-#if @REPLACE_OBSTACK@
-# define _obstack_newchunk rpl_obstack_newchunk
-# define _obstack_free rpl_obstack_free
-# define _obstack_begin rpl_obstack_begin
-# define _obstack_begin_1 rpl_obstack_begin_1
-# define _obstack_memory_used rpl_obstack_memory_used
-# define _obstack_allocated_p rpl_obstack_allocated_p
-#endif
-extern void _obstack_newchunk (struct obstack *, _OBSTACK_SIZE_T);
-extern void _obstack_free (struct obstack *, void *);
-extern int _obstack_begin (struct obstack *,
-                           _OBSTACK_SIZE_T, _OBSTACK_SIZE_T,
-                           void *(*) (size_t), void (*) (void *));
-extern int _obstack_begin_1 (struct obstack *,
-                             _OBSTACK_SIZE_T, _OBSTACK_SIZE_T,
-                             void *(*) (void *, size_t),
-                             void (*) (void *, void *), void *);
-extern _OBSTACK_SIZE_T _obstack_memory_used (struct obstack *)
-  __attribute_pure__;
-
-
-/* Error handler called when 'obstack_chunk_alloc' failed to allocate
-   more memory.  This can be set to a user defined function which
-   should either abort gracefully or use longjump - but shouldn't
-   return.  The default action is to print a message and abort.  */
-extern __attribute_noreturn__ void (*obstack_alloc_failed_handler) (void);
-
-/* Exit value used when 'print_and_abort' is used.  */
-extern int obstack_exit_failure;
-
-/* Pointer to beginning of object being allocated or to be allocated next.
-   Note that this might not be the final address of the object
-   because a new chunk might be needed to hold the final size.  */
-
-#define obstack_base(h) ((void *) (h)->object_base)
-
-/* Size for allocating ordinary chunks.  */
-
-#define obstack_chunk_size(h) ((h)->chunk_size)
-
-/* Pointer to next byte not yet allocated in current chunk.  */
-
-#define obstack_next_free(h) ((void *) (h)->next_free)
-
-/* Mask specifying low bits that should be clear in address of an object.  */
-
-#define obstack_alignment_mask(h) ((h)->alignment_mask)
-
-/* To prevent prototype warnings provide complete argument list.  */
-#define obstack_init(h)                                                        
      \
-  _obstack_begin ((h), 0, 0,                                                 \
-                  _OBSTACK_CAST (void *(*) (size_t), obstack_chunk_alloc),    \
-                  _OBSTACK_CAST (void (*) (void *), obstack_chunk_free))
-
-#define obstack_begin(h, size)                                               \
-  _obstack_begin ((h), (size), 0,                                            \
-                  _OBSTACK_CAST (void *(*) (size_t), obstack_chunk_alloc), \
-                  _OBSTACK_CAST (void (*) (void *), obstack_chunk_free))
-
-#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun)     \
-  _obstack_begin ((h), (size), (alignment),                                  \
-                  _OBSTACK_CAST (void *(*) (size_t), chunkfun),                
      \
-                  _OBSTACK_CAST (void (*) (void *), freefun))
-
-#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, 
freefun, arg) \
-  _obstack_begin_1 ((h), (size), (alignment),                                \
-                    _OBSTACK_CAST (void *(*) (void *, size_t), chunkfun),     \
-                    _OBSTACK_CAST (void (*) (void *, void *), freefun), arg)
-
-#define obstack_chunkfun(h, newchunkfun)                                     \
-  ((void) ((h)->chunkfun.extra = (void *(*) (void *, size_t)) (newchunkfun)))
-
-#define obstack_freefun(h, newfreefun)                                       \
-  ((void) ((h)->freefun.extra = (void *(*) (void *, void *)) (newfreefun)))
-
-#define obstack_1grow_fast(h, achar) ((void) (*((h)->next_free)++ = (achar)))
-
-#define obstack_blank_fast(h, n) ((void) ((h)->next_free += (n)))
-
-#define obstack_memory_used(h) _obstack_memory_used (h)
-
-#if defined __GNUC__ || defined __clang__
-# if !(defined __GNUC_MINOR__ && __GNUC__ * 1000 + __GNUC_MINOR__ >= 2008 \
-       || defined __clang__)
-#  define __extension__
-# endif
-
-/* For GNU C, if not -traditional,
-   we can define these macros to compute all args only once
-   without using a global variable.
-   Also, we can avoid using the 'temp' slot, to make faster code.  */
-
-# define obstack_object_size(OBSTACK)                                        \
-  __extension__                                                                
      \
-    ({ struct obstack const *__o = (OBSTACK);                                \
-       (_OBSTACK_SIZE_T) (__o->next_free - __o->object_base); })
-
-/* The local variable is named __o1 to avoid a shadowed variable
-   warning when invoked from other obstack macros.  */
-# define obstack_room(OBSTACK)                                               \
-  __extension__                                                                
      \
-    ({ struct obstack const *__o1 = (OBSTACK);                               \
-       (_OBSTACK_SIZE_T) (__o1->chunk_limit - __o1->next_free); })
-
-# define obstack_make_room(OBSTACK, length)                                  \
-  __extension__                                                                
      \
-    ({ struct obstack *__o = (OBSTACK);                                        
      \
-       _OBSTACK_SIZE_T __len = (length);                                     \
-       if (obstack_room (__o) < __len)                                       \
-         _obstack_newchunk (__o, __len);                                     \
-       (void) 0; })
-
-# define obstack_empty_p(OBSTACK)                                            \
-  __extension__                                                                
      \
-    ({ struct obstack const *__o = (OBSTACK);                                \
-       (__o->chunk->prev == 0                                                \
-        && __o->next_free == __PTR_ALIGN ((char *) __o->chunk,               \
-                                          __o->chunk->contents,                
      \
-                                          __o->alignment_mask)); })
-
-# define obstack_grow(OBSTACK, where, length)                                \
-  __extension__                                                                
      \
-    ({ struct obstack *__o = (OBSTACK);                                        
      \
-       _OBSTACK_SIZE_T __len = (length);                                     \
-       if (obstack_room (__o) < __len)                                       \
-         _obstack_newchunk (__o, __len);                                     \
-       memcpy (__o->next_free, where, __len);                                \
-       __o->next_free += __len;                                                
      \
-       (void) 0; })
-
-# define obstack_grow0(OBSTACK, where, length)                               \
-  __extension__                                                                
      \
-    ({ struct obstack *__o = (OBSTACK);                                        
      \
-       _OBSTACK_SIZE_T __len = (length);                                     \
-       if (obstack_room (__o) < __len + 1)                                   \
-         _obstack_newchunk (__o, __len + 1);                                 \
-       memcpy (__o->next_free, where, __len);                                \
-       __o->next_free += __len;                                                
      \
-       *(__o->next_free)++ = 0;                                                
      \
-       (void) 0; })
-
-# define obstack_1grow(OBSTACK, datum)                                       \
-  __extension__                                                                
      \
-    ({ struct obstack *__o = (OBSTACK);                                        
      \
-       if (obstack_room (__o) < 1)                                           \
-         _obstack_newchunk (__o, 1);                                         \
-       obstack_1grow_fast (__o, datum); })
-
-/* These assume that the obstack alignment is good enough for pointers
-   or ints, and that the data added so far to the current object
-   shares that much alignment.  */
-
-# define obstack_ptr_grow(OBSTACK, datum)                                    \
-  __extension__                                                                
      \
-    ({ struct obstack *__o = (OBSTACK);                                        
      \
-       if (obstack_room (__o) < sizeof (void *))                             \
-         _obstack_newchunk (__o, sizeof (void *));                           \
-       obstack_ptr_grow_fast (__o, datum); })
-
-# define obstack_int_grow(OBSTACK, datum)                                    \
-  __extension__                                                                
      \
-    ({ struct obstack *__o = (OBSTACK);                                        
      \
-       if (obstack_room (__o) < sizeof (int))                                \
-         _obstack_newchunk (__o, sizeof (int));                                
      \
-       obstack_int_grow_fast (__o, datum); })
-
-# define obstack_ptr_grow_fast(OBSTACK, aptr)                                \
-  __extension__                                                                
      \
-    ({ struct obstack *__o1 = (OBSTACK);                                     \
-       void *__p1 = __o1->next_free;                                         \
-       *(const void **) __p1 = (aptr);                                       \
-       __o1->next_free += sizeof (const void *);                             \
-       (void) 0; })
-
-# define obstack_int_grow_fast(OBSTACK, aint)                                \
-  __extension__                                                                
      \
-    ({ struct obstack *__o1 = (OBSTACK);                                     \
-       void *__p1 = __o1->next_free;                                         \
-       *(int *) __p1 = (aint);                                               \
-       __o1->next_free += sizeof (int);                                        
      \
-       (void) 0; })
-
-# define obstack_blank(OBSTACK, length)                                        
      \
-  __extension__                                                                
      \
-    ({ struct obstack *__o = (OBSTACK);                                        
      \
-       _OBSTACK_SIZE_T __len = (length);                                     \
-       if (obstack_room (__o) < __len)                                       \
-         _obstack_newchunk (__o, __len);                                     \
-       obstack_blank_fast (__o, __len); })
-
-# define obstack_alloc(OBSTACK, length)                                        
      \
-  __extension__                                                                
      \
-    ({ struct obstack *__h = (OBSTACK);                                        
      \
-       obstack_blank (__h, (length));                                        \
-       obstack_finish (__h); })
-
-# define obstack_copy(OBSTACK, where, length)                                \
-  __extension__                                                                
      \
-    ({ struct obstack *__h = (OBSTACK);                                        
      \
-       obstack_grow (__h, (where), (length));                                \
-       obstack_finish (__h); })
-
-# define obstack_copy0(OBSTACK, where, length)                               \
-  __extension__                                                                
      \
-    ({ struct obstack *__h = (OBSTACK);                                        
      \
-       obstack_grow0 (__h, (where), (length));                               \
-       obstack_finish (__h); })
-
-/* The local variable is named __o1 to avoid a shadowed variable
-   warning when invoked from other obstack macros, typically obstack_free.  */
-# define obstack_finish(OBSTACK)                                             \
-  __extension__                                                                
      \
-    ({ struct obstack *__o1 = (OBSTACK);                                     \
-       void *__value = (void *) __o1->object_base;                           \
-       if (__o1->next_free == __value)                                       \
-         __o1->maybe_empty_object = 1;                                       \
-       __o1->next_free                                                       \
-         = __PTR_ALIGN (__o1->object_base, __o1->next_free,                  \
-                        __o1->alignment_mask);                               \
-       if ((size_t) (__o1->next_free - (char *) __o1->chunk)                 \
-           > (size_t) (__o1->chunk_limit - (char *) __o1->chunk))            \
-         __o1->next_free = __o1->chunk_limit;                                \
-       __o1->object_base = __o1->next_free;                                  \
-       __value; })
-
-# define obstack_free(OBSTACK, OBJ)                                          \
-  __extension__                                                                
      \
-    ({ struct obstack *__o = (OBSTACK);                                        
      \
-       void *__obj = (void *) (OBJ);                                         \
-       if (__obj > (void *) __o->chunk && __obj < (void *) __o->chunk_limit)  \
-         __o->next_free = __o->object_base = (char *) __obj;                 \
-       else                                                                  \
-         _obstack_free (__o, __obj); })
-
-#else /* not __GNUC__ */
-
-# define obstack_object_size(h)                                                
      \
-  ((_OBSTACK_SIZE_T) ((h)->next_free - (h)->object_base))
-
-# define obstack_room(h)                                                     \
-  ((_OBSTACK_SIZE_T) ((h)->chunk_limit - (h)->next_free))
-
-# define obstack_empty_p(h)                                                  \
-  ((h)->chunk->prev == 0                                                     \
-   && (h)->next_free == __PTR_ALIGN ((char *) (h)->chunk,                    \
-                                     (h)->chunk->contents,                   \
-                                     (h)->alignment_mask))
-
-/* Note that the call to _obstack_newchunk is enclosed in (..., 0)
-   so that we can avoid having void expressions
-   in the arms of the conditional expression.
-   Casting the third operand to void was tried before,
-   but some compilers won't accept it.  */
-
-# define obstack_make_room(h, length)                                        \
-  ((h)->temp.i = (length),                                                   \
-   ((obstack_room (h) < (h)->temp.i)                                         \
-    ? (_obstack_newchunk (h, (h)->temp.i), 0) : 0),                          \
-   (void) 0)
-
-# define obstack_grow(h, where, length)                                        
      \
-  ((h)->temp.i = (length),                                                   \
-   ((obstack_room (h) < (h)->temp.i)                                         \
-   ? (_obstack_newchunk ((h), (h)->temp.i), 0) : 0),                         \
-   memcpy ((h)->next_free, where, (h)->temp.i),                                
      \
-   (h)->next_free += (h)->temp.i,                                            \
-   (void) 0)
-
-# define obstack_grow0(h, where, length)                                     \
-  ((h)->temp.i = (length),                                                   \
-   ((obstack_room (h) < (h)->temp.i + 1)                                     \
-   ? (_obstack_newchunk ((h), (h)->temp.i + 1), 0) : 0),                     \
-   memcpy ((h)->next_free, where, (h)->temp.i),                                
      \
-   (h)->next_free += (h)->temp.i,                                            \
-   *((h)->next_free)++ = 0,                                                  \
-   (void) 0)
-
-# define obstack_1grow(h, datum)                                             \
-  (((obstack_room (h) < 1)                                                   \
-    ? (_obstack_newchunk ((h), 1), 0) : 0),                                  \
-   obstack_1grow_fast (h, datum))
-
-# define obstack_ptr_grow(h, datum)                                          \
-  (((obstack_room (h) < sizeof (char *))                                     \
-    ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0),                    \
-   obstack_ptr_grow_fast (h, datum))
-
-# define obstack_int_grow(h, datum)                                          \
-  (((obstack_room (h) < sizeof (int))                                        \
-    ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0),                       \
-   obstack_int_grow_fast (h, datum))
-
-# define obstack_ptr_grow_fast(h, aptr)                                        
      \
-  (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr),       \
-   (void) 0)
-
-# define obstack_int_grow_fast(h, aint)                                        
      \
-  (((int *) ((h)->next_free += sizeof (int)))[-1] = (aint),                  \
-   (void) 0)
-
-# define obstack_blank(h, length)                                            \
-  ((h)->temp.i = (length),                                                   \
-   ((obstack_room (h) < (h)->temp.i)                                         \
-   ? (_obstack_newchunk ((h), (h)->temp.i), 0) : 0),                         \
-   obstack_blank_fast (h, (h)->temp.i))
-
-# define obstack_alloc(h, length)                                            \
-  (obstack_blank ((h), (length)), obstack_finish ((h)))
-
-# define obstack_copy(h, where, length)                                        
      \
-  (obstack_grow ((h), (where), (length)), obstack_finish ((h)))
-
-# define obstack_copy0(h, where, length)                                     \
-  (obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
-
-# define obstack_finish(h)                                                   \
-  (((h)->next_free == (h)->object_base                                       \
-    ? (((h)->maybe_empty_object = 1), 0)                                     \
-    : 0),                                                                    \
-   (h)->temp.p = (h)->object_base,                                           \
-   (h)->next_free                                                            \
-     = __PTR_ALIGN ((h)->object_base, (h)->next_free,                        \
-                    (h)->alignment_mask),                                    \
-   (((size_t) ((h)->next_free - (char *) (h)->chunk)                         \
-     > (size_t) ((h)->chunk_limit - (char *) (h)->chunk))                    \
-   ? ((h)->next_free = (h)->chunk_limit) : 0),                               \
-   (h)->object_base = (h)->next_free,                                        \
-   (h)->temp.p)
-
-# define obstack_free(h, obj)                                                \
-  ((h)->temp.p = (void *) (obj),                                             \
-   (((h)->temp.p > (void *) (h)->chunk                                       \
-     && (h)->temp.p < (void *) (h)->chunk_limit)                             \
-    ? (void) ((h)->next_free = (h)->object_base = (char *) (h)->temp.p)       \
-    : _obstack_free ((h), (h)->temp.p)))
-
-#endif /* not __GNUC__ */
-
-#ifdef __cplusplus
-}       /* C++ */
-#endif
-
-#endif /* _OBSTACK_H */
diff --git a/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4 
b/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4
index 2f1f7e0b36..e2ac10353e 100644
--- a/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4
+++ b/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4
@@ -45,7 +45,6 @@
 #  iconv \
 #  libunistring \
 #  locale \
-#  obstack \
 #  setenv \
 #  strchrnul \
 #  strndup \
@@ -85,7 +84,6 @@ gl_MODULES([
   iconv
   libunistring
   locale
-  obstack
   setenv
   strchrnul
   strndup
diff --git a/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4 
b/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4
index a36f7d4335..68b601270c 100644
--- a/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4
+++ b/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4
@@ -45,8 +45,6 @@ AC_DEFUN([gl_EARLY],
   # Code from module absolute-header:
   # Code from module access:
   # Code from module acl-permissions:
-  # Code from module alignasof:
-  # Code from module alignof:
   # Code from module alloca-opt:
   # Code from module array-mergesort:
   # Code from module assert-h:
@@ -127,7 +125,6 @@ AC_DEFUN([gl_EARLY],
   # Code from module msvc-inval:
   # Code from module msvc-nothrow:
   # Code from module multiarch:
-  # Code from module obstack:
   # Code from module open:
   # Code from module pathmax:
   # Code from module qcopy-acl:
@@ -267,7 +264,6 @@ AC_DEFUN([gl_INIT],
   gl_CONDITIONAL([GL_COND_OBJ_ACCESS], [test $REPLACE_ACCESS = 1])
   gl_UNISTD_MODULE_INDICATOR([access])
   gl_FUNC_ACL
-  gl_ALIGNASOF
   gl_FUNC_ALLOCA
   gl_CONDITIONAL_HEADER([alloca.h])
   AC_PROG_MKDIR_P
@@ -508,11 +504,6 @@ AC_DEFUN([gl_INIT],
                  [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1])
   gl_MODULE_INDICATOR([msvc-nothrow])
   gl_MULTIARCH
-  gl_FUNC_OBSTACK
-  gl_CONDITIONAL_HEADER([obstack.h])
-  gl_CONDITIONAL([GL_COND_OBJ_OBSTACK],
-                 [test $HAVE_OBSTACK = 0 || test $REPLACE_OBSTACK = 1])
-  AC_PROG_MKDIR_P
   gl_FUNC_OPEN
   gl_CONDITIONAL([GL_COND_OBJ_OPEN], [test $REPLACE_OPEN = 1])
   AM_COND_IF([GL_COND_OBJ_OPEN], [
@@ -1009,7 +1000,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/acl-internal.h
   lib/acl.h
   lib/acl_entries.c
-  lib/alignof.h
   lib/alloca.in.h
   lib/arg-nonnull.h
   lib/array-mergesort.h
@@ -1103,8 +1093,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/msvc-inval.h
   lib/msvc-nothrow.c
   lib/msvc-nothrow.h
-  lib/obstack.c
-  lib/obstack.in.h
   lib/open.c
   lib/pathmax.h
   lib/printf-args.c
@@ -1352,7 +1340,6 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/msvc-nothrow.m4
   m4/multiarch.m4
   m4/musl.m4
-  m4/obstack.m4
   m4/off64_t.m4
   m4/off_t.m4
   m4/open-cloexec.m4
@@ -1378,7 +1365,6 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/stat-time.m4
   m4/stat.m4
   m4/std-gnu11.m4
-  m4/stdalign.m4
   m4/stddef_h.m4
   m4/stdint.m4
   m4/stdint_h.m4
diff --git a/tp/Texinfo/XS/gnulib/m4/obstack.m4 
b/tp/Texinfo/XS/gnulib/m4/obstack.m4
deleted file mode 100644
index 71638317f6..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/obstack.m4
+++ /dev/null
@@ -1,72 +0,0 @@
-# obstack.m4
-# serial 1
-dnl Copyright 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.
-
-# See if we need to provide obstacks.
-
-dnl Autoconf's AC_FUNC_OBSTACK is marked obsolete since version 2.70.
-dnl We provide our own macro here.
-
-AC_DEFUN([gl_FUNC_OBSTACK],
-[
-  AC_CHECK_HEADERS_ONCE([obstack.h])
-  if test $ac_cv_header_obstack_h = yes; then
-    HAVE_OBSTACK=1
-    AC_CACHE_CHECK([for obstacks that work with any size object],
-      [gl_cv_func_obstack],
-      [AC_LINK_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[#include "obstack.h"
-              void *obstack_chunk_alloc (size_t n) { return 0; }
-              void obstack_chunk_free (void *p) { }
-              /* Check that an internal function returns size_t, not int.  */
-              size_t _obstack_memory_used (struct obstack *);
-             ]],
-            [[struct obstack mem;
-              obstack_init (&mem);
-              obstack_free (&mem, 0);
-            ]])],
-         [gl_cv_func_obstack=yes],
-         [gl_cv_func_obstack=no])
-      ])
-    if test $gl_cv_func_obstack = yes; then
-      REPLACE_OBSTACK=0
-    else
-      REPLACE_OBSTACK=1
-    fi
-  else
-    HAVE_OBSTACK=0
-    REPLACE_OBSTACK=0
-  fi
-  if test $HAVE_OBSTACK = 0 || test $REPLACE_OBSTACK = 1; then
-    GL_GENERATE_OBSTACK_H=true
-  else
-    GL_GENERATE_OBSTACK_H=false
-  fi
-  AC_SUBST([REPLACE_OBSTACK])
-
-  dnl Test whether a 'ptrdiff_t' has at least as many bits as a pointer.
-  AC_CACHE_CHECK([whether ptrdiff_t is at least as large as a pointer],
-    [gl_cv_ptrdiff_t_wide_enough],
-    [AC_COMPILE_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <stddef.h>
-            typedef int check[2 * (sizeof (ptrdiff_t) >= sizeof (void *)) - 1];
-           ]],
-          [[]])],
-       [gl_cv_ptrdiff_t_wide_enough=yes],
-       [gl_cv_ptrdiff_t_wide_enough=no])
-    ])
-  if test $gl_cv_ptrdiff_t_wide_enough = yes; then
-    SMALL_PTRDIFF_T=0
-  else
-    SMALL_PTRDIFF_T=1
-  fi
-  dnl SMALL_PTRDIFF_T is expected to be 1 only on old / exotic platforms
-  dnl such as Windows 3.1 and AS/400.
-  AC_SUBST([SMALL_PTRDIFF_T])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/stdalign.m4 
b/tp/Texinfo/XS/gnulib/m4/stdalign.m4
deleted file mode 100644
index 80846d2354..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/stdalign.m4
+++ /dev/null
@@ -1,209 +0,0 @@
-# stdalign.m4
-# serial 1
-dnl Copyright 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.
-
-# Check for alignas and alignof that conform to C23.
-
-dnl Written by Paul Eggert and Bruno Haible.
-
-# Prepare for substituting <stdalign.h> if it is not supported.
-
-AC_DEFUN([gl_ALIGNASOF],
-[
-  AC_CACHE_CHECK([for alignas and alignof],
-    [gl_cv_header_working_stdalign_h],
-    [gl_saved_CFLAGS=$CFLAGS
-     for gl_working in "yes, keywords" "yes, <stdalign.h> macros"; do
-      AS_CASE([$gl_working],
-        [*stdalign.h*], [CFLAGS="$gl_saved_CFLAGS -DINCLUDE_STDALIGN_H"])
-      AC_COMPILE_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <stdint.h>
-            #ifdef INCLUDE_STDALIGN_H
-             #include <stdalign.h>
-            #endif
-            #include <stddef.h>
-
-            /* Test that alignof yields a result consistent with offsetof.
-               This catches GCC bug 52023
-               <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.  */
-            #ifdef __cplusplus
-               template <class t> struct alignof_helper { char a; t b; };
-            # define ao(type) offsetof (alignof_helper<type>, b)
-            #else
-            # define ao(type) offsetof (struct { char a; type b; }, b)
-            #endif
-            char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1];
-            char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1];
-            char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1];
-
-            /* Test alignas only on platforms where gnulib can help.  */
-            #if \
-                ((defined __cplusplus && 201103 <= __cplusplus) \
-                 || (__TINYC__ && defined __attribute__) \
-                 || (defined __APPLE__ && defined __MACH__ \
-                     ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
-                     : __GNUC__) \
-                 || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \
-                 || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \
-                 || 1300 <= _MSC_VER)
-              struct alignas_test { char c; char alignas (8) alignas_8; };
-              char test_alignas[offsetof (struct alignas_test, alignas_8) == 8
-                                ? 1 : -1];
-            #endif
-          ]])],
-       [gl_cv_header_working_stdalign_h=$gl_working],
-       [gl_cv_header_working_stdalign_h=no])
-
-      CFLAGS=$gl_saved_CFLAGS
-      test "$gl_cv_header_working_stdalign_h" != no && break
-     done])
-
-  AS_CASE([$gl_cv_header_working_stdalign_h],
-    [yes*keyword*],
-      [AC_DEFINE([HAVE_C_ALIGNASOF], [1],
-         [Define to 1 if the alignas and alignof keywords work.])])
-
-  dnl The "zz" puts this toward config.h's end, to avoid potential
-  dnl collisions with other definitions.
-  AH_VERBATIM([zzalignas],
-[#if !defined HAVE_C_ALIGNASOF \
-    && !(defined __cplusplus && 201103 <= __cplusplus) \
-    && !defined alignof
-# if defined HAVE_STDALIGN_H
-#  include <stdalign.h>
-# endif
-
-/* ISO C23 alignas and alignof for platforms that lack it.
-
-   References:
-   ISO C23 (latest free draft
-   <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf>)
-   sections 6.5.3.4, 6.7.5, 7.15.
-   C++11 (latest free draft
-   <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>)
-   section 18.10. */
-
-/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment
-   requirement of a structure member (i.e., slot or field) that is of
-   type TYPE, as an integer constant expression.
-
-   This differs from GCC's and clang's __alignof__ operator, which can
-   yield a better-performing alignment for an object of that type.  For
-   example, on x86 with GCC and on Linux/x86 with clang,
-   __alignof__ (double) and __alignof__ (long long) are 8, whereas
-   alignof (double) and alignof (long long) are 4 unless the option
-   '-malign-double' is used.
-
-   The result cannot be used as a value for an 'enum' constant, if you
-   want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc.  */
-
-/* GCC releases before GCC 4.9 had a bug in _Alignof.  See GCC bug 52023
-   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
-   clang versions < 8.0.0 have the same bug.  */
-#  if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
-       || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
-           && !defined __clang__) \
-       || (defined __clang__ && __clang_major__ < 8))
-#   undef/**/_Alignof
-#   ifdef __cplusplus
-#    if (201103 <= __cplusplus || defined _MSC_VER)
-#     define _Alignof(type) alignof (type)
-#    else
-      template <class __t> struct __alignof_helper { char __a; __t __b; };
-#     if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__
-#      define _Alignof(type) __builtin_offsetof (__alignof_helper<type>, __b)
-#     else
-#      define _Alignof(type) offsetof (__alignof_helper<type>, __b)
-#     endif
-#     define _GL_STDALIGN_NEEDS_STDDEF 1
-#    endif
-#   else
-#    if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__
-#     define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; 
}, __b)
-#    else
-#     define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
-#     define _GL_STDALIGN_NEEDS_STDDEF 1
-#    endif
-#   endif
-#  endif
-#  if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))
-#   undef/**/alignof
-#   define alignof _Alignof
-#  endif
-
-/* alignas (A), also known as _Alignas (A), aligns a variable or type
-   to the alignment A, where A is an integer constant expression.  For
-   example:
-
-      int alignas (8) foo;
-      struct s { int a; int alignas (8) bar; };
-
-   aligns the address of FOO and the offset of BAR to be multiples of 8.
-
-   A should be a power of two that is at least the type's alignment
-   and at most the implementation's alignment limit.  This limit is
-   2**28 on typical GNUish hosts, and 2**13 on MSVC.  To be portable
-   to MSVC through at least version 10.0, A should be an integer
-   constant, as MSVC does not support expressions such as 1 << 3.
-   To be portable to Sun C 5.11, do not align auto variables to
-   anything stricter than their default alignment.
-
-   The following C23 requirements are not supported here:
-
-     - If A is zero, alignas has no effect.
-     - alignas can be used multiple times; the strictest one wins.
-     - alignas (TYPE) is equivalent to alignas (alignof (TYPE)).
-
-   */
-# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112
-#  if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)
-#   define _Alignas(a) alignas (a)
-#  elif (!defined __attribute__ \
-         && ((defined __APPLE__ && defined __MACH__ \
-              ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
-              : __GNUC__ && !defined __ibmxl__) \
-             || (4 <= __clang_major__) \
-             || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \
-             || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__))
-#   define _Alignas(a) __attribute__ ((__aligned__ (a)))
-#  elif 1300 <= _MSC_VER
-#   define _Alignas(a) __declspec (align (a))
-#  endif
-# endif
-# if !defined HAVE_STDALIGN_H
-#  if ((defined _Alignas \
-        && !(defined __cplusplus \
-             && (201103 <= __cplusplus || defined _MSC_VER))) \
-       || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
-#   define alignas _Alignas
-#  endif
-# endif
-
-# if defined _GL_STDALIGN_NEEDS_STDDEF
-#  include <stddef.h>
-# endif
-#endif])
-])
-
-AC_DEFUN([gl_STDALIGN_H],
-[
-  AC_REQUIRE([gl_ALIGNASOF])
-  if test "$gl_cv_header_working_stdalign_h" = no; then
-    GL_GENERATE_STDALIGN_H=true
-  else
-    GL_GENERATE_STDALIGN_H=false
-  fi
-
-  gl_CHECK_NEXT_HEADERS([stdalign.h])
-  if test $ac_cv_header_stdalign_h = yes; then
-    HAVE_STDALIGN_H=1
-  else
-    HAVE_STDALIGN_H=0
-  fi
-  AC_SUBST([HAVE_STDALIGN_H])
-])
diff --git a/tp/Texinfo/XS/gnulib/po/POTFILES.in 
b/tp/Texinfo/XS/gnulib/po/POTFILES.in
index cc19ebfbd8..b8e9a90201 100644
--- a/tp/Texinfo/XS/gnulib/po/POTFILES.in
+++ b/tp/Texinfo/XS/gnulib/po/POTFILES.in
@@ -29,7 +29,6 @@ gnulib/lib/acl-internal.c
 gnulib/lib/acl-internal.h
 gnulib/lib/acl.h
 gnulib/lib/acl_entries.c
-gnulib/lib/alignof.h
 gnulib/lib/alloca.in.h
 gnulib/lib/arg-nonnull.h
 gnulib/lib/array-mergesort.h
@@ -123,8 +122,6 @@ gnulib/lib/msvc-inval.c
 gnulib/lib/msvc-inval.h
 gnulib/lib/msvc-nothrow.c
 gnulib/lib/msvc-nothrow.h
-gnulib/lib/obstack.c
-gnulib/lib/obstack.in.h
 gnulib/lib/open.c
 gnulib/lib/pathmax.h
 gnulib/lib/printf-args.c



reply via email to

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