1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 04:10:54 -08:00

Garbage-collect Gnulib sources

Remove Gnulib sources no longer needed or used.
admin/merge-gnulib is typically not smart enough to do that.
* configure.ac: Do not call gl_EEMALLOC, as it is no longer
supplied or needed.
* lib/explicit_bzero.c, lib/malloc/scratch_buffer_dupfree.c:
* lib/xalloc-oversized.h, m4/eealloc.m4, m4/explicit_bzero.m4:
* m4/st_dm_mode.m4, m4/year2038.m4:
Remove.
This commit is contained in:
Paul Eggert 2025-12-09 12:55:17 -08:00
parent cc05493483
commit 88bf047d39
8 changed files with 0 additions and 393 deletions

View file

@ -7382,7 +7382,6 @@ CFLAGS=$pre_PKG_CONFIG_CFLAGS
LIBS="$LIB_PTHREAD $pre_PKG_CONFIG_LIBS"
gl_ASSERT_NO_GNULIB_POSIXCHECK
gl_ASSERT_NO_GNULIB_TESTS
gl_EEMALLOC
gl_INIT
CFLAGS=$SAVE_CFLAGS
LIBS=$SAVE_LIBS

View file

@ -1,74 +0,0 @@
/* Erasure of sensitive data, generic implementation.
Copyright (C) 2016-2025 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/>. */
/* An assembler implementation of explicit_bzero can be created as an
assembler alias of an optimized bzero implementation.
Architecture-specific implementations also need to define
__explicit_bzero_chk. */
#if !_LIBC
# include <config.h>
#endif
/* memset_s need this define */
#if HAVE_MEMSET_S
# define __STDC_WANT_LIB_EXT1__ 1
#endif
#include <string.h>
#if defined _WIN32 && !defined __CYGWIN__
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
#endif
#if _LIBC
/* glibc-internal users use __explicit_bzero_chk, and explicit_bzero
redirects to that. */
# undef explicit_bzero
#endif
/* Set LEN bytes of S to 0. The compiler will not delete a call to
this function, even if S is dead after the call. */
void
explicit_bzero (void *s, size_t len)
{
#if defined _WIN32 && !defined __CYGWIN__
(void) SecureZeroMemory (s, len);
#elif HAVE_EXPLICIT_MEMSET
explicit_memset (s, '\0', len);
#elif HAVE_MEMSET_S
(void) memset_s (s, len, '\0', len);
#elif defined __GNUC__ && !defined __clang__
memset (s, '\0', len);
/* Compiler barrier. */
asm volatile ("" ::: "memory");
#elif defined __clang__
memset (s, '\0', len);
/* Compiler barrier. */
/* With asm ("" ::: "memory") LLVM analyzes uses of 's' and finds that the
whole thing is dead and eliminates it. Use 'g' to work around this
problem. See <https://bugs.llvm.org/show_bug.cgi?id=15495#c11>. */
__asm__ volatile ("" : : "g"(s) : "memory");
#else
/* Invoke memset through a volatile function pointer. This defeats compiler
optimizations. */
void * (* const volatile volatile_memset) (void *, int, size_t) = memset;
(void) volatile_memset (s, '\0', len);
#endif
}

View file

