Update from Gnulib by running admin/merge-gnulib

This commit is contained in:
Paul Eggert 2023-02-04 14:45:11 -08:00
parent 7e1c7db1cb
commit 04d97e76a9
44 changed files with 992 additions and 432 deletions

View file

@ -1,10 +1,10 @@
#! /bin/sh #! /bin/sh
# Attempt to guess a canonical system name. # Attempt to guess a canonical system name.
# Copyright 1992-2022 Free Software Foundation, Inc. # Copyright 1992-2023 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale # shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2022-09-17' timestamp='2023-01-01'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
@ -60,7 +60,7 @@ version="\
GNU config.guess ($timestamp) GNU config.guess ($timestamp)
Originally written by Per Bothner. Originally written by Per Bothner.
Copyright 1992-2022 Free Software Foundation, Inc. Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."

View file

@ -1,10 +1,10 @@
#! /bin/sh #! /bin/sh
# Configuration validation subroutine script. # Configuration validation subroutine script.
# Copyright 1992-2022 Free Software Foundation, Inc. # Copyright 1992-2023 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale # shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2022-09-17' timestamp='2023-01-21'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\ version="\
GNU config.sub ($timestamp) GNU config.sub ($timestamp)
Copyright 1992-2022 Free Software Foundation, Inc. Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@ -1075,7 +1075,7 @@ case $cpu-$vendor in
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
cpu=i586 cpu=i586
;; ;;
pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
cpu=i686 cpu=i686
;; ;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)

View file

