On 2025-11-06 02:35, Bruno Haible wrote:
Therefore it will be good if Paul can run
'merge-gnulib' again soon.
Thanks for helping out with this. I did the merge-gnulib and hope this
finishes up this week's flurry of Gnulib-Emacs integration. I'm
attaching the patch I just installed into GNU Emacs.From 7654ec5e953f25499cfabe7da08e10d94379781f Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email protected]>
Date: Thu, 6 Nov 2025 10:58:30 -0800
Subject: [PATCH] Update from Gnulib by running admin/merge-gnulib
* admin/merge-gnulib (GNULIB_MODULES): Add stdio-windows.
Also, sort and remove duplicates.
---
admin/merge-gnulib | 6 +++---
lib/acl_entries.c | 11 ++++++++---
lib/gnulib.mk.in | 23 +++++++++++++++++------
lib/nproc.c | 4 ++--
m4/acl.m4 | 8 ++++++--
m4/gnulib-comp.m4 | 27 +++++++++++++++------------
m4/nproc.m4 | 6 +++++-
7 files changed, 56 insertions(+), 29 deletions(-)
diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index 61c386c3e35..7474a0a4a57 100755
--- a/admin/merge-gnulib
+++ b/admin/merge-gnulib
@@ -48,10 +48,10 @@ GNULIB_MODULES=
qcopy-acl readlink readlinkat realloc-posix regex
sig2str sigdescr_np socklen stat-time std-gnu11
stdc_bit_width stdc_count_ones stdc_trailing_zeros
- stdckdint-h stddef-h stdio-h
- stpcpy stringeq strnlen strnlen strtoimax symlink sys_stat-h sys_time-h
+ stdckdint-h stddef-h stdio-h stdio-windows
+ stpcpy stringeq strnlen strtoimax symlink sys_stat-h sys_time-h
tempname time-h time_r time_rz timegm timer-time timespec-add timespec-sub
- update-copyright unlocked-io utimensat
+ unlocked-io update-copyright utimensat
vla warnings year2038
'
diff --git a/lib/acl_entries.c b/lib/acl_entries.c
index b78ba18a656..7b44e694896 100644
--- a/lib/acl_entries.c
+++ b/lib/acl_entries.c
@@ -22,7 +22,10 @@
#include "acl-internal.h"
/* This file assumes POSIX-draft like ACLs
- (Linux, FreeBSD, NetBSD >= 10, Mac OS X, Cygwin >= 2.5). */
+ (Linux, FreeBSD, NetBSD >= 10, Mac OS X, Cygwin >= 2.5).
+
+ It is compiled only on systems that do not have the acl_entries() function
+ (in libc or libacl). */
/* Return the number of entries in ACL.
Return -1 and set errno upon failure to determine it. */
@@ -34,7 +37,8 @@ acl_entries (acl_t acl)
if (acl != NULL)
{
-#if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
+#if HAVE_ACL_FIRST_ENTRY /* Linux, FreeBSD, NetBSD >= 10, 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;
@@ -44,7 +48,7 @@ acl_entries (acl_t acl)
got_one >= 0;
got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
count++;
-#else /* Linux, FreeBSD, NetBSD >= 10, Cygwin >= 2.5 */
+# else /* Linux, FreeBSD, NetBSD >= 10, Cygwin >= 2.5 */
/* acl_get_entry returns 1 when it successfully fetches an entry,
and 0 at the end. */
acl_entry_t ace;
@@ -56,6 +60,7 @@ acl_entries (acl_t acl)
count++;
if (got_one < 0)
return -1;
+# endif
#endif
}
diff --git a/lib/gnulib.mk.in b/lib/gnulib.mk.in
index f158acef91f..e655023878e 100644
--- a/lib/gnulib.mk.in
+++ b/lib/gnulib.mk.in
@@ -166,7 +166,9 @@
# stdckdint-h \
# stddef-h \
# stdio-h \
+# stdio-windows \
# stpcpy \
+# stringeq \
# strnlen \
# strtoimax \
# symlink \
@@ -295,6 +297,7 @@ GIF_CFLAGS = @GIF_CFLAGS@
GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@
GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@
GL_COND_LIBTOOL_CONDITION = @GL_COND_LIBTOOL_CONDITION@
+GL_COND_OBJ_ACL_ENTRIES_CONDITION = @GL_COND_OBJ_ACL_ENTRIES_CONDITION@
GL_COND_OBJ_CANONICALIZE_LGPL_CONDITION = @GL_COND_OBJ_CANONICALIZE_LGPL_CONDITION@
GL_COND_OBJ_COPY_FILE_RANGE_CONDITION = @GL_COND_OBJ_COPY_FILE_RANGE_CONDITION@
GL_COND_OBJ_DIRFD_CONDITION = @GL_COND_OBJ_DIRFD_CONDITION@
@@ -1588,10 +1591,11 @@ endif
ifeq (,$(OMIT_GNULIB_MODULE_acl-permissions))
libgnu_a_SOURCES += acl-errno-valid.c acl-internal.c get-permissions.c set-permissions.c
+ifneq (,$(GL_COND_OBJ_ACL_ENTRIES_CONDITION))
+libgnu_a_SOURCES += acl_entries.c
+endif
-EXTRA_DIST += acl-internal.h acl.h acl_entries.c
-
-EXTRA_libgnu_a_SOURCES += acl_entries.c
+EXTRA_DIST += acl-internal.h acl.h
endif
## end gnulib module acl-permissions
@@ -3502,9 +3506,6 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
$(AM_V_at)mv $@-t3 $@
MOSTLYCLEANFILES += stdio.h stdio.h-t1 stdio.h-t2 stdio.h-t3
-ifneq (,$(GL_COND_OBJ_STDIO_CONSOLESAFE_CONDITION))
-libgnu_a_SOURCES += stdio-consolesafe.c
-endif
ifneq (,$(GL_COND_OBJ_STDIO_READ_CONDITION))
libgnu_a_SOURCES += stdio-read.c
endif
@@ -3517,6 +3518,16 @@ EXTRA_DIST += stdio.in.h
endif
## end gnulib module stdio-h
+## begin gnulib module stdio-windows
+ifeq (,$(OMIT_GNULIB_MODULE_stdio-windows))
+
+ifneq (,$(GL_COND_OBJ_STDIO_CONSOLESAFE_CONDITION))
+libgnu_a_SOURCES += stdio-consolesafe.c
+endif
+
+endif
+## end gnulib module stdio-windows
+
## begin gnulib module stdlib-h
ifeq (,$(OMIT_GNULIB_MODULE_stdlib-h))
diff --git a/lib/nproc.c b/lib/nproc.c
index e899ff17620..9404be1d384 100644
--- a/lib/nproc.c
+++ b/lib/nproc.c
@@ -22,7 +22,7 @@
#include <errno.h>
#include <limits.h>
-#if HAVE_MNTENT_H
+#if HAVE_SETMNTENT
# include <mntent.h>
#endif
#include <stdlib.h>
@@ -385,7 +385,7 @@ cgroup2_mount (void)
if (access ("/sys/fs/cgroup/cgroup.controllers", F_OK) == 0)
return strdup ("/sys/fs/cgroup");
-#if HAVE_MNTENT_H
+#if HAVE_SETMNTENT
/* Otherwise look for the mount point. */
struct mntent *mnt;
if (! (fp = setmntent ("/proc/mounts", "r")))
diff --git a/m4/acl.m4 b/m4/acl.m4
index 0ab7d34e2d2..e68ed377ba9 100644
--- a/m4/acl.m4
+++ b/m4/acl.m4
@@ -1,5 +1,5 @@
# acl.m4
-# serial 39
+# serial 40
dnl Copyright (C) 2002, 2004-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,
@@ -28,6 +28,7 @@ AC_DEFUN_ONCE
AC_CHECK_FUNCS_ONCE([fchmod])
LIB_ACL=
use_acl=0
+ NEED_ACL_ENTRIES=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])
@@ -55,7 +56,10 @@ AC_DEFUN_ONCE
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_CHECK_FUNC([acl_entries],
+ [AC_DEFINE([HAVE_ACL_ENTRIES], [1],
+ [Define to 1 if libc or libacl defines the function acl_entries.])],
+ [NEED_ACL_ENTRIES=1])
AC_CACHE_CHECK([for ACL_FIRST_ENTRY],
[gl_cv_acl_ACL_FIRST_ENTRY],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
index b80c5c84a0b..fea8b7d684b 100644
--- a/m4/gnulib-comp.m4
+++ b/m4/gnulib-comp.m4
@@ -192,6 +192,7 @@ AC_DEFUN
# Code from module stdint-h:
# Code from module stdio-h:
gl_STDIO_H_EARLY
+ # Code from module stdio-windows:
# Code from module stdlib-h:
# Code from module stpcpy:
# Code from module string-h:
@@ -250,6 +251,7 @@ AC_DEFUN
gl_source_base='lib'
gl_source_base_prefix=
gl_FUNC_ACL
+ gl_CONDITIONAL([GL_COND_OBJ_ACL_ENTRIES], [test $NEED_ACL_ENTRIES = 1])
gl_ALIGNASOF
gl_FUNC_ALLOCA
gl_CONDITIONAL_HEADER([alloca.h])
@@ -568,18 +570,6 @@ AC_DEFUN
gl_STDIO_H
gl_STDIO_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
- USES_MSVCRT=0
- case "$host_os" in
- mingw* | windows*)
- AC_EGREP_CPP([Special], [
- #ifndef _UCRT
- Special
- #endif
- ],
- [USES_MSVCRT=1])
- ;;
- esac
- gl_CONDITIONAL([GL_COND_OBJ_STDIO_CONSOLESAFE], [test $USES_MSVCRT = 1])
gl_CONDITIONAL([GL_COND_OBJ_STDIO_READ], [test $REPLACE_STDIO_READ_FUNCS = 1])
gl_CONDITIONAL([GL_COND_OBJ_STDIO_WRITE], [test $REPLACE_STDIO_WRITE_FUNCS = 1])
dnl No need to create extra modules for these functions. Everyone who uses
@@ -605,6 +595,19 @@ AC_DEFUN
gl_STDIO_MODULE_INDICATOR([fputs])
gl_STDIO_MODULE_INDICATOR([puts])
gl_STDIO_MODULE_INDICATOR([fwrite])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ USES_MSVCRT=0
+ case "$host_os" in
+ mingw* | windows*)
+ AC_EGREP_CPP([Special], [
+ #ifndef _UCRT
+ Special
+ #endif
+ ],
+ [USES_MSVCRT=1])
+ ;;
+ esac
+ gl_CONDITIONAL([GL_COND_OBJ_STDIO_CONSOLESAFE], [test $USES_MSVCRT = 1])
gl_STDLIB_H
gl_STDLIB_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
diff --git a/m4/nproc.m4 b/m4/nproc.m4
index 9225779585a..e9fba1533ca 100644
--- a/m4/nproc.m4
+++ b/m4/nproc.m4
@@ -1,5 +1,5 @@
# nproc.m4
-# serial 7
+# serial 8
dnl Copyright (C) 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,
@@ -19,6 +19,10 @@ AC_DEFUN
AC_CHECK_HEADERS([mntent.h sys/pstat.h sys/param.h],,,
[AC_INCLUDES_DEFAULT])
+ gl_CHECK_FUNCS_ANDROID([setmntent],
+ [[#include <stdio.h>
+ #include <mntent.h>
+ ]])
dnl <sys/sysctl.h> requires <sys/param.h> on OpenBSD 4.0.
AC_CHECK_HEADERS([sys/sysctl.h],,,
[AC_INCLUDES_DEFAULT
--
2.51.0