summaryrefslogtreecommitdiff
path: root/gnulib-m4
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2024-10-20 15:21:43 +0200
committerJörg Frings-Fürst <debian@jff.email>2024-10-20 15:21:43 +0200
commit4682deeb62247d34de87f8e777f99e2d337fd377 (patch)
tree5bd5b5605b5f3a4b3c8ea7468c34c23094afdef4 /gnulib-m4
parent00893e79fc62966067af1a106567db96bd170338 (diff)
New upstream version 1.3upstream/1.3upstream
Diffstat (limited to 'gnulib-m4')
-rw-r--r--gnulib-m4/00gnulib.m43
-rw-r--r--gnulib-m4/__inline.m45
-rw-r--r--gnulib-m4/absolute-header.m43
-rw-r--r--gnulib-m4/alloca.m43
-rw-r--r--gnulib-m4/arpa_inet_h.m47
-rw-r--r--gnulib-m4/assert_h.m43
-rw-r--r--gnulib-m4/btowc.m43
-rw-r--r--gnulib-m4/build-to-host.m4273
-rw-r--r--gnulib-m4/builtin-expect.m46
-rw-r--r--gnulib-m4/c-bool.m46
-rw-r--r--gnulib-m4/c32rtomb.m4152
-rw-r--r--gnulib-m4/calloc.m417
-rw-r--r--gnulib-m4/chdir-long.m430
-rw-r--r--gnulib-m4/close.m43
-rw-r--r--gnulib-m4/closedir.m432
-rw-r--r--gnulib-m4/codeset.m43
-rw-r--r--gnulib-m4/ctype_h.m43
-rw-r--r--gnulib-m4/d-ino.m459
-rw-r--r--gnulib-m4/dirent_h.m498
-rw-r--r--gnulib-m4/dirfd.m488
-rw-r--r--gnulib-m4/double-slash-root.m43
-rw-r--r--gnulib-m4/dup.m455
-rw-r--r--gnulib-m4/dup2.m43
-rw-r--r--gnulib-m4/eealloc.m43
-rw-r--r--gnulib-m4/environ.m43
-rw-r--r--gnulib-m4/errno_h.m411
-rw-r--r--gnulib-m4/error.m413
-rw-r--r--gnulib-m4/error_h.m418
-rw-r--r--gnulib-m4/exponentd.m43
-rw-r--r--gnulib-m4/exponentf.m43
-rw-r--r--gnulib-m4/exponentl.m43
-rw-r--r--gnulib-m4/extensions-aix.m425
-rw-r--r--gnulib-m4/extensions.m424
-rw-r--r--gnulib-m4/extern-inline.m46
-rw-r--r--gnulib-m4/fchdir.m477
-rw-r--r--gnulib-m4/fcntl-o.m43
-rw-r--r--gnulib-m4/fcntl.m45
-rw-r--r--gnulib-m4/fcntl_h.m44
-rw-r--r--gnulib-m4/fdopen.m43
-rw-r--r--gnulib-m4/fdopendir.m468
-rw-r--r--gnulib-m4/filenamecat.m417
-rw-r--r--gnulib-m4/flexmember.m411
-rw-r--r--gnulib-m4/float_h.m428
-rw-r--r--gnulib-m4/fpieee.m43
-rw-r--r--gnulib-m4/free.m411
-rw-r--r--gnulib-m4/frexp.m43
-rw-r--r--gnulib-m4/frexpl.m43
-rw-r--r--gnulib-m4/fseterr.m43
-rw-r--r--gnulib-m4/fstat.m43
-rw-r--r--gnulib-m4/fstatat.m466
-rw-r--r--gnulib-m4/ftruncate.m410
-rw-r--r--gnulib-m4/getcwd-abort-bug.m4148
-rw-r--r--gnulib-m4/getcwd-path-max.m4254
-rw-r--r--gnulib-m4/getcwd.m415
-rw-r--r--gnulib-m4/getdtablesize.m43
-rw-r--r--gnulib-m4/getpagesize.m449
-rw-r--r--gnulib-m4/getprogname.m414
-rw-r--r--gnulib-m4/gettimeofday.m410
-rw-r--r--gnulib-m4/gnulib-cache.m43
-rw-r--r--gnulib-m4/gnulib-common.m4356
-rw-r--r--gnulib-m4/gnulib-comp.m41032
-rw-r--r--gnulib-m4/host-cpu-c-abi.m45
-rw-r--r--gnulib-m4/iconv.m442
-rw-r--r--gnulib-m4/iconv_h.m43
-rw-r--r--gnulib-m4/iconv_open.m43
-rw-r--r--gnulib-m4/include_next.m43
-rw-r--r--gnulib-m4/inet_pton.m43
-rw-r--r--gnulib-m4/inline.m43
-rw-r--r--gnulib-m4/intl-thread-locale.m43
-rw-r--r--gnulib-m4/intlmacosx.m43
-rw-r--r--gnulib-m4/intmax_t.m43
-rw-r--r--gnulib-m4/inttypes.m43
-rw-r--r--gnulib-m4/inttypes_h.m43
-rw-r--r--gnulib-m4/ioctl.m43
-rw-r--r--gnulib-m4/isblank.m43
-rw-r--r--gnulib-m4/isnand.m45
-rw-r--r--gnulib-m4/isnanf.m43
-rw-r--r--gnulib-m4/isnanl.m43
-rw-r--r--gnulib-m4/iswblank.m43
-rw-r--r--gnulib-m4/iswdigit.m423
-rw-r--r--gnulib-m4/iswpunct.m43
-rw-r--r--gnulib-m4/iswxdigit.m421
-rw-r--r--gnulib-m4/langinfo_h.m43
-rw-r--r--gnulib-m4/largefile.m445
-rw-r--r--gnulib-m4/lcmessage.m43
-rw-r--r--gnulib-m4/ldexpl.m43
-rw-r--r--gnulib-m4/lib-ld.m43
-rw-r--r--gnulib-m4/lib-link.m43
-rw-r--r--gnulib-m4/lib-prefix.m45
-rw-r--r--gnulib-m4/libunistring-base.m49
-rw-r--r--gnulib-m4/limits-h.m46
-rw-r--r--gnulib-m4/localcharset.m43
-rw-r--r--gnulib-m4/locale-ar.m410
-rw-r--r--gnulib-m4/locale-en.m4137
-rw-r--r--gnulib-m4/locale-fr.m427
-rw-r--r--gnulib-m4/locale-ja.m410
-rw-r--r--gnulib-m4/locale-tr.m410
-rw-r--r--gnulib-m4/locale-zh.m422
-rw-r--r--gnulib-m4/locale_h.m43
-rw-r--r--gnulib-m4/localename.m43
-rw-r--r--gnulib-m4/lock.m43
-rw-r--r--gnulib-m4/lstat.m411
-rw-r--r--gnulib-m4/malloc.m48
-rw-r--r--gnulib-m4/malloca.m43
-rw-r--r--gnulib-m4/math_h.m453
-rw-r--r--gnulib-m4/mbchar.m43
-rw-r--r--gnulib-m4/mbiter.m43
-rw-r--r--gnulib-m4/mbrtoc32.m463
-rw-r--r--gnulib-m4/mbrtowc.m435
-rw-r--r--gnulib-m4/mbsinit.m43
-rw-r--r--gnulib-m4/mbstate_t.m43
-rw-r--r--gnulib-m4/mbtowc.m43
-rw-r--r--gnulib-m4/memchr.m45
-rw-r--r--gnulib-m4/mempcpy.m430
-rw-r--r--gnulib-m4/memrchr.m424
-rw-r--r--gnulib-m4/minmax.m43
-rw-r--r--gnulib-m4/mmap-anon.m43
-rw-r--r--gnulib-m4/mode_t.m43
-rw-r--r--gnulib-m4/msvc-inval.m43
-rw-r--r--gnulib-m4/msvc-nothrow.m43
-rw-r--r--gnulib-m4/multiarch.m43
-rw-r--r--gnulib-m4/musl.m43
-rw-r--r--gnulib-m4/nan-mips.m43
-rw-r--r--gnulib-m4/nanosleep.m412
-rw-r--r--gnulib-m4/netinet_in_h.m43
-rw-r--r--gnulib-m4/nocrash.m43
-rw-r--r--gnulib-m4/off64_t.m431
-rw-r--r--gnulib-m4/off_t.m43
-rw-r--r--gnulib-m4/once.m413
-rw-r--r--gnulib-m4/open-cloexec.m46
-rw-r--r--gnulib-m4/open-slash.m43
-rw-r--r--gnulib-m4/open.m43
-rw-r--r--gnulib-m4/openat.m439
-rw-r--r--gnulib-m4/opendir.m432
-rw-r--r--gnulib-m4/pathmax.m43
-rw-r--r--gnulib-m4/perror.m43
-rw-r--r--gnulib-m4/pipe.m43
-rw-r--r--gnulib-m4/printf-frexp.m43
-rw-r--r--gnulib-m4/printf-frexpl.m43
-rw-r--r--gnulib-m4/printf.m440
-rw-r--r--gnulib-m4/pselect.m43
-rw-r--r--gnulib-m4/pthread-cond.m437
-rw-r--r--gnulib-m4/pthread-mutex.m472
-rw-r--r--gnulib-m4/pthread-once.m436
-rw-r--r--gnulib-m4/pthread-rwlock.m4461
-rw-r--r--gnulib-m4/pthread-spin.m471
-rw-r--r--gnulib-m4/pthread-thread.m43
-rw-r--r--gnulib-m4/pthread_h.m413
-rw-r--r--gnulib-m4/pthread_mutex_timedlock.m448
-rw-r--r--gnulib-m4/pthread_rwlock_rdlock.m43
-rw-r--r--gnulib-m4/pthread_sigmask.m43
-rw-r--r--gnulib-m4/putenv.m45
-rw-r--r--gnulib-m4/raise.m43
-rw-r--r--gnulib-m4/random.m43
-rw-r--r--gnulib-m4/random_r.m41
-rw-r--r--gnulib-m4/readdir.m423
-rw-r--r--gnulib-m4/realloc.m48
-rw-r--r--gnulib-m4/reallocarray.m43
-rw-r--r--gnulib-m4/relocatable-lib.m47
-rw-r--r--gnulib-m4/rewinddir.m423
-rw-r--r--gnulib-m4/save-cwd.m412
-rw-r--r--gnulib-m4/sched_h.m413
-rw-r--r--gnulib-m4/sched_yield.m43
-rw-r--r--gnulib-m4/select.m43
-rw-r--r--gnulib-m4/semaphore.m43
-rw-r--r--gnulib-m4/setenv.m45
-rw-r--r--gnulib-m4/setlocale.m43
-rw-r--r--gnulib-m4/setlocale_null.m43
-rw-r--r--gnulib-m4/signal_h.m49
-rw-r--r--gnulib-m4/signalblocking.m43
-rw-r--r--gnulib-m4/signbit.m43
-rw-r--r--gnulib-m4/size_max.m43
-rw-r--r--gnulib-m4/sleep.m45
-rw-r--r--gnulib-m4/snan.m43
-rw-r--r--gnulib-m4/socketlib.m43
-rw-r--r--gnulib-m4/sockets.m43
-rw-r--r--gnulib-m4/socklen.m43
-rw-r--r--gnulib-m4/sockpfaf.m413
-rw-r--r--gnulib-m4/ssize_t.m43
-rw-r--r--gnulib-m4/stat-time.m414
-rw-r--r--gnulib-m4/stat.m411
-rw-r--r--gnulib-m4/stdalign.m48
-rw-r--r--gnulib-m4/stddef_h.m442
-rw-r--r--gnulib-m4/stdint.m43
-rw-r--r--gnulib-m4/stdint_h.m43
-rw-r--r--gnulib-m4/stdio_h.m415
-rw-r--r--gnulib-m4/stdlib_h.m421
-rw-r--r--gnulib-m4/stpcpy.m429
-rw-r--r--gnulib-m4/strdup.m433
-rw-r--r--gnulib-m4/strerror.m43
-rw-r--r--gnulib-m4/strerror_r.m43
-rw-r--r--gnulib-m4/string_h.m414
-rw-r--r--gnulib-m4/strncat.m45
-rw-r--r--gnulib-m4/strstr.m45
-rw-r--r--gnulib-m4/symlink.m45
-rw-r--r--gnulib-m4/sys_cdefs_h.m425
-rw-r--r--gnulib-m4/sys_ioctl_h.m43
-rw-r--r--gnulib-m4/sys_select_h.m43
-rw-r--r--gnulib-m4/sys_socket_h.m43
-rw-r--r--gnulib-m4/sys_stat_h.m43
-rw-r--r--gnulib-m4/sys_time_h.m411
-rw-r--r--gnulib-m4/sys_types_h.m46
-rw-r--r--gnulib-m4/sys_uio_h.m43
-rw-r--r--gnulib-m4/thread.m43
-rw-r--r--gnulib-m4/threadlib.m43
-rw-r--r--gnulib-m4/time.m412
-rw-r--r--gnulib-m4/time_h.m421
-rw-r--r--gnulib-m4/uchar_h.m43
-rw-r--r--gnulib-m4/unicase_h.m43
-rw-r--r--gnulib-m4/unictype_h.m44
-rw-r--r--gnulib-m4/unimetadata_h.m43
-rw-r--r--gnulib-m4/uninorm_h.m43
-rw-r--r--gnulib-m4/unistd-safer.m411
-rw-r--r--gnulib-m4/unistd_h.m44
-rw-r--r--gnulib-m4/usleep.m43
-rw-r--r--gnulib-m4/vasnprintf.m440
-rw-r--r--gnulib-m4/visibility.m43
-rw-r--r--gnulib-m4/warn-on-use.m43
-rw-r--r--gnulib-m4/wchar_h.m48
-rw-r--r--gnulib-m4/wchar_t.m424
-rw-r--r--gnulib-m4/wcrtomb.m411
-rw-r--r--gnulib-m4/wctob.m43
-rw-r--r--gnulib-m4/wctomb.m43
-rw-r--r--gnulib-m4/wctype_h.m43
-rw-r--r--gnulib-m4/wcwidth.m48
-rw-r--r--gnulib-m4/wint_t.m43
-rw-r--r--gnulib-m4/xalloc.m43
-rw-r--r--gnulib-m4/xgetcwd.m411
-rw-r--r--gnulib-m4/xsize.m43
-rw-r--r--gnulib-m4/yield.m43
-rw-r--r--gnulib-m4/zzgnulib.m43
231 files changed, 4638 insertions, 858 deletions
diff --git a/gnulib-m4/00gnulib.m4 b/gnulib-m4/00gnulib.m4
index 99c99d1b..cd167718 100644
--- a/gnulib-m4/00gnulib.m4
+++ b/gnulib-m4/00gnulib.m4
@@ -1,4 +1,5 @@
-# 00gnulib.m4 serial 9
+# 00gnulib.m4
+# serial 9
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,
diff --git a/gnulib-m4/__inline.m4 b/gnulib-m4/__inline.m4
index 992e16f4..20baf164 100644
--- a/gnulib-m4/__inline.m4
+++ b/gnulib-m4/__inline.m4
@@ -1,9 +1,12 @@
-# Test for __inline keyword
+# __inline.m4
+# serial 1
dnl Copyright 2017-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+# Test for __inline keyword
+
AC_DEFUN([gl___INLINE],
[
AC_CACHE_CHECK([whether the compiler supports the __inline keyword],
diff --git a/gnulib-m4/absolute-header.m4 b/gnulib-m4/absolute-header.m4
index 0e9f9ba7..0abd6d90 100644
--- a/gnulib-m4/absolute-header.m4
+++ b/gnulib-m4/absolute-header.m4
@@ -1,4 +1,5 @@
-# absolute-header.m4 serial 18
+# absolute-header.m4
+# serial 18
dnl Copyright (C) 2006-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,
diff --git a/gnulib-m4/alloca.m4 b/gnulib-m4/alloca.m4
index 90960215..dc78dc19 100644
--- a/gnulib-m4/alloca.m4
+++ b/gnulib-m4/alloca.m4
@@ -1,4 +1,5 @@
-# alloca.m4 serial 21
+# alloca.m4
+# serial 21
dnl Copyright (C) 2002-2004, 2006-2007, 2009-2024 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
diff --git a/gnulib-m4/arpa_inet_h.m4 b/gnulib-m4/arpa_inet_h.m4
index 754b38eb..dc0d5919 100644
--- a/gnulib-m4/arpa_inet_h.m4
+++ b/gnulib-m4/arpa_inet_h.m4
@@ -1,4 +1,5 @@
-# arpa_inet_h.m4 serial 17
+# arpa_inet_h.m4
+# serial 18
dnl Copyright (C) 2006, 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -67,8 +68,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..b90d0f19 100644
--- a/gnulib-m4/assert_h.m4
+++ b/gnulib-m4/assert_h.m4
@@ -1,4 +1,5 @@
-# assert-h.m4
+# assert_h.m4
+# serial 1
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/btowc.m4 b/gnulib-m4/btowc.m4
index 8bb55dc8..d9dd7036 100644
--- a/gnulib-m4/btowc.m4
+++ b/gnulib-m4/btowc.m4
@@ -1,4 +1,5 @@
-# btowc.m4 serial 14
+# btowc.m4
+# serial 14
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/build-to-host.m4 b/gnulib-m4/build-to-host.m4
new file mode 100644
index 00000000..c416bca3
--- /dev/null
+++ b/gnulib-m4/build-to-host.m4
@@ -0,0 +1,273 @@
+# build-to-host.m4
+# serial 5
+dnl Copyright (C) 2023-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 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..33f255e9 100644
--- a/gnulib-m4/builtin-expect.m4
+++ b/gnulib-m4/builtin-expect.m4
@@ -1,10 +1,12 @@
-dnl Check for __builtin_expect.
-
+# builtin-expect.m4
+# serial 2
dnl Copyright 2016-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Provide a GCC-compatible __builtin_expect macro in <config.h>.
+
dnl Written by Paul Eggert.
AC_DEFUN([gl___BUILTIN_EXPECT],
diff --git a/gnulib-m4/c-bool.m4 b/gnulib-m4/c-bool.m4
index 44fba3c0..0fb0de3b 100644
--- a/gnulib-m4/c-bool.m4
+++ b/gnulib-m4/c-bool.m4
@@ -1,10 +1,12 @@
-# Check for bool that conforms to C2023.
-
+# c-bool.m4
+# serial 1
dnl Copyright 2022-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.
+# Check for bool that conforms to C2023.
+
AC_DEFUN([gl_C_BOOL],
[
AC_CACHE_CHECK([for bool, true, false], [gl_cv_c_bool],
diff --git a/gnulib-m4/c32rtomb.m4 b/gnulib-m4/c32rtomb.m4
index 56faaa57..cf7ff69d 100644
--- a/gnulib-m4/c32rtomb.m4
+++ b/gnulib-m4/c32rtomb.m4
@@ -1,4 +1,5 @@
-# c32rtomb.m4 serial 7
+# c32rtomb.m4
+# serial 8
dnl Copyright (C) 2020-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -10,7 +11,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 +95,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 +145,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..c69ce414 100644
--- a/gnulib-m4/calloc.m4
+++ b/gnulib-m4/calloc.m4
@@ -1,9 +1,9 @@
-# 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 34
+dnl Copyright (C) 2004-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
# Written by Jim Meyering.
@@ -58,6 +58,11 @@ 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])
diff --git a/gnulib-m4/chdir-long.m4 b/gnulib-m4/chdir-long.m4
new file mode 100644
index 00000000..292c2c18
--- /dev/null
+++ b/gnulib-m4/chdir-long.m4
@@ -0,0 +1,30 @@
+# chdir-long.m4
+# serial 17
+dnl Copyright (C) 2004-2007, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Use Gnulib's robust chdir function.
+# It can handle arbitrarily long directory names, which means
+# that when it is given the name of an existing directory, it
+# never fails with ENAMETOOLONG.
+# Arrange to compile chdir-long.c only on systems that define PATH_MAX.
+
+# Written by Jim Meyering.
+
+AC_DEFUN([gl_FUNC_CHDIR_LONG],
+[
+ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+ AC_CACHE_CHECK([whether this system supports file names of any length],
+ [gl_cv_have_unlimited_file_name_length],
+ [AC_EGREP_CPP([have_arbitrary_file_name_length_limit],
+ gl_PATHMAX_SNIPPET[
+#ifdef PATH_MAX
+have_arbitrary_file_name_length_limit
+#endif],
+ [gl_cv_have_unlimited_file_name_length=no],
+ [gl_cv_have_unlimited_file_name_length=yes])])
+])
+
+AC_DEFUN([gl_PREREQ_CHDIR_LONG], [:])
diff --git a/gnulib-m4/close.m4 b/gnulib-m4/close.m4
index 6b6d3821..88c37fab 100644
--- a/gnulib-m4/close.m4
+++ b/gnulib-m4/close.m4
@@ -1,4 +1,5 @@
-# close.m4 serial 10
+# close.m4
+# serial 10
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/closedir.m4 b/gnulib-m4/closedir.m4
new file mode 100644
index 00000000..111baf5f
--- /dev/null
+++ b/gnulib-m4/closedir.m4
@@ -0,0 +1,32 @@
+# closedir.m4
+# serial 8
+dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_CLOSEDIR],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ AC_CHECK_FUNCS([closedir])
+ if test $ac_cv_func_closedir = no; then
+ HAVE_CLOSEDIR=0
+ else
+ dnl Replace closedir() on native Windows and OS/2 kLIBC,
+ dnl to support fdopendir().
+ AC_REQUIRE([gl_DIRENT_DIR])
+ if test $DIR_HAS_FD_MEMBER = 0; then
+ REPLACE_CLOSEDIR=1
+ fi
+ dnl Replace closedir() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_CLOSEDIR=1
+ fi
+ ])
+ fi
+])
diff --git a/gnulib-m4/codeset.m4 b/gnulib-m4/codeset.m4
index 94dccce7..e69b7402 100644
--- a/gnulib-m4/codeset.m4
+++ b/gnulib-m4/codeset.m4
@@ -1,4 +1,5 @@
-# codeset.m4 serial 5 (gettext-0.18.2)
+# codeset.m4
+# serial 5 (gettext-0.18.2)
dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2024 Free Software
dnl Foundation, Inc.
dnl This file is free software; the Free Software Foundation
diff --git a/gnulib-m4/ctype_h.m4 b/gnulib-m4/ctype_h.m4
index ef0ee7f2..79085e40 100644
--- a/gnulib-m4/ctype_h.m4
+++ b/gnulib-m4/ctype_h.m4
@@ -1,4 +1,5 @@
-# ctype_h.m4 serial 9
+# ctype_h.m4
+# serial 9
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,
diff --git a/gnulib-m4/d-ino.m4 b/gnulib-m4/d-ino.m4
new file mode 100644
index 00000000..40399372
--- /dev/null
+++ b/gnulib-m4/d-ino.m4
@@ -0,0 +1,59 @@
+# d-ino.m4
+# serial 22
+dnl Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Jim Meyering.
+dnl
+dnl Check whether struct dirent has a member named d_ino.
+
+AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO],
+ [AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([for d_ino member in directory struct],
+ [gl_cv_struct_dirent_d_ino],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>
+ #include <sys/stat.h>
+ #include <dirent.h>
+ ]],
+ [[DIR *dp = opendir (".");
+ struct dirent *e;
+ struct stat st;
+ if (! dp)
+ return 1;
+ e = readdir (dp);
+ if (! e)
+ { closedir (dp); return 2; }
+ if (lstat (e->d_name, &st) != 0)
+ { closedir (dp); return 3; }
+ if (e->d_ino != st.st_ino)
+ { closedir (dp); return 4; }
+ closedir (dp);
+ return 0;
+ ]])],
+ [gl_cv_struct_dirent_d_ino=yes],
+ [gl_cv_struct_dirent_d_ino=no],
+ [case "$host_os" in
+ # Guess yes on glibc systems with Linux kernel.
+ linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
+ # Guess yes on musl systems with Linux kernel.
+ linux*-musl*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
+ # Guess yes on systems that emulate the Linux system calls.
+ midipix*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw* | windows*) gl_cv_struct_dirent_d_ino="guessing no" ;;
+ # If we don't know, obey --enable-cross-guesses.
+ *) gl_cv_struct_dirent_d_ino="$gl_cross_guess_normal" ;;
+ esac
+ ])])
+ case "$gl_cv_struct_dirent_d_ino" in
+ *yes)
+ AC_DEFINE([D_INO_IN_DIRENT], [1],
+ [Define if struct dirent has a member d_ino that actually works.])
+ ;;
+ esac
+ ]
+)
diff --git a/gnulib-m4/dirent_h.m4 b/gnulib-m4/dirent_h.m4
new file mode 100644
index 00000000..037ae369
--- /dev/null
+++ b/gnulib-m4/dirent_h.m4
@@ -0,0 +1,98 @@
+# dirent_h.m4
+# serial 22
+dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Written by Bruno Haible.
+
+AC_DEFUN_ONCE([gl_DIRENT_H],
+[
+ dnl Ensure to expand the default settings once only, before all statements
+ dnl that occur in other macros.
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ dnl <dirent.h> is always overridden, because of GNULIB_POSIXCHECK.
+ gl_CHECK_NEXT_HEADERS([dirent.h])
+ if test $ac_cv_header_dirent_h = yes; then
+ HAVE_DIRENT_H=1
+ else
+ HAVE_DIRENT_H=0
+ fi
+ AC_SUBST([HAVE_DIRENT_H])
+
+ gl_DIRENT_DIR
+
+ 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 <dirent.h>
+ ]], [alphasort closedir dirfd fdopendir opendir readdir rewinddir scandir])
+])
+
+dnl Determine whether <dirent.h> needs to override the DIR type.
+AC_DEFUN_ONCE([gl_DIRENT_DIR],
+[
+ dnl Set DIR_HAS_FD_MEMBER if dirfd() works, i.e. not always returns -1.
+ dnl We could use the findings from gl_FUNC_DIRFD and gl_PREREQ_DIRFD, but
+ dnl it's simpler since we know the affected platforms.
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ case "$host_os" in
+ mingw* | windows* | os2*) DIR_HAS_FD_MEMBER=0 ;;
+ *) DIR_HAS_FD_MEMBER=1 ;;
+ esac
+ AC_SUBST([DIR_HAS_FD_MEMBER])
+])
+
+# gl_DIRENT_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_DIRENT_MODULE_INDICATOR],
+[
+ dnl Ensure to expand the default settings once only.
+ gl_DIRENT_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_DIRENT_H_REQUIRE_DEFAULTS],
+[
+ m4_defun(GL_MODULE_INDICATOR_PREFIX[_DIRENT_H_MODULE_INDICATOR_DEFAULTS], [
+ gl_UNISTD_H_REQUIRE_DEFAULTS dnl for REPLACE_FCHDIR
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENDIR])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READDIR])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REWINDDIR])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CLOSEDIR])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DIRFD])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDOPENDIR])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SCANDIR])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALPHASORT])
+ ])
+ m4_require(GL_MODULE_INDICATOR_PREFIX[_DIRENT_H_MODULE_INDICATOR_DEFAULTS])
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+])
+
+AC_DEFUN([gl_DIRENT_H_DEFAULTS],
+[
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_OPENDIR=1; AC_SUBST([HAVE_OPENDIR])
+ HAVE_READDIR=1; AC_SUBST([HAVE_READDIR])
+ HAVE_REWINDDIR=1; AC_SUBST([HAVE_REWINDDIR])
+ HAVE_CLOSEDIR=1; AC_SUBST([HAVE_CLOSEDIR])
+ HAVE_DECL_DIRFD=1; AC_SUBST([HAVE_DECL_DIRFD])
+ HAVE_DECL_FDOPENDIR=1;AC_SUBST([HAVE_DECL_FDOPENDIR])
+ HAVE_FDOPENDIR=1; AC_SUBST([HAVE_FDOPENDIR])
+ HAVE_SCANDIR=1; AC_SUBST([HAVE_SCANDIR])
+ HAVE_ALPHASORT=1; AC_SUBST([HAVE_ALPHASORT])
+ REPLACE_OPENDIR=0; AC_SUBST([REPLACE_OPENDIR])
+ REPLACE_READDIR=0; AC_SUBST([REPLACE_READDIR])
+ REPLACE_REWINDDIR=0; AC_SUBST([REPLACE_REWINDDIR])
+ REPLACE_CLOSEDIR=0; AC_SUBST([REPLACE_CLOSEDIR])
+ REPLACE_DIRFD=0; AC_SUBST([REPLACE_DIRFD])
+ REPLACE_FDOPENDIR=0; AC_SUBST([REPLACE_FDOPENDIR])
+])
diff --git a/gnulib-m4/dirfd.m4 b/gnulib-m4/dirfd.m4
new file mode 100644
index 00000000..605cb706
--- /dev/null
+++ b/gnulib-m4/dirfd.m4
@@ -0,0 +1,88 @@
+# dirfd.m4
+# serial 30 -*- Autoconf -*-
+dnl Copyright (C) 2001-2006, 2008-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Find out how to get the file descriptor associated with an open DIR*.
+
+dnl From Jim Meyering
+
+AC_DEFUN([gl_FUNC_DIRFD],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ dnl Persuade glibc <dirent.h> to declare dirfd().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_FUNCS([dirfd])
+ AC_CHECK_DECLS([dirfd], , ,
+ [[#include <sys/types.h>
+ #include <dirent.h>]])
+ if test $ac_cv_have_decl_dirfd = no; then
+ HAVE_DECL_DIRFD=0
+ fi
+
+ AC_CACHE_CHECK([whether dirfd is a macro],
+ [gl_cv_func_dirfd_macro],
+ [AC_EGREP_CPP([dirent_header_defines_dirfd], [
+#include <sys/types.h>
+#include <dirent.h>
+#ifdef dirfd
+ dirent_header_defines_dirfd
+#endif],
+ [gl_cv_func_dirfd_macro=yes],
+ [gl_cv_func_dirfd_macro=no])])
+
+ if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+ HAVE_DIRFD=0
+ else
+ HAVE_DIRFD=1
+ dnl Replace dirfd() on native Windows and OS/2 kLIBC,
+ dnl to support fdopendir().
+ AC_REQUIRE([gl_DIRENT_DIR])
+ if test $DIR_HAS_FD_MEMBER = 0; then
+ REPLACE_DIRFD=1
+ fi
+ fi
+])
+
+dnl Prerequisites of lib/dirfd.c.
+AC_DEFUN([gl_PREREQ_DIRFD],
+[
+ AC_CACHE_CHECK([how to get the file descriptor associated with an open DIR*],
+ [gl_cv_sys_dir_fd_member_name],
+ [
+ gl_saved_CFLAGS=$CFLAGS
+ for ac_expr in d_fd dd_fd; do
+
+ CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <sys/types.h>
+ #include <dirent.h>]],
+ [[DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;]])],
+ [dir_fd_found=yes]
+ )
+ CFLAGS=$gl_saved_CFLAGS
+ test "$dir_fd_found" = yes && break
+ done
+ test "$dir_fd_found" = yes || ac_expr=no_such_member
+
+ gl_cv_sys_dir_fd_member_name=$ac_expr
+ ]
+ )
+ if test $gl_cv_sys_dir_fd_member_name != no_such_member; then
+ AC_DEFINE_UNQUOTED([DIR_FD_MEMBER_NAME],
+ [$gl_cv_sys_dir_fd_member_name],
+ [the name of the file descriptor member of DIR])
+ fi
+ AH_VERBATIM([DIR_TO_FD],
+ [#ifdef DIR_FD_MEMBER_NAME
+# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME)
+#else
+# define DIR_TO_FD(Dir_p) -1
+#endif
+])
+])
diff --git a/gnulib-m4/double-slash-root.m4 b/gnulib-m4/double-slash-root.m4
index 00f23a70..3437c699 100644
--- a/gnulib-m4/double-slash-root.m4
+++ b/gnulib-m4/double-slash-root.m4
@@ -1,4 +1,5 @@
-# double-slash-root.m4 serial 4 -*- Autoconf -*-
+# double-slash-root.m4
+# serial 4 -*- Autoconf -*-
dnl Copyright (C) 2006, 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/dup.m4 b/gnulib-m4/dup.m4
new file mode 100644
index 00000000..b3d74d68
--- /dev/null
+++ b/gnulib-m4/dup.m4
@@ -0,0 +1,55 @@
+# dup.m4
+# serial 8
+dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_DUP],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ m4_ifdef([gl_MSVC_INVAL], [
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_DUP=1
+ fi
+ ])
+ dnl Replace dup() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_DUP=1
+ fi
+ ])
+ AC_CACHE_CHECK([whether dup works], [gl_cv_func_dup_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[#include <unistd.h>
+ #include <fcntl.h>
+ #include <errno.h>
+ ]GL_MDA_DEFINES],
+ [[/* On OS/2 kLIBC, dup does not work on a directory fd. */
+ int fd = open (".", O_RDONLY);
+ return fd < 0 ? 1 : dup (fd) < 0 ? 2 : 0;
+ ]])
+ ],
+ [gl_cv_func_dup_works=yes],
+ [gl_cv_func_dup_works=no],
+ [case "$host_os" in
+ # Guess no on native Windows.
+ mingw* | windows*) gl_cv_func_dup_works="guessing no" ;;
+ *) gl_cv_func_dup_works="guessing yes" ;;
+ esac
+ ])
+ ])
+ case "$gl_cv_func_dup_works" in
+ *yes) ;;
+ *)
+ REPLACE_DUP=1
+ ;;
+ esac
+])
+
+# Prerequisites of lib/dup.c.
+AC_DEFUN([gl_PREREQ_DUP], [:])
diff --git a/gnulib-m4/dup2.m4 b/gnulib-m4/dup2.m4
index f6759b64..786121fd 100644
--- a/gnulib-m4/dup2.m4
+++ b/gnulib-m4/dup2.m4
@@ -1,4 +1,5 @@
-#serial 28
+# dup2.m4
+# serial 28
dnl Copyright (C) 2002, 2005, 2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/eealloc.m4 b/gnulib-m4/eealloc.m4
index d8862a1e..8a15e705 100644
--- a/gnulib-m4/eealloc.m4
+++ b/gnulib-m4/eealloc.m4
@@ -1,4 +1,5 @@
-# eealloc.m4 serial 3
+# 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,
diff --git a/gnulib-m4/environ.m4 b/gnulib-m4/environ.m4
index 5b9e06b0..107960b2 100644
--- a/gnulib-m4/environ.m4
+++ b/gnulib-m4/environ.m4
@@ -1,4 +1,5 @@
-# environ.m4 serial 8
+# environ.m4
+# serial 8
dnl Copyright (C) 2001-2004, 2006-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,
diff --git a/gnulib-m4/errno_h.m4 b/gnulib-m4/errno_h.m4
index 8900d6c7..920ea6cc 100644
--- a/gnulib-m4/errno_h.m4
+++ b/gnulib-m4/errno_h.m4
@@ -1,4 +1,5 @@
-# errno_h.m4 serial 14
+# errno_h.m4
+# serial 18
dnl Copyright (C) 2004, 2006, 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -9,6 +10,11 @@ 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 +69,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])
diff --git a/gnulib-m4/error.m4 b/gnulib-m4/error.m4
index 5688afcf..273b636b 100644
--- a/gnulib-m4/error.m4
+++ b/gnulib-m4/error.m4
@@ -1,10 +1,9 @@
-#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-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_ERROR],
[
diff --git a/gnulib-m4/error_h.m4 b/gnulib-m4/error_h.m4
index 006770c4..91a8fc68 100644
--- a/gnulib-m4/error_h.m4
+++ b/gnulib-m4/error_h.m4
@@ -1,4 +1,5 @@
-# error_h.m4 serial 4
+# error_h.m4
+# serial 5
dnl Copyright (C) 1996-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -110,12 +111,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..db597afc 100644
--- a/gnulib-m4/exponentd.m4
+++ b/gnulib-m4/exponentd.m4
@@ -1,4 +1,5 @@
-# exponentd.m4 serial 4
+# exponentd.m4
+# serial 4
dnl Copyright (C) 2007-2008, 2010-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/exponentf.m4 b/gnulib-m4/exponentf.m4
index a46eee29..55d875d4 100644
--- a/gnulib-m4/exponentf.m4
+++ b/gnulib-m4/exponentf.m4
@@ -1,4 +1,5 @@
-# exponentf.m4 serial 3
+# exponentf.m4
+# serial 3
dnl Copyright (C) 2007-2008, 2010-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/exponentl.m4 b/gnulib-m4/exponentl.m4
index 06c8ae3f..eb7fcb44 100644
--- a/gnulib-m4/exponentl.m4
+++ b/gnulib-m4/exponentl.m4
@@ -1,4 +1,5 @@
-# exponentl.m4 serial 7
+# exponentl.m4
+# serial 7
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/extensions-aix.m4 b/gnulib-m4/extensions-aix.m4
new file mode 100644
index 00000000..990a7ac3
--- /dev/null
+++ b/gnulib-m4/extensions-aix.m4
@@ -0,0 +1,25 @@
+# extensions-aix.m4
+# serial 1
+dnl Copyright (C) 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.
+
+# 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..1fb68956 100644
--- a/gnulib-m4/extensions.m4
+++ b/gnulib-m4/extensions.m4
@@ -1,10 +1,11 @@
-# serial 23 -*- Autoconf -*-
-# Enable extensions on systems that normally disable them.
+# extensions.m4
+# serial 25 -*- Autoconf -*-
+dnl Copyright (C) 2003, 2006-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.
-# 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 +230,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..547da82a 100644
--- a/gnulib-m4/extern-inline.m4
+++ b/gnulib-m4/extern-inline.m4
@@ -1,10 +1,12 @@
-dnl 'extern inline' a la ISO C99.
-
+# extern-inline.m4
+# serial 1
dnl Copyright 2012-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 'extern inline' a la ISO C99.
+
AC_DEFUN([gl_EXTERN_INLINE],
[
AC_CACHE_CHECK([whether ctype.h defines __header_inline],
diff --git a/gnulib-m4/fchdir.m4 b/gnulib-m4/fchdir.m4
new file mode 100644
index 00000000..7eb12c2e
--- /dev/null
+++ b/gnulib-m4/fchdir.m4
@@ -0,0 +1,77 @@
+# fchdir.m4
+# serial 32
+dnl Copyright (C) 2006-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_FUNC_FCHDIR],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ AC_CHECK_DECLS_ONCE([fchdir])
+ if test $ac_cv_have_decl_fchdir = no; then
+ HAVE_DECL_FCHDIR=0
+ fi
+
+ AC_REQUIRE([gl_TEST_FCHDIR])
+ if test $HAVE_FCHDIR = 1; then
+ AC_REQUIRE([gl_DIRENT_DIR])
+ if test $DIR_HAS_FD_MEMBER = 0; then
+ dnl fchdir() should be replaced if dirfd() does not work.
+ REPLACE_FCHDIR=1
+ fi
+ fi
+
+ if test $HAVE_FCHDIR = 0 || test $REPLACE_FCHDIR = 1; then
+ AC_DEFINE([REPLACE_FCHDIR], [1],
+ [Define to 1 if gnulib's fchdir() replacement is used.])
+ dnl We must also replace anything that can manipulate a directory fd,
+ dnl to keep our bookkeeping up-to-date. We don't have to replace
+ dnl fstatat, since no platform has fstatat but lacks fchdir.
+ AC_CACHE_CHECK([whether open can visit directories],
+ [gl_cv_func_open_directory_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <fcntl.h>
+ ]GL_MDA_DEFINES],
+ [[return open(".", O_RDONLY) < 0;]])],
+ [gl_cv_func_open_directory_works=yes],
+ [gl_cv_func_open_directory_works=no],
+ [case "$host_os" in
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_open_directory_works="guessing yes" ;;
+ # Guess yes on systems that emulate the Linux system calls.
+ midipix*) gl_cv_func_open_directory_works="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_open_directory_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw* | windows*) gl_cv_func_open_directory_works="guessing no" ;;
+ # If we don't know, obey --enable-cross-guesses.
+ *) gl_cv_func_open_directory_works="$gl_cross_guess_normal" ;;
+ esac
+ ])])
+ case "$gl_cv_func_open_directory_works" in
+ *yes) ;;
+ *)
+ AC_DEFINE([REPLACE_OPEN_DIRECTORY], [1], [Define to 1 if open() should
+work around the inability to open a directory.])
+ ;;
+ esac
+ fi
+])
+
+# Determine whether to use the overrides in lib/fchdir.c.
+AC_DEFUN([gl_TEST_FCHDIR],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([fchdir])
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+])
+
+# Prerequisites of lib/fchdir.c.
+AC_DEFUN([gl_PREREQ_FCHDIR], [:])
diff --git a/gnulib-m4/fcntl-o.m4 b/gnulib-m4/fcntl-o.m4
index 49ab34d8..43aa1325 100644
--- a/gnulib-m4/fcntl-o.m4
+++ b/gnulib-m4/fcntl-o.m4
@@ -1,4 +1,5 @@
-# fcntl-o.m4 serial 8
+# fcntl-o.m4
+# serial 8
dnl Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/fcntl.m4 b/gnulib-m4/fcntl.m4
index 02b93f83..f6d0f377 100644
--- a/gnulib-m4/fcntl.m4
+++ b/gnulib-m4/fcntl.m4
@@ -1,4 +1,5 @@
-# fcntl.m4 serial 11
+# fcntl.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,
@@ -82,7 +83,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..b69f7a0c 100644
--- a/gnulib-m4/fcntl_h.m4
+++ b/gnulib-m4/fcntl_h.m4
@@ -1,10 +1,12 @@
+# fcntl_h.m4
# serial 20
-# Configure fcntl.h.
dnl Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+# Configure fcntl.h.
+
dnl Written by Paul Eggert.
AC_DEFUN_ONCE([gl_FCNTL_H],
diff --git a/gnulib-m4/fdopen.m4 b/gnulib-m4/fdopen.m4
index 5b94047e..aae447d3 100644
--- a/gnulib-m4/fdopen.m4
+++ b/gnulib-m4/fdopen.m4
@@ -1,4 +1,5 @@
-# fdopen.m4 serial 6
+# fdopen.m4
+# serial 6
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/fdopendir.m4 b/gnulib-m4/fdopendir.m4
new file mode 100644
index 00000000..e9268378
--- /dev/null
+++ b/gnulib-m4/fdopendir.m4
@@ -0,0 +1,68 @@
+# fdopendir.m4
+# serial 15
+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.
+
+# See if we need to provide fdopendir.
+
+# Written by Eric Blake.
+
+AC_DEFUN([gl_FUNC_FDOPENDIR],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ dnl FreeBSD 7.3 has the function, but failed to declare it.
+ AC_CHECK_DECLS([fdopendir], [], [HAVE_DECL_FDOPENDIR=0], [[
+#include <dirent.h>
+ ]])
+ AC_CHECK_FUNCS_ONCE([fdopendir])
+ if test $ac_cv_func_fdopendir = no; then
+ HAVE_FDOPENDIR=0
+ else
+ AC_CACHE_CHECK([whether fdopendir works],
+ [gl_cv_func_fdopendir_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+#include <dirent.h>
+#include <fcntl.h>
+#include <unistd.h>
+]GL_MDA_DEFINES[
+#if !HAVE_DECL_FDOPENDIR
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
+#endif
+]],
+ [[int result = 0;
+ int fd = open ("conftest.c", O_RDONLY);
+ if (fd < 0) result |= 1;
+ if (fdopendir (fd)) result |= 2;
+ if (close (fd)) result |= 4;
+ return result;
+ ]])],
+ [gl_cv_func_fdopendir_works=yes],
+ [gl_cv_func_fdopendir_works=no],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;;
+ # Guess yes on musl systems.
+ *-musl* | midipix*) gl_cv_func_fdopendir_works="guessing yes" ;;
+ # If we don't know, obey --enable-cross-guesses.
+ *) gl_cv_func_fdopendir_works="$gl_cross_guess_normal" ;;
+ esac
+ ])])
+ case "$gl_cv_func_fdopendir_works" in
+ *yes) ;;
+ *)
+ REPLACE_FDOPENDIR=1
+ ;;
+ esac
+ fi
+])
diff --git a/gnulib-m4/filenamecat.m4 b/gnulib-m4/filenamecat.m4
new file mode 100644
index 00000000..ded32771
--- /dev/null
+++ b/gnulib-m4/filenamecat.m4
@@ -0,0 +1,17 @@
+# filenamecat.m4
+# serial 12
+dnl Copyright (C) 2002-2006, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FILE_NAME_CONCAT],
+[
+ AC_REQUIRE([gl_FILE_NAME_CONCAT_LGPL])
+])
+
+AC_DEFUN([gl_FILE_NAME_CONCAT_LGPL],
+[
+ dnl Prerequisites of lib/filenamecat-lgpl.c.
+ gl_CHECK_FUNCS_ANDROID([mempcpy], [[#include <string.h>]])
+])
diff --git a/gnulib-m4/flexmember.m4 b/gnulib-m4/flexmember.m4
index 9df6c03c..73fb6142 100644
--- a/gnulib-m4/flexmember.m4
+++ b/gnulib-m4/flexmember.m4
@@ -1,10 +1,11 @@
+# flexmember.m4
# serial 5
-# Check for flexible array member support.
+dnl Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
-# 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..12c0eb67 100644
--- a/gnulib-m4/float_h.m4
+++ b/gnulib-m4/float_h.m4
@@ -1,4 +1,5 @@
-# float_h.m4 serial 14
+# float_h.m4
+# serial 15
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -53,6 +54,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..086d51dd 100644
--- a/gnulib-m4/fpieee.m4
+++ b/gnulib-m4/fpieee.m4
@@ -1,4 +1,5 @@
-# fpieee.m4 serial 2 -*- coding: utf-8 -*-
+# fpieee.m4
+# serial 2
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/free.m4 b/gnulib-m4/free.m4
index 4f6dc2e2..a2b596d6 100644
--- a/gnulib-m4/free.m4
+++ b/gnulib-m4/free.m4
@@ -1,8 +1,9 @@
-# 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-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.
# Written by Paul Eggert and Bruno Haible.
diff --git a/gnulib-m4/frexp.m4 b/gnulib-m4/frexp.m4
index 54cbb6d5..6eea5f92 100644
--- a/gnulib-m4/frexp.m4
+++ b/gnulib-m4/frexp.m4
@@ -1,4 +1,5 @@
-# frexp.m4 serial 20
+# frexp.m4
+# serial 20
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/frexpl.m4 b/gnulib-m4/frexpl.m4
index c434dea7..ddc49918 100644
--- a/gnulib-m4/frexpl.m4
+++ b/gnulib-m4/frexpl.m4
@@ -1,4 +1,5 @@
-# frexpl.m4 serial 24
+# frexpl.m4
+# serial 24
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/fseterr.m4 b/gnulib-m4/fseterr.m4
index b43ddc5a..9cdd385e 100644
--- a/gnulib-m4/fseterr.m4
+++ b/gnulib-m4/fseterr.m4
@@ -1,4 +1,5 @@
-# fseterr.m4 serial 2
+# fseterr.m4
+# serial 2
dnl Copyright (C) 2012-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,
diff --git a/gnulib-m4/fstat.m4 b/gnulib-m4/fstat.m4
index 5e73b4ed..47777b0c 100644
--- a/gnulib-m4/fstat.m4
+++ b/gnulib-m4/fstat.m4
@@ -1,4 +1,5 @@
-# fstat.m4 serial 10
+# fstat.m4
+# serial 10
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/fstatat.m4 b/gnulib-m4/fstatat.m4
new file mode 100644
index 00000000..c5ef7dfb
--- /dev/null
+++ b/gnulib-m4/fstatat.m4
@@ -0,0 +1,66 @@
+# fstatat.m4
+# serial 5
+dnl Copyright (C) 2004-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Written by Jim Meyering.
+
+# If we have the fstatat function, and it has the bug (in AIX 7.1)
+# that it does not fill in st_size correctly, use the replacement function.
+AC_DEFUN([gl_FUNC_FSTATAT],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CHECK_FUNCS_ONCE([fstatat])
+
+ if test $ac_cv_func_fstatat = no; then
+ HAVE_FSTATAT=0
+ else
+ dnl Test for an AIX 7.1 bug; see
+ dnl <https://lists.gnu.org/r/bug-tar/2011-09/msg00015.html>.
+ AC_CACHE_CHECK([whether fstatat (..., 0) works],
+ [gl_cv_func_fstatat_zero_flag],
+ [AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ int
+ main (void)
+ {
+ struct stat a;
+ return fstatat (AT_FDCWD, ".", &a, 0) != 0;
+ }
+ ]])],
+ [gl_cv_func_fstatat_zero_flag=yes],
+ [gl_cv_func_fstatat_zero_flag=no],
+ [case "$host_os" in
+ aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+ *) gl_cv_func_fstatat_zero_flag="guessing yes";;
+ esac
+ ])
+ ])
+
+ case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ *yes+*yes) ;;
+ *) REPLACE_FSTATAT=1 ;;
+ esac
+
+ case $host_os in
+ darwin* | solaris*)
+ REPLACE_FSTATAT=1 ;;
+ esac
+
+ case $REPLACE_FSTATAT,$gl_cv_func_fstatat_zero_flag in
+ 1,*yes)
+ AC_DEFINE([HAVE_WORKING_FSTATAT_ZERO_FLAG], [1],
+ [Define to 1 if fstatat (..., 0) works.
+ For example, it does not work in AIX 7.1.])
+ ;;
+ esac
+ fi
+])
diff --git a/gnulib-m4/ftruncate.m4 b/gnulib-m4/ftruncate.m4
index f547a95d..0ecc0b3e 100644
--- a/gnulib-m4/ftruncate.m4
+++ b/gnulib-m4/ftruncate.m4
@@ -1,12 +1,12 @@
+# ftruncate.m4
# serial 24
+dnl Copyright (C) 2000-2001, 2003-2007, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
# 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-abort-bug.m4 b/gnulib-m4/getcwd-abort-bug.m4
new file mode 100644
index 00000000..0fce7922
--- /dev/null
+++ b/gnulib-m4/getcwd-abort-bug.m4
@@ -0,0 +1,148 @@
+# getcwd-abort-bug.m4
+# serial 18
+dnl Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Determine whether getcwd aborts when the length of the working directory
+# name is unusually large. Any length between 4k and 16k trigger the bug
+# when using glibc-2.4.90-9 or older.
+
+# From Jim Meyering
+
+# gl_FUNC_GETCWD_ABORT_BUG([ACTION-IF-BUGGY[, ACTION-IF-WORKS]])
+AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_DECLS_ONCE([getcwd])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+
+ AC_CACHE_CHECK([whether getcwd succeeds when 4k < cwd_length < 16k],
+ [gl_cv_func_getcwd_succeeds_beyond_4k],
+ [# Remove any remnants of a previous test.
+ rm -rf confdir-14B---
+ # Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir-14B---"
+ dnl Please keep this in sync with tests/test-getcwd.c.
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <direct.h>
+#endif
+#include <string.h>
+#include <sys/stat.h>
+
+]gl_PATHMAX_SNIPPET[
+]GL_MDA_DEFINES[
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
+ the 16kB pagesize on ia64 linux. Those conditions make the code below
+ trigger a bug in glibc's getcwd implementation before 2.4.90-10. */
+#define TARGET_LEN (5 * 1024)
+
+int
+main ()
+{
+ char *cwd;
+ size_t initial_cwd_len;
+ int fail = 0;
+
+ /* The bug is triggered when PATH_MAX < page size, so skip
+ this relatively expensive and invasive test if that's not true. */
+#if defined PATH_MAX && defined _SC_PAGESIZE
+ int bug_possible = PATH_MAX < sysconf (_SC_PAGESIZE);
+#else
+ int bug_possible = 0;
+#endif
+ if (! bug_possible)
+ return 0;
+
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ return 2;
+
+ initial_cwd_len = strlen (cwd);
+ free (cwd);
+
+ if (1)
+ {
+ static char const dir_name[] = "confdir-14B---";
+ size_t desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
+ / sizeof dir_name);
+ size_t d;
+ for (d = 0; d < desired_depth; d++)
+ {
+ if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0)
+ {
+ if (! (errno == ERANGE || errno == ENAMETOOLONG
+ || errno == ENOENT))
+ fail = 3; /* Unable to construct deep hierarchy. */
+ break;
+ }
+ }
+
+ /* If libc has the bug in question, this invocation of getcwd
+ results in a failed assertion. */
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ fail = 4; /* getcwd didn't assert, but it failed for a long name
+ where the answer could have been learned. */
+ free (cwd);
+
+ /* Call rmdir first, in case the above chdir failed. */
+ rmdir (dir_name);
+ while (0 < d--)
+ {
+ if (chdir ("..") < 0)
+ {
+ fail = 5;
+ break;
+ }
+ rmdir (dir_name);
+ }
+ }
+
+ return fail;
+}
+ ]])],
+ [gl_cv_func_getcwd_succeeds_beyond_4k=yes],
+ [dnl An abort will provoke an exit code of something like 134 (128 + 6).
+ dnl An exit code of 4 can also occur (for example in
+ dnl musl libc 1.2.2/powerpc64le, NetBSD 10.0, OpenBSD 6.7:
+ dnl getcwd (NULL, 0) fails rather than returning a string longer than
+ dnl PATH_MAX. This may be POSIX compliant (in some interpretations of
+ dnl POSIX). But gnulib's getcwd module wants to provide a non-NULL
+ dnl value in this case.
+ ret=$?
+ if test $ret -ge 128 || test $ret = 4; then
+ gl_cv_func_getcwd_succeeds_beyond_4k=no
+ else
+ gl_cv_func_getcwd_succeeds_beyond_4k=yes
+ fi
+ ],
+ [case "$host_os" in
+ # Guess no otherwise, even on glibc systems and musl systems.
+ *) gl_cv_func_getcwd_succeeds_beyond_4k="guessing no"
+ esac
+ ])
+ ])
+ case "$gl_cv_func_getcwd_succeeds_beyond_4k" in
+ *no)
+ $1
+ ;;
+ *)
+ $2
+ ;;
+ esac
+])
diff --git a/gnulib-m4/getcwd-path-max.m4 b/gnulib-m4/getcwd-path-max.m4
new file mode 100644
index 00000000..e9c52d90
--- /dev/null
+++ b/gnulib-m4/getcwd-path-max.m4
@@ -0,0 +1,254 @@
+# getcwd-path-max.m4
+# serial 26
+dnl Copyright (C) 2003-2007, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Check for several getcwd bugs with long file names.
+# If so, arrange to compile the wrapper function.
+
+# This is necessary for at least GNU libc on linux-2.4.19 and 2.4.20.
+# I've heard that this is due to a Linux kernel bug, and that it has
+# been fixed between 2.4.21-pre3 and 2.4.21-pre4.
+
+# From Jim Meyering
+
+AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX],
+[
+ AC_CHECK_DECLS_ONCE([getcwd, alarm])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+ AC_CACHE_CHECK([whether getcwd handles long file names properly],
+ [gl_cv_func_getcwd_path_max],
+ [# Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir3"
+ dnl Please keep this in sync with tests/test-getcwd.c.
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include <direct.h>
+#endif
+#if HAVE_DECL_ALARM
+# include <signal.h>
+#endif
+#include <string.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+]gl_PATHMAX_SNIPPET[
+
+#ifndef AT_FDCWD
+# define AT_FDCWD 0
+#endif
+#ifdef ENAMETOOLONG
+# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG)
+#else
+# define is_ENAMETOOLONG(x) 0
+#endif
+
+/* Use the getcwd function, not any macro. */
+#undef getcwd
+
+]GL_MDA_DEFINES[
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* The length of this name must be 8. */
+#define DIR_NAME "confdir3"
+#define DIR_NAME_LEN 8
+#define DIR_NAME_SIZE (DIR_NAME_LEN + 1)
+
+/* The length of "../". */
+#define DOTDOTSLASH_LEN 3
+
+/* Leftover bytes in the buffer, to work around library or OS bugs. */
+#define BUF_SLOP 20
+
+int
+main ()
+{
+#ifndef PATH_MAX
+ /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
+ at least not on a local file system. And if we were to start worrying
+ about remote file systems, we'd have to enable the wrapper function
+ all of the time, just to be safe. That's not worth the cost. */
+ exit (0);
+#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
+ - DIR_NAME_SIZE - BUF_SLOP) \
+ <= PATH_MAX)
+ /* FIXME: Assuming there's a system for which this is true,
+ this should be done in a compile test. */
+ exit (0);
+#else
+ char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1)
+ + DIR_NAME_SIZE + BUF_SLOP];
+ char *cwd;
+ size_t initial_cwd_len;
+ size_t cwd_len;
+ int fail;
+ size_t n_chdirs;
+
+# if HAVE_DECL_ALARM
+ /* This test makes some buggy getcwd implementations take a long time, e.g.
+ on NAS devices
+ <https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00444.html>
+ and in sandboxed environments <https://bugs.gentoo.org/447970>.
+ Give up after 5 seconds; a getcwd slower than that isn't worth using
+ anyway. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (5);
+# endif
+
+ cwd = getcwd (buf, PATH_MAX);
+ if (cwd == NULL)
+ exit (10);
+
+ cwd_len = initial_cwd_len = strlen (cwd);
+ fail = 0;
+ n_chdirs = 0;
+
+ while (1)
+ {
+ size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN);
+ char *c = NULL;
+
+ cwd_len += DIR_NAME_SIZE;
+ /* If mkdir or chdir fails, it could be that this system cannot create
+ any file with an absolute name longer than PATH_MAX, such as cygwin.
+ If so, leave fail as 0, because the current working directory can't
+ be too long for getcwd if it can't even be created. On Linux with
+ the 9p file system, mkdir fails with error EINVAL when cwd_len gets
+ too long; ignore this failure because the getcwd() system call
+ produces good results whereas the gnulib substitute calls getdents64
+ which fails with error EPROTO.
+ For other errors, be pessimistic and consider that as a failure,
+ too. */
+ if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
+ {
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ #ifdef __linux__
+ if (! (errno == EINVAL))
+ #endif
+ fail = 20;
+ break;
+ }
+
+ if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE)
+ {
+ struct stat sb;
+
+ c = getcwd (buf, PATH_MAX);
+ if (!c && errno == ENOENT)
+ {
+ fail = 11;
+ break;
+ }
+ if (c)
+ {
+ fail = 31;
+ break;
+ }
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ {
+ fail = 21;
+ break;
+ }
+
+ /* Our replacement needs to be able to stat() long ../../paths,
+ so generate a path larger than PATH_MAX to check,
+ avoiding the replacement if we can't stat(). */
+ c = getcwd (buf, cwd_len + 1);
+ if (c && !AT_FDCWD && stat (c, &sb) != 0 && is_ENAMETOOLONG (errno))
+ {
+ fail = 32;
+ break;
+ }
+ }
+
+ if (dotdot_max <= cwd_len - initial_cwd_len)
+ {
+ if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len)
+ break;
+ c = getcwd (buf, cwd_len + 1);
+ if (!c)
+ {
+ if (! (errno == ERANGE || errno == ENOENT
+ || is_ENAMETOOLONG (errno)))
+ {
+ fail = 22;
+ break;
+ }
+ if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
+ {
+ fail = 12;
+ break;
+ }
+ }
+ }
+
+ if (c && strlen (c) != cwd_len)
+ {
+ fail = 23;
+ break;
+ }
+ ++n_chdirs;
+ }
+
+ /* Leaving behind such a deep directory is not polite.
+ So clean up here, right away, even though the driving
+ shell script would also clean up. */
+ {
+ size_t i;
+
+ /* Try rmdir first, in case the chdir failed. */
+ rmdir (DIR_NAME);
+ for (i = 0; i <= n_chdirs; i++)
+ {
+ if (chdir ("..") < 0)
+ break;
+ if (rmdir (DIR_NAME) != 0)
+ break;
+ }
+ }
+
+ exit (fail);
+#endif
+}
+ ]])],
+ [gl_cv_func_getcwd_path_max=yes],
+ [case $? in
+ 10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+ 31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ 32) gl_cv_func_getcwd_path_max='yes, but with shorter paths';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac],
+ [# Cross-compilation guesses:
+ case "$host_os" in
+ aix*) # On AIX, it has the AIX bug.
+ gl_cv_func_getcwd_path_max='guessing no, it has the AIX bug' ;;
+ gnu*) # On Hurd, it is 'yes'.
+ gl_cv_func_getcwd_path_max='guessing yes' ;;
+ linux* | kfreebsd*)
+ # On older Linux+glibc it's 'no, but it is partly working',
+ # on newer Linux+glibc it's 'yes'.
+ # On Linux+musl libc, it's 'no, but it is partly working'.
+ # On kFreeBSD+glibc, it's 'no, but it is partly working'.
+ gl_cv_func_getcwd_path_max='guessing no, but it is partly working' ;;
+ *) # If we don't know, obey --enable-cross-guesses.
+ gl_cv_func_getcwd_path_max="$gl_cross_guess_normal" ;;
+ esac
+ ])
+ ])
+])
diff --git a/gnulib-m4/getcwd.m4 b/gnulib-m4/getcwd.m4
index ed3d7b61..46f46a2f 100644
--- a/gnulib-m4/getcwd.m4
+++ b/gnulib-m4/getcwd.m4
@@ -1,12 +1,13 @@
-# 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-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.
# 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..aaefe9b2 100644
--- a/gnulib-m4/getdtablesize.m4
+++ b/gnulib-m4/getdtablesize.m4
@@ -1,4 +1,5 @@
-# getdtablesize.m4 serial 8
+# getdtablesize.m4
+# serial 8
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
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..b24f4480 100644
--- a/gnulib-m4/getprogname.m4
+++ b/gnulib-m4/getprogname.m4
@@ -1,11 +1,11 @@
-# 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-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.
+
+# Check for getprogname or replacements for it
AC_DEFUN([gl_FUNC_GETPROGNAME],
[
diff --git a/gnulib-m4/gettimeofday.m4 b/gnulib-m4/gettimeofday.m4
index 35269914..8135f89e 100644
--- a/gnulib-m4/gettimeofday.m4
+++ b/gnulib-m4/gettimeofday.m4
@@ -1,9 +1,9 @@
+# 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-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 Jim Meyering.
diff --git a/gnulib-m4/gnulib-cache.m4 b/gnulib-m4/gnulib-cache.m4
index 6fe9820d..5cac436c 100644
--- a/gnulib-m4/gnulib-cache.m4
+++ b/gnulib-m4/gnulib-cache.m4
@@ -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 \
diff --git a/gnulib-m4/gnulib-common.m4 b/gnulib-m4/gnulib-common.m4
index d8d0904f..1fec5c5c 100644
--- a/gnulib-m4/gnulib-common.m4
+++ b/gnulib-m4/gnulib-common.m4
@@ -1,4 +1,5 @@
-# gnulib-common.m4 serial 92
+# gnulib-common.m4
+# serial 105
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -20,10 +21,22 @@ AC_DEFUN([gl_COMMON_BODY], [
#define _GL_CONFIG_H_INCLUDED 1
])
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
@@ -113,8 +126,10 @@ AC_DEFUN([gl_COMMON_BODY], [
# 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 0 /* not yet supported, as of GCC 14 */
# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9)
# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0)
+# define _GL_ATTR_unsequenced 0 /* not yet supported, as of GCC 14 */
# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7)
# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
# endif
@@ -130,6 +145,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/bugzilla/show_bug.cgi?id=108796>, 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 +176,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 +353,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 +364,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 +376,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 +402,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
@@ -480,7 +687,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 +712,58 @@ 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/>. */
+/* 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 +791,33 @@ 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/>. */
+/* 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 +842,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
@@ -1084,11 +1380,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 +1394,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
diff --git a/gnulib-m4/gnulib-comp.m4 b/gnulib-m4/gnulib-comp.m4
index 4947d6c0..1fa89b27 100644
--- a/gnulib-m4/gnulib-comp.m4
+++ b/gnulib-m4/gnulib-comp.m4
@@ -57,6 +57,8 @@ AC_DEFUN([gl_EARLY],
# Code from module array-mergesort-tests:
# Code from module assert-h:
# Code from module assert-h-tests:
+ # Code from module assure:
+ # Code from module at-internal:
# Code from module attribute:
# Code from module basename-lgpl:
# Code from module binary-io:
@@ -108,15 +110,27 @@ AC_DEFUN([gl_EARLY],
# Code from module calloc-gnu:
# Code from module calloc-gnu-tests:
# Code from module calloc-posix:
+ # Code from module chdir:
+ # Code from module chdir-long:
+ # Code from module chdir-tests:
# Code from module cloexec:
# Code from module cloexec-tests:
# Code from module close:
# Code from module close-tests:
+ # Code from module closedir:
+ # 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 d-ino:
+ # Code from module dirent:
+ # Code from module dirent-tests:
+ # Code from module dirfd:
+ # Code from module dirfd-tests:
# Code from module double-slash-root:
+ # Code from module dup:
+ # Code from module dup-tests:
# Code from module dup2:
# Code from module dup2-tests:
# Code from module environ:
@@ -128,16 +142,26 @@ AC_DEFUN([gl_EARLY],
# 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 fchdir:
+ # Code from module fchdir-tests:
# Code from module fcntl:
# Code from module fcntl-h:
# Code from module fcntl-h-tests:
# Code from module fcntl-tests:
# Code from module fd-hook:
+ # Code from module fd-safer-flag:
# Code from module fdopen:
# Code from module fdopen-tests:
+ # Code from module fdopendir:
+ # Code from module fdopendir-tests:
# Code from module fgetc-tests:
# Code from module filename:
+ # Code from module filenamecat-lgpl:
# Code from module flexmember:
# Code from module float:
# Code from module float-tests:
@@ -156,15 +180,18 @@ AC_DEFUN([gl_EARLY],
# Code from module fseterr-tests:
# Code from module fstat:
# Code from module fstat-tests:
+ # Code from module fstatat:
+ # Code from module fstatat-tests:
# Code from module ftruncate:
# Code from module ftruncate-tests:
# Code from module fwrite-tests:
# Code from module gen-header:
+ # Code from module getcwd:
# Code from module getcwd-lgpl:
# Code from module getcwd-lgpl-tests:
+ # Code from module getcwd-tests:
# Code from module getdtablesize:
# Code from module getdtablesize-tests:
- # Code from module getpagesize:
# Code from module getprogname:
# Code from module getprogname-tests:
# Code from module gettext-h:
@@ -249,12 +276,17 @@ 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 mempcpy:
+ # Code from module memrchr:
+ # Code from module memrchr-tests:
# Code from module minmax:
+ # Code from module mixin/printf-posix:
# Code from module msvc-inval:
# Code from module msvc-nothrow:
# Code from module multiarch:
@@ -264,8 +296,15 @@ AC_DEFUN([gl_EARLY],
# Code from module netinet_in:
# Code from module netinet_in-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 openat:
+ # Code from module openat-die:
+ # Code from module openat-h:
+ # Code from module openat-tests:
+ # Code from module opendir:
# Code from module pathmax:
# Code from module pathmax-tests:
# Code from module perror:
@@ -279,27 +318,40 @@ 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 readdir:
# Code from module realloc-gnu:
# Code from module realloc-gnu-tests:
# Code from module realloc-posix:
# Code from module reallocarray:
# Code from module reallocarray-tests:
# Code from module relocatable-lib-lgpl:
+ # Code from module rewinddir:
# Code from module same-inode:
+ # Code from module save-cwd:
# Code from module sched:
# Code from module sched-tests:
# Code from module sched_yield:
@@ -355,6 +407,8 @@ AC_DEFUN([gl_EARLY],
# Code from module stdio-tests:
# Code from module stdlib:
# Code from module stdlib-tests:
+ # Code from module stpcpy:
+ # Code from module strdup-posix:
# Code from module streq:
# Code from module strerror:
# Code from module strerror-override:
@@ -385,11 +439,13 @@ AC_DEFUN([gl_EARLY],
# Code from module sys_time:
# Code from module sys_time-tests:
# Code from module sys_types:
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
# Code from module sys_types-tests:
# Code from module sys_uio:
# Code from module sys_uio-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:
@@ -855,6 +911,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:
@@ -1030,6 +1088,8 @@ AC_DEFUN([gl_EARLY],
# Code from module uninorm/u8-normcoll-tests:
# Code from module uninorm/u8-normxfrm:
# Code from module unistd:
+ # Code from module unistd-safer:
+ # Code from module unistd-safer-tests:
# Code from module unistd-tests:
# Code from module unistdio/base:
# Code from module unistdio/u-printf-args:
@@ -1394,16 +1454,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:
# Code from module xsize:
# Code from module yield:
])
@@ -1439,84 +1509,98 @@ AC_DEFUN([gl_INIT],
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])
@@ -1526,8 +1610,11 @@ AC_DEFUN([gl_INIT],
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], [
@@ -1676,14 +1763,26 @@ 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
gl_FUNC_SETLOCALE_NULL
gl_CONDITIONAL([GL_COND_OBJ_SETLOCALE_LOCK],
[test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0])
@@ -1744,6 +1843,9 @@ AC_DEFUN([gl_INIT],
AC_PROG_MKDIR_P
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 +1861,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.3], [unicase/tolower])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/totitle])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/toupper])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-casecmp])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-casecoll])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-casefold])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-casexfrm])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-ct-casefold])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-ct-tolower])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-ct-totitle])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-ct-toupper])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-is-cased])
+ gl_LIBUNISTRING_MODULE([1.2], [unicase/u16-is-casefolded])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-is-lowercase])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-is-titlecase])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-is-uppercase])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-prefix-context])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-suffix-context])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-tolower])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-totitle])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u16-toupper])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-casecmp])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-casecoll])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-casefold])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-casexfrm])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-ct-casefold])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-ct-tolower])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-ct-totitle])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-ct-toupper])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-is-cased])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-is-casefolded])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-is-lowercase])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-is-titlecase])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-is-uppercase])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-prefix-context])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-suffix-context])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-tolower])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-totitle])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u32-toupper])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-casecmp])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-casecoll])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-casefold])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-casexfrm])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-ct-casefold])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-ct-tolower])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-ct-totitle])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-ct-toupper])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-is-cased])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-is-casefolded])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-is-lowercase])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-is-titlecase])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-is-uppercase])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-prefix-context])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-suffix-context])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-tolower])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-totitle])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/u8-toupper])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/ulc-casecmp])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/ulc-casecoll])
+ gl_LIBUNISTRING_MODULE([1.3], [unicase/ulc-casexfrm])
gl_LIBUNISTRING_LIBHEADER([0.9.11], [uniconv.h])
AC_PROG_MKDIR_P
AC_REQUIRE([gl_BIGENDIAN])
@@ -1842,65 +1944,65 @@ 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([1.3], [unictype/bidiclass-of])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/bidiclass-test])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/block-list])
gl_LIBUNISTRING_MODULE([0.9.11], [unictype/block-test])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-C])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-C])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Cc])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Cf])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-Cn])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-Cn])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Co])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Cs])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-L])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-L])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-LC])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-LC])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Ll])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-Ll])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Lm])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-Lm])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-Lo])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-Lo])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [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.3], [unictype/category-Lu])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-M])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-M])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Mc])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-Mc])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Me])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Mn])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-Mn])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-N])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-N])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Nd])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-Nd])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Nl])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-No])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-P])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-P])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [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.3], [unictype/category-Pd])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/category-Pe])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
@@ -1908,19 +2010,19 @@ AC_DEFUN([gl_INIT],
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Pi])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/category-Po])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-Po])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/category-Ps])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-S])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-S])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/category-Sc])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [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.3], [unictype/category-Sm])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/category-So])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/category-So])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/category-Z])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
@@ -1929,26 +2031,26 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [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([1.3], [unictype/category-and])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/category-and-not])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/category-byname])
gl_LIBUNISTRING_MODULE([0.9.8], [unictype/category-longname])
gl_LIBUNISTRING_MODULE([0.9.8], [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.3], [unictype/category-of])
+ gl_LIBUNISTRING_MODULE([1.3], [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([1.3], [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])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/ctype-alnum])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/ctype-alnum])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/ctype-alpha])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/ctype-alpha])
AC_REQUIRE([AC_C_INLINE])
gl_LIBUNISTRING_MODULE([0.9.8], [unictype/ctype-blank])
AC_REQUIRE([AC_C_INLINE])
@@ -1956,127 +2058,127 @@ AC_DEFUN([gl_INIT],
AC_REQUIRE([AC_C_INLINE])
gl_LIBUNISTRING_MODULE([0.9.8], [unictype/ctype-digit])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/ctype-graph])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/ctype-graph])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/ctype-lower])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/ctype-lower])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/ctype-print])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/ctype-print])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/ctype-punct])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/ctype-punct])
AC_REQUIRE([AC_C_INLINE])
gl_LIBUNISTRING_MODULE([0.9.8], [unictype/ctype-space])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([0.9.11], [unictype/ctype-upper])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [unictype/decimal-digit])
+ gl_LIBUNISTRING_MODULE([1.3], [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([1.3], [unictype/incb-of])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/joininggroup-byname])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/joininggroup-name])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [unictype/joiningtype-of])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/mirror])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [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])
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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [unictype/property-bidi-whitespace])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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.3], [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])
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.3], [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.3], [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])
@@ -2085,10 +2187,10 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [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.3], [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.3], [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])
@@ -2100,25 +2202,25 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [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.3], [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])
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.3], [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])
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.3], [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.3], [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.3], [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])
@@ -2133,13 +2235,13 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [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.3], [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.3], [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.3], [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])
@@ -2169,10 +2271,13 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [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.3], [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.3], [unictype/property-math])
+ AC_REQUIRE([AC_C_INLINE])
+ gl_UNICTYPE_H_REQUIRE_DEFAULTS
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [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-non-break])
@@ -2181,16 +2286,16 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-not-a-character])
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.3], [unictype/property-numeric])
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.3], [unictype/property-other-alphabetic])
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])
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.3], [unictype/property-other-grapheme-extend])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-other-id-continue])
@@ -2226,7 +2331,7 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-private-use])
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.3], [unictype/property-punctuation])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-quotation-mark])
@@ -2238,7 +2343,7 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-regional-indicator])
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.3], [unictype/property-sentence-terminal])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-soft-dotted])
@@ -2247,20 +2352,20 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-space])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [unictype/property-terminal-punctuation])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [unictype/property-terminal-punctuation])
gl_LIBUNISTRING_MODULE([0.9.8], [unictype/property-test])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-titlecase])
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.3], [unictype/property-unassigned-code-value])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-unified-ideograph])
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.3], [unictype/property-uppercase])
AC_REQUIRE([AC_C_INLINE])
gl_UNICTYPE_H_REQUIRE_DEFAULTS
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.11], [unictype/property-variation-selector])
@@ -2269,174 +2374,174 @@ AC_DEFUN([gl_INIT],
gl_LIBUNISTRING_MODULE_WITH_VARIABLE([0.9.8], [unictype/property-white-space])
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.3], [unictype/property-xid-continue])
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.3], [unictype/property-xid-start])
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([1.3], [unictype/scripts])
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])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.2], [unictype/syntax-java-ident])
+ gl_LIBUNISTRING_MODULE([1.3], [unictype/syntax-java-ident])
gl_LIBUNISTRING_MODULE([0.9.8], [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.3], [unigbrk/u16-grapheme-breaks])
gl_MODULE_INDICATOR([unigbrk/u16-grapheme-next])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u16-grapheme-next])
+ gl_LIBUNISTRING_MODULE([1.3], [unigbrk/u16-grapheme-next])
gl_MODULE_INDICATOR([unigbrk/u16-grapheme-prev])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u16-grapheme-prev])
+ gl_LIBUNISTRING_MODULE([1.3], [unigbrk/u16-grapheme-prev])
gl_MODULE_INDICATOR([unigbrk/u32-grapheme-breaks])
- gl_LIBUNISTRING_MODULE([1.2], [unigbrk/u32-grapheme-breaks])
+ gl_LIBUNISTRING_MODULE([1.3], [unigbrk/u32-grapheme-breaks])
gl_MODULE_INDICATOR([unigbrk/u32-grapheme-next])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u32-grapheme-next])
+ gl_LIBUNISTRING_MODULE([1.3], [unigbrk/u32-grapheme-next])
gl_MODULE_INDICATOR([unigbrk/u32-grapheme-prev])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u32-grapheme-prev])
+ gl_LIBUNISTRING_MODULE([1.3], [unigbrk/u32-grapheme-prev])
gl_MODULE_INDICATOR([unigbrk/u8-grapheme-breaks])
- gl_LIBUNISTRING_MODULE([1.2], [unigbrk/u8-grapheme-breaks])
+ gl_LIBUNISTRING_MODULE([1.3], [unigbrk/u8-grapheme-breaks])
gl_MODULE_INDICATOR([unigbrk/u8-grapheme-next])
- gl_LIBUNISTRING_MODULE([1.1], [unigbrk/u8-grapheme-next])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [unigbrk/u8-grapheme-prev])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [unigbrk/uc-grapheme-breaks])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [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.3], [unilbrk/u16-possible-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [unilbrk/u16-width-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [unilbrk/u32-possible-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [unilbrk/u32-width-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [unilbrk/u8-possible-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [unilbrk/u8-width-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [unilbrk/ulc-possible-linebreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [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.3], [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.3], [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.3], [uninorm/decomposition])
AC_REQUIRE([AC_C_INLINE])
- gl_LIBUNISTRING_MODULE([1.1], [uninorm/filter])
+ gl_LIBUNISTRING_MODULE([1.3], [uninorm/filter])
gl_UNINORM_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [uninorm/nfc])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [uninorm/nfc])
gl_UNINORM_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [uninorm/nfd])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [uninorm/nfd])
gl_UNINORM_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [uninorm/nfkc])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [uninorm/nfkc])
gl_UNINORM_H_REQUIRE_DEFAULTS
- gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.1], [uninorm/nfkd])
+ gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.3], [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.3], [uninorm/u16-normalize])
+ gl_LIBUNISTRING_MODULE([1.3], [uninorm/u16-normcmp])
+ gl_LIBUNISTRING_MODULE([1.3], [uninorm/u16-normcoll])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [uninorm/u32-normalize])
+ gl_LIBUNISTRING_MODULE([1.3], [uninorm/u32-normcmp])
+ gl_LIBUNISTRING_MODULE([1.3], [uninorm/u32-normcoll])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [uninorm/u8-normalize])
+ gl_LIBUNISTRING_MODULE([1.3], [uninorm/u8-normcmp])
+ gl_LIBUNISTRING_MODULE([1.3], [uninorm/u8-normcoll])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3]), [unistdio/ulc-asnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.3]), [unistdio/ulc-asprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.3]), [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.3]), [unistdio/ulc-snprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.3]), [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.3]), [unistdio/ulc-vasnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.3]), [unistdio/ulc-vasprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.3]), [unistdio/ulc-vfprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.3]), [unistdio/ulc-vsnprintf])
+ gl_LIBUNISTRING_MODULE(m4_ifdef([gl_PRINTF_SUPPORT_N_DIRECTIVE],[999.9],[1.3]), [unistdio/ulc-vsprintf])
gl_LIBUNISTRING_LIBHEADER([1.2], [unistr.h])
AC_PROG_MKDIR_P
gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-check])
@@ -2598,20 +2703,20 @@ AC_DEFUN([gl_INIT],
])
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.3], [uniwbrk/u16-wordbreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [uniwbrk/u32-wordbreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [uniwbrk/u8-wordbreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [uniwbrk/ulc-wordbreaks])
+ gl_LIBUNISTRING_MODULE([1.3], [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.3], [uniwidth/u16-strwidth])
+ gl_LIBUNISTRING_MODULE([1.3], [uniwidth/u16-width])
+ gl_LIBUNISTRING_MODULE([1.3], [uniwidth/u32-strwidth])
+ gl_LIBUNISTRING_MODULE([1.3], [uniwidth/u32-width])
+ gl_LIBUNISTRING_MODULE([1.3], [uniwidth/u8-strwidth])
+ gl_LIBUNISTRING_MODULE([1.3], [uniwidth/u8-width])
+ gl_LIBUNISTRING_MODULE([1.3], [uniwidth/width])
gl_WCHAR_H
gl_WCHAR_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
@@ -2706,14 +2811,18 @@ 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
AC_PROG_MKDIR_P
+ AC_REQUIRE([AC_CANONICAL_HOST])
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 +2832,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 +2906,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
@@ -2804,17 +2929,47 @@ changequote([, ])dnl
AC_LIBOBJ([calloc])
fi
gl_STDLIB_MODULE_INDICATOR([calloc-posix])
+ gl_UNISTD_MODULE_INDICATOR([chdir])
+ gl_FUNC_CHDIR_LONG
+ gl_CONDITIONAL([GL_COND_OBJ_CHDIR_LONG],
+ [test $gl_cv_have_unlimited_file_name_length = no])
+ AM_COND_IF([GL_COND_OBJ_CHDIR_LONG], [
+ gl_PREREQ_CHDIR_LONG
+ ])
gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
gl_FUNC_CLOSE
gl_CONDITIONAL([GL_COND_OBJ_CLOSE], [test $REPLACE_CLOSE = 1])
gl_UNISTD_MODULE_INDICATOR([close])
+ gl_MODULE_INDICATOR([close])
+ gl_FUNC_CLOSEDIR
+ gl_CONDITIONAL([GL_COND_OBJ_CLOSEDIR],
+ [test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1])
+ gl_DIRENT_MODULE_INDICATOR([closedir])
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
+ gl_CHECK_TYPE_STRUCT_DIRENT_D_INO
+ gl_DIRENT_H
+ gl_DIRENT_H_REQUIRE_DEFAULTS
+ AC_PROG_MKDIR_P
+ gl_FUNC_DIRFD
+ gl_CONDITIONAL([GL_COND_OBJ_DIRFD],
+ [test $HAVE_DIRFD = 0 || test $REPLACE_DIRFD = 1])
+ AM_COND_IF([GL_COND_OBJ_DIRFD], [
+ gl_PREREQ_DIRFD
+ ])
+ gl_DIRENT_MODULE_INDICATOR([dirfd])
gl_DOUBLE_SLASH_ROOT
+ gl_FUNC_DUP
+ gl_CONDITIONAL([GL_COND_OBJ_DUP], [test $REPLACE_DUP = 1])
+ AM_COND_IF([GL_COND_OBJ_DUP], [
+ gl_PREREQ_DUP
+ ])
+ gl_UNISTD_MODULE_INDICATOR([dup])
gl_FUNC_DUP2
gl_CONDITIONAL([GL_COND_OBJ_DUP2], [test $REPLACE_DUP2 = 1])
AM_COND_IF([GL_COND_OBJ_DUP2], [
@@ -2834,6 +2989,13 @@ changequote([, ])dnl
AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
gl_ERROR_H
AC_PROG_MKDIR_P
+ gl_FUNC_FCHDIR
+ gl_CONDITIONAL([GL_COND_OBJ_FCHDIR],
+ [test $HAVE_FCHDIR = 0 || test $REPLACE_FCHDIR = 1])
+ AM_COND_IF([GL_COND_OBJ_FCHDIR], [
+ gl_PREREQ_FCHDIR
+ ])
+ gl_UNISTD_MODULE_INDICATOR([fchdir])
gl_FUNC_FCNTL
gl_CONDITIONAL([GL_COND_OBJ_FCNTL],
[test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1])
@@ -2841,12 +3003,19 @@ changequote([, ])dnl
gl_FCNTL_H
gl_FCNTL_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
+ gl_MODULE_INDICATOR([fd-safer-flag])
gl_FUNC_FDOPEN
gl_CONDITIONAL([GL_COND_OBJ_FDOPEN], [test $REPLACE_FDOPEN = 1])
AM_COND_IF([GL_COND_OBJ_FDOPEN], [
gl_PREREQ_FDOPEN
])
gl_STDIO_MODULE_INDICATOR([fdopen])
+ gl_FUNC_FDOPENDIR
+ gl_CONDITIONAL([GL_COND_OBJ_FDOPENDIR],
+ [test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1])
+ gl_DIRENT_MODULE_INDICATOR([fdopendir])
+ gl_MODULE_INDICATOR([fdopendir])
+ gl_FILE_NAME_CONCAT_LGPL
gl_FUNC_FSTAT
gl_CONDITIONAL([GL_COND_OBJ_FSTAT], [test $REPLACE_FSTAT = 1])
AM_COND_IF([GL_COND_OBJ_FSTAT], [
@@ -2858,6 +3027,12 @@ changequote([, ])dnl
gl_PREREQ_FSTAT
])
gl_SYS_STAT_MODULE_INDICATOR([fstat])
+ gl_MODULE_INDICATOR([fstat])
+ gl_FUNC_FSTATAT
+ gl_CONDITIONAL([GL_COND_OBJ_FSTATAT],
+ [test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1])
+ gl_SYS_STAT_MODULE_INDICATOR([fstatat])
+ gl_MODULE_INDICATOR([fstatat])
gl_FUNC_FTRUNCATE
gl_CONDITIONAL([GL_COND_OBJ_FTRUNCATE],
[test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1])
@@ -2865,6 +3040,13 @@ changequote([, ])dnl
gl_PREREQ_FTRUNCATE
])
gl_UNISTD_MODULE_INDICATOR([ftruncate])
+ gl_FUNC_GETCWD
+ gl_CONDITIONAL([GL_COND_OBJ_GETCWD], [test $REPLACE_GETCWD = 1])
+ AM_COND_IF([GL_COND_OBJ_GETCWD], [
+ gl_PREREQ_GETCWD
+ ])
+ gl_MODULE_INDICATOR([getcwd])
+ gl_UNISTD_MODULE_INDICATOR([getcwd])
gl_FUNC_GETCWD_LGPL
gl_CONDITIONAL([GL_COND_OBJ_GETCWD_LGPL], [test $REPLACE_GETCWD = 1])
gl_UNISTD_MODULE_INDICATOR([getcwd])
@@ -2875,9 +3057,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])
@@ -2910,15 +3090,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,6 +3111,7 @@ 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_CHECK_FUNCS_ANDROID([newlocale], [[#include <locale.h>]])
gl_CHECK_FUNCS_ANDROID([newlocale], [[#include <locale.h>]])
gl_MUSL_LIBC
@@ -2940,19 +3124,25 @@ 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
+ 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 +3155,22 @@ changequote([, ])dnl
gl_FUNC_MMAP_ANON
AC_CHECK_HEADERS_ONCE([sys/mman.h])
AC_CHECK_FUNCS_ONCE([mprotect])
+ gl_FUNC_MEMPCPY
+ gl_CONDITIONAL([GL_COND_OBJ_MEMPCPY],
+ [test $HAVE_MEMPCPY = 0 || test $REPLACE_MEMPCPY = 1])
+ AM_COND_IF([GL_COND_OBJ_MEMPCPY], [
+ gl_PREREQ_MEMPCPY
+ ])
+ gl_STRING_MODULE_INDICATOR([mempcpy])
+ gl_FUNC_MEMRCHR
+ gl_CONDITIONAL([GL_COND_OBJ_MEMRCHR], [test $ac_cv_func_memrchr = no])
+ AM_COND_IF([GL_COND_OBJ_MEMRCHR], [
+ gl_PREREQ_MEMRCHR
+ ])
+ gl_STRING_MODULE_INDICATOR([memrchr])
+ gl_FUNC_MMAP_ANON
+ AC_CHECK_HEADERS_ONCE([sys/mman.h])
+ AC_CHECK_FUNCS_ONCE([mprotect])
AC_REQUIRE([gl_MSVC_INVAL])
gl_CONDITIONAL([GL_COND_OBJ_MSVC_INVAL],
[test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1])
@@ -2986,6 +3192,18 @@ changequote([, ])dnl
gl_PREREQ_OPEN
])
gl_FCNTL_MODULE_INDICATOR([open])
+ gl_FUNC_OPENAT
+ gl_CONDITIONAL([GL_COND_OBJ_OPENAT],
+ [test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1])
+ AM_COND_IF([GL_COND_OBJ_OPENAT], [
+ gl_PREREQ_OPENAT
+ ])
+ gl_MODULE_INDICATOR([openat]) dnl for lib/getcwd.c
+ gl_FCNTL_MODULE_INDICATOR([openat])
+ gl_FUNC_OPENDIR
+ gl_CONDITIONAL([GL_COND_OBJ_OPENDIR],
+ [test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1])
+ gl_DIRENT_MODULE_INDICATOR([opendir])
gl_PATHMAX
gl_FUNC_PERROR
gl_CONDITIONAL([GL_COND_OBJ_PERROR], [test $REPLACE_PERROR = 1])
@@ -2998,13 +3216,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,6 +3278,10 @@ changequote([, ])dnl
gl_PREREQ_RANDOM_R
])
gl_STDLIB_MODULE_INDICATOR([random_r])
+ gl_FUNC_READDIR
+ gl_CONDITIONAL([GL_COND_OBJ_READDIR],
+ [test $HAVE_READDIR = 0 || test $REPLACE_READDIR = 1])
+ gl_DIRENT_MODULE_INDICATOR([readdir])
gl_FUNC_REALLOC_GNU
if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then
AC_LIBOBJ([realloc])
@@ -3057,9 +3300,11 @@ 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_REWINDDIR
+ gl_CONDITIONAL([GL_COND_OBJ_REWINDDIR],
+ [test $HAVE_REWINDDIR = 0 || test $REPLACE_REWINDDIR = 1])
+ gl_DIRENT_MODULE_INDICATOR([rewinddir])
+ gl_SAVE_CWD
gl_FUNC_SCHED_YIELD
gl_CONDITIONAL([GL_COND_OBJ_SCHED_YIELD],
[test $HAVE_SCHED_YIELD = 0 || test $REPLACE_SCHED_YIELD = 1])
@@ -3067,6 +3312,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],
@@ -3086,6 +3332,7 @@ changequote([, ])dnl
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 +3361,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,9 +3376,9 @@ 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
@@ -3161,6 +3409,19 @@ 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_FUNC_STRDUP_POSIX
+ gl_CONDITIONAL([GL_COND_OBJ_STRDUP], [test $REPLACE_STRDUP = 1])
+ AM_COND_IF([GL_COND_OBJ_STRDUP], [
+ gl_PREREQ_STRDUP
+ ])
+ gl_STRING_MODULE_INDICATOR([strdup])
gl_FUNC_STRERROR
gl_CONDITIONAL([GL_COND_OBJ_STRERROR], [test $REPLACE_STRERROR = 1])
gl_MODULE_INDICATOR([strerror])
@@ -3201,6 +3462,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
@@ -3210,6 +3473,50 @@ changequote([, ])dnl
gl_SYS_UIO_H
gl_SYS_UIO_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_ANDROID],
+ [case "$host_os" in linux-androideabi*) true ;; *) false ;; esac])
gl_THREAD
gl_FUNC_TIME
gl_CONDITIONAL([GL_COND_OBJ_TIME], [test $REPLACE_TIME = 1])
@@ -3217,9 +3524,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
@@ -3234,6 +3538,7 @@ changequote([, ])dnl
AC_CHECK_DECLS_ONCE([alarm])
AC_CHECK_DECLS_ONCE([alarm])
AC_CHECK_DECLS_ONCE([alarm])
+ gl_UNISTD_SAFER
gt_LOCALE_FR
gt_LOCALE_FR_UTF8
gt_LOCALE_FR
@@ -3328,6 +3633,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 +3652,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, [
@@ -3509,6 +3828,8 @@ AC_DEFUN([gl_FILE_LIST], [
lib/fseterr.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
@@ -3581,9 +3902,12 @@ 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-lock.c
lib/setlocale_null-unlocked.c
lib/setlocale_null.c
@@ -3609,6 +3933,7 @@ AC_DEFUN([gl_FILE_LIST], [
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 +4342,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
@@ -4135,6 +4462,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,14 +4775,21 @@ 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
m4/calloc.m4
+ m4/chdir-long.m4
m4/close.m4
+ m4/closedir.m4
m4/codeset.m4
m4/ctype_h.m4
+ m4/d-ino.m4
+ m4/dirent_h.m4
+ m4/dirfd.m4
m4/double-slash-root.m4
+ m4/dup.m4
m4/dup2.m4
m4/eealloc.m4
m4/environ.m4
@@ -4464,12 +4799,16 @@ 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/fchdir.m4
m4/fcntl-o.m4
m4/fcntl.m4
m4/fcntl_h.m4
m4/fdopen.m4
+ m4/fdopendir.m4
+ m4/filenamecat.m4
m4/flexmember.m4
m4/float_h.m4
m4/fpieee.m4
@@ -4478,10 +4817,12 @@ AC_DEFUN([gl_FILE_LIST], [
m4/frexpl.m4
m4/fseterr.m4
m4/fstat.m4
+ m4/fstatat.m4
m4/ftruncate.m4
+ m4/getcwd-abort-bug.m4
+ m4/getcwd-path-max.m4
m4/getcwd.m4
m4/getdtablesize.m4
- m4/getpagesize.m4
m4/getprogname.m4
m4/gettimeofday.m4
m4/gnulib-common.m4
@@ -4517,6 +4858,7 @@ 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
@@ -4536,6 +4878,8 @@ AC_DEFUN([gl_FILE_LIST], [
m4/mbstate_t.m4
m4/mbtowc.m4
m4/memchr.m4
+ m4/mempcpy.m4
+ m4/memrchr.m4
m4/minmax.m4
m4/mmap-anon.m4
m4/mode_t.m4
@@ -4547,10 +4891,14 @@ 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
+ m4/openat.m4
+ m4/opendir.m4
m4/pathmax.m4
m4/perror.m4
m4/pid_t.m4
@@ -4559,17 +4907,26 @@ 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
m4/raise.m4
m4/random.m4
m4/random_r.m4
+ m4/readdir.m4
m4/realloc.m4
m4/reallocarray.m4
m4/relocatable-lib.m4
+ m4/rewinddir.m4
+ m4/save-cwd.m4
m4/sched_h.m4
m4/sched_yield.m4
m4/select.m4
@@ -4597,12 +4954,15 @@ AC_DEFUN([gl_FILE_LIST], [
m4/stdint_h.m4
m4/stdio_h.m4
m4/stdlib_h.m4
+ m4/stpcpy.m4
+ m4/strdup.m4
m4/strerror.m4
m4/strerror_r.m4
m4/string_h.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
@@ -4619,6 +4979,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/unictype_h.m4
m4/unimetadata_h.m4
m4/uninorm_h.m4
+ m4/unistd-safer.m4
m4/unistd_h.m4
m4/usleep.m4
m4/vararrays.m4
@@ -4626,7 +4987,6 @@ AC_DEFUN([gl_FILE_LIST], [
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
@@ -4634,10 +4994,12 @@ AC_DEFUN([gl_FILE_LIST], [
m4/wcwidth.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
@@ -4645,6 +5007,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/macros.h
tests/minus-zero.h
tests/nap.h
+ tests/qemu.h
tests/randomd.c
tests/randoml.c
tests/signature.h
@@ -4707,18 +5070,25 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-c32tolower.sh
tests/test-c32width.c
tests/test-calloc-gnu.c
+ tests/test-chdir.c
tests/test-cloexec.c
tests/test-close.c
tests/test-connect.c
tests/test-ctype.c
+ tests/test-dirent.c
+ tests/test-dirfd.c
+ tests/test-dup-safer.c
+ tests/test-dup.c
tests/test-dup2.c
tests/test-environ.c
tests/test-errno.c
tests/test-error.c
tests/test-error.sh
+ tests/test-fchdir.c
tests/test-fcntl-h.c
tests/test-fcntl.c
tests/test-fdopen.c
+ tests/test-fdopendir.c
tests/test-fgetc.c
tests/test-float.c
tests/test-fputc.c
@@ -4729,10 +5099,13 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-frexpl.c
tests/test-fseterr.c
tests/test-fstat.c
+ tests/test-fstatat.c
tests/test-ftruncate.c
tests/test-ftruncate.sh
tests/test-fwrite.c
tests/test-getcwd-lgpl.c
+ tests/test-getcwd.c
+ tests/test-getcwd.sh
tests/test-getdtablesize.c
tests/test-getprogname.c
tests/test-gettimeofday.c
@@ -4802,12 +5175,16 @@ AC_DEFUN([gl_FILE_LIST], [
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-memrchr.c
tests/test-nanosleep.c
tests/test-netinet_in.c
tests/test-once.c
tests/test-open.c
tests/test-open.h
+ tests/test-openat.c
tests/test-pathmax.c
tests/test-perror.c
tests/test-perror.sh
@@ -4816,10 +5193,17 @@ 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
@@ -4899,6 +5283,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
@@ -5124,6 +5512,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
@@ -5184,12 +5573,15 @@ 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/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/unimetadata/test-u-version.c
@@ -5436,12 +5828,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/virtualbox.h
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/assure.h
+ tests=lib/at-func.c
tests=lib/basename-lgpl.c
tests=lib/basename-lgpl.h
tests=lib/binary-io.c
@@ -5454,27 +5850,45 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/c32tob.c
tests=lib/calloc.c
tests=lib/cdefs.h
+ tests=lib/chdir-long.c
+ tests=lib/chdir-long.h
tests=lib/cloexec.c
tests=lib/cloexec.h
tests=lib/close.c
+ tests=lib/closedir.c
+ tests=lib/concat-filename.c
+ tests=lib/concat-filename.h
tests=lib/connect.c
tests=lib/ctype.in.h
+ tests=lib/dirent-private.h
+ tests=lib/dirent.in.h
+ tests=lib/dirfd.c
+ tests=lib/dup-safer-flag.c
+ tests=lib/dup-safer.c
+ tests=lib/dup.c
tests=lib/dup2.c
tests=lib/error.c
tests=lib/error.in.h
tests=lib/exitfail.c
tests=lib/exitfail.h
+ tests=lib/fchdir.c
tests=lib/fcntl.c
tests=lib/fcntl.in.h
tests=lib/fd-hook.c
tests=lib/fd-hook.h
+ tests=lib/fd-safer-flag.c
+ tests=lib/fd-safer.c
tests=lib/fdopen.c
+ tests=lib/fdopendir.c
tests=lib/filename.h
+ tests=lib/filenamecat-lgpl.c
+ tests=lib/filenamecat.h
tests=lib/fstat.c
+ tests=lib/fstatat.c
tests=lib/ftruncate.c
tests=lib/getcwd-lgpl.c
+ tests=lib/getcwd.c
tests=lib/getdtablesize.c
- tests=lib/getpagesize.c
tests=lib/getprogname.c
tests=lib/getprogname.h
tests=lib/gettext.h
@@ -5496,6 +5910,8 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/malloc.c
tests=lib/mbtowc-impl.h
tests=lib/mbtowc.c
+ tests=lib/mempcpy.c
+ tests=lib/memrchr.c
tests=lib/msvc-inval.c
tests=lib/msvc-inval.h
tests=lib/msvc-nothrow.c
@@ -5504,22 +5920,35 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/nanosleep.c
tests=lib/netinet_in.in.h
tests=lib/open.c
+ tests=lib/openat-die.c
+ tests=lib/openat-priv.h
+ tests=lib/openat-proc.c
+ tests=lib/openat.c
+ tests=lib/openat.h
+ tests=lib/opendir.c
tests=lib/pathmax.h
tests=lib/perror.c
+ tests=lib/pipe-safer.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
tests=lib/random.c
tests=lib/random_r.c
+ tests=lib/readdir.c
tests=lib/realloc.c
tests=lib/reallocarray.c
+ tests=lib/rewinddir.c
tests=lib/same-inode.c
tests=lib/same-inode.h
- tests=lib/sched.in.h
+ tests=lib/save-cwd.c
+ tests=lib/save-cwd.h
tests=lib/sched_yield.c
tests=lib/select.c
tests=lib/setenv.c
@@ -5542,6 +5971,8 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/stdio-read.c
tests=lib/stdio-write.c
tests=lib/stdio.in.h
+ tests=lib/stpcpy.c
+ tests=lib/strdup.c
tests=lib/strerror-override.c
tests=lib/strerror-override.h
tests=lib/strerror.c
@@ -5555,7 +5986,8 @@ 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/unistd--.h
+ tests=lib/unistd-safer.h
tests=lib/unsetenv.c
tests=lib/usleep.c
tests=lib/verify.h
@@ -5565,11 +5997,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/host-cpu-c-abi.m4 b/gnulib-m4/host-cpu-c-abi.m4
index e860a19e..80a83668 100644
--- a/gnulib-m4/host-cpu-c-abi.m4
+++ b/gnulib-m4/host-cpu-c-abi.m4
@@ -1,4 +1,5 @@
-# host-cpu-c-abi.m4 serial 17
+# host-cpu-c-abi.m4
+# serial 18
dnl Copyright (C) 2002-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,
@@ -35,7 +36,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,
diff --git a/gnulib-m4/iconv.m4 b/gnulib-m4/iconv.m4
index 2a7edd31..b414bfca 100644
--- a/gnulib-m4/iconv.m4
+++ b/gnulib-m4/iconv.m4
@@ -1,4 +1,5 @@
-# iconv.m4 serial 27
+# iconv.m4
+# serial 28
dnl Copyright (C) 2000-2002, 2007-2014, 2016-2024 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
@@ -74,7 +75,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 +114,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 +159,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 +178,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 +198,7 @@ AC_DEFUN([AM_ICONV_LINK],
&inptr, &inbytesleft,
&outptr, &outbytesleft);
if ((int)res > 0)
- result |= 8;
+ result |= 16;
iconv_close (cd_88591_to_utf8);
}
}
@@ -186,7 +216,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..08ecb8c6 100644
--- a/gnulib-m4/iconv_h.m4
+++ b/gnulib-m4/iconv_h.m4
@@ -1,4 +1,5 @@
-# iconv_h.m4 serial 16
+# iconv_h.m4
+# serial 16
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/iconv_open.m4 b/gnulib-m4/iconv_open.m4
index c6fe346b..61e62ece 100644
--- a/gnulib-m4/iconv_open.m4
+++ b/gnulib-m4/iconv_open.m4
@@ -1,4 +1,5 @@
-# iconv_open.m4 serial 17
+# iconv_open.m4
+# serial 17
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/include_next.m4 b/gnulib-m4/include_next.m4
index 70cb746f..03e85251 100644
--- a/gnulib-m4/include_next.m4
+++ b/gnulib-m4/include_next.m4
@@ -1,4 +1,5 @@
-# include_next.m4 serial 27
+# include_next.m4
+# serial 27
dnl Copyright (C) 2006-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,
diff --git a/gnulib-m4/inet_pton.m4 b/gnulib-m4/inet_pton.m4
index 1e0be330..28ae9c06 100644
--- a/gnulib-m4/inet_pton.m4
+++ b/gnulib-m4/inet_pton.m4
@@ -1,4 +1,5 @@
-# inet_pton.m4 serial 20
+# inet_pton.m4
+# serial 20
dnl Copyright (C) 2006, 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/inline.m4 b/gnulib-m4/inline.m4
index 208f7423..f962bde1 100644
--- a/gnulib-m4/inline.m4
+++ b/gnulib-m4/inline.m4
@@ -1,4 +1,5 @@
-# inline.m4 serial 4
+# inline.m4
+# serial 4
dnl Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/intl-thread-locale.m4 b/gnulib-m4/intl-thread-locale.m4
index 63efc44f..970c89bf 100644
--- a/gnulib-m4/intl-thread-locale.m4
+++ b/gnulib-m4/intl-thread-locale.m4
@@ -1,4 +1,5 @@
-# intl-thread-locale.m4 serial 12
+# intl-thread-locale.m4
+# serial 12
dnl Copyright (C) 2015-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,
diff --git a/gnulib-m4/intlmacosx.m4 b/gnulib-m4/intlmacosx.m4
index 450eb889..36b4eb62 100644
--- a/gnulib-m4/intlmacosx.m4
+++ b/gnulib-m4/intlmacosx.m4
@@ -1,4 +1,5 @@
-# intlmacosx.m4 serial 10 (gettext-0.23)
+# intlmacosx.m4
+# serial 10 (gettext-0.23)
dnl Copyright (C) 2004-2014, 2016, 2019-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/intmax_t.m4 b/gnulib-m4/intmax_t.m4
index d3d21201..72858ea8 100644
--- a/gnulib-m4/intmax_t.m4
+++ b/gnulib-m4/intmax_t.m4
@@ -1,4 +1,5 @@
-# intmax_t.m4 serial 9
+# intmax_t.m4
+# serial 9
dnl Copyright (C) 1997-2004, 2006-2007, 2009-2024 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
diff --git a/gnulib-m4/inttypes.m4 b/gnulib-m4/inttypes.m4
index 6abf9dbe..c43cd162 100644
--- a/gnulib-m4/inttypes.m4
+++ b/gnulib-m4/inttypes.m4
@@ -1,4 +1,5 @@
-# inttypes.m4 serial 37
+# inttypes.m4
+# serial 37
dnl Copyright (C) 2006-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,
diff --git a/gnulib-m4/inttypes_h.m4 b/gnulib-m4/inttypes_h.m4
index ae0a00f0..3b9da5b0 100644
--- a/gnulib-m4/inttypes_h.m4
+++ b/gnulib-m4/inttypes_h.m4
@@ -1,4 +1,5 @@
-# inttypes_h.m4 serial 10
+# inttypes_h.m4
+# serial 10
dnl Copyright (C) 1997-2004, 2006, 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/ioctl.m4 b/gnulib-m4/ioctl.m4
index 42788830..f4592e1e 100644
--- a/gnulib-m4/ioctl.m4
+++ b/gnulib-m4/ioctl.m4
@@ -1,4 +1,5 @@
-# ioctl.m4 serial 6
+# ioctl.m4
+# serial 6
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/isblank.m4 b/gnulib-m4/isblank.m4
index d07472cd..43bdd94f 100644
--- a/gnulib-m4/isblank.m4
+++ b/gnulib-m4/isblank.m4
@@ -1,4 +1,5 @@
-# isblank.m4 serial 3
+# isblank.m4
+# serial 3
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,
diff --git a/gnulib-m4/isnand.m4 b/gnulib-m4/isnand.m4
index c6a54f2f..7f7d88d8 100644
--- a/gnulib-m4/isnand.m4
+++ b/gnulib-m4/isnand.m4
@@ -1,4 +1,5 @@
-# isnand.m4 serial 14
+# isnand.m4
+# serial 15
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -6,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
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..c71e40fd 100644
--- a/gnulib-m4/isnanf.m4
+++ b/gnulib-m4/isnanf.m4
@@ -1,4 +1,5 @@
-# isnanf.m4 serial 21
+# isnanf.m4
+# serial 21
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/isnanl.m4 b/gnulib-m4/isnanl.m4
index 9f7a5f13..dbdf9482 100644
--- a/gnulib-m4/isnanl.m4
+++ b/gnulib-m4/isnanl.m4
@@ -1,4 +1,5 @@
-# isnanl.m4 serial 26
+# isnanl.m4
+# serial 26
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/iswblank.m4 b/gnulib-m4/iswblank.m4
index e450f0bd..4dc12d9a 100644
--- a/gnulib-m4/iswblank.m4
+++ b/gnulib-m4/iswblank.m4
@@ -1,4 +1,5 @@
-# iswblank.m4 serial 7
+# iswblank.m4
+# serial 7
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/iswdigit.m4 b/gnulib-m4/iswdigit.m4
index d13c1ae9..f07feae4 100644
--- a/gnulib-m4/iswdigit.m4
+++ b/gnulib-m4/iswdigit.m4
@@ -1,4 +1,5 @@
-# iswdigit.m4 serial 6
+# iswdigit.m4
+# serial 9
dnl Copyright (C) 2020-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -10,7 +11,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 +26,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 +77,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 +100,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..1edf58aa 100644
--- a/gnulib-m4/iswpunct.m4
+++ b/gnulib-m4/iswpunct.m4
@@ -1,4 +1,5 @@
-# iswpunct.m4 serial 2
+# iswpunct.m4
+# serial 2
dnl Copyright (C) 2023-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,
diff --git a/gnulib-m4/iswxdigit.m4 b/gnulib-m4/iswxdigit.m4
index d42f0d13..1a8e57b0 100644
--- a/gnulib-m4/iswxdigit.m4
+++ b/gnulib-m4/iswxdigit.m4
@@ -1,4 +1,5 @@
-# iswxdigit.m4 serial 6
+# iswxdigit.m4
+# serial 9
dnl Copyright (C) 2020-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -9,7 +10,7 @@ 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 +25,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 +67,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
index 888b1612..5eee8a71 100644
--- a/gnulib-m4/langinfo_h.m4
+++ b/gnulib-m4/langinfo_h.m4
@@ -1,4 +1,5 @@
-# langinfo_h.m4 serial 12
+# 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,
diff --git a/gnulib-m4/largefile.m4 b/gnulib-m4/largefile.m4
index cbe9bc1f..28813483 100644
--- a/gnulib-m4/largefile.m4
+++ b/gnulib-m4/largefile.m4
@@ -1,11 +1,13 @@
+# largefile.m4
+# serial 2
+dnl Copyright 1992-1996, 1998-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.
+
# 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 +26,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 +88,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 +218,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 +234,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 +282,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])])
diff --git a/gnulib-m4/lcmessage.m4 b/gnulib-m4/lcmessage.m4
index 7f4646cd..35b14fe9 100644
--- a/gnulib-m4/lcmessage.m4
+++ b/gnulib-m4/lcmessage.m4
@@ -1,4 +1,5 @@
-# lcmessage.m4 serial 8
+# lcmessage.m4
+# serial 8
dnl Copyright (C) 1995-2002, 2004-2005, 2008-2014, 2016, 2019-2024 Free
dnl Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
diff --git a/gnulib-m4/ldexpl.m4 b/gnulib-m4/ldexpl.m4
index 92fa523c..aadc2bf4 100644
--- a/gnulib-m4/ldexpl.m4
+++ b/gnulib-m4/ldexpl.m4
@@ -1,4 +1,5 @@
-# ldexpl.m4 serial 19
+# ldexpl.m4
+# serial 19
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/lib-ld.m4 b/gnulib-m4/lib-ld.m4
index b17e0fda..5da3eecf 100644
--- a/gnulib-m4/lib-ld.m4
+++ b/gnulib-m4/lib-ld.m4
@@ -1,4 +1,5 @@
-# lib-ld.m4 serial 13
+# lib-ld.m4
+# serial 13
dnl Copyright (C) 1996-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,
diff --git a/gnulib-m4/lib-link.m4 b/gnulib-m4/lib-link.m4
index 1a7c1273..fb764d32 100644
--- a/gnulib-m4/lib-link.m4
+++ b/gnulib-m4/lib-link.m4
@@ -1,4 +1,5 @@
-# lib-link.m4 serial 34
+# lib-link.m4
+# serial 34
dnl Copyright (C) 2001-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,
diff --git a/gnulib-m4/lib-prefix.m4 b/gnulib-m4/lib-prefix.m4
index f327c6ef..6277f72d 100644
--- a/gnulib-m4/lib-prefix.m4
+++ b/gnulib-m4/lib-prefix.m4
@@ -1,4 +1,5 @@
-# lib-prefix.m4 serial 22
+# lib-prefix.m4
+# serial 23
dnl Copyright (C) 2001-2005, 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,
@@ -174,7 +175,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..21e0e442 100644
--- a/gnulib-m4/libunistring-base.m4
+++ b/gnulib-m4/libunistring-base.m4
@@ -1,4 +1,5 @@
-# libunistring-base.m4 serial 8
+# libunistring-base.m4
+# serial 9
dnl Copyright (C) 2010-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -152,6 +153,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 +194,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..1b619e1e 100644
--- a/gnulib-m4/limits-h.m4
+++ b/gnulib-m4/limits-h.m4
@@ -1,10 +1,12 @@
-dnl Check whether limits.h has needed features.
-
+# limits-h.m4
+# serial 1
dnl Copyright 2016-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Check whether limits.h has needed features.
+
dnl From Paul Eggert.
AC_DEFUN_ONCE([gl_LIMITS_H],
diff --git a/gnulib-m4/localcharset.m4 b/gnulib-m4/localcharset.m4
index abf07dc3..807a5eed 100644
--- a/gnulib-m4/localcharset.m4
+++ b/gnulib-m4/localcharset.m4
@@ -1,4 +1,5 @@
-# localcharset.m4 serial 8
+# localcharset.m4
+# serial 8
dnl Copyright (C) 2002, 2004, 2006, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/locale-ar.m4 b/gnulib-m4/locale-ar.m4
index e7d23f44..2dffa1df 100644
--- a/gnulib-m4/locale-ar.m4
+++ b/gnulib-m4/locale-ar.m4
@@ -1,4 +1,5 @@
-# locale-ar.m4 serial 11
+# locale-ar.m4
+# serial 12
dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -64,10 +65,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 +86,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..39d08a23
--- /dev/null
+++ b/gnulib-m4/locale-en.m4
@@ -0,0 +1,137 @@
+# locale-en.m4
+# serial 1
+dnl Copyright (C) 2003-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl 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..3832c10d 100644
--- a/gnulib-m4/locale-fr.m4
+++ b/gnulib-m4/locale-fr.m4
@@ -1,4 +1,5 @@
-# locale-fr.m4 serial 23
+# locale-fr.m4
+# serial 24
dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -70,8 +71,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 +83,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.
@@ -116,7 +119,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 +216,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 +227,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 +255,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..b94cd7ae 100644
--- a/gnulib-m4/locale-ja.m4
+++ b/gnulib-m4/locale-ja.m4
@@ -1,4 +1,5 @@
-# locale-ja.m4 serial 18
+# locale-ja.m4
+# serial 19
dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -85,10 +86,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
@@ -117,7 +119,7 @@ int main ()
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..a3ead69b 100644
--- a/gnulib-m4/locale-tr.m4
+++ b/gnulib-m4/locale-tr.m4
@@ -1,4 +1,5 @@
-# locale-tr.m4 serial 15
+# locale-tr.m4
+# serial 16
dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -78,10 +79,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 +107,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..040cab0c 100644
--- a/gnulib-m4/locale-zh.m4
+++ b/gnulib-m4/locale-zh.m4
@@ -1,4 +1,5 @@
-# locale-zh.m4 serial 18
+# locale-zh.m4
+# serial 20
dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -21,6 +22,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 +81,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 +101,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..cd1c81ec 100644
--- a/gnulib-m4/locale_h.m4
+++ b/gnulib-m4/locale_h.m4
@@ -1,4 +1,5 @@
-# locale_h.m4 serial 31
+# locale_h.m4
+# serial 31
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/localename.m4 b/gnulib-m4/localename.m4
index d91fd5de..d28dfe45 100644
--- a/gnulib-m4/localename.m4
+++ b/gnulib-m4/localename.m4
@@ -1,4 +1,5 @@
-# localename.m4 serial 12
+# localename.m4
+# serial 12
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/lock.m4 b/gnulib-m4/lock.m4
index 2ca3bf2f..eb0fc6a1 100644
--- a/gnulib-m4/lock.m4
+++ b/gnulib-m4/lock.m4
@@ -1,4 +1,5 @@
-# lock.m4 serial 14
+# lock.m4
+# serial 14
dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/lstat.m4 b/gnulib-m4/lstat.m4
index 48cc8653..f838e2cc 100644
--- a/gnulib-m4/lstat.m4
+++ b/gnulib-m4/lstat.m4
@@ -1,10 +1,9 @@
+# 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-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 Jim Meyering.
diff --git a/gnulib-m4/malloc.m4 b/gnulib-m4/malloc.m4
index 635d6726..ee6df5c3 100644
--- a/gnulib-m4/malloc.m4
+++ b/gnulib-m4/malloc.m4
@@ -1,4 +1,5 @@
-# malloc.m4 serial 31
+# malloc.m4
+# serial 34
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -44,6 +45,11 @@ AC_DEFUN([gl_FUNC_MALLOC_GNU],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_MALLOC_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_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])
diff --git a/gnulib-m4/malloca.m4 b/gnulib-m4/malloca.m4
index 77e15959..9e09d22c 100644
--- a/gnulib-m4/malloca.m4
+++ b/gnulib-m4/malloca.m4
@@ -1,4 +1,5 @@
-# malloca.m4 serial 2
+# malloca.m4
+# serial 2
dnl Copyright (C) 2003-2004, 2006-2007, 2009-2024 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
diff --git a/gnulib-m4/math_h.m4 b/gnulib-m4/math_h.m4
index 7ba3c048..7e69629c 100644
--- a/gnulib-m4/math_h.m4
+++ b/gnulib-m4/math_h.m4
@@ -1,4 +1,5 @@
-# math_h.m4 serial 126
+# math_h.m4
+# serial 140
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -42,15 +43,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 +120,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 +153,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 +169,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 +187,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])
@@ -213,6 +235,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])
@@ -231,6 +256,9 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
HAVE_LOG1PL=1; AC_SUBST([HAVE_LOG1PL])
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])
@@ -238,6 +266,12 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
HAVE_REMAINDERF=1; AC_SUBST([HAVE_REMAINDERF])
HAVE_RINT=1; AC_SUBST([HAVE_RINT])
HAVE_RINTL=1; AC_SUBST([HAVE_RINTL])
+ 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,6 +283,9 @@ 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])
@@ -316,6 +353,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 +405,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..b84eb4dc 100644
--- a/gnulib-m4/mbchar.m4
+++ b/gnulib-m4/mbchar.m4
@@ -1,4 +1,5 @@
-# mbchar.m4 serial 9
+# mbchar.m4
+# serial 9
dnl Copyright (C) 2005-2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/mbiter.m4 b/gnulib-m4/mbiter.m4
index 2f7e7885..e1f4ae65 100644
--- a/gnulib-m4/mbiter.m4
+++ b/gnulib-m4/mbiter.m4
@@ -1,4 +1,5 @@
-# mbiter.m4 serial 7
+# mbiter.m4
+# serial 7
dnl Copyright (C) 2005, 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,
diff --git a/gnulib-m4/mbrtoc32.m4 b/gnulib-m4/mbrtoc32.m4
index c1eb126a..4da0712b 100644
--- a/gnulib-m4/mbrtoc32.m4
+++ b/gnulib-m4/mbrtoc32.m4
@@ -1,4 +1,5 @@
-# mbrtoc32.m4 serial 18
+# mbrtoc32.m4
+# serial 21
dnl Copyright (C) 2014-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -26,6 +27,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 +42,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 +173,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 +230,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 +320,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..ad7a7c73 100644
--- a/gnulib-m4/mbrtowc.m4
+++ b/gnulib-m4/mbrtowc.m4
@@ -1,4 +1,5 @@
-# mbrtowc.m4 serial 44 -*- coding: utf-8 -*-
+# mbrtowc.m4
+# serial 46
dnl Copyright (C) 2001-2002, 2004-2005, 2008-2024 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
@@ -159,7 +160,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],
@@ -199,7 +200,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 +208,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 +288,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 +303,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 +314,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;
@@ -350,7 +351,7 @@ 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([gt_LOCALE_EN_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],
@@ -365,7 +366,7 @@ changequote(,)dnl
*) gl_cv_func_mbrtowc_null_arg2="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>
@@ -373,7 +374,7 @@ changequote([,])dnl
#include <wchar.h>
int main ()
{
- if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ if (setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL)
{
mbstate_t state;
wchar_t wc;
@@ -403,7 +404,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 +422,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 +434,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 +649,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 +658,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;
diff --git a/gnulib-m4/mbsinit.m4 b/gnulib-m4/mbsinit.m4
index 10a5b619..10c86ba9 100644
--- a/gnulib-m4/mbsinit.m4
+++ b/gnulib-m4/mbsinit.m4
@@ -1,4 +1,5 @@
-# mbsinit.m4 serial 10
+# mbsinit.m4
+# serial 10
dnl Copyright (C) 2008, 2010-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/mbstate_t.m4 b/gnulib-m4/mbstate_t.m4
index b2bcba45..66d65cd7 100644
--- a/gnulib-m4/mbstate_t.m4
+++ b/gnulib-m4/mbstate_t.m4
@@ -1,4 +1,5 @@
-# mbstate_t.m4 serial 14
+# mbstate_t.m4
+# serial 14
dnl Copyright (C) 2000-2002, 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,
diff --git a/gnulib-m4/mbtowc.m4 b/gnulib-m4/mbtowc.m4
index 2bdc879c..603b0c1a 100644
--- a/gnulib-m4/mbtowc.m4
+++ b/gnulib-m4/mbtowc.m4
@@ -1,4 +1,5 @@
-# mbtowc.m4 serial 5
+# mbtowc.m4
+# serial 5
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/memchr.m4 b/gnulib-m4/memchr.m4
index 6184ddc8..31ff2dac 100644
--- a/gnulib-m4/memchr.m4
+++ b/gnulib-m4/memchr.m4
@@ -1,4 +1,5 @@
-# memchr.m4 serial 19
+# memchr.m4
+# serial 20
dnl Copyright (C) 2002-2004, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -48,7 +49,7 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
if (fd >= 0)
# endif
{
- int pagesize = getpagesize ();
+ long int pagesize = sysconf (_SC_PAGESIZE);
char *two_pages =
(char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
flags, fd, 0);
diff --git a/gnulib-m4/mempcpy.m4 b/gnulib-m4/mempcpy.m4
new file mode 100644
index 00000000..377fda3c
--- /dev/null
+++ b/gnulib-m4/mempcpy.m4
@@ -0,0 +1,30 @@
+# mempcpy.m4
+# serial 14
+dnl Copyright (C) 2003-2004, 2006-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_MEMPCPY],
+[
+ dnl Persuade glibc <string.h> to declare mempcpy().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ dnl The mempcpy() declaration in lib/string.in.h uses 'restrict'.
+ AC_REQUIRE([AC_C_RESTRICT])
+
+ AC_REQUIRE([gl_STRING_H_DEFAULTS])
+ gl_CHECK_FUNCS_ANDROID([mempcpy], [[#include <string.h>]])
+ if test $ac_cv_func_mempcpy = no; then
+ HAVE_MEMPCPY=0
+ case "$gl_cv_onwards_func_mempcpy" in
+ future*) REPLACE_MEMPCPY=1 ;;
+ esac
+ fi
+])
+
+# Prerequisites of lib/mempcpy.c.
+AC_DEFUN([gl_PREREQ_MEMPCPY], [
+ :
+])
diff --git a/gnulib-m4/memrchr.m4 b/gnulib-m4/memrchr.m4
new file mode 100644
index 00000000..d8c931e9
--- /dev/null
+++ b/gnulib-m4/memrchr.m4
@@ -0,0 +1,24 @@
+# memrchr.m4
+# serial 11
+dnl Copyright (C) 2002-2003, 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_MEMRCHR],
+[
+ dnl Persuade glibc <string.h> to declare memrchr().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_STRING_H_DEFAULTS])
+ AC_CHECK_DECLS_ONCE([memrchr])
+ if test $ac_cv_have_decl_memrchr = no; then
+ HAVE_DECL_MEMRCHR=0
+ fi
+
+ AC_CHECK_FUNCS([memrchr])
+])
+
+# Prerequisites of lib/memrchr.c.
+AC_DEFUN([gl_PREREQ_MEMRCHR], [:])
diff --git a/gnulib-m4/minmax.m4 b/gnulib-m4/minmax.m4
index 5c0a927d..bc7d0c34 100644
--- a/gnulib-m4/minmax.m4
+++ b/gnulib-m4/minmax.m4
@@ -1,4 +1,5 @@
-# minmax.m4 serial 4
+# minmax.m4
+# serial 4
dnl Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/mmap-anon.m4 b/gnulib-m4/mmap-anon.m4
index 642f07db..61ca0120 100644
--- a/gnulib-m4/mmap-anon.m4
+++ b/gnulib-m4/mmap-anon.m4
@@ -1,4 +1,5 @@
-# mmap-anon.m4 serial 12
+# mmap-anon.m4
+# serial 12
dnl Copyright (C) 2005, 2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/mode_t.m4 b/gnulib-m4/mode_t.m4
index af88da51..0d5c2808 100644
--- a/gnulib-m4/mode_t.m4
+++ b/gnulib-m4/mode_t.m4
@@ -1,4 +1,5 @@
-# mode_t.m4 serial 2
+# mode_t.m4
+# serial 2
dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/msvc-inval.m4 b/gnulib-m4/msvc-inval.m4
index b8ba598e..7919ff12 100644
--- a/gnulib-m4/msvc-inval.m4
+++ b/gnulib-m4/msvc-inval.m4
@@ -1,4 +1,5 @@
-# msvc-inval.m4 serial 1
+# msvc-inval.m4
+# serial 1
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/msvc-nothrow.m4 b/gnulib-m4/msvc-nothrow.m4
index 3e332a09..007c7620 100644
--- a/gnulib-m4/msvc-nothrow.m4
+++ b/gnulib-m4/msvc-nothrow.m4
@@ -1,4 +1,5 @@
-# msvc-nothrow.m4 serial 1
+# msvc-nothrow.m4
+# serial 1
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/multiarch.m4 b/gnulib-m4/multiarch.m4
index 5f8339f5..3af29d39 100644
--- a/gnulib-m4/multiarch.m4
+++ b/gnulib-m4/multiarch.m4
@@ -1,4 +1,5 @@
-# multiarch.m4 serial 9
+# multiarch.m4
+# serial 9
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/musl.m4 b/gnulib-m4/musl.m4
index 34d2c1ff..0d4de892 100644
--- a/gnulib-m4/musl.m4
+++ b/gnulib-m4/musl.m4
@@ -1,4 +1,5 @@
-# musl.m4 serial 4
+# musl.m4
+# serial 4
dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/nan-mips.m4 b/gnulib-m4/nan-mips.m4
index d5650e19..0ec451cb 100644
--- a/gnulib-m4/nan-mips.m4
+++ b/gnulib-m4/nan-mips.m4
@@ -1,4 +1,5 @@
-# nan-mips.m4 serial 1
+# nan-mips.m4
+# serial 1
dnl Copyright (C) 2023-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,
diff --git a/gnulib-m4/nanosleep.m4 b/gnulib-m4/nanosleep.m4
index ff730b67..a7281b8a 100644
--- a/gnulib-m4/nanosleep.m4
+++ b/gnulib-m4/nanosleep.m4
@@ -1,15 +1,13 @@
+# nanosleep.m4
# serial 47
+dnl Copyright (C) 1999-2001, 2003-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
dnl 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..926f7f95 100644
--- a/gnulib-m4/netinet_in_h.m4
+++ b/gnulib-m4/netinet_in_h.m4
@@ -1,4 +1,5 @@
-# netinet_in_h.m4 serial 6
+# netinet_in_h.m4
+# serial 6
dnl Copyright (C) 2006-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,
diff --git a/gnulib-m4/nocrash.m4 b/gnulib-m4/nocrash.m4
index 9730fc09..cbe8fe82 100644
--- a/gnulib-m4/nocrash.m4
+++ b/gnulib-m4/nocrash.m4
@@ -1,4 +1,5 @@
-# nocrash.m4 serial 5
+# nocrash.m4
+# serial 5
dnl Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/off64_t.m4 b/gnulib-m4/off64_t.m4
new file mode 100644
index 00000000..34fa21eb
--- /dev/null
+++ b/gnulib-m4/off64_t.m4
@@ -0,0 +1,31 @@
+# off64_t.m4
+# serial 1
+dnl Copyright (C) 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 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..db6035db 100644
--- a/gnulib-m4/off_t.m4
+++ b/gnulib-m4/off_t.m4
@@ -1,4 +1,5 @@
-# off_t.m4 serial 1
+# off_t.m4
+# serial 1
dnl Copyright (C) 2012-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,
diff --git a/gnulib-m4/once.m4 b/gnulib-m4/once.m4
new file mode 100644
index 00000000..6b0d3239
--- /dev/null
+++ b/gnulib-m4/once.m4
@@ -0,0 +1,13 @@
+# once.m4
+# serial 1
+dnl Copyright (C) 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.
+
+AC_DEFUN([gl_ONCE],
+[
+ AC_REQUIRE([gl_THREADLIB])
+])
diff --git a/gnulib-m4/open-cloexec.m4 b/gnulib-m4/open-cloexec.m4
index a2d50329..6defdfb4 100644
--- a/gnulib-m4/open-cloexec.m4
+++ b/gnulib-m4/open-cloexec.m4
@@ -1,10 +1,12 @@
-# Test whether O_CLOEXEC is defined.
-
+# open-cloexec.m4
+# serial 1
dnl Copyright 2017-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+# Test whether O_CLOEXEC is defined.
+
AC_DEFUN([gl_PREPROC_O_CLOEXEC],
[
AC_CACHE_CHECK([for O_CLOEXEC],
diff --git a/gnulib-m4/open-slash.m4 b/gnulib-m4/open-slash.m4
index 45310c0c..03460e42 100644
--- a/gnulib-m4/open-slash.m4
+++ b/gnulib-m4/open-slash.m4
@@ -1,4 +1,5 @@
-# open-slash.m4 serial 2
+# open-slash.m4
+# serial 2
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/open.m4 b/gnulib-m4/open.m4
index 91e5c31b..62a11a11 100644
--- a/gnulib-m4/open.m4
+++ b/gnulib-m4/open.m4
@@ -1,4 +1,5 @@
-# open.m4 serial 16
+# open.m4
+# serial 16
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/openat.m4 b/gnulib-m4/openat.m4
new file mode 100644
index 00000000..e91f58f4
--- /dev/null
+++ b/gnulib-m4/openat.m4
@@ -0,0 +1,39 @@
+# openat.m4
+# serial 46
+dnl Copyright (C) 2004-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# See if we need to use our replacement for Solaris' openat et al functions.
+
+# Written by Jim Meyering.
+
+AC_DEFUN([gl_FUNC_OPENAT],
+[
+ AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([openat])
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ AC_REQUIRE([gl_PREPROC_O_CLOEXEC])
+ case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink+$gl_cv_macro_O_CLOEXEC in
+ yes+*yes+yes)
+ ;;
+ yes+*)
+ # Solaris 10 lacks O_CLOEXEC.
+ # Solaris 9 has *at functions, but uniformly mishandles trailing
+ # slash in all of them.
+ REPLACE_OPENAT=1
+ ;;
+ *)
+ HAVE_OPENAT=0
+ ;;
+ esac
+])
+
+# Prerequisites of lib/openat.c.
+AC_DEFUN([gl_PREREQ_OPENAT],
+[
+ AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
+ :
+])
diff --git a/gnulib-m4/opendir.m4 b/gnulib-m4/opendir.m4
new file mode 100644
index 00000000..d7bea481
--- /dev/null
+++ b/gnulib-m4/opendir.m4
@@ -0,0 +1,32 @@
+# opendir.m4
+# serial 7
+dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_OPENDIR],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ AC_CHECK_FUNCS([opendir])
+ if test $ac_cv_func_opendir = no; then
+ HAVE_OPENDIR=0
+ else
+ dnl Replace opendir() on native Windows and OS/2 kLIBC,
+ dnl to support fdopendir().
+ AC_REQUIRE([gl_DIRENT_DIR])
+ if test $DIR_HAS_FD_MEMBER = 0; then
+ REPLACE_OPENDIR=1
+ fi
+ dnl Replace opendir() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_OPENDIR=1
+ fi
+ ])
+ fi
+])
diff --git a/gnulib-m4/pathmax.m4 b/gnulib-m4/pathmax.m4
index a0fc296c..4280837f 100644
--- a/gnulib-m4/pathmax.m4
+++ b/gnulib-m4/pathmax.m4
@@ -1,4 +1,5 @@
-# pathmax.m4 serial 11
+# pathmax.m4
+# serial 11
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2024 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
diff --git a/gnulib-m4/perror.m4 b/gnulib-m4/perror.m4
index 6538c252..29af054e 100644
--- a/gnulib-m4/perror.m4
+++ b/gnulib-m4/perror.m4
@@ -1,4 +1,5 @@
-# perror.m4 serial 13
+# perror.m4
+# serial 13
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/pipe.m4 b/gnulib-m4/pipe.m4
index 1d3742eb..cf7a0396 100644
--- a/gnulib-m4/pipe.m4
+++ b/gnulib-m4/pipe.m4
@@ -1,4 +1,5 @@
-# pipe.m4 serial 2
+# pipe.m4
+# serial 2
dnl Copyright (C) 2010-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/printf-frexp.m4 b/gnulib-m4/printf-frexp.m4
index 9a2f767f..db6d1899 100644
--- a/gnulib-m4/printf-frexp.m4
+++ b/gnulib-m4/printf-frexp.m4
@@ -1,4 +1,5 @@
-# printf-frexp.m4 serial 5
+# printf-frexp.m4
+# serial 5
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/printf-frexpl.m4 b/gnulib-m4/printf-frexpl.m4
index 7d3b7bd1..a4f67c4f 100644
--- a/gnulib-m4/printf-frexpl.m4
+++ b/gnulib-m4/printf-frexpl.m4
@@ -1,4 +1,5 @@
-# printf-frexpl.m4 serial 10
+# printf-frexpl.m4
+# serial 10
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/printf.m4 b/gnulib-m4/printf.m4
index 6f917778..a6daa1a6 100644
--- a/gnulib-m4/printf.m4
+++ b/gnulib-m4/printf.m4
@@ -1,4 +1,5 @@
-# printf.m4 serial 90
+# printf.m4
+# serial 95
dnl Copyright (C) 2003, 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -615,6 +616,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 +628,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 +658,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/bugzilla/show_bug.cgi?id=2908>
+ 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 +897,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 +931,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)
@@ -1708,6 +1721,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
@@ -2039,7 +2057,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 +2087,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.
diff --git a/gnulib-m4/pselect.m4 b/gnulib-m4/pselect.m4
index 005b722b..23d1fadd 100644
--- a/gnulib-m4/pselect.m4
+++ b/gnulib-m4/pselect.m4
@@ -1,4 +1,5 @@
-# pselect.m4 serial 11
+# pselect.m4
+# serial 11
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/pthread-cond.m4 b/gnulib-m4/pthread-cond.m4
new file mode 100644
index 00000000..b9bd9a4b
--- /dev/null
+++ b/gnulib-m4/pthread-cond.m4
@@ -0,0 +1,37 @@
+# pthread-cond.m4
+# serial 3
+dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+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..7a0ea0f2
--- /dev/null
+++ b/gnulib-m4/pthread-mutex.m4
@@ -0,0 +1,72 @@
+# pthread-mutex.m4
+# serial 4
+dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+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..46b8840e
--- /dev/null
+++ b/gnulib-m4/pthread-once.m4
@@ -0,0 +1,36 @@
+# pthread-once.m4
+# serial 3
+dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_PTHREAD_ONCE],
+[
+ 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_ONCE=1
+ else
+ if test $HAVE_PTHREAD_H = 0; then
+ HAVE_PTHREAD_ONCE=0
+ 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
+ fi
+ fi
+])
diff --git a/gnulib-m4/pthread-rwlock.m4 b/gnulib-m4/pthread-rwlock.m4
new file mode 100644
index 00000000..0e203606
--- /dev/null
+++ b/gnulib-m4/pthread-rwlock.m4
@@ -0,0 +1,461 @@
+# pthread-rwlock.m4
+# serial 7
+dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+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 IRIX 6.5, Solaris 9, Cygwin, the pthread_rwlock_timed*lock functions
+ dnl don't 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 (), 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..67a50fa4
--- /dev/null
+++ b/gnulib-m4/pthread-spin.m4
@@ -0,0 +1,71 @@
+# pthread-spin.m4
+# serial 8
+dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+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..83cd7795 100644
--- a/gnulib-m4/pthread-thread.m4
+++ b/gnulib-m4/pthread-thread.m4
@@ -1,4 +1,5 @@
-# pthread-thread.m4 serial 3
+# pthread-thread.m4
+# serial 3
dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/pthread_h.m4 b/gnulib-m4/pthread_h.m4
index c33afa0c..42001213 100644
--- a/gnulib-m4/pthread_h.m4
+++ b/gnulib-m4/pthread_h.m4
@@ -1,10 +1,11 @@
-# pthread_h.m4 serial 9
+# pthread_h.m4
+# serial 11
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_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 +42,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..9b175d54
--- /dev/null
+++ b/gnulib-m4/pthread_mutex_timedlock.m4
@@ -0,0 +1,48 @@
+# pthread_mutex_timedlock.m4
+# serial 6
+dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+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..b8b5b117 100644
--- a/gnulib-m4/pthread_rwlock_rdlock.m4
+++ b/gnulib-m4/pthread_rwlock_rdlock.m4
@@ -1,4 +1,5 @@
-# pthread_rwlock_rdlock.m4 serial 8
+# pthread_rwlock_rdlock.m4
+# serial 8
dnl Copyright (C) 2017-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/pthread_sigmask.m4 b/gnulib-m4/pthread_sigmask.m4
index cb2ee900..437869f6 100644
--- a/gnulib-m4/pthread_sigmask.m4
+++ b/gnulib-m4/pthread_sigmask.m4
@@ -1,4 +1,5 @@
-# pthread_sigmask.m4 serial 23
+# pthread_sigmask.m4
+# serial 23
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/putenv.m4 b/gnulib-m4/putenv.m4
index da6abec2..5616fdf5 100644
--- a/gnulib-m4/putenv.m4
+++ b/gnulib-m4/putenv.m4
@@ -1,4 +1,5 @@
-# putenv.m4 serial 27
+# putenv.m4
+# serial 28
dnl Copyright (C) 2002-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,
@@ -60,5 +61,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..82bf236d 100644
--- a/gnulib-m4/raise.m4
+++ b/gnulib-m4/raise.m4
@@ -1,4 +1,5 @@
-# raise.m4 serial 4
+# raise.m4
+# serial 4
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/random.m4 b/gnulib-m4/random.m4
index 911c5d0e..92cfcd57 100644
--- a/gnulib-m4/random.m4
+++ b/gnulib-m4/random.m4
@@ -1,4 +1,5 @@
-# random.m4 serial 8
+# random.m4
+# serial 8
dnl Copyright (C) 2012-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,
diff --git a/gnulib-m4/random_r.m4 b/gnulib-m4/random_r.m4
index 6c5457e9..b2464fda 100644
--- a/gnulib-m4/random_r.m4
+++ b/gnulib-m4/random_r.m4
@@ -1,3 +1,4 @@
+# random_r.m4
# serial 5
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
diff --git a/gnulib-m4/readdir.m4 b/gnulib-m4/readdir.m4
new file mode 100644
index 00000000..8634b48d
--- /dev/null
+++ b/gnulib-m4/readdir.m4
@@ -0,0 +1,23 @@
+# readdir.m4
+# serial 3
+dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_READDIR],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_FUNCS([readdir])
+ if test $ac_cv_func_readdir = no; then
+ HAVE_READDIR=0
+ else
+ dnl Replace readdir() on native Windows and OS/2 kLIBC,
+ dnl to support fdopendir().
+ AC_REQUIRE([gl_DIRENT_DIR])
+ if test $DIR_HAS_FD_MEMBER = 0; then
+ REPLACE_READDIR=1
+ fi
+ fi
+])
diff --git a/gnulib-m4/realloc.m4 b/gnulib-m4/realloc.m4
index a59af280..cc911028 100644
--- a/gnulib-m4/realloc.m4
+++ b/gnulib-m4/realloc.m4
@@ -1,4 +1,5 @@
-# realloc.m4 serial 29
+# realloc.m4
+# serial 32
dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -44,6 +45,11 @@ AC_DEFUN([gl_FUNC_REALLOC_GNU],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_REALLOC_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.
+
if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then
_AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC_FOR_REALLOC_GNU=1])
fi
diff --git a/gnulib-m4/reallocarray.m4 b/gnulib-m4/reallocarray.m4
index 20c4601e..958095e1 100644
--- a/gnulib-m4/reallocarray.m4
+++ b/gnulib-m4/reallocarray.m4
@@ -1,4 +1,5 @@
-# reallocarray.m4 serial 5
+# reallocarray.m4
+# serial 5
dnl Copyright (C) 2017-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/relocatable-lib.m4 b/gnulib-m4/relocatable-lib.m4
index d903069d..7fcf2975 100644
--- a/gnulib-m4/relocatable-lib.m4
+++ b/gnulib-m4/relocatable-lib.m4
@@ -1,4 +1,5 @@
-# relocatable-lib.m4 serial 7
+# relocatable-lib.m4
+# serial 8
dnl Copyright (C) 2003, 2005-2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -20,7 +21,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/rewinddir.m4 b/gnulib-m4/rewinddir.m4
new file mode 100644
index 00000000..c56c31aa
--- /dev/null
+++ b/gnulib-m4/rewinddir.m4
@@ -0,0 +1,23 @@
+# rewinddir.m4
+# serial 3
+dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_REWINDDIR],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_FUNCS([rewinddir])
+ if test $ac_cv_func_rewinddir = no; then
+ HAVE_REWINDDIR=0
+ else
+ dnl Replace rewinddir() on native Windows and OS/2 kLIBC,
+ dnl to support fdopendir().
+ AC_REQUIRE([gl_DIRENT_DIR])
+ if test $DIR_HAS_FD_MEMBER = 0; then
+ REPLACE_REWINDDIR=1
+ fi
+ fi
+])
diff --git a/gnulib-m4/save-cwd.m4 b/gnulib-m4/save-cwd.m4
new file mode 100644
index 00000000..bb54a0eb
--- /dev/null
+++ b/gnulib-m4/save-cwd.m4
@@ -0,0 +1,12 @@
+# save-cwd.m4
+# serial 10
+dnl Copyright (C) 2002-2006, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Prerequisites for lib/save-cwd.c.
+AC_DEFUN([gl_SAVE_CWD],
+[
+ AC_CHECK_FUNCS_ONCE([fchdir])
+])
diff --git a/gnulib-m4/sched_h.m4 b/gnulib-m4/sched_h.m4
index 2ff821e4..61c202ef 100644
--- a/gnulib-m4/sched_h.m4
+++ b/gnulib-m4/sched_h.m4
@@ -1,4 +1,5 @@
-# sched_h.m4 serial 15
+# sched_h.m4
+# serial 16
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -14,7 +15,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 +58,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..68b561b5 100644
--- a/gnulib-m4/sched_yield.m4
+++ b/gnulib-m4/sched_yield.m4
@@ -1,4 +1,5 @@
-# sched_yield.m4 serial 3
+# sched_yield.m4
+# serial 3
dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/select.m4 b/gnulib-m4/select.m4
index f3f9dcc0..fcc718ff 100644
--- a/gnulib-m4/select.m4
+++ b/gnulib-m4/select.m4
@@ -1,4 +1,5 @@
-# select.m4 serial 16
+# select.m4
+# serial 16
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,
diff --git a/gnulib-m4/semaphore.m4 b/gnulib-m4/semaphore.m4
index 9d434320..2feb905e 100644
--- a/gnulib-m4/semaphore.m4
+++ b/gnulib-m4/semaphore.m4
@@ -1,4 +1,5 @@
-# semaphore.m4 serial 2
+# semaphore.m4
+# serial 2
dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/setenv.m4 b/gnulib-m4/setenv.m4
index 21253e65..ae7fcec6 100644
--- a/gnulib-m4/setenv.m4
+++ b/gnulib-m4/setenv.m4
@@ -1,4 +1,5 @@
-# setenv.m4 serial 33
+# setenv.m4
+# serial 35
dnl Copyright (C) 2001-2004, 2006-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,
@@ -154,6 +155,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 +164,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..ef5b288f 100644
--- a/gnulib-m4/setlocale.m4
+++ b/gnulib-m4/setlocale.m4
@@ -1,4 +1,5 @@
-# setlocale.m4 serial 10
+# setlocale.m4
+# serial 10
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/setlocale_null.m4 b/gnulib-m4/setlocale_null.m4
index 54d3d46d..e5b7d28b 100644
--- a/gnulib-m4/setlocale_null.m4
+++ b/gnulib-m4/setlocale_null.m4
@@ -1,4 +1,5 @@
-# setlocale_null.m4 serial 9
+# setlocale_null.m4
+# serial 9
dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/signal_h.m4 b/gnulib-m4/signal_h.m4
index 6f7dcc73..7a7d2b3c 100644
--- a/gnulib-m4/signal_h.m4
+++ b/gnulib-m4/signal_h.m4
@@ -1,4 +1,5 @@
-# signal_h.m4 serial 22
+# signal_h.m4
+# serial 23
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -31,7 +32,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 +75,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 +90,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..fa0a0d1c 100644
--- a/gnulib-m4/signalblocking.m4
+++ b/gnulib-m4/signalblocking.m4
@@ -1,4 +1,5 @@
-# signalblocking.m4 serial 17
+# signalblocking.m4
+# serial 17
dnl Copyright (C) 2001-2002, 2006-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,
diff --git a/gnulib-m4/signbit.m4 b/gnulib-m4/signbit.m4
index 4acb0e98..e44eaa0f 100644
--- a/gnulib-m4/signbit.m4
+++ b/gnulib-m4/signbit.m4
@@ -1,4 +1,5 @@
-# signbit.m4 serial 22
+# signbit.m4
+# serial 22
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/size_max.m4 b/gnulib-m4/size_max.m4
index b3f7624f..df91cf06 100644
--- a/gnulib-m4/size_max.m4
+++ b/gnulib-m4/size_max.m4
@@ -1,4 +1,5 @@
-# size_max.m4 serial 12
+# size_max.m4
+# serial 12
dnl Copyright (C) 2003, 2005-2006, 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/sleep.m4 b/gnulib-m4/sleep.m4
index 2003698c..ec8764bd 100644
--- a/gnulib-m4/sleep.m4
+++ b/gnulib-m4/sleep.m4
@@ -1,4 +1,5 @@
-# sleep.m4 serial 13
+# sleep.m4
+# serial 14
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -32,7 +33,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..f99f43c0 100644
--- a/gnulib-m4/snan.m4
+++ b/gnulib-m4/snan.m4
@@ -1,4 +1,5 @@
-# snan.m4 serial 3
+# snan.m4
+# serial 3
dnl Copyright (C) 2023-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,
diff --git a/gnulib-m4/socketlib.m4 b/gnulib-m4/socketlib.m4
index 06339696..09f01161 100644
--- a/gnulib-m4/socketlib.m4
+++ b/gnulib-m4/socketlib.m4
@@ -1,4 +1,5 @@
-# socketlib.m4 serial 4
+# socketlib.m4
+# serial 4
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/sockets.m4 b/gnulib-m4/sockets.m4
index 7be4dc96..a3dfe92f 100644
--- a/gnulib-m4/sockets.m4
+++ b/gnulib-m4/sockets.m4
@@ -1,4 +1,5 @@
-# sockets.m4 serial 7
+# sockets.m4
+# serial 7
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/socklen.m4 b/gnulib-m4/socklen.m4
index 9c46db18..9ece0abb 100644
--- a/gnulib-m4/socklen.m4
+++ b/gnulib-m4/socklen.m4
@@ -1,4 +1,5 @@
-# socklen.m4 serial 11
+# socklen.m4
+# serial 11
dnl Copyright (C) 2005-2007, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/sockpfaf.m4 b/gnulib-m4/sockpfaf.m4
index 390abfe2..44ac7fd9 100644
--- a/gnulib-m4/sockpfaf.m4
+++ b/gnulib-m4/sockpfaf.m4
@@ -1,4 +1,5 @@
-# sockpfaf.m4 serial 10
+# sockpfaf.m4
+# serial 11
dnl Copyright (C) 2004, 2006, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -63,6 +64,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 +82,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..c15f948a 100644
--- a/gnulib-m4/ssize_t.m4
+++ b/gnulib-m4/ssize_t.m4
@@ -1,4 +1,5 @@
-# ssize_t.m4 serial 6
+# ssize_t.m4
+# serial 6
dnl Copyright (C) 2001-2003, 2006, 2010-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/stat-time.m4 b/gnulib-m4/stat-time.m4
index 8bec2f5f..e8ee7d51 100644
--- a/gnulib-m4/stat-time.m4
+++ b/gnulib-m4/stat-time.m4
@@ -1,11 +1,11 @@
-# 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-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.
-# 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..fabd360c 100644
--- a/gnulib-m4/stat.m4
+++ b/gnulib-m4/stat.m4
@@ -1,10 +1,9 @@
+# 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-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_FUNC_STAT],
[
diff --git a/gnulib-m4/stdalign.m4 b/gnulib-m4/stdalign.m4
index e3c1e609..1c29d1e4 100644
--- a/gnulib-m4/stdalign.m4
+++ b/gnulib-m4/stdalign.m4
@@ -1,10 +1,12 @@
-# Check for alignas and alignof that conform to C23.
-
+# stdalign.m4
+# serial 1
dnl Copyright 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+# Check for alignas and alignof that conform to C23.
+
dnl Written by Paul Eggert and Bruno Haible.
# Prepare for substituting <stdalign.h> if it is not supported.
@@ -79,7 +81,7 @@ AC_DEFUN([gl_ALIGNASOF],
References:
ISO C23 (latest free draft
- <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf>)
+ <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf>)
sections 6.5.3.4, 6.7.5, 7.15.
C++11 (latest free draft
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>)
diff --git a/gnulib-m4/stddef_h.m4 b/gnulib-m4/stddef_h.m4
index 1bf9eb39..c7f75b37 100644
--- a/gnulib-m4/stddef_h.m4
+++ b/gnulib-m4/stddef_h.m4
@@ -1,4 +1,5 @@
-# stddef_h.m4 serial 14
+# stddef_h.m4
+# serial 17
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,
@@ -9,7 +10,6 @@ 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 +51,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>
@@ -83,6 +78,36 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
GL_GENERATE_STDDEF_H=true
fi
+ dnl https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114869
+ 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
+
+ AC_CACHE_CHECK([for clean definition of __STDC_VERSION_STDDEF_H__],
+ [gl_cv_clean_version_stddef],
+ [AC_PREPROC_IFELSE(
+ [AC_LANG_SOURCE(
+ [[/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114870 */
+ #include <stddef.h>
+ #undef __STDC_VERSION_STDDEF_H__
+ #include <time.h>
+ #ifdef __STDC_VERSION_STDDEF_H__
+ # error "<time.h> defines __STDC_VERSION_STDDEF_H__"
+ #endif
+ ]])],
+ [gl_cv_clean_version_stddef=yes],
+ [gl_cv_clean_version_stddef=no])])
+ if test "$gl_cv_clean_version_stddef" = no; then
+ STDDEF_NOT_IDEMPOTENT=1
+ GL_GENERATE_STDDEF_H=true
+ fi
+
if $GL_GENERATE_STDDEF_H; then
gl_NEXT_HEADERS([stddef.h])
fi
@@ -113,7 +138,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..2dea8469 100644
--- a/gnulib-m4/stdint.m4
+++ b/gnulib-m4/stdint.m4
@@ -1,4 +1,5 @@
-# stdint.m4 serial 63
+# stdint.m4
+# serial 63
dnl Copyright (C) 2001-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,
diff --git a/gnulib-m4/stdint_h.m4 b/gnulib-m4/stdint_h.m4
index ee9773a8..29f42160 100644
--- a/gnulib-m4/stdint_h.m4
+++ b/gnulib-m4/stdint_h.m4
@@ -1,4 +1,5 @@
-# stdint_h.m4 serial 9
+# stdint_h.m4
+# serial 9
dnl Copyright (C) 1997-2004, 2006, 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/stdio_h.m4 b/gnulib-m4/stdio_h.m4
index c19feefe..ec52ae92 100644
--- a/gnulib-m4/stdio_h.m4
+++ b/gnulib-m4/stdio_h.m4
@@ -1,4 +1,5 @@
-# stdio_h.m4 serial 63
+# stdio_h.m4
+# serial 75
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -132,6 +133,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 +154,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 +175,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..5d9b3017 100644
--- a/gnulib-m4/stdlib_h.m4
+++ b/gnulib-m4/stdlib_h.m4
@@ -1,4 +1,5 @@
-# stdlib_h.m4 serial 77
+# stdlib_h.m4
+# serial 81
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -36,7 +37,7 @@ 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],
[
@@ -44,13 +45,13 @@ AC_DEFUN_ONCE([gl_STDLIB_H],
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" ;;
+ # Guess no on Solaris and Haiku.
+ solaris* | haiku*) 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
+ if test "$LOCALE_EN_UTF8" != none; then
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <locale.h>
@@ -58,7 +59,7 @@ changequote([,])dnl
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;
@@ -109,6 +110,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])
@@ -144,6 +146,7 @@ AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS],
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])
@@ -217,6 +220,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])
@@ -258,4 +262,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..c4d71dd9
--- /dev/null
+++ b/gnulib-m4/stpcpy.m4
@@ -0,0 +1,29 @@
+# stpcpy.m4
+# serial 11
+dnl Copyright (C) 2002, 2007, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+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/strdup.m4 b/gnulib-m4/strdup.m4
new file mode 100644
index 00000000..14b1de07
--- /dev/null
+++ b/gnulib-m4/strdup.m4
@@ -0,0 +1,33 @@
+# strdup.m4
+# serial 15
+
+dnl Copyright (C) 2002-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_FUNC_STRDUP],
+[
+ AC_REQUIRE([gl_STRING_H_DEFAULTS])
+ AC_CHECK_DECLS_ONCE([strdup])
+ if test $ac_cv_have_decl_strdup = no; then
+ HAVE_DECL_STRDUP=0
+ fi
+])
+
+AC_DEFUN([gl_FUNC_STRDUP_POSIX],
+[
+ AC_REQUIRE([gl_STRING_H_DEFAULTS])
+ AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+ if test $gl_cv_func_malloc_posix != yes; then
+ REPLACE_STRDUP=1
+ fi
+ AC_CHECK_DECLS_ONCE([strdup])
+ if test $ac_cv_have_decl_strdup = no; then
+ HAVE_DECL_STRDUP=0
+ fi
+])
+
+# Prerequisites of lib/strdup.c.
+AC_DEFUN([gl_PREREQ_STRDUP], [:])
diff --git a/gnulib-m4/strerror.m4 b/gnulib-m4/strerror.m4
index a1d12612..0272c6f4 100644
--- a/gnulib-m4/strerror.m4
+++ b/gnulib-m4/strerror.m4
@@ -1,4 +1,5 @@
-# strerror.m4 serial 25
+# strerror.m4
+# serial 25
dnl Copyright (C) 2002, 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/strerror_r.m4 b/gnulib-m4/strerror_r.m4
index 903d03c3..53539721 100644
--- a/gnulib-m4/strerror_r.m4
+++ b/gnulib-m4/strerror_r.m4
@@ -1,4 +1,5 @@
-# strerror_r.m4 serial 26
+# strerror_r.m4
+# serial 28
dnl Copyright (C) 2002, 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/string_h.m4 b/gnulib-m4/string_h.m4
index 9ea748cc..f31264ae 100644
--- a/gnulib-m4/string_h.m4
+++ b/gnulib-m4/string_h.m4
@@ -1,11 +1,11 @@
-# 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 39
+dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Configure a GNU-like replacement for <string.h>.
# Written by Paul Eggert.
diff --git a/gnulib-m4/strncat.m4 b/gnulib-m4/strncat.m4
index 17550d4a..9bff2cd2 100644
--- a/gnulib-m4/strncat.m4
+++ b/gnulib-m4/strncat.m4
@@ -1,4 +1,5 @@
-# strncat.m4 serial 8
+# strncat.m4
+# serial 9
dnl Copyright (C) 2002-2004, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -44,7 +45,7 @@ AC_DEFUN_ONCE([gl_FUNC_STRNCAT],
if (fd >= 0)
# endif
{
- int pagesize = getpagesize ();
+ long int pagesize = sysconf (_SC_PAGESIZE);
char *two_pages =
(char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
flags, fd, 0);
diff --git a/gnulib-m4/strstr.m4 b/gnulib-m4/strstr.m4
index 21d7768b..d19559aa 100644
--- a/gnulib-m4/strstr.m4
+++ b/gnulib-m4/strstr.m4
@@ -1,4 +1,5 @@
-# strstr.m4 serial 24
+# strstr.m4
+# serial 25
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -94,7 +95,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..47968a1d 100644
--- a/gnulib-m4/symlink.m4
+++ b/gnulib-m4/symlink.m4
@@ -1,11 +1,12 @@
+# symlink.m4
# serial 10
-# See if we need to provide symlink replacement.
-
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.
+# See if we need to provide symlink replacement.
+
# Written by Eric Blake.
AC_DEFUN([gl_FUNC_SYMLINK],
diff --git a/gnulib-m4/sys_cdefs_h.m4 b/gnulib-m4/sys_cdefs_h.m4
new file mode 100644
index 00000000..22fa6c38
--- /dev/null
+++ b/gnulib-m4/sys_cdefs_h.m4
@@ -0,0 +1,25 @@
+# sys_cdefs_h.m4 - Is <sys/cdefs.h> compatible enough with glibc?
+# serial 2
+dnl Copyright 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 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..915dc02f 100644
--- a/gnulib-m4/sys_ioctl_h.m4
+++ b/gnulib-m4/sys_ioctl_h.m4
@@ -1,4 +1,5 @@
-# sys_ioctl_h.m4 serial 15
+# sys_ioctl_h.m4
+# serial 15
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/sys_select_h.m4 b/gnulib-m4/sys_select_h.m4
index 9e279fba..550e066e 100644
--- a/gnulib-m4/sys_select_h.m4
+++ b/gnulib-m4/sys_select_h.m4
@@ -1,4 +1,5 @@
-# sys_select_h.m4 serial 23
+# sys_select_h.m4
+# serial 23
dnl Copyright (C) 2006-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,
diff --git a/gnulib-m4/sys_socket_h.m4 b/gnulib-m4/sys_socket_h.m4
index af524849..3bf3cb47 100644
--- a/gnulib-m4/sys_socket_h.m4
+++ b/gnulib-m4/sys_socket_h.m4
@@ -1,4 +1,5 @@
-# sys_socket_h.m4 serial 29
+# sys_socket_h.m4
+# serial 29
dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/sys_stat_h.m4 b/gnulib-m4/sys_stat_h.m4
index 75018537..3cc50ce6 100644
--- a/gnulib-m4/sys_stat_h.m4
+++ b/gnulib-m4/sys_stat_h.m4
@@ -1,4 +1,5 @@
-# sys_stat_h.m4 serial 42 -*- Autoconf -*-
+# sys_stat_h.m4
+# serial 42 -*- Autoconf -*-
dnl Copyright (C) 2006-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,
diff --git a/gnulib-m4/sys_time_h.m4 b/gnulib-m4/sys_time_h.m4
index dc5353f3..d3203088 100644
--- a/gnulib-m4/sys_time_h.m4
+++ b/gnulib-m4/sys_time_h.m4
@@ -1,10 +1,11 @@
-# Configure a replacement for <sys/time.h>.
+# sys_time_h.m4
# serial 12
+dnl Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
-# 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..7c7f2655 100644
--- a/gnulib-m4/sys_types_h.m4
+++ b/gnulib-m4/sys_types_h.m4
@@ -1,4 +1,5 @@
-# sys_types_h.m4 serial 13
+# sys_types_h.m4
+# serial 14
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -22,6 +23,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])
diff --git a/gnulib-m4/sys_uio_h.m4 b/gnulib-m4/sys_uio_h.m4
index ce252ed4..a471c720 100644
--- a/gnulib-m4/sys_uio_h.m4
+++ b/gnulib-m4/sys_uio_h.m4
@@ -1,4 +1,5 @@
-# sys_uio_h.m4 serial 3
+# sys_uio_h.m4
+# serial 3
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/thread.m4 b/gnulib-m4/thread.m4
index a840de6f..96f96a7f 100644
--- a/gnulib-m4/thread.m4
+++ b/gnulib-m4/thread.m4
@@ -1,4 +1,5 @@
-# thread.m4 serial 5
+# thread.m4
+# serial 5
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/threadlib.m4 b/gnulib-m4/threadlib.m4
index 6dee893e..f5e81479 100644
--- a/gnulib-m4/threadlib.m4
+++ b/gnulib-m4/threadlib.m4
@@ -1,4 +1,5 @@
-# threadlib.m4 serial 42
+# threadlib.m4
+# serial 42
dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/time.m4 b/gnulib-m4/time.m4
index 6f2347b2..dd346419 100644
--- a/gnulib-m4/time.m4
+++ b/gnulib-m4/time.m4
@@ -1,4 +1,5 @@
-# time.m4 serial 5
+# time.m4
+# serial 6
dnl Copyright (C) 2023-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,
@@ -16,7 +17,7 @@ AC_DEFUN([gl_FUNC_TIME],
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 +33,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..88c76c03 100644
--- a/gnulib-m4/time_h.m4
+++ b/gnulib-m4/time_h.m4
@@ -1,12 +1,11 @@
-# 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-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.
-# 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 +145,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 +163,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..bb8801b1 100644
--- a/gnulib-m4/uchar_h.m4
+++ b/gnulib-m4/uchar_h.m4
@@ -1,4 +1,5 @@
-# uchar_h.m4 serial 31
+# uchar_h.m4
+# serial 31
dnl Copyright (C) 2019-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/unicase_h.m4 b/gnulib-m4/unicase_h.m4
index ad2f6215..20f2d112 100644
--- a/gnulib-m4/unicase_h.m4
+++ b/gnulib-m4/unicase_h.m4
@@ -1,4 +1,5 @@
-# unicase_h.m4 serial 1
+# unicase_h.m4
+# serial 1
dnl Copyright (C) 2023-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,
diff --git a/gnulib-m4/unictype_h.m4 b/gnulib-m4/unictype_h.m4
index 68b864bd..f36204a8 100644
--- a/gnulib-m4/unictype_h.m4
+++ b/gnulib-m4/unictype_h.m4
@@ -1,4 +1,5 @@
-# unictype_h.m4 serial 3
+# unictype_h.m4
+# serial 4
dnl Copyright (C) 2023-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,
@@ -107,6 +108,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..dc2c2220 100644
--- a/gnulib-m4/unimetadata_h.m4
+++ b/gnulib-m4/unimetadata_h.m4
@@ -1,4 +1,5 @@
-# unimetadata_h.m4 serial 1
+# unimetadata_h.m4
+# serial 1
dnl Copyright (C) 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,
diff --git a/gnulib-m4/uninorm_h.m4 b/gnulib-m4/uninorm_h.m4
index aadf5598..455a360f 100644
--- a/gnulib-m4/uninorm_h.m4
+++ b/gnulib-m4/uninorm_h.m4
@@ -1,4 +1,5 @@
-# uninorm_h.m4 serial 1
+# uninorm_h.m4
+# serial 1
dnl Copyright (C) 2023-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,
diff --git a/gnulib-m4/unistd-safer.m4 b/gnulib-m4/unistd-safer.m4
new file mode 100644
index 00000000..429d44a7
--- /dev/null
+++ b/gnulib-m4/unistd-safer.m4
@@ -0,0 +1,11 @@
+# unistd-safer.m4
+# serial 9
+dnl Copyright (C) 2002, 2005-2006, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_UNISTD_SAFER],
+[
+ AC_CHECK_FUNCS_ONCE([pipe])
+])
diff --git a/gnulib-m4/unistd_h.m4 b/gnulib-m4/unistd_h.m4
index e078bd61..04fa79c9 100644
--- a/gnulib-m4/unistd_h.m4
+++ b/gnulib-m4/unistd_h.m4
@@ -1,4 +1,5 @@
-# unistd_h.m4 serial 95
+# unistd_h.m4
+# serial 96
dnl Copyright (C) 2006-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,
@@ -247,6 +248,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
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/usleep.m4 b/gnulib-m4/usleep.m4
index c688a043..16272ab5 100644
--- a/gnulib-m4/usleep.m4
+++ b/gnulib-m4/usleep.m4
@@ -1,4 +1,5 @@
-# usleep.m4 serial 9
+# usleep.m4
+# serial 9
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,
diff --git a/gnulib-m4/vasnprintf.m4 b/gnulib-m4/vasnprintf.m4
index 21a85bb1..a02f4e1e 100644
--- a/gnulib-m4/vasnprintf.m4
+++ b/gnulib-m4/vasnprintf.m4
@@ -1,4 +1,5 @@
-# vasnprintf.m4 serial 52
+# vasnprintf.m4
+# serial 54
dnl Copyright (C) 2002-2004, 2006-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,
@@ -6,8 +7,40 @@ dnl with or without modifications, as long as this notice is preserved.
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 +74,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 +82,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 +215,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
diff --git a/gnulib-m4/visibility.m4 b/gnulib-m4/visibility.m4
index e091f028..ecf09686 100644
--- a/gnulib-m4/visibility.m4
+++ b/gnulib-m4/visibility.m4
@@ -1,4 +1,5 @@
-# visibility.m4 serial 9
+# visibility.m4
+# serial 9
dnl Copyright (C) 2005, 2008, 2010-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/warn-on-use.m4 b/gnulib-m4/warn-on-use.m4
index eef3a848..6c8c76b8 100644
--- a/gnulib-m4/warn-on-use.m4
+++ b/gnulib-m4/warn-on-use.m4
@@ -1,4 +1,5 @@
-# warn-on-use.m4 serial 11
+# warn-on-use.m4
+# serial 11
dnl Copyright (C) 2010-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/wchar_h.m4 b/gnulib-m4/wchar_h.m4
index 173f42a4..995bdc65 100644
--- a/gnulib-m4/wchar_h.m4
+++ b/gnulib-m4/wchar_h.m4
@@ -1,13 +1,13 @@
-dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
-
+# wchar_h.m4
+# serial 64
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-dnl 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],
[
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..cc0e935f 100644
--- a/gnulib-m4/wcrtomb.m4
+++ b/gnulib-m4/wcrtomb.m4
@@ -1,4 +1,5 @@
-# wcrtomb.m4 serial 19
+# wcrtomb.m4
+# serial 21
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -35,7 +36,7 @@ AC_DEFUN([gl_FUNC_WCRTOMB],
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
@@ -89,7 +90,7 @@ changequote(,)dnl
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 +106,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..d66c6ff1 100644
--- a/gnulib-m4/wctob.m4
+++ b/gnulib-m4/wctob.m4
@@ -1,4 +1,5 @@
-# wctob.m4 serial 14
+# wctob.m4
+# serial 14
dnl Copyright (C) 2008-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/wctomb.m4 b/gnulib-m4/wctomb.m4
index d8f36527..abba2112 100644
--- a/gnulib-m4/wctomb.m4
+++ b/gnulib-m4/wctomb.m4
@@ -1,4 +1,5 @@
-# wctomb.m4 serial 2
+# wctomb.m4
+# serial 2
dnl Copyright (C) 2011-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/wctype_h.m4 b/gnulib-m4/wctype_h.m4
index c8993949..a3b07c2a 100644
--- a/gnulib-m4/wctype_h.m4
+++ b/gnulib-m4/wctype_h.m4
@@ -1,4 +1,5 @@
-# wctype_h.m4 serial 33
+# wctype_h.m4
+# serial 33
dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
diff --git a/gnulib-m4/wcwidth.m4 b/gnulib-m4/wcwidth.m4
index 53a26c7d..f2fa1980 100644
--- a/gnulib-m4/wcwidth.m4
+++ b/gnulib-m4/wcwidth.m4
@@ -1,4 +1,5 @@
-# wcwidth.m4 serial 36
+# wcwidth.m4
+# serial 38
dnl Copyright (C) 2006-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,
@@ -12,7 +13,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 +41,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, OSF/1 5.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/wint_t.m4 b/gnulib-m4/wint_t.m4
index 21350f56..883fac28 100644
--- a/gnulib-m4/wint_t.m4
+++ b/gnulib-m4/wint_t.m4
@@ -1,4 +1,5 @@
-# wint_t.m4 serial 11
+# wint_t.m4
+# serial 11
dnl Copyright (C) 2003, 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/xalloc.m4 b/gnulib-m4/xalloc.m4
index f60ea3d5..d44d0f08 100644
--- a/gnulib-m4/xalloc.m4
+++ b/gnulib-m4/xalloc.m4
@@ -1,4 +1,5 @@
-# xalloc.m4 serial 18
+# xalloc.m4
+# serial 18
dnl Copyright (C) 2002-2006, 2009-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/xgetcwd.m4 b/gnulib-m4/xgetcwd.m4
new file mode 100644
index 00000000..1bb95692
--- /dev/null
+++ b/gnulib-m4/xgetcwd.m4
@@ -0,0 +1,11 @@
+# xgetcwd.m4
+# serial 8
+dnl Copyright (C) 2002-2006, 2009-2024 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_XGETCWD],
+[
+ :
+])
diff --git a/gnulib-m4/xsize.m4 b/gnulib-m4/xsize.m4
index 6125f9c1..e5784973 100644
--- a/gnulib-m4/xsize.m4
+++ b/gnulib-m4/xsize.m4
@@ -1,4 +1,5 @@
-# xsize.m4 serial 5
+# xsize.m4
+# serial 5
dnl Copyright (C) 2003-2004, 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,
diff --git a/gnulib-m4/yield.m4 b/gnulib-m4/yield.m4
index cbed8725..842313a0 100644
--- a/gnulib-m4/yield.m4
+++ b/gnulib-m4/yield.m4
@@ -1,4 +1,5 @@
-# yield.m4 serial 5
+# yield.m4
+# serial 5
dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/zzgnulib.m4 b/gnulib-m4/zzgnulib.m4
index eed5ecbf..710fba4e 100644
--- a/gnulib-m4/zzgnulib.m4
+++ b/gnulib-m4/zzgnulib.m4
@@ -1,4 +1,5 @@
-# zzgnulib.m4 serial 1
+# zzgnulib.m4
+# serial 1
dnl Copyright (C) 2020-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,