@ -26,6 +26,11 @@
AIX system header files and several gnulib header files use precisely AIX system header files and several gnulib header files use precisely
this syntax with 'extern'. */ this syntax with 'extern'. */
# define _Noreturn [[noreturn]] # define _Noreturn [[noreturn]]
# elif (defined __clang__ && __clang_major__ < 16 \
&& defined _GL_WORK_AROUND_LLVM_BUG_59792)
/* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
that rare LLVM bug, though you may get many false-alarm warnings. */
# define _Noreturn
# elif ((!defined __cplusplus || defined __clang__) \ # elif ((!defined __cplusplus || defined __clang__) \
&& (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
|| (!defined __STRICT_ANSI__ \ || (!defined __STRICT_ANSI__ \

View file

@ -140,32 +140,37 @@
#endif #endif
/* Gnulib avoids these definitions, as they don't work on non-glibc platforms.
In particular, __bos and __bos0 are defined differently in the Android libc.
*/
#ifndef __GNULIB_CDEFS
/* Fortify support. */ /* Fortify support. */
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) # define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
#define __bos0(ptr) __builtin_object_size (ptr, 0) # define __bos0(ptr) __builtin_object_size (ptr, 0)
/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */ /* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */
#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \ # if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \
|| __GNUC_PREREQ (12, 0)) || __GNUC_PREREQ (12, 0))
# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0) # define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0)
# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1) # define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1)
#else # else
# define __glibc_objsize0(__o) __bos0 (__o) # define __glibc_objsize0(__o) __bos0 (__o)
# define __glibc_objsize(__o) __bos (__o) # define __glibc_objsize(__o) __bos (__o)
#endif # endif
/* Compile time conditions to choose between the regular, _chk and _chk_warn /* Compile time conditions to choose between the regular, _chk and _chk_warn
variants. These conditions should get evaluated to constant and optimized variants. These conditions should get evaluated to constant and optimized
away. */ away. */
#define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s)) # define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s))
#define __glibc_unsigned_or_positive(__l) \ # define __glibc_unsigned_or_positive(__l) \
((__typeof (__l)) 0 < (__typeof (__l)) -1 \ ((__typeof (__l)) 0 < (__typeof (__l)) -1 \
|| (__builtin_constant_p (__l) && (__l) > 0)) || (__builtin_constant_p (__l) && (__l) > 0))
/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ /* Length is known to be safe at compile time if the __L * __S <= __OBJSZ
condition can be folded to a constant and if it is true, or unknown (-1) */ condition can be folded to a constant and if it is true, or unknown (-1) */
#define __glibc_safe_or_unknown_len(__l, __s, __osz) \ # define __glibc_safe_or_unknown_len(__l, __s, __osz) \
((__osz) == (__SIZE_TYPE__) -1 \ ((__osz) == (__SIZE_TYPE__) -1 \
|| (__glibc_unsigned_or_positive (__l) \ || (__glibc_unsigned_or_positive (__l) \
&& __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \
@ -175,7 +180,7 @@
/* Conversely, we know at compile time that the length is unsafe if the /* Conversely, we know at compile time that the length is unsafe if the
__L * __S <= __OBJSZ condition can be folded to a constant and if it is __L * __S <= __OBJSZ condition can be folded to a constant and if it is
false. */ false. */
#define __glibc_unsafe_len(__l, __s, __osz) \ # define __glibc_unsafe_len(__l, __s, __osz) \
(__glibc_unsigned_or_positive (__l) \ (__glibc_unsigned_or_positive (__l) \
&& __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \
__s, __osz)) \ __s, __osz)) \
@ -184,7 +189,7 @@
/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be /* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be
declared. */ declared. */
#define __glibc_fortify(f, __l, __s, __osz, ...) \ # define __glibc_fortify(f, __l, __s, __osz, ...) \
(__glibc_safe_or_unknown_len (__l, __s, __osz) \ (__glibc_safe_or_unknown_len (__l, __s, __osz) \
? __ ## f ## _alias (__VA_ARGS__) \ ? __ ## f ## _alias (__VA_ARGS__) \
: (__glibc_unsafe_len (__l, __s, __osz) \ : (__glibc_unsafe_len (__l, __s, __osz) \
@ -194,13 +199,16 @@
/* Fortify function f, where object size argument passed to f is the number of /* Fortify function f, where object size argument passed to f is the number of
elements and not total size. */ elements and not total size. */
#define __glibc_fortify_n(f, __l, __s, __osz, ...) \ # define __glibc_fortify_n(f, __l, __s, __osz, ...) \
(__glibc_safe_or_unknown_len (__l, __s, __osz) \ (__glibc_safe_or_unknown_len (__l, __s, __osz) \
? __ ## f ## _alias (__VA_ARGS__) \ ? __ ## f ## _alias (__VA_ARGS__) \
: (__glibc_unsafe_len (__l, __s, __osz) \ : (__glibc_unsafe_len (__l, __s, __osz) \
? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \ ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \
: __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \ : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \
#endif
#if __GNUC_PREREQ (4,3) #if __GNUC_PREREQ (4,3)
# define __warnattr(msg) __attribute__((__warning__ (msg))) # define __warnattr(msg) __attribute__((__warning__ (msg)))
# define __errordecl(name, msg) \ # define __errordecl(name, msg) \

View file

@ -41,7 +41,7 @@ __fpending (FILE *fp)
return fp->_IO_write_ptr - fp->_IO_write_base; return fp->_IO_write_ptr - fp->_IO_write_base;
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
/* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin < 1.7.34, Minix 3, Android */ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin < 1.7.34, Minix 3, Android */
return fp->_p - fp->_bf._base; return fp_->_p - fp_->_bf._base;
#elif defined __EMX__ /* emx+gcc */ #elif defined __EMX__ /* emx+gcc */
return fp->_ptr - fp->_buffer; return fp->_ptr - fp->_buffer;
#elif defined __minix /* Minix */ #elif defined __minix /* Minix */

View file

@ -411,6 +411,7 @@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@
GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@
GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@
GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@
GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@
GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@ GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@
GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@
GL_GNULIB_GETTIMEOFDAY = @GL_GNULIB_GETTIMEOFDAY@ GL_GNULIB_GETTIMEOFDAY = @GL_GNULIB_GETTIMEOFDAY@
@ -734,6 +735,7 @@ HAVE_GETLOGIN = @HAVE_GETLOGIN@
HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETOPT_H = @HAVE_GETOPT_H@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPASS = @HAVE_GETPASS@
HAVE_GETPROGNAME = @HAVE_GETPROGNAME@
HAVE_GETRANDOM = @HAVE_GETRANDOM@ HAVE_GETRANDOM = @HAVE_GETRANDOM@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
@ -741,6 +743,8 @@ HAVE_GETUMASK = @HAVE_GETUMASK@
HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GRANTPT = @HAVE_GRANTPT@
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
HAVE_GSETTINGS = @HAVE_GSETTINGS@ HAVE_GSETTINGS = @HAVE_GSETTINGS@
HAVE_IMAXABS = @HAVE_IMAXABS@
HAVE_IMAXDIV = @HAVE_IMAXDIV@
HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INITSTATE = @HAVE_INITSTATE@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
@ -823,6 +827,7 @@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@
HAVE_SLEEP = @HAVE_SLEEP@ HAVE_SLEEP = @HAVE_SLEEP@
HAVE_SPAWN_H = @HAVE_SPAWN_H@ HAVE_SPAWN_H = @HAVE_SPAWN_H@
HAVE_STDALIGN_H = @HAVE_STDALIGN_H@
HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STDINT_H = @HAVE_STDINT_H@
HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPCPY = @HAVE_STPCPY@
HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@
@ -974,6 +979,7 @@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
NEXT_AS_FIRST_DIRECTIVE_STDALIGN_H = @NEXT_AS_FIRST_DIRECTIVE_STDALIGN_H@
NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
@ -993,6 +999,7 @@ NEXT_GETOPT_H = @NEXT_GETOPT_H@
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
NEXT_STDALIGN_H = @NEXT_STDALIGN_H@
NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@
NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDINT_H = @NEXT_STDINT_H@
NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDIO_H = @NEXT_STDIO_H@
@ -1061,6 +1068,7 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DPRINTF = @REPLACE_DPRINTF@
REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP = @REPLACE_DUP@
REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP2 = @REPLACE_DUP2@
REPLACE_DUP3 = @REPLACE_DUP3@
REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECL = @REPLACE_EXECL@
REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLE = @REPLACE_EXECLE@
REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECLP = @REPLACE_EXECLP@
@ -1073,6 +1081,7 @@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCLOSE = @REPLACE_FCLOSE@
REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FCNTL = @REPLACE_FCNTL@
REPLACE_FDATASYNC = @REPLACE_FDATASYNC@
REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFLUSH = @REPLACE_FFLUSH@
@ -1095,15 +1104,21 @@ REPLACE_GETCWD = @REPLACE_GETCWD@
REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDELIM = @REPLACE_GETDELIM@
REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
REPLACE_GETENTROPY = @REPLACE_GETENTROPY@
REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLINE = @REPLACE_GETLINE@
REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS = @REPLACE_GETPASS@
REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@
REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@
REPLACE_GETRANDOM = @REPLACE_GETRANDOM@ REPLACE_GETRANDOM = @REPLACE_GETRANDOM@
REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_GMTIME = @REPLACE_GMTIME@
REPLACE_IMAXABS = @REPLACE_IMAXABS@
REPLACE_IMAXDIV = @REPLACE_IMAXDIV@
REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_INITSTATE = @REPLACE_INITSTATE@
REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISATTY = @REPLACE_ISATTY@
REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LCHOWN = @REPLACE_LCHOWN@
@ -1118,11 +1133,14 @@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@
REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@
REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMCHR = @REPLACE_MEMCHR@
REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMMEM = @REPLACE_MEMMEM@
REPLACE_MEMPCPY = @REPLACE_MEMPCPY@
REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKDIR = @REPLACE_MKDIR@
REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFO = @REPLACE_MKFIFO@
REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@
REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNOD = @REPLACE_MKNOD@
REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKNODAT = @REPLACE_MKNODAT@
REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@
REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MKTIME = @REPLACE_MKTIME@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
@ -1132,8 +1150,10 @@ REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENAT = @REPLACE_OPENAT@
REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_OPENDIR = @REPLACE_OPENDIR@
REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_PIPE2 = @REPLACE_PIPE2@
REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POPEN = @REPLACE_POPEN@
REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@
REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@
REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PREAD = @REPLACE_PREAD@
REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PRINTF = @REPLACE_PRINTF@
REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PSELECT = @REPLACE_PSELECT@
@ -1159,6 +1179,7 @@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_RMDIR = @REPLACE_RMDIR@
REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SELECT = @REPLACE_SELECT@
REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETENV = @REPLACE_SETENV@
REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@
REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@
REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SLEEP = @REPLACE_SLEEP@
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
@ -1166,6 +1187,7 @@ REPLACE_SPRINTF = @REPLACE_SPRINTF@
REPLACE_STAT = @REPLACE_STAT@ REPLACE_STAT = @REPLACE_STAT@
REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
REPLACE_STPCPY = @REPLACE_STPCPY@
REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@
REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
@ -1192,6 +1214,7 @@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINK = @REPLACE_SYMLINK@
REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMEGM = @REPLACE_TIMEGM@
REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@
REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TMPFILE = @REPLACE_TMPFILE@
REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@
REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
@ -1209,6 +1232,7 @@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@
REPLACE_WRITE = @REPLACE_WRITE@ REPLACE_WRITE = @REPLACE_WRITE@
REPLACE__EXIT = @REPLACE__EXIT@
RSVG_CFLAGS = @RSVG_CFLAGS@ RSVG_CFLAGS = @RSVG_CFLAGS@
RSVG_LIBS = @RSVG_LIBS@ RSVG_LIBS = @RSVG_LIBS@
SEPCHAR = @SEPCHAR@ SEPCHAR = @SEPCHAR@
@ -2369,6 +2393,8 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
-e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
-e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
-e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \ -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \
-e 's/@''REPLACE_IMAXABS''@/$(REPLACE_IMAXABS)/g' \
-e 's/@''REPLACE_IMAXDIV''@/$(REPLACE_IMAXDIV)/g' \
-e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
-e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \ -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
-e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
@ -2916,7 +2942,14 @@ BUILT_SOURCES += $(STDALIGN_H)
# doesn't have one that works. # doesn't have one that works.
ifneq (,$(GL_GENERATE_STDALIGN_H_CONDITION)) ifneq (,$(GL_GENERATE_STDALIGN_H_CONDITION))
stdalign.h: stdalign.in.h $(top_builddir)/config.status stdalign.h: stdalign.in.h $(top_builddir)/config.status
$(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/stdalign.in.h $(gl_V_at)$(SED_HEADER_STDOUT) \
-e 's|@''GUARD_PREFIX''@|GL|g' \
-e 's|@''HAVE_STDALIGN_H''@|$(HAVE_STDALIGN_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STDALIGN_H''@|$(NEXT_STDALIGN_H)|g' \
$(srcdir)/stdalign.in.h > $@-t
$(AM_V_at)mv $@-t $@ $(AM_V_at)mv $@-t $@
else else
stdalign.h: $(top_builddir)/config.status stdalign.h: $(top_builddir)/config.status
@ -3203,6 +3236,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
-e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \
-e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \
-e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \
-e 's/@''GNULIB_GETPROGNAME''@/$(GL_GNULIB_GETPROGNAME)/g' \
-e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \
-e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \
-e 's/@''GNULIB_MALLOC_GNU''@/$(GL_GNULIB_MALLOC_GNU)/g' \ -e 's/@''GNULIB_MALLOC_GNU''@/$(GL_GNULIB_MALLOC_GNU)/g' \
@ -3252,6 +3286,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
-e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \ -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \
-e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \ -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \
-e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
-e 's|@''HAVE_GETPROGNAME''@|$(HAVE_GETPROGNAME)|g' \
-e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
-e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
-e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \
@ -3287,17 +3322,24 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
-e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
-e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
-e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
-e 's|@''REPLACE__EXIT''@|$(REPLACE__EXIT)|g' \
-e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \ -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \
-e 's|@''REPLACE_CALLOC_FOR_CALLOC_GNU''@|$(REPLACE_CALLOC_FOR_CALLOC_GNU)|g' \ -e 's|@''REPLACE_CALLOC_FOR_CALLOC_GNU''@|$(REPLACE_CALLOC_FOR_CALLOC_GNU)|g' \
-e 's|@''REPLACE_CALLOC_FOR_CALLOC_POSIX''@|$(REPLACE_CALLOC_FOR_CALLOC_POSIX)|g' \ -e 's|@''REPLACE_CALLOC_FOR_CALLOC_POSIX''@|$(REPLACE_CALLOC_FOR_CALLOC_POSIX)|g' \
-e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
-e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \
-e 's|@''REPLACE_GETLOADAVG''@|$(REPLACE_GETLOADAVG)|g' \
-e 's|@''REPLACE_GETPROGNAME''@|$(REPLACE_GETPROGNAME)|g' \
-e 's|@''REPLACE_GETSUBOPT''@|$(REPLACE_GETSUBOPT)|g' \
-e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \
-e 's|@''REPLACE_MALLOC_FOR_MALLOC_GNU''@|$(REPLACE_MALLOC_FOR_MALLOC_GNU)|g' \ -e 's|@''REPLACE_MALLOC_FOR_MALLOC_GNU''@|$(REPLACE_MALLOC_FOR_MALLOC_GNU)|g' \
-e 's|@''REPLACE_MALLOC_FOR_MALLOC_POSIX''@|$(REPLACE_MALLOC_FOR_MALLOC_POSIX)|g' \ -e 's|@''REPLACE_MALLOC_FOR_MALLOC_POSIX''@|$(REPLACE_MALLOC_FOR_MALLOC_POSIX)|g' \
-e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
-e 's|@''REPLACE_MKOSTEMP''@|$(REPLACE_MKOSTEMP)|g' \
-e 's|@''REPLACE_MKOSTEMPS''@|$(REPLACE_MKOSTEMPS)|g' \
-e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
-e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \ -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \
-e 's|@''REPLACE_POSIX_OPENPT''@|$(REPLACE_POSIX_OPENPT)|g' \
-e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
-e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
-e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
@ -3429,7 +3471,9 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \
-e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
-e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
-e 's|@''REPLACE_MEMPCPY''@|$(REPLACE_MEMPCPY)|g' \
-e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \
-e 's|@''REPLACE_STPCPY''@|$(REPLACE_STPCPY)|g' \
-e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
-e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
@ -3755,6 +3799,7 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
-e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \
-e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
-e 's|@''REPLACE_TIMESPEC_GET''@|$(REPLACE_TIMESPEC_GET)|g' \
-e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \
-e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \
-e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
@ -3999,6 +4044,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''REPLACE_COPY_FILE_RANGE''@|$(REPLACE_COPY_FILE_RANGE)|g' \ -e 's|@''REPLACE_COPY_FILE_RANGE''@|$(REPLACE_COPY_FILE_RANGE)|g' \
-e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
-e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
-e 's|@''REPLACE_DUP3''@|$(REPLACE_DUP3)|g' \
-e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \
-e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \
-e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \
@ -4008,10 +4054,12 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \
-e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \
-e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
-e 's|@''REPLACE_FDATASYNC''@|$(REPLACE_FDATASYNC)|g' \
-e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
-e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
-e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \
-e 's|@''REPLACE_GETENTROPY''@|$(REPLACE_GETENTROPY)|g' \
-e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
-e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
@ -4022,12 +4070,14 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
-e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \
-e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
-e 's|@''REPLACE_PIPE2''@|$(REPLACE_PIPE2)|g' \
-e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
-e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
-e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
-e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
-e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \
-e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
-e 's|@''REPLACE_SETHOSTNAME''@|$(REPLACE_SETHOSTNAME)|g' \
-e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
-e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \
-e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \

View file

@ -903,8 +903,21 @@ extern "C" {
#endif #endif
#if @GNULIB_IMAXABS@ #if @GNULIB_IMAXABS@
# if !@HAVE_DECL_IMAXABS@ # if @REPLACE_IMAXABS@
extern intmax_t imaxabs (intmax_t); # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef imaxabs
# define imaxabs rpl_imaxabs
# endif
_GL_FUNCDECL_RPL (imaxabs, intmax_t, (intmax_t x));
_GL_CXXALIAS_RPL (imaxabs, intmax_t, (intmax_t x));
# else
# if !@HAVE_DECL_IMAXABS@
_GL_FUNCDECL_SYS (imaxabs, intmax_t, (intmax_t x));
# endif
_GL_CXXALIAS_SYS (imaxabs, intmax_t, (intmax_t x));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (imaxabs);
# endif # endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef imaxabs # undef imaxabs
@ -921,8 +934,21 @@ typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
# define GNULIB_defined_imaxdiv_t 1 # define GNULIB_defined_imaxdiv_t 1
# endif # endif
# endif # endif
# if !@HAVE_DECL_IMAXDIV@ # if @REPLACE_IMAXDIV@
extern imaxdiv_t imaxdiv (intmax_t, intmax_t); # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef imaxdiv
# define imaxdiv rpl_imaxdiv
# endif
_GL_FUNCDECL_RPL (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
_GL_CXXALIAS_RPL (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
# else
# if !@HAVE_DECL_IMAXDIV@
_GL_FUNCDECL_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
# endif
_GL_CXXALIAS_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (imaxdiv);
# endif # endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef imaxdiv # undef imaxdiv

View file

@ -137,8 +137,6 @@
# undef __attribute_returns_twice__ # undef __attribute_returns_twice__
# undef __attribute_used__ # undef __attribute_used__
# undef __attribute_warn_unused_result__ # undef __attribute_warn_unused_result__
# undef __bos
# undef __bos0
# undef __errordecl # undef __errordecl
# undef __extension__ # undef __extension__
# undef __extern_always_inline # undef __extern_always_inline
@ -147,21 +145,13 @@
# undef __fortified_attr_access # undef __fortified_attr_access
# undef __fortify_function # undef __fortify_function
# undef __glibc_c99_flexarr_available # undef __glibc_c99_flexarr_available
# undef __glibc_fortify
# undef __glibc_fortify_n
# undef __glibc_has_attribute # undef __glibc_has_attribute
# undef __glibc_has_builtin # undef __glibc_has_builtin
# undef __glibc_has_extension # undef __glibc_has_extension
# undef __glibc_likely # undef __glibc_likely
# undef __glibc_macro_warning # undef __glibc_macro_warning
# undef __glibc_macro_warning1 # undef __glibc_macro_warning1
# undef __glibc_objsize
# undef __glibc_objsize0
# undef __glibc_safe_len_cond
# undef __glibc_safe_or_unknown_len
# undef __glibc_unlikely # undef __glibc_unlikely
# undef __glibc_unsafe_len
# undef __glibc_unsigned_or_positive
# undef __inline # undef __inline
# undef __ptr_t # undef __ptr_t
# undef __restrict # undef __restrict
@ -170,6 +160,18 @@
# undef __va_arg_pack_len # undef __va_arg_pack_len
# undef __warnattr # undef __warnattr
# undef __wur # undef __wur
# ifndef __GNULIB_CDEFS
# undef __bos
# undef __bos0
# undef __glibc_fortify
# undef __glibc_fortify_n
# undef __glibc_objsize
# undef __glibc_objsize0
# undef __glibc_safe_len_cond
# undef __glibc_safe_or_unknown_len
# undef __glibc_unsafe_len
# undef __glibc_unsigned_or_positive
# endif
/* Include our copy of glibc <sys/cdefs.h>. */ /* Include our copy of glibc <sys/cdefs.h>. */
# include <cdefs.h> # include <cdefs.h>

View file

@ -30,9 +30,12 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#ifdef __KLIBC__ #ifdef __KLIBC__ /* OS/2 */
# include <InnoTekLIBC/backend.h> # include <InnoTekLIBC/backend.h>
#endif #endif
#ifdef __MVS__ /* z/OS */
# include <termios.h>
#endif
#include "intprops.h" #include "intprops.h"
@ -53,7 +56,8 @@ openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file)
return buf; return buf;
} }
#ifndef __KLIBC__ #if !(defined __KLIBC__ || defined __MVS__)
/* Generic code for Linux, Solaris, and similar platforms. */
# define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/" # define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/"
{ {
enum { enum {
@ -107,14 +111,29 @@ openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file)
dirlen = sprintf (result, PROC_SELF_FD_FORMAT, fd); dirlen = sprintf (result, PROC_SELF_FD_FORMAT, fd);
} }
} }
#else #else /* (defined __KLIBC__ || defined __MVS__), i.e. OS/2 or z/OS */
/* OS/2 kLIBC provides a function to retrieve a path from a fd. */ /* OS/2 kLIBC provides a function to retrieve a path from a fd. */
{ {
char dir[_MAX_PATH];
size_t bufsize; size_t bufsize;
# ifdef __KLIBC__
char dir[_MAX_PATH];
if (__libc_Back_ioFHToPath (fd, dir, sizeof dir)) if (__libc_Back_ioFHToPath (fd, dir, sizeof dir))
return NULL; return NULL;
# endif
# ifdef __MVS__
char dir[_XOPEN_PATH_MAX];
/* Documentation:
https://www.ibm.com/docs/en/zos/2.2.0?topic=functions-w-ioctl-w-pioctl-control-devices */
if (w_ioctl (fd, _IOCC_GPN, sizeof dir, dir) < 0)
return NULL;
/* Documentation:
https://www.ibm.com/docs/en/zos/2.2.0?topic=functions-e2a-l-convert-characters-from-ebcdic-ascii */
dirlen = __e2a_l (dir, strlen (dir));
if (dirlen < 0 || dirlen >= sizeof dir)
return NULL;
dir[dirlen] = '\0';
# endif
dirlen = strlen (dir); dirlen = strlen (dir);
bufsize = dirlen + 1 + strlen (file) + 1; /* 1 for '/', 1 for null */ bufsize = dirlen + 1 + strlen (file) + 1; /* 1 for '/', 1 for null */

View file

@ -17,117 +17,33 @@
/* Written by Paul Eggert and Bruno Haible. */ /* Written by Paul Eggert and Bruno Haible. */
#ifndef _GL_STDALIGN_H /* Define two obsolescent C11 macros, assuming alignas and alignof are
#define _GL_STDALIGN_H either keywords or alignasof-defined macros. */
/* ISO C11 <stdalign.h> for platforms that lack it. #ifndef _@GUARD_PREFIX@_STDALIGN_H
References: #if __GNUC__ >= 3
ISO C11 (latest free draft @PRAGMA_SYSTEM_HEADER@
<http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.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>)
section 18.10. */
/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment
requirement of a structure member (i.e., slot or field) that is of
type TYPE, as an integer constant expression.
This differs from GCC's and clang's __alignof__ operator, which can
yield a better-performing alignment for an object of that type. For
example, on x86 with GCC and on Linux/x86 with clang,
__alignof__ (double) and __alignof__ (long long) are 8, whereas
alignof (double) and alignof (long long) are 4 unless the option
'-malign-double' is used.
The result cannot be used as a value for an 'enum' constant, if you
want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */
/* FreeBSD 9.1 <sys/cdefs.h>, included by <stddef.h> and lots of other
standard headers, defines conflicting implementations of _Alignas
and _Alignof that are no better than ours; override them. */
#undef _Alignas
#undef _Alignof
/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
clang versions < 8.0.0 have the same bug. */
#if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
|| (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
&& !defined __clang__) \
|| (defined __clang__ && __clang_major__ < 8))
# ifdef __cplusplus
# if (201103 <= __cplusplus || defined _MSC_VER)
# define _Alignof(type) alignof (type)
# else
template <class __t> struct __alignof_helper { char __a; __t __b; };
# define _Alignof(type) offsetof (__alignof_helper<type>, __b)
# define _GL_STDALIGN_NEEDS_STDDEF 1
# endif
# else
# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
# define _GL_STDALIGN_NEEDS_STDDEF 1
# endif
#endif #endif
#if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)) @PRAGMA_COLUMNS@
# define alignof _Alignof
/* We need to include the system's <stdalign.h> when it exists, because it might
define 'alignof' as a macro when it's not a keyword or compiler built-in. */
#if @HAVE_STDALIGN_H@
/* The include_next requires a split double-inclusion guard. */
# @INCLUDE_NEXT@ @NEXT_STDALIGN_H@
#endif #endif
#define __alignof_is_defined 1
/* alignas (A), also known as _Alignas (A), aligns a variable or type #ifndef _@GUARD_PREFIX@_STDALIGN_H
to the alignment A, where A is an integer constant expression. For #define _@GUARD_PREFIX@_STDALIGN_H
example:
int alignas (8) foo;
struct s { int a; int alignas (8) bar; };
aligns the address of FOO and the offset of BAR to be multiples of 8.
A should be a power of two that is at least the type's alignment
and at most the implementation's alignment limit. This limit is
2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable
to MSVC through at least version 10.0, A should be an integer
constant, as MSVC does not support expressions such as 1 << 3.
To be portable to Sun C 5.11, do not align auto variables to
anything stricter than their default alignment.
The following C11 requirements are not supported here:
- If A is zero, alignas has no effect.
- alignas can be used multiple times; the strictest one wins.
- alignas (TYPE) is equivalent to alignas (alignof (TYPE)).
*/
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112
# if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)
# define _Alignas(a) alignas (a)
# elif (!defined __attribute__ \
&& ((defined __APPLE__ && defined __MACH__ \
? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
: __GNUC__ && !defined __ibmxl__) \
|| (4 <= __clang_major__) \
|| (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \
|| __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__))
# define _Alignas(a) __attribute__ ((__aligned__ (a)))
# elif 1300 <= _MSC_VER
# define _Alignas(a) __declspec (align (a))
# endif
#endif
#if ((defined _Alignas \
&& !(defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))) \
|| (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
# define alignas _Alignas
#endif
#if (defined alignas \ #if (defined alignas \
|| (defined __STDC_VERSION__ && 202311 <= __STDC_VERSION__) \
|| (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))) || (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)))
# define __alignas_is_defined 1 # define __alignas_is_defined 1
#endif #endif
/* Include <stddef.h> if needed for offsetof. */ #define __alignof_is_defined 1
#if _GL_STDALIGN_NEEDS_STDDEF
# include <stddef.h>
#endif
#endif /* _GL_STDALIGN_H */ #endif /* _@GUARD_PREFIX@_STDALIGN_H */
#endif /* _@GUARD_PREFIX@_STDALIGN_H */

View file

@ -70,6 +70,12 @@
# define _gl_flags_file_t int # define _gl_flags_file_t int
# else # else
# define _gl_flags_file_t short # define _gl_flags_file_t short
# endif
# ifdef __LP64__
# define _gl_file_offset_t int64_t
# else
/* see https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */
# define _gl_file_offset_t __kernel_off_t
# endif # endif
/* Up to this commit from 2015-10-12 /* Up to this commit from 2015-10-12
<https://android.googlesource.com/platform/bionic.git/+/f0141dfab10a4b332769d52fa76631a64741297a> <https://android.googlesource.com/platform/bionic.git/+/f0141dfab10a4b332769d52fa76631a64741297a>
@ -96,7 +102,7 @@
unsigned char _nbuf[1]; \ unsigned char _nbuf[1]; \
struct { unsigned char *_base; size_t _size; } _lb; \ struct { unsigned char *_base; size_t _size; } _lb; \
int _blksize; \ int _blksize; \
fpos_t _offset; \ _gl_file_offset_t _offset; \
/* More fields, not relevant here. */ \ /* More fields, not relevant here. */ \
} *) fp) } *) fp)
# else # else

View file