@ -1,41 +0,0 @@
/* Variable-sized buffer with on-stack default allocation.
Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <libc-config.h>
#endif
#include <scratch_buffer.h>
#include <string.h>
void *
__libc_scratch_buffer_dupfree (struct scratch_buffer *buffer, size_t size)
{
void *data = buffer->data;
if (data == buffer->__space.__c)
{
void *copy = malloc (size);
return copy != NULL ? memcpy (copy, data, size) : NULL;
}
else
{
void *copy = realloc (data, size);
return copy != NULL ? copy : data;
}
}
libc_hidden_def (__libc_scratch_buffer_dupfree)

View file

@ -1,66 +0,0 @@
/* xalloc-oversized.h -- memory allocation size checking
Copyright (C) 1990-2000, 2003-2004, 2006-2025 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 XALLOC_OVERSIZED_H_
#define XALLOC_OVERSIZED_H_
#include <stddef.h>
#include <stdint.h>
/* True if N * S does not fit into both ptrdiff_t and size_t.
N and S should be nonnegative and free of side effects.
This expands to a constant expression if N and S are both constants.
By gnulib convention, SIZE_MAX represents overflow in size_t
calculations, so the conservative size_t-based dividend to use here
is SIZE_MAX - 1. */
#define __xalloc_oversized(n, s) \
((s) != 0 \
&& (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) < (n))
/* Return 1 if and only if an array of N objects, each of size S,
cannot exist reliably because its total size in bytes would exceed
MIN (PTRDIFF_MAX, SIZE_MAX - 1).
N and S should be nonnegative and free of side effects.
Warning: (xalloc_oversized (N, S) ? NULL : malloc (N * S)) can
misbehave if N and S are both narrower than ptrdiff_t and size_t,
and can be rewritten as (xalloc_oversized (N, S) ? NULL
: malloc (N * (size_t) S)).
This is a macro, not a function, so that it works even if an
argument exceeds MAX (PTRDIFF_MAX, SIZE_MAX). */
#if 7 <= __GNUC__ && !defined __clang__ && PTRDIFF_MAX < SIZE_MAX
# define xalloc_oversized(n, s) \
__builtin_mul_overflow_p (n, s, (ptrdiff_t) 1)
#elif 5 <= __GNUC__ && !defined __clang__ && !defined __ICC \
&& PTRDIFF_MAX < SIZE_MAX
# define xalloc_oversized(n, s) \
(__builtin_constant_p (n) && __builtin_constant_p (s) \
? __xalloc_oversized (n, s) \
: __extension__ \
({ ptrdiff_t __xalloc_count; \
__builtin_mul_overflow (n, s, &__xalloc_count); }))
/* Other compilers use integer division; this may be slower but is
more portable. */
#else
# define xalloc_oversized(n, s) __xalloc_oversized (n, s)
#endif
#endif /* !XALLOC_OVERSIZED_H_ */

View file

@ -1,32 +0,0 @@
# eealloc.m4
# serial 3
dnl Copyright (C) 2003, 2009-2025 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_EEALLOC],
[
AC_REQUIRE([gl_EEMALLOC])
AC_REQUIRE([gl_EEREALLOC])
])
AC_DEFUN([gl_EEMALLOC],
[
_AC_FUNC_MALLOC_IF(
[gl_cv_func_malloc_0_nonnull=1],
[gl_cv_func_malloc_0_nonnull=0])
AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull],
[If malloc(0) is != NULL, define this to 1. Otherwise define this
to 0.])
])
AC_DEFUN([gl_EEREALLOC],
[
_AC_FUNC_REALLOC_IF(
[gl_cv_func_realloc_0_nonnull=1],
[gl_cv_func_realloc_0_nonnull=0])
AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull],
[If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this
to 0.])
])

View file

@ -1,23 +0,0 @@
dnl Copyright 2017-2025 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_FUNC_EXPLICIT_BZERO],
[
AC_REQUIRE([gl_STRING_H_DEFAULTS])
dnl Persuade glibc <string.h> to declare explicit_bzero.
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
AC_CHECK_FUNCS_ONCE([explicit_bzero])
if test $ac_cv_func_explicit_bzero = no; then
HAVE_EXPLICIT_BZERO=0
fi
])
AC_DEFUN([gl_PREREQ_EXPLICIT_BZERO],
[
AC_CHECK_FUNCS([explicit_memset])
AC_CHECK_FUNCS_ONCE([memset_s])
])

View file

@ -1,24 +0,0 @@
# serial 6
# Copyright (C) 1998-1999, 2001, 2009-2025 Free Software Foundation,
# Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# Define HAVE_ST_DM_MODE if struct stat has an st_dm_mode member.
AC_DEFUN([AC_STRUCT_ST_DM_MODE],
[AC_CACHE_CHECK([for st_dm_mode in struct stat], [ac_cv_struct_st_dm_mode],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <sys/stat.h>]], [[struct stat s; s.st_dm_mode;]])],
[ac_cv_struct_st_dm_mode=yes],
[ac_cv_struct_st_dm_mode=no])])
if test $ac_cv_struct_st_dm_mode = yes; then
AC_DEFINE([HAVE_ST_DM_MODE], [1],
[Define if struct stat has an st_dm_mode member.])
fi
]
)

View file

