diff options
Diffstat (limited to 'gnulib-m4')
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, |