@ -210,7 +210,9 @@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...)
# endif # endif
_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...)); _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (dprintf); _GL_CXXALIASWARN (dprintf);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef dprintf # undef dprintf
# if HAVE_RAW_DECL_DPRINTF # if HAVE_RAW_DECL_DPRINTF
@ -882,7 +884,9 @@ _GL_CXXALIAS_SYS (getdelim, ssize_t,
int delimiter, int delimiter,
FILE *restrict stream)); FILE *restrict stream));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (getdelim); _GL_CXXALIASWARN (getdelim);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef getdelim # undef getdelim
# if HAVE_RAW_DECL_GETDELIM # if HAVE_RAW_DECL_GETDELIM
@ -921,7 +925,7 @@ _GL_CXXALIAS_SYS (getline, ssize_t,
(char **restrict lineptr, size_t *restrict linesize, (char **restrict lineptr, size_t *restrict linesize,
FILE *restrict stream)); FILE *restrict stream));
# endif # endif
# if @HAVE_DECL_GETLINE@ # if __GLIBC__ >= 2 && @HAVE_DECL_GETLINE@
_GL_CXXALIASWARN (getline); _GL_CXXALIASWARN (getline);
# endif # endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK

View file

@ -164,11 +164,22 @@ struct random_data
#if @GNULIB__EXIT@ #if @GNULIB__EXIT@
/* Terminate the current process with the given return code, without running /* Terminate the current process with the given return code, without running
the 'atexit' handlers. */ the 'atexit' handlers. */
# if !@HAVE__EXIT@ # if @REPLACE__EXIT@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef _Exit
# define _Exit rpl__Exit
# endif
_GL_FUNCDECL_RPL (_Exit, _Noreturn void, (int status));
_GL_CXXALIAS_RPL (_Exit, void, (int status));
# else
# if !@HAVE__EXIT@
_GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status));
# endif # endif
_GL_CXXALIAS_SYS (_Exit, void, (int status)); _GL_CXXALIAS_SYS (_Exit, void, (int status));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (_Exit); _GL_CXXALIASWARN (_Exit);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef _Exit # undef _Exit
# if HAVE_RAW_DECL__EXIT # if HAVE_RAW_DECL__EXIT
@ -416,12 +427,24 @@ _GL_CXXALIASWARN (gcvt);
The three numbers are the load average of the last 1 minute, the last 5 The three numbers are the load average of the last 1 minute, the last 5
minutes, and the last 15 minutes, respectively. minutes, and the last 15 minutes, respectively.
LOADAVG is an array of NELEM numbers. */ LOADAVG is an array of NELEM numbers. */
# if !@HAVE_DECL_GETLOADAVG@ # if @REPLACE_GETLOADAVG@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef getloadavg
# define getloadavg rpl_getloadavg
# endif
_GL_FUNCDECL_RPL (getloadavg, int, (double loadavg[], int nelem)
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (getloadavg, int, (double loadavg[], int nelem));
# else
# if !@HAVE_DECL_GETLOADAVG@
_GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem)
_GL_ARG_NONNULL ((1))); _GL_ARG_NONNULL ((1)));
# endif # endif
_GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (getloadavg); _GL_CXXALIASWARN (getloadavg);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef getloadavg # undef getloadavg
# if HAVE_RAW_DECL_GETLOADAVG # if HAVE_RAW_DECL_GETLOADAVG
@ -430,6 +453,41 @@ _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
# endif # endif
#endif #endif
#if @GNULIB_GETPROGNAME@
/* Return the base name of the executing program.
On native Windows this will usually end in ".exe" or ".EXE". */
# if @REPLACE_GETPROGNAME@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef getprogname
# define getprogname rpl_getprogname
# endif
# ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME
_GL_FUNCDECL_RPL (getprogname, const char *, (void) _GL_ATTRIBUTE_PURE);
# else
_GL_FUNCDECL_RPL (getprogname, const char *, (void));
# endif
_GL_CXXALIAS_RPL (getprogname, const char *, (void));
# else
# if !@HAVE_GETPROGNAME@
# ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME
_GL_FUNCDECL_SYS (getprogname, const char *, (void) _GL_ATTRIBUTE_PURE);
# else
_GL_FUNCDECL_SYS (getprogname, const char *, (void));
# endif
# endif
_GL_CXXALIAS_SYS (getprogname, const char *, (void));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (getprogname);
# endif
#elif defined GNULIB_POSIXCHECK
# undef getprogname
# if HAVE_RAW_DECL_GETPROGNAME
_GL_WARN_ON_USE (getprogname, "getprogname is unportable - "
"use gnulib module getprogname for portability");
# endif
#endif
#if @GNULIB_GETSUBOPT@ #if @GNULIB_GETSUBOPT@
/* Assuming *OPTIONP is a comma separated list of elements of the form /* Assuming *OPTIONP is a comma separated list of elements of the form
"token" or "token=value", getsubopt parses the first of these elements. "token" or "token=value", getsubopt parses the first of these elements.
@ -442,14 +500,28 @@ _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
For more details see the POSIX specification. For more details see the POSIX specification.
https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */ https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */
# if !@HAVE_GETSUBOPT@ # if @REPLACE_GETSUBOPT@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef getsubopt
# define getsubopt rpl_getsubopt
# endif
_GL_FUNCDECL_RPL (getsubopt, int,
(char **optionp, char *const *tokens, char **valuep)
_GL_ARG_NONNULL ((1, 2, 3)));
_GL_CXXALIAS_RPL (getsubopt, int,
(char **optionp, char *const *tokens, char **valuep));
# else
# if !@HAVE_GETSUBOPT@
_GL_FUNCDECL_SYS (getsubopt, int, _GL_FUNCDECL_SYS (getsubopt, int,
(char **optionp, char *const *tokens, char **valuep) (char **optionp, char *const *tokens, char **valuep)
_GL_ARG_NONNULL ((1, 2, 3))); _GL_ARG_NONNULL ((1, 2, 3)));
# endif # endif
_GL_CXXALIAS_SYS (getsubopt, int, _GL_CXXALIAS_SYS (getsubopt, int,
(char **optionp, char *const *tokens, char **valuep)); (char **optionp, char *const *tokens, char **valuep));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (getsubopt); _GL_CXXALIASWARN (getsubopt);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef getsubopt # undef getsubopt
# if HAVE_RAW_DECL_GETSUBOPT # if HAVE_RAW_DECL_GETSUBOPT
@ -579,12 +651,24 @@ _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - "
implementation. implementation.
Returns the open file descriptor if successful, otherwise -1 and errno Returns the open file descriptor if successful, otherwise -1 and errno
set. */ set. */
# if !@HAVE_MKOSTEMP@ # if @REPLACE_MKOSTEMP@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef mkostemp
# define mkostemp rpl_mkostemp
# endif
_GL_FUNCDECL_RPL (mkostemp, int, (char * /*template*/, int /*flags*/)
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (mkostemp, int, (char * /*template*/, int /*flags*/));
# else
# if !@HAVE_MKOSTEMP@
_GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)
_GL_ARG_NONNULL ((1))); _GL_ARG_NONNULL ((1)));
# endif # endif
_GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (mkostemp); _GL_CXXALIASWARN (mkostemp);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef mkostemp # undef mkostemp
# if HAVE_RAW_DECL_MKOSTEMP # if HAVE_RAW_DECL_MKOSTEMP
@ -607,14 +691,28 @@ _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - "
implementation. implementation.
Returns the open file descriptor if successful, otherwise -1 and errno Returns the open file descriptor if successful, otherwise -1 and errno
set. */ set. */
# if !@HAVE_MKOSTEMPS@ # if @REPLACE_MKOSTEMPS@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef mkostemps
# define mkostemps rpl_mkostemps
# endif
_GL_FUNCDECL_RPL (mkostemps, int,
(char * /*template*/, int /*suffixlen*/, int /*flags*/)
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (mkostemps, int,
(char * /*template*/, int /*suffixlen*/, int /*flags*/));
# else
# if !@HAVE_MKOSTEMPS@
_GL_FUNCDECL_SYS (mkostemps, int, _GL_FUNCDECL_SYS (mkostemps, int,
(char * /*template*/, int /*suffixlen*/, int /*flags*/) (char * /*template*/, int /*suffixlen*/, int /*flags*/)
_GL_ARG_NONNULL ((1))); _GL_ARG_NONNULL ((1)));
# endif # endif
_GL_CXXALIAS_SYS (mkostemps, int, _GL_CXXALIAS_SYS (mkostemps, int,
(char * /*template*/, int /*suffixlen*/, int /*flags*/)); (char * /*template*/, int /*suffixlen*/, int /*flags*/));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (mkostemps); _GL_CXXALIASWARN (mkostemps);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef mkostemps # undef mkostemps
# if HAVE_RAW_DECL_MKOSTEMPS # if HAVE_RAW_DECL_MKOSTEMPS
@ -713,7 +811,7 @@ _GL_CXXALIAS_SYS (posix_memalign, int,
(void **memptr, size_t alignment, size_t size)); (void **memptr, size_t alignment, size_t size));
# endif # endif
# endif # endif
# if @HAVE_POSIX_MEMALIGN@ # if __GLIBC__ >= 2 && @HAVE_POSIX_MEMALIGN@
_GL_CXXALIASWARN (posix_memalign); _GL_CXXALIASWARN (posix_memalign);
# endif # endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
@ -727,11 +825,22 @@ _GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - "
#if @GNULIB_POSIX_OPENPT@ #if @GNULIB_POSIX_OPENPT@
/* Return an FD open to the master side of a pseudo-terminal. Flags should /* Return an FD open to the master side of a pseudo-terminal. Flags should
include O_RDWR, and may also include O_NOCTTY. */ include O_RDWR, and may also include O_NOCTTY. */
# if !@HAVE_POSIX_OPENPT@ # if @REPLACE_POSIX_OPENPT@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef posix_openpt
# define posix_openpt rpl_posix_openpt
# endif
_GL_FUNCDECL_RPL (posix_openpt, int, (int flags));
_GL_CXXALIAS_RPL (posix_openpt, int, (int flags));
# else
# if !@HAVE_POSIX_OPENPT@
_GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); _GL_FUNCDECL_SYS (posix_openpt, int, (int flags));
# endif # endif
_GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); _GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (posix_openpt); _GL_CXXALIASWARN (posix_openpt);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef posix_openpt # undef posix_openpt
# if HAVE_RAW_DECL_POSIX_OPENPT # if HAVE_RAW_DECL_POSIX_OPENPT
@ -956,7 +1065,9 @@ _GL_FUNCDECL_SYS (initstate, char *,
_GL_CXXALIAS_SYS_CAST (initstate, char *, _GL_CXXALIAS_SYS_CAST (initstate, char *,
(unsigned int seed, char *buf, size_t buf_size)); (unsigned int seed, char *buf, size_t buf_size));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (initstate); _GL_CXXALIASWARN (initstate);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef initstate # undef initstate
# if HAVE_RAW_DECL_INITSTATE # if HAVE_RAW_DECL_INITSTATE
@ -981,7 +1092,9 @@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
is const char *arg_state. */ is const char *arg_state. */
_GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state)); _GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (setstate); _GL_CXXALIASWARN (setstate);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef setstate # undef setstate
# if HAVE_RAW_DECL_SETSTATE # if HAVE_RAW_DECL_SETSTATE
@ -1167,7 +1280,9 @@ _GL_FUNCDECL_SYS (reallocarray, void *,
_GL_CXXALIAS_SYS (reallocarray, void *, _GL_CXXALIAS_SYS (reallocarray, void *,
(void *ptr, size_t nmemb, size_t size)); (void *ptr, size_t nmemb, size_t size));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (reallocarray); _GL_CXXALIASWARN (reallocarray);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef reallocarray # undef reallocarray
# if HAVE_RAW_DECL_REALLOCARRAY # if HAVE_RAW_DECL_REALLOCARRAY

View file

@ -308,16 +308,32 @@ _GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - "
/* Copy N bytes of SRC to DEST, return pointer to bytes after the /* Copy N bytes of SRC to DEST, return pointer to bytes after the
last written byte. */ last written byte. */
#if @GNULIB_MEMPCPY@ #if @GNULIB_MEMPCPY@
# if ! @HAVE_MEMPCPY@ # if @REPLACE_MEMPCPY@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef mempcpy
# define mempcpy rpl_mempcpy
# endif
_GL_FUNCDECL_RPL (mempcpy, void *,
(void *restrict __dest, void const *restrict __src,
size_t __n)
_GL_ARG_NONNULL ((1, 2)));
_GL_CXXALIAS_RPL (mempcpy, void *,
(void *restrict __dest, void const *restrict __src,
size_t __n));
# else
# if !@HAVE_MEMPCPY@
_GL_FUNCDECL_SYS (mempcpy, void *, _GL_FUNCDECL_SYS (mempcpy, void *,
(void *restrict __dest, void const *restrict __src, (void *restrict __dest, void const *restrict __src,
size_t __n) size_t __n)
_GL_ARG_NONNULL ((1, 2))); _GL_ARG_NONNULL ((1, 2)));
# endif # endif
_GL_CXXALIAS_SYS (mempcpy, void *, _GL_CXXALIAS_SYS (mempcpy, void *,
(void *restrict __dest, void const *restrict __src, (void *restrict __dest, void const *restrict __src,
size_t __n)); size_t __n));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (mempcpy); _GL_CXXALIASWARN (mempcpy);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef mempcpy # undef mempcpy
# if HAVE_RAW_DECL_MEMPCPY # if HAVE_RAW_DECL_MEMPCPY
@ -406,14 +422,28 @@ _GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - "
/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ /* Copy SRC to DST, returning the address of the terminating '\0' in DST. */
#if @GNULIB_STPCPY@ #if @GNULIB_STPCPY@
# if ! @HAVE_STPCPY@ # if @REPLACE_STPCPY@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef stpcpy
# define stpcpy rpl_stpcpy
# endif
_GL_FUNCDECL_RPL (stpcpy, char *,
(char *restrict __dst, char const *restrict __src)
_GL_ARG_NONNULL ((1, 2)));
_GL_CXXALIAS_RPL (stpcpy, char *,
(char *restrict __dst, char const *restrict __src));
# else
# if !@HAVE_STPCPY@
_GL_FUNCDECL_SYS (stpcpy, char *, _GL_FUNCDECL_SYS (stpcpy, char *,
(char *restrict __dst, char const *restrict __src) (char *restrict __dst, char const *restrict __src)
_GL_ARG_NONNULL ((1, 2))); _GL_ARG_NONNULL ((1, 2)));
# endif # endif
_GL_CXXALIAS_SYS (stpcpy, char *, _GL_CXXALIAS_SYS (stpcpy, char *,
(char *restrict __dst, char const *restrict __src)); (char *restrict __dst, char const *restrict __src));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (stpcpy); _GL_CXXALIASWARN (stpcpy);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef stpcpy # undef stpcpy
# if HAVE_RAW_DECL_STPCPY # if HAVE_RAW_DECL_STPCPY
@ -448,7 +478,9 @@ _GL_CXXALIAS_SYS (stpncpy, char *,
(char *restrict __dst, char const *restrict __src, (char *restrict __dst, char const *restrict __src,
size_t __n)); size_t __n));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (stpncpy); _GL_CXXALIASWARN (stpncpy);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef stpncpy # undef stpncpy
# if HAVE_RAW_DECL_STPNCPY # if HAVE_RAW_DECL_STPNCPY
@ -1212,7 +1244,7 @@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)
# endif # endif
_GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen));
# endif # endif
# if @HAVE_DECL_STRERROR_R@ # if __GLIBC__ >= 2 && @HAVE_DECL_STRERROR_R@
_GL_CXXALIASWARN (strerror_r); _GL_CXXALIASWARN (strerror_r);
# endif # endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK

View file