@ -1,132 +0,0 @@
# year2038.m4 serial 8
dnl Copyright (C) 2017-2025 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Attempt to ensure that 'time_t' can go past the year 2038 and that
dnl the functions 'time', 'stat', etc. work with post-2038 timestamps.
m4_ifdef([AC_SYS_YEAR2038], [
AC_DEFUN([gl_YEAR2038_EARLY])
AC_DEFUN([gl_YEAR2038], [AC_SYS_YEAR2038])
AC_DEFUN([gl_YEAR2038_BODY], [_AC_SYS_YEAR2038])
], [
AC_DEFUN([gl_YEAR2038_EARLY],
[
AC_REQUIRE([AC_CANONICAL_HOST])
case "$host_os" in
mingw*)
AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
[For 64-bit time_t on 32-bit mingw.])
;;
esac
])
# gl_YEAR2038_TEST_INCLUDES
# -------------------------
AC_DEFUN([gl_YEAR2038_TEST_INCLUDES],
[[
#include <time.h>
/* Check that time_t can represent 2**32 - 1 correctly. */
#define LARGE_TIME_T \\
((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
&& LARGE_TIME_T % 65537 == 0)
? 1 : -1];
]])
# gl_YEAR2038_BODY(REQUIRE-YEAR2038-SAFE)
-----------------------------------------
AC_DEFUN([gl_YEAR2038_BODY],
[
AC_ARG_ENABLE([year2038],
[ --disable-year2038 omit support for timestamps past the year 2038])
AS_IF([test "$enable_year2038" != no],
[
dnl On many systems, time_t is already a 64-bit type.
dnl On those systems where time_t is still 32-bit, it requires kernel
dnl and libc support to make it 64-bit. For glibc 2.34 and later on Linux,
dnl defining _TIME_BITS=64 and _FILE_OFFSET_BITS=64 is needed on x86 and ARM.
dnl
dnl On native Windows, the system include files define types __time32_t
dnl and __time64_t. By default, time_t is an alias of
dnl - __time32_t on 32-bit mingw,
dnl - __time64_t on 64-bit mingw and on MSVC (since MSVC 8).
dnl But when compiling with -D__MINGW_USE_VC2005_COMPAT, time_t is an
dnl alias of __time64_t.
dnl And when compiling with -D_USE_32BIT_TIME_T, time_t is an alias of
dnl __time32_t.
AC_CACHE_CHECK([for time_t past the year 2038], [gl_cv_type_time_t_y2038],
[AC_COMPILE_IFELSE(
[AC_LANG_SOURCE([gl_YEAR2038_TEST_INCLUDES])],
[gl_cv_type_time_t_y2038=yes], [gl_cv_type_time_t_y2038=no])
])
if test "$gl_cv_type_time_t_y2038" = no; then
AC_CACHE_CHECK([for 64-bit time_t with _TIME_BITS=64],
[gl_cv_type_time_t_bits_macro],
[AC_COMPILE_IFELSE(
[AC_LANG_SOURCE([[#define _TIME_BITS 64
#define _FILE_OFFSET_BITS 64
]gl_YEAR2038_TEST_INCLUDES])],
[gl_cv_type_time_t_bits_macro=yes],
[gl_cv_type_time_t_bits_macro=no])
])
if test "$gl_cv_type_time_t_bits_macro" = yes; then
AC_DEFINE([_TIME_BITS], [64],
[Number of bits in a timestamp, on hosts where this is settable.])
dnl AC_SYS_LARGFILE also defines this; it's OK if we do too.
AC_DEFINE([_FILE_OFFSET_BITS], [64],
[Number of bits in a file offset, on hosts where this is settable.])
gl_cv_type_time_t_y2038=yes
fi
fi
if test $gl_cv_type_time_t_y2038 = no; then
AC_COMPILE_IFELSE(
[AC_LANG_SOURCE(
[[#ifdef _USE_32BIT_TIME_T
int ok;
#else
error fail
#endif
]])],
[AC_MSG_FAILURE(
[The 'time_t' type stops working after January 2038.
Remove _USE_32BIT_TIME_T from the compiler flags.])],
[# If not cross-compiling and $1 says we should check,
# and 'touch' works with a large timestamp, then evidently wider time_t
# is desired and supported, so fail and ask the builder to fix the
# problem. Otherwise, just warn the builder.
m4_ifval([$1],
[if test $cross_compiling = no \
&& TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null; then
case `TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null` in
*'Feb 7 2106'* | *'Feb 7 17:10'*)
AC_MSG_FAILURE(
[The 'time_t' type stops working after January 2038,
and your system appears to support a wider 'time_t'.
Try configuring with 'CC="${CC} -m64"'.
To build with a 32-bit time_t anyway (not recommended),
configure with '--disable-year2038'.]);;
esac
rm -f conftest.time
fi])
if test "$gl_warned_about_y2038" != yes; then
AC_MSG_WARN(
[The 'time_t' type stops working after January 2038,
and this package needs a wider 'time_t' type
if there is any way to access timestamps after that.
Configure with 'CC="${CC} -m64"' perhaps?])
gl_warned_about_y2038=yes
fi
])
fi])
])
AC_DEFUN([gl_YEAR2038],
[
gl_YEAR2038_BODY([require-year2038-safe])
])
]) # m4_ifndef AC_SYS_YEAR2038