summaryrefslogtreecommitdiff
path: root/gnulib-m4
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib-m4')
-rw-r--r--gnulib-m4/00gnulib.m46
-rw-r--r--gnulib-m4/__inline.m48
-rw-r--r--gnulib-m4/absolute-header.m46
-rw-r--r--gnulib-m4/alloca.m46
-rw-r--r--gnulib-m4/arpa_inet_h.m410
-rw-r--r--gnulib-m4/assert_h.m482
-rw-r--r--gnulib-m4/btowc.m457
-rw-r--r--gnulib-m4/build-to-host.m4274
-rw-r--r--gnulib-m4/builtin-expect.m412
-rw-r--r--gnulib-m4/c-bool.m424
-rw-r--r--gnulib-m4/c32rtomb.m4155
-rw-r--r--gnulib-m4/calloc.m481
-rw-r--r--gnulib-m4/close.m46
-rw-r--r--gnulib-m4/codeset.m46
-rw-r--r--gnulib-m4/ctype_h.m440
-rw-r--r--gnulib-m4/double-slash-root.m46
-rw-r--r--gnulib-m4/dup2.m46
-rw-r--r--gnulib-m4/eealloc.m431
-rw-r--r--gnulib-m4/environ.m46
-rw-r--r--gnulib-m4/errno_h.m469
-rw-r--r--gnulib-m4/error.m415
-rw-r--r--gnulib-m4/error_h.m421
-rw-r--r--gnulib-m4/exponentd.m48
-rw-r--r--gnulib-m4/exponentf.m46
-rw-r--r--gnulib-m4/exponentl.m4129
-rw-r--r--gnulib-m4/extensions-aix.m426
-rw-r--r--gnulib-m4/extensions.m425
-rw-r--r--gnulib-m4/extern-inline.m421
-rw-r--r--gnulib-m4/fcntl-o.m498
-rw-r--r--gnulib-m4/fcntl.m48
-rw-r--r--gnulib-m4/fcntl_h.m47
-rw-r--r--gnulib-m4/fdopen.m46
-rw-r--r--gnulib-m4/flexmember.m412
-rw-r--r--gnulib-m4/float_h.m433
-rw-r--r--gnulib-m4/fpieee.m46
-rw-r--r--gnulib-m4/free.m416
-rw-r--r--gnulib-m4/frexp.m414
-rw-r--r--gnulib-m4/frexpl.m416
-rw-r--r--gnulib-m4/fseterr.m46
-rw-r--r--gnulib-m4/fstat.m46
-rw-r--r--gnulib-m4/ftruncate.m412
-rw-r--r--gnulib-m4/getcwd.m416
-rw-r--r--gnulib-m4/getdtablesize.m46
-rw-r--r--gnulib-m4/getlocalename_l.m4119
-rw-r--r--gnulib-m4/getpagesize.m449
-rw-r--r--gnulib-m4/getprogname.m415
-rw-r--r--gnulib-m4/gettext_h.m421
-rw-r--r--gnulib-m4/gettimeofday.m412
-rw-r--r--gnulib-m4/gnulib-cache.m416
-rw-r--r--gnulib-m4/gnulib-common.m4462
-rw-r--r--gnulib-m4/gnulib-comp.m41408
-rw-r--r--gnulib-m4/gnulib-i18n.m461
-rw-r--r--gnulib-m4/host-cpu-c-abi.m417
-rw-r--r--gnulib-m4/iconv.m451
-rw-r--r--gnulib-m4/iconv_h.m46
-rw-r--r--gnulib-m4/iconv_open.m48
-rw-r--r--gnulib-m4/include_next.m46
-rw-r--r--gnulib-m4/inet_pton.m46
-rw-r--r--gnulib-m4/init-package-version.m4128
-rw-r--r--gnulib-m4/inline.m410
-rw-r--r--gnulib-m4/intl-thread-locale.m478
-rw-r--r--gnulib-m4/intlmacosx.m46
-rw-r--r--gnulib-m4/intmax_t.m46
-rw-r--r--gnulib-m4/inttypes.m46
-rw-r--r--gnulib-m4/inttypes_h.m46
-rw-r--r--gnulib-m4/ioctl.m46
-rw-r--r--gnulib-m4/isblank.m46
-rw-r--r--gnulib-m4/isnand.m48
-rw-r--r--gnulib-m4/isnanf.m446
-rw-r--r--gnulib-m4/isnanl.m418
-rw-r--r--gnulib-m4/iswblank.m46
-rw-r--r--gnulib-m4/iswdigit.m426
-rw-r--r--gnulib-m4/iswpunct.m46
-rw-r--r--gnulib-m4/iswxdigit.m424
-rw-r--r--gnulib-m4/langinfo_h.m4137
-rw-r--r--gnulib-m4/largefile.m451
-rw-r--r--gnulib-m4/lcmessage.m46
-rw-r--r--gnulib-m4/ldexpl.m46
-rw-r--r--gnulib-m4/lib-ld.m46
-rw-r--r--gnulib-m4/lib-link.m48
-rw-r--r--gnulib-m4/lib-prefix.m48
-rw-r--r--gnulib-m4/libunistring-base.m420
-rw-r--r--gnulib-m4/limits-h.m49
-rw-r--r--gnulib-m4/localcharset.m46
-rw-r--r--gnulib-m4/locale-ar.m413
-rw-r--r--gnulib-m4/locale-en.m4138
-rw-r--r--gnulib-m4/locale-fr.m432
-rw-r--r--gnulib-m4/locale-ja.m417
-rw-r--r--gnulib-m4/locale-tr.m413
-rw-r--r--gnulib-m4/locale-zh.m425
-rw-r--r--gnulib-m4/locale_h.m457
-rw-r--r--gnulib-m4/localeconv.m461
-rw-r--r--gnulib-m4/localename.m457
-rw-r--r--gnulib-m4/lock.m410
-rw-r--r--gnulib-m4/lstat.m412
-rw-r--r--gnulib-m4/malloc.m4137
-rw-r--r--gnulib-m4/malloca.m48
-rw-r--r--gnulib-m4/math_h.m485
-rw-r--r--gnulib-m4/mbchar.m46
-rw-r--r--gnulib-m4/mbiter.m46
-rw-r--r--gnulib-m4/mbrtoc32.m466
-rw-r--r--gnulib-m4/mbrtowc.m4101
-rw-r--r--gnulib-m4/mbsinit.m46
-rw-r--r--gnulib-m4/mbstate_t.m46
-rw-r--r--gnulib-m4/mbtowc.m46
-rw-r--r--gnulib-m4/memchr.m437
-rw-r--r--gnulib-m4/minmax.m46
-rw-r--r--gnulib-m4/mkfifo.m475
-rw-r--r--gnulib-m4/mmap-anon.m423
-rw-r--r--gnulib-m4/mode_t.m46
-rw-r--r--gnulib-m4/msvc-inval.m46
-rw-r--r--gnulib-m4/msvc-nothrow.m46
-rw-r--r--gnulib-m4/multiarch.m46
-rw-r--r--gnulib-m4/musl.m46
-rw-r--r--gnulib-m4/nan-mips.m46
-rw-r--r--gnulib-m4/nanosleep.m413
-rw-r--r--gnulib-m4/netinet_in_h.m46
-rw-r--r--gnulib-m4/nocrash.m46
-rw-r--r--gnulib-m4/off64_t.m432
-rw-r--r--gnulib-m4/off_t.m46
-rw-r--r--gnulib-m4/once.m414
-rw-r--r--gnulib-m4/open-cloexec.m49
-rw-r--r--gnulib-m4/open-slash.m46
-rw-r--r--gnulib-m4/open.m49
-rw-r--r--gnulib-m4/pathmax.m46
-rw-r--r--gnulib-m4/perror.m46
-rw-r--r--gnulib-m4/pipe.m46
-rw-r--r--gnulib-m4/printf-frexp.m46
-rw-r--r--gnulib-m4/printf-frexpl.m46
-rw-r--r--gnulib-m4/printf.m4318
-rw-r--r--gnulib-m4/pselect.m46
-rw-r--r--gnulib-m4/pthread-cond.m438
-rw-r--r--gnulib-m4/pthread-mutex.m473
-rw-r--r--gnulib-m4/pthread-once.m483
-rw-r--r--gnulib-m4/pthread-rwlock.m4462
-rw-r--r--gnulib-m4/pthread-spin.m472
-rw-r--r--gnulib-m4/pthread-thread.m46
-rw-r--r--gnulib-m4/pthread_h.m416
-rw-r--r--gnulib-m4/pthread_mutex_timedlock.m449
-rw-r--r--gnulib-m4/pthread_rwlock_rdlock.m48
-rw-r--r--gnulib-m4/pthread_sigmask.m478
-rw-r--r--gnulib-m4/putenv.m48
-rw-r--r--gnulib-m4/raise.m46
-rw-r--r--gnulib-m4/random.m46
-rw-r--r--gnulib-m4/random_r.m413
-rw-r--r--gnulib-m4/realloc.m4113
-rw-r--r--gnulib-m4/reallocarray.m417
-rw-r--r--gnulib-m4/relocatable-lib.m410
-rw-r--r--gnulib-m4/sched_h.m416
-rw-r--r--gnulib-m4/sched_yield.m46
-rw-r--r--gnulib-m4/select.m46
-rw-r--r--gnulib-m4/semaphore.m410
-rw-r--r--gnulib-m4/setenv.m410
-rw-r--r--gnulib-m4/setlocale.m435
-rw-r--r--gnulib-m4/setlocale_null.m416
-rw-r--r--gnulib-m4/signal_h.m412
-rw-r--r--gnulib-m4/signalblocking.m46
-rw-r--r--gnulib-m4/signbit.m48
-rw-r--r--gnulib-m4/size_max.m46
-rw-r--r--gnulib-m4/sleep.m48
-rw-r--r--gnulib-m4/snan.m46
-rw-r--r--gnulib-m4/socketlib.m46
-rw-r--r--gnulib-m4/sockets.m46
-rw-r--r--gnulib-m4/socklen.m48
-rw-r--r--gnulib-m4/sockpfaf.m416
-rw-r--r--gnulib-m4/ssize_t.m46
-rw-r--r--gnulib-m4/stat-time.m416
-rw-r--r--gnulib-m4/stat.m412
-rw-r--r--gnulib-m4/stdalign.m426
-rw-r--r--gnulib-m4/stdckdint_h.m4136
-rw-r--r--gnulib-m4/stddef_h.m464
-rw-r--r--gnulib-m4/stdint.m414
-rw-r--r--gnulib-m4/stdint_h.m46
-rw-r--r--gnulib-m4/stdio_h.m418
-rw-r--r--gnulib-m4/stdlib_h.m468
-rw-r--r--gnulib-m4/stpcpy.m430
-rw-r--r--gnulib-m4/strerror.m46
-rw-r--r--gnulib-m4/strerror_r.m48
-rw-r--r--gnulib-m4/string_h.m428
-rw-r--r--gnulib-m4/stringeq.m425
-rw-r--r--gnulib-m4/strncat.m435
-rw-r--r--gnulib-m4/strstr.m412
-rw-r--r--gnulib-m4/symlink.m48
-rw-r--r--gnulib-m4/sys_cdefs_h.m426
-rw-r--r--gnulib-m4/sys_ioctl_h.m46
-rw-r--r--gnulib-m4/sys_select_h.m415
-rw-r--r--gnulib-m4/sys_socket_h.m460
-rw-r--r--gnulib-m4/sys_stat_h.m46
-rw-r--r--gnulib-m4/sys_time_h.m412
-rw-r--r--gnulib-m4/sys_types_h.m417
-rw-r--r--gnulib-m4/sys_uio_h.m46
-rw-r--r--gnulib-m4/thread.m46
-rw-r--r--gnulib-m4/threadlib.m4404
-rw-r--r--gnulib-m4/time.m417
-rw-r--r--gnulib-m4/time_h.m423
-rw-r--r--gnulib-m4/uchar_h.m436
-rw-r--r--gnulib-m4/unicase_h.m46
-rw-r--r--gnulib-m4/unictype_h.m47
-rw-r--r--gnulib-m4/unimetadata_h.m46
-rw-r--r--gnulib-m4/uninorm_h.m46
-rw-r--r--gnulib-m4/unistd_h.m48
-rw-r--r--gnulib-m4/unitypes_h.m426
-rw-r--r--gnulib-m4/usleep.m46
-rw-r--r--gnulib-m4/vasnprintf.m475
-rw-r--r--gnulib-m4/visibility.m46
-rw-r--r--gnulib-m4/warn-on-use.m46
-rw-r--r--gnulib-m4/wchar_h.m418
-rw-r--r--gnulib-m4/wchar_t.m424
-rw-r--r--gnulib-m4/wcrtomb.m420
-rw-r--r--gnulib-m4/wctob.m417
-rw-r--r--gnulib-m4/wctomb.m46
-rw-r--r--gnulib-m4/wctype_h.m46
-rw-r--r--gnulib-m4/wcwidth.m411
-rw-r--r--gnulib-m4/windows-rc.m421
-rw-r--r--gnulib-m4/wint_t.m46
-rw-r--r--gnulib-m4/xalloc.m46
-rw-r--r--gnulib-m4/xgetcwd.m412
-rw-r--r--gnulib-m4/xsize.m46
-rw-r--r--gnulib-m4/yield.m46
-rw-r--r--gnulib-m4/zzgnulib.m46
220 files changed, 5909 insertions, 2597 deletions
diff --git a/gnulib-m4/00gnulib.m4 b/gnulib-m4/00gnulib.m4
index 99c99d1b..2b205b35 100644
--- a/gnulib-m4/00gnulib.m4
+++ b/gnulib-m4/00gnulib.m4
@@ -1,8 +1,10 @@
-# 00gnulib.m4 serial 9
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# 00gnulib.m4
+# serial 9
+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,
dnl with or without modifications, as long as this notice is preserved.
+dnl This file is offered as-is, without any warranty.
dnl This file must be named something that sorts before all other
dnl gnulib-provided .m4 files. It is needed until the clang fix has
diff --git a/gnulib-m4/__inline.m4 b/gnulib-m4/__inline.m4
index 992e16f4..d1b8257b 100644
--- a/gnulib-m4/__inline.m4
+++ b/gnulib-m4/__inline.m4
@@ -1,8 +1,12 @@
-# Test for __inline keyword
-dnl Copyright 2017-2024 Free Software Foundation, Inc.
+# __inline.m4
+# serial 1
+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.
+dnl This file is offered as-is, without any warranty.
+
+# Test for __inline keyword
AC_DEFUN([gl___INLINE],
[
diff --git a/gnulib-m4/absolute-header.m4 b/gnulib-m4/absolute-header.m4
index 0e9f9ba7..5501b07b 100644
--- a/gnulib-m4/absolute-header.m4
+++ b/gnulib-m4/absolute-header.m4
@@ -1,8 +1,10 @@
-# absolute-header.m4 serial 18
-dnl Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# absolute-header.m4
+# serial 18
+dnl Copyright (C) 2006-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 This file is offered as-is, without any warranty.
dnl From Derek Price.
diff --git a/gnulib-m4/alloca.m4 b/gnulib-m4/alloca.m4
index 90960215..68fc6211 100644
--- a/gnulib-m4/alloca.m4
+++ b/gnulib-m4/alloca.m4
@@ -1,9 +1,11 @@
-# alloca.m4 serial 21
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2024 Free Software Foundation,
+# alloca.m4
+# serial 21
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2025 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_FUNC_ALLOCA],
[
diff --git a/gnulib-m4/arpa_inet_h.m4 b/gnulib-m4/arpa_inet_h.m4
index 754b38eb..5dae6f72 100644
--- a/gnulib-m4/arpa_inet_h.m4
+++ b/gnulib-m4/arpa_inet_h.m4
@@ -1,8 +1,10 @@
-# arpa_inet_h.m4 serial 17
-dnl Copyright (C) 2006, 2008-2024 Free Software Foundation, Inc.
+# arpa_inet_h.m4
+# serial 18
+dnl Copyright (C) 2006, 2008-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 This file is offered as-is, without any warranty.
dnl Written by Simon Josefsson and Bruno Haible
@@ -67,8 +69,12 @@ AC_DEFUN([gl_ARPA_INET_H_REQUIRE_DEFAULTS],
AC_DEFUN([gl_ARPA_INET_H_DEFAULTS],
[
dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_DECL_HTONL=1; AC_SUBST([HAVE_DECL_HTONL])
+ HAVE_DECL_HTONS=1; AC_SUBST([HAVE_DECL_HTONS])
HAVE_DECL_INET_NTOP=1; AC_SUBST([HAVE_DECL_INET_NTOP])
HAVE_DECL_INET_PTON=1; AC_SUBST([HAVE_DECL_INET_PTON])
+ HAVE_DECL_NTOHL=1; AC_SUBST([HAVE_DECL_NTOHL])
+ HAVE_DECL_NTOHS=1; AC_SUBST([HAVE_DECL_NTOHS])
REPLACE_INET_NTOP=0; AC_SUBST([REPLACE_INET_NTOP])
REPLACE_INET_PTON=0; AC_SUBST([REPLACE_INET_PTON])
])
diff --git a/gnulib-m4/assert_h.m4 b/gnulib-m4/assert_h.m4
index d3d4c425..b02cbd68 100644
--- a/gnulib-m4/assert_h.m4
+++ b/gnulib-m4/assert_h.m4
@@ -1,8 +1,10 @@
-# assert-h.m4
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# assert_h.m4
+# serial 6
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
dnl From Paul Eggert.
@@ -11,30 +13,31 @@ AC_DEFUN([gl_ASSERT_H],
AC_CACHE_CHECK([for static_assert], [gl_cv_static_assert],
[gl_saved_CFLAGS=$CFLAGS
for gl_working in "yes, a keyword" "yes, an <assert.h> macro"; do
- AS_CASE([$gl_working],
- [*assert.h*], [CFLAGS="$gl_saved_CFLAGS -DINCLUDE_ASSERT_H"])
-
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#if defined __clang__ && __STDC_VERSION__ < 202311
- #pragma clang diagnostic error "-Wc2x-extensions"
- #pragma clang diagnostic error "-Wc++1z-extensions"
- #endif
- #ifdef INCLUDE_ASSERT_H
- #include <assert.h>
- #endif
- static_assert (2 + 2 == 4, "arithmetic does not work");
- static_assert (2 + 2 == 4);
- ]],
- [[
- static_assert (sizeof (char) == 1, "sizeof does not work");
- static_assert (sizeof (char) == 1);
- ]])],
- [gl_cv_static_assert=$gl_working],
- [gl_cv_static_assert=no])
- CFLAGS=$gl_saved_CFLAGS
- test "$gl_cv_static_assert" != no && break
- done])
+ AS_CASE([$gl_working],
+ [*assert.h*], [CFLAGS="$gl_saved_CFLAGS -DINCLUDE_ASSERT_H"])
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#if defined __clang__ && __STDC_VERSION__ < 202311
+ #pragma clang diagnostic error "-Wc2x-extensions"
+ #pragma clang diagnostic error "-Wc++1z-extensions"
+ #endif
+ #ifdef INCLUDE_ASSERT_H
+ #include <assert.h>
+ #endif
+ static_assert (2 + 2 == 4, "arithmetic does not work");
+ static_assert (2 + 2 == 4);
+ ]],
+ [[
+ static_assert (sizeof (char) == 1, "sizeof does not work");
+ static_assert (sizeof (char) == 1);
+ ]])
+ ],
+ [gl_cv_static_assert=$gl_working],
+ [gl_cv_static_assert=no])
+ CFLAGS=$gl_saved_CFLAGS
+ test "$gl_cv_static_assert" != no && break
+ done
+ ])
GL_GENERATE_ASSERT_H=false
AS_CASE([$gl_cv_static_assert],
@@ -47,25 +50,36 @@ AC_DEFUN([gl_ASSERT_H],
dnl The "zz" puts this toward config.h's end, to avoid potential
dnl collisions with other definitions.
+ dnl Hardcode the known configuration results for GCC and clang, so that
+ dnl a configuration made with the C compiler works also with the C++ compiler
+ dnl and vice versa.
+ dnl The seemingly redundant parentheses are necessary for MSVC 14.
dnl #undef assert so that programs are not tempted to use it without
dnl specifically including assert.h.
- dnl #undef __ASSERT_H__ so that on IRIX, when programs later include
- dnl <assert.h>, this include actually defines assert.
dnl Break the #undef_s apart with a comment so that 'configure' does
dnl not comment them out.
AH_VERBATIM([zzstatic_assert],
-[#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \
+[#if (!(defined __clang__ \
+ ? (defined __cplusplus \
+ ? __cplusplus >= 201703L \
+ : __STDC_VERSION__ >= 202000L && __clang_major__ >= 16 \
+ && !defined __sun) \
+ : (defined __GNUC__ \
+ ? (defined __cplusplus \
+ ? __cplusplus >= 201103L && __GNUG__ >= 6 \
+ : __STDC_VERSION__ >= 202000L && __GNUC__ >= 13 \
+ && !defined __sun) \
+ : defined HAVE_C_STATIC_ASSERT)) \
+ && !defined assert \
&& (!defined __cplusplus \
|| (__cpp_static_assert < 201411 \
&& __GNUG__ < 6 && __clang_major__ < 6)))
#include <assert.h>
#undef/**/assert
- #ifdef __sgi
- #undef/**/__ASSERT_H__
- #endif
/* Solaris 11.4 <assert.h> defines static_assert as a macro with 2 arguments.
- We need it also to be invocable with a single argument. */
- #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus
+ We need it also to be invocable with a single argument.
+ Haiku 2022 <assert.h> does not define static_assert at all. */
+ #if (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus
#undef/**/static_assert
#define static_assert _Static_assert
#endif
diff --git a/gnulib-m4/btowc.m4 b/gnulib-m4/btowc.m4
index 8bb55dc8..d224b156 100644
--- a/gnulib-m4/btowc.m4
+++ b/gnulib-m4/btowc.m4
@@ -1,16 +1,19 @@
-# btowc.m4 serial 14
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# btowc.m4
+# serial 16
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_BTOWC],
[
AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+ AC_REQUIRE([gt_TYPE_WINT_T])
dnl Check whether <wchar.h> is usable at all, first. Otherwise the test
dnl program below may lead to an endless loop. See
- dnl <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>.
+ dnl <https://gcc.gnu.org/PR42440>.
AC_REQUIRE([gl_WCHAR_H_INLINE_OK])
AC_CHECK_FUNCS_ONCE([btowc])
@@ -51,43 +54,6 @@ changequote([,])dnl
])
])
- dnl IRIX 6.5 btowc(EOF) is 0xFF, not WEOF.
- AC_CACHE_CHECK([whether btowc(EOF) is correct],
- [gl_cv_func_btowc_eof],
- [
- dnl Initial guess, used when cross-compiling or when no suitable locale
- dnl is present.
-changequote(,)dnl
- case "$host_os" in
- # Guess no on IRIX.
- irix*) gl_cv_func_btowc_eof="guessing no" ;;
- # Guess yes on native Windows.
- mingw* | windows*) gl_cv_func_btowc_eof="guessing yes" ;;
- # Guess yes otherwise.
- *) gl_cv_func_btowc_eof="guessing yes" ;;
- esac
-changequote([,])dnl
- if test $LOCALE_FR != none; then
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
-#include <locale.h>
-#include <stdio.h>
-#include <wchar.h>
-int main ()
-{
- if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
- {
- if (btowc (EOF) != WEOF)
- return 1;
- }
- return 0;
-}]])],
- [gl_cv_func_btowc_eof=yes],
- [gl_cv_func_btowc_eof=no],
- [:])
- fi
- ])
-
dnl On mingw, in the C locale, btowc is inconsistent with mbrtowc:
dnl mbrtowc avoids calling MultiByteToWideChar when MB_CUR_MAX is 1 and
dnl ___lc_codepage_func() is 0, but btowc is lacking this special case.
@@ -132,14 +98,17 @@ int main ()
])
])
+ if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then
+ dnl On mingw/ucrt, we override the return type of btowc().
+ dnl While the original wint_t (= unsigned short) and the overridden wint_t
+ dnl (= unsigned int) are equivalent in function parameters, this is not
+ dnl the case for function return types.
+ REPLACE_BTOWC=1
+ fi
case "$gl_cv_func_btowc_nul" in
*yes) ;;
*) REPLACE_BTOWC=1 ;;
esac
- case "$gl_cv_func_btowc_eof" in
- *yes) ;;
- *) REPLACE_BTOWC=1 ;;
- esac
case "$gl_cv_func_btowc_consistent" in
*yes) ;;
*) REPLACE_BTOWC=1 ;;
diff --git a/gnulib-m4/build-to-host.m4 b/gnulib-m4/build-to-host.m4
new file mode 100644
index 00000000..01bff8f3
--- /dev/null
+++ b/gnulib-m4/build-to-host.m4
@@ -0,0 +1,274 @@
+# build-to-host.m4
+# serial 5
+dnl Copyright (C) 2023-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 This file is offered as-is, without any warranty.
+
+dnl Written by Bruno Haible.
+
+dnl When the build environment ($build_os) is different from the target runtime
+dnl environment ($host_os), file names may need to be converted from the build
+dnl environment syntax to the target runtime environment syntax. This is
+dnl because the Makefiles are executed (mostly) by build environment tools and
+dnl therefore expect file names in build environment syntax, whereas the runtime
+dnl expects file names in target runtime environment syntax.
+dnl
+dnl For example, if $build_os = cygwin and $host_os = mingw32, filenames need
+dnl be converted from Cygwin syntax to native Windows syntax:
+dnl /cygdrive/c/foo/bar -> C:\foo\bar
+dnl /usr/local/share -> C:\cygwin64\usr\local\share
+dnl
+dnl gl_BUILD_TO_HOST([somedir])
+dnl This macro takes as input an AC_SUBSTed variable 'somedir', which must
+dnl already have its final value assigned, and produces two additional
+dnl AC_SUBSTed variables 'somedir_c' and 'somedir_c_make', that designate the
+dnl same file name value, just in different syntax:
+dnl - somedir_c is the file name in target runtime environment syntax,
+dnl as a C string (starting and ending with a double-quote,
+dnl and with escaped backslashes and double-quotes in
+dnl between).
+dnl - somedir_c_make is the same thing, escaped for use in a Makefile.
+
+AC_DEFUN([gl_BUILD_TO_HOST],
+[
+ AC_REQUIRE([AC_CANONICAL_BUILD])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_BUILD_TO_HOST_INIT])
+
+ dnl Define somedir_c.
+ gl_final_[$1]="$[$1]"
+ dnl Translate it from build syntax to host syntax.
+ case "$build_os" in
+ cygwin*)
+ case "$host_os" in
+ mingw* | windows*)
+ gl_final_[$1]=`cygpath -w "$gl_final_[$1]"` ;;
+ esac
+ ;;
+ esac
+ dnl Convert it to C string syntax.
+ [$1]_c=`printf '%s\n' "$gl_final_[$1]" | sed -e "$gl_sed_double_backslashes" -e "$gl_sed_escape_doublequotes" | tr -d "$gl_tr_cr"`
+ [$1]_c='"'"$[$1]_c"'"'
+ AC_SUBST([$1_c])
+
+ dnl Define somedir_c_make.
+ [$1]_c_make=`printf '%s\n' "$[$1]_c" | sed -e "$gl_sed_escape_for_make_1" -e "$gl_sed_escape_for_make_2" | tr -d "$gl_tr_cr"`
+ dnl Use the substituted somedir variable, when possible, so that the user
+ dnl may adjust somedir a posteriori when there are no special characters.
+ if test "$[$1]_c_make" = '\"'"${gl_final_[$1]}"'\"'; then
+ [$1]_c_make='\"$([$1])\"'
+ fi
+ AC_SUBST([$1_c_make])
+])
+
+dnl Some initializations for gl_BUILD_TO_HOST.
+AC_DEFUN([gl_BUILD_TO_HOST_INIT],
+[
+ gl_sed_double_backslashes='s/\\/\\\\/g'
+ gl_sed_escape_doublequotes='s/"/\\"/g'
+changequote(,)dnl
+ gl_sed_escape_for_make_1="s,\\([ \"&'();<>\\\\\`|]\\),\\\\\\1,g"
+changequote([,])dnl
+ gl_sed_escape_for_make_2='s,\$,\\$$,g'
+ dnl Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
+ dnl does not understand '\r'.
+ case `echo r | tr -d '\r'` in
+ '') gl_tr_cr='\015' ;;
+ *) gl_tr_cr='\r' ;;
+ esac
+])
+
+
+dnl The following macros are convenience invocations of gl_BUILD_TO_HOST
+dnl for some of the variables that are defined by Autoconf.
+dnl To do so for _all_ the possible variables, use the module 'configmake'.
+
+dnl Defines bindir_c and bindir_c_make.
+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_BINDIR],
+[
+ dnl Find the final value of bindir.
+ gl_saved_prefix="${prefix}"
+ gl_saved_exec_prefix="${exec_prefix}"
+ gl_saved_bindir="${bindir}"
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ prefix="$ac_default_prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ exec_prefix='${prefix}'
+ fi
+ eval exec_prefix="$exec_prefix"
+ eval bindir="$bindir"
+ gl_BUILD_TO_HOST([bindir])
+ bindir="${gl_saved_bindir}"
+ exec_prefix="${gl_saved_exec_prefix}"
+ prefix="${gl_saved_prefix}"
+])
+
+dnl Defines datadir_c and datadir_c_make,
+dnl where datadir = $(datarootdir)
+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_DATADIR],
+[
+ dnl Find the final value of datadir.
+ gl_saved_prefix="${prefix}"
+ gl_saved_datarootdir="${datarootdir}"
+ gl_saved_datadir="${datadir}"
+ dnl Unfortunately, prefix gets only finally determined at the end of
+ dnl configure.
+ if test "X$prefix" = "XNONE"; then
+ prefix="$ac_default_prefix"
+ fi
+ eval datarootdir="$datarootdir"
+ eval datadir="$datadir"
+ gl_BUILD_TO_HOST([datadir])
+ datadir="${gl_saved_datadir}"
+ datarootdir="${gl_saved_datarootdir}"
+ prefix="${gl_saved_prefix}"
+])
+
+dnl Defines libdir_c and libdir_c_make.
+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_LIBDIR],
+[
+ dnl Find the final value of libdir.
+ gl_saved_prefix="${prefix}"
+ gl_saved_exec_prefix="${exec_prefix}"
+ gl_saved_libdir="${libdir}"
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ prefix="$ac_default_prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ exec_prefix='${prefix}'
+ fi
+ eval exec_prefix="$exec_prefix"
+ eval libdir="$libdir"
+ gl_BUILD_TO_HOST([libdir])
+ libdir="${gl_saved_libdir}"
+ exec_prefix="${gl_saved_exec_prefix}"
+ prefix="${gl_saved_prefix}"
+])
+
+dnl Defines libexecdir_c and libexecdir_c_make.
+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_LIBEXECDIR],
+[
+ dnl Find the final value of libexecdir.
+ gl_saved_prefix="${prefix}"
+ gl_saved_exec_prefix="${exec_prefix}"
+ gl_saved_libexecdir="${libexecdir}"
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ prefix="$ac_default_prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ exec_prefix='${prefix}'
+ fi
+ eval exec_prefix="$exec_prefix"
+ eval libexecdir="$libexecdir"
+ gl_BUILD_TO_HOST([libexecdir])
+ libexecdir="${gl_saved_libexecdir}"
+ exec_prefix="${gl_saved_exec_prefix}"
+ prefix="${gl_saved_prefix}"
+])
+
+dnl Defines localedir_c and localedir_c_make.
+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_LOCALEDIR],
+[
+ dnl Find the final value of localedir.
+ gl_saved_prefix="${prefix}"
+ gl_saved_datarootdir="${datarootdir}"
+ gl_saved_localedir="${localedir}"
+ dnl Unfortunately, prefix gets only finally determined at the end of
+ dnl configure.
+ if test "X$prefix" = "XNONE"; then
+ prefix="$ac_default_prefix"
+ fi
+ eval datarootdir="$datarootdir"
+ eval localedir="$localedir"
+ gl_BUILD_TO_HOST([localedir])
+ localedir="${gl_saved_localedir}"
+ datarootdir="${gl_saved_datarootdir}"
+ prefix="${gl_saved_prefix}"
+])
+
+dnl Defines pkgdatadir_c and pkgdatadir_c_make,
+dnl where pkgdatadir = $(datadir)/$(PACKAGE)
+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_PKGDATADIR],
+[
+ dnl Find the final value of pkgdatadir.
+ gl_saved_prefix="${prefix}"
+ gl_saved_datarootdir="${datarootdir}"
+ gl_saved_datadir="${datadir}"
+ gl_saved_pkgdatadir="${pkgdatadir}"
+ dnl Unfortunately, prefix gets only finally determined at the end of
+ dnl configure.
+ if test "X$prefix" = "XNONE"; then
+ prefix="$ac_default_prefix"
+ fi
+ eval datarootdir="$datarootdir"
+ eval datadir="$datadir"
+ eval pkgdatadir="$pkgdatadir"
+ gl_BUILD_TO_HOST([pkgdatadir])
+ pkgdatadir="${gl_saved_pkgdatadir}"
+ datadir="${gl_saved_datadir}"
+ datarootdir="${gl_saved_datarootdir}"
+ prefix="${gl_saved_prefix}"
+])
+
+dnl Defines pkglibdir_c and pkglibdir_c_make,
+dnl where pkglibdir = $(libdir)/$(PACKAGE)
+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_PKGLIBDIR],
+[
+ dnl Find the final value of pkglibdir.
+ gl_saved_prefix="${prefix}"
+ gl_saved_exec_prefix="${exec_prefix}"
+ gl_saved_libdir="${libdir}"
+ gl_saved_pkglibdir="${pkglibdir}"
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ prefix="$ac_default_prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ exec_prefix='${prefix}'
+ fi
+ eval exec_prefix="$exec_prefix"
+ eval libdir="$libdir"
+ eval pkglibdir="$pkglibdir"
+ gl_BUILD_TO_HOST([pkglibdir])
+ pkglibdir="${gl_saved_pkglibdir}"
+ libdir="${gl_saved_libdir}"
+ exec_prefix="${gl_saved_exec_prefix}"
+ prefix="${gl_saved_prefix}"
+])
+
+dnl Defines pkglibexecdir_c and pkglibexecdir_c_make,
+dnl where pkglibexecdir = $(libexecdir)/$(PACKAGE)
+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_PKGLIBEXECDIR],
+[
+ dnl Find the final value of pkglibexecdir.
+ gl_saved_prefix="${prefix}"
+ gl_saved_exec_prefix="${exec_prefix}"
+ gl_saved_libexecdir="${libexecdir}"
+ gl_saved_pkglibexecdir="${pkglibexecdir}"
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ prefix="$ac_default_prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ exec_prefix='${prefix}'
+ fi
+ eval exec_prefix="$exec_prefix"
+ eval libexecdir="$libexecdir"
+ eval pkglibexecdir="$pkglibexecdir"
+ gl_BUILD_TO_HOST([pkglibexecdir])
+ pkglibexecdir="${gl_saved_pkglibexecdir}"
+ libexecdir="${gl_saved_libexecdir}"
+ exec_prefix="${gl_saved_exec_prefix}"
+ prefix="${gl_saved_prefix}"
+])
diff --git a/gnulib-m4/builtin-expect.m4 b/gnulib-m4/builtin-expect.m4
index 8faffc50..76d32867 100644
--- a/gnulib-m4/builtin-expect.m4
+++ b/gnulib-m4/builtin-expect.m4
@@ -1,9 +1,12 @@
-dnl Check for __builtin_expect.
-
-dnl Copyright 2016-2024 Free Software Foundation, Inc.
+# builtin-expect.m4
+# serial 3
+dnl Copyright 2016-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 This file is offered as-is, without any warranty.
+
+dnl Provide a GCC-compatible __builtin_expect macro in <config.h>.
dnl Written by Paul Eggert.
@@ -45,5 +48,4 @@ AC_DEFUN([gl___BUILTIN_EXPECT],
#elif HAVE___BUILTIN_EXPECT == 2
# include <builtins.h>
#endif
- ])
-])
+])])
diff --git a/gnulib-m4/c-bool.m4 b/gnulib-m4/c-bool.m4
index 44fba3c0..8fa8bfc8 100644
--- a/gnulib-m4/c-bool.m4
+++ b/gnulib-m4/c-bool.m4
@@ -1,9 +1,12 @@
-# Check for bool that conforms to C2023.
-
-dnl Copyright 2022-2024 Free Software Foundation, Inc.
+# c-bool.m4
+# serial 3
+dnl Copyright 2022-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 This file is offered as-is, without any warranty.
+
+# Check for bool that conforms to C2023.
AC_DEFUN([gl_C_BOOL],
[
@@ -27,12 +30,23 @@ AC_DEFUN([gl_C_BOOL],
dnl The "zz" puts this toward config.h's end, to avoid potential
dnl collisions with other definitions.
dnl If 'bool', 'true' and 'false' do not work, arrange for them to work.
- dnl In C, this means including <stdbool.h> if it is not already included.
+ dnl Hardcode the known configuration results for GCC and clang, so that
+ dnl a configuration made with the C compiler works also with the C++ compiler
+ dnl and vice versa.
+ dnl The seemingly redundant parentheses are necessary for MSVC 14.
+ dnl "Arrange for them to work", in C, means including <stdbool.h> if it is
+ dnl not already included.
dnl However, if the preprocessor mistakenly treats 'true' as 0,
dnl define it to a bool expression equal to 1; this is needed in
dnl Sun C++ 5.11 (Oracle Solaris Studio 12.2, 2010) and older.
AH_VERBATIM([zzbool],
-[#ifndef HAVE_C_BOOL
+[#if !(defined __cplusplus \
+ ? 1 \
+ : (defined __clang__ \
+ ? __STDC_VERSION__ >= 202000L && __clang_major__ >= 15 \
+ : (defined __GNUC__ \
+ ? __STDC_VERSION__ >= 202000L && __GNUC__ >= 13 \
+ : defined HAVE_C_BOOL)))
# if !defined __cplusplus && !defined __bool_true_false_are_defined
# if HAVE_STDBOOL_H
# include <stdbool.h>
diff --git a/gnulib-m4/c32rtomb.m4 b/gnulib-m4/c32rtomb.m4
index 56faaa57..ce26a31e 100644
--- a/gnulib-m4/c32rtomb.m4
+++ b/gnulib-m4/c32rtomb.m4
@@ -1,8 +1,10 @@
-# c32rtomb.m4 serial 7
-dnl Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# c32rtomb.m4
+# serial 8
+dnl Copyright (C) 2020-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_C32RTOMB],
[
@@ -10,7 +12,61 @@ AC_DEFUN([gl_FUNC_C32RTOMB],
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__
@@ -40,29 +96,49 @@ AC_DEFUN([gl_FUNC_C32RTOMB],
else
gl_cv_func_c32rtomb=no
fi
- if test $gl_cv_func_c32rtomb = no; then
- HAVE_C32RTOMB=0
+])
+
+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
- 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],
+ AC_CACHE_CHECK([whether c32rtomb works as well as wcrtomb],
+ [gl_cv_func_c32rtomb_sanitycheck],
[
- dnl Initial guess, used when cross-compiling.
+ dnl Initial guess, used when cross-compiling or when no suitable locale
+ dnl is present.
changequote(,)dnl
case "$host_os" in
- # Guess no on AIX.
- aix*) gl_cv_func_c32rtomb_retval="guessing no" ;;
+ # 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_retval="guessing yes" ;;
+ *)
+ gl_cv_func_c32rtomb_sanitycheck="guessing yes"
+ ;;
esac
changequote([,])dnl
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
-#include <stddef.h>
+ 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
@@ -70,19 +146,42 @@ changequote([,])dnl
int main ()
{
int result = 0;
- if (c32rtomb (NULL, 0, NULL) != 1)
- result |= 1;
+ /* 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_retval=yes],
- [gl_cv_func_c32rtomb_retval=no],
- [:])
+ [gl_cv_func_c32rtomb_sanitycheck=yes],
+ [gl_cv_func_c32rtomb_sanitycheck=no],
+ [:])
+ fi
])
- 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 ;;
+ 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/gnulib-m4/calloc.m4 b/gnulib-m4/calloc.m4
index 49303d96..ac7d08d4 100644
--- a/gnulib-m4/calloc.m4
+++ b/gnulib-m4/calloc.m4
@@ -1,9 +1,10 @@
-# calloc.m4 serial 31
-
-# Copyright (C) 2004-2024 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.
+# calloc.m4
+# serial 36
+dnl Copyright (C) 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,
+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.
@@ -12,42 +13,35 @@
# 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])
-# -------------------------------------
+# gl_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_DEFUN([gl_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_cv_func_calloc_0_nonnull],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdlib.h>
+ /* Use pcalloc to test; "volatile" prevents the compiler
+ from optimizing the calloc call away. */
+ void *(*volatile pcalloc) (size_t, size_t) = calloc;]],
+ [[void *p = pcalloc (0, 0);
+ int result = !p;
+ free (p);
+ return result;]])],
+ [gl_cv_func_calloc_0_nonnull=yes],
+ [gl_cv_func_calloc_0_nonnull=no],
+ [AS_CASE([$host_os],
+ [# Guess yes on platforms where we know the result.
+ *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
+ | gnu* | *-musl* | midipix* | midnightbsd* \
+ | hpux* | solaris* | cygwin* | mingw* | windows* | msys*],
+ [gl_cv_func_calloc_0_nonnull="guessing yes"],
+ [# If we don't know, obey --enable-cross-guesses.
+ gl_cv_func_calloc_0_nonnull="$gl_cross_guess_normal"])])])
+ AS_CASE([$gl_cv_func_calloc_0_nonnull], [*yes], [$1], [$2])
])
@@ -58,9 +52,14 @@ 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])
+ gl_FUNC_CALLOC_IF([], [REPLACE_CALLOC_FOR_CALLOC_GNU=1])
fi
])# gl_FUNC_CALLOC_GNU
@@ -73,9 +72,7 @@ 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
+ REPLACE_CALLOC_FOR_CALLOC_POSIX=$REPLACE_MALLOC_FOR_MALLOC_POSIX
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.
diff --git a/gnulib-m4/close.m4 b/gnulib-m4/close.m4
index 6b6d3821..314e321e 100644
--- a/gnulib-m4/close.m4
+++ b/gnulib-m4/close.m4
@@ -1,8 +1,10 @@
-# close.m4 serial 10
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# close.m4
+# serial 10
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_FUNC_CLOSE],
[
diff --git a/gnulib-m4/codeset.m4 b/gnulib-m4/codeset.m4
index 94dccce7..6bed9dee 100644
--- a/gnulib-m4/codeset.m4
+++ b/gnulib-m4/codeset.m4
@@ -1,9 +1,11 @@
-# codeset.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2024 Free Software
+# codeset.m4
+# serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2025 Free Software
dnl 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.
diff --git a/gnulib-m4/ctype_h.m4 b/gnulib-m4/ctype_h.m4
index ef0ee7f2..fec7c458 100644
--- a/gnulib-m4/ctype_h.m4
+++ b/gnulib-m4/ctype_h.m4
@@ -1,8 +1,10 @@
-# ctype_h.m4 serial 9
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# ctype_h.m4
+# serial 23
+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,
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_CTYPE_H],
[
@@ -14,7 +16,9 @@ AC_DEFUN_ONCE([gl_CTYPE_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 <ctype.h>
- ]], [isblank])
+ ]], [isalnum_l isalpha_l isblank isblank_l iscntrl_l isdigit_l isgraph_l
+ islower_l isprint_l ispunct_l isspace_l isupper_l isxdigit_l
+ tolower_l toupper_l])
])
# gl_CTYPE_MODULE_INDICATOR([modulename])
@@ -34,7 +38,21 @@ AC_DEFUN([gl_CTYPE_MODULE_INDICATOR],
AC_DEFUN([gl_CTYPE_H_REQUIRE_DEFAULTS],
[
m4_defun(GL_MODULE_INDICATOR_PREFIX[_CTYPE_H_MODULE_INDICATOR_DEFAULTS], [
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISALNUM_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISALPHA_L])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISBLANK])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISBLANK_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISCNTRL_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISDIGIT_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISGRAPH_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISLOWER_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISPRINT_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISPUNCT_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISSPACE_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISUPPER_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISXDIGIT_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOLOWER_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOUPPER_L])
])
m4_require(GL_MODULE_INDICATOR_PREFIX[_CTYPE_H_MODULE_INDICATOR_DEFAULTS])
AC_REQUIRE([gl_CTYPE_H_DEFAULTS])
@@ -43,5 +61,19 @@ AC_DEFUN([gl_CTYPE_H_REQUIRE_DEFAULTS],
AC_DEFUN([gl_CTYPE_H_DEFAULTS],
[
dnl Assume proper GNU behavior unless another module says otherwise.
- HAVE_ISBLANK=1; AC_SUBST([HAVE_ISBLANK])
+ HAVE_ISALNUM_L=1; AC_SUBST([HAVE_ISALNUM_L])
+ HAVE_ISALPHA_L=1; AC_SUBST([HAVE_ISALPHA_L])
+ HAVE_ISBLANK=1; AC_SUBST([HAVE_ISBLANK])
+ HAVE_ISBLANK_L=1; AC_SUBST([HAVE_ISBLANK_L])
+ HAVE_ISCNTRL_L=1; AC_SUBST([HAVE_ISCNTRL_L])
+ HAVE_ISDIGIT_L=1; AC_SUBST([HAVE_ISDIGIT_L])
+ HAVE_ISGRAPH_L=1; AC_SUBST([HAVE_ISGRAPH_L])
+ HAVE_ISLOWER_L=1; AC_SUBST([HAVE_ISLOWER_L])
+ HAVE_ISPRINT_L=1; AC_SUBST([HAVE_ISPRINT_L])
+ HAVE_ISPUNCT_L=1; AC_SUBST([HAVE_ISPUNCT_L])
+ HAVE_ISSPACE_L=1; AC_SUBST([HAVE_ISSPACE_L])
+ HAVE_ISUPPER_L=1; AC_SUBST([HAVE_ISUPPER_L])
+ HAVE_ISXDIGIT_L=1; AC_SUBST([HAVE_ISXDIGIT_L])
+ HAVE_TOLOWER_L=1; AC_SUBST([HAVE_TOLOWER_L])
+ HAVE_TOUPPER_L=1; AC_SUBST([HAVE_TOUPPER_L])
])
diff --git a/gnulib-m4/double-slash-root.m4 b/gnulib-m4/double-slash-root.m4
index 00f23a70..5c40b73c 100644
--- a/gnulib-m4/double-slash-root.m4
+++ b/gnulib-m4/double-slash-root.m4
@@ -1,8 +1,10 @@
-# double-slash-root.m4 serial 4 -*- Autoconf -*-
-dnl Copyright (C) 2006, 2008-2024 Free Software Foundation, Inc.
+# double-slash-root.m4
+# serial 4 -*- Autoconf -*-
+dnl Copyright (C) 2006, 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_DOUBLE_SLASH_ROOT],
[
diff --git a/gnulib-m4/dup2.m4 b/gnulib-m4/dup2.m4
index f6759b64..5da3a0b9 100644
--- a/gnulib-m4/dup2.m4
+++ b/gnulib-m4/dup2.m4
@@ -1,8 +1,10 @@
-#serial 28
-dnl Copyright (C) 2002, 2005, 2007, 2009-2024 Free Software Foundation, Inc.
+# dup2.m4
+# serial 28
+dnl Copyright (C) 2002, 2005, 2007, 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.
+dnl This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_DUP2],
[
diff --git a/gnulib-m4/eealloc.m4 b/gnulib-m4/eealloc.m4
deleted file mode 100644
index d8862a1e..00000000
--- a/gnulib-m4/eealloc.m4
+++ /dev/null
@@ -1,31 +0,0 @@
-# eealloc.m4 serial 3
-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.
-
-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.])
-])
diff --git a/gnulib-m4/environ.m4 b/gnulib-m4/environ.m4
index 5b9e06b0..e0690e54 100644
--- a/gnulib-m4/environ.m4
+++ b/gnulib-m4/environ.m4
@@ -1,8 +1,10 @@
-# environ.m4 serial 8
-dnl Copyright (C) 2001-2004, 2006-2024 Free Software Foundation, Inc.
+# environ.m4
+# serial 8
+dnl Copyright (C) 2001-2004, 2006-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_ENVIRON],
[
diff --git a/gnulib-m4/errno_h.m4 b/gnulib-m4/errno_h.m4
index 8900d6c7..623cb7b2 100644
--- a/gnulib-m4/errno_h.m4
+++ b/gnulib-m4/errno_h.m4
@@ -1,14 +1,21 @@
-# errno_h.m4 serial 14
-dnl Copyright (C) 2004, 2006, 2008-2024 Free Software Foundation, Inc.
+# errno_h.m4
+# serial 19
+dnl Copyright (C) 2004, 2006, 2008-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 This file is offered as-is, without any warranty.
AC_PREREQ([2.61])
AC_DEFUN_ONCE([gl_HEADER_ERRNO_H],
[
AC_REQUIRE([AC_PROG_CC])
+
+ dnl Through the dependency on module extensions-aix, _LINUX_SOURCE_COMPAT
+ dnl gets defined already before this macro gets invoked. This persuades
+ dnl AIX 7.3 errno.h to assign ENOTEMPTY a value different than EEXIST.
+
AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [
AC_EGREP_CPP([booboo],[
#include <errno.h>
@@ -63,6 +70,9 @@ booboo
#if !defined EILSEQ
booboo
#endif
+#if !defined ESOCKTNOSUPPORT
+booboo
+#endif
],
[gl_cv_header_errno_h_complete=no],
[gl_cv_header_errno_h_complete=yes])
@@ -73,59 +83,4 @@ booboo
gl_NEXT_HEADERS([errno.h])
GL_GENERATE_ERRNO_H=true
fi
- gl_REPLACE_ERRNO_VALUE([EMULTIHOP])
- gl_REPLACE_ERRNO_VALUE([ENOLINK])
- gl_REPLACE_ERRNO_VALUE([EOVERFLOW])
-])
-
-# Assuming $1 = EOVERFLOW.
-# The EOVERFLOW errno value ought to be defined in <errno.h>, according to
-# POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and
-# some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined.
-# Check for the value of EOVERFLOW.
-# Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE.
-AC_DEFUN([gl_REPLACE_ERRNO_VALUE],
-[
- if $GL_GENERATE_ERRNO_H; then
- AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [
- AC_EGREP_CPP([yes],[
-#include <errno.h>
-#ifdef ]$1[
-yes
-#endif
- ],
- [gl_cv_header_errno_h_]$1[=yes],
- [gl_cv_header_errno_h_]$1[=no])
- if test $gl_cv_header_errno_h_]$1[ = no; then
- AC_EGREP_CPP([yes],[
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-#ifdef ]$1[
-yes
-#endif
- ], [gl_cv_header_errno_h_]$1[=hidden])
- if test $gl_cv_header_errno_h_]$1[ = hidden; then
- dnl The macro exists but is hidden.
- dnl Define it to the same value.
- AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug. */
-#include <stdio.h>
-#include <stdlib.h>
-])
- fi
- fi
- ])
- case $gl_cv_header_errno_h_]$1[ in
- yes | no)
- ]$1[_HIDDEN=0; ]$1[_VALUE=
- ;;
- *)
- ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1["
- ;;
- esac
- AC_SUBST($1[_HIDDEN])
- AC_SUBST($1[_VALUE])
- fi
])
diff --git a/gnulib-m4/error.m4 b/gnulib-m4/error.m4
index 5688afcf..1572250a 100644
--- a/gnulib-m4/error.m4
+++ b/gnulib-m4/error.m4
@@ -1,10 +1,11 @@
-#serial 16
-
-# Copyright (C) 1996-1998, 2001-2004, 2009-2024 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.
+# error.m4
+# serial 16
+dnl Copyright (C) 1996-1998, 2001-2004, 2009-2025 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_ERROR],
[
diff --git a/gnulib-m4/error_h.m4 b/gnulib-m4/error_h.m4
index 006770c4..4ef5cbff 100644
--- a/gnulib-m4/error_h.m4
+++ b/gnulib-m4/error_h.m4
@@ -1,8 +1,10 @@
-# error_h.m4 serial 4
-dnl Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# error_h.m4
+# serial 5
+dnl Copyright (C) 1996-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
dnl Provide a working <error.h>.
@@ -110,12 +112,15 @@ AC_DEFUN_ONCE([gl_ERROR_H],
esac
fi
- 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
+ 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])
diff --git a/gnulib-m4/exponentd.m4 b/gnulib-m4/exponentd.m4
index 0a4b1b6c..08e93397 100644
--- a/gnulib-m4/exponentd.m4
+++ b/gnulib-m4/exponentd.m4
@@ -1,8 +1,10 @@
-# exponentd.m4 serial 4
-dnl Copyright (C) 2007-2008, 2010-2024 Free Software Foundation, Inc.
+# exponentd.m4
+# serial 5
+dnl Copyright (C) 2007-2008, 2010-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_DOUBLE_EXPONENT_LOCATION],
[
AC_CACHE_CHECK([where to find the exponent in a 'double'],
@@ -83,7 +85,7 @@ int main ()
dnl The newer VFP instructions assume little-endian order
dnl consistently.
AC_EGREP_CPP([mixed_endianness], [
-#if defined arm || defined __arm || defined __arm__
+#if defined __arm__
mixed_endianness
#endif
],
diff --git a/gnulib-m4/exponentf.m4 b/gnulib-m4/exponentf.m4
index a46eee29..be2deb5c 100644
--- a/gnulib-m4/exponentf.m4
+++ b/gnulib-m4/exponentf.m4
@@ -1,8 +1,10 @@
-# exponentf.m4 serial 3
-dnl Copyright (C) 2007-2008, 2010-2024 Free Software Foundation, Inc.
+# exponentf.m4
+# serial 3
+dnl Copyright (C) 2007-2008, 2010-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_FLOAT_EXPONENT_LOCATION],
[
AC_CACHE_CHECK([where to find the exponent in a 'float'],
diff --git a/gnulib-m4/exponentl.m4 b/gnulib-m4/exponentl.m4
index 06c8ae3f..f4d0923e 100644
--- a/gnulib-m4/exponentl.m4
+++ b/gnulib-m4/exponentl.m4
@@ -1,8 +1,10 @@
-# exponentl.m4 serial 7
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# exponentl.m4
+# serial 8
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_LONG_DOUBLE_EXPONENT_LOCATION],
[
AC_REQUIRE([gl_BIGENDIAN])
@@ -79,24 +81,111 @@ int main ()
[gl_cv_cc_long_double_expbit0="unknown"],
[
dnl When cross-compiling, in general we don't know. It depends on the
- dnl ABI and compiler version. There are too many cases.
- gl_cv_cc_long_double_expbit0="unknown"
- case "$host_os" in
- mingw* | windows*)
- # On native Windows (little-endian), we know the result
- # in two cases: mingw, MSVC.
- AC_EGREP_CPP([Known], [
-#ifdef __MINGW32__
- Known
-#endif
- ], [gl_cv_cc_long_double_expbit0="word 2 bit 0"])
- AC_EGREP_CPP([Known], [
-#ifdef _MSC_VER
- Known
-#endif
- ], [gl_cv_cc_long_double_expbit0="word 1 bit 20"])
- ;;
- esac
+ dnl ABI and compiler version. But we know the results for specific
+ dnl CPUs.
+ AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
+ if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then
+ gl_DOUBLE_EXPONENT_LOCATION
+ gl_cv_cc_long_double_expbit0="$gl_cv_cc_double_expbit0"
+ if test "$gl_cv_cc_double_expbit0" = unknown; then
+ case "$host_cpu" in
+ arm*)
+ # See the comments in exponentd.m4.
+ ;;
+ aarch64 | sh4)
+ # little-endian IEEE 754 double-precision
+ gl_cv_cc_long_double_expbit0='word 1 bit 20'
+ ;;
+ hppa*)
+ # big-endian IEEE 754 double-precision
+ gl_cv_cc_long_double_expbit0='word 0 bit 20'
+ ;;
+ mips*)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[
+ #if defined _MIPSEB /* equivalent: __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ */
+ int big;
+ #else
+ #error little
+ #endif
+ ]], [[]])
+ ],
+ [# big-endian IEEE 754 double-precision
+ gl_cv_cc_long_double_expbit0='word 0 bit 20'
+ ],
+ [# little-endian IEEE 754 double-precision
+ gl_cv_cc_long_double_expbit0='word 1 bit 20'
+ ])
+ ;;
+ esac
+ fi
+ else
+ case "$host_cpu" in
+changequote(,)dnl
+ i[34567]86 | x86_64 | ia64*)
+changequote([,])dnl
+ # 80-bits "extended precision"
+ gl_cv_cc_long_double_expbit0='word 2 bit 0'
+ ;;
+ m68k*)
+ # big-endian, 80-bits padded to 96 bits, non-IEEE exponent
+ gl_cv_cc_long_double_expbit0='word 0 bit 16'
+ ;;
+ alpha* | aarch64 | loongarch64 | riscv32 | riscv64 | sh4)
+ # little-endian IEEE 754 quadruple-precision
+ gl_cv_cc_long_double_expbit0='word 3 bit 16'
+ ;;
+ s390* | sparc | sparc64)
+ # big-endian IEEE 754 quadruple-precision
+ gl_cv_cc_long_double_expbit0='word 0 bit 16'
+ ;;
+ arm*)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[
+ #if defined _ARMEL
+ int little;
+ #else
+ #error big
+ #endif
+ ]], [[]])
+ ],
+ [# little-endian IEEE 754 quadruple-precision
+ gl_cv_cc_long_double_expbit0='word 3 bit 16'
+ ],
+ [# big-endian IEEE 754 quadruple-precision
+ gl_cv_cc_long_double_expbit0='word 0 bit 16'
+ ])
+ ;;
+ mips*)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[
+ #if defined _MIPSEB /* equivalent: __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ */
+ int big;
+ #else
+ #error little
+ #endif
+ ]], [[]])
+ ],
+ [# big-endian IEEE 754 quadruple-precision
+ gl_cv_cc_long_double_expbit0='word 0 bit 16'
+ ],
+ [# little-endian IEEE 754 quadruple-precision
+ gl_cv_cc_long_double_expbit0='word 3 bit 16'
+ ])
+ ;;
+ powerpc64le)
+ # little-endian double-double
+ gl_cv_cc_long_double_expbit0='word 1 bit 20'
+ ;;
+ powerpc* | rs6000)
+ # big-endian double-double
+ gl_cv_cc_long_double_expbit0='word 0 bit 20'
+ ;;
+ *)
+ gl_cv_cc_long_double_expbit0="unknown"
+ ;;
+ esac
+ fi
])
rm -f conftest.out
])
diff --git a/gnulib-m4/extensions-aix.m4 b/gnulib-m4/extensions-aix.m4
new file mode 100644
index 00000000..08b703b4
--- /dev/null
+++ b/gnulib-m4/extensions-aix.m4
@@ -0,0 +1,26 @@
+# extensions-aix.m4
+# serial 1
+dnl Copyright (C) 2024-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 This file is offered as-is, without any warranty.
+
+# On AIX, most extensions are already enabled through the _ALL_SOURCE macro,
+# defined by gl_USE_SYSTEM_EXTENSIONS. gl_USE_AIX_EXTENSIONS additionally
+# activates more GNU and Linux-like behaviours, affecting
+# - the time_t type,
+# - errno values in <errno.h>: ENOTEMPTY
+# - functions in <stdlib.h>: malloc calloc realloc valloc
+# <https://www.ibm.com/docs/en/aix/7.3?topic=m-malloc-free-realloc-calloc-mallopt-mallinfo-mallinfo-heap-alloca-valloc-posix-memalign-subroutine>
+# - functions in <string.h>: strerror_r (returns 'char *', like glibc)
+# - functions in <dirent.h>: scandir, alphasort, readdir_r
+# - functions in <netdb.h>: gethostbyname_r gethostbyaddr_r
+# - declarations in <unistd.h>: sbrk
+# and a couple of secondary <sys/*> header files.
+
+AC_DEFUN_ONCE([gl_USE_AIX_EXTENSIONS],
+[
+ AC_DEFINE([_LINUX_SOURCE_COMPAT], [1],
+ [Define so that AIX headers are more compatible with GNU/Linux.])
+])
diff --git a/gnulib-m4/extensions.m4 b/gnulib-m4/extensions.m4
index 6fc2e300..76516bce 100644
--- a/gnulib-m4/extensions.m4
+++ b/gnulib-m4/extensions.m4
@@ -1,10 +1,12 @@
-# serial 23 -*- Autoconf -*-
-# Enable extensions on systems that normally disable them.
+# extensions.m4
+# serial 25 -*- Autoconf -*-
+dnl Copyright (C) 2003, 2006-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 This file is offered as-is, without any warranty.
-# Copyright (C) 2003, 2006-2024 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.
+# Enable extensions on systems that normally disable them.
dnl Define to empty for the benefit of Autoconf 2.69 and earlier, so that
dnl AC_USE_SYSTEM_EXTENSIONS (below) can be used unchanged from Autoconf 2.70+.
@@ -229,4 +231,15 @@ AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS],
[Define to enable the declarations of ISO C 11 types and functions.])
;;
esac
+
+ dnl On OpenSolaris derivatives, the include files contains a couple of
+ dnl declarations that are only activated with an explicit
+ dnl -D__STDC_WANT_LIB_EXT1__.
+ AH_VERBATIM([USE_ISO_C_23_ANNEX_K_EXTENSIONS],
+[/* Define to enable the declarations of ISO C 23 Annex K types and functions. */
+#if !(defined __STDC_WANT_LIB_EXT1__ && __STDC_WANT_LIB_EXT1__)
+#undef/**/__STDC_WANT_LIB_EXT1__
+#define __STDC_WANT_LIB_EXT1__ 1
+#endif
+])
])
diff --git a/gnulib-m4/extern-inline.m4 b/gnulib-m4/extern-inline.m4
index 680250ec..820fbda5 100644
--- a/gnulib-m4/extern-inline.m4
+++ b/gnulib-m4/extern-inline.m4
@@ -1,9 +1,12 @@
-dnl 'extern inline' a la ISO C99.
-
-dnl Copyright 2012-2024 Free Software Foundation, Inc.
+# extern-inline.m4
+# serial 2
+dnl Copyright 2012-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 This file is offered as-is, without any warranty.
+
+dnl 'extern inline' a la ISO C99.
AC_DEFUN([gl_EXTERN_INLINE],
[
@@ -40,9 +43,11 @@ AC_DEFUN([gl_EXTERN_INLINE],
functions or macros in standard C headers like <ctype.h>. For example,
if isdigit is mistakenly implemented via a static inline function,
a program containing an extern inline function that calls isdigit
- may not work since the C standard prohibits extern inline functions
- from calling static functions (ISO C 99 section 6.7.4.(3).
- This bug is known to occur on:
+ may not work since C99 through C23 prohibit extern inline functions
+ from calling static functions (ISO C 23 section 6.7.5.(2)).
+ Although a future C standard will likely relax this restriction
+ <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3622.txt>,
+ respect it for now. This bug is known to occur on:
OS X 10.8 and earlier; see:
https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
@@ -109,8 +114,8 @@ AC_DEFUN([gl_EXTERN_INLINE],
suppress bogus "no previous prototype for 'FOO'"
and "no previous declaration for 'FOO'" diagnostics,
when FOO is an inline function in the header; see
- <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
- <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */
+ <https://gcc.gnu.org/PR54113> and
+ <https://gcc.gnu.org/PR63877>. */
#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
# define _GL_INLINE_HEADER_CONST_PRAGMA
diff --git a/gnulib-m4/fcntl-o.m4 b/gnulib-m4/fcntl-o.m4
index 49ab34d8..8020c481 100644
--- a/gnulib-m4/fcntl-o.m4
+++ b/gnulib-m4/fcntl-o.m4
@@ -1,14 +1,17 @@
-# fcntl-o.m4 serial 8
-dnl Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc.
+# fcntl-o.m4
+# serial 12
+dnl Copyright (C) 2006, 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.
+dnl This file is offered as-is, without any warranty.
dnl Written by Paul Eggert.
AC_PREREQ([2.60])
-# Test whether the flags O_NOATIME and O_NOFOLLOW actually work.
+# Test whether the flags O_DIRECTORY, O_NOATIME and O_NOFOLLOW actually work.
+# Define HAVE_WORKING_O_DIRECTORY to 1 if O_DIRECTORY works, or to 0 otherwise.
# Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise.
# Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise.
AC_DEFUN([gl_FCNTL_O_FLAGS],
@@ -29,16 +32,23 @@ AC_DEFUN([gl_FCNTL_O_FLAGS],
#else /* on Windows with MSVC */
# include <io.h>
# include <stdlib.h>
- # defined sleep(n) _sleep ((n) * 1000)
+ # define sleep(n) _sleep ((n) * 1000)
#endif
+ #include <errno.h>
#include <fcntl.h>
]GL_MDA_DEFINES[
+ #ifndef O_DIRECTORY
+ #define O_DIRECTORY 0
+ #endif
#ifndef O_NOATIME
#define O_NOATIME 0
#endif
#ifndef O_NOFOLLOW
#define O_NOFOLLOW 0
#endif
+ #ifndef O_SEARCH
+ #define O_SEARCH O_RDONLY
+ #endif
static int const constants[] =
{
O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND,
@@ -51,31 +61,38 @@ AC_DEFUN([gl_FCNTL_O_FLAGS],
{
static char const sym[] = "conftest.sym";
if (symlink ("/dev/null", sym) != 0)
- result |= 2;
+ result |= 1;
else
{
int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0);
if (fd >= 0)
{
close (fd);
- result |= 4;
+ result |= 3;
}
}
if (unlink (sym) != 0 || symlink (".", sym) != 0)
- result |= 2;
+ result |= 1;
else
{
int fd = open (sym, O_RDONLY | O_NOFOLLOW);
if (fd >= 0)
{
close (fd);
- result |= 4;
+ result |= 3;
}
}
unlink (sym);
}
#endif
{
+ int fd = open ("confdefs.h", O_SEARCH | O_DIRECTORY);
+ if (!(fd < 0 && errno == ENOTDIR))
+ result |= 4;
+ if (0 <= fd)
+ close (fd);
+ }
+ {
static char const file[] = "confdefs.h";
int fd = open (file, O_RDONLY | O_NOATIME);
if (fd < 0)
@@ -110,31 +127,46 @@ AC_DEFUN([gl_FCNTL_O_FLAGS],
}
return result;]])],
[gl_cv_header_working_fcntl_h=yes],
- [case $? in #(
- 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
- 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
- 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
- *) gl_cv_header_working_fcntl_h='no';;
- esac],
- [case "$host_os" in
- # Guess 'no' on native Windows.
- mingw* | windows*) gl_cv_header_working_fcntl_h='no' ;;
- *) gl_cv_header_working_fcntl_h=cross-compiling ;;
- esac
- ])
- ])
+ [AS_CASE([$?],
+ dnl We cannot catch exit code 1 or 2 here, because
+ dnl - exit code 1 can occur through a compilation error on mingw (e.g.
+ dnl when O_NOCTTY, O_NONBLOCK, O_SYNC are not defined) or when
+ dnl result = 1, whereas
+ dnl - exit code 2 can occur through a compilation error on MSVC (e.g.
+ dnl again when O_NOCTTY, O_NONBLOCK, O_SYNC are not defined) or when
+ dnl result = 2.
+ [ 3], [gl_cv_header_working_fcntl_h="no (bad O_NOFOLLOW)"],
+ [ 4], [gl_cv_header_working_fcntl_h="no (bad O_DIRECTORY)"],
+ [ 7], [gl_cv_header_working_fcntl_h="no (bad O_NOFOLLOW, O_DIRECTORY)"],
+ [64], [gl_cv_header_working_fcntl_h="no (bad O_NOATIME)"],
+ [67], [gl_cv_header_working_fcntl_h="no (bad O_NOFOLLOW, O_NOATIME)"],
+ [68], [gl_cv_header_working_fcntl_h="no (bad O_DIRECTORY, O_NOATIME)"],
+ [71], [gl_cv_header_working_fcntl_h="no (bad O_NOFOLLOW, O_DIRECTORY, O_NOATIME)"],
+ [gl_cv_header_working_fcntl_h="no"])],
+ [AS_CASE([$host_os,$gl_cross_guess_normal],
+ # The O_DIRECTORY test is known to fail on Mac OS X 10.4.11 (2007)
+ # (see <https://bugs.gnu.org/78509#95>)
+ # and to succeed on Mac OS X 10.5.8 [darwin9.8.0] (2009).
+ # Guess it fails on Mac OS X 10.4.x and earlier.
+ [darwin[[0-8]].*yes],
+ [gl_cv_header_working_fcntl_h="guessing no (bad O_DIRECTORY)"],
+ # Known to be "no" on native MS-Windows.
+ [mingw* | windows*],
+ [gl_cv_header_working_fcntl_h=no],
+ [gl_cv_header_working_fcntl_h=$gl_cross_guess_normal])])])
+
+ AS_CASE([$gl_cv_header_working_fcntl_h],
+ [*O_DIRECTORY* | *no], [gl_val=0], [gl_val=1])
+ AC_DEFINE_UNQUOTED([HAVE_WORKING_O_DIRECTORY], [$gl_val],
+ [Define to 1 if O_DIRECTORY works, 0 otherwise.])
- case $gl_cv_header_working_fcntl_h in #(
- *O_NOATIME* | no | cross-compiling) ac_val=0;; #(
- *) ac_val=1;;
- esac
- AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val],
- [Define to 1 if O_NOATIME works.])
+ AS_CASE([$gl_cv_header_working_fcntl_h],
+ [*O_NOATIME* | *no], [gl_val=0], [gl_val=1])
+ AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$gl_val],
+ [Define to 1 if O_NOATIME works, 0 otherwise.])
- case $gl_cv_header_working_fcntl_h in #(
- *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #(
- *) ac_val=1;;
- esac
- AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val],
- [Define to 1 if O_NOFOLLOW works.])
+ AS_CASE([$gl_cv_header_working_fcntl_h],
+ [*O_NOFOLLOW* | *no], [gl_val=0], [gl_val=1])
+ AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$gl_val],
+ [Define to 1 if O_NOFOLLOW works, 0 otherwise.])
])
diff --git a/gnulib-m4/fcntl.m4 b/gnulib-m4/fcntl.m4
index 02b93f83..08ab936f 100644
--- a/gnulib-m4/fcntl.m4
+++ b/gnulib-m4/fcntl.m4
@@ -1,8 +1,10 @@
-# fcntl.m4 serial 11
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# fcntl.m4
+# serial 12
+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,
dnl with or without modifications, as long as this notice is preserved.
+dnl This file is offered as-is, without any warranty.
# For now, this module ensures that fcntl()
# - supports F_DUPFD correctly
@@ -82,7 +84,7 @@ AC_DEFUN([gl_FUNC_FCNTL],
esac
dnl Many systems lack F_DUPFD_CLOEXEC.
- dnl NetBSD 9.0 declares F_DUPFD_CLOEXEC but it works only like F_DUPFD.
+ dnl NetBSD 10.0 declares F_DUPFD_CLOEXEC but it works only like F_DUPFD.
AC_CACHE_CHECK([whether fcntl understands F_DUPFD_CLOEXEC],
[gl_cv_func_fcntl_f_dupfd_cloexec],
[AC_RUN_IFELSE(
diff --git a/gnulib-m4/fcntl_h.m4 b/gnulib-m4/fcntl_h.m4
index ba4eb449..1c9f9cce 100644
--- a/gnulib-m4/fcntl_h.m4
+++ b/gnulib-m4/fcntl_h.m4
@@ -1,9 +1,12 @@
+# fcntl_h.m4
# serial 20
-# Configure fcntl.h.
-dnl Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 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.
+dnl This file is offered as-is, without any warranty.
+
+# Configure fcntl.h.
dnl Written by Paul Eggert.
diff --git a/gnulib-m4/fdopen.m4 b/gnulib-m4/fdopen.m4
index 5b94047e..2ef37adf 100644
--- a/gnulib-m4/fdopen.m4
+++ b/gnulib-m4/fdopen.m4
@@ -1,8 +1,10 @@
-# fdopen.m4 serial 6
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# fdopen.m4
+# serial 6
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_FDOPEN],
[
diff --git a/gnulib-m4/flexmember.m4 b/gnulib-m4/flexmember.m4
index 9df6c03c..3e097a66 100644
--- a/gnulib-m4/flexmember.m4
+++ b/gnulib-m4/flexmember.m4
@@ -1,10 +1,12 @@
+# flexmember.m4
# serial 5
-# Check for flexible array member support.
+dnl Copyright (C) 2006, 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.
+dnl This file is offered as-is, without any warranty.
-# Copyright (C) 2006, 2009-2024 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.
+# Check for flexible array member support.
# Written by Paul Eggert.
diff --git a/gnulib-m4/float_h.m4 b/gnulib-m4/float_h.m4
index 60e81447..a3d37a81 100644
--- a/gnulib-m4/float_h.m4
+++ b/gnulib-m4/float_h.m4
@@ -1,8 +1,10 @@
-# float_h.m4 serial 14
-dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
+# float_h.m4
+# serial 16
+dnl Copyright (C) 2007, 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.
+dnl This file is offered as-is, without any warranty.
AC_DEFUN([gl_FLOAT_H],
[
@@ -11,7 +13,7 @@ AC_DEFUN([gl_FLOAT_H],
GL_GENERATE_FLOAT_H=false
REPLACE_FLOAT_LDBL=0
case "$host_os" in
- aix* | beos* | openbsd* | mirbsd* | irix*)
+ aix* | beos* | openbsd* | mirbsd*)
GL_GENERATE_FLOAT_H=true
;;
freebsd* | dragonfly*)
@@ -53,6 +55,31 @@ changequote([,])dnl
;;
esac
+ dnl Test for completeness w.r.t. ISO C 23.
+ REPLACE_FLOAT_SNAN=0
+ AC_CACHE_CHECK([whether float.h conforms to ISO C23],
+ [gl_cv_header_float_h_isoc23],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <float.h>
+ int x[] = { FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG };
+ float maxf = FLT_NORM_MAX;
+ double maxd = DBL_NORM_MAX;
+ long double maxl = LDBL_NORM_MAX;
+ ]],
+ [[float sf = FLT_SNAN;
+ double sd = DBL_SNAN;
+ long double sl = LDBL_SNAN;
+ return (sf != 0) + (sd != 0) + (sl != 0);
+ ]])],
+ [gl_cv_header_float_h_isoc23=yes],
+ [gl_cv_header_float_h_isoc23=no])
+ ])
+ if test $gl_cv_header_float_h_isoc23 != yes; then
+ GL_GENERATE_FLOAT_H=true
+ REPLACE_FLOAT_SNAN=1
+ fi
+
dnl Test against glibc-2.7 Linux/SPARC64 bug.
REPLACE_ITOLD=0
AC_CACHE_CHECK([whether conversion from 'int' to 'long double' works],
diff --git a/gnulib-m4/fpieee.m4 b/gnulib-m4/fpieee.m4
index 239cf4a7..ccece005 100644
--- a/gnulib-m4/fpieee.m4
+++ b/gnulib-m4/fpieee.m4
@@ -1,8 +1,10 @@
-# fpieee.m4 serial 2 -*- coding: utf-8 -*-
-dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
+# fpieee.m4
+# serial 2
+dnl Copyright (C) 2007, 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.
+dnl This file is offered as-is, without any warranty.
dnl IEEE 754 standardized three items:
dnl - The formats of single-float and double-float - nowadays commonly
diff --git a/gnulib-m4/free.m4 b/gnulib-m4/free.m4
index 4f6dc2e2..bf03a7d1 100644
--- a/gnulib-m4/free.m4
+++ b/gnulib-m4/free.m4
@@ -1,8 +1,10 @@
-# free.m4 serial 6
-# Copyright (C) 2003-2005, 2009-2024 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.
+# free.m4
+# serial 6
+dnl Copyright (C) 2003-2005, 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.
+dnl This file is offered as-is, without any warranty.
# Written by Paul Eggert and Bruno Haible.
@@ -12,10 +14,10 @@ AC_DEFUN([gl_FUNC_FREE],
dnl In the next release of POSIX, free must preserve errno.
dnl https://www.austingroupbugs.net/view.php?id=385
- dnl https://sourceware.org/bugzilla/show_bug.cgi?id=17924
+ dnl https://sourceware.org/PR17924
dnl So far, we know of three platforms that do this:
dnl * glibc >= 2.33, thanks to the fix for this bug:
- dnl <https://sourceware.org/bugzilla/show_bug.cgi?id=17924>
+ dnl <https://sourceware.org/PR17924>
dnl * OpenBSD >= 4.5, thanks to this commit:
dnl <https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdlib/malloc.c.diff?r1=1.100&r2=1.101&f=h>
dnl * Solaris, because its malloc() implementation is based on brk(),
diff --git a/gnulib-m4/frexp.m4 b/gnulib-m4/frexp.m4
index 54cbb6d5..003dd790 100644
--- a/gnulib-m4/frexp.m4
+++ b/gnulib-m4/frexp.m4
@@ -1,8 +1,10 @@
-# frexp.m4 serial 20
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# frexp.m4
+# serial 21
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_FREXP],
[
@@ -87,8 +89,8 @@ AC_DEFUN([gl_CHECK_FREXP_NO_LIBM],
])
dnl Test whether frexp() works also on denormalized numbers (this fails e.g. on
-dnl NetBSD 3.0), on infinite numbers (this fails e.g. on IRIX 6.5 and mingw),
-dnl and on negative zero (this fails e.g. on NetBSD 4.99 and mingw).
+dnl NetBSD 3.0), on infinite numbers (this fails e.g. on mingw), and on negative
+dnl zero (this fails e.g. on NetBSD 4.99 and mingw).
AC_DEFUN([gl_FUNC_FREXP_WORKS],
[
AC_REQUIRE([AC_PROG_CC])
@@ -109,7 +111,7 @@ AC_DEFUN([gl_FUNC_FREXP_WORKS],
ICC 10.0 has a bug when optimizing the expression -zero.
The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
to PowerPC on Mac OS X 10.5. */
-#if defined __hpux || defined __sgi || defined __ICC
+#if defined __hpux || defined __ICC
static double
compute_minus_zero (void)
{
@@ -165,7 +167,7 @@ int main()
[gl_cv_func_frexp_works=yes],
[gl_cv_func_frexp_works=no],
[case "$host_os" in
- netbsd* | irix*) gl_cv_func_frexp_works="guessing no" ;;
+ netbsd*) gl_cv_func_frexp_works="guessing no" ;;
# Guess yes with MSVC, no with mingw.
windows*-msvc*)
gl_cv_func_frexp_works="guessing yes"
diff --git a/gnulib-m4/frexpl.m4 b/gnulib-m4/frexpl.m4
index c434dea7..06895eb6 100644
--- a/gnulib-m4/frexpl.m4
+++ b/gnulib-m4/frexpl.m4
@@ -1,8 +1,10 @@
-# frexpl.m4 serial 24
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# frexpl.m4
+# serial 25
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_FREXPL],
[
@@ -115,7 +117,7 @@ AC_DEFUN([gl_CHECK_FREXPL_NO_LIBM],
dnl Test whether frexpl() works on finite numbers (this fails on
dnl Mac OS X 10.4/PowerPC, on AIX 5.1, and on BeOS), on denormalized numbers
dnl (this fails on Mac OS X 10.5/i386), and also on infinite numbers (this
-dnl fails e.g. on IRIX 6.5 and mingw).
+dnl fails e.g. on mingw).
AC_DEFUN([gl_FUNC_FREXPL_WORKS],
[
AC_REQUIRE([AC_PROG_CC])
@@ -139,12 +141,6 @@ AC_DEFUN([gl_FUNC_FREXPL_WORKS],
# undef LDBL_MIN_EXP
# define LDBL_MIN_EXP DBL_MIN_EXP
#endif
-#if defined __sgi && (LDBL_MANT_DIG >= 106)
-# if defined __GNUC__
-# undef LDBL_MIN_EXP
-# define LDBL_MIN_EXP DBL_MIN_EXP
-# endif
-#endif
extern
#ifdef __cplusplus
"C"
@@ -223,7 +219,7 @@ int main()
[
changequote(,)dnl
case "$host_os" in
- aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | windows* | pw*)
+ aix | aix[3-6]* | beos* | darwin* | mingw* | windows* | pw*)
gl_cv_func_frexpl_works="guessing no";;
*) gl_cv_func_frexpl_works="guessing yes";;
esac
diff --git a/gnulib-m4/fseterr.m4 b/gnulib-m4/fseterr.m4
index b43ddc5a..3a94c288 100644
--- a/gnulib-m4/fseterr.m4
+++ b/gnulib-m4/fseterr.m4
@@ -1,8 +1,10 @@
-# fseterr.m4 serial 2
-dnl Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# fseterr.m4
+# serial 2
+dnl Copyright (C) 2012-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_FSETERR],
[
diff --git a/gnulib-m4/fstat.m4 b/gnulib-m4/fstat.m4
index 5e73b4ed..e89bbc32 100644
--- a/gnulib-m4/fstat.m4
+++ b/gnulib-m4/fstat.m4
@@ -1,8 +1,10 @@
-# fstat.m4 serial 10
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# fstat.m4
+# serial 10
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_FSTAT],
[
diff --git a/gnulib-m4/ftruncate.m4 b/gnulib-m4/ftruncate.m4
index f547a95d..aa149c37 100644
--- a/gnulib-m4/ftruncate.m4
+++ b/gnulib-m4/ftruncate.m4
@@ -1,12 +1,14 @@
+# ftruncate.m4
# serial 24
+dnl Copyright (C) 2000-2001, 2003-2007, 2009-2025 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.
# See if we need to emulate a missing ftruncate function using _chsize.
-# Copyright (C) 2000-2001, 2003-2007, 2009-2024 Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
AC_DEFUN([gl_FUNC_FTRUNCATE],
[
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
diff --git a/gnulib-m4/getcwd.m4 b/gnulib-m4/getcwd.m4
index ed3d7b61..b5b35b11 100644
--- a/gnulib-m4/getcwd.m4
+++ b/gnulib-m4/getcwd.m4
@@ -1,12 +1,14 @@
-# getcwd.m4 - check for working getcwd that is compatible with glibc
-
-# Copyright (C) 2001, 2003-2007, 2009-2024 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.
+# getcwd.m4
+# serial 22
+dnl Copyright (C) 2001, 2003-2007, 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.
+dnl This file is offered as-is, without any warranty.
# Written by Paul Eggert.
-# serial 22
+
+# Check for working getcwd that is compatible with glibc
AC_DEFUN([gl_FUNC_GETCWD_NULL],
[
diff --git a/gnulib-m4/getdtablesize.m4 b/gnulib-m4/getdtablesize.m4
index 3b89456b..112c1c4d 100644
--- a/gnulib-m4/getdtablesize.m4
+++ b/gnulib-m4/getdtablesize.m4
@@ -1,8 +1,10 @@
-# getdtablesize.m4 serial 8
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# getdtablesize.m4
+# serial 8
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_GETDTABLESIZE],
[
diff --git a/gnulib-m4/getlocalename_l.m4 b/gnulib-m4/getlocalename_l.m4
new file mode 100644
index 00000000..629e510b
--- /dev/null
+++ b/gnulib-m4/getlocalename_l.m4
@@ -0,0 +1,119 @@
+# getlocalename_l.m4
+# serial 4
+dnl Copyright (C) 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 This file is offered as-is, without any warranty.
+
+AC_DEFUN([gl_FUNC_GETLOCALENAME_L_SIMPLE],
+[
+ AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
+
+ dnl Persuade glibc <locale.h> to declare getlocalename_l().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_FUNC_GETLOCALENAME_L_UNSAFE])
+])
+
+# Prerequisites of lib/getlocalename_l.c.
+AC_DEFUN([gl_PREREQ_GETLOCALENAME_L_SIMPLE],
+[
+ :
+])
+
+AC_DEFUN_ONCE([gl_FUNC_GETLOCALENAME_L_UNSAFE],
+[
+ AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_SETLOCALE_NULL])
+ AC_CHECK_FUNCS_ONCE([getlocalename_l])
+ if test $ac_cv_func_getlocalename_l = yes; then
+ dnl Check against the Cygwin 3.6.0 bug: It returns an invalid pointer when
+ dnl the second argument is LC_GLOBAL_LOCALE.
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CACHE_CHECK([whether getlocalename_l works],
+ [gl_cv_func_getlocalename_l_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.h>
+int main ()
+{
+ const char *ret = getlocalename_l (LC_COLLATE, LC_GLOBAL_LOCALE);
+ return strlen (ret) == 0;
+}]])],
+ [gl_cv_func_getlocalename_l_works=yes],
+ [gl_cv_func_getlocalename_l_works=no],
+ [case "$host_os" in
+ cygwin*) # Guess no on Cygwin.
+ gl_cv_func_getlocalename_l_works="guessing no" ;;
+ *) # Guess yes otherwise.
+ gl_cv_func_getlocalename_l_works="guessing yes" ;;
+ esac
+ ])
+ ])
+ case "$gl_cv_func_getlocalename_l_works" in
+ *yes) ;;
+ *) REPLACE_GETLOCALENAME_L=1 ;;
+ esac
+ else
+ HAVE_GETLOCALENAME_L=0
+ fi
+ if test $HAVE_GETLOCALENAME_L = 0 || test $REPLACE_GETLOCALENAME_L = 1; then
+ GETLOCALENAME_L_LIB="$SETLOCALE_NULL_LIB"
+ else
+ GETLOCALENAME_L_LIB=
+ fi
+ dnl GETLOCALENAME_L_LIB is expected to be '-pthread' or '-lpthread' on AIX
+ dnl with gcc or xlc, and empty otherwise.
+ AC_SUBST([GETLOCALENAME_L_LIB])
+])
+
+# Prerequisites of lib/getlocalename_l-unsafe.c.
+AC_DEFUN([gl_PREREQ_GETLOCALENAME_L_UNSAFE],
+[
+ AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
+ AC_REQUIRE([gl_LOCALE_T])
+ AC_REQUIRE([gt_INTL_THREAD_LOCALE_NAME])
+ AC_CHECK_HEADERS_ONCE([langinfo.h])
+ if test $HAVE_LOCALE_T = 1; then
+ gl_CHECK_FUNCS_ANDROID([newlocale], [[#include <locale.h>]])
+ gl_CHECK_FUNCS_ANDROID([duplocale], [[#include <locale.h>]])
+ gl_CHECK_FUNCS_ANDROID([freelocale], [[#include <locale.h>]])
+ gl_func_newlocale="$ac_cv_func_newlocale"
+ gl_func_duplocale="$ac_cv_func_duplocale"
+ gl_func_freelocale="$ac_cv_func_freelocale"
+ else
+ dnl In 2019, some versions of z/OS lack the locale_t type and have broken
+ dnl newlocale, duplocale, freelocale functions.
+ gl_cv_onwards_func_newlocale='future OS version'
+ gl_cv_onwards_func_duplocale='future OS version'
+ gl_cv_onwards_func_freelocale='future OS version'
+ gl_func_newlocale=no
+ gl_func_duplocale=no
+ gl_func_freelocale=no
+ fi
+ if test $gl_func_newlocale != yes; then
+ HAVE_NEWLOCALE=0
+ case "$gl_cv_onwards_func_newlocale" in
+ future*) REPLACE_NEWLOCALE=1 ;;
+ esac
+ fi
+ if test $gl_func_duplocale != yes; then
+ HAVE_DUPLOCALE=0
+ case "$gl_cv_onwards_func_duplocale" in
+ future*) REPLACE_DUPLOCALE=1 ;;
+ esac
+ fi
+ if test $gl_func_freelocale != yes; then
+ HAVE_FREELOCALE=0
+ case "$gl_cv_onwards_func_freelocale" in
+ future*) REPLACE_FREELOCALE=1 ;;
+ esac
+ fi
+ if test $gt_localename_enhances_locale_funcs = yes; then
+ REPLACE_NEWLOCALE=1
+ REPLACE_DUPLOCALE=1
+ REPLACE_FREELOCALE=1
+ fi
+])
diff --git a/gnulib-m4/getpagesize.m4 b/gnulib-m4/getpagesize.m4
deleted file mode 100644
index 35dc257b..00000000
--- a/gnulib-m4/getpagesize.m4
+++ /dev/null
@@ -1,49 +0,0 @@
-# getpagesize.m4 serial 11
-dnl Copyright (C) 2002, 2004-2005, 2007, 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.
-
-AC_DEFUN([gl_FUNC_GETPAGESIZE],
-[
- AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
- AC_REQUIRE([AC_CANONICAL_HOST])
- gl_CHECK_FUNC_GETPAGESIZE
- if test $gl_cv_func_getpagesize = no; then
- HAVE_GETPAGESIZE=0
- AC_CHECK_HEADERS([OS.h])
- if test $ac_cv_header_OS_h = yes; then
- HAVE_OS_H=1
- fi
- AC_CHECK_HEADERS([sys/param.h])
- if test $ac_cv_header_sys_param_h = yes; then
- HAVE_SYS_PARAM_H=1
- fi
- fi
- case "$host_os" in
- mingw* | windows*)
- REPLACE_GETPAGESIZE=1
- ;;
- esac
- dnl Also check whether it's declared.
- dnl mingw has getpagesize() in libgcc.a but doesn't declare it.
- AC_CHECK_DECL([getpagesize], , [HAVE_DECL_GETPAGESIZE=0])
-])
-
-dnl Tests whether the function getpagesize() exists.
-dnl Sets gl_cv_func_getpagesize.
-AC_DEFUN([gl_CHECK_FUNC_GETPAGESIZE],
-[
- dnl We can't use AC_CHECK_FUNC here, because getpagesize() is defined as a
- dnl static inline function when compiling for Android 4.4 or older.
- AC_CACHE_CHECK([for getpagesize], [gl_cv_func_getpagesize],
- [AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <unistd.h>]],
- [[return getpagesize();]])
- ],
- [gl_cv_func_getpagesize=yes],
- [gl_cv_func_getpagesize=no])
- ])
-])
diff --git a/gnulib-m4/getprogname.m4 b/gnulib-m4/getprogname.m4
index b8f9f230..90f34c74 100644
--- a/gnulib-m4/getprogname.m4
+++ b/gnulib-m4/getprogname.m4
@@ -1,11 +1,12 @@
-# getprogname.m4 - check for getprogname or replacements for it
-
-# Copyright (C) 2016-2024 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.
-
+# getprogname.m4
# serial 8
+dnl Copyright (C) 2016-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 This file is offered as-is, without any warranty.
+
+# Check for getprogname or replacements for it
AC_DEFUN([gl_FUNC_GETPROGNAME],
[
diff --git a/gnulib-m4/gettext_h.m4 b/gnulib-m4/gettext_h.m4
new file mode 100644
index 00000000..b4b1995c
--- /dev/null
+++ b/gnulib-m4/gettext_h.m4
@@ -0,0 +1,21 @@
+# gettext_h.m4
+# serial 1
+dnl Copyright (C) 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 This file is offered as-is, without any warranty.
+
+AC_DEFUN_ONCE([gl_GETTEXT_H],
+[
+ AC_SUBST([LIBINTL])
+ AC_SUBST([LTLIBINTL])
+ AH_BOTTOM([
+/* The text domainname for Gnulib messages. Ordinarily this is "gnulib",
+ but packages that do their own translations of Gnulib can use something
+ different by defining GNULIB_TEXT_DOMAIN in their config.h file. */
+#ifndef GNULIB_TEXT_DOMAIN
+# define GNULIB_TEXT_DOMAIN/**/"gnulib"
+#endif
+])
+])
diff --git a/gnulib-m4/gettimeofday.m4 b/gnulib-m4/gettimeofday.m4
index 35269914..5cd84cc9 100644
--- a/gnulib-m4/gettimeofday.m4
+++ b/gnulib-m4/gettimeofday.m4
@@ -1,9 +1,11 @@
+# gettimeofday.m4
# serial 30
-
-# Copyright (C) 2001-2003, 2005, 2007, 2009-2024 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.
+dnl Copyright (C) 2001-2003, 2005, 2007, 2009-2025 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.
dnl From Jim Meyering.
diff --git a/gnulib-m4/gnulib-cache.m4 b/gnulib-m4/gnulib-cache.m4
index 6fe9820d..74292d64 100644
--- a/gnulib-m4/gnulib-cache.m4
+++ b/gnulib-m4/gnulib-cache.m4
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -27,7 +27,8 @@
# Specification in the form of a command-line invocation:
-# gnulib-tool --import --local-dir=gnulib-local \
+# gnulib-tool --import \
+# --local-dir=gnulib-local \
# --lib=libunistring \
# --source-base=lib \
# --m4-base=gnulib-m4 \
@@ -40,8 +41,11 @@
# --no-conditional-dependencies \
# --libtool \
# --macro-prefix=gl \
+# --avoid=float-h-tests \
# gitlog-to-changelog \
+# package-version \
# relocatable-lib-lgpl \
+# test-xfail \
# unicase/base \
# unicase/empty-prefix-context \
# unicase/empty-suffix-context \
@@ -389,7 +393,7 @@
# unistr/u8-to-u16 \
# unistr/u8-to-u32 \
# unistr/u8-uctomb \
-# unitypes \
+# unitypes-h \
# uniwbrk/base \
# uniwbrk/u16-wordbreaks \
# uniwbrk/u32-wordbreaks \
@@ -409,7 +413,9 @@
gl_LOCAL_DIR([gnulib-local])
gl_MODULES([
gitlog-to-changelog
+ package-version
relocatable-lib-lgpl
+ test-xfail
unicase/base
unicase/empty-prefix-context
unicase/empty-suffix-context
@@ -757,7 +763,7 @@ gl_MODULES([
unistr/u8-to-u16
unistr/u8-to-u32
unistr/u8-uctomb
- unitypes
+ unitypes-h
uniwbrk/base
uniwbrk/u16-wordbreaks
uniwbrk/u32-wordbreaks
@@ -773,7 +779,7 @@ gl_MODULES([
uniwidth/u8-width
uniwidth/width
])
-gl_AVOID([])
+gl_AVOID([float-h-tests])
gl_SOURCE_BASE([lib])
gl_M4_BASE([gnulib-m4])
gl_PO_BASE([])
diff --git a/gnulib-m4/gnulib-common.m4 b/gnulib-m4/gnulib-common.m4
index d8d0904f..134bfba2 100644
--- a/gnulib-m4/gnulib-common.m4
+++ b/gnulib-m4/gnulib-common.m4
@@ -1,8 +1,10 @@
-# gnulib-common.m4 serial 92
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# gnulib-common.m4
+# serial 113
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_PREREQ([2.62])
@@ -19,43 +21,61 @@ AC_DEFUN([gl_COMMON_BODY], [
[/* Witness that <config.h> has been included. */
#define _GL_CONFIG_H_INCLUDED 1
])
+ dnl Avoid warnings from gcc -Wtrailing-whitespace.
+ dnl This is a temporary workaround until Autoconf fixes it.
+ dnl Test case:
+ dnl empty1=; empty2=; AC_DEFINE_UNQUOTED([FOO], [$empty1$empty2], [...])
+ dnl should produce "#define FOO /**/", not "#define FOO ".
+ AH_TOP([#if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wtrailing-whitespace"
+#endif
+])
+ AH_BOTTOM([#if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__
+# pragma GCC diagnostic pop
+#endif
+])
AH_VERBATIM([_GL_GNUC_PREREQ],
-[/* True if the compiler says it groks GNU C version MAJOR.MINOR. */
-#if defined __GNUC__ && defined __GNUC_MINOR__
+[/* True if the compiler says it groks GNU C version MAJOR.MINOR.
+ Except that
+ - clang groks GNU C 4.2, even on Windows, where it does not define
+ __GNUC__.
+ - The OpenMandriva-modified clang compiler pretends that it groks
+ GNU C version 13.1, but it doesn't: It does not support
+ __attribute__ ((__malloc__ (f, i))), nor does it support
+ __attribute__ ((__warning__ (message))) on a function redeclaration.
+ - Users can make clang lie as well, through the -fgnuc-version option. */
+#if defined __GNUC__ && defined __GNUC_MINOR__ && !defined __clang__
# define _GL_GNUC_PREREQ(major, minor) \
((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__))
+#elif defined __clang__
+ /* clang really only groks GNU C 4.2. */
+# define _GL_GNUC_PREREQ(major, minor) \
+ ((major) < 4 + ((minor) <= 2))
#else
# define _GL_GNUC_PREREQ(major, minor) 0
#endif
])
AH_VERBATIM([_Noreturn],
-[/* The _Noreturn keyword of C11. */
+[/* The _Noreturn keyword of C11.
+ Do not use [[noreturn]], because with it the syntax
+ extern _Noreturn void func (...);
+ would not be valid; such a declaration would be valid only with 'extern'
+ and '_Noreturn' swapped, or without the 'extern' keyword. However, some
+ AIX system header files and several gnulib header files use precisely
+ this syntax with 'extern'. So even though C23 deprecates _Noreturn,
+ it is currently more portable to prefer it to [[noreturn]].
+
+ Also, do not try to work around LLVM bug 59792 (clang 15 or earlier).
+ This rare bug can be worked around by compiling with 'clang -D_Noreturn=',
+ though the workaround may generate many false-alarm warnings. */
#ifndef _Noreturn
-# if (defined __cplusplus \
- && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
- || (defined _MSC_VER && 1900 <= _MSC_VER)) \
- && 0)
- /* [[noreturn]] is not practically usable, because with it the syntax
- extern _Noreturn void func (...);
- would not be valid; such a declaration would only be valid with 'extern'
- and '_Noreturn' swapped, or without the 'extern' keyword. However, some
- AIX system header files and several gnulib header files use precisely
- this syntax with 'extern'. */
-# define _Noreturn [[noreturn]]
-# elif (defined __clang__ && __clang_major__ < 16 \
- && defined _GL_WORK_AROUND_LLVM_BUG_59792)
- /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
- that rare LLVM bug, though you may get many false-alarm warnings. */
-# define _Noreturn
-# elif ((!defined __cplusplus || defined __clang__) \
- && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
- || (!defined __STRICT_ANSI__ \
- && (_GL_GNUC_PREREQ (4, 7) \
- || (defined __apple_build_version__ \
- ? 6000000 <= __apple_build_version__ \
- : 3 < __clang_major__ + (5 <= __clang_minor__))))))
+# if ((!defined __cplusplus || defined __clang__) \
+ && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0)))
/* _Noreturn works as-is. */
# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C
+ /* Prefer __attribute__ ((__noreturn__)) to plain _Noreturn even if the
+ latter works, as 'gcc -std=gnu99 -Wpedantic' warns about _Noreturn. */
# define _Noreturn __attribute__ ((__noreturn__))
# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
# define _Noreturn __declspec (noreturn)
@@ -89,6 +109,9 @@ AC_DEFUN([gl_COMMON_BODY], [
# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__)
# else
# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr
+/* The following lines list the first GCC version that supports the attribute.
+ Although the lines are not used in GCC 5 and later (as GCC 5 introduced
+ __has_attribute support), list GCC versions 5+ anyway for completeness. */
# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3)
# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2)
# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3)
@@ -109,12 +132,15 @@ AC_DEFUN([gl_COMMON_BODY], [
# endif
# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1)
# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3)
+# define _GL_ATTR_nonnull_if_nonzero _GL_GNUC_PREREQ (15, 1)
# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0)
# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3)
# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7)
# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96)
+# define _GL_ATTR_reproducible _GL_GNUC_PREREQ (15, 1)
# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9)
# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0)
+# define _GL_ATTR_unsequenced _GL_GNUC_PREREQ (15, 1)
# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7)
# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
# endif
@@ -130,6 +156,23 @@ AC_DEFUN([gl_COMMON_BODY], [
# define _GL_HAVE___HAS_C_ATTRIBUTE 0
#endif
+/* Attributes in bracket syntax [[...]] vs. attributes in __attribute__((...))
+ syntax, in function declarations. There are two problems here.
+ (Last tested with gcc/g++ 14 and clang/clang++ 18.)
+
+ 1) We want that the _GL_ATTRIBUTE_* can be cumulated on the same declaration
+ in any order.
+ =========================== foo.c = foo.cc ===========================
+ __attribute__ ((__deprecated__)) [[__nodiscard__]] int bar1 (int);
+ [[__nodiscard__]] __attribute__ ((__deprecated__)) int bar2 (int);
+ ======================================================================
+ This gives a syntax error
+ - in C mode with gcc
+ <https://gcc.gnu.org/PR108796>, and
+ - in C++ mode with clang++ version < 16, and
+ - in C++ mode, inside extern "C" {}, still in newer clang++ versions
+ <https://github.com/llvm/llvm-project/issues/101990>.
+ */
/* Define if, in a function declaration, the attributes in bracket syntax
[[...]] must come before the attributes in __attribute__((...)) syntax.
If this is defined, it is best to avoid the bracket syntax, so that the
@@ -144,6 +187,176 @@ AC_DEFUN([gl_COMMON_BODY], [
# define _GL_BRACKET_BEFORE_ATTRIBUTE 1
# endif
#endif
+/*
+ 2) We want that the _GL_ATTRIBUTE_* can be placed in a declaration
+ - without 'extern', in C as well as in C++,
+ - with 'extern', in C,
+ - with 'extern "C"', in C++
+ in the same position. That is, we don't want to be forced to use a
+ macro which arranges for the attribute to come before 'extern' in
+ one case and after 'extern' in the other case, because such a macro
+ would make the source code of .h files pretty ugly.
+ =========================== foo.c = foo.cc ===========================
+ #ifdef __cplusplus
+ # define CC "C"
+ #else
+ # define CC
+ #endif
+
+ #define ND [[__nodiscard__]]
+ #define WUR __attribute__((__warn_unused_result__))
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ // gcc clang g++ clang++
+
+ ND int foo (int);
+ int ND foo (int); // warn error warn error
+ int foo ND (int);
+ int foo (int) ND; // warn error warn error
+
+ WUR int foo (int);
+ int WUR foo (int);
+ int fo1 WUR (int); // error error error error
+ int foo (int) WUR;
+
+ #ifdef __cplusplus
+ }
+ #endif
+
+ // gcc clang g++ clang++
+
+ ND extern CC int foo (int); // error error
+ extern CC ND int foo (int); // error error
+ extern CC int ND foo (int); // warn error warn error
+ extern CC int foo ND (int);
+ extern CC int foo (int) ND; // warn error warn error
+
+ WUR extern CC int foo (int); // warn
+ extern CC WUR int foo (int);
+ extern CC int WUR foo (int);
+ extern CC int foo WUR (int); // error error error error
+ extern CC int foo (int) WUR;
+
+ ND EXTERN_C_FUNC int foo (int); // error error
+ EXTERN_C_FUNC ND int foo (int);
+ EXTERN_C_FUNC int ND foo (int); // warn error warn error
+ EXTERN_C_FUNC int foo ND (int);
+ EXTERN_C_FUNC int foo (int) ND; // warn error warn error
+
+ WUR EXTERN_C_FUNC int foo (int); // warn
+ EXTERN_C_FUNC WUR int foo (int);
+ EXTERN_C_FUNC int WUR foo (int);
+ EXTERN_C_FUNC int fo2 WUR (int); // error error error error
+ EXTERN_C_FUNC int foo (int) WUR;
+ ======================================================================
+ So, if we insist on using the 'extern' keyword ('extern CC' idiom):
+ * If _GL_ATTRIBUTE_* expands to bracket syntax [[...]]
+ in both C and C++, there is one available position:
+ - between the function name and the parameter list.
+ * If _GL_ATTRIBUTE_* expands to __attribute__((...)) syntax
+ in both C and C++, there are several available positions:
+ - before the return type,
+ - between return type and function name,
+ - at the end of the declaration.
+ * If _GL_ATTRIBUTE_* expands to bracket syntax [[...]] in C and to
+ __attribute__((...)) syntax in C++, there is no available position:
+ it would need to come before 'extern' in C but after 'extern "C"'
+ in C++.
+ * If _GL_ATTRIBUTE_* expands to __attribute__((...)) syntax in C and
+ to bracket syntax [[...]] in C++, there is one available position:
+ - before the return type.
+ Whereas, if we use the 'EXTERN_C_FUNC' idiom, which conditionally
+ omits the 'extern' keyword:
+ * If _GL_ATTRIBUTE_* expands to bracket syntax [[...]]
+ in both C and C++, there are two available positions:
+ - before the return type,
+ - between the function name and the parameter list.
+ * If _GL_ATTRIBUTE_* expands to __attribute__((...)) syntax
+ in both C and C++, there are several available positions:
+ - before the return type,
+ - between return type and function name,
+ - at the end of the declaration.
+ * If _GL_ATTRIBUTE_* expands to bracket syntax [[...]] in C and to
+ __attribute__((...)) syntax in C++, there is one available position:
+ - before the return type.
+ * If _GL_ATTRIBUTE_* expands to __attribute__((...)) syntax in C and
+ to bracket syntax [[...]] in C++, there is one available position:
+ - before the return type.
+ The best choice is therefore to use the 'EXTERN_C_FUNC' idiom and
+ put the attributes before the return type. This works regardless
+ to what the _GL_ATTRIBUTE_* macros expand.
+ */
+
+/* Attributes in bracket syntax [[...]] vs. attributes in __attribute__((...))
+ syntax, in static/inline function definitions.
+
+ There are similar constraints as for function declarations. However, here,
+ we cannot omit the storage-class specifier. Therefore, the following rule
+ applies:
+ * The macros
+ _GL_ATTRIBUTE_CONST
+ _GL_ATTRIBUTE_DEPRECATED
+ _GL_ATTRIBUTE_MAYBE_UNUSED
+ _GL_ATTRIBUTE_NODISCARD
+ _GL_ATTRIBUTE_PURE
+ _GL_ATTRIBUTE_REPRODUCIBLE
+ _GL_ATTRIBUTE_UNSEQUENCED
+ which may expand to bracket syntax [[...]], must come first, before the
+ storage-class specifier.
+ * Other _GL_ATTRIBUTE_* macros, that expand to __attribute__((...)) syntax,
+ are better placed between the storage-class specifier and the return
+ type.
+ */
+
+/* Attributes in bracket syntax [[...]] vs. attributes in __attribute__((...))
+ syntax, in variable declarations.
+
+ At which position can they be placed?
+ (Last tested with gcc/g++ 14 and clang/clang++ 18.)
+
+ =========================== foo.c = foo.cc ===========================
+ #ifdef __cplusplus
+ # define CC "C"
+ #else
+ # define CC
+ #endif
+
+ #define BD [[__deprecated__]]
+ #define AD __attribute__ ((__deprecated__))
+
+ // gcc clang g++ clang++
+
+ BD extern CC int var; // error error
+ extern CC BD int var; // error error
+ extern CC int BD var; // warn error warn error
+ extern CC int var BD;
+
+ AD extern CC int var; // warn
+ extern CC AD int var;
+ extern CC int AD var;
+ extern CC int var AD;
+
+ BD extern CC int z[]; // error error
+ extern CC BD int z[]; // error error
+ extern CC int BD z[]; // warn error warn error
+ extern CC int z1 BD [];
+ extern CC int z[] BD; // warn error error
+
+ AD extern CC int z[]; // warn
+ extern CC AD int z[];
+ extern CC int AD z[];
+ extern CC int z2 AD []; // error error error error
+ extern CC int z[] AD;
+ ======================================================================
+
+ * For non-array variables, the only good position is after the variable name,
+ that is, at the end of the declaration.
+ * For array variables, you will need to distinguish C and C++:
+ - In C, before the 'extern' keyword.
+ - In C++, between the 'extern "C"' and the variable's type.
+ */
]dnl There is no _GL_ATTRIBUTE_ALIGNED; use stdalign's alignas instead.
[
/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function
@@ -151,7 +364,7 @@ AC_DEFUN([gl_COMMON_BODY], [
_GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied
by the Nth argument of the function is the size of the returned memory block.
*/
-/* Applies to: function, pointer to function, function types. */
+/* Applies to: functions, pointer to functions, function types. */
#ifndef _GL_ATTRIBUTE_ALLOC_SIZE
# if _GL_HAS_ATTRIBUTE (alloc_size)
# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
@@ -162,7 +375,7 @@ AC_DEFUN([gl_COMMON_BODY], [
/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the
function and report an error if it cannot do so. */
-/* Applies to: function. */
+/* Applies to: functions. */
#ifndef _GL_ATTRIBUTE_ALWAYS_INLINE
# if _GL_HAS_ATTRIBUTE (always_inline)
# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
@@ -174,7 +387,7 @@ AC_DEFUN([gl_COMMON_BODY], [
/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show
in stack traces when debugging. The compiler should omit the function from
stack traces. */
-/* Applies to: function. */
+/* Applies to: functions. */
#ifndef _GL_ATTRIBUTE_ARTIFICIAL
# if _GL_HAS_ATTRIBUTE (artificial)
# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
@@ -200,18 +413,23 @@ AC_DEFUN([gl_COMMON_BODY], [
# endif
#endif
-/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate
- calls to the function with the same arguments.
- This attribute is safe for a function that neither depends on nor affects
- observable state, and always returns exactly once - e.g., does not loop
- forever, and does not call longjmp.
- (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */
+/* _GL_ATTRIBUTE_CONST declares:
+ It is OK for a compiler to move calls to the function and to omit
+ calls to the function if another call has the same arguments or the
+ result is not used.
+ This attribute is safe for a function that neither depends on
+ nor affects state, and always returns exactly once -
+ e.g., does not raise an exception, call longjmp, or loop forever.
+ (This attribute is stricter than _GL_ATTRIBUTE_PURE because the
+ function cannot observe state. It is stricter than
+ _GL_ATTRIBUTE_UNSEQUENCED because the function must return exactly
+ once and cannot depend on state addressed by its arguments.) */
/* Applies to: functions. */
#ifndef _GL_ATTRIBUTE_CONST
# if _GL_HAS_ATTRIBUTE (const)
# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
# else
-# define _GL_ATTRIBUTE_CONST
+# define _GL_ATTRIBUTE_CONST _GL_ATTRIBUTE_UNSEQUENCED
# endif
#endif
@@ -233,7 +451,7 @@ AC_DEFUN([gl_COMMON_BODY], [
yet. */
#ifndef _GL_ATTRIBUTE_DEALLOC_FREE
# if defined __cplusplus && defined __GNUC__ && !defined __clang__
-/* Work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231> */
+/* Work around GCC bug <https://gcc.gnu.org/PR108231> */
# define _GL_ATTRIBUTE_DEALLOC_FREE \
_GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1)
# else
@@ -459,6 +677,17 @@ AC_DEFUN([gl_COMMON_BODY], [
# endif
#endif
+/* _GL_ATTRIBUTE_NONNULL_IF_NONZERO (NP, NI) declares that the argument NP
+ (a pointer) must not be NULL if the argument NI (an integer) is != 0. */
+/* Applies to: functions. */
+#ifndef _GL_ATTRIBUTE_NONNULL_IF_NONZERO
+# if _GL_HAS_ATTRIBUTE (nonnull_if_nonzero)
+# define _GL_ATTRIBUTE_NONNULL_IF_NONZERO(np, ni) __attribute__ ((__nonnull_if_nonzero__ (np, ni)))
+# else
+# define _GL_ATTRIBUTE_NONNULL_IF_NONZERO(np, ni)
+# endif
+#endif
+
/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is
not meant to be NUL-terminated. */
/* Applies to: struct/union members and variables that are arrays of element
@@ -480,7 +709,7 @@ AC_DEFUN([gl_COMMON_BODY], [
other attributes. */
#ifndef _GL_ATTRIBUTE_NOTHROW
# if defined __cplusplus
-# if _GL_GNUC_PREREQ (2, 8) || __clang_major >= 4
+# if _GL_GNUC_PREREQ (2, 8) || __clang_major__ >= 4
# if __cplusplus >= 201103L
# define _GL_ATTRIBUTE_NOTHROW noexcept (true)
# else
@@ -505,25 +734,60 @@ AC_DEFUN([gl_COMMON_BODY], [
/* Applies to: struct members, struct, union,
in C++ also: class. */
#ifndef _GL_ATTRIBUTE_PACKED
-# if _GL_HAS_ATTRIBUTE (packed)
+/* Oracle Studio 12.6 miscompiles code with __attribute__ ((__packed__)) despite
+ __has_attribute OK. */
+# if _GL_HAS_ATTRIBUTE (packed) && !defined __SUNPRO_C
# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
# else
# define _GL_ATTRIBUTE_PACKED
# endif
#endif
-/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate
- calls to the function with the same arguments if observable state is not
- changed between calls.
- This attribute is safe for a function that does not affect
- observable state, and always returns exactly once.
- (This attribute is looser than _GL_ATTRIBUTE_CONST.) */
+/* _GL_ATTRIBUTE_PURE declares:
+ It is OK for a compiler to move calls to the function and to omit
+ calls to the function if another call has the same arguments or the
+ result is not used, and if observable state is the same.
+ This attribute is safe for a function that does not affect observable state
+ and always returns exactly once.
+ (This attribute is looser than _GL_ATTRIBUTE_CONST because the function
+ can depend on observable state. It is stricter than
+ _GL_ATTRIBUTE_REPRODUCIBLE because the function must return exactly
+ once and cannot affect state addressed by its arguments.) */
/* Applies to: functions. */
#ifndef _GL_ATTRIBUTE_PURE
# if _GL_HAS_ATTRIBUTE (pure)
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
# else
-# define _GL_ATTRIBUTE_PURE
+# define _GL_ATTRIBUTE_PURE _GL_ATTRIBUTE_REPRODUCIBLE
+# endif
+#endif
+
+/* _GL_ATTRIBUTE_REPRODUCIBLE declares:
+ It is OK for a compiler to move calls to the function and to omit duplicate
+ calls to the function with the same arguments, so long as the state
+ addressed by its arguments is the same and is updated in time for
+ the rest of the program.
+ This attribute is safe for a function that is effectless and idempotent; see
+ ISO C 23 § 6.7.12.7 for a definition of these terms.
+ (This attribute is looser than _GL_ATTRIBUTE_UNSEQUENCED because
+ the function need not be stateless and idempotent. It is looser
+ than _GL_ATTRIBUTE_PURE because the function need not return
+ exactly once and can affect state addressed by its arguments.)
+ See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
+ <https://stackoverflow.com/questions/76847905/>.
+ ATTENTION! Efforts are underway to change the meaning of this attribute.
+ See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */
+/* Applies to: functions, pointer to functions, function types. */
+#ifndef _GL_ATTRIBUTE_REPRODUCIBLE
+/* This may be revisited when gcc and clang support [[reproducible]] or possibly
+ __attribute__ ((__reproducible__)). */
+# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE
+# if _GL_HAS_ATTRIBUTE (reproducible)
+# define _GL_ATTRIBUTE_REPRODUCIBLE [[reproducible]]
+# endif
+# endif
+# ifndef _GL_ATTRIBUTE_REPRODUCIBLE
+# define _GL_ATTRIBUTE_REPRODUCIBLE
# endif
#endif
@@ -551,6 +815,35 @@ AC_DEFUN([gl_COMMON_BODY], [
# endif
#endif
+/* _GL_ATTRIBUTE_UNSEQUENCED declares:
+ It is OK for a compiler to move calls to the function and to omit duplicate
+ calls to the function with the same arguments, so long as the state
+ addressed by its arguments is the same.
+ This attribute is safe for a function that is effectless, idempotent,
+ stateless, and independent; see ISO C 23 § 6.7.12.7 for a definition of
+ these terms.
+ (This attribute is stricter than _GL_ATTRIBUTE_REPRODUCIBLE because
+ the function must be stateless and independent. It is looser than
+ _GL_ATTRIBUTE_CONST because the function need not return exactly
+ once and can depend on state addressed by its arguments.)
+ See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
+ <https://stackoverflow.com/questions/76847905/>.
+ ATTENTION! Efforts are underway to change the meaning of this attribute.
+ See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */
+/* Applies to: functions, pointer to functions, function types. */
+#ifndef _GL_ATTRIBUTE_UNSEQUENCED
+/* This may be revisited when gcc and clang support [[unsequenced]] or possibly
+ __attribute__ ((__unsequenced__)). */
+# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE
+# if _GL_HAS_ATTRIBUTE (unsequenced)
+# define _GL_ATTRIBUTE_UNSEQUENCED [[unsequenced]]
+# endif
+# endif
+# ifndef _GL_ATTRIBUTE_UNSEQUENCED
+# define _GL_ATTRIBUTE_UNSEQUENCED
+# endif
+#endif
+
/* A helper macro. Don't use it directly. */
#ifndef _GL_ATTRIBUTE_UNUSED
# if _GL_HAS_ATTRIBUTE (unused)
@@ -575,6 +868,35 @@ AC_DEFUN([gl_COMMON_BODY], [
# define _GL_UNUSED_LABEL
# endif
#endif
+
+/* The following attributes enable detection of multithread-safety problems
+ and resource leaks at compile-time, by clang ≥ 15, when the warning option
+ -Wthread-safety is enabled. For usage, see
+ <https://clang.llvm.org/docs/ThreadSafetyAnalysis.html>. */
+#ifndef _GL_ATTRIBUTE_CAPABILITY_TYPE
+# if __clang_major__ >= 15
+# define _GL_ATTRIBUTE_CAPABILITY_TYPE(concept) \
+ __attribute__ ((__capability__ (concept)))
+# else
+# define _GL_ATTRIBUTE_CAPABILITY_TYPE(concept)
+# endif
+#endif
+#ifndef _GL_ATTRIBUTE_ACQUIRE_CAPABILITY
+# if __clang_major__ >= 15
+# define _GL_ATTRIBUTE_ACQUIRE_CAPABILITY(resource) \
+ __attribute__ ((__acquire_capability__ (resource)))
+# else
+# define _GL_ATTRIBUTE_ACQUIRE_CAPABILITY(resource)
+# endif
+#endif
+#ifndef _GL_ATTRIBUTE_RELEASE_CAPABILITY
+# if __clang_major__ >= 15
+# define _GL_ATTRIBUTE_RELEASE_CAPABILITY(resource) \
+ __attribute__ ((__release_capability__ (resource)))
+# else
+# define _GL_ATTRIBUTE_RELEASE_CAPABILITY(resource)
+# endif
+#endif
])
AH_VERBATIM([c_linkage],
[/* In C++, there is the concept of "language linkage", that encompasses
@@ -625,8 +947,8 @@ AC_DEFUN([gl_COMMON_BODY], [
-1 if n1 < n2
The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional
jump with nearly all GCC versions up to GCC 10.
- This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many
- GCC versions up to GCC 9.
+ This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional jump with
+ many GCC versions up to GCC 9.
The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9
avoids conditional jumps in all GCC versions >= 3.4. */
#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2)))
@@ -1003,7 +1325,7 @@ AC_DEFUN([gl_CC_ALLOW_WARNINGS],
AC_REQUIRE([AC_PROG_CC])
AC_CACHE_CHECK([for C compiler option to allow warnings],
[gl_cv_cc_wallow],
- [rm -f conftest*
+ [rm -fr conftest*
echo 'int dummy;' > conftest.c
AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err]) >/dev/null
AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err]) >/dev/null
@@ -1016,7 +1338,7 @@ AC_DEFUN([gl_CC_ALLOW_WARNINGS],
else
gl_cv_cc_wallow=none
fi
- rm -f conftest*
+ rm -fr conftest*
])
case "$gl_cv_cc_wallow" in
none) GL_CFLAG_ALLOW_WARNINGS='' ;;
@@ -1034,7 +1356,7 @@ AC_DEFUN([gl_CXX_ALLOW_WARNINGS],
if test -n "$CXX" && test "$CXX" != no; then
AC_CACHE_CHECK([for C++ compiler option to allow warnings],
[gl_cv_cxx_wallow],
- [rm -f conftest*
+ [rm -fr conftest*
echo 'int dummy;' > conftest.cc
AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -c conftest.cc 2>conftest1.err]) >/dev/null
AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -Wno-error -c conftest.cc 2>conftest2.err]) >/dev/null
@@ -1047,7 +1369,7 @@ AC_DEFUN([gl_CXX_ALLOW_WARNINGS],
else
gl_cv_cxx_wallow=none
fi
- rm -f conftest*
+ rm -fr conftest*
])
case "$gl_cv_cxx_wallow" in
none) GL_CXXFLAG_ALLOW_WARNINGS='' ;;
@@ -1084,11 +1406,12 @@ AC_DEFUN([gl_CC_GNULIB_WARNINGS],
dnl -Wno-type-limits >= 4.3 >= 3.9
dnl -Wno-undef >= 3 >= 3.9
dnl -Wno-unsuffixed-float-constants >= 4.5
+ dnl -Wno-unused-const-variable >= 4.4 >= 3.9
dnl -Wno-unused-function >= 3 >= 3.9
dnl -Wno-unused-parameter >= 3 >= 3.9
dnl
cat > conftest.c <<\EOF
- #if __GNUC__ >= 3 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+ #if (__GNUC__ >= 3 && !defined __clang__) || (__clang_major__ + (__clang_minor__ >= 9) > 3)
-Wno-cast-qual
-Wno-conversion
-Wno-float-equal
@@ -1097,23 +1420,26 @@ AC_DEFUN([gl_CC_GNULIB_WARNINGS],
-Wno-unused-function
-Wno-unused-parameter
#endif
- #if __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+ #if (__GNUC__ + (__GNUC_MINOR__ >= 9) > 4 && !defined __clang__) || (__clang_major__ + (__clang_minor__ >= 9) > 3)
-Wno-float-conversion
#endif
- #if __GNUC__ >= 7 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+ #if (__GNUC__ >= 7 && !defined __clang__) || (__clang_major__ + (__clang_minor__ >= 9) > 3)
-Wimplicit-fallthrough
#endif
- #if __GNUC__ + (__GNUC_MINOR__ >= 8) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+ #if (__GNUC__ + (__GNUC_MINOR__ >= 8) > 4 && !defined __clang__) || (__clang_major__ + (__clang_minor__ >= 9) > 3)
-Wno-pedantic
#endif
#if 3 < __clang_major__ + (9 <= __clang_minor__)
-Wno-tautological-constant-out-of-range-compare
#endif
- #if __GNUC__ + (__GNUC_MINOR__ >= 3) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+ #if (__GNUC__ + (__GNUC_MINOR__ >= 3) > 4 && !defined __clang__) || (__clang_major__ + (__clang_minor__ >= 9) > 3)
-Wno-sign-conversion
-Wno-type-limits
#endif
- #if __GNUC__ + (__GNUC_MINOR__ >= 5) > 4
+ #if (__GNUC__ + (__GNUC_MINOR__ >= 4) > 4 && !defined __clang__) || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+ -Wno-unused-const-variable
+ #endif
+ #if (__GNUC__ + (__GNUC_MINOR__ >= 5) > 4 && !defined __clang__)
-Wno-unsuffixed-float-constants
#endif
EOF
@@ -1237,13 +1563,25 @@ AC_DEFUN([gl_CHECK_FUNCS_CASE_FOR_MACOS],
if test $[ac_cv_func_][$1] = yes; then
[gl_cv_onwards_func_][$1]=yes
else
+ dnl This is a bit complicated, because here we need the behaviour
+ dnl of AC_CHECK_DECL before the
+ dnl commit e1bbc9b93cdff61d70719c224b37970e065008bb (2025-05-26).
+ [ac_cv_have_decl_][$1][_saved]="$[ac_cv_have_decl_][$1]"
unset [ac_cv_have_decl_][$1]
+ ac_c_future_darwin_options_saved="$ac_c_future_darwin_options"
+ ac_cxx_future_darwin_options_saved="$ac_cxx_future_darwin_options"
+ ac_c_future_darwin_options=
+ ac_cxx_future_darwin_options=
AC_CHECK_DECL([$1], , , [$2])
+ ac_c_future_darwin_options="$ac_c_future_darwin_options_saved"
+ ac_cxx_future_darwin_options="$ac_cxx_future_darwin_options_saved"
if test $[ac_cv_have_decl_][$1] = yes; then
[gl_cv_onwards_func_][$1]='future OS version'
else
[gl_cv_onwards_func_][$1]=no
fi
+ [ac_cv_have_decl_][$1]="$[ac_cv_have_decl_][$1][_saved]"
+ unset [ac_cv_have_decl_][$1][_saved]
fi
else
AC_CHECK_FUNC([$1])
@@ -1296,7 +1634,7 @@ dnl
dnl This macro sets two variables:
dnl - gl_cv_onwards_func_<func> to yes / no / "future OS version"
dnl - ac_cv_func_<func> to yes / no / no
-dnl The first variable allows to distinguish all three cases.
+dnl The first variable allows distinguishing all three cases.
dnl The second variable is set, so that an invocation
dnl gl_CHECK_FUNCS_ANDROID([func], [[#include <foo.h>]])
dnl can be used as a drop-in replacement for
@@ -1349,7 +1687,7 @@ dnl
dnl This macro sets two variables:
dnl - gl_cv_onwards_func_<func> to yes / no / "future OS version"
dnl - ac_cv_func_<func> to yes / no / no
-dnl The first variable allows to distinguish all three cases.
+dnl The first variable allows distinguishing all three cases.
dnl The second variable is set, so that an invocation
dnl gl_CHECK_FUNCS_MACOS([func], [[#include <foo.h>]])
dnl can be used as a drop-in replacement for
diff --git a/gnulib-m4/gnulib-comp.m4 b/gnulib-m4/gnulib-comp.m4
index 4947d6c0..3f238a2a 100644
--- a/gnulib-m4/gnulib-comp.m4
+++ b/gnulib-m4/gnulib-comp.m4
@@ -1,5 +1,5 @@
# DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -51,8 +51,8 @@ AC_DEFUN([gl_EARLY],
# Code from module alloca-opt:
# Code from module alloca-opt-tests:
# Code from module amemxfrm:
- # Code from module arpa_inet:
- # Code from module arpa_inet-tests:
+ # Code from module arpa_inet-h:
+ # Code from module arpa_inet-h-tests:
# Code from module array-mergesort:
# Code from module array-mergesort-tests:
# Code from module assert-h:
@@ -63,6 +63,8 @@ AC_DEFUN([gl_EARLY],
# Code from module binary-io-tests:
# Code from module bind:
# Code from module bind-tests:
+ # Code from module bool:
+ # Code from module bool-tests:
# Code from module btoc32:
# Code from module btoc32-tests:
# Code from module btowc:
@@ -70,8 +72,8 @@ AC_DEFUN([gl_EARLY],
# Code from module builtin-expect:
# Code from module c-ctype:
# Code from module c-ctype-tests:
- # Code from module c-strcase:
- # Code from module c-strcase-tests:
+ # Code from module c-strcasecmp:
+ # Code from module c-strcasecmp-tests:
# Code from module c-strcaseeq:
# Code from module c32isalnum:
# Code from module c32isalnum-tests:
@@ -108,26 +110,32 @@ AC_DEFUN([gl_EARLY],
# Code from module calloc-gnu:
# Code from module calloc-gnu-tests:
# Code from module calloc-posix:
+ # Code from module calloc-posix-tests:
# Code from module cloexec:
# Code from module cloexec-tests:
# Code from module close:
# Code from module close-tests:
+ # Code from module concat-filename:
# Code from module connect:
# Code from module connect-tests:
- # Code from module ctype:
- # Code from module ctype-tests:
+ # Code from module ctype-h:
+ # Code from module ctype-h-tests:
# Code from module double-slash-root:
# Code from module dup2:
# Code from module dup2-tests:
# Code from module environ:
# Code from module environ-tests:
- # Code from module errno:
- # Code from module errno-tests:
+ # Code from module errno-h:
+ # Code from module errno-h-tests:
# Code from module error:
# Code from module error-h:
# Code from module error-tests:
# Code from module exitfail:
# Code from module extensions:
+ # This is actually already done in the pre-early phase.
+ # AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ # Code from module extensions-aix:
+ AC_REQUIRE([gl_USE_AIX_EXTENSIONS])
# Code from module extern-inline:
# Code from module fcntl:
# Code from module fcntl-h:
@@ -139,8 +147,7 @@ AC_DEFUN([gl_EARLY],
# Code from module fgetc-tests:
# Code from module filename:
# Code from module flexmember:
- # Code from module float:
- # Code from module float-tests:
+ # Code from module float-h:
# Code from module fpieee:
AC_REQUIRE([gl_FP_IEEE])
# Code from module fpucw:
@@ -164,13 +171,16 @@ AC_DEFUN([gl_EARLY],
# Code from module getcwd-lgpl-tests:
# Code from module getdtablesize:
# Code from module getdtablesize-tests:
- # Code from module getpagesize:
+ # Code from module getlocalename_l-unsafe:
+ # Code from module getlocalename_l-unsafe-limited:
# Code from module getprogname:
# Code from module getprogname-tests:
# Code from module gettext-h:
+ # Code from module gettext-h-tests:
# Code from module gettimeofday:
# Code from module gettimeofday-tests:
# Code from module gitlog-to-changelog:
+ # Code from module gnulib-i18n:
# Code from module gperf:
# Code from module hard-locale:
# Code from module hard-locale-tests:
@@ -190,9 +200,9 @@ AC_DEFUN([gl_EARLY],
# Code from module inline:
# Code from module intprops:
# Code from module intprops-tests:
- # Code from module inttypes:
- # Code from module inttypes-incomplete:
- # Code from module inttypes-tests:
+ # Code from module inttypes-h:
+ # Code from module inttypes-h-incomplete:
+ # Code from module inttypes-h-tests:
# Code from module ioctl:
# Code from module ioctl-tests:
# Code from module isblank:
@@ -211,8 +221,6 @@ AC_DEFUN([gl_EARLY],
# Code from module iswpunct-tests:
# Code from module iswxdigit:
# Code from module iswxdigit-tests:
- # Code from module langinfo:
- # Code from module langinfo-tests:
# Code from module largefile:
AC_REQUIRE([AC_SYS_LARGEFILE])
# Code from module largefile-tests:
@@ -223,9 +231,12 @@ AC_DEFUN([gl_EARLY],
# Code from module listen-tests:
# Code from module localcharset:
# Code from module localcharset-tests:
- # Code from module locale:
- # Code from module locale-tests:
+ # Code from module locale-h:
+ # Code from module locale-h-tests:
+ # Code from module localeconv:
+ # Code from module localeconv-tests:
# Code from module localename:
+ # Code from module localename-environ:
# Code from module localename-tests:
# Code from module localename-unsafe:
# Code from module localename-unsafe-limited:
@@ -236,10 +247,11 @@ AC_DEFUN([gl_EARLY],
# Code from module malloc-gnu:
# Code from module malloc-gnu-tests:
# Code from module malloc-posix:
+ # Code from module malloc-posix-tests:
# Code from module malloca:
# Code from module malloca-tests:
- # Code from module math:
- # Code from module math-tests:
+ # Code from module math-h:
+ # Code from module math-h-tests:
# Code from module mbchar:
# Code from module mbiterf:
# Code from module mbrtoc32:
@@ -249,23 +261,30 @@ AC_DEFUN([gl_EARLY],
# Code from module mbsinit:
# Code from module mbsinit-tests:
# Code from module mbsnlen:
+ # Code from module mbsnlen-tests:
# Code from module mbszero:
# Code from module mbtowc:
# Code from module memchr:
# Code from module memchr-tests:
# Code from module memcmp2:
# Code from module minmax:
+ # Code from module mixin/printf-posix:
+ # Code from module mkfifo:
+ # Code from module mkfifo-tests:
# Code from module msvc-inval:
# Code from module msvc-nothrow:
# Code from module multiarch:
# Code from module nan:
# Code from module nanosleep:
# Code from module nanosleep-tests:
- # Code from module netinet_in:
- # Code from module netinet_in-tests:
+ # Code from module netinet_in-h:
+ # Code from module netinet_in-h-tests:
# Code from module nocrash:
+ # Code from module once:
+ # Code from module once-tests:
# Code from module open:
# Code from module open-tests:
+ # Code from module package-version:
# Code from module pathmax:
# Code from module pathmax-tests:
# Code from module perror:
@@ -279,35 +298,45 @@ AC_DEFUN([gl_EARLY],
# Code from module printf-safe:
# Code from module pselect:
# Code from module pselect-tests:
+ # Code from module pthread-cond:
+ # Code from module pthread-cond-tests:
# Code from module pthread-h:
gl_ANYTHREADLIB_EARLY
# Code from module pthread-h-tests:
+ # Code from module pthread-mutex:
+ # Code from module pthread-mutex-tests:
+ # Code from module pthread-once:
+ # Code from module pthread-once-tests:
+ # Code from module pthread-rwlock:
+ # Code from module pthread-rwlock-tests:
# Code from module pthread-thread:
# Code from module pthread-thread-tests:
+ # Code from module pthread_mutex_timedlock:
# Code from module pthread_sigmask:
# Code from module pthread_sigmask-tests:
- # Code from module putenv:
+ # Code from module putenv-gnu:
+ # Code from module putenv-gnu-tests:
# Code from module raise:
# Code from module raise-tests:
# Code from module random:
# Code from module random-tests:
# Code from module random_r:
# Code from module random_r-tests:
- # Code from module realloc-gnu:
- # Code from module realloc-gnu-tests:
# Code from module realloc-posix:
+ # Code from module realloc-posix-tests:
# Code from module reallocarray:
# Code from module reallocarray-tests:
# Code from module relocatable-lib-lgpl:
# Code from module same-inode:
- # Code from module sched:
- # Code from module sched-tests:
+ # Code from module sched-h:
+ # Code from module sched-h-tests:
# Code from module sched_yield:
# Code from module select:
# Code from module select-tests:
# Code from module setenv:
# Code from module setenv-tests:
# Code from module setlocale:
+ # Code from module setlocale-fixes:
# Code from module setlocale-null:
# Code from module setlocale-null-tests:
# Code from module setlocale-null-unlocked:
@@ -342,19 +371,22 @@ AC_DEFUN([gl_EARLY],
# Code from module stat-time:
# Code from module stat-time-tests:
# Code from module std-gnu11:
- # Code from module stdbool:
- # Code from module stdbool-tests:
- # Code from module stdckdint:
- # Code from module stdckdint-tests:
- # Code from module stddef:
- # Code from module stddef-tests:
- # Code from module stdint:
- # Code from module stdint-tests:
- # Code from module stdio:
+ # Code from module stdckdint-h:
+ # Code from module stdckdint-h-tests:
+ # Code from module stddef-h:
+ # Code from module stddef-h-tests:
+ # Code from module stdint-h:
+ # Code from module stdint-h-tests:
+ # Code from module stdio-h:
gl_STDIO_H_EARLY
- # Code from module stdio-tests:
- # Code from module stdlib:
- # Code from module stdlib-tests:
+ # Code from module stdio-h-tests:
+ # Code from module stdlib-h:
+ # Code from module stdlib-h-tests:
+ # Code from module stpcpy:
+ # Code from module str_endswith:
+ # Code from module str_endswith-tests:
+ # Code from module str_startswith:
+ # Code from module str_startswith-tests:
# Code from module streq:
# Code from module strerror:
# Code from module strerror-override:
@@ -365,8 +397,9 @@ AC_DEFUN([gl_EARLY],
# Code from module striconveh-tests:
# Code from module striconveha:
# Code from module striconveha-tests:
- # Code from module string:
- # Code from module string-tests:
+ # Code from module string-h:
+ # Code from module string-h-tests:
+ # Code from module stringeq:
# Code from module strncat:
# Code from module strncat-tests:
# Code from module strstr:
@@ -374,22 +407,24 @@ AC_DEFUN([gl_EARLY],
# Code from module strstr-tests:
# Code from module symlink:
# Code from module symlink-tests:
- # Code from module sys_ioctl:
- # Code from module sys_ioctl-tests:
- # Code from module sys_select:
- # Code from module sys_select-tests:
- # Code from module sys_socket:
- # Code from module sys_socket-tests:
- # Code from module sys_stat:
- # Code from module sys_stat-tests:
- # Code from module sys_time:
- # Code from module sys_time-tests:
- # Code from module sys_types:
- # Code from module sys_types-tests:
- # Code from module sys_uio:
- # Code from module sys_uio-tests:
+ # Code from module sys_ioctl-h:
+ # Code from module sys_ioctl-h-tests:
+ # Code from module sys_select-h:
+ # Code from module sys_select-h-tests:
+ # Code from module sys_socket-h:
+ # Code from module sys_socket-h-tests:
+ # Code from module sys_stat-h:
+ # Code from module sys_stat-h-tests:
+ # Code from module sys_time-h:
+ # Code from module sys_time-h-tests:
+ # Code from module sys_types-h:
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ # Code from module sys_types-h-tests:
+ # Code from module sys_uio-h:
+ # Code from module sys_uio-h-tests:
# Code from module test-framework-sh:
# Code from module test-framework-sh-tests:
+ # Code from module test-xfail:
# Code from module thread:
# Code from module thread-optim:
# Code from module thread-tests:
@@ -399,9 +434,10 @@ AC_DEFUN([gl_EARLY],
# Code from module time-h:
# Code from module time-h-tests:
# Code from module time-tests:
- # Code from module uchar:
- # Code from module uchar-tests:
+ # Code from module uchar-h:
+ # Code from module uchar-h-tests:
# Code from module unicase/base:
+ # Code from module unicase/base-tests:
# Code from module unicase/cased:
# Code from module unicase/cased-tests:
# Code from module unicase/empty-prefix-context:
@@ -517,6 +553,7 @@ AC_DEFUN([gl_EARLY],
# Code from module unicase/ulc-casecoll-tests:
# Code from module unicase/ulc-casexfrm:
# Code from module uniconv/base:
+ # Code from module uniconv/base-tests:
# Code from module uniconv/u16-conv-from-enc:
# Code from module uniconv/u16-conv-from-enc-tests:
# Code from module uniconv/u16-conv-to-enc:
@@ -548,6 +585,7 @@ AC_DEFUN([gl_EARLY],
# Code from module uniconv/u8-strconv-to-enc-tests:
# Code from module uniconv/u8-strconv-to-locale:
# Code from module unictype/base:
+ # Code from module unictype/base-tests:
# Code from module unictype/bidiclass-all:
# Code from module unictype/bidiclass-byname:
# Code from module unictype/bidiclass-byname-tests:
@@ -855,6 +893,8 @@ AC_DEFUN([gl_EARLY],
# Code from module unictype/property-lowercase-tests:
# Code from module unictype/property-math:
# Code from module unictype/property-math-tests:
+ # Code from module unictype/property-modifier-combining-mark:
+ # Code from module unictype/property-modifier-combining-mark-tests:
# Code from module unictype/property-non-break:
# Code from module unictype/property-non-break-tests:
# Code from module unictype/property-not-a-character:
@@ -937,6 +977,7 @@ AC_DEFUN([gl_EARLY],
# Code from module unictype/syntax-java-whitespace:
# Code from module unictype/syntax-java-whitespace-tests:
# Code from module unigbrk/base:
+ # Code from module unigbrk/base-tests:
# Code from module unigbrk/u16-grapheme-breaks:
# Code from module unigbrk/u16-grapheme-breaks-tests:
# Code from module unigbrk/u16-grapheme-next:
@@ -964,6 +1005,7 @@ AC_DEFUN([gl_EARLY],
# Code from module unigbrk/ulc-grapheme-breaks:
# Code from module unigbrk/ulc-grapheme-breaks-tests:
# Code from module unilbrk/base:
+ # Code from module unilbrk/base-tests:
# Code from module unilbrk/tables:
# Code from module unilbrk/u16-possible-linebreaks:
# Code from module unilbrk/u16-possible-linebreaks-tests:
@@ -983,12 +1025,15 @@ AC_DEFUN([gl_EARLY],
# Code from module unilbrk/ulc-width-linebreaks:
# Code from module unilbrk/ulc-width-linebreaks-tests:
# Code from module unimetadata/base:
+ # Code from module unimetadata/base-tests:
# Code from module unimetadata/u-version:
# Code from module unimetadata/u-version-tests:
# Code from module uniname/base:
+ # Code from module uniname/base-tests:
# Code from module uniname/uniname:
# Code from module uniname/uniname-tests:
# Code from module uninorm/base:
+ # Code from module uninorm/base-tests:
# Code from module uninorm/canonical-decomposition:
# Code from module uninorm/canonical-decomposition-tests:
# Code from module uninorm/compat-decomposition:
@@ -1029,9 +1074,10 @@ AC_DEFUN([gl_EARLY],
# Code from module uninorm/u8-normcoll:
# Code from module uninorm/u8-normcoll-tests:
# Code from module uninorm/u8-normxfrm:
- # Code from module unistd:
- # Code from module unistd-tests:
+ # Code from module unistd-h:
+ # Code from module unistd-h-tests:
# Code from module unistdio/base:
+ # Code from module unistdio/base-tests:
# Code from module unistdio/u-printf-args:
# Code from module unistdio/u16-asnprintf:
# Code from module unistdio/u16-asnprintf-tests:
@@ -1116,6 +1162,7 @@ AC_DEFUN([gl_EARLY],
# Code from module unistdio/ulc-vsprintf:
# Code from module unistdio/ulc-vsprintf-tests:
# Code from module unistr/base:
+ # Code from module unistr/base-tests:
# Code from module unistr/u16-check:
# Code from module unistr/u16-check-tests:
# Code from module unistr/u16-chr:
@@ -1350,8 +1397,9 @@ AC_DEFUN([gl_EARLY],
# Code from module unistr/u8-to-u32-tests:
# Code from module unistr/u8-uctomb:
# Code from module unistr/u8-uctomb-tests:
- # Code from module unitypes:
+ # Code from module unitypes-h:
# Code from module uniwbrk/base:
+ # Code from module uniwbrk/base-tests:
# Code from module uniwbrk/table:
# Code from module uniwbrk/u16-wordbreaks:
# Code from module uniwbrk/u16-wordbreaks-tests:
@@ -1363,6 +1411,7 @@ AC_DEFUN([gl_EARLY],
# Code from module uniwbrk/ulc-wordbreaks-tests:
# Code from module uniwbrk/wordbreak-property:
# Code from module uniwidth/base:
+ # Code from module uniwidth/base-tests:
# Code from module uniwidth/u16-strwidth:
# Code from module uniwidth/u16-strwidth-tests:
# Code from module uniwidth/u16-width:
@@ -1384,8 +1433,8 @@ AC_DEFUN([gl_EARLY],
# Code from module vararrays:
# Code from module verify:
# Code from module verify-tests:
- # Code from module wchar:
- # Code from module wchar-tests:
+ # Code from module wchar-h:
+ # Code from module wchar-h-tests:
# Code from module wcrtomb:
# Code from module wcrtomb-tests:
# Code from module wctob:
@@ -1394,16 +1443,26 @@ AC_DEFUN([gl_EARLY],
# Code from module wctype-h-tests:
# Code from module wcwidth:
# Code from module wcwidth-tests:
+ # Code from module windows-cond:
# Code from module windows-mutex:
+ # Code from module windows-mutex-tests:
# Code from module windows-once:
# Code from module windows-recmutex:
+ # Code from module windows-recmutex-tests:
# Code from module windows-rwlock:
# Code from module windows-thread:
+ # Code from module windows-timedmutex:
+ # Code from module windows-timedmutex-tests:
+ # Code from module windows-timedrecmutex:
+ # Code from module windows-timedrecmutex-tests:
+ # Code from module windows-timedrwlock:
# Code from module windows-tls:
# Code from module xalloc:
# Code from module xalloc-die:
# Code from module xalloc-die-tests:
# Code from module xalloc-oversized:
+ # Code from module xconcat-filename:
+ # Code from module xgetcwd-lgpl:
# Code from module xsize:
# Code from module yield:
])
@@ -1433,101 +1492,122 @@ AC_DEFUN([gl_INIT],
gl_ASSERT_H
gl_CONDITIONAL_HEADER([assert.h])
AC_PROG_MKDIR_P
+ gl_C_BOOL
gl___BUILTIN_EXPECT
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([c32isalnum])
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([c32isalpha])
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([c32isblank])
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([c32iscntrl])
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([c32isdigit])
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([c32isgraph])
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([c32islower])
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])
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([c32ispunct])
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([c32isspace])
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([c32isupper])
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([c32isxdigit])
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([c32tolower])
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([c32width])
gl_HEADER_ERRNO_H
gl_CONDITIONAL_HEADER([errno.h])
AC_PROG_MKDIR_P
AC_REQUIRE([gl_EXTERN_INLINE])
+ gl_FCNTL_H
+ gl_FCNTL_H_REQUIRE_DEFAULTS
+ AC_PROG_MKDIR_P
AC_C_FLEXIBLE_ARRAY_MEMBER
gl_FLOAT_H
gl_CONDITIONAL_HEADER([float.h])
AC_PROG_MKDIR_P
- gl_CONDITIONAL([GL_COND_OBJ_FLOAT], [test $REPLACE_FLOAT_LDBL = 1])
+ gl_CONDITIONAL([GL_COND_OBJ_FLOAT],
+ [test $REPLACE_FLOAT_LDBL = 1 || test $REPLACE_FLOAT_SNAN = 1])
gl_CONDITIONAL([GL_COND_OBJ_ITOLD], [test $REPLACE_ITOLD = 1])
+ dnl Prerequisites of lib/float.c.
+ AC_REQUIRE([gl_BIGENDIAN])
gl_FUNC_FREE
gl_CONDITIONAL([GL_COND_OBJ_FREE], [test $REPLACE_FREE = 1])
AM_COND_IF([GL_COND_OBJ_FREE], [
@@ -1546,6 +1626,14 @@ AC_DEFUN([gl_INIT],
gl_MATH_MODULE_INDICATOR([frexpl])
gl_FUNC_FSETERR
gl_CONDITIONAL([GL_COND_OBJ_FSETERR], [test $ac_cv_func___fseterr = no])
+ gl_FUNC_GETLOCALENAME_L_UNSAFE
+ gl_PREREQ_GETLOCALENAME_L_UNSAFE
+ gl_LOCALE_MODULE_INDICATOR([getlocalename_l-unsafe])
+ gl_FUNC_GETLOCALENAME_L_UNSAFE
+ gl_PREREQ_GETLOCALENAME_L_UNSAFE
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ gl_CONDITIONAL([GL_COND_OBJ_GETLOCALENAME_L_UNSAFE_LIMITED],
+ [case "$host_os" in openbsd* | aix* | *-android*) false;; *) true;; esac])
AC_REQUIRE([gl_FUNC_SETLOCALE_NULL])
HARD_LOCALE_LIB="$SETLOCALE_NULL_LIB"
AC_SUBST([HARD_LOCALE_LIB])
@@ -1600,9 +1688,6 @@ AC_DEFUN([gl_INIT],
gl_CONDITIONAL([GL_COND_OBJ_ISWXDIGIT],
[! { test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; } && test $REPLACE_ISWXDIGIT = 1])
gl_WCTYPE_MODULE_INDICATOR([iswxdigit])
- gl_LANGINFO_H
- gl_LANGINFO_H_REQUIRE_DEFAULTS
- AC_PROG_MKDIR_P
gl_LIMITS_H
gl_CONDITIONAL_HEADER([limits.h])
AC_PROG_MKDIR_P
@@ -1613,13 +1698,23 @@ AC_DEFUN([gl_INIT],
gl_LOCALE_H
gl_LOCALE_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
+ gl_FUNC_LOCALECONV
+ gl_CONDITIONAL([GL_COND_OBJ_LOCALECONV], [test $REPLACE_LOCALECONV = 1])
+ AM_COND_IF([GL_COND_OBJ_LOCALECONV], [
+ gl_PREREQ_LOCALECONV
+ ])
+ gl_LOCALE_MODULE_INDICATOR([localeconv])
+ gl_MODULE_INDICATOR([localeconv])
+ gl_LOCALENAME_ENVIRON
+ gl_LOCALE_MODULE_INDICATOR([localename-environ])
gl_LOCALENAME_UNSAFE
gl_LOCALE_MODULE_INDICATOR([localename-unsafe])
gl_MUSL_LIBC
gl_LOCALENAME_UNSAFE_LIMITED
AC_REQUIRE([AC_CANONICAL_HOST])
gl_CONDITIONAL([GL_COND_OBJ_LOCALENAME_UNSAFE_LIMITED],
- [case "$host_os" in netbsd* | solaris*) true;; *) false;; esac])
+ [case "$host_os" in openbsd* | aix* | *-android*) false;; *) true;; esac])
+ gl_MUSL_LIBC
gl_LOCK
gl_MODULE_INDICATOR([lock])
AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
@@ -1676,14 +1771,29 @@ AC_DEFUN([gl_INIT],
])
gl_STRING_MODULE_INDICATOR([memchr])
gl_MINMAX
+ # Conditionally invoke gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
gl_MULTIARCH
+ gl_ONCE
gl_FUNC_PRINTF_FREXP
gl_FUNC_PRINTF_FREXPL
m4_divert_text([INIT_PREPARE], [gl_printf_safe=yes])
+ gl_PTHREAD_H
+ gl_PTHREAD_H_REQUIRE_DEFAULTS
+ AC_PROG_MKDIR_P
+ gl_PTHREAD_ONCE
+ gl_CONDITIONAL([GL_COND_OBJ_PTHREAD_ONCE],
+ [test $HAVE_PTHREAD_ONCE = 0 || test $REPLACE_PTHREAD_ONCE = 1])
+ gl_PTHREAD_MODULE_INDICATOR([pthread-once])
gl_RELOCATABLE_LIBRARY
if test $RELOCATABLE = yes; then
AC_LIBOBJ([relocatable])
fi
+ gl_SCHED_H
+ gl_SCHED_H_REQUIRE_DEFAULTS
+ AC_PROG_MKDIR_P
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ gl_CONDITIONAL([GL_COND_OBJ_SETLOCALE_FIXES],
+ [case "$host_os" in mingw* | windows* | *-android*) true;; *) false;; esac])
gl_FUNC_SETLOCALE_NULL
gl_CONDITIONAL([GL_COND_OBJ_SETLOCALE_LOCK],
[test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0])
@@ -1696,13 +1806,7 @@ AC_DEFUN([gl_INIT],
gl_MATH_MODULE_INDICATOR([signbit])
gl_SIZE_MAX
gt_TYPE_SSIZE_T
- gl_C_BOOL
- AC_CHECK_HEADERS_ONCE([stdckdint.h])
- if test $ac_cv_header_stdckdint_h = yes; then
- GL_GENERATE_STDCKDINT_H=false
- else
- GL_GENERATE_STDCKDINT_H=true
- fi
+ gl_STDCKDINT_H
gl_CONDITIONAL_HEADER([stdckdint.h])
AC_PROG_MKDIR_P
gl_STDDEF_H
@@ -1724,6 +1828,9 @@ AC_DEFUN([gl_INIT],
gl_STRING_H
gl_STRING_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
+ gl_FUNC_STREQ
+ gl_FUNC_MEMEQ
+ gl_STRING_MODULE_INDICATOR([stringeq])
gl_FUNC_STRNCAT
gl_CONDITIONAL([GL_COND_OBJ_STRNCAT], [test $REPLACE_STRNCAT = 1])
AM_COND_IF([GL_COND_OBJ_STRNCAT], [
@@ -1742,8 +1849,57 @@ AC_DEFUN([gl_INIT],
gl_SYS_TYPES_H
gl_SYS_TYPES_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
+ gl_MUSL_LIBC
+ gl_CONDITIONAL([LIBC_IS_GNU],
+ [case "$host_os" in *-gnu* | gnu*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([LIBC_IS_MUSL],
+ [case "$host_os" in *-musl* | midipix*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_MACOS],
+ [case "$host_os" in darwin*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_MACOS11],
+ [case "$host_os" in darwin20.*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_MACOS12],
+ [case "$host_os" in darwin21.*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_MACOS13],
+ [case "$host_os" in darwin22.*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_MACOS14],
+ [case "$host_os" in darwin23.*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_FREEBSD],
+ [case "$host_os" in freebsd* | dragonfly*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_NETBSD],
+ [case "$host_os" in netbsd*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_OPENBSD],
+ [case "$host_os" in openbsd*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_AIX],
+ [case "$host_os" in aix*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_SOLARIS11],
+ [case "$host_os" in solaris2.11*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_CYGWIN],
+ [case "$host_os" in cygwin*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_NATIVE_WINDOWS],
+ [case "$host_os" in mingw* | windows*) true ;; *) false ;; esac])
+ is_mingw=false; is_msvc=false
+ case "$host_os" in
+ windows*-msvc*) is_msvc=true ;;
+ mingw* | windows*)
+ AC_EGREP_CPP([Special], [
+ #ifdef _MSC_VER
+ Special
+ #endif
+ ], [is_msvc=true], [is_mingw=true])
+ ;;
+ esac
+ gl_CONDITIONAL([PLATFORM_IS_MINGW], [$is_mingw])
+ gl_CONDITIONAL([PLATFORM_IS_MSVC], [$is_msvc])
+ gl_CONDITIONAL([OS_IS_HAIKU],
+ [case "$host_os" in haiku*) true ;; *) false ;; esac])
+ gl_CONDITIONAL([OS_IS_ANDROID],
+ [case "$host_os" in linux-androideabi*) true ;; *) false ;; esac])
AC_CHECK_HEADERS([sys/single_threaded.h])
AC_REQUIRE([gl_THREADLIB])
+ gl_TIME_H
+ gl_TIME_H_REQUIRE_DEFAULTS
+ AC_PROG_MKDIR_P
gl_UCHAR_H
gl_UCHAR_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
@@ -1759,66 +1915,66 @@ AC_DEFUN([gl_INIT],
AC_REQUIRE([AC_C_INLINE])
gl_LIBUNISTRING_MODULE([0.9.3], [unicase/locale-language])
AC_PROG_MKDIR_P
- gl_LIBUNISTRING_MODULE([0.9.11], [unicase/tolower])
- gl_LIBUNISTRING_MODULE([0.9.11], [unicase/totitle])
- gl_LIBUNISTRING_MODULE([0.9.11], [unicase/toupper])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-casecmp])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-casecoll])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-casefold])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-casexfrm])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-ct-casefold])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-ct-tolower])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u16-ct-totitle])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-ct-toupper])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u16-is-cased])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-is-casefolded])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-is-lowercase])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u16-is-titlecase])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-is-uppercase])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-prefix-context])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-suffix-context])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-tolower])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u16-totitle])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u16-toupper])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-casecmp])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-casecoll])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-casefold])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-casexfrm])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-ct-casefold])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-ct-tolower])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u32-ct-totitle])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-ct-toupper])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u32-is-cased])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-is-casefolded])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-is-lowercase])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u32-is-titlecase])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-is-uppercase])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-prefix-context])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-suffix-context])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-tolower])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u32-totitle])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u32-toupper])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-casecmp])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-casecoll])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-casefold])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-casexfrm])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-ct-casefold])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-ct-tolower])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u8-ct-totitle])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-ct-toupper])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u8-is-cased])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-is-casefolded])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-is-lowercase])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u8-is-titlecase])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-is-uppercase])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-prefix-context])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-suffix-context])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-tolower])
- gl_LIBUNISTRING_MODULE([1.2], [unicase/u8-totitle])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/u8-toupper])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/ulc-casecmp])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/ulc-casecoll])
- gl_LIBUNISTRING_MODULE([1.1], [unicase/ulc-casexfrm])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/tolower])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/totitle])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/toupper])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-casecmp])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-casecoll])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-casefold])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-casexfrm])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-ct-casefold])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-ct-tolower])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-ct-totitle])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-ct-toupper])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-is-cased])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-is-casefolded])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-is-lowercase])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-is-titlecase])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-is-uppercase])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-prefix-context])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-suffix-context])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-tolower])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-totitle])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u16-toupper])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-casecmp])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-casecoll])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-casefold])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-casexfrm])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-ct-casefold])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-ct-tolower])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-ct-totitle])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-ct-toupper])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-is-cased])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-is-casefolded])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-is-lowercase])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-is-titlecase])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-is-uppercase])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-prefix-context])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-suffix-context])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-tolower])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-totitle])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u32-toupper])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-casecmp])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-casecoll])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-casefold])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-casexfrm])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-ct-casefold])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-ct-tolower])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-ct-totitle])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-ct-toupper])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-is-cased])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-is-casefolded])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-is-lowercase])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-is-titlecase])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-is-uppercase])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-prefix-context])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-suffix-context])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-tolower])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-totitle])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/u8-toupper])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/ulc-casecmp])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/ulc-casecoll])
+ gl_LIBUNISTRING_MODULE([1.4], [unicase/ulc-casexfrm])
gl_LIBUNISTRING_LIBHEADER([0.9.11], [uniconv.h])
AC_PROG_MKDIR_P
AC_REQUIRE([gl_BIGENDIAN])
@@ -1842,601 +1998,604 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE([0.9], [uniconv/u8-strconv-from-locale])
gl_LIBUNISTRING_MODULE([0.9], [uniconv/u8-strconv-to-enc])
gl_LIBUNISTRING_MODULE([0.9], [uniconv/u8-strconv-to-locale])
- gl_LIBUNISTRING_LIBHEADER([1.2], [unictype.h])
+ gl_LIBUNISTRING_LIBHEADER([1.3], [unictype.h])
gl_UNICTYPE_H
gl_UNICTYPE_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/bidiclass-byname])
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/bidiclass-longname])
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/bidiclass-name])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/bidiclass-of])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/bidiclass-test])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/block-list])
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/block-test])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/bidiclass-byname])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/bidiclass-longname])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/bidiclass-name])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/bidiclass-of])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/bidiclass-test])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/block-list])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/block-test])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-C])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-C])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Cc])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Cc])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Cf])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Cf])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-Cn])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Cn])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Co])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Co])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Cs])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Cs])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-L])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-L])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-LC])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-LC])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Ll])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Ll])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Lm])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Lm])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-Lo])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Lo])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Lt])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Lt])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/category-Lu])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Lu])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-M])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-M])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Mc])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Mc])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Me])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Me])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Mn])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Mn])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-N])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-N])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Nd])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Nd])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Nl])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Nl])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-No])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-No])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-P])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-P])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Pc])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Pc])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/category-Pd])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Pd])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/category-Pe])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Pe])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Pf])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Pf])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Pi])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Pi])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Po])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Po])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/category-Ps])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Ps])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-S])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-S])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/category-Sc])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Sc])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/category-Sk])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Sk])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Sm])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Sm])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-So])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-So])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Z])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Z])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Zl])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Zl])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Zp])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Zp])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Zs])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/category-and])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/category-and-not])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/category-byname])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/category-longname])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/category-name])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/category-Zs])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/category-and])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/category-and-not])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/category-byname])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/category-longname])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/category-name])
dnl Since _UC_CATEGORY_NONE is not exported from an installed libunistring,
dnl don't use gl_LIBUNISTRING_MODULE here.
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/category-of])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/category-or])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/category-of])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/category-or])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/category-test])
- gl_LIBUNISTRING_MODULE([1.1], [unictype/combining-class])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/combining-class-byname])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/combining-class-longname])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/combining-class-name])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/category-test])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/combining-class])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/combining-class-byname])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/combining-class-longname])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/combining-class-name])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/ctype-alnum])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-alnum])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/ctype-alpha])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-alpha])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/ctype-blank])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-blank])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/ctype-cntrl])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-cntrl])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/ctype-digit])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-digit])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/ctype-graph])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-graph])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/ctype-lower])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-lower])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/ctype-print])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-print])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/ctype-punct])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-punct])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/ctype-space])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-space])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/ctype-upper])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-upper])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/ctype-xdigit])
- gl_LIBUNISTRING_MODULE([1.1], [unictype/decimal-digit])
- gl_LIBUNISTRING_MODULE([1.1], [unictype/digit])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/incb-byname])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/incb-name])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/incb-of])
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/joininggroup-byname])
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/joininggroup-name])
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/joininggroup-of])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/joiningtype-byname])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/joiningtype-longname])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/joiningtype-name])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/joiningtype-of])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/mirror])
- gl_LIBUNISTRING_MODULE([1.1], [unictype/numeric])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/ctype-xdigit])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/decimal-digit])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/digit])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/incb-byname])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/incb-name])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/incb-of])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/joininggroup-byname])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/joininggroup-name])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/joininggroup-of])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/joiningtype-byname])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/joiningtype-longname])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/joiningtype-name])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/joiningtype-of])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/mirror])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/numeric])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-alphabetic])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-alphabetic])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-ascii-hex-digit])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-ascii-hex-digit])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-arabic-digit])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-arabic-digit])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-arabic-right-to-left])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-arabic-right-to-left])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-block-separator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-block-separator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-boundary-neutral])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-boundary-neutral])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-common-separator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-common-separator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-control])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-control])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-embedding-or-override])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-embedding-or-override])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-eur-num-separator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-eur-num-separator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-eur-num-terminator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-eur-num-terminator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-european-digit])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-european-digit])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-hebrew-right-to-left])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-hebrew-right-to-left])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-left-to-right])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-left-to-right])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-non-spacing-mark])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-non-spacing-mark])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-other-neutral])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-other-neutral])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-pdf])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-pdf])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-segment-separator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-segment-separator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-bidi-whitespace])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/property-byname])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-bidi-whitespace])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/property-byname])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-case-ignorable])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-case-ignorable])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-cased])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-cased])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-changes-when-casefolded])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-changes-when-casefolded])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-changes-when-casemapped])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-changes-when-casemapped])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-changes-when-lowercased])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-changes-when-lowercased])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-changes-when-titlecased])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-changes-when-titlecased])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-changes-when-uppercased])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-changes-when-uppercased])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-combining])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-combining])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-composite])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-composite])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-currency-symbol])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-currency-symbol])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-dash])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-dash])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-decimal-digit])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-decimal-digit])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-default-ignorable-code-point])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-default-ignorable-code-point])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-deprecated])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-deprecated])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-diacritic])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-diacritic])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-emoji])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-emoji])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-emoji-component])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-emoji-component])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-emoji-modifier])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-emoji-modifier])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-emoji-modifier-base])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-emoji-modifier-base])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-emoji-presentation])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-emoji-presentation])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-extended-pictographic])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-extended-pictographic])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-extender])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-extender])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-format-control])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-format-control])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-grapheme-base])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-grapheme-base])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-grapheme-extend])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-grapheme-extend])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-grapheme-link])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-grapheme-link])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-hex-digit])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-hex-digit])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-hyphen])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-hyphen])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-id-compat-math-continue])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-id-compat-math-continue])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-id-compat-math-start])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-id-compat-math-start])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-id-continue])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-id-continue])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-id-start])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-id-start])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-ideographic])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-ideographic])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-ids-binary-operator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-ids-binary-operator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-ids-trinary-operator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-ids-trinary-operator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-ids-unary-operator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-ids-unary-operator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-ignorable-control])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-ignorable-control])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-iso-control])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-iso-control])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-join-control])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-join-control])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-left-of-pair])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-left-of-pair])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-line-separator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-line-separator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-logical-order-exception])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-logical-order-exception])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-lowercase])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-lowercase])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-math])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-math])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-non-break])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-modifier-combining-mark])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-not-a-character])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-non-break])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-numeric])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-not-a-character])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-other-alphabetic])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-numeric])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-other-default-ignorable-code-point])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-other-alphabetic])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-other-grapheme-extend])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-other-default-ignorable-code-point])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-other-id-continue])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-other-grapheme-extend])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-other-id-start])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-other-id-continue])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-other-lowercase])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-other-id-start])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-other-math])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-other-lowercase])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-other-uppercase])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-other-math])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-paired-punctuation])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-other-uppercase])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-paragraph-separator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-paired-punctuation])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-pattern-syntax])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-paragraph-separator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-pattern-white-space])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-pattern-syntax])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-prepended-concatenation-mark])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-pattern-white-space])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-private-use])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-prepended-concatenation-mark])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-punctuation])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-private-use])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-quotation-mark])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-punctuation])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-radical])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-quotation-mark])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-regional-indicator])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-radical])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-sentence-terminal])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-regional-indicator])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-soft-dotted])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-sentence-terminal])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-space])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-soft-dotted])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-terminal-punctuation])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/property-test])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-space])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-titlecase])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-terminal-punctuation])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/property-test])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-unassigned-code-value])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-titlecase])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-unified-ideograph])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-unassigned-code-value])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-uppercase])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-unified-ideograph])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-variation-selector])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-uppercase])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-white-space])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-variation-selector])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-xid-continue])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-white-space])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-xid-start])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-xid-continue])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-zero-width])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/scripts])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-xid-start])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/syntax-c-ident])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/syntax-c-whitespace])
+ gl_UNICTYPE_H_REQUIRE_DEFAULTS
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unictype/property-zero-width])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/scripts])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/syntax-java-ident])
- gl_LIBUNISTRING_MODULE([0.9.8], [unictype/syntax-java-whitespace])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/syntax-c-ident])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/syntax-c-whitespace])
+ AC_REQUIRE([AC_C_INLINE])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/syntax-java-ident])
+ gl_LIBUNISTRING_MODULE([1.4], [unictype/syntax-java-whitespace])
gl_LIBUNISTRING_LIBHEADER([1.2], [unigbrk.h])
AC_PROG_MKDIR_P
gl_MODULE_INDICATOR([unigbrk/u16-grapheme-breaks])
- gl_LIBUNISTRING_MODULE([1.2], [unigbrk/u16-grapheme-breaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/u16-grapheme-breaks])
gl_MODULE_INDICATOR([unigbrk/u16-grapheme-next])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u16-grapheme-next])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/u16-grapheme-next])
gl_MODULE_INDICATOR([unigbrk/u16-grapheme-prev])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u16-grapheme-prev])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/u16-grapheme-prev])
gl_MODULE_INDICATOR([unigbrk/u32-grapheme-breaks])
- gl_LIBUNISTRING_MODULE([1.2], [unigbrk/u32-grapheme-breaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/u32-grapheme-breaks])
gl_MODULE_INDICATOR([unigbrk/u32-grapheme-next])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u32-grapheme-next])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/u32-grapheme-next])
gl_MODULE_INDICATOR([unigbrk/u32-grapheme-prev])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u32-grapheme-prev])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/u32-grapheme-prev])
gl_MODULE_INDICATOR([unigbrk/u8-grapheme-breaks])
- gl_LIBUNISTRING_MODULE([1.2], [unigbrk/u8-grapheme-breaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/u8-grapheme-breaks])
gl_MODULE_INDICATOR([unigbrk/u8-grapheme-next])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u8-grapheme-next])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/u8-grapheme-next])
gl_MODULE_INDICATOR([unigbrk/u8-grapheme-prev])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u8-grapheme-prev])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/uc-gbrk-prop])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/u8-grapheme-prev])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/uc-gbrk-prop])
gl_MODULE_INDICATOR([unigbrk/uc-grapheme-breaks])
- gl_LIBUNISTRING_MODULE([1.2], [unigbrk/uc-grapheme-breaks])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/uc-is-grapheme-break])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/uc-grapheme-breaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/uc-is-grapheme-break])
gl_MODULE_INDICATOR([unigbrk/ulc-grapheme-breaks])
- gl_LIBUNISTRING_MODULE([1.2], [unigbrk/ulc-grapheme-breaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unigbrk/ulc-grapheme-breaks])
gl_LIBUNISTRING_LIBHEADER([0.9.11], [unilbrk.h])
AC_PROG_MKDIR_P
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unilbrk/u16-possible-linebreaks])
- gl_LIBUNISTRING_MODULE([1.2], [unilbrk/u16-width-linebreaks])
- gl_LIBUNISTRING_MODULE([1.2], [unilbrk/u32-possible-linebreaks])
- gl_LIBUNISTRING_MODULE([1.2], [unilbrk/u32-width-linebreaks])
- gl_LIBUNISTRING_MODULE([1.2], [unilbrk/u8-possible-linebreaks])
- gl_LIBUNISTRING_MODULE([1.2], [unilbrk/u8-width-linebreaks])
- gl_LIBUNISTRING_MODULE([1.2], [unilbrk/ulc-possible-linebreaks])
- gl_LIBUNISTRING_MODULE([1.2], [unilbrk/ulc-width-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unilbrk/u16-possible-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unilbrk/u16-width-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unilbrk/u32-possible-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unilbrk/u32-width-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unilbrk/u8-possible-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unilbrk/u8-width-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unilbrk/ulc-possible-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [unilbrk/ulc-width-linebreaks])
gl_LIBUNISTRING_LIBHEADER([1.2], [unimetadata.h])
gl_UNIMETADATA_H
gl_UNIMETADATA_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
gl_UNIMETADATA_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unimetadata/u-version])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [unimetadata/u-version])
gl_LIBUNISTRING_LIBHEADER([0.9.5], [uniname.h])
AC_PROG_MKDIR_P
- gl_LIBUNISTRING_MODULE([1.2], [uniname/uniname])
+ gl_LIBUNISTRING_MODULE([1.4], [uniname/uniname])
gl_LIBUNISTRING_LIBHEADER([1.2], [uninorm.h])
gl_UNINORM_H
gl_UNINORM_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/canonical-decomposition])
- gl_LIBUNISTRING_MODULE([0.9.11], [uninorm/composition])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/canonical-decomposition])
+ gl_LIBUNISTRING_MODULE([1.3], [uninorm/composition])
gl_LIBUNISTRING_MODULE([0.9.11], [uninorm/decomposing-form])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/decomposition])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/decomposition])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/filter])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/filter])
gl_UNINORM_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [uninorm/nfc])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [uninorm/nfc])
gl_UNINORM_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [uninorm/nfd])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [uninorm/nfd])
gl_UNINORM_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [uninorm/nfkc])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [uninorm/nfkc])
gl_UNINORM_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [uninorm/nfkd])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.4], [uninorm/nfkd])
gl_MODULE_INDICATOR_FOR_TESTS([uninorm/u16-normalize])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u16-normalize])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u16-normcmp])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u16-normcoll])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u16-normxfrm])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u16-normalize])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u16-normcmp])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u16-normcoll])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u16-normxfrm])
gl_MODULE_INDICATOR_FOR_TESTS([uninorm/u32-normalize])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u32-normalize])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u32-normcmp])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u32-normcoll])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u32-normxfrm])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u32-normalize])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u32-normcmp])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u32-normcoll])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u32-normxfrm])
gl_MODULE_INDICATOR_FOR_TESTS([uninorm/u8-normalize])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u8-normalize])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u8-normcmp])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u8-normcoll])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/u8-normxfrm])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u8-normalize])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u8-normcmp])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u8-normcoll])
+ gl_LIBUNISTRING_MODULE([1.4], [uninorm/u8-normxfrm])
gl_UNISTD_H
gl_UNISTD_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
gl_LIBUNISTRING_LIBHEADER([0.9.11], [unistdio.h])
AC_PROG_MKDIR_P
gl_PREREQ_PRINTF_ARGS
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-asnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-asprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-asnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-asprintf])
gl_PREREQ_PRINTF_PARSE
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-snprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-sprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-u16-asnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-u16-asprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-u16-snprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-u16-sprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-snprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-sprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-u16-asnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-u16-asprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-u16-snprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-u16-sprintf])
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-u16-vasnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-u16-vasprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-u16-vsnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-u16-vsprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-u16-vasnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-u16-vasprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-u16-vsnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-u16-vsprintf])
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-vasnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-vasprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-vsnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u16-vsprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-asnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-asprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-vasnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-vasprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-vsnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u16-vsprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-asnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-asprintf])
gl_PREREQ_PRINTF_PARSE
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-snprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-sprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-u32-asnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-u32-asprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-u32-snprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-u32-sprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-snprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-sprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-u32-asnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-u32-asprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-u32-snprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-u32-sprintf])
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-u32-vasnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-u32-vasprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-u32-vsnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-u32-vsprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-u32-vasnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-u32-vasprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-u32-vsnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-u32-vsprintf])
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-vasnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-vasprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-vsnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u32-vsprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-asnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-asprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-vasnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-vasprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-vsnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u32-vsprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-asnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-asprintf])
gl_PREREQ_PRINTF_PARSE
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-snprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-sprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-u8-asnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-u8-asprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-u8-snprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-u8-sprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-snprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-sprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-u8-asnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-u8-asprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-u8-snprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-u8-sprintf])
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-u8-vasnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-u8-vasprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-u8-vsnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-u8-vsprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-u8-vasnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-u8-vasprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-u8-vsnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-u8-vsprintf])
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-vasnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-vasprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-vsnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/u8-vsprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/ulc-asnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/ulc-asprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/ulc-fprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-vasnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-vasprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-vsnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.2]), [unistdio/u8-vsprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.4]), [unistdio/ulc-asnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.4]), [unistdio/ulc-asprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.4]), [unistdio/ulc-fprintf])
gl_PREREQ_PRINTF_PARSE
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/ulc-snprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/ulc-sprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.4]), [unistdio/ulc-snprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.4]), [unistdio/ulc-sprintf])
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/ulc-vasnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/ulc-vasprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/ulc-vfprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/ulc-vsnprintf])
- gl_LIBUNISTRING_MODULE([1.2], [unistdio/ulc-vsprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.4]), [unistdio/ulc-vasnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.4]), [unistdio/ulc-vasprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.4]), [unistdio/ulc-vfprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.4]), [unistdio/ulc-vsnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.4]), [unistdio/ulc-vsprintf])
gl_LIBUNISTRING_LIBHEADER([1.2], [unistr.h])
AC_PROG_MKDIR_P
gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-check])
@@ -2581,37 +2740,23 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-uctomb])
gl_LIBUNISTRING_LIBHEADER([0.9.11], [unitypes.h])
AC_PROG_MKDIR_P
- AH_VERBATIM([unitypes_restrict], [
- /* This definition is a duplicate of the one in unitypes.h.
- It is here so that we can cope with an older version of unitypes.h
- that does not contain this definition and that is pre-installed among
- the public header files. */
- # if defined __restrict \
- || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \
- || __clang_major__ >= 3
- # define _UC_RESTRICT __restrict
- # elif 199901L <= __STDC_VERSION__ || defined restrict
- # define _UC_RESTRICT restrict
- # else
- # define _UC_RESTRICT
- # endif
- ])
+ gl_UNITYPES_H
gl_LIBUNISTRING_LIBHEADER([0.9.11], [uniwbrk.h])
AC_PROG_MKDIR_P
- gl_LIBUNISTRING_MODULE([1.2], [uniwbrk/u16-wordbreaks])
- gl_LIBUNISTRING_MODULE([1.2], [uniwbrk/u32-wordbreaks])
- gl_LIBUNISTRING_MODULE([1.2], [uniwbrk/u8-wordbreaks])
- gl_LIBUNISTRING_MODULE([1.2], [uniwbrk/ulc-wordbreaks])
- gl_LIBUNISTRING_MODULE([1.2], [uniwbrk/wordbreak-property])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwbrk/u16-wordbreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwbrk/u32-wordbreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwbrk/u8-wordbreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwbrk/ulc-wordbreaks])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwbrk/wordbreak-property])
gl_LIBUNISTRING_LIBHEADER([0.9.11], [uniwidth.h])
AC_PROG_MKDIR_P
- gl_LIBUNISTRING_MODULE([1.2], [uniwidth/u16-strwidth])
- gl_LIBUNISTRING_MODULE([1.2], [uniwidth/u16-width])
- gl_LIBUNISTRING_MODULE([1.2], [uniwidth/u32-strwidth])
- gl_LIBUNISTRING_MODULE([1.2], [uniwidth/u32-width])
- gl_LIBUNISTRING_MODULE([1.2], [uniwidth/u8-strwidth])
- gl_LIBUNISTRING_MODULE([1.2], [uniwidth/u8-width])
- gl_LIBUNISTRING_MODULE([1.2], [uniwidth/width])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwidth/u16-strwidth])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwidth/u16-width])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwidth/u32-strwidth])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwidth/u32-width])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwidth/u8-strwidth])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwidth/u8-width])
+ gl_LIBUNISTRING_MODULE([1.4], [uniwidth/width])
gl_WCHAR_H
gl_WCHAR_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
@@ -2661,27 +2806,35 @@ AC_DEFUN([gl_INIT],
gl_libobjs=
gl_ltlibobjs=
gl_libobjdeps=
+ gl_libunistring_libobjs=
+ gl_libunistring_ltlibobjs=
+ gl_libunistring_libobjdeps=
if test -n "$gl_LIBOBJS"; then
# Remove the extension.
changequote(,)dnl
sed_drop_objext='s/\.o$//;s/\.obj$//'
sed_dirname1='s,//*,/,g'
sed_dirname2='s,\(.\)/$,\1,'
- sed_dirname3='s,^[^/]*$,.,'
- sed_dirname4='s,\(.\)/[^/]*$,\1,'
+ sed_dirname3='s,[^/]*$,,'
sed_basename1='s,.*/,,'
changequote([, ])dnl
for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
gl_libobjs="$gl_libobjs $i.$ac_objext"
gl_ltlibobjs="$gl_ltlibobjs $i.lo"
- i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"`
+ i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3"`
i_base=`echo "$i" | sed -e "$sed_basename1"`
- gl_libobjdeps="$gl_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Plo"
+ gl_libunistring_libobjs="$gl_libunistring_libobjs $i_dir""libunistring_a-$i_base.$ac_objext"
+ gl_libunistring_ltlibobjs="$gl_libunistring_ltlibobjs $i_dir""libunistring_la-$i_base.lo"
+ gl_libobjdeps="$gl_libobjdeps $i_dir\$(DEPDIR)/$i_base.Plo"
+ gl_libunistring_libobjdeps="$gl_libunistring_libobjdeps $i_dir\$(DEPDIR)/libunistring_la-$i_base.Plo"
done
fi
AC_SUBST([gl_LIBOBJS], [$gl_libobjs])
AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs])
AC_SUBST([gl_LIBOBJDEPS], [$gl_libobjdeps])
+ AC_SUBST([gl_libunistring_LIBOBJS], [$gl_libunistring_libobjs])
+ AC_SUBST([gl_libunistring_LTLIBOBJS], [$gl_libunistring_ltlibobjs])
+ AC_SUBST([gl_libunistring_LIBOBJDEPS], [$gl_libunistring_libobjdeps])
])
gltests_libdeps=
gltests_ltlibdeps=
@@ -2706,6 +2859,7 @@ changequote([, ])dnl
AC_REQUIRE([gl_SYS_SOCKET_H])
gl_CONDITIONAL([GL_COND_OBJ_ACCEPT], [test "$ac_cv_header_winsock2_h" = yes])
gl_SYS_SOCKET_MODULE_INDICATOR([accept])
+ gl_MODULE_INDICATOR([accept])
gl_ALIGNASOF
gl_ARPA_INET_H
gl_ARPA_INET_H_REQUIRE_DEFAULTS
@@ -2713,7 +2867,9 @@ changequote([, ])dnl
AC_REQUIRE([gl_SYS_SOCKET_H])
gl_CONDITIONAL([GL_COND_OBJ_BIND], [test "$ac_cv_header_winsock2_h" = yes])
gl_SYS_SOCKET_MODULE_INDICATOR([bind])
+ gl_MODULE_INDICATOR([bind])
gl_UCHAR_MODULE_INDICATOR([btoc32])
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gl_FUNC_BTOWC
@@ -2723,59 +2879,72 @@ changequote([, ])dnl
gl_PREREQ_BTOWC
])
gl_WCHAR_MODULE_INDICATOR([btowc])
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_FR
gt_LOCALE_TR_UTF8
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
gl_MUSL_LIBC
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
gl_MUSL_LIBC
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
gl_MUSL_LIBC
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
gl_MUSL_LIBC
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
gl_MUSL_LIBC
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
@@ -2784,12 +2953,15 @@ changequote([, ])dnl
gl_CONDITIONAL([GL_COND_OBJ_C32RTOMB],
[test $HAVE_C32RTOMB = 0 || test $REPLACE_C32RTOMB = 1])
gl_UCHAR_MODULE_INDICATOR([c32rtomb])
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
AC_REQUIRE([gl_MBRTOC32_SANITYCHECK])
+ AC_REQUIRE([gl_C32RTOMB_SANITYCHECK])
gl_UCHAR_MODULE_INDICATOR([c32tob])
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
@@ -2808,9 +2980,11 @@ changequote([, ])dnl
gl_FUNC_CLOSE
gl_CONDITIONAL([GL_COND_OBJ_CLOSE], [test $REPLACE_CLOSE = 1])
gl_UNISTD_MODULE_INDICATOR([close])
+ gl_MODULE_INDICATOR([close])
AC_REQUIRE([gl_SYS_SOCKET_H])
gl_CONDITIONAL([GL_COND_OBJ_CONNECT], [test "$ac_cv_header_winsock2_h" = yes])
gl_SYS_SOCKET_MODULE_INDICATOR([connect])
+ gl_MODULE_INDICATOR([connect])
gl_CTYPE_H
gl_CTYPE_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
@@ -2838,9 +3012,6 @@ changequote([, ])dnl
gl_CONDITIONAL([GL_COND_OBJ_FCNTL],
[test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1])
gl_FCNTL_MODULE_INDICATOR([fcntl])
- gl_FCNTL_H
- gl_FCNTL_H_REQUIRE_DEFAULTS
- AC_PROG_MKDIR_P
gl_FUNC_FDOPEN
gl_CONDITIONAL([GL_COND_OBJ_FDOPEN], [test $REPLACE_FDOPEN = 1])
AM_COND_IF([GL_COND_OBJ_FDOPEN], [
@@ -2858,6 +3029,7 @@ changequote([, ])dnl
gl_PREREQ_FSTAT
])
gl_SYS_STAT_MODULE_INDICATOR([fstat])
+ gl_MODULE_INDICATOR([fstat])
gl_FUNC_FTRUNCATE
gl_CONDITIONAL([GL_COND_OBJ_FTRUNCATE],
[test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1])
@@ -2875,9 +3047,7 @@ changequote([, ])dnl
gl_PREREQ_GETDTABLESIZE
])
gl_UNISTD_MODULE_INDICATOR([getdtablesize])
- gl_FUNC_GETPAGESIZE
- gl_CONDITIONAL([GL_COND_OBJ_GETPAGESIZE], [test $REPLACE_GETPAGESIZE = 1])
- gl_UNISTD_MODULE_INDICATOR([getpagesize])
+ AC_REQUIRE([AC_CANONICAL_HOST])
gl_FUNC_GETPROGNAME
gl_CONDITIONAL([GL_COND_OBJ_GETPROGNAME],
[test $HAVE_GETPROGNAME = 0 || test $REPLACE_GETPROGNAME = 1])
@@ -2885,8 +3055,7 @@ changequote([, ])dnl
gl_PREREQ_GETPROGNAME
])
gl_STDLIB_MODULE_INDICATOR([getprogname])
- AC_SUBST([LIBINTL])
- AC_SUBST([LTLIBINTL])
+ gl_GETTEXT_H
gl_FUNC_GETTIMEOFDAY
gl_CONDITIONAL([GL_COND_OBJ_GETTIMEOFDAY],
[test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1])
@@ -2894,6 +3063,7 @@ changequote([, ])dnl
gl_PREREQ_GETTIMEOFDAY
])
gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
+ GNULIB_I18N
gl_MUSL_LIBC
dnl Distinguish OpenBSD >= 6.2 from OpenBSD < 6.2.
gl_CHECK_FUNCS_ANDROID([duplocale], [[#include <locale.h>]])
@@ -2910,15 +3080,18 @@ changequote([, ])dnl
gl_CONDITIONAL([GL_COND_OBJ_IOCTL],
[test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1])
gl_SYS_IOCTL_MODULE_INDICATOR([ioctl])
+ gl_MODULE_INDICATOR([ioctl])
gl_FUNC_ISBLANK
gl_CONDITIONAL([GL_COND_OBJ_ISBLANK], [test $HAVE_ISBLANK = 0])
gl_MODULE_INDICATOR([isblank])
gl_CTYPE_MODULE_INDICATOR([isblank])
AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
@@ -2928,9 +3101,12 @@ changequote([, ])dnl
AC_REQUIRE([gl_SYS_SOCKET_H])
gl_CONDITIONAL([GL_COND_OBJ_LISTEN], [test "$ac_cv_header_winsock2_h" = yes])
gl_SYS_SOCKET_MODULE_INDICATOR([listen])
+ gl_MODULE_INDICATOR([listen])
+ gl_WINDOWS_RC
gl_CHECK_FUNCS_ANDROID([newlocale], [[#include <locale.h>]])
gl_CHECK_FUNCS_ANDROID([newlocale], [[#include <locale.h>]])
gl_MUSL_LIBC
+ gl_WINDOWS_RC
AC_CHECK_HEADERS_ONCE([semaphore.h])
AC_CHECK_DECLS_ONCE([alarm])
AC_REQUIRE([gl_SEMAPHORE])
@@ -2940,19 +3116,26 @@ changequote([, ])dnl
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])
fi
gl_STDLIB_MODULE_INDICATOR([malloc-gnu])
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
+ gl_WINDOWS_RC
+ gt_LOCALE_EN_UTF8
+ gt_LOCALE_FR_UTF8
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR_UTF8
gl_FUNC_MBTOWC
gl_CONDITIONAL([GL_COND_OBJ_MBTOWC],
@@ -2965,6 +3148,10 @@ changequote([, ])dnl
gl_FUNC_MMAP_ANON
AC_CHECK_HEADERS_ONCE([sys/mman.h])
AC_CHECK_FUNCS_ONCE([mprotect])
+ gl_FUNC_MKFIFO
+ gl_CONDITIONAL([GL_COND_OBJ_MKFIFO],
+ [test $HAVE_MKFIFO = 0 || test $REPLACE_MKFIFO = 1])
+ gl_UNISTD_MODULE_INDICATOR([mkfifo])
AC_REQUIRE([gl_MSVC_INVAL])
gl_CONDITIONAL([GL_COND_OBJ_MSVC_INVAL],
[test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1])
@@ -2986,6 +3173,7 @@ changequote([, ])dnl
gl_PREREQ_OPEN
])
gl_FCNTL_MODULE_INDICATOR([open])
+ AC_CHECK_DECLS_ONCE([alarm])
gl_PATHMAX
gl_FUNC_PERROR
gl_CONDITIONAL([GL_COND_OBJ_PERROR], [test $REPLACE_PERROR = 1])
@@ -2998,13 +3186,34 @@ changequote([, ])dnl
[test $HAVE_PSELECT = 0 || test $REPLACE_PSELECT = 1])
gl_SYS_SELECT_MODULE_INDICATOR([pselect])
AC_CHECK_HEADERS_ONCE([sys/wait.h])
- gl_PTHREAD_H
- gl_PTHREAD_H_REQUIRE_DEFAULTS
- AC_PROG_MKDIR_P
+ gl_PTHREAD_COND
+ gl_CONDITIONAL([GL_COND_OBJ_PTHREAD_COND],
+ [test $HAVE_PTHREAD_COND_INIT = 0 || test $REPLACE_PTHREAD_COND_INIT = 1])
+ gl_PTHREAD_MODULE_INDICATOR([pthread-cond])
+ AC_CHECK_DECLS_ONCE([alarm])
+ gl_PTHREAD_MUTEX
+ gl_CONDITIONAL([GL_COND_OBJ_PTHREAD_MUTEX],
+ [test $HAVE_PTHREAD_MUTEX_INIT = 0 || test $REPLACE_PTHREAD_MUTEX_INIT = 1 || test $HAVE_PTHREAD_MUTEXATTR_GETROBUST = 0 || test $REPLACE_PTHREAD_MUTEXATTR_GETROBUST = 1])
+ gl_PTHREAD_MODULE_INDICATOR([pthread-mutex])
+ AC_CHECK_HEADERS_ONCE([semaphore.h])
+ AC_CHECK_DECLS_ONCE([alarm])
+ AC_REQUIRE([gl_SEMAPHORE])
+ AC_CHECK_DECLS_ONCE([alarm])
+ gl_PTHREAD_RWLOCK
+ gl_CONDITIONAL([GL_COND_OBJ_PTHREAD_RWLOCK],
+ [test $REPLACE_PTHREAD_RWLOCK_INIT = 1 || test $HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK = 0 || test $REPLACE_PTHREAD_RWLOCK_TIMEDRDLOCK = 1])
+ gl_PTHREAD_MODULE_INDICATOR([pthread-rwlock])
+ AC_CHECK_HEADERS_ONCE([semaphore.h])
+ AC_CHECK_DECLS_ONCE([alarm])
+ AC_REQUIRE([gl_SEMAPHORE])
gl_PTHREAD_THREAD
gl_CONDITIONAL([GL_COND_OBJ_PTHREAD_THREAD],
[test $HAVE_PTHREAD_CREATE = 0 || test $REPLACE_PTHREAD_CREATE = 1])
gl_PTHREAD_MODULE_INDICATOR([pthread-thread])
+ gl_FUNC_PTHREAD_MUTEX_TIMEDLOCK
+ gl_CONDITIONAL([GL_COND_OBJ_PTHREAD_MUTEX_TIMEDLOCK],
+ [test $HAVE_PTHREAD_T = 1 && test $HAVE_PTHREAD_MUTEX_TIMEDLOCK = 0])
+ gl_PTHREAD_MODULE_INDICATOR([pthread_mutex_timedlock])
gl_FUNC_PTHREAD_SIGMASK
gl_CONDITIONAL([GL_COND_OBJ_PTHREAD_SIGMASK],
[test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1])
@@ -3039,15 +3248,10 @@ changequote([, ])dnl
gl_PREREQ_RANDOM_R
])
gl_STDLIB_MODULE_INDICATOR([random_r])
- gl_FUNC_REALLOC_GNU
- if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then
- AC_LIBOBJ([realloc])
- fi
- gl_STDLIB_MODULE_INDICATOR([realloc-gnu])
gl_FUNC_REALLOC_POSIX
- if test $REPLACE_REALLOC_FOR_REALLOC_POSIX = 1; then
- AC_LIBOBJ([realloc])
- fi
+ gl_FUNC_REALLOC_0_NONNULL
+ gl_CONDITIONAL([GL_COND_OBJ_REALLOC_POSIX],
+ [test $REPLACE_REALLOC_FOR_REALLOC_POSIX != 0])
gl_STDLIB_MODULE_INDICATOR([realloc-posix])
gl_FUNC_REALLOCARRAY
gl_CONDITIONAL([GL_COND_OBJ_REALLOCARRAY],
@@ -3057,9 +3261,6 @@ changequote([, ])dnl
])
gl_MODULE_INDICATOR([reallocarray])
gl_STDLIB_MODULE_INDICATOR([reallocarray])
- gl_SCHED_H
- gl_SCHED_H_REQUIRE_DEFAULTS
- AC_PROG_MKDIR_P
gl_FUNC_SCHED_YIELD
gl_CONDITIONAL([GL_COND_OBJ_SCHED_YIELD],
[test $HAVE_SCHED_YIELD = 0 || test $REPLACE_SCHED_YIELD = 1])
@@ -3067,6 +3268,7 @@ changequote([, ])dnl
gl_FUNC_SELECT
gl_CONDITIONAL([GL_COND_OBJ_SELECT], [test $REPLACE_SELECT = 1])
gl_SYS_SELECT_MODULE_INDICATOR([select])
+ gl_MODULE_INDICATOR([select])
AC_CHECK_HEADERS_ONCE([sys/wait.h])
gl_FUNC_SETENV
gl_CONDITIONAL([GL_COND_OBJ_SETENV],
@@ -3082,10 +3284,12 @@ changequote([, ])dnl
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
gt_LOCALE_ZH_CN
+ gl_WINDOWS_RC
AC_REQUIRE([gl_SYS_SOCKET_H])
gl_CONDITIONAL([GL_COND_OBJ_SETSOCKOPT],
[test "$ac_cv_header_winsock2_h" = yes])
gl_SYS_SOCKET_MODULE_INDICATOR([setsockopt])
+ gl_MODULE_INDICATOR([setsockopt])
gl_SIGNAL_H
gl_SIGNAL_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
@@ -3114,6 +3318,7 @@ changequote([, ])dnl
SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
fi
gl_SYS_SOCKET_MODULE_INDICATOR([socket])
+ gl_MODULE_INDICATOR([socket])
AC_REQUIRE([gl_SOCKETLIB])
AC_REQUIRE([gl_SOCKETS])
gl_TYPE_SOCKLEN_T
@@ -3128,13 +3333,25 @@ changequote([, ])dnl
gl_PREREQ_STAT
])
gl_SYS_STAT_MODULE_INDICATOR([stat])
+ gl_MODULE_INDICATOR([stat])
gl_STAT_TIME
gl_STAT_BIRTHTIME
- AC_REQUIRE([gt_TYPE_WCHAR_T])
AC_REQUIRE([gt_TYPE_WINT_T])
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
@@ -3161,6 +3378,15 @@ changequote([, ])dnl
gl_STDIO_MODULE_INDICATOR([puts])
gl_STDIO_MODULE_INDICATOR([fwrite])
gl_DOUBLE_EXPONENT_LOCATION
+ gl_FUNC_STPCPY
+ gl_CONDITIONAL([GL_COND_OBJ_STPCPY],
+ [test $HAVE_STPCPY = 0 || test $REPLACE_STPCPY = 1])
+ AM_COND_IF([GL_COND_OBJ_STPCPY], [
+ gl_PREREQ_STPCPY
+ ])
+ gl_STRING_MODULE_INDICATOR([stpcpy])
+ gl_STRING_MODULE_INDICATOR([str_endswith])
+ gl_STRING_MODULE_INDICATOR([str_startswith])
gl_FUNC_STRERROR
gl_CONDITIONAL([GL_COND_OBJ_STRERROR], [test $REPLACE_STRERROR = 1])
gl_MODULE_INDICATOR([strerror])
@@ -3201,6 +3427,8 @@ changequote([, ])dnl
gl_SYS_SOCKET_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
AC_CHECK_FUNCS_ONCE([shutdown])
+ gl_SOCKET_FAMILIES
+ gl_SOCKET_FAMILY_UNIX
gl_SYS_STAT_H
gl_SYS_STAT_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
@@ -3217,9 +3445,6 @@ changequote([, ])dnl
gl_PREREQ_TIME
])
gl_TIME_MODULE_INDICATOR([time])
- gl_TIME_H
- gl_TIME_H_REQUIRE_DEFAULTS
- AC_PROG_MKDIR_P
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
@@ -3328,6 +3553,7 @@ changequote([, ])dnl
gl_PREREQ_WCRTOMB
])
gl_WCHAR_MODULE_INDICATOR([wcrtomb])
+ gt_LOCALE_EN_UTF8
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_JA
@@ -3346,14 +3572,27 @@ changequote([, ])dnl
])
gl_STDLIB_MODULE_INDICATOR([wctomb])
AC_REQUIRE([AC_CANONICAL_HOST])
+ gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_COND],
+ [case "$host_os" in mingw* | windows*) true;; *) false;; esac])
+ AC_REQUIRE([AC_CANONICAL_HOST])
gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_THREAD],
[case "$host_os" in mingw* | windows*) true;; *) false;; esac])
AC_REQUIRE([AC_CANONICAL_HOST])
+ gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_TIMEDMUTEX],
+ [case "$host_os" in mingw* | windows*) true;; *) false;; esac])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_TIMEDRECMUTEX],
+ [case "$host_os" in mingw* | windows*) true;; *) false;; esac])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_TIMEDRWLOCK],
+ [case "$host_os" in mingw* | windows*) true;; *) false;; esac])
+ AC_REQUIRE([AC_CANONICAL_HOST])
gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_TLS],
[case "$host_os" in mingw* | windows*) true;; *) false;; esac])
gl_XALLOC
gl_MODULE_INDICATOR([xalloc])
gl_MODULE_INDICATOR([xalloc-die])
+ gl_XGETCWD
AC_REQUIRE([gl_YIELD])
m4_popdef([gl_MODULE_INDICATOR_CONDITION])
m4_ifval(gltests_LIBSOURCES_LIST, [
@@ -3378,27 +3617,35 @@ changequote([, ])dnl
gltests_libobjs=
gltests_ltlibobjs=
gltests_libobjdeps=
+ gltests_libunistring_libobjs=
+ gltests_libunistring_ltlibobjs=
+ gltests_libunistring_libobjdeps=
if test -n "$gltests_LIBOBJS"; then
# Remove the extension.
changequote(,)dnl
sed_drop_objext='s/\.o$//;s/\.obj$//'
sed_dirname1='s,//*,/,g'
sed_dirname2='s,\(.\)/$,\1,'
- sed_dirname3='s,^[^/]*$,.,'
- sed_dirname4='s,\(.\)/[^/]*$,\1,'
+ sed_dirname3='s,[^/]*$,,'
sed_basename1='s,.*/,,'
changequote([, ])dnl
for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
gltests_libobjs="$gltests_libobjs $i.$ac_objext"
gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
- i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"`
+ i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3"`
i_base=`echo "$i" | sed -e "$sed_basename1"`
- gltests_libobjdeps="$gltests_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Plo"
+ gltests_libunistring_libobjs="$gltests_libunistring_libobjs $i_dir""libunistring_a-$i_base.$ac_objext"
+ gltests_libunistring_ltlibobjs="$gltests_libunistring_ltlibobjs $i_dir""libunistring_la-$i_base.lo"
+ gltests_libobjdeps="$gltests_libobjdeps $i_dir\$(DEPDIR)/$i_base.Plo"
+ gltests_libunistring_libobjdeps="$gltests_libunistring_libobjdeps $i_dir\$(DEPDIR)/libunistring_la-$i_base.Plo"
done
fi
AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs])
AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs])
AC_SUBST([gltests_LIBOBJDEPS], [$gltests_libobjdeps])
+ AC_SUBST([gltests_libunistring_LIBOBJS], [$gltests_libunistring_libobjs])
+ AC_SUBST([gltests_libunistring_LTLIBOBJS], [$gltests_libunistring_ltlibobjs])
+ AC_SUBST([gltests_libunistring_LIBOBJDEPS], [$gltests_libunistring_libobjdeps])
])
AC_REQUIRE([gl_CC_GNULIB_WARNINGS])
LIBTESTS_LIBDEPS="$gltests_libdeps"
@@ -3479,7 +3726,6 @@ AC_DEFUN([gl_FILE_LIST], [
lib/c-strcase.h
lib/c-strcasecmp.c
lib/c-strcaseeq.h
- lib/c-strncasecmp.c
lib/c32is-impl.h
lib/c32isalnum.c
lib/c32isalpha.c
@@ -3497,6 +3743,7 @@ AC_DEFUN([gl_FILE_LIST], [
lib/c32tolower.c
lib/c32width.c
lib/errno.in.h
+ lib/fcntl.in.h
lib/flexmember.h
lib/float+.h
lib/float.c
@@ -3507,8 +3754,12 @@ AC_DEFUN([gl_FILE_LIST], [
lib/frexpl.c
lib/fseterr.c
lib/fseterr.h
+ lib/getlocalename_l-unsafe.c
+ lib/getlocalename_l-unsafe.h
lib/glthread/lock.c
lib/glthread/lock.h
+ lib/glthread/once.c
+ lib/glthread/once.h
lib/glthread/threadlib.c
lib/hard-locale.c
lib/hard-locale.h
@@ -3517,8 +3768,6 @@ AC_DEFUN([gl_FILE_LIST], [
lib/iconv_close.c
lib/iconv_open-aix.gperf
lib/iconv_open-hpux.gperf
- lib/iconv_open-irix.gperf
- lib/iconv_open-osf.gperf
lib/iconv_open-solaris.gperf
lib/iconv_open-zos.gperf
lib/iconv_open.c
@@ -3538,13 +3787,14 @@ AC_DEFUN([gl_FILE_LIST], [
lib/iswpunct.c
lib/iswxdigit.c
lib/itold.c
- lib/langinfo.in.h
lib/lc-charset-dispatch.c
lib/lc-charset-dispatch.h
lib/limits.in.h
lib/localcharset.c
lib/localcharset.h
lib/locale.in.h
+ lib/localeconv.c
+ lib/localename-environ.c
lib/localename-table.c
lib/localename-table.h
lib/localename-unsafe.c
@@ -3581,9 +3831,14 @@ AC_DEFUN([gl_FILE_LIST], [
lib/printf-frexpl.h
lib/printf-parse.c
lib/printf-parse.h
+ lib/pthread-once.c
+ lib/pthread.in.h
lib/relocatable.c
lib/relocatable.h
lib/relocatable.valgrind
+ lib/sched.in.h
+ lib/setlocale-fixes.c
+ lib/setlocale-fixes.h
lib/setlocale-lock.c
lib/setlocale_null-unlocked.c
lib/setlocale_null.c
@@ -3596,6 +3851,7 @@ AC_DEFUN([gl_FILE_LIST], [
lib/stddef.in.h
lib/stdint.in.h
lib/stdio-impl.h
+ lib/stdlib.c
lib/stdlib.in.h
lib/str-two-way.h
lib/streq.h
@@ -3603,12 +3859,14 @@ AC_DEFUN([gl_FILE_LIST], [
lib/striconveh.h
lib/striconveha.c
lib/striconveha.h
+ lib/string.c
lib/string.in.h
lib/strncat.c
lib/strstr.c
lib/struniq.h
lib/sys_types.in.h
lib/thread-optim.h
+ lib/time.in.h
lib/uchar.in.h
lib/unicase.in.h
lib/unicase/cased.c
@@ -4017,6 +4275,8 @@ AC_DEFUN([gl_FILE_LIST], [
lib/unictype/pr_lowercase.h
lib/unictype/pr_math.c
lib/unictype/pr_math.h
+ lib/unictype/pr_modifier_combining_mark.c
+ lib/unictype/pr_modifier_combining_mark.h
lib/unictype/pr_non_break.c
lib/unictype/pr_non_break.h
lib/unictype/pr_not_a_character.c
@@ -4097,6 +4357,8 @@ AC_DEFUN([gl_FILE_LIST], [
lib/unigbrk.in.h
lib/unigbrk/gbrkprop.h
lib/unigbrk/u-grapheme-breaks.h
+ lib/unigbrk/u-grapheme-next.h
+ lib/unigbrk/u-grapheme-prev.h
lib/unigbrk/u16-grapheme-breaks.c
lib/unigbrk/u16-grapheme-next.c
lib/unigbrk/u16-grapheme-prev.c
@@ -4135,6 +4397,7 @@ AC_DEFUN([gl_FILE_LIST], [
lib/uninorm.in.h
lib/uninorm/canonical-decomposition.c
lib/uninorm/compat-decomposition.c
+ lib/uninorm/composition-table-bounds.h
lib/uninorm/composition-table.gperf
lib/uninorm/composition.c
lib/uninorm/decompose-internal.c
@@ -4447,6 +4710,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/arpa_inet_h.m4
m4/assert_h.m4
m4/btowc.m4
+ m4/build-to-host.m4
m4/builtin-expect.m4
m4/c-bool.m4
m4/c32rtomb.m4
@@ -4456,7 +4720,6 @@ AC_DEFUN([gl_FILE_LIST], [
m4/ctype_h.m4
m4/double-slash-root.m4
m4/dup2.m4
- m4/eealloc.m4
m4/environ.m4
m4/errno_h.m4
m4/error.m4
@@ -4464,6 +4727,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/exponentd.m4
m4/exponentf.m4
m4/exponentl.m4
+ m4/extensions-aix.m4
m4/extensions.m4
m4/extern-inline.m4
m4/fcntl-o.m4
@@ -4481,16 +4745,19 @@ AC_DEFUN([gl_FILE_LIST], [
m4/ftruncate.m4
m4/getcwd.m4
m4/getdtablesize.m4
- m4/getpagesize.m4
+ m4/getlocalename_l.m4
m4/getprogname.m4
+ m4/gettext_h.m4
m4/gettimeofday.m4
m4/gnulib-common.m4
+ m4/gnulib-i18n.m4
m4/host-cpu-c-abi.m4
m4/iconv.m4
m4/iconv_h.m4
m4/iconv_open.m4
m4/include_next.m4
m4/inet_pton.m4
+ m4/init-package-version.m4
m4/inline.m4
m4/intl-thread-locale.m4
m4/intlmacosx.m4
@@ -4506,7 +4773,6 @@ AC_DEFUN([gl_FILE_LIST], [
m4/iswdigit.m4
m4/iswpunct.m4
m4/iswxdigit.m4
- m4/langinfo_h.m4
m4/largefile.m4
m4/lcmessage.m4
m4/ldexpl.m4
@@ -4517,11 +4783,13 @@ AC_DEFUN([gl_FILE_LIST], [
m4/limits-h.m4
m4/localcharset.m4
m4/locale-ar.m4
+ m4/locale-en.m4
m4/locale-fr.m4
m4/locale-ja.m4
m4/locale-tr.m4
m4/locale-zh.m4
m4/locale_h.m4
+ m4/localeconv.m4
m4/localename.m4
m4/lock.m4
m4/lstat.m4
@@ -4537,6 +4805,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/mbtowc.m4
m4/memchr.m4
m4/minmax.m4
+ m4/mkfifo.m4
m4/mmap-anon.m4
m4/mode_t.m4
m4/msvc-inval.m4
@@ -4547,7 +4816,9 @@ AC_DEFUN([gl_FILE_LIST], [
m4/nanosleep.m4
m4/netinet_in_h.m4
m4/nocrash.m4
+ m4/off64_t.m4
m4/off_t.m4
+ m4/once.m4
m4/open-cloexec.m4
m4/open-slash.m4
m4/open.m4
@@ -4559,8 +4830,14 @@ AC_DEFUN([gl_FILE_LIST], [
m4/printf-frexpl.m4
m4/printf.m4
m4/pselect.m4
+ m4/pthread-cond.m4
+ m4/pthread-mutex.m4
+ m4/pthread-once.m4
+ m4/pthread-rwlock.m4
+ m4/pthread-spin.m4
m4/pthread-thread.m4
m4/pthread_h.m4
+ m4/pthread_mutex_timedlock.m4
m4/pthread_rwlock_rdlock.m4
m4/pthread_sigmask.m4
m4/putenv.m4
@@ -4592,17 +4869,21 @@ AC_DEFUN([gl_FILE_LIST], [
m4/stat.m4
m4/std-gnu11.m4
m4/stdalign.m4
+ m4/stdckdint_h.m4
m4/stddef_h.m4
m4/stdint.m4
m4/stdint_h.m4
m4/stdio_h.m4
m4/stdlib_h.m4
+ m4/stpcpy.m4
m4/strerror.m4
m4/strerror_r.m4
m4/string_h.m4
+ m4/stringeq.m4
m4/strncat.m4
m4/strstr.m4
m4/symlink.m4
+ m4/sys_cdefs_h.m4
m4/sys_ioctl_h.m4
m4/sys_select_h.m4
m4/sys_socket_h.m4
@@ -4620,24 +4901,27 @@ AC_DEFUN([gl_FILE_LIST], [
m4/unimetadata_h.m4
m4/uninorm_h.m4
m4/unistd_h.m4
+ m4/unitypes_h.m4
m4/usleep.m4
m4/vararrays.m4
m4/vasnprintf.m4
m4/visibility.m4
m4/warn-on-use.m4
m4/wchar_h.m4
- m4/wchar_t.m4
m4/wcrtomb.m4
m4/wctob.m4
m4/wctomb.m4
m4/wctype_h.m4
m4/wcwidth.m4
+ m4/windows-rc.m4
m4/wint_t.m4
m4/xalloc.m4
+ m4/xgetcwd.m4
m4/xsize.m4
m4/yield.m4
m4/zzgnulib.m4
tests/atomic-int-gnulib.h
+ tests/atomic-int-posix.h
tests/iconvsupport.c
tests/infinity.h
tests/init.sh
@@ -4651,12 +4935,13 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-accept.c
tests/test-alignasof.c
tests/test-alloca-opt.c
- tests/test-arpa_inet.c
+ tests/test-arpa_inet-h.c
tests/test-array-mergesort.c
tests/test-assert.c
tests/test-binary-io.c
tests/test-binary-io.sh
tests/test-bind.c
+ tests/test-bool.c
tests/test-btoc32-1.sh
tests/test-btoc32-2.sh
tests/test-btoc32-3.sh
@@ -4666,9 +4951,8 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-btowc-3.sh
tests/test-btowc.c
tests/test-c-ctype.c
- tests/test-c-strcase.sh
tests/test-c-strcasecmp.c
- tests/test-c-strncasecmp.c
+ tests/test-c-strcasecmp.sh
tests/test-c32isalnum.c
tests/test-c32isalnum.sh
tests/test-c32isalpha.c
@@ -4707,20 +4991,20 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-c32tolower.sh
tests/test-c32width.c
tests/test-calloc-gnu.c
+ tests/test-calloc-posix.c
tests/test-cloexec.c
tests/test-close.c
tests/test-connect.c
- tests/test-ctype.c
+ tests/test-ctype-h.c
tests/test-dup2.c
tests/test-environ.c
- tests/test-errno.c
+ tests/test-errno-h.c
tests/test-error.c
tests/test-error.sh
tests/test-fcntl-h.c
tests/test-fcntl.c
tests/test-fdopen.c
tests/test-fgetc.c
- tests/test-float.c
tests/test-fputc.c
tests/test-fread.c
tests/test-free.c
@@ -4735,6 +5019,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-getcwd-lgpl.c
tests/test-getdtablesize.c
tests/test-getprogname.c
+ tests/test-gettext-h.c
tests/test-gettimeofday.c
tests/test-hard-locale.c
tests/test-iconv-h.c
@@ -4743,7 +5028,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-inet_pton.c
tests/test-init.sh
tests/test-intprops.c
- tests/test-inttypes.c
+ tests/test-inttypes-h.c
tests/test-ioctl.c
tests/test-isblank.c
tests/test-isnand-nolibm.c
@@ -4759,19 +5044,25 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-iswpunct.sh
tests/test-iswxdigit.c
tests/test-iswxdigit.sh
- tests/test-langinfo.c
tests/test-largefile.c
tests/test-limits-h.c
tests/test-listen.c
+ tests/test-localcharset-w32utf8.c
+ tests/test-localcharset-w32utf8.sh
tests/test-localcharset.c
- tests/test-locale.c
+ tests/test-locale-h.c
+ tests/test-localeconv-mt.c
+ tests/test-localeconv.c
+ tests/test-localename-w32utf8.c
+ tests/test-localename-w32utf8.sh
tests/test-localename.c
tests/test-lock.c
tests/test-lstat.c
tests/test-lstat.h
tests/test-malloc-gnu.c
+ tests/test-malloc-posix.c
tests/test-malloca.c
- tests/test-math.c
+ tests/test-math-h.c
tests/test-mbrtoc32-1.sh
tests/test-mbrtoc32-2.sh
tests/test-mbrtoc32-3.sh
@@ -4799,12 +5090,18 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-mbrtowc-w32-7.sh
tests/test-mbrtowc-w32-8.sh
tests/test-mbrtowc-w32.c
+ tests/test-mbrtowc-w32utf8.c
+ tests/test-mbrtowc-w32utf8.sh
tests/test-mbrtowc.c
tests/test-mbsinit.c
tests/test-mbsinit.sh
+ tests/test-mbsnlen.c
+ tests/test-mbsnlen.sh
tests/test-memchr.c
+ tests/test-mkfifo.c
+ tests/test-mkfifo.h
tests/test-nanosleep.c
- tests/test-netinet_in.c
+ tests/test-netinet_in-h.c
tests/test-once.c
tests/test-open.c
tests/test-open.h
@@ -4816,18 +5113,25 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-printf-frexp.c
tests/test-printf-frexpl.c
tests/test-pselect.c
+ tests/test-pthread-cond.c
+ tests/test-pthread-mutex-type.c
+ tests/test-pthread-mutex.c
+ tests/test-pthread-once1.c
+ tests/test-pthread-once2.c
+ tests/test-pthread-rwlock.c
tests/test-pthread-thread.c
tests/test-pthread.c
tests/test-pthread_sigmask1.c
tests/test-pthread_sigmask2.c
+ tests/test-putenv.c
tests/test-raise.c
tests/test-random-mt.c
tests/test-random.c
tests/test-random_r.c
- tests/test-realloc-gnu.c
+ tests/test-realloc-posix.c
tests/test-reallocarray.c
tests/test-rwlock1.c
- tests/test-sched.c
+ tests/test-sched-h.c
tests/test-select-fd.c
tests/test-select-in.sh
tests/test-select-out.sh
@@ -4835,6 +5139,9 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-select.c
tests/test-select.h
tests/test-setenv.c
+ tests/test-setlocale-w32.c
+ tests/test-setlocale-w32utf8.c
+ tests/test-setlocale-w32utf8.sh
tests/test-setlocale1.c
tests/test-setlocale1.sh
tests/test-setlocale2.c
@@ -4852,41 +5159,42 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-stat-time.c
tests/test-stat.c
tests/test-stat.h
- tests/test-stdbool.c
- tests/test-stdckdint.c
- tests/test-stddef.c
- tests/test-stdint.c
- tests/test-stdio.c
- tests/test-stdlib.c
+ tests/test-stdckdint-h.c
+ tests/test-stddef-h.c
+ tests/test-stdint-h.c
+ tests/test-stdio-h.c
+ tests/test-stdlib-h.c
+ tests/test-str_endswith.c
+ tests/test-str_startswith.c
tests/test-strerror.c
tests/test-strerror_r.c
tests/test-striconveh.c
tests/test-striconveha.c
- tests/test-string.c
+ tests/test-string-h.c
tests/test-strncat.c
tests/test-strstr.c
tests/test-symlink.c
tests/test-symlink.h
- tests/test-sys_ioctl.c
- tests/test-sys_select.c
- tests/test-sys_socket.c
- tests/test-sys_stat.c
- tests/test-sys_time.c
- tests/test-sys_types.c
- tests/test-sys_uio.c
- tests/test-sys_wait.h
+ tests/test-sys_ioctl-h.c
+ tests/test-sys_select-h.c
+ tests/test-sys_socket-h.c
+ tests/test-sys_stat-h.c
+ tests/test-sys_time-h.c
+ tests/test-sys_types-h.c
+ tests/test-sys_uio-h.c
+ tests/test-sys_wait-h.h
tests/test-thread_create.c
tests/test-thread_self.c
tests/test-time-h.c
tests/test-time.c
- tests/test-uchar.c
- tests/test-unistd.c
+ tests/test-uchar-h.c
+ tests/test-unistd-h.c
tests/test-unsetenv.c
tests/test-usleep.c
tests/test-verify-try.c
tests/test-verify.c
tests/test-verify.sh
- tests/test-wchar.c
+ tests/test-wchar-h.c
tests/test-wcrtomb-w32-2.sh
tests/test-wcrtomb-w32-3.sh
tests/test-wcrtomb-w32-4.sh
@@ -4899,6 +5207,10 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-wcrtomb.sh
tests/test-wctype-h.c
tests/test-wcwidth.c
+ tests/test-windows-mutex-type.c
+ tests/test-windows-recmutex-type.c
+ tests/test-windows-timedmutex-type.c
+ tests/test-windows-timedrecmutex-type.c
tests/test-xalloc-die.c
tests/test-xalloc-die.sh
tests/unicase/test-casecmp.h
@@ -4957,6 +5269,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/unicase/test-ulc-casecoll.c
tests/unicase/test-ulc-casecoll1.sh
tests/unicase/test-ulc-casecoll2.sh
+ tests/unicase/test-unicase-h.c
tests/uniconv/test-u16-conv-from-enc.c
tests/uniconv/test-u16-conv-to-enc.c
tests/uniconv/test-u16-strconv-from-enc.c
@@ -4969,6 +5282,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/uniconv/test-u8-conv-to-enc.c
tests/uniconv/test-u8-strconv-from-enc.c
tests/uniconv/test-u8-strconv-to-enc.c
+ tests/uniconv/test-uniconv-h.c
tests/unictype/test-bidi_byname.c
tests/unictype/test-bidi_longname.c
tests/unictype/test-bidi_name.c
@@ -5124,6 +5438,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/unictype/test-pr_logical_order_exception.c
tests/unictype/test-pr_lowercase.c
tests/unictype/test-pr_math.c
+ tests/unictype/test-pr_modifier_combining_mark.c
tests/unictype/test-pr_non_break.c
tests/unictype/test-pr_not_a_character.c
tests/unictype/test-pr_numeric.c
@@ -5166,6 +5481,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/unictype/test-sy_c_whitespace.c
tests/unictype/test-sy_java_ident.c
tests/unictype/test-sy_java_whitespace.c
+ tests/unictype/test-unictype-h.c
tests/unigbrk/GraphemeBreakTest.txt
tests/unigbrk/test-u16-grapheme-breaks.c
tests/unigbrk/test-u16-grapheme-next.c
@@ -5184,18 +5500,25 @@ AC_DEFUN([gl_FILE_LIST], [
tests/unigbrk/test-uc-is-grapheme-break.sh
tests/unigbrk/test-ulc-grapheme-breaks.c
tests/unigbrk/test-ulc-grapheme-breaks.sh
+ tests/unigbrk/test-unigbrk-h.c
+ tests/unilbrk/LineBreakTest.txt
tests/unilbrk/test-u16-possible-linebreaks.c
tests/unilbrk/test-u16-width-linebreaks.c
tests/unilbrk/test-u32-possible-linebreaks.c
tests/unilbrk/test-u32-width-linebreaks.c
tests/unilbrk/test-u8-possible-linebreaks.c
tests/unilbrk/test-u8-width-linebreaks.c
+ tests/unilbrk/test-uc-possible-linebreaks.c
+ tests/unilbrk/test-uc-possible-linebreaks.sh
tests/unilbrk/test-ulc-possible-linebreaks.c
tests/unilbrk/test-ulc-width-linebreaks.c
+ tests/unilbrk/test-unilbrk-h.c
tests/unimetadata/test-u-version.c
+ tests/unimetadata/test-unimetadata-h.c
tests/uniname/HangulSyllableNames.txt
tests/uniname/NameAliases.txt
tests/uniname/UnicodeData.txt
+ tests/uniname/test-uniname-h.c
tests/uniname/test-uninames.c
tests/uniname/test-uninames.sh
tests/uninorm/NormalizationTest.txt
@@ -5240,6 +5563,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/uninorm/test-u8-normcmp.h
tests/uninorm/test-u8-normcoll.c
tests/uninorm/test-uninorm-filter-nfc.c
+ tests/uninorm/test-uninorm-h.c
tests/unistdio/test-u16-asnprintf1.c
tests/unistdio/test-u16-asnprintf1.h
tests/unistdio/test-u16-printf1.h
@@ -5284,6 +5608,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/unistdio/test-ulc-vasprintf1.c
tests/unistdio/test-ulc-vsnprintf1.c
tests/unistdio/test-ulc-vsprintf1.c
+ tests/unistdio/test-unistdio-h.c
tests/unistr/test-chr.h
tests/unistr/test-cmp.h
tests/unistr/test-cmp2.h
@@ -5419,6 +5744,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/unistr/test-u8-to-u16.c
tests/unistr/test-u8-to-u32.c
tests/unistr/test-u8-uctomb.c
+ tests/unistr/test-unistr-h.c
tests/uniwbrk/WordBreakTest.txt
tests/uniwbrk/test-u16-wordbreaks.c
tests/uniwbrk/test-u32-wordbreaks.c
@@ -5427,6 +5753,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/uniwbrk/test-uc-wordbreaks.sh
tests/uniwbrk/test-ulc-wordbreaks.c
tests/uniwbrk/test-ulc-wordbreaks.sh
+ tests/uniwbrk/test-uniwbrk-h.c
tests/uniwidth/test-u16-strwidth.c
tests/uniwidth/test-u16-width.c
tests/uniwidth/test-u32-strwidth.c
@@ -5436,11 +5763,16 @@ AC_DEFUN([gl_FILE_LIST], [
tests/uniwidth/test-uc_width.c
tests/uniwidth/test-uc_width2.c
tests/uniwidth/test-uc_width2.sh
+ tests/uniwidth/test-uniwidth-h.c
+ tests/virtualbox.h
+ tests/windows-utf8.manifest
+ tests/windows-utf8.rc
tests/zerosize-ptr.h
tests=lib/_Noreturn.h
tests=lib/accept.c
tests=lib/alloca.c
tests=lib/arg-nonnull.h
+ tests=lib/arpa_inet.c
tests=lib/arpa_inet.in.h
tests=lib/basename-lgpl.c
tests=lib/basename-lgpl.h
@@ -5457,6 +5789,8 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/cloexec.c
tests=lib/cloexec.h
tests=lib/close.c
+ tests=lib/concat-filename.c
+ tests=lib/concat-filename.h
tests=lib/connect.c
tests=lib/ctype.in.h
tests=lib/dup2.c
@@ -5465,7 +5799,6 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/exitfail.c
tests=lib/exitfail.h
tests=lib/fcntl.c
- tests=lib/fcntl.in.h
tests=lib/fd-hook.c
tests=lib/fd-hook.h
tests=lib/fdopen.c
@@ -5474,7 +5807,6 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/ftruncate.c
tests=lib/getcwd-lgpl.c
tests=lib/getdtablesize.c
- tests=lib/getpagesize.c
tests=lib/getprogname.c
tests=lib/getprogname.h
tests=lib/gettext.h
@@ -5496,6 +5828,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/malloc.c
tests=lib/mbtowc-impl.h
tests=lib/mbtowc.c
+ tests=lib/mkfifo.c
tests=lib/msvc-inval.c
tests=lib/msvc-inval.h
tests=lib/msvc-nothrow.c
@@ -5508,8 +5841,11 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/perror.c
tests=lib/pipe.c
tests=lib/pselect.c
+ tests=lib/pthread-cond.c
+ tests=lib/pthread-mutex.c
+ tests=lib/pthread-rwlock.c
tests=lib/pthread-thread.c
- tests=lib/pthread.in.h
+ tests=lib/pthread_mutex_timedlock.c
tests=lib/pthread_sigmask.c
tests=lib/putenv.c
tests=lib/raise.c
@@ -5519,7 +5855,6 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/reallocarray.c
tests=lib/same-inode.c
tests=lib/same-inode.h
- tests=lib/sched.in.h
tests=lib/sched_yield.c
tests=lib/select.c
tests=lib/setenv.c
@@ -5539,9 +5874,13 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/stat-w32.c
tests=lib/stat-w32.h
tests=lib/stat.c
+ tests=lib/stdio-consolesafe.c
tests=lib/stdio-read.c
tests=lib/stdio-write.c
tests=lib/stdio.in.h
+ tests=lib/stpcpy.c
+ tests=lib/str_endswith.c
+ tests=lib/str_startswith.c
tests=lib/strerror-override.c
tests=lib/strerror-override.h
tests=lib/strerror.c
@@ -5555,7 +5894,6 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/sys_time.in.h
tests=lib/sys_uio.in.h
tests=lib/time.c
- tests=lib/time.in.h
tests=lib/unsetenv.c
tests=lib/usleep.c
tests=lib/verify.h
@@ -5565,11 +5903,23 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/wctob.c
tests=lib/wctomb-impl.h
tests=lib/wctomb.c
+ tests=lib/windows-cond.c
+ tests=lib/windows-cond.h
+ tests=lib/windows-initguard.h
tests=lib/windows-thread.c
tests=lib/windows-thread.h
+ tests=lib/windows-timedmutex.c
+ tests=lib/windows-timedmutex.h
+ tests=lib/windows-timedrecmutex.c
+ tests=lib/windows-timedrecmutex.h
+ tests=lib/windows-timedrwlock.c
+ tests=lib/windows-timedrwlock.h
tests=lib/windows-tls.c
tests=lib/windows-tls.h
tests=lib/xalloc-die.c
tests=lib/xalloc.h
+ tests=lib/xconcat-filename.c
+ tests=lib/xgetcwd.c
+ tests=lib/xgetcwd.h
tests=lib/xmalloc.c
])
diff --git a/gnulib-m4/gnulib-i18n.m4 b/gnulib-m4/gnulib-i18n.m4
new file mode 100644
index 00000000..868043e7
--- /dev/null
+++ b/gnulib-m4/gnulib-i18n.m4
@@ -0,0 +1,61 @@
+# gnulib-i18n.m4
+# serial 1
+dnl Copyright (C) 2005-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 This file is offered as-is, without any warranty.
+
+dnl From Bruno Haible.
+
+dnl Support for internationalization of Gnulib code.
+
+dnl GNULIB_I18N
+dnl Sets GNULIB_LOCALEDIR to indicate where to find the gnulib.mo files.
+dnl Also it defines GNULIB_LOCALEDIR as macro in config.h, that expands to
+dnl the corresponding C string.
+AC_DEFUN([GNULIB_I18N],
+[
+ dnl It is best to not test "$USE_NLS" here, because: It would be empty
+ dnl in case the package is internationalized but this macro is used before
+ dnl AM_GNU_GETTEXT. We would need to warn about this situation. But since
+ dnl this module is used as a dependency of many packages, such a warning is
+ dnl not welcome.
+
+ dnl Determine gnulib's localedir.
+ dnl Generally, accept an option --with-gnulib-prefix=PREFIX to indicate
+ dnl where to find gnulib's runtime data.
+ dnl Usually ${prefix}/share/locale, but can be influenced by the configure
+ dnl options --datarootdir and --localedir.
+ GNULIB_LOCALEDIR="${localedir}"
+ AC_ARG_WITH([gnulib-prefix],
+ [[ --with-gnulib-prefix=DIR search for gnulib's runtime data in DIR/share]],
+ [if test "X$withval" != "X" && test "X$withval" != "Xno"; then
+ GNULIB_LOCALEDIR="$withval/share/locale"
+ fi
+ ])
+ AC_SUBST([GNULIB_LOCALEDIR])
+
+ dnl Define GNULIB_LOCALEDIR_c and GNULIB_LOCALEDIR_c_make.
+ dnl Find the final value of GNULIB_LOCALEDIR.
+ gl_saved_prefix="${prefix}"
+ gl_saved_datarootdir="${datarootdir}"
+ gl_saved_localedir="${localedir}"
+ gl_saved_gnuliblocaledir="${GNULIB_LOCALEDIR}"
+ dnl Unfortunately, prefix gets only finally determined at the end of
+ dnl configure.
+ if test "X$prefix" = "XNONE"; then
+ prefix="$ac_default_prefix"
+ fi
+ eval datarootdir="$datarootdir"
+ eval localedir="$localedir"
+ eval GNULIB_LOCALEDIR="$GNULIB_LOCALEDIR"
+ gl_BUILD_TO_HOST([GNULIB_LOCALEDIR])
+ GNULIB_LOCALEDIR="${gl_saved_gnuliblocaledir}"
+ localedir="${gl_saved_localedir}"
+ datarootdir="${gl_saved_datarootdir}"
+ prefix="${gl_saved_prefix}"
+
+ AC_DEFINE_UNQUOTED([GNULIB_LOCALEDIR], [${GNULIB_LOCALEDIR_c}],
+ [Define to the directory where to find the localizations of the translation domain 'gnulib', as a C string.])
+])
diff --git a/gnulib-m4/host-cpu-c-abi.m4 b/gnulib-m4/host-cpu-c-abi.m4
index e860a19e..6ca7721a 100644
--- a/gnulib-m4/host-cpu-c-abi.m4
+++ b/gnulib-m4/host-cpu-c-abi.m4
@@ -1,8 +1,10 @@
-# host-cpu-c-abi.m4 serial 17
-dnl Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# host-cpu-c-abi.m4
+# serial 20
+dnl Copyright (C) 2002-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible and Sam Steingold.
@@ -35,7 +37,7 @@ dnl * The same canonical name is used for different endiannesses. You can
dnl determine the endianness through preprocessor symbols:
dnl - 'arm': test __ARMEL__.
dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL.
-dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN.
+dnl - 'powerpc64': test __BIG_ENDIAN__ vs. __LITTLE_ENDIAN__.
dnl * The same name 'i386' is used for CPUs of type i386, i486, i586
dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because
dnl - Instructions that do not exist on all of these CPUs (cmpxchg,
@@ -140,7 +142,7 @@ changequote([,])dnl
else
gl_cv_host_cpu_c_abi=arm
fi
- rm -f conftest*
+ rm -fr conftest*
])
;;
@@ -382,6 +384,9 @@ EOF
#ifndef __ia64__
#undef __ia64__
#endif
+#ifndef __loongarch32__
+#undef __loongarch32__
+#endif
#ifndef __loongarch64__
#undef __loongarch64__
#endif
@@ -501,9 +506,9 @@ changequote([,])dnl
if test -n "$gl_cv_host_cpu_c_abi"; then
dnl gl_HOST_CPU_C_ABI has already been run. Use its result.
case "$gl_cv_host_cpu_c_abi" in
- i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
+ i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | loongarch32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
gl_cv_host_cpu_c_abi_32bit=yes ;;
- x86_64 | alpha | arm64 | aarch64c | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
+ x86_64 | alpha | arm64 | aarch64c | hppa64 | ia64 | loongarch64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
gl_cv_host_cpu_c_abi_32bit=no ;;
*)
gl_cv_host_cpu_c_abi_32bit=unknown ;;
diff --git a/gnulib-m4/iconv.m4 b/gnulib-m4/iconv.m4
index 2a7edd31..f2b0c37d 100644
--- a/gnulib-m4/iconv.m4
+++ b/gnulib-m4/iconv.m4
@@ -1,9 +1,11 @@
-# iconv.m4 serial 27
-dnl Copyright (C) 2000-2002, 2007-2014, 2016-2024 Free Software Foundation,
+# iconv.m4
+# serial 32
+dnl Copyright (C) 2000-2002, 2007-2014, 2016-2025 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.
dnl From Bruno Haible.
@@ -26,8 +28,8 @@ AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
AC_DEFUN([AM_ICONV_LINK],
[
- dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
- dnl those with the standalone portable GNU libiconv installed).
+ dnl Some systems have iconv in libc, some have it in libiconv (those
+ dnl with the standalone portable GNU libiconv installed).
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
@@ -74,7 +76,7 @@ AC_DEFUN([AM_ICONV_LINK],
if test "$am_cv_func_iconv" = yes; then
AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11,
- dnl Solaris 10.
+ dnl Solaris 10, macOS 14.4.
gl_saved_LIBS="$LIBS"
if test $am_cv_lib_iconv = yes; then
LIBS="$LIBS $LIBICONV"
@@ -113,6 +115,35 @@ AC_DEFUN([AM_ICONV_LINK],
iconv_close (cd_utf8_to_88591);
}
}
+ /* Test against macOS 14.4 bug: Failures are not distinguishable from
+ successful returns.
+ POSIX:2018 says: "The iconv() function shall ... return the number of
+ non-identical conversions performed."
+ But here, the conversion always does transliteration (the suffixes
+ "//TRANSLIT" and "//IGNORE" have no effect, nor does iconvctl()) and
+ does not report when it does a non-identical conversion. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO-8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static ICONV_CONST char input[] = "\305\202"; /* LATIN SMALL LETTER L WITH STROKE */
+ char buf[10];
+ ICONV_CONST char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_utf8_to_88591,
+ &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ /* Here:
+ With glibc, GNU libiconv (including macOS up to 13): res == (size_t)-1, errno == EILSEQ.
+ With musl libc, NetBSD 10, Solaris 11: res == 1.
+ With macOS 14.4: res == 0, output is "l". */
+ if (res == 0)
+ result |= 2;
+ iconv_close (cd_utf8_to_88591);
+ }
+ }
/* Test against Solaris 10 bug: Failures are not distinguishable from
successful returns. */
{
@@ -129,7 +160,7 @@ AC_DEFUN([AM_ICONV_LINK],
&inptr, &inbytesleft,
&outptr, &outbytesleft);
if (res == 0)
- result |= 2;
+ result |= 4;
iconv_close (cd_ascii_to_88591);
}
}
@@ -148,7 +179,7 @@ AC_DEFUN([AM_ICONV_LINK],
&inptr, &inbytesleft,
&outptr, &outbytesleft);
if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
- result |= 4;
+ result |= 8;
iconv_close (cd_88591_to_utf8);
}
}
@@ -168,7 +199,7 @@ AC_DEFUN([AM_ICONV_LINK],
&inptr, &inbytesleft,
&outptr, &outbytesleft);
if ((int)res > 0)
- result |= 8;
+ result |= 16;
iconv_close (cd_88591_to_utf8);
}
}
@@ -178,7 +209,7 @@ AC_DEFUN([AM_ICONV_LINK],
{
/* Try standardized names. */
iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
- /* Try IRIX, OSF/1 names. */
+ /* Try possible *BSD names. */
iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
/* Try AIX names. */
iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
@@ -186,7 +217,7 @@ AC_DEFUN([AM_ICONV_LINK],
iconv_t cd4 = iconv_open ("utf8", "eucJP");
if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
&& cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
- result |= 16;
+ result |= 32;
if (cd1 != (iconv_t)(-1))
iconv_close (cd1);
if (cd2 != (iconv_t)(-1))
diff --git a/gnulib-m4/iconv_h.m4 b/gnulib-m4/iconv_h.m4
index 7b560887..2128564a 100644
--- a/gnulib-m4/iconv_h.m4
+++ b/gnulib-m4/iconv_h.m4
@@ -1,8 +1,10 @@
-# iconv_h.m4 serial 16
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# iconv_h.m4
+# serial 16
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_ICONV_H],
[
diff --git a/gnulib-m4/iconv_open.m4 b/gnulib-m4/iconv_open.m4
index c6fe346b..3fe509f2 100644
--- a/gnulib-m4/iconv_open.m4
+++ b/gnulib-m4/iconv_open.m4
@@ -1,8 +1,10 @@
-# iconv_open.m4 serial 17
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# iconv_open.m4
+# serial 19
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_ICONV_OPEN],
[
@@ -25,9 +27,7 @@ AC_DEFUN([gl_FUNC_ICONV_OPEN],
iconv_flavor=
case "$host_os" in
aix*) iconv_flavor=ICONV_FLAVOR_AIX ;;
- irix*) iconv_flavor=ICONV_FLAVOR_IRIX ;;
hpux*) iconv_flavor=ICONV_FLAVOR_HPUX ;;
- osf*) iconv_flavor=ICONV_FLAVOR_OSF ;;
solaris*) iconv_flavor=ICONV_FLAVOR_SOLARIS ;;
openedition*) iconv_flavor=ICONV_FLAVOR_ZOS ;;
esac
diff --git a/gnulib-m4/include_next.m4 b/gnulib-m4/include_next.m4
index 70cb746f..80de991e 100644
--- a/gnulib-m4/include_next.m4
+++ b/gnulib-m4/include_next.m4
@@ -1,8 +1,10 @@
-# include_next.m4 serial 27
-dnl Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# include_next.m4
+# serial 27
+dnl Copyright (C) 2006-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 This file is offered as-is, without any warranty.
dnl From Paul Eggert and Derek Price.
diff --git a/gnulib-m4/inet_pton.m4 b/gnulib-m4/inet_pton.m4
index 1e0be330..b6e59a25 100644
--- a/gnulib-m4/inet_pton.m4
+++ b/gnulib-m4/inet_pton.m4
@@ -1,8 +1,10 @@
-# inet_pton.m4 serial 20
-dnl Copyright (C) 2006, 2008-2024 Free Software Foundation, Inc.
+# inet_pton.m4
+# serial 20
+dnl Copyright (C) 2006, 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_INET_PTON],
[
diff --git a/gnulib-m4/init-package-version.m4 b/gnulib-m4/init-package-version.m4
new file mode 100644
index 00000000..a95b804c
--- /dev/null
+++ b/gnulib-m4/init-package-version.m4
@@ -0,0 +1,128 @@
+# init-package-version.m4
+# serial 7
+dnl Copyright (C) 1992-2025 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+# Make it possible to pass version numbers extracted from a file in
+# $(srcdir) to autoconf.
+#
+# Autoconf insists on passing the package name and version number to
+# every generated .h file and every Makefile. This was a reasonable
+# design at times when a version number was changed only once a month.
+# Nowadays, people often assign a new version number once a week, or
+# even change it each time a 'git' commit is made. Regenerating all
+# the files that depend on configure.ac (aclocal.m4, configure,
+# config.status, config.h, all Makefiles) may take 15 minutes. These
+# delays can severely hamper development.
+#
+# An alternative is to store the version number in a file in $(srcdir)
+# that is separate from configure.ac. It can be a data file, a shell
+# script, a .m4 file, or other. The essential point is that the maintainer
+# is responsible for creating Makefile dependencies to this version file
+# for every file that needs to be rebuilt when the version changes. This
+# typically includes
+# - distributable documentation files that carry the version number,
+# but does not include
+# - aclocal.m4, configure, config.status, config.h, all Makefiles,
+# - executables.
+#
+# autoconf and automake make it hard to follow this approach:
+#
+# - If AC_INIT is used with arguments, there is a chicken-and-egg problem:
+# The arguments need to be read from a file in $(srcdir). The location
+# of $(srcdir) is only determined by AC_CONFIG_SRCDIR. AC_CONFIG_SRCDIR
+# can only appear after AC_INIT (otherwise aclocal gives an error:
+# "error: m4_defn: undefined macro: _m4_divert_diversion").
+# Furthermore, the arguments passed to AC_INIT must be literals; for
+# example, the assignment to PACKAGE_VERSION looks like this:
+# [PACKAGE_VERSION=']AC_PACKAGE_VERSION[']
+#
+# - If AC_INIT is used without arguments:
+# Automake provides its own variables, PACKAGE and VERSION, and uses them
+# instead of PACKAGE_NAME and PACKAGE_VERSION that come from Autoconf.
+# - If AM_INIT_AUTOMAKE is used with two arguments, automake options
+# like 'silent-rules' cannot be specified.
+# - If AM_INIT_AUTOMAKE is used in its one-argument form or without
+# arguments at all, it triggers an error
+# "error: AC_INIT should be called with package and version arguments".
+# - If AM_INIT_AUTOMAKE is used in its one-argument form or without
+# arguments at all, and _AC_INIT_PACKAGE is used before it, with
+# the package and version number from the file as arguments, we get
+# a warning: "warning: AC_INIT: not a literal: $VERSION_NUMBER".
+# The arguments passed to _AC_INIT_PACKAGE must be literals.
+#
+# With the macro defined in this file, the approach can be coded like this:
+#
+# AC_INIT(PACKAGE, [package], [MORE OPTIONS])
+# AC_CONFIG_SRCDIR(WITNESS)
+# . $srcdir/../version.sh
+# gl_INIT_PACKAGE_VERSION($VERSION_NUMBER)
+# AM_INIT_AUTOMAKE([OPTIONS])
+#
+# and after changing version.sh, the developer can directly configure and build:
+#
+# make distclean
+# ./configure
+# make
+#
+# Some other packages use another approach:
+#
+# AC_INIT(PACKAGE,
+# m4_normalize(m4_esyscmd([. ./version.sh; echo $VERSION_NUMBER])))
+# AC_CONFIG_SRCDIR(WITNESS)
+# AM_INIT_AUTOMAKE([OPTIONS])
+#
+# but here, after changing version.sh, the developer must first regenerate the
+# configure file:
+#
+# make distclean
+# ./autogen.sh --skip-gnulib
+# ./configure
+# make
+#
+
+# gl_INIT_PACKAGE_VERSION(VERSION)
+# --------------------------------
+# followed by an AM_INIT_AUTOMAKE invocation,
+# is like calling AM_INIT_AUTOMAKE(PACKAGE-NAME, VERSION)
+# except that it can use computed non-literal arguments.
+AC_DEFUN([gl_INIT_PACKAGE_VERSION],
+[
+ AC_BEFORE([$0], [AM_INIT_AUTOMAKE])
+ dnl Redefine AM_INIT_AUTOMAKE.
+ m4_define([gl_AM_INIT_AUTOMAKE],
+ m4_bpatsubst(m4_dquote(m4_defn([AM_INIT_AUTOMAKE])),
+ [AC_PACKAGE_VERSION], [gl_INIT_DUMMY])
+ [dnl Set variables documented in Automake.
+ AC_SUBST([VERSION], ["$1"])
+ dnl Set variables documented in Autoconf.
+ AC_SUBST([PACKAGE_VERSION], ["$1"])
+ AC_SUBST([PACKAGE_STRING], ["AC_PACKAGE_NAME $1"])
+ _AC_DEFINE([#undef PACKAGE_VERSION])
+ AC_DEFINE_UNQUOTED([PACKAGE_VERSION], ["$1"],
+ [Define to the version of this package.])
+ _AC_DEFINE([#undef PACKAGE_STRING])
+ AC_DEFINE_UNQUOTED([PACKAGE_STRING], ["AC_PACKAGE_NAME $1"],
+ [Define to the full name and version of this package.])
+ ])
+ m4_define([AM_INIT_AUTOMAKE],
+ m4_defn([gl_RPL_INIT_AUTOMAKE]))
+])
+m4_define([gl_INIT_EMPTY], [])
+dnl Automake 1.16.4 no longer accepts an empty value for gl_INIT_DUMMY.
+dnl But a macro that later expands to empty works.
+m4_define([gl_INIT_DUMMY], [gl_INIT_DUMMY2])
+m4_define([gl_INIT_DUMMY2], [])
+AC_DEFUN([gl_RPL_INIT_AUTOMAKE], [
+ m4_ifval([$2],
+ [m4_fatal([After gl_INIT_PACKAGE_VERSION, the two-argument form of AM_INIT_AUTOMAKE cannot be used.])])
+ gl_AM_INIT_AUTOMAKE([$1 no-define])
+ m4_if(m4_index([ $1 ], [ no-define ]), [-1],
+ [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])
+ ])
+])
diff --git a/gnulib-m4/inline.m4 b/gnulib-m4/inline.m4
index 208f7423..5a272425 100644
--- a/gnulib-m4/inline.m4
+++ b/gnulib-m4/inline.m4
@@ -1,14 +1,18 @@
-# inline.m4 serial 4
-dnl Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc.
+# inline.m4
+# serial 5
+dnl Copyright (C) 2006, 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.
+dnl This file is offered as-is, without any warranty.
dnl Test for the 'inline' keyword or equivalent.
dnl Define 'inline' to a supported equivalent, or to nothing if not supported,
dnl like AC_C_INLINE does. Also, define HAVE_INLINE if 'inline' or an
dnl equivalent is effectively supported, i.e. if the compiler is likely to
-dnl drop unused 'static inline' functions.
+dnl actually inline 'static inline' functions when there are used. (All
+dnl versions of gcc and clang actually drop the code of 'static inline'
+dnl functions that are unused in the current compilation unit.)
AC_DEFUN([gl_INLINE],
[
AC_REQUIRE([AC_C_INLINE])
diff --git a/gnulib-m4/intl-thread-locale.m4 b/gnulib-m4/intl-thread-locale.m4
index 63efc44f..ec8a5125 100644
--- a/gnulib-m4/intl-thread-locale.m4
+++ b/gnulib-m4/intl-thread-locale.m4
@@ -1,8 +1,10 @@
-# intl-thread-locale.m4 serial 12
-dnl Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# intl-thread-locale.m4
+# serial 16
+dnl Copyright (C) 2015-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 This file is offered as-is, without any warranty.
dnl
dnl This file can be used in projects which are not available under
dnl the GNU General Public License or the GNU Lesser General Public
@@ -36,16 +38,23 @@ AC_DEFUN([gt_INTL_THREAD_LOCALE_NAME],
dnl OpenBSD base system, store complete information about the global locale,
dnl such that third-party software can access it"), but for uselocale()
dnl they did not think about the programs.
- dnl In this situation, even the HAVE_NAMELESS_LOCALES support does not work.
- dnl So, define HAVE_FAKE_LOCALES and disable all locale_t support.
- dnl Expected result: HAVE_FAKE_LOCALES is defined on OpenBSD ≥ 6.2.
+ dnl In this situation, even the HAVE_NAMELESS_LOCALES support cannot make
+ dnl uselocale() work.
+ dnl Similarly on Android. See
+ dnl <https://android.googlesource.com/platform/bionic/+/refs/heads/main/libc/bionic/locale.cpp>.
+ dnl So, define HAVE_FAKE_LOCALES and disable all per-thread locale support.
+ dnl Expected result:
+ dnl - HAVE_FAKE_LOCALES is defined on OpenBSD ≥ 6.2, Android API level >= 21.
case "$gt_cv_func_uselocale_works" in
*yes)
AC_CHECK_HEADERS_ONCE([xlocale.h])
- AC_CACHE_CHECK([for fake locale system (OpenBSD)],
+ AC_CACHE_CHECK([for fake locale system (OpenBSD, Android)],
[gt_cv_locale_fake],
- [AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
+ [case "$host_os" in
+ *-android*) gt_cv_locale_fake=yes ;;
+ *)
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
#include <locale.h>
#if HAVE_XLOCALE_H
# include <xlocale.h>
@@ -59,14 +68,16 @@ int main ()
loc2 = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", (locale_t)0);
return !(loc1 == loc2);
}]])],
- [gt_cv_locale_fake=yes],
- [gt_cv_locale_fake=no],
- [dnl Guess the locale system is fake only on OpenBSD.
- case "$host_os" in
- openbsd*) gt_cv_locale_fake="guessing yes" ;;
- *) gt_cv_locale_fake="guessing no" ;;
- esac
- ])
+ [gt_cv_locale_fake=yes],
+ [gt_cv_locale_fake=no],
+ [dnl Guess the locale system is fake only on OpenBSD.
+ case "$host_os" in
+ openbsd*) gt_cv_locale_fake="guessing yes" ;;
+ *) gt_cv_locale_fake="guessing no" ;;
+ esac
+ ])
+ ;;
+ esac
])
;;
*) gt_cv_locale_fake=no ;;
@@ -116,30 +127,21 @@ int main ()
[Define if the locale_t type is as on Solaris 11.4.])
fi
- dnl Solaris 12 will maybe provide getlocalename_l. If it does, it will
- dnl improve the implementation of gl_locale_name_thread(), by removing
- dnl the use of undocumented structures.
- case "$gt_cv_func_uselocale_works" in
- *yes)
- AC_CHECK_FUNCS([getlocalename_l])
- ;;
- esac
-
dnl This code is for platforms where the locale_t type does not provide access
dnl to the name of each locale category. This code has the drawback that it
dnl requires the gnulib overrides of 'newlocale', 'duplocale', 'freelocale',
dnl which is a problem for GNU libunistring. Therefore try hard to avoid
dnl enabling this code!
- dnl Expected result: HAVE_NAMELESS_LOCALES is defined on AIX,
- dnl and HAVE_AIX72_LOCALES is defined on AIX ≥ 7.2.
- gt_nameless_locales=no
+ dnl Expected result:
+ dnl - HAVE_NAMELESS_LOCALES is defined on OpenBSD ≥ 6.2, AIX,
+ dnl Android API level >= 21,
+ dnl - HAVE_AIX72_LOCALES is defined on AIX ≥ 7.2.
+ gt_nameless_locales=$gt_fake_locales
case "$host_os" in
dnl It's needed on AIX 7.2.
aix*)
gt_nameless_locales=yes
- AC_DEFINE([HAVE_NAMELESS_LOCALES], [1],
- [Define if the locale_t type does not contain the name of each locale category.])
- dnl In AIX ≥ 7.2, a locale contains at least the name of the LC_MESSSAGES
+ dnl In AIX ≥ 7.2, a locale contains at least the name of the LC_MESSAGES
dnl category (fix of defect 823926).
AC_CACHE_CHECK([for AIX locales with LC_MESSAGES name],
[gt_cv_locale_aix72],
@@ -160,13 +162,17 @@ int main ()
fi
;;
esac
+ if test $gt_nameless_locales = yes; then
+ AC_DEFINE([HAVE_NAMELESS_LOCALES], [1],
+ [Define if the locale_t type does not contain the name of each locale category.])
+ fi
dnl We cannot support uselocale() on platforms where the locale_t type is
dnl fake. So, set
dnl gt_good_uselocale = gt_working_uselocale && !gt_fake_locales.
dnl Expected result: HAVE_GOOD_USELOCALE is defined on all platforms except
- dnl FreeBSD < 9.1, NetBSD, OpenBSD, Minix, AIX < 7, AIX 7.2, HP-UX, IRIX,
- dnl Solaris < 11.4, Cygwin < 2.6, mingw, MSVC 14, Android API level < 21.
+ dnl FreeBSD < 9.1, NetBSD, OpenBSD, Minix, AIX < 7, AIX 7.2, HP-UX,
+ dnl Solaris < 11.4, Cygwin < 2.6, mingw, MSVC 14, Android.
if test $gt_working_uselocale = yes && test $gt_fake_locales = no; then
gt_good_uselocale=yes
AC_DEFINE([HAVE_GOOD_USELOCALE], [1],
@@ -179,8 +185,8 @@ int main ()
dnl overrides newlocale(), duplocale(), freelocale() to keep track of locale
dnl names.
dnl Expected result: LOCALENAME_ENHANCE_LOCALE_FUNCS is defined on
- dnl AIX 7.1, AIX ≥ 7.3.
- if test $gt_good_uselocale = yes && test $gt_nameless_locales = yes; then
+ dnl OpenBSD ≥ 6.2, AIX 7.1, AIX ≥ 7.3, Android API level >= 21.
+ if test $gt_working_uselocale = yes && test $gt_nameless_locales = yes; then
gt_localename_enhances_locale_funcs=yes
LOCALENAME_ENHANCE_LOCALE_FUNCS=1
AC_DEFINE([LOCALENAME_ENHANCE_LOCALE_FUNCS], [1],
@@ -193,7 +199,7 @@ int main ()
dnl Tests whether uselocale() exists and is usable.
dnl Sets gt_working_uselocale and defines HAVE_WORKING_USELOCALE.
dnl Expected result: HAVE_WORKING_USELOCALE is defined on all platforms except
-dnl FreeBSD < 9.1, NetBSD, OpenBSD < 6.2, Minix, AIX < 7, AIX 7.2, HP-UX, IRIX,
+dnl FreeBSD < 9.1, NetBSD, OpenBSD < 6.2, Minix, AIX < 7, AIX 7.2, HP-UX,
dnl Solaris < 11.4, Cygwin < 2.6, mingw, MSVC 14, Android API level < 21.
AC_DEFUN([gt_FUNC_USELOCALE],
[
diff --git a/gnulib-m4/intlmacosx.m4 b/gnulib-m4/intlmacosx.m4
index 450eb889..f0920d0f 100644
--- a/gnulib-m4/intlmacosx.m4
+++ b/gnulib-m4/intlmacosx.m4
@@ -1,8 +1,10 @@
-# intlmacosx.m4 serial 10 (gettext-0.23)
-dnl Copyright (C) 2004-2014, 2016, 2019-2024 Free Software Foundation, Inc.
+# intlmacosx.m4
+# serial 10 (gettext-0.23)
+dnl Copyright (C) 2004-2014, 2016, 2019-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 This file is offered as-is, without any warranty.
dnl
dnl This file can be used in projects which are not available under
dnl the GNU General Public License or the GNU Lesser General Public
diff --git a/gnulib-m4/intmax_t.m4 b/gnulib-m4/intmax_t.m4
index d3d21201..c1df7b27 100644
--- a/gnulib-m4/intmax_t.m4
+++ b/gnulib-m4/intmax_t.m4
@@ -1,9 +1,11 @@
-# intmax_t.m4 serial 9
-dnl Copyright (C) 1997-2004, 2006-2007, 2009-2024 Free Software Foundation,
+# intmax_t.m4
+# serial 9
+dnl Copyright (C) 1997-2004, 2006-2007, 2009-2025 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.
dnl From Paul Eggert.
diff --git a/gnulib-m4/inttypes.m4 b/gnulib-m4/inttypes.m4
index 6abf9dbe..63c82c61 100644
--- a/gnulib-m4/inttypes.m4
+++ b/gnulib-m4/inttypes.m4
@@ -1,8 +1,10 @@
-# inttypes.m4 serial 37
-dnl Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# inttypes.m4
+# serial 37
+dnl Copyright (C) 2006-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 This file is offered as-is, without any warranty.
dnl From Derek Price, Bruno Haible.
dnl Test whether <inttypes.h> is supported or must be substituted.
diff --git a/gnulib-m4/inttypes_h.m4 b/gnulib-m4/inttypes_h.m4
index ae0a00f0..ad939a53 100644
--- a/gnulib-m4/inttypes_h.m4
+++ b/gnulib-m4/inttypes_h.m4
@@ -1,8 +1,10 @@
-# inttypes_h.m4 serial 10
-dnl Copyright (C) 1997-2004, 2006, 2008-2024 Free Software Foundation, Inc.
+# inttypes_h.m4
+# serial 10
+dnl Copyright (C) 1997-2004, 2006, 2008-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 This file is offered as-is, without any warranty.
dnl From Paul Eggert.
diff --git a/gnulib-m4/ioctl.m4 b/gnulib-m4/ioctl.m4
index 42788830..12a1379d 100644
--- a/gnulib-m4/ioctl.m4
+++ b/gnulib-m4/ioctl.m4
@@ -1,8 +1,10 @@
-# ioctl.m4 serial 6
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# ioctl.m4
+# serial 6
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_IOCTL],
[
diff --git a/gnulib-m4/isblank.m4 b/gnulib-m4/isblank.m4
index d07472cd..6aaf6071 100644
--- a/gnulib-m4/isblank.m4
+++ b/gnulib-m4/isblank.m4
@@ -1,8 +1,10 @@
-# isblank.m4 serial 3
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# isblank.m4
+# serial 3
+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,
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_ISBLANK],
[
diff --git a/gnulib-m4/isnand.m4 b/gnulib-m4/isnand.m4
index c6a54f2f..16562866 100644
--- a/gnulib-m4/isnand.m4
+++ b/gnulib-m4/isnand.m4
@@ -1,12 +1,14 @@
-# isnand.m4 serial 14
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# isnand.m4
+# serial 15
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
dnl Check how to get or define isnand().
-AC_DEFUN([gl_FUNC_ISNAND],
+AC_DEFUN_ONCE([gl_FUNC_ISNAND],
[
AC_REQUIRE([gl_MATH_H_DEFAULTS])
ISNAND_LIBM=
diff --git a/gnulib-m4/isnanf.m4 b/gnulib-m4/isnanf.m4
index a53519e7..a23b22b1 100644
--- a/gnulib-m4/isnanf.m4
+++ b/gnulib-m4/isnanf.m4
@@ -1,8 +1,10 @@
-# isnanf.m4 serial 21
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# isnanf.m4
+# serial 22
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
dnl Check how to get or define isnanf().
@@ -113,9 +115,7 @@ AC_DEFUN([gl_HAVE_ISNANF_IN_LIBM],
])
])
-dnl Test whether isnanf() rejects Infinity (this fails on Solaris 2.5.1),
-dnl recognizes a NaN (this fails on IRIX 6.5 with cc), and recognizes a NaN
-dnl with in-memory representation 0x7fbfffff (this fails on IRIX 6.5).
+dnl Test whether isnanf() rejects Infinity (this fails on Solaris 2.5.1).
AC_DEFUN([gl_ISNANF_WORKS],
[
AC_REQUIRE([AC_PROG_CC])
@@ -133,20 +133,6 @@ AC_DEFUN([gl_ISNANF_WORKS],
# undef isnanf
# define isnanf(x) isnan ((float)(x))
#endif
-/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
-#ifdef __DECC
-static float
-NaN ()
-{
- static float zero = 0.0f;
- return zero / zero;
-}
-#else
-# define NaN() (0.0f / 0.0f)
-#endif
-#define NWORDS \
- ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { unsigned int word[NWORDS]; float value; } memory_float;
int main()
{
int result = 0;
@@ -154,32 +140,12 @@ int main()
if (isnanf (1.0f / 0.0f))
result |= 1;
- if (!isnanf (NaN ()))
- result |= 2;
-
-#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
- /* The isnanf function should be immune against changes in the sign bit and
- in the mantissa bits. The xor operation twiddles a bit that can only be
- a sign bit or a mantissa bit. */
- if (FLT_EXPBIT0_WORD == 0 && FLT_EXPBIT0_BIT > 0)
- {
- memory_float m;
-
- m.value = NaN ();
- /* Set the bits below the exponent to 01111...111. */
- m.word[0] &= -1U << FLT_EXPBIT0_BIT;
- m.word[0] |= (1U << (FLT_EXPBIT0_BIT - 1)) - 1;
- if (!isnanf (m.value))
- result |= 4;
- }
-#endif
-
return result;
}]])],
[gl_cv_func_isnanf_works=yes],
[gl_cv_func_isnanf_works=no],
[case "$host_os" in
- irix* | solaris*) gl_cv_func_isnanf_works="guessing no" ;;
+ solaris*) gl_cv_func_isnanf_works="guessing no" ;;
mingw* | windows*) # Guess yes on mingw, no on MSVC.
AC_EGREP_CPP([Known], [
#ifdef __MINGW32__
diff --git a/gnulib-m4/isnanl.m4 b/gnulib-m4/isnanl.m4
index 9f7a5f13..01b2928a 100644
--- a/gnulib-m4/isnanl.m4
+++ b/gnulib-m4/isnanl.m4
@@ -1,8 +1,10 @@
-# isnanl.m4 serial 26
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# isnanl.m4
+# serial 27
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_FUNC_ISNANL],
[
@@ -133,17 +135,7 @@ AC_DEFUN([gl_FUNC_ISNANL_WORKS],
((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
typedef union { unsigned int word[NWORDS]; long double value; }
memory_long_double;
-/* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the
- runtime type conversion. */
-#ifdef __sgi
-static long double NaNl ()
-{
- double zero = 0.0;
- return zero / zero;
-}
-#else
-# define NaNl() (0.0L / 0.0L)
-#endif
+#define NaNl() (0.0L / 0.0L)
int main ()
{
int result = 0;
diff --git a/gnulib-m4/iswblank.m4 b/gnulib-m4/iswblank.m4
index e450f0bd..d06b16a2 100644
--- a/gnulib-m4/iswblank.m4
+++ b/gnulib-m4/iswblank.m4
@@ -1,8 +1,10 @@
-# iswblank.m4 serial 7
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# iswblank.m4
+# serial 7
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_ISWBLANK],
[
diff --git a/gnulib-m4/iswdigit.m4 b/gnulib-m4/iswdigit.m4
index d13c1ae9..4582f598 100644
--- a/gnulib-m4/iswdigit.m4
+++ b/gnulib-m4/iswdigit.m4
@@ -1,8 +1,10 @@
-# iswdigit.m4 serial 6
-dnl Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# iswdigit.m4
+# serial 9
+dnl Copyright (C) 2020-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_ISWDIGIT],
[
@@ -10,7 +12,7 @@ AC_DEFUN([gl_FUNC_ISWDIGIT],
AC_REQUIRE([gl_WCTYPE_H])
AC_REQUIRE([gt_LOCALE_FR])
AC_REQUIRE([gt_LOCALE_JA])
- AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([gt_LOCALE_EN_UTF8])
AC_REQUIRE([gt_LOCALE_ZH_CN])
AC_REQUIRE([AC_CANONICAL_HOST])
@@ -25,14 +27,14 @@ AC_DEFUN([gl_FUNC_ISWDIGIT],
dnl is present.
changequote(,)dnl
case "$host_os" in
- # Guess no on FreeBSD, NetBSD, Solaris, native Windows.
- freebsd* | dragonfly* | netbsd* | solaris* | mingw* | windows*)
+ # Guess no on FreeBSD, NetBSD, OpenBSD, Solaris, native Windows, Haiku, Android.
+ freebsd* | dragonfly* | netbsd* | openbsd* | solaris* | mingw* | windows* | haiku* | *-android*)
gl_cv_func_iswdigit_works="guessing no" ;;
# Guess yes otherwise.
*) gl_cv_func_iswdigit_works="guessing yes" ;;
esac
changequote([,])dnl
- if test $LOCALE_FR != none || test $LOCALE_JA != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_ZH_CN != none; then
+ if test $LOCALE_FR != none || test $LOCALE_JA != none || test "$LOCALE_EN_UTF8" != none || test $LOCALE_ZH_CN != none; then
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <locale.h>
@@ -76,21 +78,21 @@ main (int argc, char *argv[])
if (strcmp ("$LOCALE_JA", "none") != 0
&& setlocale (LC_ALL, "$LOCALE_JA") != NULL)
{
- /* This fails on NetBSD 8.0. */
+ /* This fails on NetBSD 10.0. */
/* U+FF11 FULLWIDTH DIGIT ONE */
is = for_character ("\243\261", 2);
if (!(is == 0))
result |= 2;
}
- if (strcmp ("$LOCALE_FR_UTF8", "none") != 0
- && setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ if (strcmp ("$LOCALE_EN_UTF8", "none") != 0
+ && setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL)
{
- /* This fails on FreeBSD 13.0, NetBSD 8.0, MSVC 14. */
+ /* This fails on FreeBSD 13.0, NetBSD 10.0, OpenBSD 7.5, MSVC 14, Haiku, Android. */
/* U+0663 ARABIC-INDIC DIGIT THREE */
is = for_character ("\331\243", 2);
if (!(is == 0))
result |= 4;
- /* This fails on FreeBSD 13.0, NetBSD 8.0, MSVC 14. */
+ /* This fails on FreeBSD 13.0, NetBSD 10.0, OpenBSD 7.5, MSVC 14, Haiku, Android. */
/* U+FF11 FULLWIDTH DIGIT ONE */
is = for_character ("\357\274\221", 3);
if (!(is == 0))
@@ -99,7 +101,7 @@ main (int argc, char *argv[])
if (strcmp ("$LOCALE_ZH_CN", "none") != 0
&& setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
{
- /* This fails on NetBSD 8.0, Solaris 10, Solaris 11.4. */
+ /* This fails on NetBSD 10.0, Solaris 10, Solaris 11.4. */
/* U+FF11 FULLWIDTH DIGIT ONE */
is = for_character ("\243\261", 2);
if (!(is == 0))
diff --git a/gnulib-m4/iswpunct.m4 b/gnulib-m4/iswpunct.m4
index 2be15aba..d8e8d712 100644
--- a/gnulib-m4/iswpunct.m4
+++ b/gnulib-m4/iswpunct.m4
@@ -1,8 +1,10 @@
-# iswpunct.m4 serial 2
-dnl Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# iswpunct.m4
+# serial 2
+dnl Copyright (C) 2023-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_ISWPUNCT],
[
diff --git a/gnulib-m4/iswxdigit.m4 b/gnulib-m4/iswxdigit.m4
index d42f0d13..95226fc4 100644
--- a/gnulib-m4/iswxdigit.m4
+++ b/gnulib-m4/iswxdigit.m4
@@ -1,15 +1,17 @@
-# iswxdigit.m4 serial 6
-dnl Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# iswxdigit.m4
+# serial 9
+dnl Copyright (C) 2020-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_ISWXDIGIT],
[
AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
AC_REQUIRE([gl_WCTYPE_H])
AC_REQUIRE([gt_LOCALE_JA])
- AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([gt_LOCALE_EN_UTF8])
AC_REQUIRE([gt_LOCALE_ZH_CN])
AC_REQUIRE([AC_CANONICAL_HOST])
@@ -24,14 +26,14 @@ AC_DEFUN([gl_FUNC_ISWXDIGIT],
dnl is present.
changequote(,)dnl
case "$host_os" in
- # Guess no on FreeBSD, NetBSD, Solaris, native Windows.
- freebsd* | dragonfly* | netbsd* | solaris* | mingw* | windows*)
+ # Guess no on FreeBSD, NetBSD, OpenBSD, Solaris, native Windows, Haiku, Android.
+ freebsd* | dragonfly* | netbsd* | openbsd* | solaris* | mingw* | windows* | haiku* | *-android*)
gl_cv_func_iswxdigit_works="guessing no" ;;
# Guess yes otherwise.
*) gl_cv_func_iswxdigit_works="guessing yes" ;;
esac
changequote([,])dnl
- if test $LOCALE_JA != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_ZH_CN != none; then
+ if test $LOCALE_JA != none || test "$LOCALE_EN_UTF8" != none || test $LOCALE_ZH_CN != none; then
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <locale.h>
@@ -66,21 +68,21 @@ main (int argc, char *argv[])
if (strcmp ("$LOCALE_JA", "none") != 0
&& setlocale (LC_ALL, "$LOCALE_JA") != NULL)
{
- /* This fails on NetBSD 8.0. */
+ /* This fails on NetBSD 10.0. */
/* U+FF21 FULLWIDTH LATIN CAPITAL LETTER A */
is = for_character ("\243\301", 2);
if (!(is == 0))
result |= 1;
}
- if (strcmp ("$LOCALE_FR_UTF8", "none") != 0
- && setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ if (strcmp ("$LOCALE_EN_UTF8", "none") != 0
+ && setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL)
{
- /* This fails on FreeBSD 13.0. */
+ /* This fails on FreeBSD 13.0, Haiku, Android. */
/* U+0663 ARABIC-INDIC DIGIT THREE */
is = for_character ("\331\243", 2);
if (!(is == 0))
result |= 2;
- /* This fails on MSVC 14. */
+ /* This fails on NetBSD 10.0, OpenBSD 7.5, MSVC 14, Haiku, Android. */
/* U+FF21 FULLWIDTH LATIN CAPITAL LETTER A */
is = for_character ("\357\274\241", 3);
if (!(is == 0))
diff --git a/gnulib-m4/langinfo_h.m4 b/gnulib-m4/langinfo_h.m4
deleted file mode 100644
index 888b1612..00000000
--- a/gnulib-m4/langinfo_h.m4
+++ /dev/null
@@ -1,137 +0,0 @@
-# langinfo_h.m4 serial 12
-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.
-
-AC_DEFUN_ONCE([gl_LANGINFO_H],
-[
- AC_REQUIRE([gl_LANGINFO_H_DEFAULTS])
-
- dnl Persuade glibc-2.0.6 <langinfo.h> to define CODESET.
- AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-
- dnl <langinfo.h> is always overridden, because of GNULIB_POSIXCHECK.
- gl_CHECK_NEXT_HEADERS([langinfo.h])
-
- dnl Determine whether <langinfo.h> exists. It is missing on mingw and BeOS.
- HAVE_LANGINFO_CODESET=0
- HAVE_LANGINFO_T_FMT_AMPM=0
- HAVE_LANGINFO_ALTMON=0
- HAVE_LANGINFO_ERA=0
- HAVE_LANGINFO_YESEXPR=0
- AC_CHECK_HEADERS_ONCE([langinfo.h])
- if test $ac_cv_header_langinfo_h = yes; then
- HAVE_LANGINFO_H=1
- dnl Determine what <langinfo.h> defines.
- dnl CODESET is missing on OpenBSD 3.8.
- dnl ERA etc. are missing on OpenBSD 6.7.
- dnl T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3.
- dnl ALTMON_* are missing on glibc 2.26 and many other systems.
- AC_CACHE_CHECK([whether langinfo.h defines CODESET],
- [gl_cv_header_langinfo_codeset],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#include <langinfo.h>
-int a = CODESET;
-]])],
- [gl_cv_header_langinfo_codeset=yes],
- [gl_cv_header_langinfo_codeset=no])
- ])
- if test $gl_cv_header_langinfo_codeset = yes; then
- HAVE_LANGINFO_CODESET=1
- fi
- AC_CACHE_CHECK([whether langinfo.h defines T_FMT_AMPM],
- [gl_cv_header_langinfo_t_fmt_ampm],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#include <langinfo.h>
-int a = T_FMT_AMPM;
-]])],
- [gl_cv_header_langinfo_t_fmt_ampm=yes],
- [gl_cv_header_langinfo_t_fmt_ampm=no])
- ])
- if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
- HAVE_LANGINFO_T_FMT_AMPM=1
- fi
- AC_CACHE_CHECK([whether langinfo.h defines ALTMON_1],
- [gl_cv_header_langinfo_altmon],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#include <langinfo.h>
-int a = ALTMON_1;
-]])],
- [gl_cv_header_langinfo_altmon=yes],
- [gl_cv_header_langinfo_altmon=no])
- ])
- if test $gl_cv_header_langinfo_altmon = yes; then
- HAVE_LANGINFO_ALTMON=1
- fi
- AC_CACHE_CHECK([whether langinfo.h defines ERA],
- [gl_cv_header_langinfo_era],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#include <langinfo.h>
-int a = ERA;
-]])],
- [gl_cv_header_langinfo_era=yes],
- [gl_cv_header_langinfo_era=no])
- ])
- if test $gl_cv_header_langinfo_era = yes; then
- HAVE_LANGINFO_ERA=1
- fi
- AC_CACHE_CHECK([whether langinfo.h defines YESEXPR],
- [gl_cv_header_langinfo_yesexpr],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#include <langinfo.h>
-int a = YESEXPR;
-]])],
- [gl_cv_header_langinfo_yesexpr=yes],
- [gl_cv_header_langinfo_yesexpr=no])
- ])
- if test $gl_cv_header_langinfo_yesexpr = yes; then
- HAVE_LANGINFO_YESEXPR=1
- fi
- else
- HAVE_LANGINFO_H=0
- fi
- AC_SUBST([HAVE_LANGINFO_H])
- AC_SUBST([HAVE_LANGINFO_CODESET])
- AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM])
- AC_SUBST([HAVE_LANGINFO_ALTMON])
- AC_SUBST([HAVE_LANGINFO_ERA])
- AC_SUBST([HAVE_LANGINFO_YESEXPR])
-
- 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 <langinfo.h>
- ]], [nl_langinfo])
-])
-
-# gl_LANGINFO_MODULE_INDICATOR([modulename])
-# sets the shell variable that indicates the presence of the given module
-# to a C preprocessor expression that will evaluate to 1.
-# This macro invocation must not occur in macros that are AC_REQUIREd.
-AC_DEFUN([gl_LANGINFO_MODULE_INDICATOR],
-[
- dnl Ensure to expand the default settings once only.
- gl_LANGINFO_H_REQUIRE_DEFAULTS
- gl_MODULE_INDICATOR_SET_VARIABLE([$1])
- dnl Define it also as a C macro, for the benefit of the unit tests.
- gl_MODULE_INDICATOR_FOR_TESTS([$1])
-])
-
-# Initializes the default values for AC_SUBSTed shell variables.
-# This macro must not be AC_REQUIREd. It must only be invoked, and only
-# outside of macros or in macros that are not AC_REQUIREd.
-AC_DEFUN([gl_LANGINFO_H_REQUIRE_DEFAULTS],
-[
- m4_defun(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS], [
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NL_LANGINFO])
- ])
- m4_require(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS])
- AC_REQUIRE([gl_LANGINFO_H_DEFAULTS])
-])
-
-AC_DEFUN([gl_LANGINFO_H_DEFAULTS],
-[
- dnl Assume proper GNU behavior unless another module says otherwise.
- HAVE_NL_LANGINFO=1; AC_SUBST([HAVE_NL_LANGINFO])
- REPLACE_NL_LANGINFO=0; AC_SUBST([REPLACE_NL_LANGINFO])
-])
diff --git a/gnulib-m4/largefile.m4 b/gnulib-m4/largefile.m4
index cbe9bc1f..6aa07078 100644
--- a/gnulib-m4/largefile.m4
+++ b/gnulib-m4/largefile.m4
@@ -1,11 +1,14 @@
+# largefile.m4
+# serial 4
+dnl Copyright 1992-1996, 1998-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 This file is offered as-is, without any warranty.
+
# Enable large files on systems where this is not the default.
# Enable support for files on Linux file systems with 64-bit inode numbers.
-# Copyright 1992-1996, 1998-2024 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.
-
# The following macro works around a problem in Autoconf's AC_FUNC_FSEEKO:
# It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this
# setting of _LARGEFILE_SOURCE is needed so that <stdio.h> declares fseeko
@@ -24,9 +27,20 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
]])
)
+dnl Remove AC_SYS_YEAR2038_RECOMMENDED if unpatched Autoconf 2.72 or earlier.
+dnl Autoconf 2.72 still uses -n32, which is not a C preprocessor option,
+dnl and which was useful only on IRIX which is no longer supported.
+dnl This should be fixed in Autoconf 2.73.
+m4_ifdef([AC_SYS_YEAR2038_RECOMMENDED],
+ [m4_bmatch(m4_ifdef([_AC_SYS_LARGEFILE_OPTIONS],
+ [m4_defn([_AC_SYS_LARGEFILE_OPTIONS])],
+ ["-n32"]),
+ ["-n32"],
+ [m4_undefine([AC_SYS_YEAR2038_RECOMMENDED])])])
+
m4_ifndef([AC_SYS_YEAR2038_RECOMMENDED], [
-# Support AC_SYS_YEAR2038_RECOMMENDED and related macros, even if
-# Autoconf 2.71 or earlier. This code is taken from Autoconf master.
+# Fix up AC_SYS_YEAR2038_RECOMMENDED and related macros, even if
+# unpatched Autoconf 2.72 or earlier. This code is taken from Autoconf master.
# _AC_SYS_YEAR2038_TEST_CODE
# --------------------------
@@ -75,7 +89,7 @@ m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
# If you change this macro you may also need to change
# _AC_SYS_YEAR2038_OPTIONS.
AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
-[AC_CACHE_CHECK([for $CC option for timestamps after 2038],
+[AC_CACHE_CHECK([for $CC option to support timestamps after 2038],
[ac_cv_sys_year2038_opts],
[ac_save_CPPFLAGS="$CPPFLAGS"
ac_opt_found=no
@@ -205,7 +219,6 @@ m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
["none needed"] dnl Most current systems
["-D_FILE_OFFSET_BITS=64"] dnl X/Open LFS spec
["-D_LARGE_FILES=1"] dnl 32-bit AIX 4.2.1+, 32-bit z/OS
- ["-n32"] dnl 32-bit IRIX 6, SGI cc (obsolete)
))
# _AC_SYS_LARGEFILE_PROBE
@@ -222,25 +235,25 @@ m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
# If you change this macro you may also need to change
# _AC_SYS_LARGEFILE_OPTIONS.
AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
-[AC_CACHE_CHECK([for $CC option to enable large file support],
+[AC_CACHE_CHECK([for $CC option to support large files],
[ac_cv_sys_largefile_opts],
- [ac_save_CC="$CC"
+ [ac_save_CPPFLAGS=$CPPFLAGS
ac_opt_found=no
for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do
AS_IF([test x"$ac_opt" != x"none needed"],
- [CC="$ac_save_CC $ac_opt"])
+ [CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
[AS_IF([test x"$ac_opt" = x"none needed"],
[# GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t.
- CC="$CC -DFTYPE=ino_t"
+ CPPFLAGS="$CPPFLAGS -DFTYPE=ino_t"
AC_COMPILE_IFELSE([], [],
- [CC="$CC -D_FILE_OFFSET_BITS=64"
+ [CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
AC_COMPILE_IFELSE([], [ac_opt='-D_FILE_OFFSET_BITS=64'])])])
ac_cv_sys_largefile_opts=$ac_opt
ac_opt_found=yes])
test $ac_opt_found = no || break
done
- CC="$ac_save_CC"
+ CPPFLAGS=$ac_save_CPPFLAGS
dnl Gnulib implements large file support for native Windows, based on the
dnl variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE.
m4_ifdef([gl_LARGEFILE], [
@@ -270,9 +283,6 @@ AS_CASE([$ac_cv_sys_largefile_opts],
[AC_DEFINE([_LARGE_FILES], [1],
[Define to 1 on platforms where this makes off_t a 64-bit type.])],
- ["-n32"],
- [CC="$CC -n32"],
-
[AC_MSG_ERROR(
[internal error: bad value for \$ac_cv_sys_largefile_opts])])
@@ -285,7 +295,7 @@ AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])])
# By default, many hosts won't let programs access large files;
# one must use special compiler options to get large-file access to work.
# For more details about this brain damage please see:
-# http://www.unix.org/version2/whatsnew/lfs20mar.html
+# https://www.unix.org/version2/whatsnew/lfs20mar.html
# Additionally, on Linux file systems with 64-bit inodes a file that happens
# to have a 64-bit inode number cannot be accessed by 32-bit applications on
# Linux x86/x86_64. This can occur with file systems such as XFS and NFS.
@@ -345,8 +355,7 @@ AC_DEFUN([gl_LARGEFILE],
*)
dnl Nothing to do on gnulib's side.
dnl A 64-bit off_t is
- dnl - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX,
- dnl OSF/1, Cygwin,
+ dnl - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, Cygwin,
dnl - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on
dnl glibc, HP-UX, Solaris,
dnl - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX,
diff --git a/gnulib-m4/lcmessage.m4 b/gnulib-m4/lcmessage.m4
index 7f4646cd..e83f1fa4 100644
--- a/gnulib-m4/lcmessage.m4
+++ b/gnulib-m4/lcmessage.m4
@@ -1,9 +1,11 @@
-# lcmessage.m4 serial 8
-dnl Copyright (C) 1995-2002, 2004-2005, 2008-2014, 2016, 2019-2024 Free
+# lcmessage.m4
+# serial 8
+dnl Copyright (C) 1995-2002, 2004-2005, 2008-2014, 2016, 2019-2025 Free
dnl 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
dnl This file can be used in projects which are not available under
dnl the GNU General Public License or the GNU Lesser General Public
diff --git a/gnulib-m4/ldexpl.m4 b/gnulib-m4/ldexpl.m4
index 92fa523c..5288d72f 100644
--- a/gnulib-m4/ldexpl.m4
+++ b/gnulib-m4/ldexpl.m4
@@ -1,8 +1,10 @@
-# ldexpl.m4 serial 19
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# ldexpl.m4
+# serial 19
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_LDEXPL],
[
diff --git a/gnulib-m4/lib-ld.m4 b/gnulib-m4/lib-ld.m4
index b17e0fda..3714b9ce 100644
--- a/gnulib-m4/lib-ld.m4
+++ b/gnulib-m4/lib-ld.m4
@@ -1,8 +1,10 @@
-# lib-ld.m4 serial 13
-dnl Copyright (C) 1996-2003, 2009-2024 Free Software Foundation, Inc.
+# lib-ld.m4
+# serial 13
+dnl Copyright (C) 1996-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.
+dnl This file is offered as-is, without any warranty.
dnl Subroutines of libtool.m4,
dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid
diff --git a/gnulib-m4/lib-link.m4 b/gnulib-m4/lib-link.m4
index 1a7c1273..1863f4e1 100644
--- a/gnulib-m4/lib-link.m4
+++ b/gnulib-m4/lib-link.m4
@@ -1,8 +1,10 @@
-# lib-link.m4 serial 34
-dnl Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# lib-link.m4
+# serial 35
+dnl Copyright (C) 2001-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
@@ -168,7 +170,7 @@ AC_DEFUN([AC_LIB_FROMPACKAGE],
pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
define([acl_libsinpackage_]PACKUP,
- m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1])
+ m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[[, ]]],)[lib$1])
popdef([PACKUP])
popdef([PACK])
])
diff --git a/gnulib-m4/lib-prefix.m4 b/gnulib-m4/lib-prefix.m4
index f327c6ef..29283534 100644
--- a/gnulib-m4/lib-prefix.m4
+++ b/gnulib-m4/lib-prefix.m4
@@ -1,8 +1,10 @@
-# lib-prefix.m4 serial 22
-dnl Copyright (C) 2001-2005, 2008-2024 Free Software Foundation, Inc.
+# lib-prefix.m4
+# serial 23
+dnl Copyright (C) 2001-2005, 2008-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
@@ -174,7 +176,7 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf],
[AC_EGREP_CPP([Extensible Linking Format],
- [#if defined __ELF__ || (defined __linux__ && defined __EDG__)
+ [#if defined __ELF__ || (defined __linux__ && (defined __EDG__ || defined __SUNPRO_C))
Extensible Linking Format
#endif
],
diff --git a/gnulib-m4/libunistring-base.m4 b/gnulib-m4/libunistring-base.m4
index 7c3f65ea..9b5795ed 100644
--- a/gnulib-m4/libunistring-base.m4
+++ b/gnulib-m4/libunistring-base.m4
@@ -1,8 +1,10 @@
-# libunistring-base.m4 serial 8
-dnl Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# libunistring-base.m4
+# serial 10
+dnl Copyright (C) 2010-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 This file is offered as-is, without any warranty.
dnl From Paolo Bonzini and Bruno Haible.
@@ -39,8 +41,10 @@ dnl (This is necessary because this token must be present in the .h files
dnl when the .h files get installed.)
dnl - When building gnulib or application code it expands to
dnl - LIBUNISTRING_DLL_VARIABLE by default,
-dnl - empty if the automake conditional LIBUNISTRING_COMPILE_$MODULE
-dnl evaluates to true.
+dnl - if the automake conditional LIBUNISTRING_COMPILE_$MODULE evaluates
+dnl to true: the value of
+dnl ${module_indicator_prefix}_GNULIB_LIBUNISTRING_DLL_VARIABLE_NAME
+dnl (which usually is empty, unless explicitly set in configure.ac).
dnl (This is necessary because when the conditional evaluates to false,
dnl the application code expects to use the declared variable from the
dnl installed libunistring; it's in this case that the
@@ -54,7 +58,7 @@ AC_DEFUN([gl_LIBUNISTRING_MODULE_WITH_VARIABLE],
gl_LIBUNISTRING_MODULE([$1], [$2])
m4_ifndef([gl_IN_LIBUNISTRING],
[if test -z "${AS_TR_CPP([LIBUNISTRING_COMPILE_$2])_TRUE}"; then
- GL_MODULE_INDICATOR_PREFIX[]_GNULIB_[]AS_TR_CPP([$2_DLL_VARIABLE])=
+ GL_MODULE_INDICATOR_PREFIX[]_GNULIB_[]AS_TR_CPP([$2_DLL_VARIABLE])=$GL_MODULE_INDICATOR_PREFIX[]_GNULIB_LIBUNISTRING_DLL_VARIABLE_NAME
fi
])
])
@@ -152,6 +156,10 @@ dnl gl_LIBUNISTRING_VERSION_CMP([VERSION])
dnl Expands to a shell statement that evaluates to true if LIBUNISTRING_VERSION
dnl is less than the VERSION argument.
AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP],
+[dnl VERSION = 999.9 means to evaluates to true always, i.e. to ignore
+dnl the installed libunistring regardless of its version.
+m4_if([$1], [999.9],
+[true],
[ { test "$HAVE_LIBUNISTRING" != yes \
|| {
dnl AS_LITERAL_IF exists and works fine since autoconf-2.59 at least.
@@ -189,7 +197,7 @@ AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP],
}
])
}
- }])
+ }])])
dnl gl_LIBUNISTRING_ARG_OR_ZERO([ARG], [ORIG]) expands to ARG if it is not the
dnl same as ORIG, otherwise to 0.
diff --git a/gnulib-m4/limits-h.m4 b/gnulib-m4/limits-h.m4
index 18253283..202df492 100644
--- a/gnulib-m4/limits-h.m4
+++ b/gnulib-m4/limits-h.m4
@@ -1,9 +1,12 @@
-dnl Check whether limits.h has needed features.
-
-dnl Copyright 2016-2024 Free Software Foundation, Inc.
+# limits-h.m4
+# serial 1
+dnl Copyright 2016-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 This file is offered as-is, without any warranty.
+
+dnl Check whether limits.h has needed features.
dnl From Paul Eggert.
diff --git a/gnulib-m4/localcharset.m4 b/gnulib-m4/localcharset.m4
index abf07dc3..374a48f1 100644
--- a/gnulib-m4/localcharset.m4
+++ b/gnulib-m4/localcharset.m4
@@ -1,8 +1,10 @@
-# localcharset.m4 serial 8
-dnl Copyright (C) 2002, 2004, 2006, 2009-2024 Free Software Foundation, Inc.
+# localcharset.m4
+# serial 8
+dnl Copyright (C) 2002, 2004, 2006, 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.
+dnl This file is offered as-is, without any warranty.
AC_DEFUN([gl_LOCALCHARSET],
[
diff --git a/gnulib-m4/locale-ar.m4 b/gnulib-m4/locale-ar.m4
index e7d23f44..d5fa9561 100644
--- a/gnulib-m4/locale-ar.m4
+++ b/gnulib-m4/locale-ar.m4
@@ -1,8 +1,10 @@
-# locale-ar.m4 serial 11
-dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc.
+# locale-ar.m4
+# serial 12
+dnl Copyright (C) 2003, 2005-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 This file is offered as-is, without any warranty.
dnl From Ben Pfaff, based on locale-fr.m4 by Bruno Haible.
@@ -64,10 +66,11 @@ int main () {
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" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "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" as "Japanese" or "Japanese_Japan.932",
+ # "ja" or "jpn" as "Japanese" or "Japanese_Japan.932",
# and similar.
mingw* | windows*)
# Note that on native Windows, the Arabic locale is
@@ -84,7 +87,7 @@ int main () {
# - The usual locale name: ar_SA
# - The locale name with explicit encoding suffix: ar_SA.ISO-8859-6
# - The HP-UX locale name: ar_SA.iso88596
- # - The Solaris 7 locale name: ar
+ # - The Solaris 10 locale name: ar
# Also try ar_EG instead of ar_SA because Egypt is a large country too.
for gt_cv_locale_ar in ar_SA ar_SA.ISO-8859-6 ar_SA.iso88596 ar_EG ar_EG.ISO-8859-6 ar_EG.iso88596 ar none; do
if test $gt_cv_locale_ar = none; then
diff --git a/gnulib-m4/locale-en.m4 b/gnulib-m4/locale-en.m4
new file mode 100644
index 00000000..4151428a
--- /dev/null
+++ b/gnulib-m4/locale-en.m4
@@ -0,0 +1,138 @@
+# locale-en.m4
+# serial 1
+dnl Copyright (C) 2003-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 This file is offered as-is, without any warranty.
+
+dnl From Bruno Haible.
+
+dnl Determine the name of an English (or American English) locale with
+dnl UTF-8 encoding.
+AC_DEFUN_ONCE([gt_LOCALE_EN_UTF8],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AM_LANGINFO_CODESET])
+ AC_CACHE_CHECK([for an english Unicode locale], [gt_cv_locale_en_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_en_utf8=en_US.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 "UTF-8" or equivalent. */
+# if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (!(strcmp (cs, "UTF-8") == 0 || strcmp (cs, "UTF8") == 0
+ || strcmp (cs, "utf-8") == 0 || strcmp (cs, "utf8") == 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 the third month name. */
+ t.tm_year = 1975 - 1900; t.tm_mon = 3 - 1; t.tm_mday = 24;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 5 || strcmp (buf, "March") != 0)
+ return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
+ /* Check whether the decimal separator is a dot. */
+ 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='English_United States.65001' LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_en_utf8='English_United States.65001'
+ else
+ # None found.
+ gt_cv_locale_en_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 locale name with explicit encoding suffix first
+ # (this is necessary on Haiku).
+ if (LC_ALL=en_US.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_en_utf8=en_US.UTF-8
+ else
+ # Test for the locale name without encoding suffix.
+ if (LC_ALL=en_US LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_en_utf8=en_US
+ else
+ # Test for the Solaris 10 locale name.
+ if (LC_ALL=en.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_en_utf8=en.UTF-8
+ else
+ # None found.
+ gt_cv_locale_en_utf8=none
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+ ;;
+ esac
+ ])
+ LOCALE_EN_UTF8="$gt_cv_locale_en_utf8"
+ case "$LOCALE_EN_UTF8" in #(
+ '' | *[[\"\$\'*@<:@]]*)
+ dnl The empty value occurs when the conftest.c program above could not
+ dnl be compiled. The other values might cause trouble with sh or make.
+ AC_MSG_WARN([invalid locale "$LOCALE_EN_UTF8"; assuming "none"])
+ LOCALE_EN_UTF8=none;;
+ esac
+ AC_SUBST([LOCALE_EN_UTF8])
+])
diff --git a/gnulib-m4/locale-fr.m4 b/gnulib-m4/locale-fr.m4
index c9528562..31c3bf33 100644
--- a/gnulib-m4/locale-fr.m4
+++ b/gnulib-m4/locale-fr.m4
@@ -1,8 +1,10 @@
-# locale-fr.m4 serial 23
-dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc.
+# locale-fr.m4
+# serial 25
+dnl Copyright (C) 2003, 2005-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
@@ -70,8 +72,9 @@ int main () {
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, localeconv()->decimal_point
- are nl_langinfo(RADIXCHAR) are both ".". */
+ 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;
@@ -81,10 +84,11 @@ int main () {
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" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "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" as "Japanese" or "Japanese_Japan.932",
+ # "ja" or "jpn" as "Japanese" or "Japanese_Japan.932",
# and similar.
mingw* | windows*)
# Test for the native Windows locale name.
@@ -108,7 +112,7 @@ int main () {
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.
+ # Test for the AIX, 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
@@ -116,7 +120,7 @@ int main () {
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 7 locale name.
+ # 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
@@ -213,8 +217,9 @@ int main () {
#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, localeconv()->decimal_point
- are nl_langinfo(RADIXCHAR) are both ".". */
+ 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;
@@ -223,10 +228,11 @@ int main () {
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" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "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" as "Japanese" or "Japanese_Japan.932",
+ # "ja" or "jpn" as "Japanese" or "Japanese_Japan.932",
# and similar.
mingw* | windows*)
# Test for the hypothetical native Windows locale name.
@@ -250,7 +256,7 @@ int main () {
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 7 locale name.
+ # 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
diff --git a/gnulib-m4/locale-ja.m4 b/gnulib-m4/locale-ja.m4
index 71a9863b..4b256859 100644
--- a/gnulib-m4/locale-ja.m4
+++ b/gnulib-m4/locale-ja.m4
@@ -1,8 +1,10 @@
-# locale-ja.m4 serial 18
-dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc.
+# locale-ja.m4
+# serial 21
+dnl Copyright (C) 2003, 2005-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
@@ -85,10 +87,11 @@ int main ()
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" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "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" as "Japanese" or "Japanese_Japan.932",
+ # "ja" or "jpn" as "Japanese" or "Japanese_Japan.932",
# and similar.
mingw* | windows*)
# Note that on native Windows, the Japanese locale is
@@ -109,15 +112,15 @@ int main ()
if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
gt_cv_locale_ja=ja_JP.EUC-JP
else
- # Test for the HP-UX, OSF/1, NetBSD locale name.
+ # Test for the HP-UX, NetBSD locale name.
if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
gt_cv_locale_ja=ja_JP.eucJP
else
- # Test for the IRIX, FreeBSD locale name.
+ # Test for the FreeBSD locale name.
if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
gt_cv_locale_ja=ja_JP.EUC
else
- # Test for the Solaris 7 locale name.
+ # Test for the Solaris 10 locale name.
if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
gt_cv_locale_ja=ja
else
diff --git a/gnulib-m4/locale-tr.m4 b/gnulib-m4/locale-tr.m4
index b68e429a..7983fd63 100644
--- a/gnulib-m4/locale-tr.m4
+++ b/gnulib-m4/locale-tr.m4
@@ -1,8 +1,10 @@
-# locale-tr.m4 serial 15
-dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc.
+# locale-tr.m4
+# serial 16
+dnl Copyright (C) 2003, 2005-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
@@ -78,10 +80,11 @@ int main () {
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" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "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" as "Japanese" or "Japanese_Japan.932",
+ # "ja" or "jpn" as "Japanese" or "Japanese_Japan.932",
# and similar.
mingw* | windows*)
# Test for the hypothetical native Windows locale name.
@@ -105,7 +108,7 @@ int main () {
if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
gt_cv_locale_tr_utf8=tr_TR.UTF-8
else
- # Test for the Solaris 7 locale name.
+ # Test for the Solaris 10 locale name.
if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
gt_cv_locale_tr_utf8=tr.UTF-8
else
diff --git a/gnulib-m4/locale-zh.m4 b/gnulib-m4/locale-zh.m4
index f1a58c63..6f9374d2 100644
--- a/gnulib-m4/locale-zh.m4
+++ b/gnulib-m4/locale-zh.m4
@@ -1,8 +1,10 @@
-# locale-zh.m4 serial 18
-dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc.
+# locale-zh.m4
+# serial 20
+dnl Copyright (C) 2003, 2005-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
@@ -21,6 +23,7 @@ AC_DEFUN_ONCE([gt_LOCALE_ZH_CN],
#endif
#include <stdlib.h>
#include <string.h>
+#include <wchar.h>
struct tm t;
char buf[16];
int main ()
@@ -79,6 +82,19 @@ int main ()
single wide character. This excludes the GB2312 and GBK encodings. */
if (mblen ("\203\062\332\066", 5) != 4)
return 1;
+ /* Check whether mbrtowc accept this character one byte at a time.
+ This excludes NetBSD 10.0. */
+ if (sizeof (wchar_t) > 2)
+ {
+ wchar_t wc;
+ mbstate_t state;
+ memset (&state, 0, sizeof (state));
+ if (!(mbrtowc (&wc, "\203", 1, &state) == (size_t)(-2)
+ && mbrtowc (&wc, "\062", 1, &state) == (size_t)(-2)
+ && mbrtowc (&wc, "\332", 1, &state) == (size_t)(-2)
+ && mbrtowc (&wc, "\066", 1, &state) == 1))
+ return 1;
+ }
return 0;
#endif
}
@@ -86,10 +102,11 @@ int main ()
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" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "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" as "Japanese" or "Japanese_Japan.932",
+ # "ja" or "jpn" as "Japanese" or "Japanese_Japan.932",
# and similar.
mingw* | windows*)
# Test for the hypothetical native Windows locale name.
diff --git a/gnulib-m4/locale_h.m4 b/gnulib-m4/locale_h.m4
index c47e3f6f..ae01b4ff 100644
--- a/gnulib-m4/locale_h.m4
+++ b/gnulib-m4/locale_h.m4
@@ -1,8 +1,10 @@
-# locale_h.m4 serial 31
-dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
+# locale_h.m4
+# serial 39
+dnl Copyright (C) 2007, 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.
+dnl This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_LOCALE_H],
[
@@ -18,6 +20,26 @@ AC_DEFUN_ONCE([gl_LOCALE_H],
AC_REQUIRE([gl_STDDEF_H])
AC_REQUIRE([gl_LOCALE_T])
+ dnl On native Windows, there is a type '_locale_t' that can be used to
+ dnl define locale_t.
+ AC_CACHE_CHECK([whether locale.h defines _locale_t],
+ [gl_cv_header_locale_has_windows_locale_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <locale.h>
+ _locale_t x;]],
+ [[]])],
+ [gl_cv_header_locale_has_windows_locale_t=yes],
+ [gl_cv_header_locale_has_windows_locale_t=no])
+ ])
+ if test $gl_cv_header_locale_has_windows_locale_t = yes; then
+ HAVE_WINDOWS_LOCALE_T=1
+ AC_DEFINE([HAVE_WINDOWS_LOCALE_T], [1],
+ [Define to 1 if <locale.h> defines the _locale_t type.])
+ else
+ HAVE_WINDOWS_LOCALE_T=0
+ fi
+ AC_SUBST([HAVE_WINDOWS_LOCALE_T])
dnl Solaris 11.0 defines the int_p_*, int_n_* members of 'struct lconv'
dnl only if _LCONV_C99 is defined.
@@ -41,8 +63,8 @@ AC_DEFUN_ONCE([gl_LOCALE_H],
dnl Check whether 'struct lconv' is complete.
dnl Bionic libc's 'struct lconv' is just a dummy.
- dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x,
- dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members.
+ dnl On OpenBSD 4.9, HP-UX 11, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9,
+ dnl it lacks the int_p_* and int_n_* members.
AC_CACHE_CHECK([whether struct lconv is properly defined],
[gl_cv_sys_struct_lconv_ok],
[AC_COMPILE_IFELSE(
@@ -85,7 +107,7 @@ AC_DEFUN_ONCE([gl_LOCALE_H],
# include <xlocale.h>
#endif
]],
- [setlocale newlocale duplocale freelocale])
+ [setlocale newlocale duplocale freelocale getlocalename_l])
])
dnl Checks to determine whether the system has the locale_t type,
@@ -129,6 +151,7 @@ AC_DEFUN([gl_LOCALE_T],
fi
fi
AC_SUBST([HAVE_XLOCALE_H])
+ AC_SUBST([HAVE_LOCALE_T])
])
# gl_LOCALE_MODULE_INDICATOR([modulename])
@@ -153,7 +176,11 @@ AC_DEFUN([gl_LOCALE_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALECONV])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE_NULL])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NEWLOCALE])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUPLOCALE])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREELOCALE])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOCALENAME_L])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOCALENAME_L_UNSAFE])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALENAME_UNSAFE])
])
m4_require(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS])
@@ -163,14 +190,16 @@ AC_DEFUN([gl_LOCALE_H_REQUIRE_DEFAULTS],
AC_DEFUN([gl_LOCALE_H_DEFAULTS],
[
dnl Assume proper GNU behavior unless another module says otherwise.
- HAVE_NEWLOCALE=1; AC_SUBST([HAVE_NEWLOCALE])
- HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE])
- HAVE_FREELOCALE=1; AC_SUBST([HAVE_FREELOCALE])
- REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV])
- REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE])
- REPLACE_NEWLOCALE=0; AC_SUBST([REPLACE_NEWLOCALE])
- REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE])
- REPLACE_FREELOCALE=0; AC_SUBST([REPLACE_FREELOCALE])
- REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV])
+ HAVE_NEWLOCALE=1; AC_SUBST([HAVE_NEWLOCALE])
+ HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE])
+ HAVE_FREELOCALE=1; AC_SUBST([HAVE_FREELOCALE])
+ HAVE_GETLOCALENAME_L=1; AC_SUBST([HAVE_GETLOCALENAME_L])
+ REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV])
+ REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE])
+ REPLACE_NEWLOCALE=0; AC_SUBST([REPLACE_NEWLOCALE])
+ REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE])
+ REPLACE_FREELOCALE=0; AC_SUBST([REPLACE_FREELOCALE])
+ REPLACE_GETLOCALENAME_L=0; AC_SUBST([REPLACE_GETLOCALENAME_L])
+ REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV])
LOCALENAME_ENHANCE_LOCALE_FUNCS=0; AC_SUBST([LOCALENAME_ENHANCE_LOCALE_FUNCS])
])
diff --git a/gnulib-m4/localeconv.m4 b/gnulib-m4/localeconv.m4
new file mode 100644
index 00000000..55a669d0
--- /dev/null
+++ b/gnulib-m4/localeconv.m4
@@ -0,0 +1,61 @@
+# localeconv.m4
+# serial 3
+dnl Copyright (C) 2012-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 This file is offered as-is, without any warranty.
+
+AC_DEFUN([gl_FUNC_LOCALECONV],
+[
+ AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
+ AC_REQUIRE([gl_LOCALE_H])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ if test $REPLACE_STRUCT_LCONV = 1; then
+ REPLACE_LOCALECONV=1
+ fi
+ if test $REPLACE_LOCALECONV = 0; then
+ dnl Test whether fields of type 'char' are filled correctly.
+ dnl This test fails on mingw 5.0.3.
+ AC_CACHE_CHECK([whether localeconv works],
+ [gl_cv_func_localeconv_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <locale.h>
+ #include <limits.h>
+ int main ()
+ {
+ struct lconv *l = localeconv ();
+ return l->frac_digits != CHAR_MAX && l->frac_digits < 0;
+ }
+ ]])],
+ [gl_cv_func_localeconv_works=yes],
+ [gl_cv_func_localeconv_works=no],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_localeconv_works="guessing yes" ;;
+ # Guess yes on musl systems.
+ *-musl* | midipix*) gl_cv_func_localeconv_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw* | windows*) gl_cv_func_localeconv_works="guessing no" ;;
+ # If we don't know, obey --enable-cross-guesses.
+ *) gl_cv_func_localeconv_works="$gl_cross_guess_normal" ;;
+ esac
+ ])
+ ])
+ case "$gl_cv_func_localeconv_works" in
+ *yes) ;;
+ *) REPLACE_LOCALECONV=1 ;;
+ esac
+ fi
+])
+
+# Prerequisites of lib/localeconv.c.
+AC_DEFUN([gl_PREREQ_LOCALECONV],
+[
+ AC_CHECK_MEMBERS([struct lconv.decimal_point], [], [],
+ [[#include <locale.h>]])
+ AC_CHECK_MEMBERS([struct lconv.int_p_cs_precedes], [], [],
+ [[#include <locale.h>]])
+])
diff --git a/gnulib-m4/localename.m4 b/gnulib-m4/localename.m4
index d91fd5de..5cb26481 100644
--- a/gnulib-m4/localename.m4
+++ b/gnulib-m4/localename.m4
@@ -1,61 +1,24 @@
-# localename.m4 serial 12
-dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
+# localename.m4
+# serial 15
+dnl Copyright (C) 2007, 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.
+dnl This file is offered as-is, without any warranty.
AC_DEFUN([gl_LOCALENAME_UNSAFE],
[
- AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
- AC_REQUIRE([gl_LOCALE_T])
AC_REQUIRE([gt_LC_MESSAGES])
- AC_REQUIRE([gt_INTL_THREAD_LOCALE_NAME])
AC_REQUIRE([gt_INTL_MACOSX])
- AC_CHECK_HEADERS_ONCE([langinfo.h])
- if test $HAVE_LOCALE_T = 1; then
- gl_CHECK_FUNCS_ANDROID([newlocale], [[#include <locale.h>]])
- gl_CHECK_FUNCS_ANDROID([duplocale], [[#include <locale.h>]])
- gl_CHECK_FUNCS_ANDROID([freelocale], [[#include <locale.h>]])
- gl_func_newlocale="$ac_cv_func_newlocale"
- gl_func_duplocale="$ac_cv_func_duplocale"
- gl_func_freelocale="$ac_cv_func_freelocale"
- else
- dnl In 2019, some versions of z/OS lack the locale_t type and have broken
- dnl newlocale, duplocale, freelocale functions.
- gl_cv_onwards_func_newlocale='future OS version'
- gl_cv_onwards_func_duplocale='future OS version'
- gl_cv_onwards_func_freelocale='future OS version'
- gl_func_newlocale=no
- gl_func_duplocale=no
- gl_func_freelocale=no
- fi
- if test $gl_func_newlocale != yes; then
- HAVE_NEWLOCALE=0
- case "$gl_cv_onwards_func_newlocale" in
- future*) REPLACE_NEWLOCALE=1 ;;
- esac
- fi
- if test $gl_func_duplocale != yes; then
- HAVE_DUPLOCALE=0
- case "$gl_cv_onwards_func_duplocale" in
- future*) REPLACE_DUPLOCALE=1 ;;
- esac
- fi
- if test $gl_func_freelocale != yes; then
- HAVE_FREELOCALE=0
- case "$gl_cv_onwards_func_freelocale" in
- future*) REPLACE_FREELOCALE=1 ;;
- esac
- fi
- if test $gt_localename_enhances_locale_funcs = yes; then
- REPLACE_NEWLOCALE=1
- REPLACE_DUPLOCALE=1
- REPLACE_FREELOCALE=1
- fi
])
AC_DEFUN([gl_LOCALENAME_UNSAFE_LIMITED],
[
AC_REQUIRE([gt_LC_MESSAGES])
- AC_REQUIRE([gt_INTL_THREAD_LOCALE_NAME])
+ AC_REQUIRE([gt_INTL_MACOSX])
+])
+
+AC_DEFUN([gl_LOCALENAME_ENVIRON],
+[
+ AC_REQUIRE([gt_INTL_MACOSX])
])
diff --git a/gnulib-m4/lock.m4 b/gnulib-m4/lock.m4
index 2ca3bf2f..d085f442 100644
--- a/gnulib-m4/lock.m4
+++ b/gnulib-m4/lock.m4
@@ -1,8 +1,10 @@
-# lock.m4 serial 14
-dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
+# lock.m4
+# serial 15
+dnl Copyright (C) 2005-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
@@ -10,8 +12,8 @@ AC_DEFUN([gl_LOCK],
[
AC_REQUIRE([gl_THREADLIB])
if test "$gl_threads_api" = posix; then
- # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the
- # pthread_rwlock_* functions.
+ # Mac OS X 10.1 lacks the pthread_rwlock_t type and the pthread_rwlock_*
+ # functions.
has_rwlock=false
AC_CHECK_TYPE([pthread_rwlock_t],
[has_rwlock=true
diff --git a/gnulib-m4/lstat.m4 b/gnulib-m4/lstat.m4
index 48cc8653..efae2485 100644
--- a/gnulib-m4/lstat.m4
+++ b/gnulib-m4/lstat.m4
@@ -1,10 +1,10 @@
+# lstat.m4
# serial 36
-
-# Copyright (C) 1997-2001, 2003-2024 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.
+dnl Copyright (C) 1997-2001, 2003-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 This file is offered as-is, without any warranty.
dnl From Jim Meyering.
diff --git a/gnulib-m4/malloc.m4 b/gnulib-m4/malloc.m4
index 635d6726..688594fe 100644
--- a/gnulib-m4/malloc.m4
+++ b/gnulib-m4/malloc.m4
@@ -1,11 +1,24 @@
-# malloc.m4 serial 31
-dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
+# malloc.m4
+# serial 44
+dnl Copyright (C) 2007, 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.
+dnl This file is offered as-is, without any warranty.
-# This is adapted with modifications from upstream Autoconf here:
-# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n949
+m4_version_prereq([2.73], [], [
+# Modules that use this macro directly or indirectly should depend
+# on extensions-aix, so that _LINUX_SOURCE_COMPAT gets defined
+# before this macro gets invoked. This helps on AIX 7.2 and earlier
+# if !(__VEC__ || __AIXVEC), and doesn't hurt otherwise.
+#
+# This is copied from upstream Autoconf here:
+# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=1f38316f6af7bf63e5e7dd187ff6456e07ad743e#n971
+# _AC_FUNC_MALLOC_IF(IF-WORKS, IF-NOT[, UNKNOWN-ASSUME])
+# ------------------------------------------------------
+# If 'malloc (0)' returns nonnull, run IF-WORKS, otherwise, IF-NOT.
+# If it is not known whether it works, assume the shell word UNKNOWN-ASSUME,
+# which should end in "yes" or in something else (the latter is the default).
AC_DEFUN([_AC_FUNC_MALLOC_IF],
[
AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
@@ -14,56 +27,81 @@ AC_DEFUN([_AC_FUNC_MALLOC_IF],
[AC_RUN_IFELSE(
[AC_LANG_PROGRAM(
[[#include <stdlib.h>
- ]],
- [[void *p = malloc (0);
- void * volatile vp = p;
- int result = !vp;
+ /* Use pmalloc to test; 'volatile' prevents the compiler
+ from optimizing the malloc call away. */
+ void *(*volatile pmalloc) (size_t) = malloc;]],
+ [[void *p = pmalloc (0);
+ int result = !p;
free (p);
- return result;]])
- ],
+ return result;]])],
[ac_cv_func_malloc_0_nonnull=yes],
[ac_cv_func_malloc_0_nonnull=no],
- [case "$host_os" in
- # Guess yes on platforms where we know the result.
- *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
- | gnu* | *-musl* | midipix* | midnightbsd* \
- | hpux* | solaris* | cygwin* | mingw* | windows* | msys* )
- ac_cv_func_malloc_0_nonnull="guessing yes" ;;
- # If we don't know, obey --enable-cross-guesses.
- *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;;
- esac
- ])
- ])
+ [AS_CASE([$host_os],
+ [# Guess yes on platforms where we know the result.
+ *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
+ | gnu* | *-musl* | midipix* | midnightbsd* \
+ | hpux* | solaris* | cygwin* | mingw* | windows* | msys*],
+ [ac_cv_func_malloc_0_nonnull="guessing yes"],
+ [# Guess as follows if we don't know.
+ ac_cv_func_malloc_0_nonnull=m4_default([$3], ["guessing no"])])])])
AS_CASE([$ac_cv_func_malloc_0_nonnull], [*yes], [$1], [$2])
])# _AC_FUNC_MALLOC_IF
+])
+
+# gl_FUNC_MALLOC_0_NONNULL
+# ------------------------
+# If 'malloc (0)' returns nonnull define HAVE_MALLOC_0_NONNULL.
+# Also, set ac_cv_func_malloc_0_nonnull to a string that ends in
+# "yes", otherwise set it to something else. If unknown whether
+# malloc (0) works, guess as normal for cross-builds.
+AC_DEFUN([gl_FUNC_MALLOC_0_NONNULL],
+[
+ _AC_FUNC_MALLOC_IF(
+ [AC_DEFINE([HAVE_MALLOC_0_NONNULL], [1],
+ [Define to 1 if malloc (0) returns nonnull.])],
+ [],
+ ["$gl_cross_guess_normal"])
+])
# gl_FUNC_MALLOC_GNU
# ------------------
-# Replace malloc if it is not compatible with GNU libc.
+# Test whether malloc (0) is compatible with GNU libc.
+# Replace malloc if not.
+# Define HAVE_MALLOC_0_NONNULL if malloc (0) returns nonnull (except upon
+# out-of-memory).
+# Define HAVE_MALLOC_PTRDIFF if malloc (N) reliably fails when N exceeds
+# PTRDIFF_MAX.
AC_DEFUN([gl_FUNC_MALLOC_GNU],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
- REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX"
- if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then
- _AC_FUNC_MALLOC_IF([], [REPLACE_MALLOC_FOR_MALLOC_GNU=1])
- fi
+ AC_REQUIRE([gl_FUNC_MALLOC_0_NONNULL])
+
+ AS_CASE([$ac_cv_func_malloc_0_nonnull],
+ [*yes],
+ [REPLACE_MALLOC_FOR_MALLOC_GNU=$REPLACE_MALLOC_FOR_MALLOC_POSIX],
+ [REPLACE_MALLOC_FOR_MALLOC_GNU=1])
])
# gl_FUNC_MALLOC_PTRDIFF
# ----------------------
-# Test whether malloc (N) reliably fails when N exceeds PTRDIFF_MAX,
-# and replace malloc otherwise.
+# Test whether malloc (N) reliably fails when N exceeds PTRDIFF_MAX.
+# Define HAVE_MALLOC_PTRDIFF if yes.
+# Replace malloc if not.
AC_DEFUN([gl_FUNC_MALLOC_PTRDIFF],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF])
- test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1
+ AS_IF([test "$gl_cv_malloc_ptrdiff" = yes],
+ [AC_DEFINE([HAVE_MALLOC_PTRDIFF], 1,
+ [Define to 1 if malloc-like functions do not allocate objects
+ larger than PTRDIFF_MAX bytes.])],
+ [REPLACE_MALLOC_FOR_MALLOC_POSIX=1])
])
# Test whether malloc, realloc, calloc refuse to create objects
# larger than what can be expressed in ptrdiff_t.
-# Set gl_cv_func_malloc_gnu to yes or no accordingly.
+# Set gl_cv_func_malloc_gnu.
AC_DEFUN([gl_CHECK_MALLOC_PTRDIFF],
[
AC_CACHE_CHECK([whether malloc is ptrdiff_t safe],
@@ -107,16 +145,19 @@ AC_DEFUN([gl_FUNC_MALLOC_POSIX],
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_MALLOC_PTRDIFF])
AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
- if test "$gl_cv_func_malloc_posix" = yes; then
- AC_DEFINE([HAVE_MALLOC_POSIX], [1],
- [Define if malloc, realloc, and calloc set errno on allocation failure.])
- else
- REPLACE_MALLOC_FOR_MALLOC_POSIX=1
- fi
+ case "$gl_cv_func_malloc_posix" in
+ *yes)
+ AC_DEFINE([HAVE_MALLOC_POSIX], [1],
+ [Define if malloc, realloc, and calloc set errno on allocation failure.])
+ ;;
+ *)
+ REPLACE_MALLOC_FOR_MALLOC_POSIX=1
+ ;;
+ esac
])
# Test whether malloc, realloc, calloc set errno to ENOMEM on failure.
-# Set gl_cv_func_malloc_posix to yes or no accordingly.
+# Set gl_cv_func_malloc_posix to *yes or *no accordingly.
AC_DEFUN([gl_CHECK_MALLOC_POSIX],
[
AC_REQUIRE([AC_CANONICAL_HOST])
@@ -127,13 +168,25 @@ AC_DEFUN([gl_CHECK_MALLOC_POSIX],
dnl some systems go to their knees when you do that. So assume that
dnl all Unix implementations of the function set errno on failure,
dnl except on those platforms where we have seen 'test-malloc-gnu',
- dnl 'test-realloc-gnu', 'test-calloc-gnu' fail.
+ dnl 'test-realloc-posix', 'test-calloc-gnu' fail.
case "$host_os" in
mingw* | windows*)
- gl_cv_func_malloc_posix=no ;;
- irix* | solaris*)
- dnl On IRIX 6.5, the three functions return NULL with errno unset
- dnl when the argument is larger than PTRDIFF_MAX.
+ dnl Old MSVCRT from 2001 did not set errno=ENOMEM when malloc failed.
+ dnl More recent MSVCRT from 2019 does so.
+ dnl UCRT is the successor of MSVCRT. Assume that UCRT does so as well.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdio.h>
+ #ifndef _UCRT
+ msvcrt yuck
+ #endif
+ ]],
+ [[]])
+ ],
+ [gl_cv_func_malloc_posix="guessing yes"],
+ [gl_cv_func_malloc_posix="guessing no"])
+ ;;
+ solaris*)
dnl On Solaris 11.3, the three functions return NULL with errno set
dnl to EAGAIN, not ENOMEM, when the argument is larger than
dnl PTRDIFF_MAX.
diff --git a/gnulib-m4/malloca.m4 b/gnulib-m4/malloca.m4
index 77e15959..cabe5fe7 100644
--- a/gnulib-m4/malloca.m4
+++ b/gnulib-m4/malloca.m4
@@ -1,14 +1,16 @@
-# malloca.m4 serial 2
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2024 Free Software Foundation,
+# malloca.m4
+# serial 3
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2025 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_MALLOCA],
[
dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables
dnl @ALLOCA@ and @LTALLOCA@.
dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies.
- AC_REQUIRE([gl_EEMALLOC])
+ AC_REQUIRE([gl_FUNC_MALLOC_GNU])
])
diff --git a/gnulib-m4/math_h.m4 b/gnulib-m4/math_h.m4
index 7ba3c048..fa2ace3f 100644
--- a/gnulib-m4/math_h.m4
+++ b/gnulib-m4/math_h.m4
@@ -1,8 +1,10 @@
-# math_h.m4 serial 126
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# math_h.m4
+# serial 141
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_MATH_H],
[
@@ -42,15 +44,21 @@ AC_DEFUN_ONCE([gl_MATH_H],
cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf
expf expl exp2 exp2f exp2l expm1 expm1f expm1l
fabsf fabsl floorf floorl fma fmaf fmal
- fmod fmodf fmodl frexpf frexpl hypotf hypotl
+ fmod fmodf fmodl frexpf frexpl
+ getpayload getpayloadf getpayloadl
+ hypotf hypotl
ilogb ilogbf ilogbl
ldexpf ldexpl
log logf logl log10 log10f log10l log1p log1pf log1pl log2 log2f log2l
- logb logbf logbl
+ logb logbf logbl logp1 log1pf logp1l
modf modff modfl powf
remainder remainderf remainderl
- rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl
- tanf tanl tanhf totalorder totalorderf totalorderl trunc truncf truncl])
+ rint rintf rintl round roundf roundl
+ setpayload setpayloadf setpayloadl
+ setpayloadsig setpayloadsigf setpayloadsigl
+ sinf sinl sinhf sqrtf sqrtl
+ tanf tanl tanhf totalorder totalorderf totalorderl totalordermag
+ totalordermagf totalordermagl trunc truncf truncl])
])
# gl_MATH_MODULE_INDICATOR([modulename])
@@ -113,6 +121,9 @@ AC_DEFUN([gl_MATH_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREXPF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREXP])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREXPL])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAYLOAD])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAYLOADF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAYLOADL])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_HYPOT])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_HYPOTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_HYPOTL])
@@ -143,6 +154,9 @@ AC_DEFUN([gl_MATH_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGB])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGBF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGBL])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGP1])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGP1F])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGP1L])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MODF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MODFF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MODFL])
@@ -156,6 +170,12 @@ AC_DEFUN([gl_MATH_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ROUND])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ROUNDF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ROUNDL])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETPAYLOAD])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETPAYLOADF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETPAYLOADL])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETPAYLOADSIG])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETPAYLOADSIGF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETPAYLOADSIGL])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGNBIT])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINL])
@@ -168,6 +188,9 @@ AC_DEFUN([gl_MATH_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOTALORDER])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOTALORDERF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOTALORDERL])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOTALORDERMAG])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOTALORDERMAGF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOTALORDERMAGL])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNC])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCL])
@@ -197,14 +220,19 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
HAVE_CBRTF=1; AC_SUBST([HAVE_CBRTF])
HAVE_CBRTL=1; AC_SUBST([HAVE_CBRTL])
HAVE_COPYSIGN=1; AC_SUBST([HAVE_COPYSIGN])
+ HAVE_COPYSIGNF=1; AC_SUBST([HAVE_COPYSIGNF])
HAVE_COPYSIGNL=1; AC_SUBST([HAVE_COPYSIGNL])
HAVE_COSF=1; AC_SUBST([HAVE_COSF])
HAVE_COSL=1; AC_SUBST([HAVE_COSL])
HAVE_COSHF=1; AC_SUBST([HAVE_COSHF])
HAVE_EXPF=1; AC_SUBST([HAVE_EXPF])
HAVE_EXPL=1; AC_SUBST([HAVE_EXPL])
+ HAVE_EXP2=1; AC_SUBST([HAVE_EXP2])
+ HAVE_EXP2F=1; AC_SUBST([HAVE_EXP2F])
+ HAVE_EXP2L=1; AC_SUBST([HAVE_EXP2L])
HAVE_EXPM1=1; AC_SUBST([HAVE_EXPM1])
HAVE_EXPM1F=1; AC_SUBST([HAVE_EXPM1F])
+ HAVE_EXPM1L=1; AC_SUBST([HAVE_EXPM1L])
HAVE_FABSF=1; AC_SUBST([HAVE_FABSF])
HAVE_FABSL=1; AC_SUBST([HAVE_FABSL])
HAVE_FMA=1; AC_SUBST([HAVE_FMA])
@@ -213,6 +241,9 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
HAVE_FMODF=1; AC_SUBST([HAVE_FMODF])
HAVE_FMODL=1; AC_SUBST([HAVE_FMODL])
HAVE_FREXPF=1; AC_SUBST([HAVE_FREXPF])
+ HAVE_GETPAYLOAD=1; AC_SUBST([HAVE_GETPAYLOAD])
+ HAVE_GETPAYLOADF=1; AC_SUBST([HAVE_GETPAYLOADF])
+ HAVE_GETPAYLOADL=1; AC_SUBST([HAVE_GETPAYLOADL])
HAVE_HYPOTF=1; AC_SUBST([HAVE_HYPOTF])
HAVE_HYPOTL=1; AC_SUBST([HAVE_HYPOTL])
HAVE_ILOGB=1; AC_SUBST([HAVE_ILOGB])
@@ -229,15 +260,32 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
HAVE_LOG1P=1; AC_SUBST([HAVE_LOG1P])
HAVE_LOG1PF=1; AC_SUBST([HAVE_LOG1PF])
HAVE_LOG1PL=1; AC_SUBST([HAVE_LOG1PL])
+ HAVE_LOG2=1; AC_SUBST([HAVE_LOG2])
+ HAVE_LOG2F=1; AC_SUBST([HAVE_LOG2F])
+ HAVE_LOG2L=1; AC_SUBST([HAVE_LOG2L])
HAVE_LOGBF=1; AC_SUBST([HAVE_LOGBF])
HAVE_LOGBL=1; AC_SUBST([HAVE_LOGBL])
+ HAVE_LOGP1=1; AC_SUBST([HAVE_LOGP1])
+ HAVE_LOGP1F=1; AC_SUBST([HAVE_LOGP1F])
+ HAVE_LOGP1L=1; AC_SUBST([HAVE_LOGP1L])
HAVE_MODFF=1; AC_SUBST([HAVE_MODFF])
HAVE_MODFL=1; AC_SUBST([HAVE_MODFL])
HAVE_POWF=1; AC_SUBST([HAVE_POWF])
HAVE_REMAINDER=1; AC_SUBST([HAVE_REMAINDER])
HAVE_REMAINDERF=1; AC_SUBST([HAVE_REMAINDERF])
+ HAVE_REMAINDERL=1; AC_SUBST([HAVE_REMAINDERL])
HAVE_RINT=1; AC_SUBST([HAVE_RINT])
+ HAVE_RINTF=1; AC_SUBST([HAVE_RINTF])
HAVE_RINTL=1; AC_SUBST([HAVE_RINTL])
+ HAVE_ROUND=1; AC_SUBST([HAVE_ROUND])
+ HAVE_ROUNDF=1; AC_SUBST([HAVE_ROUNDF])
+ HAVE_ROUNDL=1; AC_SUBST([HAVE_ROUNDL])
+ HAVE_SETPAYLOAD=1; AC_SUBST([HAVE_SETPAYLOAD])
+ HAVE_SETPAYLOADF=1; AC_SUBST([HAVE_SETPAYLOADF])
+ HAVE_SETPAYLOADL=1; AC_SUBST([HAVE_SETPAYLOADL])
+ HAVE_SETPAYLOADSIG=1; AC_SUBST([HAVE_SETPAYLOADSIG])
+ HAVE_SETPAYLOADSIGF=1; AC_SUBST([HAVE_SETPAYLOADSIGF])
+ HAVE_SETPAYLOADSIGL=1; AC_SUBST([HAVE_SETPAYLOADSIGL])
HAVE_SINF=1; AC_SUBST([HAVE_SINF])
HAVE_SINL=1; AC_SUBST([HAVE_SINL])
HAVE_SINHF=1; AC_SUBST([HAVE_SINHF])
@@ -249,36 +297,23 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
HAVE_TOTALORDER=1; AC_SUBST([HAVE_TOTALORDER])
HAVE_TOTALORDERF=1; AC_SUBST([HAVE_TOTALORDERF])
HAVE_TOTALORDERL=1; AC_SUBST([HAVE_TOTALORDERL])
+ HAVE_TOTALORDERMAG=1; AC_SUBST([HAVE_TOTALORDERMAG])
+ HAVE_TOTALORDERMAGF=1; AC_SUBST([HAVE_TOTALORDERMAGF])
+ HAVE_TOTALORDERMAGL=1; AC_SUBST([HAVE_TOTALORDERMAGL])
HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL])
HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL])
HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL])
- HAVE_DECL_CBRTF=1; AC_SUBST([HAVE_DECL_CBRTF])
- HAVE_DECL_CBRTL=1; AC_SUBST([HAVE_DECL_CBRTL])
HAVE_DECL_CEILF=1; AC_SUBST([HAVE_DECL_CEILF])
HAVE_DECL_CEILL=1; AC_SUBST([HAVE_DECL_CEILL])
- HAVE_DECL_COPYSIGNF=1; AC_SUBST([HAVE_DECL_COPYSIGNF])
HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL])
HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL])
- HAVE_DECL_EXP2=1; AC_SUBST([HAVE_DECL_EXP2])
- HAVE_DECL_EXP2F=1; AC_SUBST([HAVE_DECL_EXP2F])
- HAVE_DECL_EXP2L=1; AC_SUBST([HAVE_DECL_EXP2L])
- HAVE_DECL_EXPM1L=1; AC_SUBST([HAVE_DECL_EXPM1L])
HAVE_DECL_FLOORF=1; AC_SUBST([HAVE_DECL_FLOORF])
HAVE_DECL_FLOORL=1; AC_SUBST([HAVE_DECL_FLOORL])
HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL])
HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL])
HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL])
HAVE_DECL_LOG10L=1; AC_SUBST([HAVE_DECL_LOG10L])
- HAVE_DECL_LOG2=1; AC_SUBST([HAVE_DECL_LOG2])
- HAVE_DECL_LOG2F=1; AC_SUBST([HAVE_DECL_LOG2F])
- HAVE_DECL_LOG2L=1; AC_SUBST([HAVE_DECL_LOG2L])
HAVE_DECL_LOGB=1; AC_SUBST([HAVE_DECL_LOGB])
- HAVE_DECL_REMAINDER=1; AC_SUBST([HAVE_DECL_REMAINDER])
- HAVE_DECL_REMAINDERL=1; AC_SUBST([HAVE_DECL_REMAINDERL])
- HAVE_DECL_RINTF=1; AC_SUBST([HAVE_DECL_RINTF])
- HAVE_DECL_ROUND=1; AC_SUBST([HAVE_DECL_ROUND])
- HAVE_DECL_ROUNDF=1; AC_SUBST([HAVE_DECL_ROUNDF])
- HAVE_DECL_ROUNDL=1; AC_SUBST([HAVE_DECL_ROUNDL])
HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL])
HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL])
HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL])
@@ -316,6 +351,9 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
REPLACE_FREXPF=0; AC_SUBST([REPLACE_FREXPF])
REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP])
REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL])
+ REPLACE_GETPAYLOAD=0; AC_SUBST([REPLACE_GETPAYLOAD])
+ REPLACE_GETPAYLOADF=0; AC_SUBST([REPLACE_GETPAYLOADF])
+ REPLACE_GETPAYLOADL=0; AC_SUBST([REPLACE_GETPAYLOADL])
REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL])
REPLACE_HYPOT=0; AC_SUBST([REPLACE_HYPOT])
REPLACE_HYPOTF=0; AC_SUBST([REPLACE_HYPOTF])
@@ -365,6 +403,9 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
REPLACE_TOTALORDER=0; AC_SUBST([REPLACE_TOTALORDER])
REPLACE_TOTALORDERF=0; AC_SUBST([REPLACE_TOTALORDERF])
REPLACE_TOTALORDERL=0; AC_SUBST([REPLACE_TOTALORDERL])
+ REPLACE_TOTALORDERMAG=0; AC_SUBST([REPLACE_TOTALORDERMAG])
+ REPLACE_TOTALORDERMAGF=0; AC_SUBST([REPLACE_TOTALORDERMAGF])
+ REPLACE_TOTALORDERMAGL=0; AC_SUBST([REPLACE_TOTALORDERMAGL])
REPLACE_TRUNC=0; AC_SUBST([REPLACE_TRUNC])
REPLACE_TRUNCF=0; AC_SUBST([REPLACE_TRUNCF])
REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL])
diff --git a/gnulib-m4/mbchar.m4 b/gnulib-m4/mbchar.m4
index 471e8c45..b76f1d7b 100644
--- a/gnulib-m4/mbchar.m4
+++ b/gnulib-m4/mbchar.m4
@@ -1,8 +1,10 @@
-# mbchar.m4 serial 9
-dnl Copyright (C) 2005-2007, 2009-2024 Free Software Foundation, Inc.
+# mbchar.m4
+# serial 9
+dnl Copyright (C) 2005-2007, 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.
+dnl This file is offered as-is, without any warranty.
dnl autoconf tests required for use of mbchar.m4
dnl From Bruno Haible.
diff --git a/gnulib-m4/mbiter.m4 b/gnulib-m4/mbiter.m4
index 2f7e7885..b51242e6 100644
--- a/gnulib-m4/mbiter.m4
+++ b/gnulib-m4/mbiter.m4
@@ -1,8 +1,10 @@
-# mbiter.m4 serial 7
-dnl Copyright (C) 2005, 2008-2024 Free Software Foundation, Inc.
+# mbiter.m4
+# serial 7
+dnl Copyright (C) 2005, 2008-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 This file is offered as-is, without any warranty.
dnl autoconf tests required for use of mbiter.h
dnl From Bruno Haible.
diff --git a/gnulib-m4/mbrtoc32.m4 b/gnulib-m4/mbrtoc32.m4
index c1eb126a..1991529c 100644
--- a/gnulib-m4/mbrtoc32.m4
+++ b/gnulib-m4/mbrtoc32.m4
@@ -1,8 +1,10 @@
-# mbrtoc32.m4 serial 18
-dnl Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# mbrtoc32.m4
+# serial 21
+dnl Copyright (C) 2014-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_MBRTOC32],
[
@@ -26,6 +28,7 @@ AC_DEFUN([gl_FUNC_MBRTOC32],
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],
@@ -40,6 +43,15 @@ AC_DEFUN([gl_FUNC_MBRTOC32],
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
@@ -162,6 +174,53 @@ AC_DEFUN([gl_MBRTOC32_C_LOCALE],
])
])
+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.
@@ -172,7 +231,7 @@ AC_DEFUN([gl_MBRTOC32_SANITYCHECK],
AC_REQUIRE([gl_CHECK_FUNC_MBRTOC32])
AC_REQUIRE([gt_LOCALE_FR])
AC_REQUIRE([gt_LOCALE_ZH_CN])
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([AC_CANONICAL_HOST])
if test $GNULIBHEADERS_OVERRIDE_CHAR32_T = 1 || test $gl_cv_func_mbrtoc32 = no; then
HAVE_WORKING_MBRTOC32=0
else
@@ -262,5 +321,6 @@ int main ()
# Prerequisites of lib/mbrtoc32.c and lib/lc-charset-dispatch.c.
AC_DEFUN([gl_PREREQ_MBRTOC32], [
+ AC_REQUIRE([gl_C32RTOMB_SANITYCHECK])
:
])
diff --git a/gnulib-m4/mbrtowc.m4 b/gnulib-m4/mbrtowc.m4
index 6ff51824..4ed9510f 100644
--- a/gnulib-m4/mbrtowc.m4
+++ b/gnulib-m4/mbrtowc.m4
@@ -1,9 +1,11 @@
-# mbrtowc.m4 serial 44 -*- coding: utf-8 -*-
-dnl Copyright (C) 2001-2002, 2004-2005, 2008-2024 Free Software Foundation,
+# mbrtowc.m4
+# serial 47
+dnl Copyright (C) 2001-2002, 2004-2005, 2008-2025 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_FUNC_MBRTOWC],
[
@@ -31,7 +33,6 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
REPLACE_MBRTOWC=1
else
gl_MBRTOWC_NULL_ARG1
- gl_MBRTOWC_NULL_ARG2
gl_MBRTOWC_RETVAL
gl_MBRTOWC_NUL_RETVAL
gl_MBRTOWC_STORES_INCOMPLETE
@@ -44,13 +45,6 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
REPLACE_MBRTOWC=1
;;
esac
- case "$gl_cv_func_mbrtowc_null_arg2" in
- *yes) ;;
- *) AC_DEFINE([MBRTOWC_NULL_ARG2_BUG], [1],
- [Define if the mbrtowc function has the NULL string argument bug.])
- REPLACE_MBRTOWC=1
- ;;
- esac
case "$gl_cv_func_mbrtowc_retval" in
*yes) ;;
*) AC_DEFINE([MBRTOWC_RETVAL_BUG], [1],
@@ -159,7 +153,7 @@ AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE],
[
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([gt_LOCALE_JA])
- AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([gt_LOCALE_EN_UTF8])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CACHE_CHECK([whether mbrtowc handles incomplete characters],
[gl_cv_func_mbrtowc_incomplete_state],
@@ -168,10 +162,10 @@ AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE],
dnl is present.
changequote(,)dnl
case "$host_os" in
- # Guess no on AIX and OSF/1.
- aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
- # Guess yes otherwise.
- *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+ # Guess no on AIX.
+ aix*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
esac
changequote([,])dnl
if test $LOCALE_JA != none; then
@@ -199,7 +193,7 @@ int main ()
[gl_cv_func_mbrtowc_incomplete_state=no],
[:])
else
- if test $LOCALE_FR_UTF8 != none; then
+ if test "$LOCALE_EN_UTF8" != none; then
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <locale.h>
@@ -207,7 +201,7 @@ int main ()
#include <wchar.h>
int main ()
{
- if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ if (setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL)
{
const char input[] = "B\303\274\303\237er"; /* "Büßer" */
mbstate_t state;
@@ -287,7 +281,7 @@ dnl Result is gl_cv_func_mbrtowc_null_arg1.
AC_DEFUN([gl_MBRTOWC_NULL_ARG1],
[
AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([gt_LOCALE_EN_UTF8])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CACHE_CHECK([whether mbrtowc handles a NULL pwc argument],
[gl_cv_func_mbrtowc_null_arg1],
@@ -302,7 +296,7 @@ changequote(,)dnl
*) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
esac
changequote([,])dnl
- if test $LOCALE_FR_UTF8 != none; then
+ if test "$LOCALE_EN_UTF8" != none; then
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <locale.h>
@@ -313,7 +307,7 @@ int main ()
{
int result = 0;
- if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ if (setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL)
{
char input[] = "\303\237er";
mbstate_t state;
@@ -344,57 +338,6 @@ int main ()
])
])
-dnl Test whether mbrtowc supports a NULL string argument correctly.
-dnl Result is gl_cv_func_mbrtowc_null_arg2.
-
-AC_DEFUN([gl_MBRTOWC_NULL_ARG2],
-[
- AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([gt_LOCALE_FR_UTF8])
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
- AC_CACHE_CHECK([whether mbrtowc handles a NULL string argument],
- [gl_cv_func_mbrtowc_null_arg2],
- [
- dnl Initial guess, used when cross-compiling or when no suitable locale
- dnl is present.
-changequote(,)dnl
- case "$host_os" in
- # Guess no on OSF/1.
- osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
- # Guess yes otherwise.
- *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
- esac
-changequote([,])dnl
- if test $LOCALE_FR_UTF8 != none; then
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
- if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
- {
- mbstate_t state;
- wchar_t wc;
- int ret;
-
- memset (&state, '\0', sizeof (mbstate_t));
- wc = (wchar_t) 0xBADFACE;
- mbrtowc (&wc, NULL, 5, &state);
- /* Check that wc was not modified. */
- if (wc != (wchar_t) 0xBADFACE)
- return 2;
- }
- return 0;
-}]])],
- [gl_cv_func_mbrtowc_null_arg2=yes],
- [gl_cv_func_mbrtowc_null_arg2=no],
- [:])
- fi
- ])
-])
-
dnl Test whether mbrtowc, when parsing the end of a multibyte character,
dnl correctly returns the number of bytes that were needed to complete the
dnl character (not the total number of bytes of the multibyte character).
@@ -403,7 +346,7 @@ dnl Result is gl_cv_func_mbrtowc_retval.
AC_DEFUN([gl_MBRTOWC_RETVAL],
[
AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([gt_LOCALE_EN_UTF8])
AC_REQUIRE([gt_LOCALE_JA])
AC_REQUIRE([AC_CANONICAL_HOST])
AC_CACHE_CHECK([whether mbrtowc has a correct return value],
@@ -421,7 +364,7 @@ changequote(,)dnl
gl_cv_func_mbrtowc_retval="guessing yes" ;;
esac
changequote([,])dnl
- if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \
+ if test "$LOCALE_EN_UTF8" != none || test $LOCALE_JA != none \
|| { case "$host_os" in mingw* | windows*) true;; *) false;; esac; }; then
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
@@ -433,8 +376,8 @@ int main ()
int result = 0;
int found_some_locale = 0;
/* This fails on Solaris. */
- if (strcmp ("$LOCALE_FR_UTF8", "none") != 0
- && setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ if (strcmp ("$LOCALE_EN_UTF8", "none") != 0
+ && setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL)
{
char input[] = "B\303\274\303\237er"; /* "Büßer" */
mbstate_t state;
@@ -648,8 +591,8 @@ int main ()
[:])
;;
*)
- AC_REQUIRE([gt_LOCALE_FR_UTF8])
- if test $LOCALE_FR_UTF8 != none; then
+ AC_REQUIRE([gt_LOCALE_EN_UTF8])
+ if test "$LOCALE_EN_UTF8" != none; then
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <locale.h>
@@ -657,7 +600,7 @@ int main ()
#include <wchar.h>
int main ()
{
- if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ if (setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL)
{
wchar_t wc = (wchar_t) 0xBADFACE;
mbstate_t state;
@@ -714,7 +657,7 @@ AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT],
dnl Test whether mbrtowc reports encoding errors in the C locale.
dnl Although POSIX was never intended to allow this, the GNU C Library
dnl and other implementations do it. See:
-dnl https://sourceware.org/bugzilla/show_bug.cgi?id=19932
+dnl https://sourceware.org/PR19932
dnl POSIX has now clarified it:
dnl <https://pubs.opengroup.org/onlinepubs/9699919799/functions/mbrtowc.html>
dnl says: "In the POSIX locale an [EILSEQ] error cannot occur since all byte
diff --git a/gnulib-m4/mbsinit.m4 b/gnulib-m4/mbsinit.m4
index 10a5b619..69cfa574 100644
--- a/gnulib-m4/mbsinit.m4
+++ b/gnulib-m4/mbsinit.m4
@@ -1,8 +1,10 @@
-# mbsinit.m4 serial 10
-dnl Copyright (C) 2008, 2010-2024 Free Software Foundation, Inc.
+# mbsinit.m4
+# serial 10
+dnl Copyright (C) 2008, 2010-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_MBSINIT],
[
diff --git a/gnulib-m4/mbstate_t.m4 b/gnulib-m4/mbstate_t.m4
index b2bcba45..59df1e2e 100644
--- a/gnulib-m4/mbstate_t.m4
+++ b/gnulib-m4/mbstate_t.m4
@@ -1,8 +1,10 @@
-# mbstate_t.m4 serial 14
-dnl Copyright (C) 2000-2002, 2008-2024 Free Software Foundation, Inc.
+# mbstate_t.m4
+# serial 14
+dnl Copyright (C) 2000-2002, 2008-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 This file is offered as-is, without any warranty.
# From Paul Eggert.
diff --git a/gnulib-m4/mbtowc.m4 b/gnulib-m4/mbtowc.m4
index 2bdc879c..3e3f6ce0 100644
--- a/gnulib-m4/mbtowc.m4
+++ b/gnulib-m4/mbtowc.m4
@@ -1,8 +1,10 @@
-# mbtowc.m4 serial 5
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# mbtowc.m4
+# serial 5
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_MBTOWC],
[
diff --git a/gnulib-m4/memchr.m4 b/gnulib-m4/memchr.m4
index 6184ddc8..9647b20e 100644
--- a/gnulib-m4/memchr.m4
+++ b/gnulib-m4/memchr.m4
@@ -1,8 +1,10 @@
-# memchr.m4 serial 19
-dnl Copyright (C) 2002-2004, 2009-2024 Free Software Foundation, Inc.
+# memchr.m4
+# serial 21
+dnl Copyright (C) 2002-2004, 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.
+dnl This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
[
@@ -19,7 +21,7 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
# https://bugzilla.redhat.com/show_bug.cgi?id=499689
# memchr should not dereference overestimated length after a match
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
- # https://sourceware.org/bugzilla/show_bug.cgi?id=10162
+ # https://sourceware.org/PR10162
# memchr should cast the second argument to 'unsigned char'.
# This bug exists in Android 4.3.
# Assume that memchr works on platforms that lack mprotect.
@@ -31,31 +33,20 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
# include <unistd.h>
# include <sys/types.h>
# include <sys/mman.h>
-# ifndef MAP_FILE
-# define MAP_FILE 0
-# endif
#endif
]], [[
int result = 0;
char *fence = NULL;
#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
-# if HAVE_MAP_ANONYMOUS
- const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
- const int fd = -1;
-# else /* !HAVE_MAP_ANONYMOUS */
- const int flags = MAP_FILE | MAP_PRIVATE;
- int fd = open ("/dev/zero", O_RDONLY, 0666);
- if (fd >= 0)
-# endif
- {
- int pagesize = getpagesize ();
- char *two_pages =
- (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
- flags, fd, 0);
- if (two_pages != (char *)(-1)
- && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
- fence = two_pages + pagesize;
- }
+ {
+ long int pagesize = sysconf (_SC_PAGESIZE);
+ char *two_pages =
+ (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
+ MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ if (two_pages != (char *)(-1)
+ && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
+ fence = two_pages + pagesize;
+ }
#endif
if (fence)
{
diff --git a/gnulib-m4/minmax.m4 b/gnulib-m4/minmax.m4
index 5c0a927d..69c8a89f 100644
--- a/gnulib-m4/minmax.m4
+++ b/gnulib-m4/minmax.m4
@@ -1,8 +1,10 @@
-# minmax.m4 serial 4
-dnl Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc.
+# minmax.m4
+# serial 4
+dnl Copyright (C) 2005, 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.
+dnl This file is offered as-is, without any warranty.
AC_PREREQ([2.53])
diff --git a/gnulib-m4/mkfifo.m4 b/gnulib-m4/mkfifo.m4
new file mode 100644
index 00000000..9e85a89f
--- /dev/null
+++ b/gnulib-m4/mkfifo.m4
@@ -0,0 +1,75 @@
+# mkfifo.m4
+# serial 9
+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,
+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 mkfifo replacement.
+
+# Written by Eric Blake.
+
+AC_DEFUN([gl_FUNC_MKFIFO],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl We can't use AC_CHECK_FUNC here, because mkfifo() is defined as a
+ dnl static inline function when compiling for Android 4.4 or older.
+ AC_CACHE_CHECK([for mkfifo], [gl_cv_func_mkfifo],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/stat.h>]],
+ [[return mkfifo("/",0);]])
+ ],
+ [gl_cv_func_mkfifo=yes],
+ [gl_cv_func_mkfifo=no])
+ ])
+ if test $gl_cv_func_mkfifo = no; then
+ HAVE_MKFIFO=0
+ else
+ AC_DEFINE([HAVE_MKFIFO], [1],
+ [Define to 1 if you have a 'mkfifo' function.])
+ dnl Check for Solaris 9 and FreeBSD bug with trailing slash.
+ AC_CHECK_FUNCS_ONCE([lstat])
+ AC_CACHE_CHECK([whether mkfifo rejects trailing slashes],
+ [gl_cv_func_mkfifo_works],
+ [# 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 <sys/stat.h>
+ ]],
+ [[int result = 0;
+ if (!mkfifo ("conftest.tmp/", 0600))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!mkfifo ("conftest.lnk/", 0600))
+ result |= 2;
+#endif
+ return result;
+ ]])],
+ [gl_cv_func_mkfifo_works=yes], [gl_cv_func_mkfifo_works=no],
+ [case "$host_os" in
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_mkfifo_works="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_mkfifo_works="guessing yes" ;;
+ # If we don't know, obey --enable-cross-guesses.
+ *) gl_cv_func_mkfifo_works="$gl_cross_guess_normal" ;;
+ esac
+ ])
+ rm -f conftest.tmp conftest.lnk])
+ case "$gl_cv_func_mkfifo_works" in
+ *yes) ;;
+ *)
+ AC_DEFINE([MKFIFO_TRAILING_SLASH_BUG], [1], [Define to 1 if mkfifo
+ does not reject trailing slash])
+ REPLACE_MKFIFO=1
+ ;;
+ esac
+ fi
+])
diff --git a/gnulib-m4/mmap-anon.m4 b/gnulib-m4/mmap-anon.m4
index 642f07db..abf6194a 100644
--- a/gnulib-m4/mmap-anon.m4
+++ b/gnulib-m4/mmap-anon.m4
@@ -1,17 +1,17 @@
-# mmap-anon.m4 serial 12
-dnl Copyright (C) 2005, 2007, 2009-2024 Free Software Foundation, Inc.
+# mmap-anon.m4
+# serial 15
+dnl Copyright (C) 2005, 2007, 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.
+dnl This file is offered as-is, without any warranty.
# Detect how mmap can be used to create anonymous (not file-backed) memory
# mappings.
-# - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS
-# and MAP_ANON exist and have the same value.
+# - On Linux, AIX, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS and
+# MAP_ANON exist and have the same value.
# - On HP-UX, only MAP_ANONYMOUS exists.
# - On Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix, only MAP_ANON exists.
-# - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be
-# used.
AC_DEFUN_ONCE([gl_FUNC_MMAP_ANON],
[
@@ -21,11 +21,13 @@ AC_DEFUN_ONCE([gl_FUNC_MMAP_ANON],
# Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
# fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
# irrelevant for anonymous mappings.
- AC_CHECK_FUNC([mmap], [gl_have_mmap=yes], [gl_have_mmap=no])
+ # Instead, assume that mmap() exists if and only if <sys/mman.h> exists.
+ # Code needs to tests HAVE_SYS_MMAN_H, not HAVE_MMAP.
+ AC_CHECK_HEADERS_ONCE([sys/mman.h])
# Try to allow MAP_ANONYMOUS.
gl_have_mmap_anonymous=no
- if test $gl_have_mmap = yes; then
+ if test $ac_cv_header_sys_mman_h = yes; then
AC_MSG_CHECKING([for MAP_ANONYMOUS])
AC_EGREP_CPP([I cannot identify this map], [
#include <sys/mman.h>
@@ -46,10 +48,5 @@ AC_DEFUN_ONCE([gl_FUNC_MMAP_ANON],
gl_have_mmap_anonymous=yes])
fi
AC_MSG_RESULT([$gl_have_mmap_anonymous])
- if test $gl_have_mmap_anonymous = yes; then
- AC_DEFINE([HAVE_MAP_ANONYMOUS], [1],
- [Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including
- config.h and <sys/mman.h>.])
- fi
fi
])
diff --git a/gnulib-m4/mode_t.m4 b/gnulib-m4/mode_t.m4
index af88da51..7dae201b 100644
--- a/gnulib-m4/mode_t.m4
+++ b/gnulib-m4/mode_t.m4
@@ -1,8 +1,10 @@
-# mode_t.m4 serial 2
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# mode_t.m4
+# serial 2
+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,
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>.
diff --git a/gnulib-m4/msvc-inval.m4 b/gnulib-m4/msvc-inval.m4
index b8ba598e..bfbb983b 100644
--- a/gnulib-m4/msvc-inval.m4
+++ b/gnulib-m4/msvc-inval.m4
@@ -1,8 +1,10 @@
-# msvc-inval.m4 serial 1
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# msvc-inval.m4
+# serial 1
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_MSVC_INVAL],
[
diff --git a/gnulib-m4/msvc-nothrow.m4 b/gnulib-m4/msvc-nothrow.m4
index 3e332a09..6a470971 100644
--- a/gnulib-m4/msvc-nothrow.m4
+++ b/gnulib-m4/msvc-nothrow.m4
@@ -1,8 +1,10 @@
-# msvc-nothrow.m4 serial 1
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# msvc-nothrow.m4
+# serial 1
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_MSVC_NOTHROW],
[
diff --git a/gnulib-m4/multiarch.m4 b/gnulib-m4/multiarch.m4
index 5f8339f5..817f01f1 100644
--- a/gnulib-m4/multiarch.m4
+++ b/gnulib-m4/multiarch.m4
@@ -1,8 +1,10 @@
-# multiarch.m4 serial 9
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# multiarch.m4
+# serial 9
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
# Determine whether the compiler is or may be producing universal binaries.
#
diff --git a/gnulib-m4/musl.m4 b/gnulib-m4/musl.m4
index 34d2c1ff..6ff778cb 100644
--- a/gnulib-m4/musl.m4
+++ b/gnulib-m4/musl.m4
@@ -1,8 +1,10 @@
-# musl.m4 serial 4
-dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# musl.m4
+# serial 4
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
# Test for musl libc, despite the musl libc authors don't like it
# <https://wiki.musl-libc.org/faq.html>
diff --git a/gnulib-m4/nan-mips.m4 b/gnulib-m4/nan-mips.m4
index d5650e19..144c2de8 100644
--- a/gnulib-m4/nan-mips.m4
+++ b/gnulib-m4/nan-mips.m4
@@ -1,8 +1,10 @@
-# nan-mips.m4 serial 1
-dnl Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# nan-mips.m4
+# serial 1
+dnl Copyright (C) 2023-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 This file is offered as-is, without any warranty.
# Extra meta-info mentioned by lib/snan.h.
AC_DEFUN_ONCE([gl_NAN_MIPS],
diff --git a/gnulib-m4/nanosleep.m4 b/gnulib-m4/nanosleep.m4
index ff730b67..81c45d8a 100644
--- a/gnulib-m4/nanosleep.m4
+++ b/gnulib-m4/nanosleep.m4
@@ -1,15 +1,14 @@
+# nanosleep.m4
# serial 47
+dnl Copyright (C) 1999-2001, 2003-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 This file is offered as-is, without any warranty.
dnl From Jim Meyering.
dnl Check for the nanosleep function.
dnl If not found, use the supplied replacement.
-dnl
-
-# Copyright (C) 1999-2001, 2003-2024 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_FUNC_NANOSLEEP],
[
diff --git a/gnulib-m4/netinet_in_h.m4 b/gnulib-m4/netinet_in_h.m4
index 9618c0cc..b56e354c 100644
--- a/gnulib-m4/netinet_in_h.m4
+++ b/gnulib-m4/netinet_in_h.m4
@@ -1,8 +1,10 @@
-# netinet_in_h.m4 serial 6
-dnl Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# netinet_in_h.m4
+# serial 6
+dnl Copyright (C) 2006-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_HEADER_NETINET_IN],
[
diff --git a/gnulib-m4/nocrash.m4 b/gnulib-m4/nocrash.m4
index 9730fc09..662fb049 100644
--- a/gnulib-m4/nocrash.m4
+++ b/gnulib-m4/nocrash.m4
@@ -1,8 +1,10 @@
-# nocrash.m4 serial 5
-dnl Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc.
+# nocrash.m4
+# serial 5
+dnl Copyright (C) 2005, 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.
+dnl This file is offered as-is, without any warranty.
dnl Based on libsigsegv, from Bruno Haible and Paolo Bonzini.
diff --git a/gnulib-m4/off64_t.m4 b/gnulib-m4/off64_t.m4
new file mode 100644
index 00000000..963d53e9
--- /dev/null
+++ b/gnulib-m4/off64_t.m4
@@ -0,0 +1,32 @@
+# off64_t.m4
+# serial 1
+dnl Copyright (C) 2024-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 This file is offered as-is, without any warranty.
+
+dnl Check whether <sys/types.h> defines the 'off64_t' type.
+dnl Set HAVE_OFF64_T.
+
+AC_DEFUN([gl_TYPE_OFF64_T],
+[
+ dnl Persuade glibc <sys/types.h>, <stdio.h>, <fcntl.h>, <unistd.h>, <aio.h>
+ dnl to define off64_t.
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CACHE_CHECK([for off64_t], [gl_cv_off64_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>]],
+ [[int x = sizeof (off64_t *) + sizeof (off64_t);
+ return !x;]])],
+ [gl_cv_off64_t=yes], [gl_cv_off64_t=no])])
+
+ if test $gl_cv_off64_t != no; then
+ HAVE_OFF64_T=1
+ else
+ HAVE_OFF64_T=0
+ fi
+ AC_SUBST([HAVE_OFF64_T])
+])
diff --git a/gnulib-m4/off_t.m4 b/gnulib-m4/off_t.m4
index f3259f9c..f4f4bbf6 100644
--- a/gnulib-m4/off_t.m4
+++ b/gnulib-m4/off_t.m4
@@ -1,8 +1,10 @@
-# off_t.m4 serial 1
-dnl Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# off_t.m4
+# serial 1
+dnl Copyright (C) 2012-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 This file is offered as-is, without any warranty.
dnl Check whether to override the 'off_t' type.
dnl Set WINDOWS_64_BIT_OFF_T.
diff --git a/gnulib-m4/once.m4 b/gnulib-m4/once.m4
new file mode 100644
index 00000000..7876a8fe
--- /dev/null
+++ b/gnulib-m4/once.m4
@@ -0,0 +1,14 @@
+# once.m4
+# serial 1
+dnl Copyright (C) 2024-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 This file is offered as-is, without any warranty.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_ONCE],
+[
+ AC_REQUIRE([gl_THREADLIB])
+])
diff --git a/gnulib-m4/open-cloexec.m4 b/gnulib-m4/open-cloexec.m4
index a2d50329..860541b0 100644
--- a/gnulib-m4/open-cloexec.m4
+++ b/gnulib-m4/open-cloexec.m4
@@ -1,9 +1,12 @@
-# Test whether O_CLOEXEC is defined.
-
-dnl Copyright 2017-2024 Free Software Foundation, Inc.
+# open-cloexec.m4
+# serial 1
+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.
+dnl This file is offered as-is, without any warranty.
+
+# Test whether O_CLOEXEC is defined.
AC_DEFUN([gl_PREPROC_O_CLOEXEC],
[
diff --git a/gnulib-m4/open-slash.m4 b/gnulib-m4/open-slash.m4
index 45310c0c..2cba48fe 100644
--- a/gnulib-m4/open-slash.m4
+++ b/gnulib-m4/open-slash.m4
@@ -1,8 +1,10 @@
-# open-slash.m4 serial 2
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# open-slash.m4
+# serial 2
+dnl Copyright (C) 2007-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 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.
diff --git a/gnulib-m4/open.m4 b/gnulib-m4/open.m4
index 91e5c31b..dd3a805f 100644
--- a/gnulib-m4/open.m4
+++ b/gnulib-m4/open.m4
@@ -1,13 +1,18 @@
-# open.m4 serial 16
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# open.m4
+# serial 17
+dnl Copyright (C) 2007-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 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])
+ AC_REQUIRE([gl_FCNTL_O_FLAGS])
+ AS_CASE([$gl_cv_header_working_fcntl_h],
+ [*O_DIRECTORY* | *no], [REPLACE_OPEN=1])
case "$host_os" in
mingw* | windows* | pw*)
REPLACE_OPEN=1
diff --git a/gnulib-m4/pathmax.m4 b/gnulib-m4/pathmax.m4
index a0fc296c..0c3925df 100644
--- a/gnulib-m4/pathmax.m4
+++ b/gnulib-m4/pathmax.m4
@@ -1,9 +1,11 @@
-# pathmax.m4 serial 11
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2024 Free Software Foundation,
+# pathmax.m4
+# serial 11
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2025 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_PATHMAX],
[
diff --git a/gnulib-m4/perror.m4 b/gnulib-m4/perror.m4
index 6538c252..62b75d09 100644
--- a/gnulib-m4/perror.m4
+++ b/gnulib-m4/perror.m4
@@ -1,8 +1,10 @@
-# perror.m4 serial 13
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# perror.m4
+# serial 13
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_PERROR],
[
diff --git a/gnulib-m4/pipe.m4 b/gnulib-m4/pipe.m4
index 1d3742eb..a1709842 100644
--- a/gnulib-m4/pipe.m4
+++ b/gnulib-m4/pipe.m4
@@ -1,8 +1,10 @@
-# pipe.m4 serial 2
-dnl Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# pipe.m4
+# serial 2
+dnl Copyright (C) 2010-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_PIPE],
[
diff --git a/gnulib-m4/printf-frexp.m4 b/gnulib-m4/printf-frexp.m4
index 9a2f767f..3e9737fa 100644
--- a/gnulib-m4/printf-frexp.m4
+++ b/gnulib-m4/printf-frexp.m4
@@ -1,8 +1,10 @@
-# printf-frexp.m4 serial 5
-dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
+# printf-frexp.m4
+# serial 5
+dnl Copyright (C) 2007, 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.
+dnl This file is offered as-is, without any warranty.
dnl Check how to define printf_frexp() without linking with libm.
diff --git a/gnulib-m4/printf-frexpl.m4 b/gnulib-m4/printf-frexpl.m4
index 7d3b7bd1..e7e23eb7 100644
--- a/gnulib-m4/printf-frexpl.m4
+++ b/gnulib-m4/printf-frexpl.m4
@@ -1,8 +1,10 @@
-# printf-frexpl.m4 serial 10
-dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
+# printf-frexpl.m4
+# serial 10
+dnl Copyright (C) 2007, 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.
+dnl This file is offered as-is, without any warranty.
dnl Check how to define printf_frexpl() without linking with libm.
diff --git a/gnulib-m4/printf.m4 b/gnulib-m4/printf.m4
index 6f917778..3aadf99c 100644
--- a/gnulib-m4/printf.m4
+++ b/gnulib-m4/printf.m4
@@ -1,8 +1,10 @@
-# printf.m4 serial 90
-dnl Copyright (C) 2003, 2007-2024 Free Software Foundation, Inc.
+# printf.m4
+# serial 98
+dnl Copyright (C) 2003, 2007-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 This file is offered as-is, without any warranty.
dnl Test whether the *printf family of functions supports the 'j', 'z', 't',
dnl 'L' size specifiers. (ISO C99, POSIX:2001)
@@ -615,6 +617,7 @@ static double zero = 0.0;
int main ()
{
int result = 0;
+ /* This fails on FreeBSD 5.2.1, Solaris 11.4. */
if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0
|| (strcmp (buf, "0x1.922p+1 33") != 0
&& strcmp (buf, "0x3.244p+0 33") != 0
@@ -626,27 +629,29 @@ int main ()
&& strcmp (buf, "-0X3.244P+0 33") != 0
&& strcmp (buf, "-0X6.488P-1 33") != 0
&& strcmp (buf, "-0XC.91P-2 33") != 0))
- result |= 2;
- /* This catches a FreeBSD 13.0 bug: it doesn't round. */
+ result |= 1;
+ /* This catches a Mac OS X 10.5, FreeBSD 6.4, NetBSD 10.0 bug:
+ it doesn't round. */
if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
|| (strcmp (buf, "0x1.83p+0 33") != 0
&& strcmp (buf, "0x3.05p-1 33") != 0
&& strcmp (buf, "0x6.0ap-2 33") != 0
&& strcmp (buf, "0xc.14p-3 33") != 0))
- result |= 4;
- /* This catches a Mac OS X 10.12.4 (Darwin 16.5) bug: it doesn't round. */
+ result |= 2;
+ /* This catches a macOS 14 (Darwin 23), FreeBSD 14.0, OpenBSD 7.5, AIX 7.3,
+ Solaris 11.4 bug: it doesn't round. */
if (sprintf (buf, "%.0a %d", 1.51, 33, 44, 55) < 0
|| (strcmp (buf, "0x2p+0 33") != 0
&& strcmp (buf, "0x3p-1 33") != 0
&& strcmp (buf, "0x6p-2 33") != 0
&& strcmp (buf, "0xcp-3 33") != 0))
result |= 4;
- /* This catches a FreeBSD 6.1 bug. See
+ /* This catches a Mac OS X 10.5, FreeBSD 6.4 bug. See
<https://lists.gnu.org/r/bug-gnulib/2007-04/msg00107.html> */
if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0
|| buf[0] == '0')
result |= 8;
- /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug. */
+ /* This catches a Mac OS X 10.3.9 (Darwin 7.9), FreeBSD 6.4 bug. */
if (sprintf (buf, "%.1a", 1.999) < 0
|| (strcmp (buf, "0x1.0p+1") != 0
&& strcmp (buf, "0x2.0p+0") != 0
@@ -654,7 +659,8 @@ int main ()
&& strcmp (buf, "0x8.0p-2") != 0))
result |= 16;
/* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a
- glibc 2.4 bug <https://sourceware.org/bugzilla/show_bug.cgi?id=2908>. */
+ glibc 2.4 bug <https://sourceware.org/PR2908>
+ and a FreeBSD 6.4, NetBSD 10.0 bug. */
if (sprintf (buf, "%.1La", 1.999L) < 0
|| (strcmp (buf, "0x1.0p+1") != 0
&& strcmp (buf, "0x2.0p+0") != 0
@@ -892,9 +898,14 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_N],
[AC_LANG_SOURCE([[
#include <signal.h>
#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
+#if defined _WIN32 && !defined __CYGWIN__
+# include <stdlib.h>
+#else
+# include <unistd.h>
+#endif
#ifdef _MSC_VER
+#include <crtdbg.h>
#include <inttypes.h>
/* See page about "Parameter Validation" on msdn.microsoft.com.
<https://docs.microsoft.com/en-us/cpp/c-runtime-library/parameter-validation>
@@ -921,6 +932,9 @@ int main ()
int count = -1;
#ifdef _MSC_VER
_set_invalid_parameter_handler (invalid_parameter_handler);
+ /* Also avoid an Abort/Retry/Ignore dialog in debug builds.
+ <https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/crtsetreportmode> */
+ _CrtSetReportMode (_CRT_ASSERT, 0);
#endif
signal (SIGABRT, abort_handler);
/* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2)
@@ -980,7 +994,7 @@ int main ()
int result = 0;
char buf[100];
/* Test whether %ls works at all.
- This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on
+ This test fails on OpenBSD 4.0, Solaris 2.6, Haiku, but not on
Cygwin 1.5. */
{
static const wchar_t wstring[] = { 'a', 'b', 'c', 0 };
@@ -989,8 +1003,8 @@ int main ()
|| strcmp (buf, "abc") != 0)
result |= 1;
}
- /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an
- assertion failure inside libc), but not on OpenBSD 4.0. */
+ /* This test fails on Solaris 2.6, Cygwin 1.5, Haiku (with an assertion
+ failure inside libc), but not on OpenBSD 4.0. */
{
static const wchar_t wstring[] = { 'a', 0 };
buf[0] = '\0';
@@ -1023,7 +1037,6 @@ changequote(,)dnl
# Guess yes on OpenBSD >= 6.0.
openbsd[1-5].*) gl_cv_func_printf_directive_ls="guessing no";;
openbsd*) gl_cv_func_printf_directive_ls="guessing yes";;
- irix*) gl_cv_func_printf_directive_ls="guessing no";;
solaris*) gl_cv_func_printf_directive_ls="guessing no";;
cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
@@ -1172,6 +1185,112 @@ changequote([,])dnl
])
])
+dnl Test whether the *printf family of functions supports POSIX/XSI format
+dnl strings with the ' flag for grouping of decimal digits on integers,
+dnl together with a precision.
+dnl Result is gl_cv_func_printf_flag_grouping_int_precision.
+
+AC_DEFUN([gl_PRINTF_FLAG_GROUPING_INT_PRECISION],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CACHE_CHECK([whether printf supports grouping on integers with a precision],
+ [gl_cv_func_printf_flag_grouping_int_precision],
+ [
+ dnl Prepare a guess, used when cross-compiling or when specific locales
+ dnl are not available.
+ case "$host_os" in
+ # Guess no on FreeBSD, NetBSD, Solaris, Cygwin, Haiku.
+ freebsd* | dragonfly* | netbsd* | solaris* | cygwin* | haiku*)
+ gl_cv_func_printf_flag_grouping_int_precision="guessing no";;
+ *)
+ gl_cv_func_printf_flag_grouping_int_precision="guessing yes";;
+ esac
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
+{
+ if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL
+ || setlocale (LC_ALL, "fr_FR") != NULL
+ || setlocale (LC_ALL, "fr_FR.ISO-8859-1") != NULL
+ || setlocale (LC_ALL, "fr_FR.ISO8859-1") != NULL)
+ {
+ if (sprintf (buf, "%'.10d", 1000) < 0)
+ return 1;
+ if (strlen (buf) == 10 && strcmp (buf, "0000001000") != 0)
+ /* The sprintf implementation has produced fewer than 10 digits. */
+ return 2;
+ else
+ return 0;
+ }
+ return 3;
+}]])],
+ [gl_cv_func_printf_flag_grouping_int_precision=yes],
+ [if test $? = 2; then
+ gl_cv_func_printf_flag_grouping_int_precision=no
+ fi
+ ],
+ [:])
+ ])
+])
+
+dnl Test whether the *printf family of functions supports POSIX/XSI format
+dnl strings with the ' flag for grouping of decimal digits, when the thousands
+dnl separator is a multibyte character (such as U+00A0 or U+202F in a UTF-8
+dnl locale).
+dnl Result is gl_cv_func_printf_flag_grouping_multibyte.
+
+AC_DEFUN([gl_PRINTF_FLAG_GROUPING_MULTIBYTE],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CACHE_CHECK([whether printf supports grouping with a multibyte separator],
+ [gl_cv_func_printf_flag_grouping_multibyte],
+ [
+ dnl Prepare a guess, used when cross-compiling or when specific locales
+ dnl are not available.
+ case "$host_os" in
+ # Guess no on NetBSD and Solaris 11 OpenIndiana.
+ netbsd* | solaris*)
+ gl_cv_func_printf_flag_grouping_multibyte="guessing no";;
+ *)
+ gl_cv_func_printf_flag_grouping_multibyte="guessing yes";;
+ esac
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
+{
+ if (setlocale (LC_ALL, "fr_FR.UTF-8") == NULL)
+ return 0;
+ if (sprintf (buf, "%'.0f", 1000.0) < 0)
+ return 1;
+ if (strlen (localeconv ()->thousands_sep) > 1)
+ {
+ if (strlen (buf) <= 4 + 1)
+ return 2;
+ else
+ return 3;
+ }
+ return 0;
+}]])],
+ [:],
+ [case $? in
+ 2) gl_cv_func_printf_flag_grouping_multibyte=no ;;
+ 3) gl_cv_func_printf_flag_grouping_multibyte=yes ;;
+ esac
+ ],
+ [:])
+ ])
+])
+
dnl Test whether the *printf family of functions supports the - flag correctly.
dnl (ISO C99.) See
dnl <https://lists.gnu.org/r/bug-coreutils/2008-02/msg00035.html>
@@ -1469,10 +1588,6 @@ changequote(,)dnl
*) gl_cv_func_printf_enomem="guessing no";;
esac
;;
- # Guess yes on IRIX.
- irix*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on OSF/1.
- osf*) gl_cv_func_printf_enomem="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_printf_enomem="guessing yes";;
# Guess yes on Haiku.
@@ -1564,11 +1679,6 @@ changequote(,)dnl
# Guess yes on HP-UX >= 11.
hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";;
hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
- # Guess yes on IRIX >= 6.5.
- irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";;
- # Guess yes on OSF/1 >= 5.
- osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
- osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
# Guess yes on NetBSD >= 3.
netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
gl_cv_func_snprintf_truncation_c99="guessing no";;
@@ -1590,7 +1700,7 @@ changequote([,])dnl
dnl Test whether the return value of the snprintf function is the number
dnl of bytes (excluding the terminating NUL) that would have been produced
dnl if the buffer had been large enough. (ISO C99, POSIX:2001)
-dnl For example, this test program fails on IRIX 6.5:
+dnl For example, this test program fails on HP-UX 11.31 and Solaris 9:
dnl ---------------------------------------------------------------------
dnl #include <stdio.h>
dnl int main()
@@ -1708,6 +1818,11 @@ AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N],
#include <signal.h>
#include <stdio.h>
#include <string.h>
+#if defined _WIN32 && !defined __CYGWIN__
+# include <stdlib.h>
+#else
+# include <unistd.h>
+#endif
#if HAVE_SNPRINTF
# define my_snprintf snprintf
#else
@@ -1774,11 +1889,6 @@ changequote(,)dnl
# Guess yes on AIX >= 4.
aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";;
aix*) gl_cv_func_snprintf_directive_n="guessing yes";;
- # Guess yes on IRIX >= 6.5.
- irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";;
- # Guess yes on OSF/1 >= 5.
- osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";;
- osf*) gl_cv_func_snprintf_directive_n="guessing yes";;
# Guess yes on NetBSD >= 3.
netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
gl_cv_func_snprintf_directive_n="guessing no";;
@@ -1933,8 +2043,6 @@ changequote(,)dnl
# Guess yes on AIX >= 4.
aix[1-3]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
aix*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
- # Guess yes on IRIX >= 6.5.
- irix6.5) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
# Guess yes on NetBSD >= 3.
netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
@@ -2039,7 +2147,7 @@ static wchar_t buf[100];
int main ()
{
int result = 0;
- /* This catches a glibc 2.15 and Haiku 2022 bug. */
+ /* This catches a glibc 2.15, Haiku 2022, NetBSD 10.0 bug. */
if (swprintf (buf, sizeof (buf) / sizeof (wchar_t),
L"%La %d", 3.1416015625L, 33, 44, 55) < 0
|| (wcscmp (buf, L"0x1.922p+1 33") != 0
@@ -2069,6 +2177,8 @@ int main ()
*-musl* | midipix*) gl_cv_func_swprintf_directive_la="guessing yes";;
# Guess yes on Android.
linux*-android*) gl_cv_func_swprintf_directive_la="guessing yes";;
+ # Guess no on NetBSD.
+ netbsd*) gl_cv_func_swprintf_directive_la="guessing no";;
# Guess no on native Windows.
mingw* | windows*) gl_cv_func_swprintf_directive_la="guessing no";;
# If we don't know, obey --enable-cross-guesses.
@@ -2140,20 +2250,22 @@ dnl 11 = gl_PRINTF_DIRECTIVE_LS
dnl 12 = gl_PRINTF_DIRECTIVE_LC
dnl 13 = gl_PRINTF_POSITIONS
dnl 14 = gl_PRINTF_FLAG_GROUPING
-dnl 15 = gl_PRINTF_FLAG_LEFTADJUST
-dnl 16 = gl_PRINTF_FLAG_ZERO
-dnl 17 = gl_PRINTF_FLAG_ALT_PRECISION_ZERO
-dnl 18 = gl_PRINTF_PRECISION
-dnl 19 = gl_PRINTF_ENOMEM
-dnl 20 = gl_SNPRINTF_PRESENCE
-dnl 21 = gl_SNPRINTF_TRUNCATION_C99
-dnl 22 = gl_SNPRINTF_RETVAL_C99
-dnl 23 = gl_SNPRINTF_DIRECTIVE_N
-dnl 24 = gl_SNPRINTF_SIZE1
-dnl 25 = gl_VSNPRINTF_ZEROSIZE_C99
-dnl 26 = gl_SWPRINTF_WORKS
-dnl 27 = gl_SWPRINTF_DIRECTIVE_LA
-dnl 28 = gl_SWPRINTF_DIRECTIVE_LC
+dnl 15 = gl_PRINTF_FLAG_GROUPING_INT_PRECISION
+dnl 16 = gl_PRINTF_FLAG_GROUPING_MULTIBYTE
+dnl 17 = gl_PRINTF_FLAG_LEFTADJUST
+dnl 18 = gl_PRINTF_FLAG_ZERO
+dnl 19 = gl_PRINTF_FLAG_ALT_PRECISION_ZERO
+dnl 20 = gl_PRINTF_PRECISION
+dnl 21 = gl_PRINTF_ENOMEM
+dnl 22 = gl_SNPRINTF_PRESENCE
+dnl 23 = gl_SNPRINTF_TRUNCATION_C99
+dnl 24 = gl_SNPRINTF_RETVAL_C99
+dnl 25 = gl_SNPRINTF_DIRECTIVE_N
+dnl 26 = gl_SNPRINTF_SIZE1
+dnl 27 = gl_VSNPRINTF_ZEROSIZE_C99
+dnl 28 = gl_SWPRINTF_WORKS
+dnl 29 = gl_SWPRINTF_DIRECTIVE_LA
+dnl 30 = gl_SWPRINTF_DIRECTIVE_LC
dnl
dnl 1 = checking whether printf supports size specifiers as in C99...
dnl 2 = checking whether printf supports size specifiers as in C23...
@@ -2169,62 +2281,64 @@ dnl 11 = checking whether printf supports the 'ls' directive...
dnl 12 = checking whether printf supports the 'lc' directive correctly...
dnl 13 = checking whether printf supports POSIX/XSI format strings with positions...
dnl 14 = checking whether printf supports the grouping flag...
-dnl 15 = checking whether printf supports the left-adjust flag correctly...
-dnl 16 = checking whether printf supports the zero flag correctly...
-dnl 17 = checking whether printf supports the alternative flag with a zero precision...
-dnl 18 = checking whether printf supports large precisions...
-dnl 19 = checking whether printf survives out-of-memory conditions...
-dnl 20 = checking for snprintf...
-dnl 21 = checking whether snprintf truncates the result as in C99...
-dnl 22 = checking whether snprintf returns a byte count as in C99...
-dnl 23 = checking whether snprintf fully supports the 'n' directive...
-dnl 24 = checking whether snprintf respects a size of 1...
-dnl 25 = checking whether vsnprintf respects a zero size as in C99...
-dnl 26 = checking whether swprintf works...
-dnl 27 = checking whether swprintf supports the 'La' and 'LA' directives...
-dnl 28 = checking whether swprintf supports the 'lc' directive...
+dnl 15 = checking whether printf supports grouping on integers with a precision...
+dnl 16 = checking whether printf supports grouping with a multibyte separator...
+dnl 17 = checking whether printf supports the left-adjust flag correctly...
+dnl 18 = checking whether printf supports the zero flag correctly...
+dnl 19 = checking whether printf supports the alternative flag with a zero precision...
+dnl 20 = checking whether printf supports large precisions...
+dnl 21 = checking whether printf survives out-of-memory conditions...
+dnl 22 = checking for snprintf...
+dnl 23 = checking whether snprintf truncates the result as in C99...
+dnl 24 = checking whether snprintf returns a byte count as in C99...
+dnl 25 = checking whether snprintf fully supports the 'n' directive...
+dnl 26 = checking whether snprintf respects a size of 1...
+dnl 27 = checking whether vsnprintf respects a zero size as in C99...
+dnl 28 = checking whether swprintf works...
+dnl 29 = checking whether swprintf supports the 'La' and 'LA' directives...
+dnl 30 = checking whether swprintf supports the 'lc' directive...
dnl
dnl . = yes, # = no.
dnl
-dnl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
-dnl musl libc 1.2.3 . # . . . . # # . . . # . . . . ? . . . . . . . . # . #
-dnl glibc 2.35 . # . . . . . . . . . . . . . . . . . . . . . . . . . .
-dnl glibc 2.5 . # . . . . # # . . . . . . . . . . . . . . . . . . # .
-dnl glibc 2.3.6 . # . . . # # # . . . . . . . . . . . . . . . . . . # .
-dnl FreeBSD 14.0 . . . . . # . . . . . . . . . . . . # . . . . . . # . #
-dnl FreeBSD 13.0 . # . . . # # # . . . . . . . . . . # . . . . . . # . #
-dnl FreeBSD 5.4, 6.1 . # . . . # # # . . . . . . . # ? . # . . . . . . # ? ?
-dnl Mac OS X 10.13.5 . # . . # # # # . # . . . . . . . . . . . . # . . # ? ?
-dnl Mac OS X 10.5.8 . # . . # # # # . . . . . . . # # . . . . . . . . # ? ?
-dnl Mac OS X 10.3.9 . # . . . # # # . . . . . . . # # . # . . . . . . # ? ?
-dnl OpenBSD 6.0, 6.7 . # . . . # # # . . . . . . . . . . # . . . . . . # . #
-dnl OpenBSD 3.9, 4.0 . # . # # # # # # . # . . # . # ? . # . . . . . . # ? ?
-dnl Cygwin 1.7.0 (2009) . # . . # . # # . . ? ? . . . . ? . ? . . . . . . ? ? ?
-dnl Cygwin 1.5.25 (2008) . # . . # # # # . . # ? . . . . ? . # . . . . . . ? ? ?
-dnl Cygwin 1.5.19 (2006) # # . . # # # # # . # ? . # . # ? # # . . . . . . ? ? ?
-dnl Solaris 11.4 . # . # # # # # . . # . . . . # . . . . . . . . . . # .
-dnl Solaris 11.3 . # . . . # # # . . # . . . . . . . . . . . . . . . # .
-dnl Solaris 11.0 . # . # # # # # . . # . . . . # . . . . . . . . . ? ? ?
-dnl Solaris 10 . # . # # # # # . . # . . . . # . # . . . . . . . . # .
-dnl Solaris 2.6 ... 9 # # . # # # # # # . # . . . . # ? # . . . # . . . ? ? ?
-dnl Solaris 2.5.1 # # . # # # # # # . # . . . . # ? . . # # # # # # ? ? ?
-dnl AIX 7.1 . # . # # # # # . . . . . . . # . # . . . . . . . # . .
-dnl AIX 5.2 . # . # # # # # . . . . . . . # ? . . . . . . . . # ? ?
-dnl AIX 4.3.2, 5.1 # # . # # # # # # . . . . . . # ? . . . . # . . . # ? ?
-dnl HP-UX 11.31 . # . . . # # # . . . ? . . . # ? . . . . # # . . ? ? ?
-dnl HP-UX 11.{00,11,23} # # . . . # # # # . . ? . . . # ? . . . . # # . # ? ? ?
-dnl HP-UX 10.20 # # . # . # # # # . ? ? . . # # ? . . . . # # ? # ? ? ?
-dnl IRIX 6.5 # # . # # # # # # . # . . . . # ? . . . . # . . . # ? ?
-dnl OSF/1 5.1 # # . # # # # # # . . ? . . . # ? . . . . # . . # ? ? ?
-dnl OSF/1 4.0d # # . # # # # # # . . ? . . . # ? . . # # # # # # ? ? ?
-dnl NetBSD 9.0 . # . . . # # # . . . . . . . . . . . . . . . . . # . #
-dnl NetBSD 5.0 . # . . # # # # . . . . . . . # ? . # . . . . . . # ? ?
-dnl NetBSD 4.0 . # ? ? ? ? # # ? . ? . . ? ? ? ? ? ? . . . ? ? ? # ? ?
-dnl NetBSD 3.0 . # . . . # # # # . ? . # # ? # ? . # . . . . . . # ? ?
-dnl Haiku . # . . # # # # # . # ? . . . . ? . ? . . ? . . . . # .
-dnl BeOS # # # . # # # # # . ? ? # . ? . ? # ? . . ? . . . ? ? ?
-dnl Android 4.3 . # . # # # # # # # # ? . # . # ? . # . . . # . . ? ? ?
-dnl old mingw / msvcrt # # # # # # # # # . . ? # # . # ? # ? . # # # . . # ? ?
-dnl MSVC 9 # # # # # # # # # # . ? # # . # ? # ? # # # # . . # ? ?
-dnl mingw 2009-2011 . # # . # . # # . . . ? # # . . ? . ? . . . . . . # ? ?
-dnl mingw-w64 2011 # # # # # # # # # . . ? # # . # ? # ? . # # # . . # ? ?
+dnl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
+dnl musl libc 1.2.3 . # . . . . # # . . . # . . . . . . . . . . . . . . . # . #
+dnl glibc 2.35 . # . . . . . . . . . . . . # . . . . . . . . . . . . . . .
+dnl glibc 2.5 . # . . . . # # . . . . . . # . . . . . . . . . . . . . # .
+dnl glibc 2.3.6 . # . . . # # # . . . . . . . . . . . . . . . . . . . . # .
+dnl FreeBSD 14.0 . . . . . # . . . . . . . . # . . . . . # . . . . . . # . #
+dnl FreeBSD 13.0 . # . . . # # # . . . . . . # . . . . . # . . . . . . # . #
+dnl FreeBSD 5.4, 6.1 . # . . . # # # . . . . . . . . . # ? . # . . . . . . # ? ?
+dnl Mac OS X 10.13.5 . # . . # # # # . # . . . . ? ? . . . . . . . . # . . # ? ?
+dnl Mac OS X 10.5.8 . # . . # # # # . . . . . . ? ? . # # . . . . . . . . # ? ?
+dnl Mac OS X 10.3.9 . # . . . # # # . . . . . . ? ? . # # . # . . . . . . # ? ?
+dnl OpenBSD 6.0, 6.7 . # . . . # # # . . . . . . . . . . . . # . . . . . . # . #
+dnl OpenBSD 3.9, 4.0 . # . # # # # # # . # . . # ? ? . # ? . # . . . . . . # ? ?
+dnl Cygwin 1.7.0 (2009) . # . . # . # # . . ? ? . . ? ? . . ? . ? . . . . . . ? ? ?
+dnl Cygwin 1.5.25 (2008) . # . . # # # # . . # ? . . ? ? . . ? . # . . . . . . ? ? ?
+dnl Cygwin 1.5.19 (2006) # # . . # # # # # . # ? . # ? ? . # ? # # . . . . . . ? ? ?
+dnl Solaris 11.4 . # . # # # # # . . # . . . # # . # . . . . . . . . . . # .
+dnl Solaris 11.3 . # . . . # # # . . # . . . ? ? . . . . . . . . . . . . # .
+dnl Solaris 11.0 . # . # # # # # . . # . . . ? ? . # . . . . . . . . . ? ? ?
+dnl Solaris 10 . # . # # # # # . . # . . . # # . # . # . . . . . . . . # .
+dnl Solaris 2.6 ... 9 # # . # # # # # # . # . . . ? ? . # ? # . . . # . . . ? ? ?
+dnl Solaris 2.5.1 # # . # # # # # # . # . . . ? ? . # ? . . # # # # # # ? ? ?
+dnl AIX 7.1 . # . # # # # # . . . . . . . . . # . # . . . . . . . # . .
+dnl AIX 5.2 . # . # # # # # . . . . . . ? ? . # ? . . . . . . . . # ? ?
+dnl AIX 4.3.2, 5.1 # # . # # # # # # . . . . . ? ? . # ? . . . . # . . . # ? ?
+dnl HP-UX 11.31 . # . . . # # # . . . ? . . ? ? . # ? . . . . # # . . ? ? ?
+dnl HP-UX 11.{00,11,23} # # . . . # # # # . . ? . . ? ? . # ? . . . . # # . # ? ? ?
+dnl HP-UX 10.20 # # . # . # # # # . ? ? . . ? ? # # ? . . . . # # ? # ? ? ?
+dnl IRIX 6.5 # # . # # # # # # . # . . . ? ? . # ? . . . . # . . . # ? ?
+dnl OSF/1 5.1 # # . # # # # # # . . ? . . ? ? . # ? . . . . # . . # ? ? ?
+dnl OSF/1 4.0d # # . # # # # # # . . ? . . ? ? . # ? . . # # # # # # ? ? ?
+dnl NetBSD 9.0 . # . . . # # # . . . . . . # # . . . . . . . . . . . # . #
+dnl NetBSD 5.0 . # . . # # # # . . . . . . ? ? . # ? . # . . . . . . # ? ?
+dnl NetBSD 4.0 . # ? ? ? ? # # ? . ? . . ? ? ? ? ? ? ? ? . . . ? ? ? # ? ?
+dnl NetBSD 3.0 . # . . . # # # # . ? . # # ? ? ? # ? . # . . . . . . # ? ?
+dnl Haiku . # . . # # # # # . # ? . . # . . . ? . ? . . ? . . . . # .
+dnl BeOS # # # . # # # # # . ? ? # . ? ? ? . ? # ? . . ? . . . ? ? ?
+dnl Android 4.3 . # . # # # # # # # # ? . # ? ? . # ? . # . . . # . . ? ? ?
+dnl old mingw / msvcrt # # # # # # # # # . . ? # # ? ? . # ? # ? . # # # . . # ? ?
+dnl MSVC 9 # # # # # # # # # # . ? # # ? ? . # ? # ? # # # # . . # ? ?
+dnl mingw 2009-2011 . # # . # . # # . . . ? # # ? ? . . ? . ? . . . . . . # ? ?
+dnl mingw-w64 2011 # # # # # # # # # . . ? # # ? ? . # ? # ? . # # # . . # ? ?
diff --git a/gnulib-m4/pselect.m4 b/gnulib-m4/pselect.m4
index 005b722b..06df1b9a 100644
--- a/gnulib-m4/pselect.m4
+++ b/gnulib-m4/pselect.m4
@@ -1,8 +1,10 @@
-# pselect.m4 serial 11
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# pselect.m4
+# serial 11
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_PSELECT],
[
diff --git a/gnulib-m4/pthread-cond.m4 b/gnulib-m4/pthread-cond.m4
new file mode 100644
index 00000000..5c78f6ef
--- /dev/null
+++ b/gnulib-m4/pthread-cond.m4
@@ -0,0 +1,38 @@
+# pthread-cond.m4
+# serial 3
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
+
+AC_DEFUN([gl_PTHREAD_COND],
+[
+ AC_REQUIRE([gl_PTHREAD_H])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ if { case "$host_os" in mingw* | windows*) true;; *) false;; esac; } \
+ && test $gl_threads_api = windows; then
+ dnl Choose function names that don't conflict with the mingw-w64 winpthreads
+ dnl library.
+ REPLACE_PTHREAD_COND_INIT=1
+ REPLACE_PTHREAD_CONDATTR_INIT=1
+ REPLACE_PTHREAD_CONDATTR_DESTROY=1
+ REPLACE_PTHREAD_COND_WAIT=1
+ REPLACE_PTHREAD_COND_TIMEDWAIT=1
+ REPLACE_PTHREAD_COND_SIGNAL=1
+ REPLACE_PTHREAD_COND_BROADCAST=1
+ REPLACE_PTHREAD_COND_DESTROY=1
+ else
+ if test $HAVE_PTHREAD_H = 0; then
+ HAVE_PTHREAD_COND_INIT=0
+ HAVE_PTHREAD_CONDATTR_INIT=0
+ HAVE_PTHREAD_CONDATTR_DESTROY=0
+ HAVE_PTHREAD_COND_WAIT=0
+ HAVE_PTHREAD_COND_TIMEDWAIT=0
+ HAVE_PTHREAD_COND_SIGNAL=0
+ HAVE_PTHREAD_COND_BROADCAST=0
+ HAVE_PTHREAD_COND_DESTROY=0
+ fi
+ fi
+])
diff --git a/gnulib-m4/pthread-mutex.m4 b/gnulib-m4/pthread-mutex.m4
new file mode 100644
index 00000000..ae3acf4d
--- /dev/null
+++ b/gnulib-m4/pthread-mutex.m4
@@ -0,0 +1,73 @@
+# pthread-mutex.m4
+# serial 4
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
+
+AC_DEFUN([gl_PTHREAD_MUTEX],
+[
+ AC_REQUIRE([gl_PTHREAD_H])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ if { case "$host_os" in mingw* | windows*) true;; *) false;; esac; } \
+ && test $gl_threads_api = windows; then
+ dnl Choose function names that don't conflict with the mingw-w64 winpthreads
+ dnl library.
+ REPLACE_PTHREAD_MUTEX_INIT=1
+ REPLACE_PTHREAD_MUTEXATTR_INIT=1
+ REPLACE_PTHREAD_MUTEXATTR_GETTYPE=1
+ REPLACE_PTHREAD_MUTEXATTR_SETTYPE=1
+ REPLACE_PTHREAD_MUTEXATTR_GETROBUST=1
+ REPLACE_PTHREAD_MUTEXATTR_SETROBUST=1
+ REPLACE_PTHREAD_MUTEXATTR_DESTROY=1
+ REPLACE_PTHREAD_MUTEX_LOCK=1
+ REPLACE_PTHREAD_MUTEX_TRYLOCK=1
+ REPLACE_PTHREAD_MUTEX_TIMEDLOCK=1
+ REPLACE_PTHREAD_MUTEX_UNLOCK=1
+ REPLACE_PTHREAD_MUTEX_DESTROY=1
+ else
+ if test $HAVE_PTHREAD_H = 0; then
+ HAVE_PTHREAD_MUTEX_INIT=0
+ HAVE_PTHREAD_MUTEXATTR_INIT=0
+ HAVE_PTHREAD_MUTEXATTR_GETTYPE=0
+ HAVE_PTHREAD_MUTEXATTR_SETTYPE=0
+ HAVE_PTHREAD_MUTEXATTR_GETROBUST=0
+ HAVE_PTHREAD_MUTEXATTR_SETROBUST=0
+ HAVE_PTHREAD_MUTEXATTR_DESTROY=0
+ HAVE_PTHREAD_MUTEX_LOCK=0
+ HAVE_PTHREAD_MUTEX_TRYLOCK=0
+ dnl HAVE_PTHREAD_MUTEX_TIMEDLOCK is set in pthread_mutex_timedlock.m4.
+ HAVE_PTHREAD_MUTEX_UNLOCK=0
+ HAVE_PTHREAD_MUTEX_DESTROY=0
+ else
+ AC_CACHE_CHECK([for pthread_mutexattr_getrobust],
+ [gl_cv_func_pthread_mutexattr_getrobust],
+ [saved_LIBS="$LIBS"
+ LIBS="$LIBS $LIBPMULTITHREAD"
+ AC_LINK_IFELSE(
+ [AC_LANG_SOURCE(
+ [[extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int pthread_mutexattr_getrobust (void);
+ int main ()
+ {
+ return pthread_mutexattr_getrobust ();
+ }
+ ]])],
+ [gl_cv_func_pthread_mutexattr_getrobust=yes],
+ [gl_cv_func_pthread_mutexattr_getrobust=no])
+ LIBS="$saved_LIBS"
+ ])
+ if test $gl_cv_func_pthread_mutexattr_getrobust = no; then
+ HAVE_PTHREAD_MUTEXATTR_GETROBUST=0
+ HAVE_PTHREAD_MUTEXATTR_SETROBUST=0
+ AC_DEFINE([PTHREAD_MUTEXATTR_ROBUST_UNIMPLEMENTED], [1],
+ [Define if the 'robust' attribute of pthread_mutex* doesn't exist.])
+ fi
+ fi
+ fi
+])
diff --git a/gnulib-m4/pthread-once.m4 b/gnulib-m4/pthread-once.m4
new file mode 100644
index 00000000..85549254
--- /dev/null
+++ b/gnulib-m4/pthread-once.m4
@@ -0,0 +1,83 @@
+# pthread-once.m4
+# serial 6
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
+
+AC_DEFUN([gl_PTHREAD_ONCE],
+[
+ AC_REQUIRE([gl_PTHREAD_H])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_PTHREADLIB])
+
+ if { case "$host_os" in mingw* | windows*) true;; *) false;; esac; } \
+ && test $gl_threads_api = windows; then
+ dnl Choose function names that don't conflict with the mingw-w64 winpthreads
+ dnl library.
+ REPLACE_PTHREAD_ONCE=1
+ PTHREAD_ONCE_LIB=
+ else
+ if test $HAVE_PTHREAD_H = 0; then
+ HAVE_PTHREAD_ONCE=0
+ PTHREAD_ONCE_LIB=
+ else
+ dnl Work around Cygwin 3.5.3 bug.
+ AC_CACHE_CHECK([whether pthread_once works],
+ [gl_cv_func_pthread_once_works],
+ [case "$host_os" in
+ cygwin*) gl_cv_func_pthread_once_works="guessing no" ;;
+ *) gl_cv_func_pthread_once_works="yes" ;;
+ esac
+ ])
+ case "$gl_cv_func_pthread_once_works" in
+ *yes) ;;
+ *) REPLACE_PTHREAD_ONCE=1 ;;
+ esac
+ dnl Determine whether linking requires $(LIBPMULTITHREAD) or only
+ dnl $(LIBPTHREAD).
+ if test -z "$LIBPTHREAD" && test -n "$LIBPMULTITHREAD"; then
+ AC_CACHE_CHECK([whether pthread_once can be used without linking with libpthread],
+ [gl_cv_func_pthread_once_no_lib],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ static pthread_once_t a_once = PTHREAD_ONCE_INIT;
+ static int a;
+ static void a_init (void) { a = 8647; }
+ ]],
+ [[if (pthread_once (&a_once, a_init)) return 1;
+ if (a != 8647) return 2;
+ return 0;
+ ]])],
+ [gl_cv_func_pthread_once_no_lib=yes],
+ [gl_cv_func_pthread_once_no_lib=no],
+ [case "$host_os" in
+ # Guess no on glibc.
+ *-gnu* | gnu*)
+ gl_cv_func_pthread_once_no_lib="guessing no" ;;
+ # Guess no on FreeBSD.
+ freebsd* | dragonfly* | midnightbsd*)
+ gl_cv_func_pthread_once_no_lib="guessing no" ;;
+ # Guess yes otherwise.
+ *)
+ gl_cv_func_pthread_once_no_lib="guessing yes" ;;
+ esac
+ ])
+ ])
+ case "$gl_cv_func_pthread_once_no_lib" in
+ *yes) PTHREAD_ONCE_LIB="$LIBPTHREAD" ;;
+ *) PTHREAD_ONCE_LIB="$LIBPMULTITHREAD" ;;
+ esac
+ dnl Expected result:
+ dnl PTHREAD_ONCE_LIB is $(LIBPMULTITHREAD) on glibc < 2.34, FreeBSD.
+ dnl PTHREAD_ONCE_LIB is $(LIBPTHREAD) in particular on
+ dnl musl libc, macOS, NetBSD, Solaris, Cygwin, Haiku, Android.
+ else
+ PTHREAD_ONCE_LIB="$LIBPTHREAD"
+ fi
+ fi
+ fi
+ AC_SUBST([PTHREAD_ONCE_LIB])
+])
diff --git a/gnulib-m4/pthread-rwlock.m4 b/gnulib-m4/pthread-rwlock.m4
new file mode 100644
index 00000000..877da63f
--- /dev/null
+++ b/gnulib-m4/pthread-rwlock.m4
@@ -0,0 +1,462 @@
+# pthread-rwlock.m4
+# serial 9
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
+
+AC_DEFUN([gl_PTHREAD_RWLOCK],
+[
+ AC_REQUIRE([gl_PTHREAD_H])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ if { case "$host_os" in mingw* | windows*) true;; *) false;; esac; } \
+ && test $gl_threads_api = windows; then
+ dnl Choose function names that don't conflict with the mingw-w64 winpthreads
+ dnl library.
+ REPLACE_PTHREAD_RWLOCK_INIT=1
+ REPLACE_PTHREAD_RWLOCKATTR_INIT=1
+ REPLACE_PTHREAD_RWLOCKATTR_DESTROY=1
+ REPLACE_PTHREAD_RWLOCK_RDLOCK=1
+ REPLACE_PTHREAD_RWLOCK_WRLOCK=1
+ REPLACE_PTHREAD_RWLOCK_TRYRDLOCK=1
+ REPLACE_PTHREAD_RWLOCK_TRYWRLOCK=1
+ REPLACE_PTHREAD_RWLOCK_TIMEDRDLOCK=1
+ REPLACE_PTHREAD_RWLOCK_TIMEDWRLOCK=1
+ REPLACE_PTHREAD_RWLOCK_UNLOCK=1
+ REPLACE_PTHREAD_RWLOCK_DESTROY=1
+ else
+ if test $HAVE_PTHREAD_H = 0; then
+ HAVE_PTHREAD_RWLOCK_INIT=0
+ HAVE_PTHREAD_RWLOCKATTR_INIT=0
+ HAVE_PTHREAD_RWLOCKATTR_DESTROY=0
+ HAVE_PTHREAD_RWLOCK_RDLOCK=0
+ HAVE_PTHREAD_RWLOCK_WRLOCK=0
+ HAVE_PTHREAD_RWLOCK_TRYRDLOCK=0
+ HAVE_PTHREAD_RWLOCK_TRYWRLOCK=0
+ HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK=0
+ HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK=0
+ HAVE_PTHREAD_RWLOCK_UNLOCK=0
+ HAVE_PTHREAD_RWLOCK_DESTROY=0
+ else
+ dnl On Mac OS X 10.4, the pthread_rwlock_* functions exist but are not
+ dnl usable because PTHREAD_RWLOCK_INITIALIZER is not defined.
+ dnl On Android 4.3, the pthread_rwlock_* functions are declared in
+ dnl <pthread.h> but don't exist in libc.
+ AC_CACHE_CHECK([for pthread_rwlock_init],
+ [gl_cv_func_pthread_rwlock_init],
+ [case "$host_os" in
+ darwin*)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#include <pthread.h>
+ pthread_rwlock_t l = PTHREAD_RWLOCK_INITIALIZER;
+ ]])],
+ [gl_cv_func_pthread_rwlock_init=yes],
+ [gl_cv_func_pthread_rwlock_init=no])
+ ;;
+ *)
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS $LIBPMULTITHREAD"
+ AC_LINK_IFELSE(
+ [AC_LANG_SOURCE(
+ [[extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int pthread_rwlock_init (void);
+ int main ()
+ {
+ return pthread_rwlock_init ();
+ }
+ ]])],
+ [gl_cv_func_pthread_rwlock_init=yes],
+ [gl_cv_func_pthread_rwlock_init=no])
+ LIBS="$saved_LIBS"
+ ;;
+ esac
+ ])
+ if test $gl_cv_func_pthread_rwlock_init = no; then
+ REPLACE_PTHREAD_RWLOCK_INIT=1
+ REPLACE_PTHREAD_RWLOCKATTR_INIT=1
+ REPLACE_PTHREAD_RWLOCKATTR_DESTROY=1
+ REPLACE_PTHREAD_RWLOCK_RDLOCK=1
+ REPLACE_PTHREAD_RWLOCK_WRLOCK=1
+ REPLACE_PTHREAD_RWLOCK_TRYRDLOCK=1
+ REPLACE_PTHREAD_RWLOCK_TRYWRLOCK=1
+ REPLACE_PTHREAD_RWLOCK_TIMEDRDLOCK=1
+ REPLACE_PTHREAD_RWLOCK_TIMEDWRLOCK=1
+ REPLACE_PTHREAD_RWLOCK_UNLOCK=1
+ REPLACE_PTHREAD_RWLOCK_DESTROY=1
+ AC_DEFINE([PTHREAD_RWLOCK_UNIMPLEMENTED], [1],
+ [Define if all pthread_rwlock* functions don't exist.])
+ else
+ dnl On Mac OS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+ dnl Solaris 9, Cygwin, the pthread_rwlock_timed*lock functions don't
+ dnl exist, although the other pthread_rwlock* functions exist.
+ AC_CHECK_DECL([pthread_rwlock_timedrdlock], ,
+ [HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK=0
+ HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK=0
+ AC_DEFINE([PTHREAD_RWLOCK_LACKS_TIMEOUT], [1],
+ [Define if the functions pthread_rwlock_timedrdlock and pthread_rwlock_timedwrlock don't exist.])
+ ],
+ [[#include <pthread.h>]])
+ dnl In glibc ≥ 2.25 on Linux, test-pthread-rwlock-waitqueue reports
+ dnl "This implementation always prefers readers.", and this wait queue
+ dnl handling is unsuitable, because it leads to writer starvation:
+ dnl On machines with 8 or more CPUs, test-pthread-rwlock may never
+ dnl terminate. See
+ dnl <https://lists.gnu.org/archive/html/bug-gnulib/2024-06/msg00291.html>
+ dnl <https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00081.html>
+ dnl for details.
+ AC_CACHE_CHECK([for reasonable pthread_rwlock wait queue handling],
+ [gl_cv_func_pthread_rwlock_good_waitqueue],
+ [case "$host_os" in
+ linux*-gnu*)
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS $LIBPMULTITHREAD"
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+/* This test is a simplified variant of tests/test-pthread-rwlock-waitqueue.c. */
+#include <pthread.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+#if defined __hppa
+# define STEP_INTERVAL 20000000 /* nanoseconds */
+#else
+# define STEP_INTERVAL 10000000 /* nanoseconds */
+#endif
+
+static pthread_rwlock_t lock;
+
+static pthread_rwlock_t sprintf_lock;
+
+struct locals
+{
+ const char *name;
+ unsigned int wait_before;
+ unsigned int wait_after;
+ char *result;
+};
+
+static void *
+reader_func (void *arg)
+{
+ struct locals *l = arg;
+ int err;
+
+ if (l->wait_before > 0)
+ {
+ struct timespec duration;
+ duration.tv_sec = l->wait_before / 1000000000;
+ duration.tv_nsec = l->wait_before % 1000000000;
+ nanosleep (&duration, NULL);
+ }
+ err = pthread_rwlock_rdlock (&lock);
+ if (err)
+ {
+ fprintf (stderr, "pthread_rwlock_rdlock failed, error = %d\n", err);
+ abort ();
+ }
+ if (pthread_rwlock_wrlock (&sprintf_lock))
+ {
+ fprintf (stderr, "pthread_rwlock_wrlock on sprintf_lock failed\n");
+ abort ();
+ }
+ sprintf (l->result + strlen (l->result), " %s", l->name);
+ if (pthread_rwlock_unlock (&sprintf_lock))
+ {
+ fprintf (stderr, "pthread_rwlock_unlock on sprintf_lock failed\n");
+ abort ();
+ }
+ if (l->wait_after > 0)
+ {
+ struct timespec duration;
+ duration.tv_sec = l->wait_after / 1000000000;
+ duration.tv_nsec = l->wait_after % 1000000000;
+ nanosleep (&duration, NULL);
+ }
+ err = pthread_rwlock_unlock (&lock);
+ if (err)
+ {
+ fprintf (stderr, "pthread_rwlock_unlock failed, error = %d\n", err);
+ abort ();
+ }
+
+ return NULL;
+}
+
+static void *
+writer_func (void *arg)
+{
+ struct locals *l = arg;
+ int err;
+
+ if (l->wait_before > 0)
+ {
+ struct timespec duration;
+ duration.tv_sec = l->wait_before / 1000000000;
+ duration.tv_nsec = l->wait_before % 1000000000;
+ nanosleep (&duration, NULL);
+ }
+ err = pthread_rwlock_wrlock (&lock);
+ if (err)
+ {
+ fprintf (stderr, "pthread_rwlock_rdlock failed, error = %d\n", err);
+ abort ();
+ }
+ if (pthread_rwlock_wrlock (&sprintf_lock))
+ {
+ fprintf (stderr, "pthread_rwlock_wrlock on sprintf_lock failed\n");
+ abort ();
+ }
+ sprintf (l->result + strlen (l->result), " %s", l->name);
+ if (pthread_rwlock_unlock (&sprintf_lock))
+ {
+ fprintf (stderr, "pthread_rwlock_unlock on sprintf_lock failed\n");
+ abort ();
+ }
+ if (l->wait_after > 0)
+ {
+ struct timespec duration;
+ duration.tv_sec = l->wait_after / 1000000000;
+ duration.tv_nsec = l->wait_after % 1000000000;
+ nanosleep (&duration, NULL);
+ }
+ err = pthread_rwlock_unlock (&lock);
+ if (err)
+ {
+ fprintf (stderr, "pthread_rwlock_unlock failed, error = %d\n", err);
+ abort ();
+ }
+
+ return NULL;
+}
+
+static const char *
+do_test (const char *rw_string)
+{
+ size_t n = strlen (rw_string);
+ int err;
+ char resultbuf[100];
+
+ char **names = (char **) malloc (n * sizeof (char *));
+ for (size_t i = 0; i < n; i++)
+ {
+ char name[12];
+ sprintf (name, "%c%u", rw_string[i], (unsigned int) (i+1));
+ names[i] = strdup (name);
+ }
+
+ resultbuf[0] = '\0';
+
+ /* Create the threads. */
+ struct locals *locals = (struct locals *) malloc (n * sizeof (struct locals));
+ pthread_t *threads = (pthread_t *) malloc (n * sizeof (pthread_t));
+ for (size_t i = 0; i < n; i++)
+ {
+ locals[i].name = names[i];
+ locals[i].wait_before = i * STEP_INTERVAL;
+ locals[i].wait_after = (i == 0 ? n * STEP_INTERVAL : 0);
+ locals[i].result = resultbuf;
+ err = pthread_create (&threads[i], NULL,
+ rw_string[i] == 'R' ? reader_func :
+ rw_string[i] == 'W' ? writer_func :
+ (abort (), (void * (*) (void *)) NULL),
+ &locals[i]);
+ if (err)
+ {
+ fprintf (stderr, "pthread_create failed to create thread %u, error = %d\n",
+ (unsigned int) (i+1), err);
+ abort ();
+ }
+ }
+
+ /* Wait until the threads are done. */
+ for (size_t i = 0; i < n; i++)
+ {
+ void *retcode;
+ err = pthread_join (threads[i], &retcode);
+ if (err)
+ {
+ fprintf (stderr, "pthread_join failed to wait for thread %u, error = %d\n",
+ (unsigned int) (i+1), err);
+ abort ();
+ }
+ }
+
+ /* Clean up. */
+ free (threads);
+ free (locals);
+ for (size_t i = 0; i < n; i++)
+ free (names[i]);
+ free (names);
+
+ return strdup (resultbuf);
+}
+
+static bool
+startswith (const char *str, const char *prefix)
+{
+ return strncmp (str, prefix, strlen (prefix)) == 0;
+}
+
+static int
+find_wait_queue_handling (void)
+{
+ bool final_r_prefers_readers = true;
+ bool final_w_prefers_readers = true;
+
+ /* Perform the test a few times, so that in case of a non-deterministic
+ behaviour that happens to look like deterministic in one round, we get
+ a higher probability of finding that it is non-deterministic. */
+ for (int repeat = 3; repeat > 0; repeat--)
+ {
+ bool r_prefers_readers = false;
+ bool w_prefers_readers = false;
+
+ {
+ const char * RWR = do_test ("RWR");
+ const char * RWRR = do_test ("RWRR");
+ const char * RWRW = do_test ("RWRW");
+ const char * RWWR = do_test ("RWWR");
+ const char * RWRRR = do_test ("RWRRR");
+ const char * RWRRW = do_test ("RWRRW");
+ const char * RWRWR = do_test ("RWRWR");
+ const char * RWRWW = do_test ("RWRWW");
+ const char * RWWRR = do_test ("RWWRR");
+ const char * RWWRW = do_test ("RWWRW");
+ const char * RWWWR = do_test ("RWWWR");
+
+ if ( startswith (RWR, " R1 R")
+ && startswith (RWRR, " R1 R")
+ && startswith (RWRW, " R1 R")
+ && startswith (RWWR, " R1 R")
+ && startswith (RWRRR, " R1 R")
+ && startswith (RWRRW, " R1 R")
+ && startswith (RWRWR, " R1 R")
+ && startswith (RWRWW, " R1 R")
+ && startswith (RWWRR, " R1 R")
+ && startswith (RWWRW, " R1 R")
+ && startswith (RWWWR, " R1 R"))
+ r_prefers_readers = true;
+ }
+
+ {
+ const char * WRR = do_test ("WRR");
+ const char * WRW = do_test ("WRW");
+ const char * WWR = do_test ("WWR");
+ const char * WRRR = do_test ("WRRR");
+ const char * WRRW = do_test ("WRRW");
+ const char * WRWR = do_test ("WRWR");
+ const char * WRWW = do_test ("WRWW");
+ const char * WWRR = do_test ("WWRR");
+ const char * WWRW = do_test ("WWRW");
+ const char * WWWR = do_test ("WWWR");
+ const char * WRRRR = do_test ("WRRRR");
+ const char * WRRRW = do_test ("WRRRW");
+ const char * WRRWR = do_test ("WRRWR");
+ const char * WRRWW = do_test ("WRRWW");
+ const char * WRWRR = do_test ("WRWRR");
+ const char * WRWRW = do_test ("WRWRW");
+ const char * WRWWR = do_test ("WRWWR");
+ const char * WRWWW = do_test ("WRWWW");
+ const char * WWRRR = do_test ("WWRRR");
+ const char * WWRRW = do_test ("WWRRW");
+ const char * WWRWR = do_test ("WWRWR");
+ const char * WWRWW = do_test ("WWRWW");
+ const char * WWWRR = do_test ("WWWRR");
+ const char * WWWRW = do_test ("WWWRW");
+ const char * WWWWR = do_test ("WWWWR");
+
+ if ( startswith (WRR, " W1 R")
+ && startswith (WRW, " W1 R")
+ && startswith (WWR, " W1 R")
+ && startswith (WRRR, " W1 R")
+ && startswith (WRRW, " W1 R")
+ && startswith (WRWR, " W1 R")
+ && startswith (WRWW, " W1 R")
+ && startswith (WWRR, " W1 R")
+ && startswith (WWRW, " W1 R")
+ && startswith (WWWR, " W1 R")
+ && startswith (WRRRR, " W1 R")
+ && startswith (WRRRW, " W1 R")
+ && startswith (WRRWR, " W1 R")
+ && startswith (WRRWW, " W1 R")
+ && startswith (WRWRR, " W1 R")
+ && startswith (WRWRW, " W1 R")
+ && startswith (WRWWR, " W1 R")
+ && startswith (WRWWW, " W1 R")
+ && startswith (WWRRR, " W1 R")
+ && startswith (WWRRW, " W1 R")
+ && startswith (WWRWR, " W1 R")
+ && startswith (WWRWW, " W1 R")
+ && startswith (WWWRR, " W1 R")
+ && startswith (WWWRW, " W1 R")
+ && startswith (WWWWR, " W1 R"))
+ w_prefers_readers = true;
+ }
+
+ final_r_prefers_readers &= r_prefers_readers;
+ final_w_prefers_readers &= w_prefers_readers;
+ }
+
+ /* The wait queue handling is unsuitable if it always prefers readers,
+ because it leads to writer starvation: On machines with 8 or more CPUs,
+ test-pthread-rwlock may never terminate. */
+ return final_r_prefers_readers && final_w_prefers_readers;
+}
+
+int
+main ()
+{
+ /* Initialize the sprintf_lock. */
+ if (pthread_rwlock_init (&sprintf_lock, NULL))
+ {
+ fprintf (stderr, "pthread_rwlock_init failed\n");
+ abort ();
+ }
+
+ /* Find the wait queue handling of a default-initialized lock. */
+ if (pthread_rwlock_init (&lock, NULL))
+ {
+ fprintf (stderr, "pthread_rwlock_init failed\n");
+ abort ();
+ }
+ {
+ int fail = find_wait_queue_handling ();
+ return fail;
+ }
+}
+ ]])
+ ],
+ [gl_cv_func_pthread_rwlock_good_waitqueue=yes],
+ [gl_cv_func_pthread_rwlock_good_waitqueue=no],
+ [dnl Guess no on glibc/Linux.
+ gl_cv_func_pthread_rwlock_good_waitqueue="guessing no"
+ ])
+ LIBS="$saved_LIBS"
+ ;;
+ *) dnl Guess yes on other platforms.
+ gl_cv_func_pthread_rwlock_good_waitqueue="guessing yes"
+ ;;
+ esac
+ ])
+ case "$gl_cv_func_pthread_rwlock_good_waitqueue" in
+ *yes) ;;
+ *no)
+ REPLACE_PTHREAD_RWLOCK_INIT=1
+ REPLACE_PTHREAD_RWLOCKATTR_INIT=1
+ AC_DEFINE([PTHREAD_RWLOCK_BAD_WAITQUEUE], [1],
+ [Define if the pthread_rwlock wait queue handling is not reasonable.])
+ ;;
+ esac
+ fi
+ fi
+ fi
+])
diff --git a/gnulib-m4/pthread-spin.m4 b/gnulib-m4/pthread-spin.m4
new file mode 100644
index 00000000..aae2fb3b
--- /dev/null
+++ b/gnulib-m4/pthread-spin.m4
@@ -0,0 +1,72 @@
+# pthread-spin.m4
+# serial 8
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
+
+AC_DEFUN_ONCE([gl_PTHREAD_SPIN],
+[
+ AC_REQUIRE([gl_PTHREAD_H_PART1])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ if { case "$host_os" in mingw* | windows*) true;; *) false;; esac; } \
+ && test $gl_threads_api = windows; then
+ dnl Choose function names that don't conflict with the mingw-w64 winpthreads
+ dnl library.
+ REPLACE_PTHREAD_SPIN_INIT=1
+ REPLACE_PTHREAD_SPIN_LOCK=1
+ REPLACE_PTHREAD_SPIN_TRYLOCK=1
+ REPLACE_PTHREAD_SPIN_UNLOCK=1
+ REPLACE_PTHREAD_SPIN_DESTROY=1
+ else
+ if test $HAVE_PTHREAD_H = 0 || test $HAVE_PTHREAD_SPINLOCK_T = 0; then
+ HAVE_PTHREAD_SPIN_INIT=0
+ HAVE_PTHREAD_SPIN_LOCK=0
+ HAVE_PTHREAD_SPIN_TRYLOCK=0
+ HAVE_PTHREAD_SPIN_UNLOCK=0
+ HAVE_PTHREAD_SPIN_DESTROY=0
+ else
+ dnl Test whether the gnulib module 'threadlib' is in use.
+ dnl Some packages like Emacs use --avoid=threadlib.
+ dnl Write the symbol in such a way that it does not cause 'aclocal' to pick
+ dnl the threadlib.m4 file that is installed in $PREFIX/share/aclocal/.
+ m4_ifdef([gl_][THREADLIB], [
+ AC_REQUIRE([gl_][THREADLIB])
+ dnl Test whether the functions actually exist.
+ dnl FreeBSD 5.2.1 declares them but does not define them.
+ AC_CACHE_CHECK([for pthread_spin_init],
+ [gl_cv_func_pthread_spin_init_in_LIBMULTITHREAD],
+ [gl_saved_LIBS="$LIBS"
+ LIBS="$LIBS $LIBMULTITHREAD"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ ]],
+ [[pthread_spinlock_t lock;
+ return pthread_spin_init (&lock, 0);
+ ]])
+ ],
+ [gl_cv_func_pthread_spin_init_in_LIBMULTITHREAD=yes],
+ [gl_cv_func_pthread_spin_init_in_LIBMULTITHREAD=no])
+ LIBS="$gl_saved_LIBS"
+ ])
+ if test $gl_cv_func_pthread_spin_init_in_LIBMULTITHREAD != yes; then
+ HAVE_PTHREAD_SPIN_INIT=0
+ REPLACE_PTHREAD_SPIN_INIT=1
+ HAVE_PTHREAD_SPIN_LOCK=0
+ REPLACE_PTHREAD_SPIN_LOCK=1
+ HAVE_PTHREAD_SPIN_TRYLOCK=0
+ REPLACE_PTHREAD_SPIN_TRYLOCK=1
+ HAVE_PTHREAD_SPIN_UNLOCK=0
+ REPLACE_PTHREAD_SPIN_UNLOCK=1
+ HAVE_PTHREAD_SPIN_DESTROY=0
+ REPLACE_PTHREAD_SPIN_DESTROY=1
+ fi
+ ], [
+ :
+ ])
+ fi
+ fi
+])
diff --git a/gnulib-m4/pthread-thread.m4 b/gnulib-m4/pthread-thread.m4
index 37855587..ba430e5f 100644
--- a/gnulib-m4/pthread-thread.m4
+++ b/gnulib-m4/pthread-thread.m4
@@ -1,8 +1,10 @@
-# pthread-thread.m4 serial 3
-dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# pthread-thread.m4
+# serial 3
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_PTHREAD_THREAD],
[
diff --git a/gnulib-m4/pthread_h.m4 b/gnulib-m4/pthread_h.m4
index c33afa0c..bb921386 100644
--- a/gnulib-m4/pthread_h.m4
+++ b/gnulib-m4/pthread_h.m4
@@ -1,10 +1,12 @@
-# pthread_h.m4 serial 9
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# pthread_h.m4
+# serial 11
+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,
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_PTHREAD_H],
+AC_DEFUN_ONCE([gl_PTHREAD_H_PART1],
[
dnl Ensure to expand the default settings once only, before all statements
dnl that occur in other macros.
@@ -41,6 +43,14 @@ AC_DEFUN_ONCE([gl_PTHREAD_H],
if test $ac_cv_type_pthread_spinlock_t != yes; then
HAVE_PTHREAD_SPINLOCK_T=0
fi
+])
+
+AC_DEFUN([gl_PTHREAD_H],
+[
+ AC_REQUIRE([gl_PTHREAD_H_PART1])
+
+ dnl Set HAVE_PTHREAD_SPIN_INIT, REPLACE_PTHREAD_SPIN_INIT.
+ gl_PTHREAD_SPIN
dnl Constants may be defined as C preprocessor macros or as enum items.
diff --git a/gnulib-m4/pthread_mutex_timedlock.m4 b/gnulib-m4/pthread_mutex_timedlock.m4
new file mode 100644
index 00000000..9cb25e87
--- /dev/null
+++ b/gnulib-m4/pthread_mutex_timedlock.m4
@@ -0,0 +1,49 @@
+# pthread_mutex_timedlock.m4
+# serial 6
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
+
+AC_DEFUN([gl_FUNC_PTHREAD_MUTEX_TIMEDLOCK],
+[
+ AC_REQUIRE([gl_PTHREAD_H_DEFAULTS])
+
+ AC_CHECK_DECL([pthread_mutex_timedlock],
+ [dnl Test whether the gnulib module 'threadlib' is in use.
+ dnl Some packages like Emacs use --avoid=threadlib.
+ dnl Write the symbol in such a way that it does not cause 'aclocal' to pick
+ dnl the threadlib.m4 file that is installed in $PREFIX/share/aclocal/.
+ m4_ifdef([gl_][THREADLIB], [
+ AC_REQUIRE([gl_][THREADLIB])
+ dnl Test whether the function actually exists.
+ dnl FreeBSD 5.2.1 declares it but does not define it.
+ AC_CACHE_CHECK([for pthread_mutex_timedlock],
+ [gl_cv_func_pthread_mutex_timedlock_in_LIBMULTITHREAD],
+ [gl_saved_LIBS="$LIBS"
+ LIBS="$LIBS $LIBMULTITHREAD"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ #include <time.h>
+ ]],
+ [[pthread_mutex_t lock;
+ struct timespec ts = { 0 };
+ return pthread_mutex_timedlock (&lock, &ts);
+ ]])
+ ],
+ [gl_cv_func_pthread_mutex_timedlock_in_LIBMULTITHREAD=yes],
+ [gl_cv_func_pthread_mutex_timedlock_in_LIBMULTITHREAD=no])
+ LIBS="$gl_saved_LIBS"
+ ])
+ if test $gl_cv_func_pthread_mutex_timedlock_in_LIBMULTITHREAD != yes; then
+ HAVE_PTHREAD_MUTEX_TIMEDLOCK=0
+ fi
+ ], [
+ :
+ ])
+ ],
+ [HAVE_PTHREAD_MUTEX_TIMEDLOCK=0],
+ [[#include <pthread.h>]])
+])
diff --git a/gnulib-m4/pthread_rwlock_rdlock.m4 b/gnulib-m4/pthread_rwlock_rdlock.m4
index ddb58318..260bc287 100644
--- a/gnulib-m4/pthread_rwlock_rdlock.m4
+++ b/gnulib-m4/pthread_rwlock_rdlock.m4
@@ -1,8 +1,10 @@
-# pthread_rwlock_rdlock.m4 serial 8
-dnl Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# pthread_rwlock_rdlock.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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
dnl Inspired by
@@ -30,7 +32,7 @@ dnl https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rd
dnl but this test verifies the guarantee regardless of TPS and regardless of
dnl scheduling policy.
dnl Glibc does not provide this guarantee (and never will on Linux), see
-dnl https://sourceware.org/bugzilla/show_bug.cgi?id=13701
+dnl https://sourceware.org/PR13701
dnl https://bugzilla.redhat.com/show_bug.cgi?id=1410052
AC_DEFUN([gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER],
[
diff --git a/gnulib-m4/pthread_sigmask.m4 b/gnulib-m4/pthread_sigmask.m4
index cb2ee900..77991d4f 100644
--- a/gnulib-m4/pthread_sigmask.m4
+++ b/gnulib-m4/pthread_sigmask.m4
@@ -1,8 +1,10 @@
-# pthread_sigmask.m4 serial 23
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# pthread_sigmask.m4
+# serial 24
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK],
[
@@ -95,7 +97,7 @@ AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK],
HAVE_PTHREAD_SIGMASK=0
dnl Define the symbol rpl_pthread_sigmask, not pthread_sigmask,
dnl so as to not accidentally override the system's pthread_sigmask
- dnl symbol from libpthread. This is necessary on IRIX 6.5.
+ dnl symbol from libpthread.
REPLACE_PTHREAD_SIGMASK=1
fi
])
@@ -197,76 +199,6 @@ int main ()
[Define to 1 if pthread_sigmask(), when it fails, returns -1 and sets errno.])
;;
esac
-
- dnl On IRIX 6.5, in a single-threaded program, pending signals are not
- dnl immediately delivered when they are unblocked through pthread_sigmask,
- dnl only a little while later.
- AC_CACHE_CHECK([whether pthread_sigmask unblocks signals correctly],
- [gl_cv_func_pthread_sigmask_unblock_works],
- [
- case "$host_os" in
- irix*)
- gl_cv_func_pthread_sigmask_unblock_works="guessing no";;
- *)
- gl_cv_func_pthread_sigmask_unblock_works="guessing yes";;
- esac
- m4_ifdef([gl_][THREADLIB],
- [dnl Link against $LIBMULTITHREAD, not only $PTHREAD_SIGMASK_LIB.
- dnl Otherwise we get a false positive on those platforms where
- dnl $gl_cv_func_pthread_sigmask_in_libc_works is "no".
- gl_saved_LIBS=$LIBS
- LIBS="$LIBS $LIBMULTITHREAD"])
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
-#include <limits.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-]GL_MDA_DEFINES[
-static volatile int sigint_occurred;
-static void
-sigint_handler (int sig)
-{
- sigint_occurred++;
-}
-int main ()
-{
- sigset_t set;
- pid_t pid = getpid ();
- char command[80];
- if (LONG_MAX < pid)
- return 6;
- signal (SIGINT, sigint_handler);
- sigemptyset (&set);
- sigaddset (&set, SIGINT);
- if (!(pthread_sigmask (SIG_BLOCK, &set, NULL) == 0))
- return 1;
- sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid);
- if (!(system (command) == 0))
- return 2;
- sleep (2);
- if (!(sigint_occurred == 0))
- return 3;
- if (!(pthread_sigmask (SIG_UNBLOCK, &set, NULL) == 0))
- return 4;
- if (!(sigint_occurred == 1)) /* This fails on IRIX. */
- return 5;
- return 0;
-}]])],
- [:],
- [gl_cv_func_pthread_sigmask_unblock_works=no],
- [:])
- m4_ifdef([gl_][THREADLIB], [LIBS=$gl_saved_LIBS])
- ])
- case "$gl_cv_func_pthread_sigmask_unblock_works" in
- *no)
- REPLACE_PTHREAD_SIGMASK=1
- AC_DEFINE([PTHREAD_SIGMASK_UNBLOCK_BUG], [1],
- [Define to 1 if pthread_sigmask() unblocks signals incorrectly.])
- ;;
- esac
fi
])
diff --git a/gnulib-m4/putenv.m4 b/gnulib-m4/putenv.m4
index da6abec2..26caf9fb 100644
--- a/gnulib-m4/putenv.m4
+++ b/gnulib-m4/putenv.m4
@@ -1,8 +1,10 @@
-# putenv.m4 serial 27
-dnl Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# putenv.m4
+# serial 28
+dnl Copyright (C) 2002-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 This file is offered as-is, without any warranty.
dnl From Jim Meyering.
dnl
@@ -60,5 +62,5 @@ AC_DEFUN([gl_FUNC_PUTENV],
# Prerequisites of lib/putenv.c.
AC_DEFUN([gl_PREREQ_PUTENV],
[
- AC_CHECK_DECLS([_putenv])
+ AC_CHECK_DECLS_ONCE([_putenv])
])
diff --git a/gnulib-m4/raise.m4 b/gnulib-m4/raise.m4
index 08b9545b..0add3f2e 100644
--- a/gnulib-m4/raise.m4
+++ b/gnulib-m4/raise.m4
@@ -1,8 +1,10 @@
-# raise.m4 serial 4
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# raise.m4
+# serial 4
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_RAISE],
[
diff --git a/gnulib-m4/random.m4 b/gnulib-m4/random.m4
index 911c5d0e..360e56b0 100644
--- a/gnulib-m4/random.m4
+++ b/gnulib-m4/random.m4
@@ -1,8 +1,10 @@
-# random.m4 serial 8
-dnl Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# random.m4
+# serial 8
+dnl Copyright (C) 2012-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_RANDOM],
[
diff --git a/gnulib-m4/random_r.m4 b/gnulib-m4/random_r.m4
index 6c5457e9..e4c36c4c 100644
--- a/gnulib-m4/random_r.m4
+++ b/gnulib-m4/random_r.m4
@@ -1,8 +1,10 @@
-# serial 5
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# random_r.m4
+# serial 6
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_RANDOM_R],
[
@@ -10,9 +12,6 @@ AC_DEFUN([gl_FUNC_RANDOM_R],
AC_REQUIRE([AC_CANONICAL_HOST])
AC_CHECK_HEADERS([random.h], [], [], [AC_INCLUDES_DEFAULT])
- if test $ac_cv_header_random_h = no; then
- HAVE_RANDOM_H=0
- fi
AC_CHECK_TYPES([struct random_data],
[], [HAVE_STRUCT_RANDOM_DATA=0],
@@ -22,10 +21,10 @@ AC_DEFUN([gl_FUNC_RANDOM_R],
#endif
]])
- dnl On AIX and OSF/1, these functions exist, but with different declarations.
+ dnl On AIX, these functions exist, but with different declarations.
dnl Override them all.
case "$host_os" in
- aix* | osf*)
+ aix*)
REPLACE_RANDOM_R=1
;;
*)
diff --git a/gnulib-m4/realloc.m4 b/gnulib-m4/realloc.m4
index a59af280..0242abdc 100644
--- a/gnulib-m4/realloc.m4
+++ b/gnulib-m4/realloc.m4
@@ -1,53 +1,22 @@
-# realloc.m4 serial 29
-dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
+# realloc.m4
+# serial 39
+dnl Copyright (C) 2007, 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.
+dnl This file is offered as-is, without any warranty.
-# This is adapted with modifications from upstream Autoconf here:
-# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n1455
-AC_DEFUN([_AC_FUNC_REALLOC_IF],
+# An an experimental option, the user can request a sanitized realloc()
+# implementation, i.e. one that aborts upon undefined behaviour,
+# by setting
+# gl_cv_func_realloc_sanitize=yes
+# at configure time.
+AC_DEFUN([gl_FUNC_REALLOC_SANITIZED],
[
- AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
- AC_CACHE_CHECK([whether realloc (0, 0) returns nonnull],
- [ac_cv_func_realloc_0_nonnull],
- [AC_RUN_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <stdlib.h>
- ]],
- [[void *p = realloc (0, 0);
- void * volatile vp = p;
- int result = !vp;
- free (p);
- return result;]])
- ],
- [ac_cv_func_realloc_0_nonnull=yes],
- [ac_cv_func_realloc_0_nonnull=no],
- [case "$host_os" in
- # Guess yes on platforms where we know the result.
- *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
- | gnu* | *-musl* | midipix* | midnightbsd* \
- | hpux* | solaris* | cygwin* | mingw* | windows* | msys* )
- ac_cv_func_realloc_0_nonnull="guessing yes" ;;
- # If we don't know, obey --enable-cross-guesses.
- *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;;
- esac
- ])
- ])
- AS_CASE([$ac_cv_func_realloc_0_nonnull], [*yes], [$1], [$2])
-])# AC_FUNC_REALLOC
-
-# gl_FUNC_REALLOC_GNU
-# -------------------
-# Replace realloc if it is not compatible with GNU libc.
-AC_DEFUN([gl_FUNC_REALLOC_GNU],
-[
- AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
- AC_REQUIRE([gl_FUNC_REALLOC_POSIX])
- if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then
- _AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC_FOR_REALLOC_GNU=1])
- fi
-])# gl_FUNC_REALLOC_GNU
+ AC_CACHE_CHECK([whether realloc should abort upon undefined behaviour],
+ [gl_cv_func_realloc_sanitize],
+ [test -n "$gl_cv_func_realloc_sanitize" || gl_cv_func_realloc_sanitize=no])
+])
# gl_FUNC_REALLOC_POSIX
# ---------------------
@@ -58,7 +27,59 @@ AC_DEFUN([gl_FUNC_REALLOC_POSIX],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
- if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then
+ AC_REQUIRE([gl_FUNC_REALLOC_SANITIZED])
+ if test "$gl_cv_func_realloc_sanitize" != no; then
REPLACE_REALLOC_FOR_REALLOC_POSIX=1
+ AC_DEFINE([NEED_SANITIZED_REALLOC], [1],
+ [Define to 1 if realloc should abort upon undefined behaviour.])
+ else
+ REPLACE_REALLOC_FOR_REALLOC_POSIX=$REPLACE_MALLOC_FOR_MALLOC_POSIX
fi
])
+
+# gl_FUNC_REALLOC_0_NONNULL
+# -------------------------
+# Replace realloc if realloc (..., 0) returns null.
+# Modules that use this macro directly or indirectly should depend
+# on extensions-aix, so that _LINUX_SOURCE_COMPAT gets defined
+# before this macro gets invoked. This helps if !(__VEC__ || __AIXVEC),
+# and doesn't hurt otherwise.
+AC_DEFUN([gl_FUNC_REALLOC_0_NONNULL],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
+ AC_REQUIRE([gl_FUNC_REALLOC_POSIX])
+ AC_CACHE_CHECK([whether realloc (..., 0) returns nonnull],
+ [gl_cv_func_realloc_0_nonnull],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdlib.h>
+ /* Use prealloc to test; "volatile" prevents the compiler
+ from optimizing the realloc call away. */
+ void *(*volatile prealloc) (void *, size_t) = realloc;]],
+ [[void *p = prealloc (0, 0);
+ int result = !p;
+ p = prealloc (p, 0);
+ result |= !p;
+ free (p);
+ return result;]])],
+ [gl_cv_func_realloc_0_nonnull=yes],
+ [gl_cv_func_realloc_0_nonnull=no],
+ [AS_CASE([$host_os],
+ [# Guess yes on platforms where we know the result.
+ freebsd* | netbsd* | openbsd* | darwin* | bitrig* \
+ | *-musl* | midipix* | midnightbsd* \
+ | hpux* | solaris* | cygwin*],
+ [gl_cv_func_realloc_0_nonnull="guessing yes"],
+ [# Guess as follows if we don't know.
+ gl_cv_func_realloc_0_nonnull=$gl_cross_guess_normal])])])
+ AS_CASE([$gl_cv_func_realloc_0_nonnull],
+ [*yes],
+ [AC_DEFINE([HAVE_REALLOC_0_NONNULL], [1],
+ [Define to 1 if realloc (..., 0) returns nonnull.])],
+ [AS_CASE([$gl_cv_func_realloc_sanitize,$gl_cv_malloc_ptrdiff,$gl_cv_func_malloc_posix,$host],
+ [yes,*,*,* | *,no,*,* | *,*,*no,* | *,*,*,aarch64c-*-freebsd*],
+ [REPLACE_REALLOC_FOR_REALLOC_POSIX=1],
+ [# Optimize for common case of glibc 2.1.1+ and compatibles.
+ REPLACE_REALLOC_FOR_REALLOC_POSIX=2])])
+])
diff --git a/gnulib-m4/reallocarray.m4 b/gnulib-m4/reallocarray.m4
index 20c4601e..3970d9e1 100644
--- a/gnulib-m4/reallocarray.m4
+++ b/gnulib-m4/reallocarray.m4
@@ -1,8 +1,10 @@
-# reallocarray.m4 serial 5
-dnl Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# reallocarray.m4
+# serial 7
+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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_REALLOCARRAY],
[
@@ -11,14 +13,21 @@ AC_DEFUN([gl_FUNC_REALLOCARRAY],
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF])
+ AC_REQUIRE([gl_FUNC_REALLOC_0_NONNULL])
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
+ else
+ if test "$gl_cv_malloc_ptrdiff" = no; then
+ REPLACE_REALLOCARRAY=1
+ fi
+ case "$gl_cv_func_realloc_0_nonnull" in
+ *yes) ;;
+ *) REPLACE_REALLOCARRAY=1 ;;
+ esac
fi
])
diff --git a/gnulib-m4/relocatable-lib.m4 b/gnulib-m4/relocatable-lib.m4
index d903069d..5efed521 100644
--- a/gnulib-m4/relocatable-lib.m4
+++ b/gnulib-m4/relocatable-lib.m4
@@ -1,8 +1,10 @@
-# relocatable-lib.m4 serial 7
-dnl Copyright (C) 2003, 2005-2007, 2009-2024 Free Software Foundation, Inc.
+# relocatable-lib.m4
+# serial 8
+dnl Copyright (C) 2003, 2005-2007, 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.
+dnl This file is offered as-is, without any warranty.
dnl From Bruno Haible.
@@ -20,7 +22,9 @@ AC_DEFUN([gl_RELOCATABLE_LIBRARY_BODY],
else
reloc_final_prefix="$prefix"
fi
- AC_DEFINE_UNQUOTED([INSTALLPREFIX], ["${reloc_final_prefix}"],
+ dnl Define reloc_final_prefix_c and reloc_final_prefix_c_make.
+ gl_BUILD_TO_HOST([reloc_final_prefix])
+ AC_DEFINE_UNQUOTED([INSTALLPREFIX], [${reloc_final_prefix_c}],
[Define to the value of ${prefix}, as a string.])
if test $RELOCATABLE = yes; then
AC_DEFINE([ENABLE_RELOCATABLE], [1],
diff --git a/gnulib-m4/sched_h.m4 b/gnulib-m4/sched_h.m4
index 2ff821e4..1ffd465f 100644
--- a/gnulib-m4/sched_h.m4
+++ b/gnulib-m4/sched_h.m4
@@ -1,8 +1,10 @@
-# sched_h.m4 serial 15
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# sched_h.m4
+# serial 16
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
dnl Written by Bruno Haible.
@@ -14,7 +16,8 @@ AC_DEFUN_ONCE([gl_SCHED_H],
AC_REQUIRE([AC_CANONICAL_HOST])
- AC_CHECK_HEADERS_ONCE([sys/cdefs.h])
+ AC_REQUIRE([gl_CHECK_HEADER_SYS_CDEFS_H])
+
AC_CHECK_HEADERS([sched.h], [], [],
[[#if HAVE_SYS_CDEFS_H
#include <sys/cdefs.h>
@@ -56,13 +59,6 @@ AC_DEFUN_ONCE([gl_SCHED_H],
fi
AC_SUBST([HAVE_STRUCT_SCHED_PARAM])
- if test "$ac_cv_header_sys_cdefs_h" = yes; then
- HAVE_SYS_CDEFS_H=1
- else
- HAVE_SYS_CDEFS_H=0
- fi
- AC_SUBST([HAVE_SYS_CDEFS_H])
-
dnl Ensure the type pid_t gets defined.
AC_REQUIRE([AC_TYPE_PID_T])
diff --git a/gnulib-m4/sched_yield.m4 b/gnulib-m4/sched_yield.m4
index c717c06f..2aaaf1cc 100644
--- a/gnulib-m4/sched_yield.m4
+++ b/gnulib-m4/sched_yield.m4
@@ -1,8 +1,10 @@
-# sched_yield.m4 serial 3
-dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# sched_yield.m4
+# serial 3
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_SCHED_YIELD],
[
diff --git a/gnulib-m4/select.m4 b/gnulib-m4/select.m4
index f3f9dcc0..88909788 100644
--- a/gnulib-m4/select.m4
+++ b/gnulib-m4/select.m4
@@ -1,8 +1,10 @@
-# select.m4 serial 16
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# select.m4
+# serial 16
+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,
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_SELECT],
[
diff --git a/gnulib-m4/semaphore.m4 b/gnulib-m4/semaphore.m4
index 9d434320..a5d278f6 100644
--- a/gnulib-m4/semaphore.m4
+++ b/gnulib-m4/semaphore.m4
@@ -1,8 +1,10 @@
-# semaphore.m4 serial 2
-dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# semaphore.m4
+# serial 4
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
# Sets LIB_SEMAPHORE to the library needed, in addition to $(LIBMULTITHREAD),
# for getting the <semaphore.h> functions.
@@ -11,10 +13,10 @@ AC_DEFUN([gl_SEMAPHORE],
[
AC_REQUIRE([gl_THREADLIB])
dnl sem_post is
- dnl - in libc on macOS, FreeBSD, AIX, IRIX, Solaris 11, Haiku, Cygwin,
+ dnl - in libc on macOS, FreeBSD, AIX, Solaris 11, Haiku, Cygwin,
dnl - in libpthread on glibc systems, OpenBSD,
dnl - in libpthread or librt on NetBSD,
- dnl - in librt on HP-UX 11, OSF/1, Solaris 10.
+ dnl - in librt on HP-UX 11, Solaris 10.
dnl On the platforms where -lpthread is needed, it is contained in
dnl $LIBMULTITHREAD. Therefore, the only library we need to test for is -lrt.
AC_CACHE_CHECK([for library needed for semaphore functions],
diff --git a/gnulib-m4/setenv.m4 b/gnulib-m4/setenv.m4
index 21253e65..39612750 100644
--- a/gnulib-m4/setenv.m4
+++ b/gnulib-m4/setenv.m4
@@ -1,8 +1,10 @@
-# setenv.m4 serial 33
-dnl Copyright (C) 2001-2004, 2006-2024 Free Software Foundation, Inc.
+# setenv.m4
+# serial 36
+dnl Copyright (C) 2001-2004, 2006-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_SETENV],
[
@@ -83,8 +85,6 @@ AC_DEFUN([gl_FUNC_UNSETENV],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[
-#undef _BSD
-#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
#include <stdlib.h>
extern
#ifdef __cplusplus
@@ -154,6 +154,7 @@ AC_DEFUN([gl_PREREQ_SETENV],
AC_REQUIRE([gl_ENVIRON])
AC_CHECK_HEADERS_ONCE([unistd.h])
AC_CHECK_HEADERS([search.h])
+ AC_CHECK_DECLS_ONCE([_putenv])
gl_CHECK_FUNCS_ANDROID([tsearch], [[#include <search.h>]])
])
@@ -162,4 +163,5 @@ AC_DEFUN([gl_PREREQ_UNSETENV],
[
AC_REQUIRE([gl_ENVIRON])
AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CHECK_DECLS_ONCE([_putenv])
])
diff --git a/gnulib-m4/setlocale.m4 b/gnulib-m4/setlocale.m4
index ef26def4..16413cec 100644
--- a/gnulib-m4/setlocale.m4
+++ b/gnulib-m4/setlocale.m4
@@ -1,8 +1,10 @@
-# setlocale.m4 serial 10
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# setlocale.m4
+# serial 11
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_SETLOCALE],
[
@@ -16,6 +18,9 @@ AC_DEFUN([gl_FUNC_SETLOCALE],
dnl On native Windows systems, setlocale(category,NULL) does not look at
dnl the environment variables LC_ALL, category, and LANG.
mingw* | windows*) NEED_SETLOCALE_IMPROVED=1 ;;
+ dnl On Android, setlocale(category,name) treats all categories as equivalent
+ dnl to LC_CTYPE. And on Android 4.3, setlocale(category,"C") always fails.
+ *-android*) NEED_SETLOCALE_IMPROVED=1 ;;
dnl On Cygwin 1.5.x, setlocale always succeeds but setlocale(LC_CTYPE,NULL)
dnl is then still "C".
cygwin*)
@@ -23,32 +28,6 @@ AC_DEFUN([gl_FUNC_SETLOCALE],
1.5.*) NEED_SETLOCALE_IMPROVED=1 ;;
esac
;;
- dnl On Android 4.3, setlocale(category,"C") always fails.
- *)
- AC_CACHE_CHECK([whether setlocale supports the C locale],
- [gl_cv_func_setlocale_works],
- [AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
-#include <locale.h>
-int main ()
-{
- return setlocale (LC_ALL, "C") == NULL;
-}]])],
- [gl_cv_func_setlocale_works=yes],
- [gl_cv_func_setlocale_works=no],
- [case "$host_os" in
- # Guess no on Android.
- linux*-android*) gl_cv_func_setlocale_works="guessing no";;
- # Guess yes otherwise.
- *) gl_cv_func_setlocale_works="guessing yes";;
- esac
- ])
- ])
- case "$gl_cv_func_setlocale_works" in
- *yes) ;;
- *) NEED_SETLOCALE_IMPROVED=1 ;;
- esac
- ;;
esac
AC_DEFINE_UNQUOTED([NEED_SETLOCALE_IMPROVED], [$NEED_SETLOCALE_IMPROVED],
[Define to 1 to enable general improvements of setlocale.])
diff --git a/gnulib-m4/setlocale_null.m4 b/gnulib-m4/setlocale_null.m4
index 54d3d46d..bf2cf589 100644
--- a/gnulib-m4/setlocale_null.m4
+++ b/gnulib-m4/setlocale_null.m4
@@ -1,10 +1,12 @@
-# setlocale_null.m4 serial 9
-dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# setlocale_null.m4
+# serial 11
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
-AC_DEFUN([gl_FUNC_SETLOCALE_NULL],
+AC_DEFUN_ONCE([gl_FUNC_SETLOCALE_NULL],
[
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([gl_PTHREADLIB])
@@ -30,8 +32,8 @@ AC_DEFUN([gl_FUNC_SETLOCALE_NULL],
[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*)
+ # Guess yes on glibc, HP-UX, Solaris, native Windows.
+ *-gnu* | gnu* | hpux* | solaris* | mingw* | windows*)
gl_cv_func_setlocale_null_all_mtsafe=yes ;;
# If we don't know, obey --enable-cross-guesses.
*)
@@ -61,8 +63,8 @@ AC_DEFUN([gl_FUNC_SETLOCALE_NULL],
# 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*)
+ # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, Solaris, Haiku, Cygwin, native Windows.
+ *-gnu* | gnu* | *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | solaris* | haiku* | cygwin* | mingw* | windows*)
gl_cv_func_setlocale_null_one_mtsafe=yes ;;
# If we don't know, obey --enable-cross-guesses.
*)
diff --git a/gnulib-m4/signal_h.m4 b/gnulib-m4/signal_h.m4
index 6f7dcc73..10343bbf 100644
--- a/gnulib-m4/signal_h.m4
+++ b/gnulib-m4/signal_h.m4
@@ -1,8 +1,10 @@
-# signal_h.m4 serial 22
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# signal_h.m4
+# serial 23
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_SIGNAL_H],
[
@@ -31,7 +33,8 @@ AC_DEFUN_ONCE([gl_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>
- ]], [pthread_sigmask sigaction
+ ]], [sig2str str2sig
+ pthread_sigmask sigaction
sigaddset sigdelset sigemptyset sigfillset sigismember
sigpending sigprocmask])
@@ -73,6 +76,7 @@ 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])
@@ -87,9 +91,11 @@ AC_DEFUN([gl_SIGNAL_H_DEFAULTS],
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;
diff --git a/gnulib-m4/signalblocking.m4 b/gnulib-m4/signalblocking.m4
index f818d5da..23dad848 100644
--- a/gnulib-m4/signalblocking.m4
+++ b/gnulib-m4/signalblocking.m4
@@ -1,8 +1,10 @@
-# signalblocking.m4 serial 17
-dnl Copyright (C) 2001-2002, 2006-2024 Free Software Foundation, Inc.
+# signalblocking.m4
+# serial 17
+dnl Copyright (C) 2001-2002, 2006-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 This file is offered as-is, without any warranty.
# Determine available signal blocking primitives. Three different APIs exist:
# 1) POSIX: sigemptyset, sigaddset, sigprocmask
diff --git a/gnulib-m4/signbit.m4 b/gnulib-m4/signbit.m4
index 4acb0e98..4cb1ac4b 100644
--- a/gnulib-m4/signbit.m4
+++ b/gnulib-m4/signbit.m4
@@ -1,8 +1,10 @@
-# signbit.m4 serial 22
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# signbit.m4
+# serial 23
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_SIGNBIT],
[
@@ -197,7 +199,7 @@ double m0d = -p0d;
But that expression does not work on other platforms, such as when
cross-compiling to PowerPC on Mac OS X 10.5. */
long double p0l = 0.0L;
-#if defined __hpux || defined __sgi
+#if defined __hpux
long double m0l = -LDBL_MIN * LDBL_MIN;
#else
long double m0l = -p0l;
diff --git a/gnulib-m4/size_max.m4 b/gnulib-m4/size_max.m4
index b3f7624f..b0460d45 100644
--- a/gnulib-m4/size_max.m4
+++ b/gnulib-m4/size_max.m4
@@ -1,8 +1,10 @@
-# size_max.m4 serial 12
-dnl Copyright (C) 2003, 2005-2006, 2008-2024 Free Software Foundation, Inc.
+# size_max.m4
+# serial 12
+dnl Copyright (C) 2003, 2005-2006, 2008-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
diff --git a/gnulib-m4/sleep.m4 b/gnulib-m4/sleep.m4
index 2003698c..c5da022d 100644
--- a/gnulib-m4/sleep.m4
+++ b/gnulib-m4/sleep.m4
@@ -1,8 +1,10 @@
-# sleep.m4 serial 13
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# sleep.m4
+# serial 14
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_SLEEP],
[
@@ -32,7 +34,7 @@ handle_alarm (int sig)
}
]], [[
/* Failure to compile this test due to missing alarm is okay,
- since all such platforms (mingw) also lack sleep. */
+ since all such platforms (mingw, MSVC) also lack sleep. */
unsigned int pentecost = 50 * 24 * 60 * 60; /* 50 days. */
unsigned int remaining;
signal (SIGALRM, handle_alarm);
diff --git a/gnulib-m4/snan.m4 b/gnulib-m4/snan.m4
index 6a0a7453..7fa869c9 100644
--- a/gnulib-m4/snan.m4
+++ b/gnulib-m4/snan.m4
@@ -1,8 +1,10 @@
-# snan.m4 serial 3
-dnl Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# snan.m4
+# serial 3
+dnl Copyright (C) 2023-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 This file is offered as-is, without any warranty.
# Prerequisites for lib/snan.h.
AC_DEFUN_ONCE([gl_SNAN],
diff --git a/gnulib-m4/socketlib.m4 b/gnulib-m4/socketlib.m4
index 06339696..e3509f81 100644
--- a/gnulib-m4/socketlib.m4
+++ b/gnulib-m4/socketlib.m4
@@ -1,8 +1,10 @@
-# socketlib.m4 serial 4
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# socketlib.m4
+# serial 4
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
dnl gl_SOCKETLIB
dnl Determines the library to use for socket functions.
diff --git a/gnulib-m4/sockets.m4 b/gnulib-m4/sockets.m4
index 7be4dc96..54f4dc79 100644
--- a/gnulib-m4/sockets.m4
+++ b/gnulib-m4/sockets.m4
@@ -1,8 +1,10 @@
-# sockets.m4 serial 7
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# sockets.m4
+# serial 7
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_SOCKETS],
[
diff --git a/gnulib-m4/socklen.m4 b/gnulib-m4/socklen.m4
index 9c46db18..a4d49bfd 100644
--- a/gnulib-m4/socklen.m4
+++ b/gnulib-m4/socklen.m4
@@ -1,15 +1,17 @@
-# socklen.m4 serial 11
-dnl Copyright (C) 2005-2007, 2009-2024 Free Software Foundation, Inc.
+# socklen.m4
+# serial 13
+dnl Copyright (C) 2005-2007, 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.
+dnl This file is offered as-is, without any warranty.
dnl From Albert Chin, Windows fixes from Simon Josefsson.
dnl Check for socklen_t: historically on BSD it is an int, and in
dnl POSIX 1g it is a type of its own, but some platforms use different
dnl types for the argument to getsockopt, getpeername, etc.:
-dnl HP-UX 10.20, IRIX 6.5, OSF/1 4.0, Interix 3.5, BeOS.
+dnl HP-UX 10.20, Interix 3.5, BeOS.
dnl So we have to test to find something that will work.
AC_DEFUN([gl_TYPE_SOCKLEN_T],
diff --git a/gnulib-m4/sockpfaf.m4 b/gnulib-m4/sockpfaf.m4
index 390abfe2..08ce843d 100644
--- a/gnulib-m4/sockpfaf.m4
+++ b/gnulib-m4/sockpfaf.m4
@@ -1,8 +1,10 @@
-# sockpfaf.m4 serial 10
-dnl Copyright (C) 2004, 2006, 2009-2024 Free Software Foundation, Inc.
+# sockpfaf.m4
+# serial 11
+dnl Copyright (C) 2004, 2006, 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.
+dnl This file is offered as-is, without any warranty.
dnl Test for some common socket protocol families (PF_INET, PF_INET6, ...)
dnl and some common address families (AF_INET, AF_INET6, ...).
@@ -63,6 +65,13 @@ AC_DEFUN([gl_SOCKET_FAMILY_UNIX],
AC_REQUIRE([gl_SYS_SOCKET_H])
AC_CHECK_HEADERS_ONCE([sys/un.h])
+ dnl Windows versions released after 2017 may have support for AF_UNIX.
+ dnl Including it requires types from <winsock2.h> to be defined.
+ dnl <https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/>.
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ AC_CHECK_HEADERS([afunix.h], [], [], [#include <winsock2.h>])
+ fi
+
AC_CACHE_CHECK([for UNIX domain sockets],
[gl_cv_socket_unix],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
@@ -74,6 +83,9 @@ AC_DEFUN([gl_SOCKET_FAMILY_UNIX],
#endif
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
+#endif
+#ifdef HAVE_AFUNIX_H
+#include <afunix.h>
#endif]],
[[int x = AF_UNIX; struct sockaddr_un y;
if (&x && &y) return 0;]])],
diff --git a/gnulib-m4/ssize_t.m4 b/gnulib-m4/ssize_t.m4
index 25b28d77..a2ffd6fc 100644
--- a/gnulib-m4/ssize_t.m4
+++ b/gnulib-m4/ssize_t.m4
@@ -1,8 +1,10 @@
-# ssize_t.m4 serial 6
-dnl Copyright (C) 2001-2003, 2006, 2010-2024 Free Software Foundation, Inc.
+# ssize_t.m4
+# serial 6
+dnl Copyright (C) 2001-2003, 2006, 2010-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
dnl Define ssize_t if it does not already exist.
diff --git a/gnulib-m4/stat-time.m4 b/gnulib-m4/stat-time.m4
index 8bec2f5f..4aa24e7f 100644
--- a/gnulib-m4/stat-time.m4
+++ b/gnulib-m4/stat-time.m4
@@ -1,11 +1,13 @@
-# Checks for stat-related time functions.
-
-# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2024 Free Software
-# Foundation, Inc.
+# stat-time.m4
+# serial 1
+dnl Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2025 Free Software
+dnl 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.
-# 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.
+# Checks for stat-related time functions.
dnl From Paul Eggert.
diff --git a/gnulib-m4/stat.m4 b/gnulib-m4/stat.m4
index 1d2a9e2c..66876305 100644
--- a/gnulib-m4/stat.m4
+++ b/gnulib-m4/stat.m4
@@ -1,10 +1,10 @@
+# stat.m4
# serial 21
-
-# Copyright (C) 2009-2024 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.
+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,
+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_STAT],
[
diff --git a/gnulib-m4/stdalign.m4 b/gnulib-m4/stdalign.m4
index e3c1e609..d22360e1 100644
--- a/gnulib-m4/stdalign.m4
+++ b/gnulib-m4/stdalign.m4
@@ -1,9 +1,12 @@
-# Check for alignas and alignof that conform to C23.
-
-dnl Copyright 2011-2024 Free Software Foundation, Inc.
+# stdalign.m4
+# serial 3
+dnl Copyright 2011-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 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.
@@ -27,7 +30,7 @@ AC_DEFUN([gl_ALIGNASOF],
/* Test that alignof yields a result consistent with offsetof.
This catches GCC bug 52023
- <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */
+ <https://gcc.gnu.org/PR52023>. */
#ifdef __cplusplus
template <class t> struct alignof_helper { char a; t b; };
# define ao(type) offsetof (alignof_helper<type>, b)
@@ -79,10 +82,10 @@ AC_DEFUN([gl_ALIGNASOF],
References:
ISO C23 (latest free draft
- <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf>)
+ <https://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>)
+ <https://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
@@ -100,12 +103,14 @@ AC_DEFUN([gl_ALIGNASOF],
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. */
+ <https://gcc.gnu.org/PR52023>.
+ clang versions < 8.0.0 have the same bug.
+ IBM XL C V16.1.0 cc (non-clang) has the same bug. */
# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
|| (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
&& !defined __clang__) \
- || (defined __clang__ && __clang_major__ < 8))
+ || (defined __clang__ && __clang_major__ < 8) \
+ || defined __xlC__)
# undef/**/_Alignof
# ifdef __cplusplus
# if (201103 <= __cplusplus || defined _MSC_VER)
@@ -176,7 +181,8 @@ AC_DEFUN([gl_ALIGNASOF],
# if ((defined _Alignas \
&& !(defined __cplusplus \
&& (201103 <= __cplusplus || defined _MSC_VER))) \
- || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
+ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__ \
+ && !defined __xlC__))
# define alignas _Alignas
# endif
# endif
diff --git a/gnulib-m4/stdckdint_h.m4 b/gnulib-m4/stdckdint_h.m4
new file mode 100644
index 00000000..d269faa5
--- /dev/null
+++ b/gnulib-m4/stdckdint_h.m4
@@ -0,0 +1,136 @@
+# stdckdint_h.m4
+# serial 1
+dnl Copyright 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 This file is offered as-is, without any warranty.
+
+dnl Written by Collin Funk.
+
+AC_DEFUN_ONCE([gl_STDCKDINT_H],
+[
+ gl_CHECK_NEXT_HEADERS([stdckdint.h])
+ if test $ac_cv_header_stdckdint_h = yes; then
+ HAVE_STDCKDINT_H=1
+ else
+ HAVE_STDCKDINT_H=0
+ fi
+ AC_SUBST([HAVE_STDCKDINT_H])
+
+ if test $HAVE_STDCKDINT_H = 1; then
+ AC_CACHE_CHECK([whether stdckdint.h can be included in C],
+ [gl_cv_header_c_stdckdint_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdckdint.h>
+ ]])],
+ [gl_cv_header_c_stdckdint_h=yes],
+ [gl_cv_header_c_stdckdint_h=no])])
+ if test $gl_cv_header_c_stdckdint_h = yes; then
+ HAVE_C_STDCKDINT_H=1
+ AC_CACHE_CHECK([checking for an ISO C23 compliant stdckdint.h in C],
+ [gl_cv_header_c_stdckdint_h_works],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdckdint.h>
+ ]],
+ [[int r;
+ int a = 1;
+ int b = 1;
+ return !!(ckd_add (&r, a, b) || ckd_sub (&r, a, b)
+ || ckd_mul (&r, a, b));
+ ]])],
+ [gl_cv_header_c_stdckdint_h_works=yes],
+ [gl_cv_header_c_stdckdint_h_works=no])])
+ if test $gl_cv_header_c_stdckdint_h_works = yes; then
+ HAVE_WORKING_C_STDCKDINT_H=1
+ else
+ HAVE_WORKING_C_STDCKDINT_H=0
+ fi
+ else
+ HAVE_C_STDCKDINT_H=0
+ HAVE_WORKING_C_STDCKDINT_H=0
+ fi
+ if test "$CXX" != no; then
+ AC_CACHE_CHECK([whether stdckdint.h can be included in C++],
+ [gl_cv_header_cxx_stdckdint_h],
+ [dnl We can't use AC_LANG_PUSH([C++]) and AC_LANG_POP([C++]) here, due to
+ dnl an autoconf bug <https://savannah.gnu.org/support/?110294>.
+ cat > conftest.cpp <<\EOF
+#include <stdckdint.h>
+EOF
+ gl_command="$CXX $CXXFLAGS $CPPFLAGS -c conftest.cpp"
+ if AC_TRY_EVAL([gl_command]); then
+ gl_cv_header_cxx_stdckdint_h=yes
+ else
+ gl_cv_header_cxx_stdckdint_h=no
+ fi
+ rm -fr conftest*
+ ])
+ if test $gl_cv_header_cxx_stdckdint_h = yes; then
+ HAVE_CXX_STDCKDINT_H=1
+ AC_CACHE_CHECK([checking for an ISO C++26 compliant stdckdint.h in C++],
+ [gl_cv_header_cxx_stdckdint_h_works],
+ [dnl We can't use AC_LANG_PUSH([C++]) and AC_LANG_POP([C++]) here, due to
+ dnl an autoconf bug <https://savannah.gnu.org/support/?110294>.
+ cat > conftest.cpp <<\EOF
+#include <stdckdint.h>
+int
+main (void)
+{
+ int r;
+ int a = 1;
+ int b = 1;
+ return !!(ckd_add (&r, a, b) || ckd_sub (&r, a, b) || ckd_mul (&r, a, b));
+}
+EOF
+ gl_command="$CXX $CXXFLAGS $CPPFLAGS -c conftest.cpp"
+ if AC_TRY_EVAL([gl_command]); then
+ gl_cv_header_cxx_stdckdint_h_works=yes
+ else
+ gl_cv_header_cxx_stdckdint_h_works=no
+ fi
+ rm -fr conftest*
+ ])
+ if test $gl_cv_header_cxx_stdckdint_h_works = yes; then
+ HAVE_WORKING_CXX_STDCKDINT_H=1
+ else
+ HAVE_WORKING_CXX_STDCKDINT_H=0
+ fi
+ else
+ HAVE_CXX_STDCKDINT_H=0
+ HAVE_WORKING_CXX_STDCKDINT_H=0
+ fi
+ fi
+ else
+ HAVE_C_STDCKDINT_H=0
+ HAVE_WORKING_C_STDCKDINT_H=0
+ HAVE_CXX_STDCKDINT_H=0
+ HAVE_WORKING_CXX_STDCKDINT_H=0
+ fi
+ AC_SUBST([HAVE_C_STDCKDINT_H])
+ AC_SUBST([HAVE_WORKING_C_STDCKDINT_H])
+ AC_SUBST([HAVE_CXX_STDCKDINT_H])
+ AC_SUBST([HAVE_WORKING_CXX_STDCKDINT_H])
+
+ if test "$CXX" != no; then
+ dnl We might need the header for C or C++.
+ if test $HAVE_C_STDCKDINT_H = 1 \
+ && test $HAVE_WORKING_C_STDCKDINT_H = 1 \
+ && test $HAVE_CXX_STDCKDINT_H = 1 \
+ && test $HAVE_WORKING_CXX_STDCKDINT_H = 1; then
+ GL_GENERATE_STDCKDINT_H=false
+ else
+ GL_GENERATE_STDCKDINT_H=true
+ fi
+ else
+ dnl We don't care about C++ here.
+ if test $HAVE_C_STDCKDINT_H = 1 \
+ && test $HAVE_WORKING_C_STDCKDINT_H = 1; then
+ GL_GENERATE_STDCKDINT_H=false
+ else
+ GL_GENERATE_STDCKDINT_H=true
+ fi
+ fi
+])
diff --git a/gnulib-m4/stddef_h.m4 b/gnulib-m4/stddef_h.m4
index 1bf9eb39..d52d5494 100644
--- a/gnulib-m4/stddef_h.m4
+++ b/gnulib-m4/stddef_h.m4
@@ -1,15 +1,16 @@
-# stddef_h.m4 serial 14
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# stddef_h.m4
+# serial 23
+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,
dnl with or without modifications, as long as this notice is preserved.
+dnl This file is offered as-is, without any warranty.
dnl A placeholder for <stddef.h>, for platforms that have issues.
AC_DEFUN_ONCE([gl_STDDEF_H],
[
AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
dnl Persuade OpenBSD <stddef.h> to declare max_align_t.
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
@@ -51,11 +52,6 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
GL_GENERATE_STDDEF_H=true
fi
- if test $gt_cv_c_wchar_t = no; then
- HAVE_WCHAR_T=0
- GL_GENERATE_STDDEF_H=true
- fi
-
AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions],
[gl_cv_decl_null_works],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stddef.h>
@@ -68,21 +64,60 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
GL_GENERATE_STDDEF_H=true
fi
- AC_CACHE_CHECK([for unreachable],
- [gl_cv_func_unreachable],
+ AC_CACHE_CHECK([for unreachable in C],
+ [gl_cv_c_func_unreachable],
[AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <stddef.h>
]],
[[unreachable ();
]])],
- [gl_cv_func_unreachable=yes],
- [gl_cv_func_unreachable=no])
+ [gl_cv_c_func_unreachable=yes],
+ [gl_cv_c_func_unreachable=no])
])
- if test $gl_cv_func_unreachable = no; then
+ if test $gl_cv_c_func_unreachable = no; then
+ GL_GENERATE_STDDEF_H=true
+ HAVE_C_UNREACHABLE=0
+ else
+ HAVE_C_UNREACHABLE=1
+ fi
+ AC_SUBST([HAVE_C_UNREACHABLE])
+ dnl Provide gl_unreachable() unconditionally.
+ GL_GENERATE_STDDEF_H=true
+
+ dnl https://gcc.gnu.org/PR114869
+ AC_CACHE_CHECK([whether nullptr_t needs <stddef.h>],
+ [gl_cv_nullptr_t_needs_stddef],
+ [AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[nullptr_t x;]],
+ [gl_cv_nullptr_t_needs_stddef=no],
+ [gl_cv_nullptr_t_needs_stddef=yes])])
+ if test "$gl_cv_nullptr_t_needs_stddef" = no; then
+ NULLPTR_T_NEEDS_STDDEF=0
GL_GENERATE_STDDEF_H=true
fi
+ dnl https://gcc.gnu.org/PR114870
+ dnl affects GCC 13.3 and 14.2.
+ AC_CACHE_CHECK([whether <stddef.h> is idempotent],
+ [gl_cv_stddef_idempotent],
+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+ [[
+ #if \
+ ((__GNUC__ == 13 && __GNUC_MINOR__ <= 3) \
+ || (__GNUC__ == 14 && __GNUC_MINOR__ <= 2))
+ #error "bug 114870 is present"
+ #endif
+ ]])],
+ [gl_cv_stddef_idempotent="guessing yes"],
+ [gl_cv_stddef_idempotent="guessing no"])
+ ])
+ case "$gl_cv_stddef_idempotent" in
+ *yes) ;;
+ *) STDDEF_NOT_IDEMPOTENT=1
+ GL_GENERATE_STDDEF_H=true
+ ;;
+ esac
+
if $GL_GENERATE_STDDEF_H; then
gl_NEXT_HEADERS([stddef.h])
fi
@@ -113,7 +148,8 @@ AC_DEFUN([gl_STDDEF_H_REQUIRE_DEFAULTS],
AC_DEFUN([gl_STDDEF_H_DEFAULTS],
[
dnl Assume proper GNU behavior unless another module says otherwise.
+ NULLPTR_T_NEEDS_STDDEF=1; AC_SUBST([NULLPTR_T_NEEDS_STDDEF])
+ STDDEF_NOT_IDEMPOTENT=0; AC_SUBST([STDDEF_NOT_IDEMPOTENT])
REPLACE_NULL=0; AC_SUBST([REPLACE_NULL])
HAVE_MAX_ALIGN_T=1; AC_SUBST([HAVE_MAX_ALIGN_T])
- HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T])
])
diff --git a/gnulib-m4/stdint.m4 b/gnulib-m4/stdint.m4
index 4aa25082..5a289e6d 100644
--- a/gnulib-m4/stdint.m4
+++ b/gnulib-m4/stdint.m4
@@ -1,8 +1,10 @@
-# stdint.m4 serial 63
-dnl Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# stdint.m4
+# serial 65
+dnl Copyright (C) 2001-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 This file is offered as-is, without any warranty.
dnl From Paul Eggert and Bruno Haible.
dnl Test whether <stdint.h> is supported or must be substituted.
@@ -156,7 +158,7 @@ uintmax_t j = UINTMAX_MAX;
|| defined __clang__)
int k = _Generic (SIZE_MAX, size_t: 0);
#elif (2 <= __GNUC__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \
- || (0x5110 <= __SUNPRO_C && !__STDC__))
+ || (0x5110 <= __SUNPRO_C && !__STDC__) || 1939 <= _MSC_VER)
extern size_t k;
extern __typeof__ (SIZE_MAX) k;
#endif
@@ -389,9 +391,9 @@ AC_DEFUN([gl_STDINT_BITSIZEOF],
])
eval result=\$gl_cv_bitsizeof_${gltype}
if test $result = unknown; then
- dnl Use a nonempty default, because some compilers, such as IRIX 5 cc,
- dnl do a syntax check even on unused #if conditions and give an error
- dnl on valid C code like this:
+ dnl Use a nonempty default, because some old compilers do a syntax check
+ dnl even on unused #if conditions and give an error on valid C code like
+ dnl this:
dnl #if 0
dnl # if > 32
dnl # endif
diff --git a/gnulib-m4/stdint_h.m4 b/gnulib-m4/stdint_h.m4
index ee9773a8..d4f1acdd 100644
--- a/gnulib-m4/stdint_h.m4
+++ b/gnulib-m4/stdint_h.m4
@@ -1,8 +1,10 @@
-# stdint_h.m4 serial 9
-dnl Copyright (C) 1997-2004, 2006, 2008-2024 Free Software Foundation, Inc.
+# stdint_h.m4
+# serial 9
+dnl Copyright (C) 1997-2004, 2006, 2008-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 This file is offered as-is, without any warranty.
dnl From Paul Eggert.
diff --git a/gnulib-m4/stdio_h.m4 b/gnulib-m4/stdio_h.m4
index c19feefe..71d86180 100644
--- a/gnulib-m4/stdio_h.m4
+++ b/gnulib-m4/stdio_h.m4
@@ -1,8 +1,10 @@
-# stdio_h.m4 serial 63
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# stdio_h.m4
+# serial 75
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_STDIO_H_EARLY],
[
@@ -132,6 +134,7 @@ AC_DEFUN([gl_STDIO_H_REQUIRE_DEFAULTS],
[
m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS], [
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DPRINTF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DZPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCLOSE])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDOPEN])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFLUSH])
@@ -152,12 +155,14 @@ AC_DEFUN([gl_STDIO_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELL])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELLO])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FWRITE])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FZPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETC])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCHAR])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDELIM])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLINE])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF_POSIX])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_ZPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PCLOSE])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PERROR])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POPEN])
@@ -171,20 +176,29 @@ AC_DEFUN([gl_STDIO_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAMEAT])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SCANF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SNPRINTF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SNZPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SPRINTF_POSIX])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_NONBLOCKING])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_SIGPIPE])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SZPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TMPFILE])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VASPRINTF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VASZPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFSCANF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSCANF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VDPRINTF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VDZPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF_POSIX])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFZPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF_POSIX])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSNPRINTF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSNZPRINTF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSPRINTF_POSIX])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSZPRINTF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VZPRINTF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ZPRINTF])
dnl Support Microsoft deprecated alias function names by default.
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCLOSEALL], [1])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FDOPEN], [1])
diff --git a/gnulib-m4/stdlib_h.m4 b/gnulib-m4/stdlib_h.m4
index 88ccd141..ab2e8701 100644
--- a/gnulib-m4/stdlib_h.m4
+++ b/gnulib-m4/stdlib_h.m4
@@ -1,8 +1,10 @@
-# stdlib_h.m4 serial 77
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# stdlib_h.m4
+# serial 85
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_STDLIB_H],
[
@@ -36,44 +38,51 @@ AC_DEFUN_ONCE([gl_STDLIB_H],
dnl On Solaris 10, in UTF-8 locales, its value is 3 but needs to be 4.
dnl Fortunately, we can do this because on this platform MB_LEN_MAX is 5.
AC_REQUIRE([AC_CANONICAL_HOST])
- AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([gt_LOCALE_EN_UTF8])
AC_CACHE_CHECK([whether MB_CUR_MAX is correct],
[gl_cv_macro_MB_CUR_MAX_good],
- [
- 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.
- solaris*) gl_cv_macro_MB_CUR_MAX_good="guessing no" ;;
- # Guess yes otherwise.
- *) gl_cv_macro_MB_CUR_MAX_good="guessing yes" ;;
- esac
-changequote([,])dnl
- if test $LOCALE_FR_UTF8 != none; then
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[#include <stdlib.h>
+ ]],
+ [[return !!MB_CUR_MAX;]])
+ ],
+ [dnl Initial guess, used when cross-compiling or when no suitable locale
+ dnl is present.
+ # Guess no on Solaris and Haiku, yes otherwise.
+ AS_CASE([$host_os],
+ [solaris* | haiku*],
+ [gl_cv_macro_MB_CUR_MAX_good="guessing no"],
+ [gl_cv_macro_MB_CUR_MAX_good="guessing yes"])
+ if test "$LOCALE_EN_UTF8" != none; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
#include <locale.h>
#include <stdlib.h>
int main ()
{
int result = 0;
- if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ if (setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL)
{
if (MB_CUR_MAX < 4)
result |= 1;
}
return result;
}]])],
- [gl_cv_macro_MB_CUR_MAX_good=yes],
- [gl_cv_macro_MB_CUR_MAX_good=no],
- [:])
- fi
+ [gl_cv_macro_MB_CUR_MAX_good=yes],
+ [gl_cv_macro_MB_CUR_MAX_good=no],
+ [:])
+ fi
+ ],
+ [gl_cv_macro_MB_CUR_MAX_good="link failed - so no"])
])
- case "$gl_cv_macro_MB_CUR_MAX_good" in
- *yes) ;;
- *) REPLACE_MB_CUR_MAX=1 ;;
- esac
+ AS_CASE([$gl_cv_macro_MB_CUR_MAX_good],
+ [*yes],
+ [],
+ ["link failed - so no"],
+ [# 4 suffices as a workaround in Android NDK 16,
+ # the only known platform with the bug.
+ REPLACE_MB_CUR_MAX=4],
+ [REPLACE_MB_CUR_MAX="(-1)"])
AC_CHECK_DECLS_ONCE([ecvt])
if test $ac_cv_have_decl_ecvt = no; then
@@ -109,6 +118,7 @@ AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS],
[
m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS], [
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ABORT_DEBUG])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_GNU])
@@ -138,12 +148,12 @@ AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_GNU])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SECURE_GETENV])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETENV])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STACK_TRACE])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOD])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOL])
@@ -195,7 +205,6 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R])
HAVE_QSORT_R=1; AC_SUBST([HAVE_QSORT_R])
HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM])
- HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H])
HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R])
HAVE_REALLOCARRAY=1; AC_SUBST([HAVE_REALLOCARRAY])
HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH])
@@ -217,6 +226,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT])
HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV])
REPLACE__EXIT=0; AC_SUBST([REPLACE__EXIT])
+ REPLACE_ABORT=0; AC_SUBST([REPLACE_ABORT])
REPLACE_ALIGNED_ALLOC=0; AC_SUBST([REPLACE_ALIGNED_ALLOC])
REPLACE_CALLOC_FOR_CALLOC_GNU=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_GNU])
REPLACE_CALLOC_FOR_CALLOC_POSIX=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_POSIX])
@@ -243,7 +253,6 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
REPLACE_RAND=0; AC_SUBST([REPLACE_RAND])
REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM])
REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R])
- REPLACE_REALLOC_FOR_REALLOC_GNU=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_GNU])
REPLACE_REALLOC_FOR_REALLOC_POSIX=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_POSIX])
REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY])
REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
@@ -258,4 +267,5 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
REPLACE_STRTOULL=0; AC_SUBST([REPLACE_STRTOULL])
REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV])
REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB])
+ CAN_PRINT_STACK_TRACE=0; AC_SUBST([CAN_PRINT_STACK_TRACE])
])
diff --git a/gnulib-m4/stpcpy.m4 b/gnulib-m4/stpcpy.m4
new file mode 100644
index 00000000..0c84d6d6
--- /dev/null
+++ b/gnulib-m4/stpcpy.m4
@@ -0,0 +1,30 @@
+# stpcpy.m4
+# serial 11
+dnl Copyright (C) 2002, 2007, 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.
+dnl This file is offered as-is, without any warranty.
+
+AC_DEFUN([gl_FUNC_STPCPY],
+[
+ dnl Persuade glibc <string.h> to declare stpcpy().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ dnl The stpcpy() declaration in lib/string.in.h uses 'restrict'.
+ AC_REQUIRE([AC_C_RESTRICT])
+
+ AC_REQUIRE([gl_STRING_H_DEFAULTS])
+ gl_CHECK_FUNCS_ANDROID([stpcpy], [[#include <string.h>]])
+ if test $ac_cv_func_stpcpy = no; then
+ HAVE_STPCPY=0
+ case "$gl_cv_onwards_func_stpcpy" in
+ future*) REPLACE_STPCPY=1 ;;
+ esac
+ fi
+])
+
+# Prerequisites of lib/stpcpy.c.
+AC_DEFUN([gl_PREREQ_STPCPY], [
+ :
+])
diff --git a/gnulib-m4/strerror.m4 b/gnulib-m4/strerror.m4
index a1d12612..c8b3b207 100644
--- a/gnulib-m4/strerror.m4
+++ b/gnulib-m4/strerror.m4
@@ -1,8 +1,10 @@
-# strerror.m4 serial 25
-dnl Copyright (C) 2002, 2007-2024 Free Software Foundation, Inc.
+# strerror.m4
+# serial 25
+dnl Copyright (C) 2002, 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_STRERROR],
[
diff --git a/gnulib-m4/strerror_r.m4 b/gnulib-m4/strerror_r.m4
index 903d03c3..4bbb8a0f 100644
--- a/gnulib-m4/strerror_r.m4
+++ b/gnulib-m4/strerror_r.m4
@@ -1,8 +1,10 @@
-# strerror_r.m4 serial 26
-dnl Copyright (C) 2002, 2007-2024 Free Software Foundation, Inc.
+# strerror_r.m4
+# serial 29
+dnl Copyright (C) 2002, 2007-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_STRERROR_R],
[
@@ -62,7 +64,7 @@ AC_DEFUN([gl_FUNC_STRERROR_R_WORKS],
if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then
dnl The POSIX prototype is: int strerror_r (int, char *, size_t);
dnl glibc, Cygwin: char *strerror_r (int, char *, size_t);
- dnl AIX 5.1, OSF/1 5.1: int strerror_r (int, char *, int);
+ dnl AIX 5.1: int strerror_r (int, char *, int);
AC_CACHE_CHECK([for strerror_r with POSIX signature],
[gl_cv_func_strerror_r_posix_signature],
[AC_COMPILE_IFELSE(
diff --git a/gnulib-m4/string_h.m4 b/gnulib-m4/string_h.m4
index 9ea748cc..b5324e3a 100644
--- a/gnulib-m4/string_h.m4
+++ b/gnulib-m4/string_h.m4
@@ -1,11 +1,12 @@
-# Configure a GNU-like replacement for <string.h>.
-
-# Copyright (C) 2007-2024 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.
+# string_h.m4
+# serial 45
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
-# serial 39
+# Configure a GNU-like replacement for <string.h>.
# Written by Paul Eggert.
@@ -24,7 +25,8 @@ AC_DEFUN_ONCE([gl_STRING_H],
[explicit_bzero ffsl ffsll memmem mempcpy memrchr memset_explicit
rawmemchr stpcpy stpncpy strchrnul
strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
- strerror_r strerrorname_np sigabbrev_np sigdescr_np strsignal strverscmp])
+ strerror_l strerror_r strerrorname_np
+ sigabbrev_np sigdescr_np strsignal strverscmp])
AC_REQUIRE([AC_C_RESTRICT])
])
@@ -61,6 +63,7 @@ AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPNCPY])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCHRNUL])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRDUP])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRINGEQ])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNCAT])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNDUP])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNLEN])
@@ -69,6 +72,8 @@ AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSTR])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCASESTR])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOK_R])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STR_STARTSWITH])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STR_ENDSWITH])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSLEN])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNLEN])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCHR])
@@ -83,8 +88,11 @@ AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSPN])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSEP])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSTOK_R])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBS_STARTSWITH])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBS_ENDSWITH])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR_R])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR_L])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERRORNAME_NP])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGABBREV_NP])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGDESCR_NP])
@@ -107,6 +115,7 @@ AC_DEFUN([gl_STRING_H_DEFAULTS],
HAVE_EXPLICIT_BZERO=1; AC_SUBST([HAVE_EXPLICIT_BZERO])
HAVE_FFSL=1; AC_SUBST([HAVE_FFSL])
HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL])
+ HAVE_DECL_MEMEQ=0; AC_SUBST([HAVE_DECL_MEMEQ])
HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM])
HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY])
HAVE_MEMSET_EXPLICIT=1; AC_SUBST([HAVE_MEMSET_EXPLICIT])
@@ -116,6 +125,7 @@ AC_DEFUN([gl_STRING_H_DEFAULTS],
HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY])
HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL])
HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP])
+ HAVE_DECL_STREQ=0; AC_SUBST([HAVE_DECL_STREQ])
HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP])
HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN])
HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK])
@@ -123,6 +133,7 @@ AC_DEFUN([gl_STRING_H_DEFAULTS],
HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR])
HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R])
HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R])
+ HAVE_STRERROR_L=1; AC_SUBST([HAVE_STRERROR_L])
HAVE_STRERRORNAME_NP=1; AC_SUBST([HAVE_STRERRORNAME_NP])
HAVE_SIGABBREV_NP=1; AC_SUBST([HAVE_SIGABBREV_NP])
HAVE_SIGDESCR_NP=1; AC_SUBST([HAVE_SIGDESCR_NP])
@@ -145,6 +156,7 @@ AC_DEFUN([gl_STRING_H_DEFAULTS],
REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R])
REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR])
REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R])
+ REPLACE_STRERROR_L=0; AC_SUBST([REPLACE_STRERROR_L])
REPLACE_STRERRORNAME_NP=0; AC_SUBST([REPLACE_STRERRORNAME_NP])
REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL])
REPLACE_STRVERSCMP=0; AC_SUBST([REPLACE_STRVERSCMP])
diff --git a/gnulib-m4/stringeq.m4 b/gnulib-m4/stringeq.m4
new file mode 100644
index 00000000..de6d66c1
--- /dev/null
+++ b/gnulib-m4/stringeq.m4
@@ -0,0 +1,25 @@
+# stringeq.m4
+# serial 1
+dnl Copyright (C) 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 This file is offered as-is, without any warranty.
+
+AC_DEFUN([gl_FUNC_STREQ],
+[
+ AC_REQUIRE([gl_STRING_H_DEFAULTS])
+ AC_CHECK_DECLS_ONCE([streq])
+ if test $ac_cv_have_decl_streq != no; then
+ HAVE_DECL_STREQ=1
+ fi
+])
+
+AC_DEFUN([gl_FUNC_MEMEQ],
+[
+ AC_REQUIRE([gl_STRING_H_DEFAULTS])
+ AC_CHECK_DECLS_ONCE([memeq])
+ if test $ac_cv_have_decl_memeq != no; then
+ HAVE_DECL_MEMEQ=1
+ fi
+])
diff --git a/gnulib-m4/strncat.m4 b/gnulib-m4/strncat.m4
index 17550d4a..81a0ce6a 100644
--- a/gnulib-m4/strncat.m4
+++ b/gnulib-m4/strncat.m4
@@ -1,8 +1,10 @@
-# strncat.m4 serial 8
-dnl Copyright (C) 2002-2004, 2009-2024 Free Software Foundation, Inc.
+# strncat.m4
+# serial 10
+dnl Copyright (C) 2002-2004, 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.
+dnl This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_FUNC_STRNCAT],
[
@@ -27,31 +29,20 @@ AC_DEFUN_ONCE([gl_FUNC_STRNCAT],
# include <unistd.h>
# include <sys/types.h>
# include <sys/mman.h>
-# ifndef MAP_FILE
-# define MAP_FILE 0
-# endif
#endif
]GL_MDA_DEFINES],
[[
char *fence = NULL;
#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
-# if HAVE_MAP_ANONYMOUS
- const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
- const int fd = -1;
-# else /* !HAVE_MAP_ANONYMOUS */
- const int flags = MAP_FILE | MAP_PRIVATE;
- int fd = open ("/dev/zero", O_RDONLY, 0666);
- if (fd >= 0)
-# endif
- {
- int pagesize = getpagesize ();
- char *two_pages =
- (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
- flags, fd, 0);
- if (two_pages != (char *)(-1)
- && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
- fence = two_pages + pagesize;
- }
+ {
+ long int pagesize = sysconf (_SC_PAGESIZE);
+ char *two_pages =
+ (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
+ MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ if (two_pages != (char *)(-1)
+ && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
+ fence = two_pages + pagesize;
+ }
#endif
if (fence)
{
diff --git a/gnulib-m4/strstr.m4 b/gnulib-m4/strstr.m4
index 21d7768b..1be2721c 100644
--- a/gnulib-m4/strstr.m4
+++ b/gnulib-m4/strstr.m4
@@ -1,8 +1,10 @@
-# strstr.m4 serial 24
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# strstr.m4
+# serial 25
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
dnl Check that strstr works.
AC_DEFUN([gl_FUNC_STRSTR_SIMPLE],
@@ -12,8 +14,8 @@ AC_DEFUN([gl_FUNC_STRSTR_SIMPLE],
if test $REPLACE_MEMCHR = 1; then
REPLACE_STRSTR=1
else
- dnl Detect https://sourceware.org/bugzilla/show_bug.cgi?id=12092
- dnl and https://sourceware.org/bugzilla/show_bug.cgi?id=23637.
+ dnl Detect https://sourceware.org/PR12092
+ dnl and https://sourceware.org/PR23637.
AC_CACHE_CHECK([whether strstr works],
[gl_cv_func_strstr_works_always],
[AC_RUN_IFELSE(
@@ -94,7 +96,7 @@ static void quit (int sig) { _exit (sig + 128); }
char *haystack = (char *) malloc (2 * m + 2);
char *needle = (char *) malloc (m + 2);
/* Failure to compile this test due to missing alarm is okay,
- since all such platforms (mingw) also have quadratic strstr. */
+ since all such platforms (mingw, MSVC) also have quadratic strstr. */
signal (SIGALRM, quit);
alarm (5);
/* Check for quadratic performance. */
diff --git a/gnulib-m4/symlink.m4 b/gnulib-m4/symlink.m4
index 62062cf1..74e46936 100644
--- a/gnulib-m4/symlink.m4
+++ b/gnulib-m4/symlink.m4
@@ -1,10 +1,12 @@
+# symlink.m4
# serial 10
-# See if we need to provide symlink replacement.
-
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+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,
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 symlink replacement.
# Written by Eric Blake.
diff --git a/gnulib-m4/sys_cdefs_h.m4 b/gnulib-m4/sys_cdefs_h.m4
new file mode 100644
index 00000000..d72796ca
--- /dev/null
+++ b/gnulib-m4/sys_cdefs_h.m4
@@ -0,0 +1,26 @@
+# sys_cdefs_h.m4 - Is <sys/cdefs.h> compatible enough with glibc?
+# serial 2
+dnl Copyright 2024-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 This file is offered as-is, without any warranty.
+
+dnl Written by Paul Eggert.
+
+AC_DEFUN_ONCE([gl_CHECK_HEADER_SYS_CDEFS_H],
+ [AC_CACHE_CHECK([for glibc-compatible sys/cdefs.h],
+ [gl_cv_header_sys_cdefs_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_DEFINES_PROVIDED
+ [#include <sys/cdefs.h>
+ enum { foo = __GNUC_PREREQ (14, 1) } bar;
+ ]],
+ [gl_cv_header_sys_cdefs_h=yes],
+ [gl_cv_header_sys_cdefs_h=no])])
+ if test "$gl_cv_header_sys_cdefs_h" = yes; then
+ HAVE_SYS_CDEFS_H=1
+ else
+ HAVE_SYS_CDEFS_H=0
+ fi
+ AC_SUBST([HAVE_SYS_CDEFS_H])])
diff --git a/gnulib-m4/sys_ioctl_h.m4 b/gnulib-m4/sys_ioctl_h.m4
index 3e789f3d..533ed92e 100644
--- a/gnulib-m4/sys_ioctl_h.m4
+++ b/gnulib-m4/sys_ioctl_h.m4
@@ -1,8 +1,10 @@
-# sys_ioctl_h.m4 serial 15
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# sys_ioctl_h.m4
+# serial 15
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
dnl Written by Bruno Haible.
diff --git a/gnulib-m4/sys_select_h.m4 b/gnulib-m4/sys_select_h.m4
index 9e279fba..f154bc5f 100644
--- a/gnulib-m4/sys_select_h.m4
+++ b/gnulib-m4/sys_select_h.m4
@@ -1,8 +1,10 @@
-# sys_select_h.m4 serial 23
-dnl Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# sys_select_h.m4
+# serial 24
+dnl Copyright (C) 2006-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_SYS_SELECT_H],
[
@@ -11,17 +13,14 @@ AC_DEFUN_ONCE([gl_SYS_SELECT_H],
AC_CACHE_CHECK([whether <sys/select.h> is self-contained],
[gl_cv_header_sys_select_h_selfcontained],
[
- dnl Test against two bugs:
+ dnl Test against a bug:
dnl 1. On many platforms, <sys/select.h> assumes prior inclusion of
dnl <sys/types.h>.
- dnl 2. On OSF/1 4.0, <sys/select.h> provides only a forward declaration
- dnl of 'struct timeval', and no definition of this type.
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/select.h>]],
- [[struct timeval b;]])],
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/select.h>]], [])],
[gl_cv_header_sys_select_h_selfcontained=yes],
[gl_cv_header_sys_select_h_selfcontained=no])
dnl Test against another bug:
- dnl 3. On Solaris 10, <sys/select.h> provides an FD_ZERO implementation
+ dnl 2. On Solaris 10, <sys/select.h> provides an FD_ZERO implementation
dnl that relies on memset(), but without including <string.h>.
if test $gl_cv_header_sys_select_h_selfcontained = yes; then
AC_COMPILE_IFELSE(
diff --git a/gnulib-m4/sys_socket_h.m4 b/gnulib-m4/sys_socket_h.m4
index af524849..da3c6804 100644
--- a/gnulib-m4/sys_socket_h.m4
+++ b/gnulib-m4/sys_socket_h.m4
@@ -1,8 +1,10 @@
-# sys_socket_h.m4 serial 29
-dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
+# sys_socket_h.m4
+# serial 32
+dnl Copyright (C) 2005-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 This file is offered as-is, without any warranty.
dnl From Simon Josefsson.
@@ -11,17 +13,6 @@ 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],
@@ -51,24 +42,10 @@ AC_DEFUN_ONCE([gl_SYS_SOCKET_H],
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
-])
+ gl_PREREQ_SYS_SA_FAMILY
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],
[],
@@ -157,6 +134,32 @@ AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP],
AC_SUBST([HAVE_WS2TCPIP_H])
])
+# Common prerequisites of the <sys/socket.h> replacement and of the <sys/un.h>
+# replacement.
+# Sets and substitutes HAVE_SA_FAMILY_T.
+AC_DEFUN([gl_PREREQ_SYS_SA_FAMILY],
+[
+ AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])
+ 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_sa_family_t = yes; then
+ HAVE_SA_FAMILY_T=1
+ else
+ HAVE_SA_FAMILY_T=0
+ fi
+ AC_SUBST([HAVE_SA_FAMILY_T])
+])
+
# 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.
@@ -201,6 +204,5 @@ 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/gnulib-m4/sys_stat_h.m4 b/gnulib-m4/sys_stat_h.m4
index 75018537..10636923 100644
--- a/gnulib-m4/sys_stat_h.m4
+++ b/gnulib-m4/sys_stat_h.m4
@@ -1,8 +1,10 @@
-# sys_stat_h.m4 serial 42 -*- Autoconf -*-
-dnl Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# sys_stat_h.m4
+# serial 44 -*- Autoconf -*-
+dnl Copyright (C) 2006-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 This file is offered as-is, without any warranty.
dnl From Eric Blake.
dnl Provide a GNU-like <sys/stat.h>.
diff --git a/gnulib-m4/sys_time_h.m4 b/gnulib-m4/sys_time_h.m4
index dc5353f3..a33b97d8 100644
--- a/gnulib-m4/sys_time_h.m4
+++ b/gnulib-m4/sys_time_h.m4
@@ -1,10 +1,12 @@
-# Configure a replacement for <sys/time.h>.
+# sys_time_h.m4
# serial 12
+dnl Copyright (C) 2007, 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.
+dnl This file is offered as-is, without any warranty.
-# Copyright (C) 2007, 2009-2024 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.
+# Configure a replacement for <sys/time.h>.
# Written by Paul Eggert and Martin Lambers.
diff --git a/gnulib-m4/sys_types_h.m4 b/gnulib-m4/sys_types_h.m4
index 37d0ccad..e99fdcc6 100644
--- a/gnulib-m4/sys_types_h.m4
+++ b/gnulib-m4/sys_types_h.m4
@@ -1,8 +1,10 @@
-# sys_types_h.m4 serial 13
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# sys_types_h.m4
+# serial 15
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_SYS_TYPES_H],
[
@@ -22,6 +24,9 @@ AC_DEFUN_ONCE([gl_SYS_TYPES_H],
dnl Whether to override the 'off_t' type.
AC_REQUIRE([gl_TYPE_OFF_T])
+ dnl Whether to define the 'off64_t' type.
+ AC_REQUIRE([gl_TYPE_OFF64_T])
+
dnl Whether to override the 'dev_t' and 'ino_t' types.
m4_ifdef([gl_WINDOWS_STAT_INODES], [
AC_REQUIRE([gl_WINDOWS_STAT_INODES])
@@ -29,6 +34,14 @@ AC_DEFUN_ONCE([gl_SYS_TYPES_H],
WINDOWS_STAT_INODES=0
])
AC_SUBST([WINDOWS_STAT_INODES])
+
+ dnl Test whether the 'blksize_t' type is defined.
+ AC_CHECK_TYPE([blksize_t], [HAVE_BLKSIZE_T=1], [HAVE_BLKSIZE_T=0])
+ AC_SUBST([HAVE_BLKSIZE_T])
+
+ dnl Test whether the 'blkcnt_t' type is defined.
+ AC_CHECK_TYPE([blkcnt_t], [HAVE_BLKCNT_T=1], [HAVE_BLKCNT_T=0])
+ AC_SUBST([HAVE_BLKCNT_T])
])
# Initializes the default values for AC_SUBSTed shell variables.
diff --git a/gnulib-m4/sys_uio_h.m4 b/gnulib-m4/sys_uio_h.m4
index ce252ed4..eb0e8424 100644
--- a/gnulib-m4/sys_uio_h.m4
+++ b/gnulib-m4/sys_uio_h.m4
@@ -1,8 +1,10 @@
-# sys_uio_h.m4 serial 3
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# sys_uio_h.m4
+# serial 3
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_SYS_UIO_H],
[
diff --git a/gnulib-m4/thread.m4 b/gnulib-m4/thread.m4
index a840de6f..d7be2811 100644
--- a/gnulib-m4/thread.m4
+++ b/gnulib-m4/thread.m4
@@ -1,8 +1,10 @@
-# thread.m4 serial 5
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# thread.m4
+# serial 5
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_THREAD],
[
diff --git a/gnulib-m4/threadlib.m4 b/gnulib-m4/threadlib.m4
index 6dee893e..a93aa5c1 100644
--- a/gnulib-m4/threadlib.m4
+++ b/gnulib-m4/threadlib.m4
@@ -1,8 +1,10 @@
-# threadlib.m4 serial 42
-dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
+# threadlib.m4
+# serial 49
+dnl Copyright (C) 2005-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
@@ -55,24 +57,12 @@ 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
+ # definition of errno in <errno.h>.
+ AS_CASE([$host_os],
+ [aix* | freebsd*], [CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"],
+ [hpux* | solaris*], [CPPFLAGS="$CPPFLAGS -D_REENTRANT"])
gl_anythreadlib_early_done=done
fi
])
@@ -84,24 +74,26 @@ 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*)
+ [AS_CASE([$host_os],
+ [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]],
+#pragma weak xyzzy
+ ]],
[[xyzzy();]])],
[gl_cv_have_weak=maybe])
- if test $gl_cv_have_weak = maybe; then
+ AS_IF([test $gl_cv_have_weak = maybe], [
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(
@@ -124,20 +116,19 @@ int main ()
[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 But when linking statically, weak symbols do not work.
+ AS_CASE([" $LDFLAGS "],
+ [*" -static "*], [gl_cv_have_weak=no])
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*)
+ AS_CASE([$gl_cv_have_weak],
+ [*yes],
+ [AS_CASE([$host_os],
+ [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
@@ -151,17 +142,15 @@ 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)
+ AS_CASE([$gl_cv_have_weak],
+ [*yes],
+ [
AC_DEFINE([HAVE_WEAK_SYMBOLS], [1],
[Define to 1 if the compiler and linker support weak declarations of symbols.])
- ;;
- esac
+ ])
])
dnl ============================================================================
@@ -187,36 +176,30 @@ 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
+ AS_IF([test -z "$gl_pthreadlib_body_done"], [
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
+ AS_IF([test "$gl_have_pthread_h" = yes], [
# 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.
+ # Test whether both pthread_mutex_lock exists in libc.
#
# 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
+ 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);]])],
+ [[pthread_mutex_lock (&m);]])],
[gl_pthread_api=yes
LIBPTHREAD=$gl_pthread
LIBPMULTITHREAD=$gl_pthread])
@@ -229,8 +212,9 @@ AC_DEFUN([gl_PTHREADLIB_BODY],
gl_pthread_in_glibc=no
# On Linux with glibc >= 2.34, libc contains the fully functional
# pthread functions.
- case "$host_os" in
- linux*)
+ AS_CASE([$host_os],
+ [linux*],
+ [
AC_EGREP_CPP([Lucky user],
[#include <features.h>
#ifdef __GNU_LIBRARY__
@@ -241,19 +225,17 @@ AC_DEFUN([gl_PTHREADLIB_BODY],
],
[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
+ # Test for libpthread by looking for pthread_kill.
+ AS_IF([test $gl_pthread_api = yes && test -z "$LIBPTHREAD"], [
# 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
+ [AS_IF([test $gl_pthread_in_glibc = yes], [
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
@@ -261,14 +243,13 @@ AC_DEFUN([gl_PTHREADLIB_BODY],
# 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
+ AS_CASE([$host_os],
+ [[solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*]],
+ [
+ AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1],
+ [Define if the pthread_in_use() detection is hard.])
+ ])
+ ])
],
[dnl This is needed on FreeBSD 5.2.1.
AC_CHECK_LIB([thr], [pthread_kill],
@@ -279,35 +260,36 @@ changequote([,])dnl
fi
])
])
- elif test $gl_pthread_api != yes; then
+ ], [test $gl_pthread_api != yes], [
# 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
+ AS_IF([test $gl_pthread_api != yes], [
# 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
+ AS_IF([test $gl_pthread_api = yes], [
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>]],
+ [[#include <sched.h>
+ ]],
[[sched_yield ();]])],
[SCHED_YIELD_LIB=
],
@@ -322,7 +304,7 @@ changequote([,])dnl
AC_SUBST([LIB_SCHED_YIELD])
gl_pthreadlib_body_done=done
- fi
+ ])
])
AC_DEFUN([gl_PTHREADLIB],
@@ -349,44 +331,45 @@ AC_DEFUN([gl_STDTHREADLIB_BODY],
[
AC_REQUIRE([gl_ANYTHREADLIB_EARLY])
AC_REQUIRE([AC_CANONICAL_HOST])
- if test -z "$gl_stdthreadlib_body_done"; then
+ AS_IF([test -z "$gl_stdthreadlib_body_done"], [
AC_CHECK_HEADERS_ONCE([threads.h])
- case "$host_os" in
- mingw* | windows*)
+ AS_CASE([$host_os],
+ [mingw* | windows*],
+ [
LIBSTDTHREAD=
- ;;
- *)
+ ],
+ [
gl_PTHREADLIB_BODY
- if test $ac_cv_header_threads_h = yes; then
+ AS_IF([test $ac_cv_header_threads_h = yes], [
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 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
+ gl_CHECK_FUNCS_ANDROID([thrd_create], [[#include <threads.h>
+ ]])
+ AS_IF([test $ac_cv_func_thrd_create = yes], [
LIBSTDTHREAD=
- else
+ ], [
AC_CHECK_LIB([stdthreads], [thrd_create], [
- LIBSTDTHREAD='-lstdthreads -lpthread'
+ 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],
@@ -403,7 +386,7 @@ 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 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,
@@ -448,51 +431,46 @@ AC_DEFUN([gl_THREADLIB_EARLY_BODY],
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 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])
+ dnl Don't display the --disable-threads option
+ dnl - if the package builds one or more libraries, because libraries must
+ dnl always be multithread-safe (as far as possible),
+ dnl - if the package defines gl_THREADLIB_DEFAULT_NO, because the option
+ dnl would then be a no-op.
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])]),
+AS_HELP_STRING([[--enable-threads={isoc|posix|isoc+posix|windows}]], [specify multithreading API])m4_ifdef([LT_INIT], [], [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 ;;
+ AS_CASE([$host_os],
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
- ;;
+ [cygwin*],
+ [AS_CASE([$(uname -r)],
+ [[1.[0-5].*]], [gl_use_threads=no],
+ [gl_use_threads=yes])
+ ],
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
+ [mingw* | windows*],
+ [AS_CASE([$gl_use_winpthreads_default],
+ [yes], [gl_use_threads=posix],
+ [no], [gl_use_threads=windows],
+ [gl_use_threads=yes])
+ ],
+ [gl_use_threads=yes])
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
+ AS_CASE([$gl_use_threads],
+ [yes | isoc | posix | isoc+posix],
+ [
+ # For using <threads.h> or <pthread.h>:
+ gl_ANYTHREADLIB_EARLY
+ ])
])
dnl The guts of gl_THREADLIB. Needs to be expanded only once.
@@ -505,90 +483,95 @@ AC_DEFUN([gl_THREADLIB_BODY],
LTLIBTHREAD=
LIBMULTITHREAD=
LTLIBMULTITHREAD=
- if test "$gl_use_threads" != no; then
+ AS_IF([test "$gl_use_threads" = no],
+ [AC_DEFINE([AVOID_ANY_THREADS], [1],
+ [Define if no multithread safety and no multithreading is desired.])],
+ [
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
+ AS_CASE([$gl_cv_have_weak],
+ [*yes],
+ [
+ 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])
+ :
+ ])
+ AS_CASE([$gl_use_threads],
+ [isoc | isoc+posix],
+ [
+ AC_CHECK_HEADERS_ONCE([threads.h])
+ gl_have_isoc_threads="$ac_cv_header_threads_h"
+ ])
+ AS_CASE([$gl_use_threads],
+ [yes | posix | isoc+posix],
+ [
+ gl_PTHREADLIB_BODY
+ LIBTHREAD=$LIBPTHREAD LTLIBTHREAD=$LIBPTHREAD
+ LIBMULTITHREAD=$LIBPMULTITHREAD LTLIBMULTITHREAD=$LIBPMULTITHREAD
+ AS_IF([test $gl_pthread_api = yes], [
+ AS_IF([test "$gl_use_threads" = isoc+posix &&
+ test "$gl_have_isoc_threads" = yes], [
+ 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=
+ ], [
+ gl_threads_api=posix
+ AC_DEFINE([USE_POSIX_THREADS], [1],
+ [Define if the POSIX multithreading library can be used.])
+ AS_IF([test -z "$LIBMULTITHREAD" && test -z "$LTLIBMULTITHREAD"], [
+ AC_DEFINE([USE_POSIX_THREADS_FROM_LIBC], [1],
+ [Define if references to the POSIX multithreading library are satisfied by libc.])
+ ], [
+ AS_CASE([$gl_cv_have_weak],
+ [*yes],
+ [
+ AC_DEFINE([USE_POSIX_THREADS_WEAK], [1],
+ [Define if references to the POSIX multithreading library should be made weak.])
+ LIBTHREAD= LTLIBTHREAD=
+ ],
+ [AS_CASE([$host_os],
+ [freebsd* | dragonfly* | midnightbsd*],
+ [
+ AS_IF([test "x$LIBTHREAD" != "x$LIBMULTITHREAD"], [
+ dnl If weak symbols cannot tell whether
+ dnl pthread_create(), dnl 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.])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ])
+ AS_IF([test $gl_threads_api = none], [
+ AS_IF([test "$gl_use_threads" = isoc && test "$gl_have_isoc_threads" = yes], [
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
+ ])
+ ])
+ AS_IF([test $gl_threads_api = none], [
+ # The "win32" is for backward compatibility.
+ AS_CASE([$gl_use_threads],
+ [yes | windows | win32],
+ [AS_CASE([$host_os],
+ [mingw* | windows*],
+ [
+ gl_threads_api=windows
+ AC_DEFINE([USE_WINDOWS_THREADS], [1],
+ [Define if the native Windows multithreading API can be used.])
+ ])
+ ])
+ ])
+ ])
AC_MSG_CHECKING([for multithread API to use])
AC_MSG_RESULT([$gl_threads_api])
AC_SUBST([LIBTHREAD])
@@ -608,7 +591,7 @@ 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'.
+dnl configure option "--enable-threads".
AC_DEFUN([gl_DISABLE_THREADS], [
m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no])
@@ -620,7 +603,7 @@ 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 configure option "--enable-threads=posix".
dnl As of 2023, this is now the default.
AC_DEFUN([gl_AVOID_WINPTHREAD], [
@@ -666,13 +649,8 @@ 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
diff --git a/gnulib-m4/time.m4 b/gnulib-m4/time.m4
index 6f2347b2..8c3ec944 100644
--- a/gnulib-m4/time.m4
+++ b/gnulib-m4/time.m4
@@ -1,22 +1,24 @@
-# time.m4 serial 5
-dnl Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# time.m4
+# serial 6
+dnl Copyright (C) 2023-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
AC_DEFUN([gl_FUNC_TIME],
[
AC_REQUIRE([AC_CANONICAL_HOST])
- dnl glibc has the bug https://sourceware.org/bugzilla/show_bug.cgi?id=30200 .
+ dnl glibc has the bug https://sourceware.org/PR30200 .
AC_CACHE_CHECK([whether time() works],
[gl_cv_func_time_works],
[dnl Guess that it works except on
dnl - glibc >= 2.31 with Linux. And binaries produced on glibc < 2.31
dnl need to run fine on newer glibc versions as well; therefore ignore
dnl __GLIBC_MINOR__.
- dnl - FreeBSD/sparc,
+ dnl - FreeBSD, on machines with 2 or more CPUs,
dnl - AIX,
dnl - native Windows.
case "$host_os" in
@@ -32,12 +34,7 @@ AC_DEFUN([gl_FUNC_TIME],
[gl_cv_func_time_works="guessing no"],
[gl_cv_func_time_works="guessing yes"])
;;
- freebsd*)
- case "$host_cpu" in
- sparc*) gl_cv_func_time_works="guessing no";;
- *) gl_cv_func_time_works="guessing yes";;
- esac
- ;;
+ freebsd*) gl_cv_func_time_works="guessing no";;
aix*) gl_cv_func_time_works="guessing no";;
mingw* | windows*) gl_cv_func_time_works="guessing no";;
*) gl_cv_func_time_works="guessing yes";;
diff --git a/gnulib-m4/time_h.m4 b/gnulib-m4/time_h.m4
index 32fade0f..f4d8e20f 100644
--- a/gnulib-m4/time_h.m4
+++ b/gnulib-m4/time_h.m4
@@ -1,12 +1,13 @@
-# Configure a more-standard replacement for <time.h>.
-
-# Copyright (C) 2000-2001, 2003-2007, 2009-2024 Free Software Foundation, Inc.
+# time_h.m4
+# serial 27
+dnl Copyright (C) 2000-2001, 2003-2007, 2009-2025 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.
-# serial 25
-
-# 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.
+# Configure a more-standard replacement for <time.h>.
# Written by Paul Eggert and Jim Meyering.
@@ -146,6 +147,7 @@ AC_DEFUN([gl_TIME_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GETRES])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_R])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_RZ])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TZNAME])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TZSET])
dnl Support Microsoft deprecated alias function names by default.
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TZSET], [1])
@@ -163,13 +165,16 @@ AC_DEFUN([gl_TIME_H_DEFAULTS],
HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM])
HAVE_TIMESPEC_GET=1; AC_SUBST([HAVE_TIMESPEC_GET])
HAVE_TIMESPEC_GETRES=1; AC_SUBST([HAVE_TIMESPEC_GETRES])
- dnl Even GNU libc does not have timezone_t yet.
+ dnl Even GNU libc does not have timezone_t and tzalloc() yet.
HAVE_TIMEZONE_T=0; AC_SUBST([HAVE_TIMEZONE_T])
+ HAVE_TZALLOC=0; AC_SUBST([HAVE_TZALLOC])
REPLACE_CTIME=0; AC_SUBST([REPLACE_CTIME])
REPLACE_GMTIME=0; AC_SUBST([REPLACE_GMTIME])
REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME])
REPLACE_LOCALTIME_R=0; AC_SUBST([REPLACE_LOCALTIME_R])
+ REPLACE_LOCALTIME_RZ=0; AC_SUBST([REPLACE_LOCALTIME_RZ])
REPLACE_MKTIME=0; AC_SUBST([REPLACE_MKTIME])
+ REPLACE_MKTIME_Z=0; AC_SUBST([REPLACE_MKTIME_Z])
REPLACE_NANOSLEEP=0; AC_SUBST([REPLACE_NANOSLEEP])
REPLACE_STRFTIME=0; AC_SUBST([REPLACE_STRFTIME])
REPLACE_TIME=0; AC_SUBST([REPLACE_TIME])
diff --git a/gnulib-m4/uchar_h.m4 b/gnulib-m4/uchar_h.m4
index abd4f51f..b2309385 100644
--- a/gnulib-m4/uchar_h.m4
+++ b/gnulib-m4/uchar_h.m4
@@ -1,8 +1,10 @@
-# uchar_h.m4 serial 31
-dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# uchar_h.m4
+# serial 32
+dnl Copyright (C) 2019-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
dnl Prepare the overridden <uchar.h>.
@@ -19,6 +21,34 @@ AC_DEFUN_ONCE([gl_UCHAR_H],
fi
AC_SUBST([HAVE_UCHAR_H])
+ dnl On macOS 15, in C mode, <uchar.h> does not exist. But in C++ mode,
+ dnl it exists, and we need to #include_next it, otherwise we get an error
+ dnl "<cuchar> tried including <uchar.h> but didn't find libc++'s <uchar.h>
+ dnl header."
+ m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])])
+ CXX_HAVE_UCHAR_H=0
+ if test "$CXX" != no; then
+ AC_CACHE_CHECK([whether the C++ compiler has <uchar.h>],
+ [gl_cv_cxx_have_uchar_h],
+ [dnl We can't use AC_LANG_PUSH([C++]) and AC_LANG_POP([C++]) here, due to
+ dnl an autoconf bug <https://savannah.gnu.org/support/?110294>.
+ cat > conftest.cpp <<\EOF
+#include <uchar.h>
+EOF
+ gl_command="$CXX $CXXFLAGS $CPPFLAGS -c conftest.cpp"
+ if AC_TRY_EVAL([gl_command]); then
+ gl_cv_cxx_have_uchar_h=yes
+ else
+ gl_cv_cxx_have_uchar_h=no
+ fi
+ rm -fr conftest*
+ ])
+ if test $gl_cv_cxx_have_uchar_h = yes; then
+ CXX_HAVE_UCHAR_H=1
+ fi
+ fi
+ AC_SUBST([CXX_HAVE_UCHAR_H])
+
gl_TYPE_CHAR8_T
gl_TYPE_CHAR16_T
gl_TYPE_CHAR32_T
@@ -58,7 +88,7 @@ EOF
CXX_HAS_CHAR8_TYPE=0
if test $HAVE_UCHAR_H = 0; then
if test "$CXX" != no; then
- AC_CACHE_CHECK([whether the C++ compiler predefines the char8_t types],
+ AC_CACHE_CHECK([whether the C++ compiler predefines the char8_t type],
[gl_cv_cxx_has_char8_type],
[dnl We can't use AC_LANG_PUSH([C++]) and AC_LANG_POP([C++]) here, due to
dnl an autoconf bug <https://savannah.gnu.org/support/?110294>.
diff --git a/gnulib-m4/unicase_h.m4 b/gnulib-m4/unicase_h.m4
index ad2f6215..bf5d4c2e 100644
--- a/gnulib-m4/unicase_h.m4
+++ b/gnulib-m4/unicase_h.m4
@@ -1,8 +1,10 @@
-# unicase_h.m4 serial 1
-dnl Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# unicase_h.m4
+# serial 1
+dnl Copyright (C) 2023-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_UNICASE_H],
[
diff --git a/gnulib-m4/unictype_h.m4 b/gnulib-m4/unictype_h.m4
index 68b864bd..68ddaf6c 100644
--- a/gnulib-m4/unictype_h.m4
+++ b/gnulib-m4/unictype_h.m4
@@ -1,8 +1,10 @@
-# unictype_h.m4 serial 3
-dnl Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# unictype_h.m4
+# serial 4
+dnl Copyright (C) 2023-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_UNICTYPE_H],
[
@@ -107,6 +109,7 @@ AC_DEFUN([gl_UNICTYPE_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_GRAPHEME_LINK_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_BIDI_CONTROL_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
diff --git a/gnulib-m4/unimetadata_h.m4 b/gnulib-m4/unimetadata_h.m4
index abdc06d8..1a98b7c3 100644
--- a/gnulib-m4/unimetadata_h.m4
+++ b/gnulib-m4/unimetadata_h.m4
@@ -1,8 +1,10 @@
-# unimetadata_h.m4 serial 1
-dnl Copyright (C) 2024 Free Software Foundation, Inc.
+# unimetadata_h.m4
+# serial 1
+dnl Copyright (C) 2024-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_UNIMETADATA_H],
[
diff --git a/gnulib-m4/uninorm_h.m4 b/gnulib-m4/uninorm_h.m4
index aadf5598..d416f73b 100644
--- a/gnulib-m4/uninorm_h.m4
+++ b/gnulib-m4/uninorm_h.m4
@@ -1,8 +1,10 @@
-# uninorm_h.m4 serial 1
-dnl Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# uninorm_h.m4
+# serial 1
+dnl Copyright (C) 2023-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 This file is offered as-is, without any warranty.
AC_DEFUN_ONCE([gl_UNINORM_H],
[
diff --git a/gnulib-m4/unistd_h.m4 b/gnulib-m4/unistd_h.m4
index e078bd61..6ec16286 100644
--- a/gnulib-m4/unistd_h.m4
+++ b/gnulib-m4/unistd_h.m4
@@ -1,8 +1,10 @@
-# unistd_h.m4 serial 95
-dnl Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# unistd_h.m4
+# serial 97
+dnl Copyright (C) 2006-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 This file is offered as-is, without any warranty.
dnl Written by Simon Josefsson, Bruno Haible.
@@ -242,11 +244,13 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE])
REPLACE_GETENTROPY=0; AC_SUBST([REPLACE_GETENTROPY])
+ REPLACE_GETLOGIN=0; AC_SUBST([REPLACE_GETLOGIN])
REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R])
REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS])
REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE])
REPLACE_GETPASS=0; AC_SUBST([REPLACE_GETPASS])
REPLACE_GETPASS_FOR_GETPASS_GNU=0; AC_SUBST([REPLACE_GETPASS_FOR_GETPASS_GNU])
+ REPLACE_GETUSERSHELL=0; AC_SUBST([REPLACE_GETUSERSHELL])
REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY])
REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN])
REPLACE_LINK=0; AC_SUBST([REPLACE_LINK])
diff --git a/gnulib-m4/unitypes_h.m4 b/gnulib-m4/unitypes_h.m4
new file mode 100644
index 00000000..264e61be
--- /dev/null
+++ b/gnulib-m4/unitypes_h.m4
@@ -0,0 +1,26 @@
+# unitypes_h.m4
+# serial 1
+dnl Copyright (C) 2021-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 This file is offered as-is, without any warranty.
+
+AC_DEFUN_ONCE([gl_UNITYPES_H],
+[
+ AH_VERBATIM([unitypes_restrict], [
+/* This definition is a duplicate of the one in unitypes.h.
+ It is here so that we can cope with an older version of unitypes.h
+ that does not contain this definition and that is pre-installed among
+ the public header files. */
+# if defined __restrict \
+ || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \
+ || __clang_major__ >= 3
+# define _UC_RESTRICT __restrict
+# elif 199901L <= __STDC_VERSION__ || defined restrict
+# define _UC_RESTRICT restrict
+# else
+# define _UC_RESTRICT
+# endif
+])
+])
diff --git a/gnulib-m4/usleep.m4 b/gnulib-m4/usleep.m4
index c688a043..fc4438c4 100644
--- a/gnulib-m4/usleep.m4
+++ b/gnulib-m4/usleep.m4
@@ -1,8 +1,10 @@
-# usleep.m4 serial 9
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# usleep.m4
+# serial 9
+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,
dnl with or without modifications, as long as this notice is preserved.
+dnl This file is offered as-is, without any warranty.
dnl This macro intentionally does not check for select or nanosleep;
dnl both of those modules can require external libraries.
diff --git a/gnulib-m4/vasnprintf.m4 b/gnulib-m4/vasnprintf.m4
index 21a85bb1..1d040d6e 100644
--- a/gnulib-m4/vasnprintf.m4
+++ b/gnulib-m4/vasnprintf.m4
@@ -1,13 +1,47 @@
-# vasnprintf.m4 serial 52
-dnl Copyright (C) 2002-2004, 2006-2024 Free Software Foundation, Inc.
+# vasnprintf.m4
+# serial 56
+dnl Copyright (C) 2002-2004, 2006-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_VASNPRINTF],
[
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CHECK_FUNCS_ONCE([vasnprintf])
- if test $ac_cv_func_vasnprintf = no; then
+ if test $ac_cv_func_vasnprintf = yes; then
+ dnl On Cygwin, in directives with a huge width, the width is ignored, and
+ dnl the function returns a wrong result.
+ AC_CACHE_CHECK([whether vasnprintf works],
+ [gl_cv_func_vasnprintf_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#include <stdio.h>
+ ]],
+ [[size_t len;
+ char *res = vasnprintf (NULL, &len, "x%03000000000dy\n", -17);
+ /* On Cygwin 3.4.6, res is "x-17y\n" and len == 6: wrong. */
+ return (res != NULL && len < 10);
+ ]])
+ ],
+ [gl_cv_func_vasnprintf_works=yes],
+ [gl_cv_func_vasnprintf_works=no],
+ [case "$host_os" in
+ # Guess no on Cygwin.
+ cygwin*) gl_cv_func_vasnprintf_works="guessing no";;
+ # If we don't know, obey --enable-cross-guesses.
+ *) gl_cv_func_vasnprintf_works="$gl_cross_guess_normal";;
+ esac
+ ])
+ ])
+ fi
+ if test $ac_cv_func_vasnprintf != yes \
+ || case "$gl_cv_func_vasnprintf_works" in
+ *yes) false;;
+ *) true;;
+ esac
+ then
gl_REPLACE_VASNPRINTF
fi
])
@@ -41,7 +75,6 @@ AC_DEFUN([gl_FUNC_VASNWPRINTF],
# Prerequisites of lib/printf-args.h, lib/printf-args.c.
AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
[
- AC_REQUIRE([gt_TYPE_WCHAR_T])
AC_REQUIRE([gt_TYPE_WINT_T])
])
@@ -50,7 +83,6 @@ AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
[
AC_REQUIRE([gl_FEATURES_H])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
AC_REQUIRE([gt_TYPE_WINT_T])
AC_REQUIRE([AC_TYPE_SIZE_T])
AC_CHECK_TYPE([ptrdiff_t], ,
@@ -184,7 +216,6 @@ int main()
AC_DEFUN_ONCE([gl_PREREQ_VASNXPRINTF],
[
AC_REQUIRE([AC_FUNC_ALLOCA])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
AC_REQUIRE([gt_TYPE_WINT_T])
AC_CHECK_FUNCS([wcslen])
dnl Knowing DBL_EXPBIT0_WORD and DBL_EXPBIT0_BIT enables an optimization
@@ -326,15 +357,39 @@ AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_LC],
# Extra prerequisites of lib/vasnprintf.c for supporting the ' flag.
AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING],
[
+ AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
- case "$gl_cv_func_printf_flag_grouping" in
- *yes)
- ;;
- *)
+ AC_REQUIRE([gl_PRINTF_FLAG_GROUPING_INT_PRECISION])
+ AC_REQUIRE([gl_PRINTF_FLAG_GROUPING_MULTIBYTE])
+ case "$host_os" in
+ mingw* | windows*)
+ dnl MSVC does not support the ' flag at all.
+ dnl mingw does not support it, unless __USE_MINGW_ANSI_STDIO is defined.
+ dnl mingw also has other bugs regarding the ' flag.
AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], [1],
[Define if the vasnprintf implementation needs special code for the
' flag.])
;;
+ *)
+ case "$gl_cv_func_printf_flag_grouping,$gl_cv_func_printf_flag_grouping_multibyte" in
+ *yes,*yes)
+ case "$gl_cv_func_printf_flag_grouping_int_precision" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_FLAG_GROUPING_INT], [1],
+ [Define if the vasnprintf implementation needs special code for the
+ ' flag, for integer directives only.])
+ ;;
+ esac
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], [1],
+ [Define if the vasnprintf implementation needs special code for the
+ ' flag.])
+ ;;
+ esac
+ ;;
esac
])
diff --git a/gnulib-m4/visibility.m4 b/gnulib-m4/visibility.m4
index e091f028..c2cd38d0 100644
--- a/gnulib-m4/visibility.m4
+++ b/gnulib-m4/visibility.m4
@@ -1,8 +1,10 @@
-# visibility.m4 serial 9
-dnl Copyright (C) 2005, 2008, 2010-2024 Free Software Foundation, Inc.
+# visibility.m4
+# serial 9
+dnl Copyright (C) 2005, 2008, 2010-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
diff --git a/gnulib-m4/warn-on-use.m4 b/gnulib-m4/warn-on-use.m4
index eef3a848..73cf16fb 100644
--- a/gnulib-m4/warn-on-use.m4
+++ b/gnulib-m4/warn-on-use.m4
@@ -1,8 +1,10 @@
-# warn-on-use.m4 serial 11
-dnl Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# warn-on-use.m4
+# serial 11
+dnl Copyright (C) 2010-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 This file is offered as-is, without any warranty.
# gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES)
# ---------------------------------------
diff --git a/gnulib-m4/wchar_h.m4 b/gnulib-m4/wchar_h.m4
index 173f42a4..70e9e33d 100644
--- a/gnulib-m4/wchar_h.m4
+++ b/gnulib-m4/wchar_h.m4
@@ -1,13 +1,14 @@
-dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
-
-dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# wchar_h.m4
+# serial 66
+dnl Copyright (C) 2007-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 This file is offered as-is, without any warranty.
-dnl Written by Eric Blake.
+dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
-# wchar_h.m4 serial 63
+dnl Written by Eric Blake.
AC_DEFUN_ONCE([gl_WCHAR_H],
[
@@ -64,8 +65,8 @@ dnl Check whether <wchar.h> is usable at all.
AC_DEFUN([gl_WCHAR_H_INLINE_OK],
[
dnl Test whether <wchar.h> suffers due to the transition from '__inline' to
- dnl 'gnu_inline'. See <https://sourceware.org/bugzilla/show_bug.cgi?id=4022>
- dnl and <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>. In summary,
+ dnl 'gnu_inline'. See <https://sourceware.org/PR4022>
+ dnl and <https://gcc.gnu.org/PR42440>. In summary,
dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and
dnl the option -std=c99 or -std=gnu99, leads to a broken <wchar.h>.
AC_REQUIRE([AC_CANONICAL_HOST])
@@ -238,7 +239,7 @@ AC_DEFUN([gl_WCHAR_H_DEFAULTS],
HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK])
HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH])
HAVE_WCSFTIME=1; AC_SUBST([HAVE_WCSFTIME])
- HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB])
+ HAVE_WCTOB=1; AC_SUBST([HAVE_WCTOB])
HAVE_DECL_WCSDUP=1; AC_SUBST([HAVE_DECL_WCSDUP])
HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH])
REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T])
@@ -256,6 +257,7 @@ AC_DEFUN([gl_WCHAR_H_DEFAULTS],
REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH])
REPLACE_WCSFTIME=0; AC_SUBST([REPLACE_WCSFTIME])
REPLACE_WCSCMP=0; AC_SUBST([REPLACE_WCSCMP])
+ REPLACE_WCSNCAT=0; AC_SUBST([REPLACE_WCSNCAT])
REPLACE_WCSNCMP=0; AC_SUBST([REPLACE_WCSNCMP])
REPLACE_WCSSTR=0; AC_SUBST([REPLACE_WCSSTR])
REPLACE_WCSTOK=0; AC_SUBST([REPLACE_WCSTOK])
diff --git a/gnulib-m4/wchar_t.m4 b/gnulib-m4/wchar_t.m4
deleted file mode 100644
index 94353571..00000000
--- a/gnulib-m4/wchar_t.m4
+++ /dev/null
@@ -1,24 +0,0 @@
-# wchar_t.m4 serial 4 (gettext-0.18.2)
-dnl Copyright (C) 2002-2003, 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 From Bruno Haible.
-dnl Test whether <stddef.h> has the 'wchar_t' type.
-dnl Prerequisite: AC_PROG_CC
-
-AC_DEFUN([gt_TYPE_WCHAR_T],
-[
- AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <stddef.h>
- wchar_t foo = (wchar_t)'\0';]],
- [[]])],
- [gt_cv_c_wchar_t=yes],
- [gt_cv_c_wchar_t=no])])
- if test $gt_cv_c_wchar_t = yes; then
- AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.])
- fi
-])
diff --git a/gnulib-m4/wcrtomb.m4 b/gnulib-m4/wcrtomb.m4
index f00f6452..4d8dd19e 100644
--- a/gnulib-m4/wcrtomb.m4
+++ b/gnulib-m4/wcrtomb.m4
@@ -1,8 +1,10 @@
-# wcrtomb.m4 serial 19
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# wcrtomb.m4
+# serial 22
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_WCRTOMB],
[
@@ -31,11 +33,11 @@ AC_DEFUN([gl_FUNC_WCRTOMB],
dnl fi
if test $REPLACE_WCRTOMB = 0; then
dnl On Android 4.3, wcrtomb produces wrong characters in the C locale.
- dnl On AIX 4.3, OSF/1 5.1 and Solaris <= 11.3, wcrtomb (NULL, 0, NULL)
+ dnl On AIX 4.3 and Solaris <= 11.3, wcrtomb (NULL, 0, NULL)
dnl sometimes returns 0 instead of 1.
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([gt_LOCALE_FR])
- AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([gt_LOCALE_EN_UTF8])
AC_REQUIRE([gt_LOCALE_JA])
AC_REQUIRE([gt_LOCALE_ZH_CN])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
@@ -81,15 +83,15 @@ int main ()
dnl is present.
changequote(,)dnl
case "$host_os" in
- # Guess no on AIX 4, OSF/1, Solaris, native Windows.
- aix4* | osf* | solaris* | mingw* | windows*)
+ # Guess no on AIX 4, Solaris, native Windows.
+ aix4* | solaris* | mingw* | windows*)
gl_cv_func_wcrtomb_retval="guessing no" ;;
# Guess yes otherwise.
*)
gl_cv_func_wcrtomb_retval="guessing yes" ;;
esac
changequote([,])dnl
- if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
+ if test $LOCALE_FR != none || test "$LOCALE_EN_UTF8" != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <locale.h>
@@ -105,8 +107,8 @@ int main ()
if (wcrtomb (NULL, 0, NULL) != 1)
result |= 1;
}
- if (strcmp ("$LOCALE_FR_UTF8", "none") != 0
- && setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ if (strcmp ("$LOCALE_EN_UTF8", "none") != 0
+ && setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL)
{
if (wcrtomb (NULL, 0, NULL) != 1)
result |= 2;
diff --git a/gnulib-m4/wctob.m4 b/gnulib-m4/wctob.m4
index 323b1ede..6506b0da 100644
--- a/gnulib-m4/wctob.m4
+++ b/gnulib-m4/wctob.m4
@@ -1,8 +1,10 @@
-# wctob.m4 serial 14
-dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# wctob.m4
+# serial 15
+dnl Copyright (C) 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_WCTOB],
[
@@ -11,7 +13,6 @@ AC_DEFUN([gl_FUNC_WCTOB],
AC_CHECK_FUNCS_ONCE([wctob])
if test $ac_cv_func_wctob = no; then
HAVE_WCTOB=0
- HAVE_DECL_WCTOB=0
else
HAVE_WCTOB=1
@@ -90,16 +91,6 @@ int main ()
*yes) ;;
*) REPLACE_WCTOB=1 ;;
esac
- if test $REPLACE_WCTOB = 0; then
-
- dnl IRIX 6.5 has the wctob() function but does not declare it.
- AC_CHECK_DECLS([wctob], [], [], [[
- #include <wchar.h>
- ]])
- if test $ac_cv_have_decl_wctob != yes; then
- HAVE_DECL_WCTOB=0
- fi
- fi
fi
])
diff --git a/gnulib-m4/wctomb.m4 b/gnulib-m4/wctomb.m4
index d8f36527..f01a6898 100644
--- a/gnulib-m4/wctomb.m4
+++ b/gnulib-m4/wctomb.m4
@@ -1,8 +1,10 @@
-# wctomb.m4 serial 2
-dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# wctomb.m4
+# serial 2
+dnl Copyright (C) 2011-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_WCTOMB],
[
diff --git a/gnulib-m4/wctype_h.m4 b/gnulib-m4/wctype_h.m4
index c8993949..8e54678d 100644
--- a/gnulib-m4/wctype_h.m4
+++ b/gnulib-m4/wctype_h.m4
@@ -1,11 +1,13 @@
-# wctype_h.m4 serial 33
+# wctype_h.m4
+# serial 33
dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
-dnl Copyright (C) 2006-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-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 This file is offered as-is, without any warranty.
dnl Written by Paul Eggert.
diff --git a/gnulib-m4/wcwidth.m4 b/gnulib-m4/wcwidth.m4
index 53a26c7d..cb2cca97 100644
--- a/gnulib-m4/wcwidth.m4
+++ b/gnulib-m4/wcwidth.m4
@@ -1,8 +1,10 @@
-# wcwidth.m4 serial 36
-dnl Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# wcwidth.m4
+# serial 39
+dnl Copyright (C) 2006-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_FUNC_WCWIDTH],
[
@@ -12,7 +14,6 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
dnl Persuade glibc <wchar.h> to declare wcwidth().
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
AC_REQUIRE([gt_TYPE_WINT_T])
AC_CHECK_HEADERS_ONCE([wchar.h])
@@ -41,9 +42,9 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
if test $ac_cv_func_wcwidth = yes || test $gl_cv_func_wcwidth_macro = yes; then
HAVE_WCWIDTH=1
dnl On Mac OS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
- dnl On macOS 12.5, NetBSD 9.0, OpenBSD 5.0, MidnightBSD 1.1,
+ dnl On macOS 12.5, NetBSD 9.3, OpenBSD 5.0, MidnightBSD 1.1,
dnl wcwidth(0x05B0) (HEBREW POINT SHEVA) returns 1.
- dnl On macOS 12.5, NetBSD 9.0, MidnightBSD 1.1, OSF/1 5.1,
+ dnl On macOS 12.5, NetBSD 9.3, MidnightBSD 1.1,
dnl wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
dnl On OpenBSD 5.8, wcwidth(0xFF1A) (FULLWIDTH COLON) returns 0.
dnl This leads to bugs in 'ls' (coreutils).
diff --git a/gnulib-m4/windows-rc.m4 b/gnulib-m4/windows-rc.m4
new file mode 100644
index 00000000..7787bfa1
--- /dev/null
+++ b/gnulib-m4/windows-rc.m4
@@ -0,0 +1,21 @@
+# windows-rc.m4
+# serial 1
+dnl Copyright (C) 2024-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 This file is offered as-is, without any warranty.
+
+dnl Find the tool that "compiles" a Windows resource file (.rc) to an
+dnl object file.
+
+AC_DEFUN_ONCE([gl_WINDOWS_RC],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ case "$host_os" in
+ mingw* | windows*)
+ dnl Check for a program that compiles Windows resource files.
+ AC_CHECK_TOOL([WINDRES], [windres])
+ ;;
+ esac
+])
diff --git a/gnulib-m4/wint_t.m4 b/gnulib-m4/wint_t.m4
index 21350f56..8a3c7944 100644
--- a/gnulib-m4/wint_t.m4
+++ b/gnulib-m4/wint_t.m4
@@ -1,8 +1,10 @@
-# wint_t.m4 serial 11
-dnl Copyright (C) 2003, 2007-2024 Free Software Foundation, Inc.
+# wint_t.m4
+# serial 11
+dnl Copyright (C) 2003, 2007-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 This file is offered as-is, without any warranty.
dnl From Bruno Haible.
dnl Test whether <wchar.h> has the 'wint_t' type and whether gnulib's
diff --git a/gnulib-m4/xalloc.m4 b/gnulib-m4/xalloc.m4
index f60ea3d5..c10c4189 100644
--- a/gnulib-m4/xalloc.m4
+++ b/gnulib-m4/xalloc.m4
@@ -1,7 +1,9 @@
-# xalloc.m4 serial 18
-dnl Copyright (C) 2002-2006, 2009-2024 Free Software Foundation, Inc.
+# xalloc.m4
+# serial 18
+dnl Copyright (C) 2002-2006, 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.
+dnl This file is offered as-is, without any warranty.
AC_DEFUN([gl_XALLOC], [:])
diff --git a/gnulib-m4/xgetcwd.m4 b/gnulib-m4/xgetcwd.m4
new file mode 100644
index 00000000..c214e2cb
--- /dev/null
+++ b/gnulib-m4/xgetcwd.m4
@@ -0,0 +1,12 @@
+# xgetcwd.m4
+# serial 8
+dnl Copyright (C) 2002-2006, 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.
+dnl This file is offered as-is, without any warranty.
+
+AC_DEFUN([gl_XGETCWD],
+[
+ :
+])
diff --git a/gnulib-m4/xsize.m4 b/gnulib-m4/xsize.m4
index 6125f9c1..157d635c 100644
--- a/gnulib-m4/xsize.m4
+++ b/gnulib-m4/xsize.m4
@@ -1,8 +1,10 @@
-# xsize.m4 serial 5
-dnl Copyright (C) 2003-2004, 2008-2024 Free Software Foundation, Inc.
+# xsize.m4
+# serial 5
+dnl Copyright (C) 2003-2004, 2008-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_XSIZE],
[
diff --git a/gnulib-m4/yield.m4 b/gnulib-m4/yield.m4
index cbed8725..ce322046 100644
--- a/gnulib-m4/yield.m4
+++ b/gnulib-m4/yield.m4
@@ -1,8 +1,10 @@
-# yield.m4 serial 5
-dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
+# yield.m4
+# serial 5
+dnl Copyright (C) 2005-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 This file is offered as-is, without any warranty.
AC_DEFUN([gl_YIELD],
[
diff --git a/gnulib-m4/zzgnulib.m4 b/gnulib-m4/zzgnulib.m4
index eed5ecbf..343bda5c 100644
--- a/gnulib-m4/zzgnulib.m4
+++ b/gnulib-m4/zzgnulib.m4
@@ -1,8 +1,10 @@
-# zzgnulib.m4 serial 1
-dnl Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# zzgnulib.m4
+# serial 1
+dnl Copyright (C) 2020-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 This file is offered as-is, without any warranty.
dnl This file must be named something that sorts after all other
dnl package- or gnulib-provided .m4 files - at least for those packages