@ -549,7 +549,7 @@ _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2]));
# endif # endif
_GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2]));
# endif # endif
# if @HAVE_FUTIMENS@ # if __GLIBC__ >= 2 && @HAVE_FUTIMENS@
_GL_CXXALIASWARN (futimens); _GL_CXXALIASWARN (futimens);
# endif # endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
@ -716,7 +716,9 @@ _GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)
# endif # endif
_GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (mkfifoat); _GL_CXXALIASWARN (mkfifoat);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef mkfifoat # undef mkfifoat
# if HAVE_RAW_DECL_MKFIFOAT # if HAVE_RAW_DECL_MKFIFOAT
@ -773,7 +775,9 @@ _GL_FUNCDECL_SYS (mknodat, int,
_GL_CXXALIAS_SYS (mknodat, int, _GL_CXXALIAS_SYS (mknodat, int,
(int fd, char const *file, mode_t mode, dev_t dev)); (int fd, char const *file, mode_t mode, dev_t dev));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (mknodat); _GL_CXXALIASWARN (mknodat);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef mknodat # undef mknodat
# if HAVE_RAW_DECL_MKNODAT # if HAVE_RAW_DECL_MKNODAT
@ -937,7 +941,7 @@ _GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name,
_GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name,
struct timespec const times[2], int flag)); struct timespec const times[2], int flag));
# endif # endif
# if @HAVE_UTIMENSAT@ # if __GLIBC__ >= 2 && @HAVE_UTIMENSAT@
_GL_CXXALIASWARN (utimensat); _GL_CXXALIASWARN (utimensat);
# endif # endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK

View file

@ -112,12 +112,24 @@ struct __time_t_must_be_integral {
/* Set *TS to the current time, and return BASE. /* Set *TS to the current time, and return BASE.
Upon failure, return 0. */ Upon failure, return 0. */
# if @GNULIB_TIMESPEC_GET@ # if @GNULIB_TIMESPEC_GET@
# if ! @HAVE_TIMESPEC_GET@ # if @REPLACE_TIMESPEC_GET@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef timespec_get
# define timespec_get rpl_timespec_get
# endif
_GL_FUNCDECL_RPL (timespec_get, int, (struct timespec *ts, int base)
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (timespec_get, int, (struct timespec *ts, int base));
# else
# if !@HAVE_TIMESPEC_GET@
_GL_FUNCDECL_SYS (timespec_get, int, (struct timespec *ts, int base) _GL_FUNCDECL_SYS (timespec_get, int, (struct timespec *ts, int base)
_GL_ARG_NONNULL ((1))); _GL_ARG_NONNULL ((1)));
# endif # endif
_GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base)); _GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (timespec_get); _GL_CXXALIASWARN (timespec_get);
# endif
# endif # endif
/* Set *TS to the current time resolution, and return BASE. /* Set *TS to the current time resolution, and return BASE.
@ -423,7 +435,9 @@ _GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1)));
# endif # endif
_GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (timegm); _GL_CXXALIASWARN (timegm);
# endif
# endif # endif
/* Encourage applications to avoid unsafe functions that can overrun /* Encourage applications to avoid unsafe functions that can overrun

View file

@ -541,17 +541,22 @@ _GL_CXXALIASWARN (dup2);
Return newfd if successful, otherwise -1 and errno set. Return newfd if successful, otherwise -1 and errno set.
See the Linux man page at See the Linux man page at
<https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>. */ <https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>. */
# if @HAVE_DUP3@ # if @REPLACE_DUP3@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE) # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef dup3
# define dup3 rpl_dup3 # define dup3 rpl_dup3
# endif # endif
_GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags));
_GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags));
# else # else
# if !@HAVE_DUP3@
_GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags));
# endif
_GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (dup3); _GL_CXXALIASWARN (dup3);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef dup3 # undef dup3
# if HAVE_RAW_DECL_DUP3 # if HAVE_RAW_DECL_DUP3
@ -870,7 +875,9 @@ _GL_FUNCDECL_SYS (execvpe, int,
_GL_CXXALIAS_SYS (execvpe, int, _GL_CXXALIAS_SYS (execvpe, int,
(const char *program, char * const *argv, char * const *env)); (const char *program, char * const *argv, char * const *env));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (execvpe); _GL_CXXALIASWARN (execvpe);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef execvpe # undef execvpe
# if HAVE_RAW_DECL_EXECVPE # if HAVE_RAW_DECL_EXECVPE
@ -925,7 +932,9 @@ _GL_FUNCDECL_SYS (faccessat, int,
_GL_CXXALIAS_SYS (faccessat, int, _GL_CXXALIAS_SYS (faccessat, int,
(int fd, char const *file, int mode, int flag)); (int fd, char const *file, int mode, int flag));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (faccessat); _GL_CXXALIASWARN (faccessat);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef faccessat # undef faccessat
# if HAVE_RAW_DECL_FACCESSAT # if HAVE_RAW_DECL_FACCESSAT
@ -1002,11 +1011,22 @@ _GL_WARN_ON_USE (fchownat, "fchownat is not portable - "
Return 0 if successful, otherwise -1 and errno set. Return 0 if successful, otherwise -1 and errno set.
See POSIX:2008 specification See POSIX:2008 specification
<https://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>. */ <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>. */
# if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ # if @REPLACE_FDATASYNC@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef fdatasync
# define fdatasync rpl_fdatasync
# endif
_GL_FUNCDECL_RPL (fdatasync, int, (int fd));
_GL_CXXALIAS_RPL (fdatasync, int, (int fd));
# else
# if !@HAVE_FDATASYNC@|| !@HAVE_DECL_FDATASYNC@
_GL_FUNCDECL_SYS (fdatasync, int, (int fd)); _GL_FUNCDECL_SYS (fdatasync, int, (int fd));
# endif # endif
_GL_CXXALIAS_SYS (fdatasync, int, (int fd)); _GL_CXXALIAS_SYS (fdatasync, int, (int fd));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (fdatasync); _GL_CXXALIASWARN (fdatasync);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef fdatasync # undef fdatasync
# if HAVE_RAW_DECL_FDATASYNC # if HAVE_RAW_DECL_FDATASYNC
@ -1053,7 +1073,9 @@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length));
# endif # endif
_GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (ftruncate); _GL_CXXALIASWARN (ftruncate);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef ftruncate # undef ftruncate
# if HAVE_RAW_DECL_FTRUNCATE # if HAVE_RAW_DECL_FTRUNCATE
@ -1185,11 +1207,22 @@ _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - "
#if @GNULIB_GETENTROPY@ #if @GNULIB_GETENTROPY@
/* Fill a buffer with random bytes. */ /* Fill a buffer with random bytes. */
# if !@HAVE_GETENTROPY@ # if @REPLACE_GETENTROPY@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef getentropy
# define getentropy rpl_getentropy
# endif
_GL_FUNCDECL_RPL (getentropy, int, (void *buffer, size_t length));
_GL_CXXALIAS_RPL (getentropy, int, (void *buffer, size_t length));
# else
# if !@HAVE_GETENTROPY@
_GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length)); _GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length));
# endif # endif
_GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length)); _GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (getentropy); _GL_CXXALIASWARN (getentropy);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef getentropy # undef getentropy
# if HAVE_RAW_DECL_GETENTROPY # if HAVE_RAW_DECL_GETENTROPY
@ -1323,7 +1356,9 @@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size)
int size. */ int size. */
_GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (getlogin_r); _GL_CXXALIASWARN (getlogin_r);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef getlogin_r # undef getlogin_r
# if HAVE_RAW_DECL_GETLOGIN_R # if HAVE_RAW_DECL_GETLOGIN_R
@ -1661,7 +1696,9 @@ _GL_CXXALIAS_SYS (linkat, int,
(int fd1, const char *path1, int fd2, const char *path2, (int fd1, const char *path1, int fd2, const char *path2,
int flag)); int flag));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (linkat); _GL_CXXALIASWARN (linkat);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef linkat # undef linkat
# if HAVE_RAW_DECL_LINKAT # if HAVE_RAW_DECL_LINKAT
@ -1742,8 +1779,9 @@ _GL_WARN_ON_USE (pipe, "pipe is unportable - "
Return 0 upon success, or -1 with errno set upon failure. Return 0 upon success, or -1 with errno set upon failure.
See also the Linux man page at See also the Linux man page at
<https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>. */ <https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>. */
# if @HAVE_PIPE2@ # if @REPLACE_PIPE2@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE) # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef pipe2
# define pipe2 rpl_pipe2 # define pipe2 rpl_pipe2
# endif # endif
_GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
@ -1752,7 +1790,9 @@ _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags));
_GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (pipe2); _GL_CXXALIASWARN (pipe2);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef pipe2 # undef pipe2
# if HAVE_RAW_DECL_PIPE2 # if HAVE_RAW_DECL_PIPE2
@ -1787,7 +1827,9 @@ _GL_FUNCDECL_SYS (pread, ssize_t,
_GL_CXXALIAS_SYS (pread, ssize_t, _GL_CXXALIAS_SYS (pread, ssize_t,
(int fd, void *buf, size_t bufsize, off_t offset)); (int fd, void *buf, size_t bufsize, off_t offset));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (pread); _GL_CXXALIASWARN (pread);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef pread # undef pread
# if HAVE_RAW_DECL_PREAD # if HAVE_RAW_DECL_PREAD
@ -1822,7 +1864,9 @@ _GL_FUNCDECL_SYS (pwrite, ssize_t,
_GL_CXXALIAS_SYS (pwrite, ssize_t, _GL_CXXALIAS_SYS (pwrite, ssize_t,
(int fd, const void *buf, size_t bufsize, off_t offset)); (int fd, const void *buf, size_t bufsize, off_t offset));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (pwrite); _GL_CXXALIASWARN (pwrite);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef pwrite # undef pwrite
# if HAVE_RAW_DECL_PWRITE # if HAVE_RAW_DECL_PWRITE
@ -1936,7 +1980,9 @@ _GL_CXXALIAS_SYS (readlinkat, ssize_t,
(int fd, char const *restrict file, (int fd, char const *restrict file,
char *restrict buf, size_t len)); char *restrict buf, size_t len));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (readlinkat); _GL_CXXALIASWARN (readlinkat);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef readlinkat # undef readlinkat
# if HAVE_RAW_DECL_READLINKAT # if HAVE_RAW_DECL_READLINKAT
@ -1996,15 +2042,27 @@ _GL_CXXALIASWARN (rmdir);
Platforms with no ability to set the hostname return -1 and set Platforms with no ability to set the hostname return -1 and set
errno = ENOSYS. */ errno = ENOSYS. */
# if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ # if @REPLACE_SETHOSTNAME@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef sethostname
# define sethostname rpl_sethostname
# endif
_GL_FUNCDECL_RPL (sethostname, int, (const char *name, size_t len)
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (sethostname, int, (const char *name, size_t len));
# else
# if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@
_GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len)
_GL_ARG_NONNULL ((1))); _GL_ARG_NONNULL ((1)));
# endif # endif
/* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5
and FreeBSD 6.4 the second parameter is int. On Solaris 11 and FreeBSD 6.4 the second parameter is int. On Solaris 11
2011-10, the first parameter is not const. */ 2011-10, the first parameter is not const. */
_GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (sethostname); _GL_CXXALIASWARN (sethostname);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef sethostname # undef sethostname
# if HAVE_RAW_DECL_SETHOSTNAME # if HAVE_RAW_DECL_SETHOSTNAME
@ -2113,7 +2171,9 @@ _GL_FUNCDECL_SYS (symlinkat, int,
_GL_CXXALIAS_SYS (symlinkat, int, _GL_CXXALIAS_SYS (symlinkat, int,
(char const *contents, int fd, char const *file)); (char const *contents, int fd, char const *file));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (symlinkat); _GL_CXXALIASWARN (symlinkat);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef symlinkat # undef symlinkat
# if HAVE_RAW_DECL_SYMLINKAT # if HAVE_RAW_DECL_SYMLINKAT
@ -2143,7 +2203,9 @@ _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length)
# endif # endif
_GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length)); _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (truncate); _GL_CXXALIASWARN (truncate);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef truncate # undef truncate
# if HAVE_RAW_DECL_TRUNCATE # if HAVE_RAW_DECL_TRUNCATE
@ -2173,7 +2235,9 @@ _GL_FUNCDECL_SYS (ttyname_r, int,
_GL_CXXALIAS_SYS (ttyname_r, int, _GL_CXXALIAS_SYS (ttyname_r, int,
(int fd, char *buf, size_t buflen)); (int fd, char *buf, size_t buflen));
# endif # endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (ttyname_r); _GL_CXXALIASWARN (ttyname_r);
# endif
#elif defined GNULIB_POSIXCHECK #elif defined GNULIB_POSIXCHECK
# undef ttyname_r # undef ttyname_r
# if HAVE_RAW_DECL_TTYNAME_R # if HAVE_RAW_DECL_TTYNAME_R

View file

@ -222,7 +222,21 @@ template <int w>
/* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */
#ifdef _GL_STATIC_ASSERT_H #ifdef _GL_STATIC_ASSERT_H
# if !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert /* Define _Static_assert if needed. */
/* With clang ≥ 3.8.0 in C++ mode, _Static_assert already works and accepts
1 or 2 arguments. We better don't override it, because clang's standard
C++ library uses static_assert inside classes in several places, and our
replacement via _GL_VERIFY does not work in these contexts. */
# if (defined __cplusplus && defined __clang__ \
&& (4 <= __clang_major__ + (8 <= __clang_minor__)))
# if 5 <= __clang_major__
/* Avoid "warning: 'static_assert' with no message is a C++17 extension". */
# pragma clang diagnostic ignored "-Wc++17-extensions"
# else
/* Avoid "warning: static_assert with no message is a C++1z extension". */
# pragma clang diagnostic ignored "-Wc++1z-extensions"
# endif
# elif !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert
# if !defined _MSC_VER || defined __clang__ # if !defined _MSC_VER || defined __clang__
# define _Static_assert(...) \ # define _Static_assert(...) \
_GL_VERIFY (__VA_ARGS__, "static assertion failed", -) _GL_VERIFY (__VA_ARGS__, "static assertion failed", -)
@ -233,6 +247,7 @@ template <int w>
_GL_VERIFY ((R), "static assertion failed", -) _GL_VERIFY ((R), "static assertion failed", -)
# endif # endif
# endif # endif
/* Define static_assert if needed. */
# if (!defined static_assert \ # if (!defined static_assert \
&& __STDC_VERSION__ < 202311 \ && __STDC_VERSION__ < 202311 \
&& (!defined __cplusplus \ && (!defined __cplusplus \

View file

@ -1,4 +1,4 @@
# canonicalize.m4 serial 37 # canonicalize.m4 serial 38
dnl Copyright (C) 2003-2007, 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2003-2007, 2009-2023 Free Software Foundation, Inc.
@ -12,7 +12,8 @@ AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE],
[ [
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
AC_CHECK_FUNCS_ONCE([canonicalize_file_name faccessat]) AC_CHECK_FUNCS_ONCE([canonicalize_file_name])
gl_CHECK_FUNCS_ANDROID([faccessat], [[#include <unistd.h>]])
AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
AC_REQUIRE([gl_FUNC_REALPATH_WORKS]) AC_REQUIRE([gl_FUNC_REALPATH_WORKS])
if test $ac_cv_func_canonicalize_file_name = no; then if test $ac_cv_func_canonicalize_file_name = no; then
@ -58,7 +59,8 @@ AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE],
[ [
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
AC_CHECK_FUNCS_ONCE([canonicalize_file_name faccessat]) AC_CHECK_FUNCS_ONCE([canonicalize_file_name])
gl_CHECK_FUNCS_ANDROID([faccessat], [[#include <unistd.h>]])
dnl On native Windows, we use _getcwd(), regardless whether getcwd() is dnl On native Windows, we use _getcwd(), regardless whether getcwd() is
dnl available through the linker option '-loldnames'. dnl available through the linker option '-loldnames'.

View file

@ -1,4 +1,4 @@
# euidaccess.m4 serial 16 # euidaccess.m4 serial 17
dnl Copyright (C) 2002-2023 Free Software Foundation, Inc. dnl Copyright (C) 2002-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -32,7 +32,7 @@ AC_DEFUN([gl_FUNC_EUIDACCESS],
# Prerequisites of lib/euidaccess.c. # Prerequisites of lib/euidaccess.c.
AC_DEFUN([gl_PREREQ_EUIDACCESS], [ AC_DEFUN([gl_PREREQ_EUIDACCESS], [
dnl Prefer POSIX faccessat over non-standard euidaccess. dnl Prefer POSIX faccessat over non-standard euidaccess.
AC_CHECK_FUNCS_ONCE([faccessat]) gl_CHECK_FUNCS_ANDROID([faccessat], [[#include <unistd.h>]])
dnl Try various other non-standard fallbacks. dnl Try various other non-standard fallbacks.
AC_CHECK_HEADERS([libgen.h]) AC_CHECK_HEADERS([libgen.h])
AC_FUNC_GETGROUPS AC_FUNC_GETGROUPS

View file

@ -1,4 +1,4 @@
# serial 10 # serial 12
# See if we need to provide faccessat replacement. # See if we need to provide faccessat replacement.
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
@ -16,9 +16,12 @@ AC_DEFUN([gl_FUNC_FACCESSAT],
dnl Persuade glibc <unistd.h> to declare faccessat(). dnl Persuade glibc <unistd.h> to declare faccessat().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_CHECK_FUNCS_ONCE([faccessat]) gl_CHECK_FUNCS_ANDROID([faccessat], [[#include <unistd.h>]])
if test $ac_cv_func_faccessat = no; then if test $ac_cv_func_faccessat = no; then
HAVE_FACCESSAT=0 HAVE_FACCESSAT=0
case "$gl_cv_onwards_func_faccessat" in
future*) REPLACE_FACCESSAT=1 ;;
esac
else else
case $gl_cv_func_lstat_dereferences_slashed_symlink in case $gl_cv_func_lstat_dereferences_slashed_symlink in
*yes) ;; *yes) ;;

View file

@ -1,4 +1,4 @@
# fchmodat.m4 serial 7 # fchmodat.m4 serial 8
dnl Copyright (C) 2004-2023 Free Software Foundation, Inc. dnl Copyright (C) 2004-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -97,6 +97,6 @@ AC_DEFUN([gl_FUNC_FCHMODAT],
# Prerequisites of lib/fchmodat.c. # Prerequisites of lib/fchmodat.c.
AC_DEFUN([gl_PREREQ_FCHMODAT], AC_DEFUN([gl_PREREQ_FCHMODAT],
[ [
AC_CHECK_FUNCS_ONCE([readlinkat]) gl_CHECK_FUNCS_ANDROID([readlinkat], [[#include <unistd.h>]])
: :
]) ])

View file

@ -1,4 +1,4 @@
# serial 9 # serial 11
# See if we need to provide futimens replacement. # See if we need to provide futimens replacement.
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
@ -13,9 +13,12 @@ AC_DEFUN([gl_FUNC_FUTIMENS],
AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_CHECK_FUNCS_ONCE([futimens]) gl_CHECK_FUNCS_ANDROID([futimens], [[#include <sys/stat.h>]])
if test $ac_cv_func_futimens = no; then if test $ac_cv_func_futimens = no; then
HAVE_FUTIMENS=0 HAVE_FUTIMENS=0
case "$gl_cv_onwards_func_futimens" in
future*) REPLACE_FUTIMENS=1 ;;
esac
else else
AC_CACHE_CHECK([whether futimens works], AC_CACHE_CHECK([whether futimens works],
[gl_cv_func_futimens_works], [gl_cv_func_futimens_works],

View file

@ -7,7 +7,7 @@
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
#serial 10 #serial 12
# Autoconf defines AC_FUNC_GETLOADAVG, but that is obsolescent. # Autoconf defines AC_FUNC_GETLOADAVG, but that is obsolescent.
# New applications should use gl_GETLOADAVG instead. # New applications should use gl_GETLOADAVG instead.
@ -25,8 +25,13 @@ gl_save_LIBS=$LIBS
# getloadavg is present in libc on glibc >= 2.2, Mac OS X, FreeBSD >= 2.0, # getloadavg is present in libc on glibc >= 2.2, Mac OS X, FreeBSD >= 2.0,
# NetBSD >= 0.9, OpenBSD >= 2.0, Solaris >= 7. # NetBSD >= 0.9, OpenBSD >= 2.0, Solaris >= 7.
HAVE_GETLOADAVG=1 HAVE_GETLOADAVG=1
AC_CHECK_FUNC([getloadavg], [], gl_CHECK_FUNCS_ANDROID([getloadavg], [[#include <stdlib.h>]])
[gl_func_getloadavg_done=no if test $ac_cv_func_getloadavg != yes; then
case "$gl_cv_onwards_func_getloadavg" in
future*) REPLACE_GETLOADAVG=1 ;;
esac
gl_func_getloadavg_done=no
# Some systems with -lutil have (and need) -lkvm as well, some do not. # Some systems with -lutil have (and need) -lkvm as well, some do not.
# On Solaris, -lkvm requires nlist from -lelf, so check that first # On Solaris, -lkvm requires nlist from -lelf, so check that first
@ -73,7 +78,8 @@ AC_CHECK_FUNC([getloadavg], [],
AC_DEFINE([DGUX], [1], [Define to 1 for DGUX with <sys/dg_sys_info.h>.]) AC_DEFINE([DGUX], [1], [Define to 1 for DGUX with <sys/dg_sys_info.h>.])
AC_CHECK_LIB([dgc], [dg_sys_info])]) AC_CHECK_LIB([dgc], [dg_sys_info])])
fi fi
fi]) fi
fi
if test "x$gl_save_LIBS" = x; then if test "x$gl_save_LIBS" = x; then
GETLOADAVG_LIBS=$LIBS GETLOADAVG_LIBS=$LIBS

View file

@ -1,4 +1,4 @@
# getrandom.m4 serial 10 # getrandom.m4 serial 11
dnl Copyright 2020-2023 Free Software Foundation, Inc. dnl Copyright 2020-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -18,6 +18,9 @@ AC_DEFUN([gl_FUNC_GETRANDOM],
]]) ]])
if test "$ac_cv_func_getrandom" != yes; then if test "$ac_cv_func_getrandom" != yes; then
HAVE_GETRANDOM=0 HAVE_GETRANDOM=0
case "$gl_cv_onwards_func_getrandom" in
future*) REPLACE_GETRANDOM=1 ;;
esac
else else
dnl On Solaris 11.4 the return type is 'int', not 'ssize_t'. dnl On Solaris 11.4 the return type is 'int', not 'ssize_t'.
AC_CACHE_CHECK([whether getrandom is compatible with its GNU+BSD signature], AC_CACHE_CHECK([whether getrandom is compatible with its GNU+BSD signature],

View file

@ -1,4 +1,4 @@
# gettime.m4 serial 13 # gettime.m4 serial 14
dnl Copyright (C) 2002, 2004-2006, 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2002, 2004-2006, 2009-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -18,9 +18,11 @@ AC_DEFUN([gl_GETTIME],
]) ])
dnl Tests whether the function timespec_get exists. dnl Tests whether the function timespec_get exists.
dnl Sets gl_cv_func_timespec_get. dnl Sets gl_cv_func_timespec_get and gl_cv_onwards_func_timespec_get.
AC_DEFUN([gl_CHECK_FUNC_TIMESPEC_GET], AC_DEFUN([gl_CHECK_FUNC_TIMESPEC_GET],
[ [
AC_REQUIRE([AC_CANONICAL_HOST])
dnl Persuade OpenBSD <time.h> to declare timespec_get(). dnl Persuade OpenBSD <time.h> to declare timespec_get().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
@ -29,21 +31,32 @@ AC_DEFUN([gl_CHECK_FUNC_TIMESPEC_GET],
dnl But at the same time, we need to notice a missing declaration, like dnl But at the same time, we need to notice a missing declaration, like
dnl gl_CHECK_FUNCS_ANDROID does. dnl gl_CHECK_FUNCS_ANDROID does.
AC_CHECK_DECL([timespec_get], , , [[#include <time.h>]]) AC_CHECK_DECL([timespec_get], , , [[#include <time.h>]])
if test $ac_cv_have_decl_timespec_get = yes; then AC_CACHE_CHECK([for timespec_get], [gl_cv_onwards_func_timespec_get],
AC_CACHE_CHECK([for timespec_get], [gl_cv_func_timespec_get], [if test $ac_cv_have_decl_timespec_get = yes; then
[AC_LINK_IFELSE( AC_LINK_IFELSE(
[AC_LANG_PROGRAM( [AC_LANG_PROGRAM(
[[#include <time.h> [[#include <time.h>
struct timespec ts; struct timespec ts;
]], ]],
[[return timespec_get (&ts, 0);]]) [[return timespec_get (&ts, 0);]])
], ],
[gl_cv_func_timespec_get=yes], [gl_cv_onwards_func_timespec_get=yes],
[gl_cv_func_timespec_get=no]) [gl_cv_onwards_func_timespec_get=no])
]) else
else gl_cv_onwards_func_timespec_get=no
gl_cv_func_timespec_get=no fi
fi case "$host_os" in
linux*-android*)
if test $gl_cv_onwards_func_timespec_get = no; then
gl_cv_onwards_func_timespec_get='future OS version'
fi
;;
esac
])
case "$gl_cv_onwards_func_timespec_get" in
future*) gl_cv_func_timespec_get=no ;;
*) gl_cv_func_timespec_get=$gl_cv_onwards_func_timespec_get ;;
esac
]) ])
AC_DEFUN([gl_GETTIME_RES], AC_DEFUN([gl_GETTIME_RES],

View file

@ -1,4 +1,4 @@
# gnulib-common.m4 serial 76 # gnulib-common.m4 serial 80
dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -38,6 +38,11 @@ AC_DEFUN([gl_COMMON_BODY], [
AIX system header files and several gnulib header files use precisely AIX system header files and several gnulib header files use precisely
this syntax with 'extern'. */ this syntax with 'extern'. */
# define _Noreturn [[noreturn]] # define _Noreturn [[noreturn]]
# elif (defined __clang__ && __clang_major__ < 16 \
&& defined _GL_WORK_AROUND_LLVM_BUG_59792)
/* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
that rare LLVM bug, though you may get many false-alarm warnings. */
# define _Noreturn
# elif ((!defined __cplusplus || defined __clang__) \ # elif ((!defined __cplusplus || defined __clang__) \
&& (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
|| (!defined __STRICT_ANSI__ \ || (!defined __STRICT_ANSI__ \
@ -119,29 +124,35 @@ AC_DEFUN([gl_COMMON_BODY], [
by the Nth argument of the function is the size of the returned memory block. 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: function, pointer to function, function types. */
#if _GL_HAS_ATTRIBUTE (alloc_size) #ifndef _GL_ATTRIBUTE_ALLOC_SIZE
# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) # if _GL_HAS_ATTRIBUTE (alloc_size)
#else # define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
# define _GL_ATTRIBUTE_ALLOC_SIZE(args) # else
# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
# endif
#endif #endif
/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the /* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the
function and report an error if it cannot do so. */ function and report an error if it cannot do so. */
/* Applies to: function. */ /* Applies to: function. */
#if _GL_HAS_ATTRIBUTE (always_inline) #ifndef _GL_ATTRIBUTE_ALWAYS_INLINE
# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) # if _GL_HAS_ATTRIBUTE (always_inline)
#else # define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
# define _GL_ATTRIBUTE_ALWAYS_INLINE # else
# define _GL_ATTRIBUTE_ALWAYS_INLINE
# endif
#endif #endif
/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show /* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show
in stack traces when debugging. The compiler should omit the function from in stack traces when debugging. The compiler should omit the function from
stack traces. */ stack traces. */
/* Applies to: function. */ /* Applies to: function. */
#if _GL_HAS_ATTRIBUTE (artificial) #ifndef _GL_ATTRIBUTE_ARTIFICIAL
# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) # if _GL_HAS_ATTRIBUTE (artificial)
#else # define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
# define _GL_ATTRIBUTE_ARTIFICIAL # else
# define _GL_ATTRIBUTE_ARTIFICIAL
# endif
#endif #endif
/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ /* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */
@ -149,14 +160,16 @@ AC_DEFUN([gl_COMMON_BODY], [
/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at /* Avoid __attribute__ ((cold)) on MinGW; see thread starting at
<https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>. <https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>.
Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */
#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ #ifndef _GL_ATTRIBUTE_COLD
# ifndef __SUNPRO_C # if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) # ifndef __SUNPRO_C
# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
# else
# define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
# endif
# else # else
# define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) # define _GL_ATTRIBUTE_COLD
# endif # endif
#else
# define _GL_ATTRIBUTE_COLD
#endif #endif
/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate /* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate
@ -166,10 +179,12 @@ AC_DEFUN([gl_COMMON_BODY], [
forever, and does not call longjmp. forever, and does not call longjmp.
(This attribute is stricter than _GL_ATTRIBUTE_PURE.) */ (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (const) #ifndef _GL_ATTRIBUTE_CONST
# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) # if _GL_HAS_ATTRIBUTE (const)
#else # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
# define _GL_ATTRIBUTE_CONST # else
# define _GL_ATTRIBUTE_CONST
# endif
#endif #endif
/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers /* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
@ -178,10 +193,12 @@ AC_DEFUN([gl_COMMON_BODY], [
_GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
can be freed via 'free'; it can be used only after declaring 'free'. */ can be freed via 'free'; it can be used only after declaring 'free'. */
/* Applies to: functions. Cannot be used on inline functions. */ /* Applies to: functions. Cannot be used on inline functions. */
#if _GL_GNUC_PREREQ (11, 0) #ifndef _GL_ATTRIBUTE_DEALLOC
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) # if _GL_GNUC_PREREQ (11, 0)
#else # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
# define _GL_ATTRIBUTE_DEALLOC(f, i) # else
# define _GL_ATTRIBUTE_DEALLOC(f, i)
# endif
#endif #endif
/* If gnulib's <string.h> or <wchar.h> has already defined this macro, continue /* If gnulib's <string.h> or <wchar.h> has already defined this macro, continue
to use this earlier definition, since <stdlib.h> may not have been included to use this earlier definition, since <stdlib.h> may not have been included
@ -205,16 +222,18 @@ AC_DEFUN([gl_COMMON_BODY], [
- enumeration, enumeration item, - enumeration, enumeration item,
- typedef, - typedef,
in C++ also: namespace, class, template specialization. */ in C++ also: namespace, class, template specialization. */
#ifdef __has_c_attribute
# if __has_c_attribute (__deprecated__)
# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
# endif
#endif
#if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated)
# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
#endif
#ifndef _GL_ATTRIBUTE_DEPRECATED #ifndef _GL_ATTRIBUTE_DEPRECATED
# define _GL_ATTRIBUTE_DEPRECATED # ifdef __has_c_attribute
# if __has_c_attribute (__deprecated__)
# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
# endif
# endif
# if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated)
# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
# endif
# ifndef _GL_ATTRIBUTE_DEPRECATED
# define _GL_ATTRIBUTE_DEPRECATED
# endif
#endif #endif
/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and /* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and
@ -222,24 +241,28 @@ AC_DEFUN([gl_COMMON_BODY], [
_GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and
the function call is not optimized away. */ the function call is not optimized away. */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (error) #if !(defined _GL_ATTRIBUTE_ERROR && defined _GL_ATTRIBUTE_WARNING)
# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) # if _GL_HAS_ATTRIBUTE (error)
# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) # define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
#elif _GL_HAS_ATTRIBUTE (diagnose_if) # define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) # elif _GL_HAS_ATTRIBUTE (diagnose_if)
# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) # define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
#else # define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
# define _GL_ATTRIBUTE_ERROR(msg) # else
# define _GL_ATTRIBUTE_WARNING(msg) # define _GL_ATTRIBUTE_ERROR(msg)
# define _GL_ATTRIBUTE_WARNING(msg)
# endif
#endif #endif
/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain /* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain
visible to debuggers etc., even with '-fwhole-program'. */ visible to debuggers etc., even with '-fwhole-program'. */
/* Applies to: functions, variables. */ /* Applies to: functions, variables. */
#if _GL_HAS_ATTRIBUTE (externally_visible) #ifndef _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) # if _GL_HAS_ATTRIBUTE (externally_visible)
#else # define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE # else
# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
# endif
#endif #endif
/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if /* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if
@ -247,16 +270,18 @@ AC_DEFUN([gl_COMMON_BODY], [
'default' label. The compiler should not warn in this case. */ 'default' label. The compiler should not warn in this case. */
/* Applies to: Empty statement (;), inside a 'switch' statement. */ /* Applies to: Empty statement (;), inside a 'switch' statement. */
/* Always expands to something. */ /* Always expands to something. */
#ifdef __has_c_attribute
# if __has_c_attribute (__fallthrough__)
# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
# endif
#endif
#if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough)
# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
#endif
#ifndef _GL_ATTRIBUTE_FALLTHROUGH #ifndef _GL_ATTRIBUTE_FALLTHROUGH
# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) # ifdef __has_c_attribute
# if __has_c_attribute (__fallthrough__)
# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
# endif
# endif
# if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough)
# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
# endif
# ifndef _GL_ATTRIBUTE_FALLTHROUGH
# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
# endif
#endif #endif
/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) /* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK))
@ -270,10 +295,12 @@ AC_DEFUN([gl_COMMON_BODY], [
If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK
are suitable for the format string. */ are suitable for the format string. */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (format) #ifndef _GL_ATTRIBUTE_FORMAT
# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) # if _GL_HAS_ATTRIBUTE (format)
#else # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
# define _GL_ATTRIBUTE_FORMAT(spec) # else
# define _GL_ATTRIBUTE_FORMAT(spec)
# endif
#endif #endif
/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other /* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other
@ -281,19 +308,23 @@ AC_DEFUN([gl_COMMON_BODY], [
exception handling. This declaration lets the compiler optimize that unit exception handling. This declaration lets the compiler optimize that unit
more aggressively. */ more aggressively. */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (leaf) #ifndef _GL_ATTRIBUTE_LEAF
# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) # if _GL_HAS_ATTRIBUTE (leaf)
#else # define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
# define _GL_ATTRIBUTE_LEAF # else
# define _GL_ATTRIBUTE_LEAF
# endif
#endif #endif
/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly /* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
allocated memory. */ allocated memory. */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (malloc) #ifndef _GL_ATTRIBUTE_MALLOC
# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) # if _GL_HAS_ATTRIBUTE (malloc)
#else # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
# define _GL_ATTRIBUTE_MALLOC # else
# define _GL_ATTRIBUTE_MALLOC
# endif
#endif #endif
/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the /* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the
@ -301,10 +332,12 @@ AC_DEFUN([gl_COMMON_BODY], [
strict aliasing optimization. */ strict aliasing optimization. */
/* Applies to: types. */ /* Applies to: types. */
/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ /* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */
#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C #ifndef _GL_ATTRIBUTE_MAY_ALIAS
# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) # if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
#else # define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
# define _GL_ATTRIBUTE_MAY_ALIAS # else
# define _GL_ATTRIBUTE_MAY_ALIAS
# endif
#endif #endif
/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if /* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if
@ -318,14 +351,22 @@ AC_DEFUN([gl_COMMON_BODY], [
in C++ also: class. */ in C++ also: class. */
/* In C++ and C23, this is spelled [[__maybe_unused__]]. /* In C++ and C23, this is spelled [[__maybe_unused__]].
GCC's syntax is __attribute__ ((__unused__)). GCC's syntax is __attribute__ ((__unused__)).
clang supports both syntaxes. */ clang supports both syntaxes. Except that with clang ≥ 6, < 10, in C++ mode,
#ifdef __has_c_attribute __has_c_attribute (__maybe_unused__) yields true but the use of
# if __has_c_attribute (__maybe_unused__) [[__maybe_unused__]] nevertheless produces a warning. */
# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
# endif
#endif
#ifndef _GL_ATTRIBUTE_MAYBE_UNUSED #ifndef _GL_ATTRIBUTE_MAYBE_UNUSED
# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED # if defined __clang__ && defined __cplusplus
# if __clang_major__ >= 10
# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
# endif
# elif defined __has_c_attribute
# if __has_c_attribute (__maybe_unused__)
# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
# endif
# endif
# ifndef _GL_ATTRIBUTE_MAYBE_UNUSED
# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED
# endif
#endif #endif
/* Alternative spelling of this macro, for convenience and for /* Alternative spelling of this macro, for convenience and for
compatibility with glibc/include/libc-symbols.h. */ compatibility with glibc/include/libc-symbols.h. */
@ -337,25 +378,38 @@ AC_DEFUN([gl_COMMON_BODY], [
discard the return value. The compiler may warn if the caller does not use discard the return value. The compiler may warn if the caller does not use
the return value, unless the caller uses something like ignore_value. */ the return value, unless the caller uses something like ignore_value. */
/* Applies to: function, enumeration, class. */ /* Applies to: function, enumeration, class. */
#ifdef __has_c_attribute
# if __has_c_attribute (__nodiscard__)
# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
# endif
#endif
#if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result)
# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
#endif
#ifndef _GL_ATTRIBUTE_NODISCARD #ifndef _GL_ATTRIBUTE_NODISCARD
# define _GL_ATTRIBUTE_NODISCARD # if defined __clang__ && defined __cplusplus
/* With clang up to 15.0.6 (at least), in C++ mode, [[__nodiscard__]] produces
a warning.
The 1000 below means a yet unknown threshold. When clang++ version X
starts supporting [[__nodiscard__]] without warning about it, you can
replace the 1000 with X. */
# if __clang_major__ >= 1000
# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
# endif
# elif defined __has_c_attribute
# if __has_c_attribute (__nodiscard__)
# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
# endif
# endif
# if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result)
# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
# endif
# ifndef _GL_ATTRIBUTE_NODISCARD
# define _GL_ATTRIBUTE_NODISCARD
# endif
#endif #endif
/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the /* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the
function. */ function. */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (noinline) #ifndef _GL_ATTRIBUTE_NOINLINE
# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) # if _GL_HAS_ATTRIBUTE (noinline)
#else # define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
# define _GL_ATTRIBUTE_NOINLINE # else
# define _GL_ATTRIBUTE_NOINLINE
# endif
#endif #endif
/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... /* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,...
@ -363,20 +417,24 @@ AC_DEFUN([gl_COMMON_BODY], [
_GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be
null. */ null. */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (nonnull) #ifndef _GL_ATTRIBUTE_NONNULL
# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) # if _GL_HAS_ATTRIBUTE (nonnull)
#else # define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
# define _GL_ATTRIBUTE_NONNULL(args) # else
# define _GL_ATTRIBUTE_NONNULL(args)
# endif
#endif #endif
/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is /* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is
not meant to be NUL-terminated. */ not meant to be NUL-terminated. */
/* Applies to: struct/union members and variables that are arrays of element /* Applies to: struct/union members and variables that are arrays of element
type '[[un]signed] char'. */ type '[[un]signed] char'. */
#if _GL_HAS_ATTRIBUTE (nonstring) #ifndef _GL_ATTRIBUTE_NONSTRING
# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) # if _GL_HAS_ATTRIBUTE (nonstring)
#else # define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
# define _GL_ATTRIBUTE_NONSTRING # else
# define _GL_ATTRIBUTE_NONSTRING
# endif
#endif #endif
/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ /* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */
@ -384,10 +442,12 @@ AC_DEFUN([gl_COMMON_BODY], [
/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. /* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions.
*/ */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus #ifndef _GL_ATTRIBUTE_NOTHROW
# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) # if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
#else # define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
# define _GL_ATTRIBUTE_NOTHROW # else
# define _GL_ATTRIBUTE_NOTHROW
# endif
#endif #endif
/* _GL_ATTRIBUTE_PACKED declares: /* _GL_ATTRIBUTE_PACKED declares:
@ -396,10 +456,12 @@ AC_DEFUN([gl_COMMON_BODY], [
minimizing the memory required. */ minimizing the memory required. */
/* Applies to: struct members, struct, union, /* Applies to: struct members, struct, union,
in C++ also: class. */ in C++ also: class. */
#if _GL_HAS_ATTRIBUTE (packed) #ifndef _GL_ATTRIBUTE_PACKED
# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) # if _GL_HAS_ATTRIBUTE (packed)
#else # define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
# define _GL_ATTRIBUTE_PACKED # else
# define _GL_ATTRIBUTE_PACKED
# endif
#endif #endif
/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate /* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate
@ -409,19 +471,23 @@ AC_DEFUN([gl_COMMON_BODY], [
observable state, and always returns exactly once. observable state, and always returns exactly once.
(This attribute is looser than _GL_ATTRIBUTE_CONST.) */ (This attribute is looser than _GL_ATTRIBUTE_CONST.) */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (pure) #ifndef _GL_ATTRIBUTE_PURE
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # if _GL_HAS_ATTRIBUTE (pure)
#else # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
# define _GL_ATTRIBUTE_PURE # else
# define _GL_ATTRIBUTE_PURE
# endif
#endif #endif
/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is /* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is
a non-NULL pointer. */ a non-NULL pointer. */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (returns_nonnull) #ifndef _GL_ATTRIBUTE_RETURNS_NONNULL
# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) # if _GL_HAS_ATTRIBUTE (returns_nonnull)
#else # define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
# define _GL_ATTRIBUTE_RETURNS_NONNULL # else
# define _GL_ATTRIBUTE_RETURNS_NONNULL
# endif
#endif #endif
/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a /* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a
@ -429,17 +495,21 @@ AC_DEFUN([gl_COMMON_BODY], [
_GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99).
_GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */
/* Applies to: functions. */ /* Applies to: functions. */
#if _GL_HAS_ATTRIBUTE (sentinel) #ifndef _GL_ATTRIBUTE_SENTINEL
# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) # if _GL_HAS_ATTRIBUTE (sentinel)
#else # define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
# define _GL_ATTRIBUTE_SENTINEL(pos) # else
# define _GL_ATTRIBUTE_SENTINEL(pos)
# endif
#endif #endif
/* A helper macro. Don't use it directly. */ /* A helper macro. Don't use it directly. */
#if _GL_HAS_ATTRIBUTE (unused) #ifndef _GL_ATTRIBUTE_UNUSED
# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # if _GL_HAS_ATTRIBUTE (unused)
#else # define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
# define _GL_ATTRIBUTE_UNUSED # else
# define _GL_ATTRIBUTE_UNUSED
# endif
#endif #endif
]dnl There is no _GL_ATTRIBUTE_VISIBILITY; see m4/visibility.m4 instead. ]dnl There is no _GL_ATTRIBUTE_VISIBILITY; see m4/visibility.m4 instead.
@ -450,10 +520,12 @@ AC_DEFUN([gl_COMMON_BODY], [
/* Applies to: label (both in C and C++). */ /* Applies to: label (both in C and C++). */
/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' /* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;'
syntax. But clang does. */ syntax. But clang does. */
#if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ #ifndef _GL_UNUSED_LABEL
# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED # if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__
#else # define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED
# define _GL_UNUSED_LABEL # else
# define _GL_UNUSED_LABEL
# endif
#endif #endif
]) ])
AH_VERBATIM([async_safe], AH_VERBATIM([async_safe],
@ -1026,8 +1098,21 @@ AC_DEFUN([gl_CONDITIONAL_HEADER],
dnl gl_CHECK_FUNCS_ANDROID([func], [[#include <foo.h>]]) dnl gl_CHECK_FUNCS_ANDROID([func], [[#include <foo.h>]])
dnl is like AC_CHECK_FUNCS([func]), taking into account a portability problem dnl is like AC_CHECK_FUNCS([func]), taking into account a portability problem
dnl on Android. dnl on Android.
dnl Namely, if func was added to Android API level, say, 28, then the libc.so dnl
dnl has the symbol func always, whereas the header file <foo.h> declares func dnl When code is compiled on Android, it is in the context of a certain
dnl "Android API level", which indicates the minimum version of Android on
dnl which the app can be installed. In other words, you don't compile for a
dnl specific version of Android. You compile for all versions of Android,
dnl onwards from the given API level.
dnl Thus, the question "does the OS have the function func" has three possible
dnl answers:
dnl - yes, in all versions starting from the given API level,
dnl - no, in no version,
dnl - not in the given API level, but in a later version of Android.
dnl
dnl In detail, this works as follows:
dnl If func was added to Android API level, say, 28, then the libc.so has the
dnl symbol func always, whereas the header file <foo.h> declares func
dnl conditionally: dnl conditionally:
dnl #if __ANDROID_API__ >= 28 dnl #if __ANDROID_API__ >= 28
dnl ... func (...) __INTRODUCED_IN(28); dnl ... func (...) __INTRODUCED_IN(28);
@ -1035,15 +1120,55 @@ dnl #endif
dnl Thus, when compiling with "clang -target armv7a-unknown-linux-android28", dnl Thus, when compiling with "clang -target armv7a-unknown-linux-android28",
dnl the function func is declared and exists in libc. dnl the function func is declared and exists in libc.
dnl Whereas when compiling with "clang -target armv7a-unknown-linux-android27", dnl Whereas when compiling with "clang -target armv7a-unknown-linux-android27",
dnl the function func is not declared but exists in libc. We need to treat this dnl the function func is not declared but exists in libc.
dnl case like the case where func does not exist. dnl
dnl This macro sets two variables:
dnl - gl_cv_onwards_func_<func> to yes / no / "future OS version"
dnl - ac_cv_func_<func> to yes / no / no
dnl The first variable allows to distinguish all three cases.
dnl The second variable is set, so that an invocation
dnl gl_CHECK_FUNCS_ANDROID([func], [[#include <foo.h>]])
dnl can be used as a drop-in replacement for
dnl AC_CHECK_FUNCS([func]).
AC_DEFUN([gl_CHECK_FUNCS_ANDROID], AC_DEFUN([gl_CHECK_FUNCS_ANDROID],
[ [
AC_CHECK_DECL([$1], , , [$2]) AC_REQUIRE([AC_CANONICAL_HOST])
if test $ac_cv_have_decl_[$1] = yes; then AC_CACHE_CHECK([for [$1]],
AC_CHECK_FUNCS([$1]) [[gl_cv_onwards_func_][$1]],
else [gl_SILENT([
ac_cv_func_[$1]=no case "$host_os" in
linux*-android*)
AC_CHECK_DECL([$1], , , [$2])
if test $[ac_cv_have_decl_][$1] = yes; then
AC_CHECK_FUNC([[$1]])
if test $[ac_cv_func_][$1] = yes; then
[gl_cv_onwards_func_][$1]=yes
else
dnl The function is declared but does not exist. This should not
dnl happen normally. But anyway, we know that a future version
dnl of Android will have the function.
[gl_cv_onwards_func_][$1]='future OS version'
fi
else
[gl_cv_onwards_func_][$1]='future OS version'
fi
;;
*)
AC_CHECK_FUNC([$1])
[gl_cv_onwards_func_][$1]=$[ac_cv_func_][$1]
;;
esac
])
])
case "$[gl_cv_onwards_func_][$1]" in
future*) [ac_cv_func_][$1]=no ;;
*) [ac_cv_func_][$1]=$[gl_cv_onwards_func_][$1] ;;
esac
if test $[ac_cv_func_][$1] = yes; then
AC_DEFINE([HAVE_]m4_translit([[$1]],
[abcdefghijklmnopqrstuvwxyz],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ]),
[1], [Define to 1 if you have the `$1' function.])
fi fi
]) ])

View file

@ -44,6 +44,7 @@ AC_DEFUN([gl_EARLY],
# Code from module absolute-header: # Code from module absolute-header:
# Code from module acl-permissions: # Code from module acl-permissions:
# Code from module alignasof:
# Code from module alloca-opt: # Code from module alloca-opt:
# Code from module allocator: # Code from module allocator:
# Code from module assert-h: # Code from module assert-h:
@ -231,6 +232,7 @@ AC_DEFUN([gl_INIT],
gl_source_base='lib' gl_source_base='lib'
gl_source_base_prefix= gl_source_base_prefix=
gl_FUNC_ACL gl_FUNC_ACL
gl_ALIGNASOF
gl_FUNC_ALLOCA gl_FUNC_ALLOCA
gl_CONDITIONAL_HEADER([alloca.h]) gl_CONDITIONAL_HEADER([alloca.h])
AC_PROG_MKDIR_P AC_PROG_MKDIR_P
@ -248,7 +250,7 @@ AC_DEFUN([gl_INIT],
gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name]) gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name])
gl_STDLIB_MODULE_INDICATOR([realpath]) gl_STDLIB_MODULE_INDICATOR([realpath])
AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_C_RESTRICT])
AC_CHECK_FUNCS_ONCE([readlinkat]) gl_CHECK_FUNCS_ANDROID([readlinkat], [[#include <unistd.h>]])
gl_CLOCK_TIME gl_CLOCK_TIME
gl_MODULE_INDICATOR([close-stream]) gl_MODULE_INDICATOR([close-stream])
gl_FUNC_COPY_FILE_RANGE gl_FUNC_COPY_FILE_RANGE
@ -344,7 +346,8 @@ AC_DEFUN([gl_INIT],
gl_SYS_STAT_MODULE_INDICATOR([futimens]) gl_SYS_STAT_MODULE_INDICATOR([futimens])
AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_CANONICAL_HOST])
gl_GETLOADAVG gl_GETLOADAVG
gl_CONDITIONAL([GL_COND_OBJ_GETLOADAVG], [test $HAVE_GETLOADAVG = 0]) gl_CONDITIONAL([GL_COND_OBJ_GETLOADAVG],
[test $HAVE_GETLOADAVG = 0 || test $REPLACE_GETLOADAVG = 1])
AM_COND_IF([GL_COND_OBJ_GETLOADAVG], [ AM_COND_IF([GL_COND_OBJ_GETLOADAVG], [
gl_PREREQ_GETLOADAVG gl_PREREQ_GETLOADAVG
]) ])
@ -404,7 +407,8 @@ AC_DEFUN([gl_INIT],
fi fi
gl_STRING_MODULE_INDICATOR([memmem]) gl_STRING_MODULE_INDICATOR([memmem])
gl_FUNC_MEMPCPY gl_FUNC_MEMPCPY
gl_CONDITIONAL([GL_COND_OBJ_MEMPCPY], [test $HAVE_MEMPCPY = 0]) gl_CONDITIONAL([GL_COND_OBJ_MEMPCPY],
[test $HAVE_MEMPCPY = 0 || test $REPLACE_MEMPCPY = 1])
AM_COND_IF([GL_COND_OBJ_MEMPCPY], [ AM_COND_IF([GL_COND_OBJ_MEMPCPY], [
gl_PREREQ_MEMPCPY gl_PREREQ_MEMPCPY
]) ])
@ -423,7 +427,8 @@ AC_DEFUN([gl_INIT],
gl_STRING_MODULE_INDICATOR([memset_explicit]) gl_STRING_MODULE_INDICATOR([memset_explicit])
gl_MINMAX gl_MINMAX
gl_FUNC_MKOSTEMP gl_FUNC_MKOSTEMP
gl_CONDITIONAL([GL_COND_OBJ_MKOSTEMP], [test $HAVE_MKOSTEMP = 0]) gl_CONDITIONAL([GL_COND_OBJ_MKOSTEMP],
[test $HAVE_MKOSTEMP = 0 || test $REPLACE_MKOSTEMP = 1])
AM_COND_IF([GL_COND_OBJ_MKOSTEMP], [ AM_COND_IF([GL_COND_OBJ_MKOSTEMP], [
gl_PREREQ_MKOSTEMP gl_PREREQ_MKOSTEMP
]) ])
@ -548,7 +553,8 @@ AC_DEFUN([gl_INIT],
gl_STDLIB_H_REQUIRE_DEFAULTS gl_STDLIB_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P AC_PROG_MKDIR_P
gl_FUNC_STPCPY gl_FUNC_STPCPY
gl_CONDITIONAL([GL_COND_OBJ_STPCPY], [test $HAVE_STPCPY = 0]) gl_CONDITIONAL([GL_COND_OBJ_STPCPY],
[test $HAVE_STPCPY = 0 || test $REPLACE_STPCPY = 1])
AM_COND_IF([GL_COND_OBJ_STPCPY], [ AM_COND_IF([GL_COND_OBJ_STPCPY], [
gl_PREREQ_STPCPY gl_PREREQ_STPCPY
]) ])
@ -973,7 +979,7 @@ AC_DEFUN([gl_INIT],
if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
func_gl_gnulib_m4code_utimens func_gl_gnulib_m4code_utimens
fi fi
if case $host_os in mingw*) false;; *) test $HAVE_GETLOADAVG = 0;; esac; then if case $host_os in mingw*) false;; *) test $HAVE_GETLOADAVG = 0 || test $REPLACE_GETLOADAVG = 1;; esac; then
func_gl_gnulib_m4code_open func_gl_gnulib_m4code_open
fi fi
if test $REPLACE_GETOPT = 1; then if test $REPLACE_GETOPT = 1; then

View file

@ -1,4 +1,4 @@
# inttypes.m4 serial 36 # inttypes.m4 serial 37
dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -170,6 +170,10 @@ AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX]) HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX]) HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
HAVE_IMAXDIV_T=1; AC_SUBST([HAVE_IMAXDIV_T]) HAVE_IMAXDIV_T=1; AC_SUBST([HAVE_IMAXDIV_T])
HAVE_IMAXABS=1; AC_SUBST([HAVE_IMAXABS])
HAVE_IMAXDIV=1; AC_SUBST([HAVE_IMAXDIV])
REPLACE_IMAXABS=0; AC_SUBST([REPLACE_IMAXABS])
REPLACE_IMAXDIV=0; AC_SUBST([REPLACE_IMAXDIV])
REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX]) REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX])
REPLACE_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX]) REPLACE_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX])
INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX]) INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX])

View file

@ -1,4 +1,4 @@
# mempcpy.m4 serial 12 # mempcpy.m4 serial 14
dnl Copyright (C) 2003-2004, 2006-2007, 2009-2023 Free Software Foundation, dnl Copyright (C) 2003-2004, 2006-2007, 2009-2023 Free Software Foundation,
dnl Inc. dnl Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
@ -14,9 +14,12 @@ AC_DEFUN([gl_FUNC_MEMPCPY],
AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_C_RESTRICT])
AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_REQUIRE([gl_STRING_H_DEFAULTS])
AC_CHECK_FUNCS([mempcpy]) gl_CHECK_FUNCS_ANDROID([mempcpy], [[#include <string.h>]])
if test $ac_cv_func_mempcpy = no; then if test $ac_cv_func_mempcpy = no; then
HAVE_MEMPCPY=0 HAVE_MEMPCPY=0
case "$gl_cv_onwards_func_mempcpy" in
future*) REPLACE_MEMPCPY=1 ;;
esac
fi fi
]) ])

View file

@ -1,4 +1,4 @@
# mkostemp.m4 serial 2 # mkostemp.m4 serial 4
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -11,9 +11,12 @@ AC_DEFUN([gl_FUNC_MKOSTEMP],
dnl Persuade glibc <stdlib.h> to declare mkostemp(). dnl Persuade glibc <stdlib.h> to declare mkostemp().
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
AC_CHECK_FUNCS_ONCE([mkostemp]) gl_CHECK_FUNCS_ANDROID([mkostemp], [[#include <stdlib.h>]])
if test $ac_cv_func_mkostemp != yes; then if test $ac_cv_func_mkostemp != yes; then
HAVE_MKOSTEMP=0 HAVE_MKOSTEMP=0
case "$gl_cv_onwards_func_mkostemp" in
future*) REPLACE_MKOSTEMP=1 ;;
esac
fi fi
]) ])

View file

@ -1,4 +1,4 @@
# nproc.m4 serial 5 # nproc.m4 serial 6
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -25,8 +25,8 @@ AC_DEFUN([gl_PREREQ_NPROC],
#endif #endif
]) ])
AC_CHECK_FUNCS([sched_getaffinity sched_getaffinity_np \ AC_CHECK_FUNCS([sched_getaffinity_np pstat_getdynamic sysmp sysctl])
pstat_getdynamic sysmp sysctl]) gl_CHECK_FUNCS_ANDROID([sched_getaffinity], [[#include <sched.h>]])
dnl Test whether sched_getaffinity has the expected declaration. dnl Test whether sched_getaffinity has the expected declaration.
dnl glibc 2.3.[0-2]: dnl glibc 2.3.[0-2]:

View file

@ -1,4 +1,4 @@
# pipe2.m4 serial 2 # pipe2.m4 serial 4
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -11,8 +11,13 @@ AC_DEFUN([gl_FUNC_PIPE2],
dnl Persuade glibc <unistd.h> to declare pipe2(). dnl Persuade glibc <unistd.h> to declare pipe2().
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
AC_CHECK_FUNCS_ONCE([pipe2]) gl_CHECK_FUNCS_ANDROID([pipe2], [[#include <unistd.h>]])
if test $ac_cv_func_pipe2 != yes; then if test $ac_cv_func_pipe2 != yes; then
HAVE_PIPE2=0 HAVE_PIPE2=0
case "$gl_cv_onwards_func_pipe2" in
future*) REPLACE_PIPE2=1 ;;
esac
else
REPLACE_PIPE2=1
fi fi
]) ])

View file

@ -1,4 +1,4 @@
# serial 6 # serial 8
# See if we need to provide readlinkat replacement. # See if we need to provide readlinkat replacement.
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
@ -12,10 +12,13 @@ AC_DEFUN([gl_FUNC_READLINKAT],
[ [
AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_CHECK_FUNCS_ONCE([readlinkat]) gl_CHECK_FUNCS_ANDROID([readlinkat], [[#include <unistd.h>]])
AC_REQUIRE([gl_FUNC_READLINK]) AC_REQUIRE([gl_FUNC_READLINK])
if test $ac_cv_func_readlinkat = no; then if test $ac_cv_func_readlinkat = no; then
HAVE_READLINKAT=0 HAVE_READLINKAT=0
case "$gl_cv_onwards_func_readlinkat" in
future*) REPLACE_READLINKAT=1 ;;
esac
else else
AC_CACHE_CHECK([whether readlinkat signature is correct], AC_CACHE_CHECK([whether readlinkat signature is correct],
[gl_cv_decl_readlinkat_works], [gl_cv_decl_readlinkat_works],

View file

@ -5,9 +5,11 @@ dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved. dnl with or without modifications, as long as this notice is preserved.
dnl Written by Paul Eggert and Bruno Haible.
# Prepare for substituting <stdalign.h> if it is not supported. # Prepare for substituting <stdalign.h> if it is not supported.
AC_DEFUN([gl_STDALIGN_H], AC_DEFUN([gl_ALIGNASOF],
[ [
AC_CACHE_CHECK([for alignas and alignof], AC_CACHE_CHECK([for alignas and alignof],
[gl_cv_header_working_stdalign_h], [gl_cv_header_working_stdalign_h],
@ -58,77 +60,141 @@ AC_DEFUN([gl_STDALIGN_H],
test "$gl_cv_header_working_stdalign_h" != no && break test "$gl_cv_header_working_stdalign_h" != no && break
done]) done])
GL_GENERATE_STDALIGN_H=false
AS_CASE([$gl_cv_header_working_stdalign_h], AS_CASE([$gl_cv_header_working_stdalign_h],
[no],
[GL_GENERATE_STDALIGN_H=true],
[yes*keyword*], [yes*keyword*],
[AC_DEFINE([HAVE_C_ALIGNASOF], [1], [AC_DEFINE([HAVE_C_ALIGNASOF], [1],
[Define to 1 if the alignas and alignof keywords work.])]) [Define to 1 if the alignas and alignof keywords work.])])
AC_CHECK_HEADERS_ONCE([stdalign.h])
dnl The "zz" puts this toward config.h's end, to avoid potential dnl The "zz" puts this toward config.h's end, to avoid potential
dnl collisions with other definitions. dnl collisions with other definitions.
AH_VERBATIM([zzalignas], AH_VERBATIM([zzalignas],
[#if !defined HAVE_C_ALIGNASOF && __cplusplus < 201103 && !defined alignof [#if !defined HAVE_C_ALIGNASOF && __cplusplus < 201103 && !defined alignof
# if HAVE_STDALIGN_H # if HAVE_STDALIGN_H
# include <stdalign.h> # include <stdalign.h>
# else # endif
/* Substitute. Keep consistent with gnulib/lib/stdalign.in.h. */
# ifndef _GL_STDALIGN_H /* ISO C23 alignas and alignof for platforms that lack it.
# define _GL_STDALIGN_H
# undef _Alignas References:
# undef _Alignof ISO C23 (latest free draft
# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf>)
|| (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ sections 6.5.3.4, 6.7.5, 7.15.
&& !defined __clang__) \ C++11 (latest free draft
|| (defined __clang__ && __clang_major__ < 8)) <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>)
# ifdef __cplusplus section 18.10. */
# if (201103 <= __cplusplus || defined _MSC_VER)
# define _Alignof(type) alignof (type) /* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment
# else requirement of a structure member (i.e., slot or field) that is of
template <class __t> struct __alignof_helper { char __a; __t __b; }; type TYPE, as an integer constant expression.
# define _Alignof(type) offsetof (__alignof_helper<type>, __b)
# define _GL_STDALIGN_NEEDS_STDDEF 1 This differs from GCC's and clang's __alignof__ operator, which can
# endif yield a better-performing alignment for an object of that type. For
example, on x86 with GCC and on Linux/x86 with clang,
__alignof__ (double) and __alignof__ (long long) are 8, whereas
alignof (double) and alignof (long long) are 4 unless the option
'-malign-double' is used.
The result cannot be used as a value for an 'enum' constant, if you
want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */
/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
clang versions < 8.0.0 have the same bug. */
# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
|| (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
&& !defined __clang__) \
|| (defined __clang__ && __clang_major__ < 8))
# undef/**/_Alignof
# ifdef __cplusplus
# if (201103 <= __cplusplus || defined _MSC_VER)
# define _Alignof(type) alignof (type)
# else
template <class __t> struct __alignof_helper { char __a; __t __b; };
# define _Alignof(type) offsetof (__alignof_helper<type>, __b)
# define _GL_STDALIGN_NEEDS_STDDEF 1
# endif
# else
# if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__
# define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b)
# else # else
# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) # define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
# define _GL_STDALIGN_NEEDS_STDDEF 1 # define _GL_STDALIGN_NEEDS_STDDEF 1
# endif # endif
# endif # endif
# if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)) # endif
# define alignof _Alignof # if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))
# undef/**/alignof
# define alignof _Alignof
# endif
/* alignas (A), also known as _Alignas (A), aligns a variable or type
to the alignment A, where A is an integer constant expression. For
example:
int alignas (8) foo;
struct s { int a; int alignas (8) bar; };
aligns the address of FOO and the offset of BAR to be multiples of 8.
A should be a power of two that is at least the type's alignment
and at most the implementation's alignment limit. This limit is
2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable
to MSVC through at least version 10.0, A should be an integer
constant, as MSVC does not support expressions such as 1 << 3.
To be portable to Sun C 5.11, do not align auto variables to
anything stricter than their default alignment.
The following C23 requirements are not supported here:
- If A is zero, alignas has no effect.
- alignas can be used multiple times; the strictest one wins.
- alignas (TYPE) is equivalent to alignas (alignof (TYPE)).
*/
# if !HAVE_STDALIGN_H
# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112
# if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)
# define _Alignas(a) alignas (a)
# elif (!defined __attribute__ \
&& ((defined __APPLE__ && defined __MACH__ \
? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
: __GNUC__ && !defined __ibmxl__) \
|| (4 <= __clang_major__) \
|| (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \
|| __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__))
# define _Alignas(a) __attribute__ ((__aligned__ (a)))
# elif 1300 <= _MSC_VER
# define _Alignas(a) __declspec (align (a))
# endif # endif
# define __alignof_is_defined 1 # endif
# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 # if ((defined _Alignas \
# if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER) && !(defined __cplusplus \
# define _Alignas(a) alignas (a) && (201103 <= __cplusplus || defined _MSC_VER))) \
# elif (!defined __attribute__ \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
&& ((defined __APPLE__ && defined __MACH__ \ # define alignas _Alignas
? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ # endif
: __GNUC__ && !defined __ibmxl__) \ # endif
|| (4 <= __clang_major__) \
|| (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ # if _GL_STDALIGN_NEEDS_STDDEF
|| __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__)) # include <stddef.h>
# define _Alignas(a) __attribute__ ((__aligned__ (a)))
# elif 1300 <= _MSC_VER
# define _Alignas(a) __declspec (align (a))
# endif
# endif
# if ((defined _Alignas \
&& !(defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))) \
|| (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
# define alignas _Alignas
# endif
# if (defined alignas \
|| (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)))
# define __alignas_is_defined 1
# endif
# if _GL_STDALIGN_NEEDS_STDDEF
# include <stddef.h>
# endif
# endif /* _GL_STDALIGN_H */
# endif # endif
#endif]) #endif])
]) ])
AC_DEFUN([gl_STDALIGN_H],
[
AC_REQUIRE([gl_ALIGNASOF])
if test "$gl_cv_header_working_stdalign_h" = no; then
GL_GENERATE_STDALIGN_H=true
else
GL_GENERATE_STDALIGN_H=false
fi
gl_CHECK_NEXT_HEADERS([stdalign.h])
if test $ac_cv_header_stdalign_h = yes; then
HAVE_STDALIGN_H=1
else
HAVE_STDALIGN_H=0
fi
AC_SUBST([HAVE_STDALIGN_H])
])

View file

@ -1,4 +1,4 @@
# stddef_h.m4 serial 12 # stddef_h.m4 serial 13
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -22,7 +22,14 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
[gl_cv_type_max_align_t], [gl_cv_type_max_align_t],
[AC_COMPILE_IFELSE( [AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM( [AC_LANG_PROGRAM(
[[#include <stddef.h> [[/* On FreeBSD 12.0/x86, max_align_t defined by <stddef.h> has
the correct alignment with the default (wrong) definition of
_Alignof, but a wrong alignment as soon as we activate an
ISO C compliant _Alignof definition. */
#if ((defined __GNUC__ && 4 <= __GNUC__) || defined __clang__) && !defined __cplusplus
#define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b)
#endif
#include <stddef.h>
unsigned int s = sizeof (max_align_t); unsigned int s = sizeof (max_align_t);
#if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__
int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1];

View file

@ -1,4 +1,4 @@
# stdlib_h.m4 serial 66 # stdlib_h.m4 serial 71
dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -23,7 +23,7 @@ AC_DEFUN_ONCE([gl_STDLIB_H],
# include <random.h> # include <random.h>
#endif #endif
]], [_Exit aligned_alloc atoll canonicalize_file_name free ]], [_Exit aligned_alloc atoll canonicalize_file_name free
getloadavg getsubopt grantpt getloadavg getprogname getsubopt grantpt
initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps
posix_memalign posix_openpt ptsname ptsname_r qsort_r posix_memalign posix_openpt ptsname ptsname_r qsort_r
random random_r reallocarray realpath rpmatch secure_getenv setenv random random_r reallocarray realpath rpmatch secure_getenv setenv
@ -73,6 +73,7 @@ AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CANONICALIZE_FILE_NAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CANONICALIZE_FILE_NAME])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREE_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREE_POSIX])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOADAVG]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOADAVG])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPROGNAME])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSUBOPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSUBOPT])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GRANTPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GRANTPT])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_GNU]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_GNU])
@ -130,6 +131,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
HAVE_DECL_FCVT=1; AC_SUBST([HAVE_DECL_FCVT]) HAVE_DECL_FCVT=1; AC_SUBST([HAVE_DECL_FCVT])
HAVE_DECL_GCVT=1; AC_SUBST([HAVE_DECL_GCVT]) HAVE_DECL_GCVT=1; AC_SUBST([HAVE_DECL_GCVT])
HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
HAVE_GETPROGNAME=1; AC_SUBST([HAVE_GETPROGNAME])
HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT])
HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT])
HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE]) HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE])
@ -166,17 +168,24 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H])
HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT])
HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV])
REPLACE__EXIT=0; AC_SUBST([REPLACE__EXIT])
REPLACE_ALIGNED_ALLOC=0; AC_SUBST([REPLACE_ALIGNED_ALLOC]) 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_GNU=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_GNU])
REPLACE_CALLOC_FOR_CALLOC_POSIX=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_POSIX]) REPLACE_CALLOC_FOR_CALLOC_POSIX=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_POSIX])
REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
REPLACE_FREE=0; AC_SUBST([REPLACE_FREE]) REPLACE_FREE=0; AC_SUBST([REPLACE_FREE])
REPLACE_GETLOADAVG=0; AC_SUBST([REPLACE_GETLOADAVG])
REPLACE_GETPROGNAME=0; AC_SUBST([REPLACE_GETPROGNAME])
REPLACE_GETSUBOPT=0; AC_SUBST([REPLACE_GETSUBOPT])
REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE]) REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE])
REPLACE_MALLOC_FOR_MALLOC_GNU=0; AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_GNU]) REPLACE_MALLOC_FOR_MALLOC_GNU=0; AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_GNU])
REPLACE_MALLOC_FOR_MALLOC_POSIX=0; AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_POSIX]) REPLACE_MALLOC_FOR_MALLOC_POSIX=0; AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_POSIX])
REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC])
REPLACE_MKOSTEMP=0; AC_SUBST([REPLACE_MKOSTEMP])
REPLACE_MKOSTEMPS=0; AC_SUBST([REPLACE_MKOSTEMPS])
REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP])
REPLACE_POSIX_MEMALIGN=0; AC_SUBST([REPLACE_POSIX_MEMALIGN]) REPLACE_POSIX_MEMALIGN=0; AC_SUBST([REPLACE_POSIX_MEMALIGN])
REPLACE_POSIX_OPENPT=0; AC_SUBST([REPLACE_POSIX_OPENPT])
REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME])
REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R])
REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])

View file

@ -1,4 +1,4 @@
# stpcpy.m4 serial 9 # stpcpy.m4 serial 11
dnl Copyright (C) 2002, 2007, 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2002, 2007, 2009-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -13,9 +13,12 @@ AC_DEFUN([gl_FUNC_STPCPY],
AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_C_RESTRICT])
AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_REQUIRE([gl_STRING_H_DEFAULTS])
AC_CHECK_FUNCS([stpcpy]) gl_CHECK_FUNCS_ANDROID([stpcpy], [[#include <string.h>]])
if test $ac_cv_func_stpcpy = no; then if test $ac_cv_func_stpcpy = no; then
HAVE_STPCPY=0 HAVE_STPCPY=0
case "$gl_cv_onwards_func_stpcpy" in
future*) REPLACE_STPCPY=1 ;;
esac
fi fi
]) ])

View file

@ -5,7 +5,7 @@
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
# serial 35 # serial 37
# Written by Paul Eggert. # Written by Paul Eggert.
@ -131,6 +131,8 @@ AC_DEFUN([gl_STRING_H_DEFAULTS],
REPLACE_FFSLL=0; AC_SUBST([REPLACE_FFSLL]) REPLACE_FFSLL=0; AC_SUBST([REPLACE_FFSLL])
REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR])
REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM])
REPLACE_MEMPCPY=0; AC_SUBST([REPLACE_MEMPCPY])
REPLACE_STPCPY=0; AC_SUBST([REPLACE_STPCPY])
REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY]) REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY])
REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL])
REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP])

View file

@ -2,7 +2,7 @@
# Copyright (C) 2000-2001, 2003-2007, 2009-2023 Free Software Foundation, Inc. # Copyright (C) 2000-2001, 2003-2007, 2009-2023 Free Software Foundation, Inc.
# serial 20 # serial 21
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -170,6 +170,7 @@ AC_DEFUN([gl_TIME_H_DEFAULTS],
REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP])
REPLACE_STRFTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_STRFTIME]) REPLACE_STRFTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_STRFTIME])
REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM])
REPLACE_TIMESPEC_GET=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMESPEC_GET])
REPLACE_TZSET=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TZSET]) REPLACE_TZSET=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TZSET])
dnl Hack so that the time module doesn't depend on the sys_time module. dnl Hack so that the time module doesn't depend on the sys_time module.

View file

@ -1,4 +1,4 @@
# timegm.m4 serial 13 # timegm.m4 serial 15
dnl Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -9,7 +9,7 @@ AC_DEFUN([gl_FUNC_TIMEGM],
AC_REQUIRE([gl_TIME_H_DEFAULTS]) AC_REQUIRE([gl_TIME_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_MKTIME_WORKS]) AC_REQUIRE([gl_FUNC_MKTIME_WORKS])
REPLACE_TIMEGM=0 REPLACE_TIMEGM=0
AC_CHECK_FUNCS_ONCE([timegm]) gl_CHECK_FUNCS_ANDROID([timegm], [[#include <time.h>]])
if test $ac_cv_func_timegm = yes; then if test $ac_cv_func_timegm = yes; then
if test "$gl_cv_func_working_mktime" != yes; then if test "$gl_cv_func_working_mktime" != yes; then
# Assume that timegm is buggy if mktime is. # Assume that timegm is buggy if mktime is.
@ -17,6 +17,9 @@ AC_DEFUN([gl_FUNC_TIMEGM],
fi fi
else else
HAVE_TIMEGM=0 HAVE_TIMEGM=0
case "$gl_cv_onwards_func_timegm" in
future*) REPLACE_TIMEGM=1 ;;
esac
fi fi
]) ])

View file

@ -1,4 +1,4 @@
# unistd_h.m4 serial 90 # unistd_h.m4 serial 94
dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
@ -225,6 +225,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
REPLACE_COPY_FILE_RANGE=0; AC_SUBST([REPLACE_COPY_FILE_RANGE]) REPLACE_COPY_FILE_RANGE=0; AC_SUBST([REPLACE_COPY_FILE_RANGE])
REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) REPLACE_DUP=0; AC_SUBST([REPLACE_DUP])
REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2])
REPLACE_DUP3=0; AC_SUBST([REPLACE_DUP3])
REPLACE_EXECL=0; AC_SUBST([REPLACE_EXECL]) REPLACE_EXECL=0; AC_SUBST([REPLACE_EXECL])
REPLACE_EXECLE=0; AC_SUBST([REPLACE_EXECLE]) REPLACE_EXECLE=0; AC_SUBST([REPLACE_EXECLE])
REPLACE_EXECLP=0; AC_SUBST([REPLACE_EXECLP]) REPLACE_EXECLP=0; AC_SUBST([REPLACE_EXECLP])
@ -234,10 +235,12 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
REPLACE_EXECVPE=0; AC_SUBST([REPLACE_EXECVPE]) REPLACE_EXECVPE=0; AC_SUBST([REPLACE_EXECVPE])
REPLACE_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT]) REPLACE_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT])
REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT])
REPLACE_FDATASYNC=0; AC_SUBST([REPLACE_FDATASYNC])
REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE])
REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD])
REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE]) REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE])
REPLACE_GETENTROPY=0; AC_SUBST([REPLACE_GETENTROPY])
REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R])
REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS])
REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE])
@ -248,12 +251,14 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) REPLACE_LINK=0; AC_SUBST([REPLACE_LINK])
REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT])
REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK])
REPLACE_PIPE2=0; AC_SUBST([REPLACE_PIPE2])
REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD])
REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE])
REPLACE_READ=0; AC_SUBST([REPLACE_READ]) REPLACE_READ=0; AC_SUBST([REPLACE_READ])
REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK])
REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT]) REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT])
REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR])
REPLACE_SETHOSTNAME=0; AC_SUBST([REPLACE_SETHOSTNAME])
REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP])
REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK])
REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT]) REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT])

View file

@ -3,7 +3,7 @@ dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved. dnl with or without modifications, as long as this notice is preserved.
dnl serial 12 dnl serial 15
AC_DEFUN([gl_UTIMENS], AC_DEFUN([gl_UTIMENS],
[ [
@ -11,9 +11,11 @@ AC_DEFUN([gl_UTIMENS],
AC_REQUIRE([gl_FUNC_UTIMES]) AC_REQUIRE([gl_FUNC_UTIMES])
AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CHECK_FUNCS_ONCE([futimens utimensat lutimes])
gl_CHECK_FUNCS_ANDROID([futimes], [[#include <sys/time.h>]]) gl_CHECK_FUNCS_ANDROID([futimes], [[#include <sys/time.h>]])
gl_CHECK_FUNCS_ANDROID([futimesat], [[#include <sys/time.h>]]) gl_CHECK_FUNCS_ANDROID([futimesat], [[#include <sys/time.h>]])
gl_CHECK_FUNCS_ANDROID([lutimes], [[#include <sys/time.h>]])
gl_CHECK_FUNCS_ANDROID([futimens], [[#include <sys/stat.h>]])
gl_CHECK_FUNCS_ANDROID([utimensat], [[#include <sys/stat.h>]])
if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then
dnl FreeBSD 8.0-rc2 mishandles futimesat(fd,NULL,time). It is not dnl FreeBSD 8.0-rc2 mishandles futimesat(fd,NULL,time). It is not

View file

@ -1,4 +1,4 @@
# serial 9 # serial 11
# See if we need to provide utimensat replacement. # See if we need to provide utimensat replacement.
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
@ -13,9 +13,12 @@ AC_DEFUN([gl_FUNC_UTIMENSAT],
AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CHECK_FUNCS_ONCE([utimensat]) gl_CHECK_FUNCS_ANDROID([utimensat], [[#include <sys/stat.h>]])
if test $ac_cv_func_utimensat = no; then if test $ac_cv_func_utimensat = no; then
HAVE_UTIMENSAT=0 HAVE_UTIMENSAT=0
case "$gl_cv_onwards_func_utimensat" in
future*) REPLACE_UTIMENSAT=1 ;;
esac
else else
AC_CACHE_CHECK([whether utimensat works], AC_CACHE_CHECK([whether utimensat works],
[gl_cv_func_utimensat_works], [gl_cv_func_utimensat_works],