mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-22 07:09:54 +00:00
Update from Gnulib by running admin/merge-gnulib
This commit is contained in:
parent
7e1c7db1cb
commit
04d97e76a9
6
build-aux/config.guess
vendored
6
build-aux/config.guess
vendored
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# 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
|
||||
|
||||
timestamp='2022-09-17'
|
||||
timestamp='2023-01-01'
|
||||
|
||||
# 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
|
||||
@ -60,7 +60,7 @@ version="\
|
||||
GNU config.guess ($timestamp)
|
||||
|
||||
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
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
8
build-aux/config.sub
vendored
8
build-aux/config.sub
vendored
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# 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
|
||||
|
||||
timestamp='2022-09-17'
|
||||
timestamp='2023-01-21'
|
||||
|
||||
# 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
|
||||
@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
|
||||
version="\
|
||||
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
|
||||
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-*)
|
||||
cpu=i586
|
||||
;;
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
|
||||
cpu=i686
|
||||
;;
|
||||
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
||||
|
@ -26,6 +26,11 @@
|
||||
AIX system header files and several gnulib header files use precisely
|
||||
this syntax with 'extern'. */
|
||||
# define _Noreturn [[noreturn]]
|
||||
# elif (defined __clang__ && __clang_major__ < 16 \
|
||||
&& defined _GL_WORK_AROUND_LLVM_BUG_59792)
|
||||
/* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
|
||||
that rare LLVM bug, though you may get many false-alarm warnings. */
|
||||
# define _Noreturn
|
||||
# elif ((!defined __cplusplus || defined __clang__) \
|
||||
&& (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
|
||||
|| (!defined __STRICT_ANSI__ \
|
||||
|
40
lib/cdefs.h
40
lib/cdefs.h
@ -140,32 +140,37 @@
|
||||
#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. */
|
||||
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
|
||||
#define __bos0(ptr) __builtin_object_size (ptr, 0)
|
||||
# define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
|
||||
# define __bos0(ptr) __builtin_object_size (ptr, 0)
|
||||
|
||||
/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */
|
||||
#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \
|
||||
|| __GNUC_PREREQ (12, 0))
|
||||
# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0)
|
||||
# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1)
|
||||
#else
|
||||
# define __glibc_objsize0(__o) __bos0 (__o)
|
||||
# define __glibc_objsize(__o) __bos (__o)
|
||||
#endif
|
||||
# if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \
|
||||
|| __GNUC_PREREQ (12, 0))
|
||||
# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0)
|
||||
# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1)
|
||||
# else
|
||||
# define __glibc_objsize0(__o) __bos0 (__o)
|
||||
# define __glibc_objsize(__o) __bos (__o)
|
||||
# endif
|
||||
|
||||
/* Compile time conditions to choose between the regular, _chk and _chk_warn
|
||||
variants. These conditions should get evaluated to constant and optimized
|
||||
away. */
|
||||
|
||||
#define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s))
|
||||
#define __glibc_unsigned_or_positive(__l) \
|
||||
# define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s))
|
||||
# define __glibc_unsigned_or_positive(__l) \
|
||||
((__typeof (__l)) 0 < (__typeof (__l)) -1 \
|
||||
|| (__builtin_constant_p (__l) && (__l) > 0))
|
||||
|
||||
/* 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) */
|
||||
#define __glibc_safe_or_unknown_len(__l, __s, __osz) \
|
||||
# define __glibc_safe_or_unknown_len(__l, __s, __osz) \
|
||||
((__osz) == (__SIZE_TYPE__) -1 \
|
||||
|| (__glibc_unsigned_or_positive (__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
|
||||
__L * __S <= __OBJSZ condition can be folded to a constant and if it is
|
||||
false. */
|
||||
#define __glibc_unsafe_len(__l, __s, __osz) \
|
||||
# define __glibc_unsafe_len(__l, __s, __osz) \
|
||||
(__glibc_unsigned_or_positive (__l) \
|
||||
&& __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \
|
||||
__s, __osz)) \
|
||||
@ -184,7 +189,7 @@
|
||||
/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be
|
||||
declared. */
|
||||
|
||||
#define __glibc_fortify(f, __l, __s, __osz, ...) \
|
||||
# define __glibc_fortify(f, __l, __s, __osz, ...) \
|
||||
(__glibc_safe_or_unknown_len (__l, __s, __osz) \
|
||||
? __ ## f ## _alias (__VA_ARGS__) \
|
||||
: (__glibc_unsafe_len (__l, __s, __osz) \
|
||||
@ -194,13 +199,16 @@
|
||||
/* Fortify function f, where object size argument passed to f is the number of
|
||||
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) \
|
||||
? __ ## f ## _alias (__VA_ARGS__) \
|
||||
: (__glibc_unsafe_len (__l, __s, __osz) \
|
||||
? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \
|
||||
: __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#if __GNUC_PREREQ (4,3)
|
||||
# define __warnattr(msg) __attribute__((__warning__ (msg)))
|
||||
# define __errordecl(name, msg) \
|
||||
|
@ -41,7 +41,7 @@ __fpending (FILE *fp)
|
||||
return fp->_IO_write_ptr - fp->_IO_write_base;
|
||||
#elif defined __sferror || defined __DragonFly__ || defined __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 */
|
||||
return fp->_ptr - fp->_buffer;
|
||||
#elif defined __minix /* Minix */
|
||||
|
@ -411,6 +411,7 @@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@
|
||||
GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@
|
||||
GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@
|
||||
GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@
|
||||
GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@
|
||||
GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@
|
||||
GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@
|
||||
GL_GNULIB_GETTIMEOFDAY = @GL_GNULIB_GETTIMEOFDAY@
|
||||
@ -734,6 +735,7 @@ HAVE_GETLOGIN = @HAVE_GETLOGIN@
|
||||
HAVE_GETOPT_H = @HAVE_GETOPT_H@
|
||||
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
|
||||
HAVE_GETPASS = @HAVE_GETPASS@
|
||||
HAVE_GETPROGNAME = @HAVE_GETPROGNAME@
|
||||
HAVE_GETRANDOM = @HAVE_GETRANDOM@
|
||||
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
|
||||
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
|
||||
@ -741,6 +743,8 @@ HAVE_GETUMASK = @HAVE_GETUMASK@
|
||||
HAVE_GRANTPT = @HAVE_GRANTPT@
|
||||
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
|
||||
HAVE_GSETTINGS = @HAVE_GSETTINGS@
|
||||
HAVE_IMAXABS = @HAVE_IMAXABS@
|
||||
HAVE_IMAXDIV = @HAVE_IMAXDIV@
|
||||
HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
|
||||
HAVE_INITSTATE = @HAVE_INITSTATE@
|
||||
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_SLEEP = @HAVE_SLEEP@
|
||||
HAVE_SPAWN_H = @HAVE_SPAWN_H@
|
||||
HAVE_STDALIGN_H = @HAVE_STDALIGN_H@
|
||||
HAVE_STDINT_H = @HAVE_STDINT_H@
|
||||
HAVE_STPCPY = @HAVE_STPCPY@
|
||||
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_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_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_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_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_LIMITS_H = @NEXT_LIMITS_H@
|
||||
NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
|
||||
NEXT_STDALIGN_H = @NEXT_STDALIGN_H@
|
||||
NEXT_STDDEF_H = @NEXT_STDDEF_H@
|
||||
NEXT_STDINT_H = @NEXT_STDINT_H@
|
||||
NEXT_STDIO_H = @NEXT_STDIO_H@
|
||||
@ -1061,6 +1068,7 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
|
||||
REPLACE_DPRINTF = @REPLACE_DPRINTF@
|
||||
REPLACE_DUP = @REPLACE_DUP@
|
||||
REPLACE_DUP2 = @REPLACE_DUP2@
|
||||
REPLACE_DUP3 = @REPLACE_DUP3@
|
||||
REPLACE_EXECL = @REPLACE_EXECL@
|
||||
REPLACE_EXECLE = @REPLACE_EXECLE@
|
||||
REPLACE_EXECLP = @REPLACE_EXECLP@
|
||||
@ -1073,6 +1081,7 @@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@
|
||||
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
|
||||
REPLACE_FCLOSE = @REPLACE_FCLOSE@
|
||||
REPLACE_FCNTL = @REPLACE_FCNTL@
|
||||
REPLACE_FDATASYNC = @REPLACE_FDATASYNC@
|
||||
REPLACE_FDOPEN = @REPLACE_FDOPEN@
|
||||
REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
|
||||
REPLACE_FFLUSH = @REPLACE_FFLUSH@
|
||||
@ -1095,15 +1104,21 @@ REPLACE_GETCWD = @REPLACE_GETCWD@
|
||||
REPLACE_GETDELIM = @REPLACE_GETDELIM@
|
||||
REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
|
||||
REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
|
||||
REPLACE_GETENTROPY = @REPLACE_GETENTROPY@
|
||||
REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
|
||||
REPLACE_GETLINE = @REPLACE_GETLINE@
|
||||
REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@
|
||||
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
|
||||
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
|
||||
REPLACE_GETPASS = @REPLACE_GETPASS@
|
||||
REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@
|
||||
REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@
|
||||
REPLACE_GETRANDOM = @REPLACE_GETRANDOM@
|
||||
REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@
|
||||
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
|
||||
REPLACE_GMTIME = @REPLACE_GMTIME@
|
||||
REPLACE_IMAXABS = @REPLACE_IMAXABS@
|
||||
REPLACE_IMAXDIV = @REPLACE_IMAXDIV@
|
||||
REPLACE_INITSTATE = @REPLACE_INITSTATE@
|
||||
REPLACE_ISATTY = @REPLACE_ISATTY@
|
||||
REPLACE_LCHOWN = @REPLACE_LCHOWN@
|
||||
@ -1118,11 +1133,14 @@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@
|
||||
REPLACE_MBTOWC = @REPLACE_MBTOWC@
|
||||
REPLACE_MEMCHR = @REPLACE_MEMCHR@
|
||||
REPLACE_MEMMEM = @REPLACE_MEMMEM@
|
||||
REPLACE_MEMPCPY = @REPLACE_MEMPCPY@
|
||||
REPLACE_MKDIR = @REPLACE_MKDIR@
|
||||
REPLACE_MKFIFO = @REPLACE_MKFIFO@
|
||||
REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@
|
||||
REPLACE_MKNOD = @REPLACE_MKNOD@
|
||||
REPLACE_MKNODAT = @REPLACE_MKNODAT@
|
||||
REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@
|
||||
REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@
|
||||
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
|
||||
REPLACE_MKTIME = @REPLACE_MKTIME@
|
||||
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
|
||||
@ -1132,8 +1150,10 @@ REPLACE_OPEN = @REPLACE_OPEN@
|
||||
REPLACE_OPENAT = @REPLACE_OPENAT@
|
||||
REPLACE_OPENDIR = @REPLACE_OPENDIR@
|
||||
REPLACE_PERROR = @REPLACE_PERROR@
|
||||
REPLACE_PIPE2 = @REPLACE_PIPE2@
|
||||
REPLACE_POPEN = @REPLACE_POPEN@
|
||||
REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@
|
||||
REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@
|
||||
REPLACE_PREAD = @REPLACE_PREAD@
|
||||
REPLACE_PRINTF = @REPLACE_PRINTF@
|
||||
REPLACE_PSELECT = @REPLACE_PSELECT@
|
||||
@ -1159,6 +1179,7 @@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
|
||||
REPLACE_RMDIR = @REPLACE_RMDIR@
|
||||
REPLACE_SELECT = @REPLACE_SELECT@
|
||||
REPLACE_SETENV = @REPLACE_SETENV@
|
||||
REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@
|
||||
REPLACE_SETSTATE = @REPLACE_SETSTATE@
|
||||
REPLACE_SLEEP = @REPLACE_SLEEP@
|
||||
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
|
||||
@ -1166,6 +1187,7 @@ REPLACE_SPRINTF = @REPLACE_SPRINTF@
|
||||
REPLACE_STAT = @REPLACE_STAT@
|
||||
REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
|
||||
REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
|
||||
REPLACE_STPCPY = @REPLACE_STPCPY@
|
||||
REPLACE_STPNCPY = @REPLACE_STPNCPY@
|
||||
REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
|
||||
REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
|
||||
@ -1192,6 +1214,7 @@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
|
||||
REPLACE_SYMLINK = @REPLACE_SYMLINK@
|
||||
REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
|
||||
REPLACE_TIMEGM = @REPLACE_TIMEGM@
|
||||
REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@
|
||||
REPLACE_TMPFILE = @REPLACE_TMPFILE@
|
||||
REPLACE_TRUNCATE = @REPLACE_TRUNCATE@
|
||||
REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
|
||||
@ -1209,6 +1232,7 @@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
|
||||
REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
|
||||
REPLACE_WCTOMB = @REPLACE_WCTOMB@
|
||||
REPLACE_WRITE = @REPLACE_WRITE@
|
||||
REPLACE__EXIT = @REPLACE__EXIT@
|
||||
RSVG_CFLAGS = @RSVG_CFLAGS@
|
||||
RSVG_LIBS = @RSVG_LIBS@
|
||||
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_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/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_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/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.
|
||||
ifneq (,$(GL_GENERATE_STDALIGN_H_CONDITION))
|
||||
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 $@
|
||||
else
|
||||
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_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/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_GRANTPT''@/$(GL_GNULIB_GRANTPT)/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_GCVT''@|$(HAVE_DECL_GCVT)|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_GRANTPT''@|$(HAVE_GRANTPT)|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_UNLOCKPT''@|$(HAVE_UNLOCKPT)|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_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_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|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_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_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_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_R''@|$(REPLACE_PTSNAME_R)|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_MEMCHR''@|$(REPLACE_MEMCHR)|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_STPCPY''@|$(REPLACE_STPCPY)|g' \
|
||||
-e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
|
||||
-e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|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_STRFTIME''@|$(REPLACE_STRFTIME)|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|@''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' \
|
||||
@ -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_DUP''@|$(REPLACE_DUP)|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_EXECLE''@|$(REPLACE_EXECLE)|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_FACCESSAT''@|$(REPLACE_FACCESSAT)|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_GETCWD''@|$(REPLACE_GETCWD)|g' \
|
||||
-e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|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_GETGROUPS''@|$(REPLACE_GETGROUPS)|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_LINKAT''@|$(REPLACE_LINKAT)|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_PWRITE''@|$(REPLACE_PWRITE)|g' \
|
||||
-e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
|
||||
-e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
|
||||
-e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|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_SYMLINK''@|$(REPLACE_SYMLINK)|g' \
|
||||
-e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \
|
||||
|
@ -903,8 +903,21 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#if @GNULIB_IMAXABS@
|
||||
# if !@HAVE_DECL_IMAXABS@
|
||||
extern intmax_t imaxabs (intmax_t);
|
||||
# if @REPLACE_IMAXABS@
|
||||
# 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
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef imaxabs
|
||||
@ -921,8 +934,21 @@ typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
|
||||
# define GNULIB_defined_imaxdiv_t 1
|
||||
# endif
|
||||
# endif
|
||||
# if !@HAVE_DECL_IMAXDIV@
|
||||
extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
|
||||
# if @REPLACE_IMAXDIV@
|
||||
# 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
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef imaxdiv
|
||||
|
@ -137,8 +137,6 @@
|
||||
# undef __attribute_returns_twice__
|
||||
# undef __attribute_used__
|
||||
# undef __attribute_warn_unused_result__
|
||||
# undef __bos
|
||||
# undef __bos0
|
||||
# undef __errordecl
|
||||
# undef __extension__
|
||||
# undef __extern_always_inline
|
||||
@ -147,21 +145,13 @@
|
||||
# undef __fortified_attr_access
|
||||
# undef __fortify_function
|
||||
# undef __glibc_c99_flexarr_available
|
||||
# undef __glibc_fortify
|
||||
# undef __glibc_fortify_n
|
||||
# undef __glibc_has_attribute
|
||||
# undef __glibc_has_builtin
|
||||
# undef __glibc_has_extension
|
||||
# undef __glibc_likely
|
||||
# undef __glibc_macro_warning
|
||||
# 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_unsafe_len
|
||||
# undef __glibc_unsigned_or_positive
|
||||
# undef __inline
|
||||
# undef __ptr_t
|
||||
# undef __restrict
|
||||
@ -170,6 +160,18 @@
|
||||
# undef __va_arg_pack_len
|
||||
# undef __warnattr
|
||||
# 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 <cdefs.h>
|
||||
|
@ -30,9 +30,12 @@
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef __KLIBC__
|
||||
#ifdef __KLIBC__ /* OS/2 */
|
||||
# include <InnoTekLIBC/backend.h>
|
||||
#endif
|
||||
#ifdef __MVS__ /* z/OS */
|
||||
# include <termios.h>
|
||||
#endif
|
||||
|
||||
#include "intprops.h"
|
||||
|
||||
@ -53,7 +56,8 @@ openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file)
|
||||
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/"
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
#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. */
|
||||
{
|
||||
char dir[_MAX_PATH];
|
||||
size_t bufsize;
|
||||
|
||||
# ifdef __KLIBC__
|
||||
char dir[_MAX_PATH];
|
||||
if (__libc_Back_ioFHToPath (fd, dir, sizeof dir))
|
||||
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);
|
||||
bufsize = dirlen + 1 + strlen (file) + 1; /* 1 for '/', 1 for null */
|
||||
|
@ -17,117 +17,33 @@
|
||||
|
||||
/* Written by Paul Eggert and Bruno Haible. */
|
||||
|
||||
#ifndef _GL_STDALIGN_H
|
||||
#define _GL_STDALIGN_H
|
||||
/* Define two obsolescent C11 macros, assuming alignas and alignof are
|
||||
either keywords or alignasof-defined macros. */
|
||||
|
||||
/* ISO C11 <stdalign.h> for platforms that lack it.
|
||||
#ifndef _@GUARD_PREFIX@_STDALIGN_H
|
||||
|
||||
References:
|
||||
ISO C11 (latest free draft
|
||||
<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
|
||||
#if __GNUC__ >= 3
|
||||
@PRAGMA_SYSTEM_HEADER@
|
||||
#endif
|
||||
#if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))
|
||||
# define alignof _Alignof
|
||||
@PRAGMA_COLUMNS@
|
||||
|
||||
/* 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
|
||||
#define __alignof_is_defined 1
|
||||
|
||||
/* 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:
|
||||
#ifndef _@GUARD_PREFIX@_STDALIGN_H
|
||||
#define _@GUARD_PREFIX@_STDALIGN_H
|
||||
|
||||
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 \
|
||||
|| (defined __STDC_VERSION__ && 202311 <= __STDC_VERSION__) \
|
||||
|| (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)))
|
||||
# define __alignas_is_defined 1
|
||||
#endif
|
||||
|
||||
/* Include <stddef.h> if needed for offsetof. */
|
||||
#if _GL_STDALIGN_NEEDS_STDDEF
|
||||
# include <stddef.h>
|
||||
#endif
|
||||
#define __alignof_is_defined 1
|
||||
|
||||
#endif /* _GL_STDALIGN_H */
|
||||
#endif /* _@GUARD_PREFIX@_STDALIGN_H */
|
||||
#endif /* _@GUARD_PREFIX@_STDALIGN_H */
|
||||
|
@ -70,6 +70,12 @@
|
||||
# define _gl_flags_file_t int
|
||||
# else
|
||||
# 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
|
||||
/* Up to this commit from 2015-10-12
|
||||
<https://android.googlesource.com/platform/bionic.git/+/f0141dfab10a4b332769d52fa76631a64741297a>
|
||||
@ -96,7 +102,7 @@
|
||||
unsigned char _nbuf[1]; \
|
||||
struct { unsigned char *_base; size_t _size; } _lb; \
|
||||
int _blksize; \
|
||||
fpos_t _offset; \
|
||||
_gl_file_offset_t _offset; \
|
||||
/* More fields, not relevant here. */ \
|
||||
} *) fp)
|
||||
# else
|
||||
|
@ -210,7 +210,9 @@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...)
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (dprintf);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef dprintf
|
||||
# if HAVE_RAW_DECL_DPRINTF
|
||||
@ -882,7 +884,9 @@ _GL_CXXALIAS_SYS (getdelim, ssize_t,
|
||||
int delimiter,
|
||||
FILE *restrict stream));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (getdelim);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef getdelim
|
||||
# if HAVE_RAW_DECL_GETDELIM
|
||||
@ -921,7 +925,7 @@ _GL_CXXALIAS_SYS (getline, ssize_t,
|
||||
(char **restrict lineptr, size_t *restrict linesize,
|
||||
FILE *restrict stream));
|
||||
# endif
|
||||
# if @HAVE_DECL_GETLINE@
|
||||
# if __GLIBC__ >= 2 && @HAVE_DECL_GETLINE@
|
||||
_GL_CXXALIASWARN (getline);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
|
141
lib/stdlib.in.h
141
lib/stdlib.in.h
@ -164,11 +164,22 @@ struct random_data
|
||||
#if @GNULIB__EXIT@
|
||||
/* Terminate the current process with the given return code, without running
|
||||
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));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (_Exit, void, (int status));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (_Exit);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef _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
|
||||
minutes, and the last 15 minutes, respectively.
|
||||
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_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (getloadavg);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef getloadavg
|
||||
# if HAVE_RAW_DECL_GETLOADAVG
|
||||
@ -430,6 +453,41 @@ _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
|
||||
# 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@
|
||||
/* Assuming *OPTIONP is a comma separated list of elements of the form
|
||||
"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.
|
||||
For more details see the POSIX specification.
|
||||
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,
|
||||
(char **optionp, char *const *tokens, char **valuep)
|
||||
_GL_ARG_NONNULL ((1, 2, 3)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (getsubopt, int,
|
||||
(char **optionp, char *const *tokens, char **valuep));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (getsubopt);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef getsubopt
|
||||
# if HAVE_RAW_DECL_GETSUBOPT
|
||||
@ -579,12 +651,24 @@ _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - "
|
||||
implementation.
|
||||
Returns the open file descriptor if successful, otherwise -1 and errno
|
||||
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_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (mkostemp);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef mkostemp
|
||||
# if HAVE_RAW_DECL_MKOSTEMP
|
||||
@ -607,14 +691,28 @@ _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - "
|
||||
implementation.
|
||||
Returns the open file descriptor if successful, otherwise -1 and errno
|
||||
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,
|
||||
(char * /*template*/, int /*suffixlen*/, int /*flags*/)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (mkostemps, int,
|
||||
(char * /*template*/, int /*suffixlen*/, int /*flags*/));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (mkostemps);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef mkostemps
|
||||
# if HAVE_RAW_DECL_MKOSTEMPS
|
||||
@ -713,7 +811,7 @@ _GL_CXXALIAS_SYS (posix_memalign, int,
|
||||
(void **memptr, size_t alignment, size_t size));
|
||||
# endif
|
||||
# endif
|
||||
# if @HAVE_POSIX_MEMALIGN@
|
||||
# if __GLIBC__ >= 2 && @HAVE_POSIX_MEMALIGN@
|
||||
_GL_CXXALIASWARN (posix_memalign);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
@ -727,11 +825,22 @@ _GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - "
|
||||
#if @GNULIB_POSIX_OPENPT@
|
||||
/* Return an FD open to the master side of a pseudo-terminal. Flags should
|
||||
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));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (posix_openpt);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_openpt
|
||||
# if HAVE_RAW_DECL_POSIX_OPENPT
|
||||
@ -956,7 +1065,9 @@ _GL_FUNCDECL_SYS (initstate, char *,
|
||||
_GL_CXXALIAS_SYS_CAST (initstate, char *,
|
||||
(unsigned int seed, char *buf, size_t buf_size));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (initstate);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef 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. */
|
||||
_GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (setstate);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef setstate
|
||||
# if HAVE_RAW_DECL_SETSTATE
|
||||
@ -1167,7 +1280,9 @@ _GL_FUNCDECL_SYS (reallocarray, void *,
|
||||
_GL_CXXALIAS_SYS (reallocarray, void *,
|
||||
(void *ptr, size_t nmemb, size_t size));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (reallocarray);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef reallocarray
|
||||
# if HAVE_RAW_DECL_REALLOCARRAY
|
||||
|
@ -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
|
||||
last written byte. */
|
||||
#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 *,
|
||||
(void *restrict __dest, void const *restrict __src,
|
||||
size_t __n)
|
||||
_GL_ARG_NONNULL ((1, 2)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (mempcpy, void *,
|
||||
(void *restrict __dest, void const *restrict __src,
|
||||
size_t __n));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (mempcpy);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef 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. */
|
||||
#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 *,
|
||||
(char *restrict __dst, char const *restrict __src)
|
||||
_GL_ARG_NONNULL ((1, 2)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (stpcpy, char *,
|
||||
(char *restrict __dst, char const *restrict __src));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (stpcpy);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef stpcpy
|
||||
# if HAVE_RAW_DECL_STPCPY
|
||||
@ -448,7 +478,9 @@ _GL_CXXALIAS_SYS (stpncpy, char *,
|
||||
(char *restrict __dst, char const *restrict __src,
|
||||
size_t __n));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (stpncpy);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef stpncpy
|
||||
# if HAVE_RAW_DECL_STPNCPY
|
||||
@ -1212,7 +1244,7 @@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen));
|
||||
# endif
|
||||
# if @HAVE_DECL_STRERROR_R@
|
||||
# if __GLIBC__ >= 2 && @HAVE_DECL_STRERROR_R@
|
||||
_GL_CXXALIASWARN (strerror_r);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
|
@ -549,7 +549,7 @@ _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2]));
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2]));
|
||||
# endif
|
||||
# if @HAVE_FUTIMENS@
|
||||
# if __GLIBC__ >= 2 && @HAVE_FUTIMENS@
|
||||
_GL_CXXALIASWARN (futimens);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
@ -716,7 +716,9 @@ _GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (mkfifoat);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef mkfifoat
|
||||
# if HAVE_RAW_DECL_MKFIFOAT
|
||||
@ -773,7 +775,9 @@ _GL_FUNCDECL_SYS (mknodat, int,
|
||||
_GL_CXXALIAS_SYS (mknodat, int,
|
||||
(int fd, char const *file, mode_t mode, dev_t dev));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (mknodat);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef 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,
|
||||
struct timespec const times[2], int flag));
|
||||
# endif
|
||||
# if @HAVE_UTIMENSAT@
|
||||
# if __GLIBC__ >= 2 && @HAVE_UTIMENSAT@
|
||||
_GL_CXXALIASWARN (utimensat);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
|
@ -112,12 +112,24 @@ struct __time_t_must_be_integral {
|
||||
/* Set *TS to the current time, and return BASE.
|
||||
Upon failure, return 0. */
|
||||
# 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_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (timespec_get);
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* 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
|
||||
_GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (timegm);
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* Encourage applications to avoid unsafe functions that can overrun
|
||||
|
@ -541,17 +541,22 @@ _GL_CXXALIASWARN (dup2);
|
||||
Return newfd if successful, otherwise -1 and errno set.
|
||||
See the Linux man page at
|
||||
<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)
|
||||
# undef dup3
|
||||
# define dup3 rpl_dup3
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags));
|
||||
_GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags));
|
||||
# else
|
||||
# if !@HAVE_DUP3@
|
||||
_GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags));
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (dup3);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef dup3
|
||||
# if HAVE_RAW_DECL_DUP3
|
||||
@ -870,7 +875,9 @@ _GL_FUNCDECL_SYS (execvpe, int,
|
||||
_GL_CXXALIAS_SYS (execvpe, int,
|
||||
(const char *program, char * const *argv, char * const *env));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (execvpe);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef execvpe
|
||||
# if HAVE_RAW_DECL_EXECVPE
|
||||
@ -925,7 +932,9 @@ _GL_FUNCDECL_SYS (faccessat, int,
|
||||
_GL_CXXALIAS_SYS (faccessat, int,
|
||||
(int fd, char const *file, int mode, int flag));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (faccessat);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef 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.
|
||||
See POSIX:2008 specification
|
||||
<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));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (fdatasync, int, (int fd));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (fdatasync);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef fdatasync
|
||||
# if HAVE_RAW_DECL_FDATASYNC
|
||||
@ -1053,7 +1073,9 @@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length));
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (ftruncate);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef ftruncate
|
||||
# if HAVE_RAW_DECL_FTRUNCATE
|
||||
@ -1185,11 +1207,22 @@ _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - "
|
||||
|
||||
#if @GNULIB_GETENTROPY@
|
||||
/* 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));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (getentropy);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef getentropy
|
||||
# if HAVE_RAW_DECL_GETENTROPY
|
||||
@ -1323,7 +1356,9 @@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size)
|
||||
int size. */
|
||||
_GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (getlogin_r);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef 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 flag));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (linkat);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef 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.
|
||||
See also the Linux man page at
|
||||
<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)
|
||||
# undef pipe2
|
||||
# define pipe2 rpl_pipe2
|
||||
# endif
|
||||
_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_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (pipe2);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef pipe2
|
||||
# if HAVE_RAW_DECL_PIPE2
|
||||
@ -1787,7 +1827,9 @@ _GL_FUNCDECL_SYS (pread, ssize_t,
|
||||
_GL_CXXALIAS_SYS (pread, ssize_t,
|
||||
(int fd, void *buf, size_t bufsize, off_t offset));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (pread);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef pread
|
||||
# if HAVE_RAW_DECL_PREAD
|
||||
@ -1822,7 +1864,9 @@ _GL_FUNCDECL_SYS (pwrite, ssize_t,
|
||||
_GL_CXXALIAS_SYS (pwrite, ssize_t,
|
||||
(int fd, const void *buf, size_t bufsize, off_t offset));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (pwrite);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef pwrite
|
||||
# if HAVE_RAW_DECL_PWRITE
|
||||
@ -1936,7 +1980,9 @@ _GL_CXXALIAS_SYS (readlinkat, ssize_t,
|
||||
(int fd, char const *restrict file,
|
||||
char *restrict buf, size_t len));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (readlinkat);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef 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
|
||||
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_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
# endif
|
||||
/* 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
|
||||
2011-10, the first parameter is not const. */
|
||||
_GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (sethostname);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef sethostname
|
||||
# if HAVE_RAW_DECL_SETHOSTNAME
|
||||
@ -2113,7 +2171,9 @@ _GL_FUNCDECL_SYS (symlinkat, int,
|
||||
_GL_CXXALIAS_SYS (symlinkat, int,
|
||||
(char const *contents, int fd, char const *file));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (symlinkat);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef symlinkat
|
||||
# if HAVE_RAW_DECL_SYMLINKAT
|
||||
@ -2143,7 +2203,9 @@ _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length)
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (truncate);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef truncate
|
||||
# if HAVE_RAW_DECL_TRUNCATE
|
||||
@ -2173,7 +2235,9 @@ _GL_FUNCDECL_SYS (ttyname_r, int,
|
||||
_GL_CXXALIAS_SYS (ttyname_r, int,
|
||||
(int fd, char *buf, size_t buflen));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (ttyname_r);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef ttyname_r
|
||||
# if HAVE_RAW_DECL_TTYNAME_R
|
||||
|
17
lib/verify.h
17
lib/verify.h
@ -222,7 +222,21 @@ template <int w>
|
||||
|
||||
/* _GL_STATIC_ASSERT_H is defined if this code is copied into 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__
|
||||
# define _Static_assert(...) \
|
||||
_GL_VERIFY (__VA_ARGS__, "static assertion failed", -)
|
||||
@ -233,6 +247,7 @@ template <int w>
|
||||
_GL_VERIFY ((R), "static assertion failed", -)
|
||||
# endif
|
||||
# endif
|
||||
/* Define static_assert if needed. */
|
||||
# if (!defined static_assert \
|
||||
&& __STDC_VERSION__ < 202311 \
|
||||
&& (!defined __cplusplus \
|
||||
|
@ -1,4 +1,4 @@
|
||||
# canonicalize.m4 serial 37
|
||||
# canonicalize.m4 serial 38
|
||||
|
||||
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_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_FUNC_REALPATH_WORKS])
|
||||
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_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 available through the linker option '-loldnames'.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# euidaccess.m4 serial 16
|
||||
# euidaccess.m4 serial 17
|
||||
dnl Copyright (C) 2002-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@ -32,7 +32,7 @@ AC_DEFUN([gl_FUNC_EUIDACCESS],
|
||||
# Prerequisites of lib/euidaccess.c.
|
||||
AC_DEFUN([gl_PREREQ_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.
|
||||
AC_CHECK_HEADERS([libgen.h])
|
||||
AC_FUNC_GETGROUPS
|
||||
|
@ -1,4 +1,4 @@
|
||||
# serial 10
|
||||
# serial 12
|
||||
# See if we need to provide faccessat replacement.
|
||||
|
||||
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().
|
||||
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
|
||||
HAVE_FACCESSAT=0
|
||||
case "$gl_cv_onwards_func_faccessat" in
|
||||
future*) REPLACE_FACCESSAT=1 ;;
|
||||
esac
|
||||
else
|
||||
case $gl_cv_func_lstat_dereferences_slashed_symlink in
|
||||
*yes) ;;
|
||||
|
@ -1,4 +1,4 @@
|
||||
# fchmodat.m4 serial 7
|
||||
# fchmodat.m4 serial 8
|
||||
dnl Copyright (C) 2004-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@ -97,6 +97,6 @@ AC_DEFUN([gl_FUNC_FCHMODAT],
|
||||
# Prerequisites of lib/fchmodat.c.
|
||||
AC_DEFUN([gl_PREREQ_FCHMODAT],
|
||||
[
|
||||
AC_CHECK_FUNCS_ONCE([readlinkat])
|
||||
gl_CHECK_FUNCS_ANDROID([readlinkat], [[#include <unistd.h>]])
|
||||
:
|
||||
])
|
||||
|
@ -1,4 +1,4 @@
|
||||
# serial 9
|
||||
# serial 11
|
||||
# See if we need to provide futimens replacement.
|
||||
|
||||
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([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
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
|
||||
HAVE_FUTIMENS=0
|
||||
case "$gl_cv_onwards_func_futimens" in
|
||||
future*) REPLACE_FUTIMENS=1 ;;
|
||||
esac
|
||||
else
|
||||
AC_CACHE_CHECK([whether futimens works],
|
||||
[gl_cv_func_futimens_works],
|
||||
|
@ -7,7 +7,7 @@
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 10
|
||||
#serial 12
|
||||
|
||||
# Autoconf defines AC_FUNC_GETLOADAVG, but that is obsolescent.
|
||||
# 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,
|
||||
# NetBSD >= 0.9, OpenBSD >= 2.0, Solaris >= 7.
|
||||
HAVE_GETLOADAVG=1
|
||||
AC_CHECK_FUNC([getloadavg], [],
|
||||
[gl_func_getloadavg_done=no
|
||||
gl_CHECK_FUNCS_ANDROID([getloadavg], [[#include <stdlib.h>]])
|
||||
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.
|
||||
# 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_CHECK_LIB([dgc], [dg_sys_info])])
|
||||
fi
|
||||
fi])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$gl_save_LIBS" = x; then
|
||||
GETLOADAVG_LIBS=$LIBS
|
||||
|
@ -1,4 +1,4 @@
|
||||
# getrandom.m4 serial 10
|
||||
# getrandom.m4 serial 11
|
||||
dnl Copyright 2020-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
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
|
||||
HAVE_GETRANDOM=0
|
||||
case "$gl_cv_onwards_func_getrandom" in
|
||||
future*) REPLACE_GETRANDOM=1 ;;
|
||||
esac
|
||||
else
|
||||
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],
|
||||
|
@ -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 This file is free software; the Free Software Foundation
|
||||
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 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_REQUIRE([AC_CANONICAL_HOST])
|
||||
|
||||
dnl Persuade OpenBSD <time.h> to declare timespec_get().
|
||||
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 gl_CHECK_FUNCS_ANDROID does.
|
||||
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_func_timespec_get],
|
||||
[AC_LINK_IFELSE(
|
||||
AC_CACHE_CHECK([for timespec_get], [gl_cv_onwards_func_timespec_get],
|
||||
[if test $ac_cv_have_decl_timespec_get = yes; then
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <time.h>
|
||||
struct timespec ts;
|
||||
]],
|
||||
[[return timespec_get (&ts, 0);]])
|
||||
],
|
||||
[gl_cv_func_timespec_get=yes],
|
||||
[gl_cv_func_timespec_get=no])
|
||||
])
|
||||
else
|
||||
gl_cv_func_timespec_get=no
|
||||
fi
|
||||
[gl_cv_onwards_func_timespec_get=yes],
|
||||
[gl_cv_onwards_func_timespec_get=no])
|
||||
else
|
||||
gl_cv_onwards_func_timespec_get=no
|
||||
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],
|
||||
|
@ -1,4 +1,4 @@
|
||||
# gnulib-common.m4 serial 76
|
||||
# gnulib-common.m4 serial 80
|
||||
dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
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
|
||||
this syntax with 'extern'. */
|
||||
# define _Noreturn [[noreturn]]
|
||||
# elif (defined __clang__ && __clang_major__ < 16 \
|
||||
&& defined _GL_WORK_AROUND_LLVM_BUG_59792)
|
||||
/* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
|
||||
that rare LLVM bug, though you may get many false-alarm warnings. */
|
||||
# define _Noreturn
|
||||
# elif ((!defined __cplusplus || defined __clang__) \
|
||||
&& (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
|
||||
|| (!defined __STRICT_ANSI__ \
|
||||
@ -119,29 +124,35 @@ AC_DEFUN([gl_COMMON_BODY], [
|
||||
by the Nth argument of the function is the size of the returned memory block.
|
||||
*/
|
||||
/* Applies to: function, pointer to function, function types. */
|
||||
#if _GL_HAS_ATTRIBUTE (alloc_size)
|
||||
# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
|
||||
#ifndef _GL_ATTRIBUTE_ALLOC_SIZE
|
||||
# if _GL_HAS_ATTRIBUTE (alloc_size)
|
||||
# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the
|
||||
function and report an error if it cannot do so. */
|
||||
/* Applies to: function. */
|
||||
#if _GL_HAS_ATTRIBUTE (always_inline)
|
||||
# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_ALWAYS_INLINE
|
||||
#ifndef _GL_ATTRIBUTE_ALWAYS_INLINE
|
||||
# if _GL_HAS_ATTRIBUTE (always_inline)
|
||||
# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_ALWAYS_INLINE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show
|
||||
in stack traces when debugging. The compiler should omit the function from
|
||||
stack traces. */
|
||||
/* Applies to: function. */
|
||||
#if _GL_HAS_ATTRIBUTE (artificial)
|
||||
# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_ARTIFICIAL
|
||||
#ifndef _GL_ATTRIBUTE_ARTIFICIAL
|
||||
# if _GL_HAS_ATTRIBUTE (artificial)
|
||||
# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_ARTIFICIAL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _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
|
||||
<https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>.
|
||||
Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */
|
||||
#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
|
||||
# ifndef __SUNPRO_C
|
||||
# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
|
||||
#ifndef _GL_ATTRIBUTE_COLD
|
||||
# if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
|
||||
# ifndef __SUNPRO_C
|
||||
# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
|
||||
# endif
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
|
||||
# define _GL_ATTRIBUTE_COLD
|
||||
# endif
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_COLD
|
||||
#endif
|
||||
|
||||
/* _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.
|
||||
(This attribute is stricter than _GL_ATTRIBUTE_PURE.) */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (const)
|
||||
# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_CONST
|
||||
#ifndef _GL_ATTRIBUTE_CONST
|
||||
# if _GL_HAS_ATTRIBUTE (const)
|
||||
# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_CONST
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _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
|
||||
can be freed via 'free'; it can be used only after declaring 'free'. */
|
||||
/* Applies to: functions. Cannot be used on inline functions. */
|
||||
#if _GL_GNUC_PREREQ (11, 0)
|
||||
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_DEALLOC(f, i)
|
||||
#ifndef _GL_ATTRIBUTE_DEALLOC
|
||||
# if _GL_GNUC_PREREQ (11, 0)
|
||||
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_DEALLOC(f, i)
|
||||
# endif
|
||||
#endif
|
||||
/* 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
|
||||
@ -205,16 +222,18 @@ AC_DEFUN([gl_COMMON_BODY], [
|
||||
- enumeration, enumeration item,
|
||||
- typedef,
|
||||
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
|
||||
# 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
|
||||
|
||||
/* _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
|
||||
the function call is not optimized away. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (error)
|
||||
# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
|
||||
# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
|
||||
#elif _GL_HAS_ATTRIBUTE (diagnose_if)
|
||||
# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
|
||||
# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_ERROR(msg)
|
||||
# define _GL_ATTRIBUTE_WARNING(msg)
|
||||
#if !(defined _GL_ATTRIBUTE_ERROR && defined _GL_ATTRIBUTE_WARNING)
|
||||
# if _GL_HAS_ATTRIBUTE (error)
|
||||
# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
|
||||
# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
|
||||
# elif _GL_HAS_ATTRIBUTE (diagnose_if)
|
||||
# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
|
||||
# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_ERROR(msg)
|
||||
# define _GL_ATTRIBUTE_WARNING(msg)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain
|
||||
visible to debuggers etc., even with '-fwhole-program'. */
|
||||
/* Applies to: functions, variables. */
|
||||
#if _GL_HAS_ATTRIBUTE (externally_visible)
|
||||
# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
|
||||
#ifndef _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
|
||||
# if _GL_HAS_ATTRIBUTE (externally_visible)
|
||||
# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _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. */
|
||||
/* Applies to: Empty statement (;), inside a 'switch' statement. */
|
||||
/* 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
|
||||
# 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
|
||||
|
||||
/* _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
|
||||
are suitable for the format string. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (format)
|
||||
# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_FORMAT(spec)
|
||||
#ifndef _GL_ATTRIBUTE_FORMAT
|
||||
# if _GL_HAS_ATTRIBUTE (format)
|
||||
# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_FORMAT(spec)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _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
|
||||
more aggressively. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (leaf)
|
||||
# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_LEAF
|
||||
#ifndef _GL_ATTRIBUTE_LEAF
|
||||
# if _GL_HAS_ATTRIBUTE (leaf)
|
||||
# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_LEAF
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
|
||||
allocated memory. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (malloc)
|
||||
# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_MALLOC
|
||||
#ifndef _GL_ATTRIBUTE_MALLOC
|
||||
# if _GL_HAS_ATTRIBUTE (malloc)
|
||||
# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_MALLOC
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _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. */
|
||||
/* Applies to: types. */
|
||||
/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */
|
||||
#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
|
||||
# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_MAY_ALIAS
|
||||
#ifndef _GL_ATTRIBUTE_MAY_ALIAS
|
||||
# if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
|
||||
# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_MAY_ALIAS
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _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++ and C23, this is spelled [[__maybe_unused__]].
|
||||
GCC's syntax is __attribute__ ((__unused__)).
|
||||
clang supports both syntaxes. */
|
||||
#ifdef __has_c_attribute
|
||||
# if __has_c_attribute (__maybe_unused__)
|
||||
# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
|
||||
# endif
|
||||
#endif
|
||||
clang supports both syntaxes. Except that with clang ≥ 6, < 10, in C++ mode,
|
||||
__has_c_attribute (__maybe_unused__) yields true but the use of
|
||||
[[__maybe_unused__]] nevertheless produces a warning. */
|
||||
#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
|
||||
/* Alternative spelling of this macro, for convenience and for
|
||||
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
|
||||
the return value, unless the caller uses something like ignore_value. */
|
||||
/* 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
|
||||
# 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
|
||||
|
||||
/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the
|
||||
function. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (noinline)
|
||||
# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_NOINLINE
|
||||
#ifndef _GL_ATTRIBUTE_NOINLINE
|
||||
# if _GL_HAS_ATTRIBUTE (noinline)
|
||||
# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_NOINLINE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _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
|
||||
null. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (nonnull)
|
||||
# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_NONNULL(args)
|
||||
#ifndef _GL_ATTRIBUTE_NONNULL
|
||||
# if _GL_HAS_ATTRIBUTE (nonnull)
|
||||
# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_NONNULL(args)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is
|
||||
not meant to be NUL-terminated. */
|
||||
/* Applies to: struct/union members and variables that are arrays of element
|
||||
type '[[un]signed] char'. */
|
||||
#if _GL_HAS_ATTRIBUTE (nonstring)
|
||||
# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_NONSTRING
|
||||
#ifndef _GL_ATTRIBUTE_NONSTRING
|
||||
# if _GL_HAS_ATTRIBUTE (nonstring)
|
||||
# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_NONSTRING
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* 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.
|
||||
*/
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
|
||||
# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_NOTHROW
|
||||
#ifndef _GL_ATTRIBUTE_NOTHROW
|
||||
# if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
|
||||
# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_NOTHROW
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_PACKED declares:
|
||||
@ -396,10 +456,12 @@ AC_DEFUN([gl_COMMON_BODY], [
|
||||
minimizing the memory required. */
|
||||
/* Applies to: struct members, struct, union,
|
||||
in C++ also: class. */
|
||||
#if _GL_HAS_ATTRIBUTE (packed)
|
||||
# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_PACKED
|
||||
#ifndef _GL_ATTRIBUTE_PACKED
|
||||
# if _GL_HAS_ATTRIBUTE (packed)
|
||||
# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_PACKED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate
|
||||
@ -409,19 +471,23 @@ AC_DEFUN([gl_COMMON_BODY], [
|
||||
observable state, and always returns exactly once.
|
||||
(This attribute is looser than _GL_ATTRIBUTE_CONST.) */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (pure)
|
||||
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_PURE
|
||||
#ifndef _GL_ATTRIBUTE_PURE
|
||||
# if _GL_HAS_ATTRIBUTE (pure)
|
||||
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_PURE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is
|
||||
a non-NULL pointer. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (returns_nonnull)
|
||||
# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_RETURNS_NONNULL
|
||||
#ifndef _GL_ATTRIBUTE_RETURNS_NONNULL
|
||||
# if _GL_HAS_ATTRIBUTE (returns_nonnull)
|
||||
# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_RETURNS_NONNULL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _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 ((N)) - The (N+1)st argument from the end is NULL. */
|
||||
/* Applies to: functions. */
|
||||
#if _GL_HAS_ATTRIBUTE (sentinel)
|
||||
# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_SENTINEL(pos)
|
||||
#ifndef _GL_ATTRIBUTE_SENTINEL
|
||||
# if _GL_HAS_ATTRIBUTE (sentinel)
|
||||
# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_SENTINEL(pos)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* A helper macro. Don't use it directly. */
|
||||
#if _GL_HAS_ATTRIBUTE (unused)
|
||||
# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
||||
#else
|
||||
# define _GL_ATTRIBUTE_UNUSED
|
||||
#ifndef _GL_ATTRIBUTE_UNUSED
|
||||
# if _GL_HAS_ATTRIBUTE (unused)
|
||||
# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_UNUSED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
]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++). */
|
||||
/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;'
|
||||
syntax. But clang does. */
|
||||
#if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__
|
||||
# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED
|
||||
#else
|
||||
# define _GL_UNUSED_LABEL
|
||||
#ifndef _GL_UNUSED_LABEL
|
||||
# if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__
|
||||
# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED
|
||||
# else
|
||||
# define _GL_UNUSED_LABEL
|
||||
# endif
|
||||
#endif
|
||||
])
|
||||
AH_VERBATIM([async_safe],
|
||||
@ -1026,8 +1098,21 @@ AC_DEFUN([gl_CONDITIONAL_HEADER],
|
||||
dnl gl_CHECK_FUNCS_ANDROID([func], [[#include <foo.h>]])
|
||||
dnl is like AC_CHECK_FUNCS([func]), taking into account a portability problem
|
||||
dnl on Android.
|
||||
dnl Namely, if func was added to Android API level, say, 28, then the libc.so
|
||||
dnl has the symbol func always, whereas the header file <foo.h> declares func
|
||||
dnl
|
||||
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 #if __ANDROID_API__ >= 28
|
||||
dnl ... func (...) __INTRODUCED_IN(28);
|
||||
@ -1035,15 +1120,55 @@ dnl #endif
|
||||
dnl Thus, when compiling with "clang -target armv7a-unknown-linux-android28",
|
||||
dnl the function func is declared and exists in libc.
|
||||
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 case like the case where func does not exist.
|
||||
dnl the function func is not declared but exists in libc.
|
||||
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_CHECK_DECL([$1], , , [$2])
|
||||
if test $ac_cv_have_decl_[$1] = yes; then
|
||||
AC_CHECK_FUNCS([$1])
|
||||
else
|
||||
ac_cv_func_[$1]=no
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_CACHE_CHECK([for [$1]],
|
||||
[[gl_cv_onwards_func_][$1]],
|
||||
[gl_SILENT([
|
||||
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
|
||||
])
|
||||
|
||||
|
@ -44,6 +44,7 @@ AC_DEFUN([gl_EARLY],
|
||||
|
||||
# Code from module absolute-header:
|
||||
# Code from module acl-permissions:
|
||||
# Code from module alignasof:
|
||||
# Code from module alloca-opt:
|
||||
# Code from module allocator:
|
||||
# Code from module assert-h:
|
||||
@ -231,6 +232,7 @@ AC_DEFUN([gl_INIT],
|
||||
gl_source_base='lib'
|
||||
gl_source_base_prefix=
|
||||
gl_FUNC_ACL
|
||||
gl_ALIGNASOF
|
||||
gl_FUNC_ALLOCA
|
||||
gl_CONDITIONAL_HEADER([alloca.h])
|
||||
AC_PROG_MKDIR_P
|
||||
@ -248,7 +250,7 @@ AC_DEFUN([gl_INIT],
|
||||
gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name])
|
||||
gl_STDLIB_MODULE_INDICATOR([realpath])
|
||||
AC_REQUIRE([AC_C_RESTRICT])
|
||||
AC_CHECK_FUNCS_ONCE([readlinkat])
|
||||
gl_CHECK_FUNCS_ANDROID([readlinkat], [[#include <unistd.h>]])
|
||||
gl_CLOCK_TIME
|
||||
gl_MODULE_INDICATOR([close-stream])
|
||||
gl_FUNC_COPY_FILE_RANGE
|
||||
@ -344,7 +346,8 @@ AC_DEFUN([gl_INIT],
|
||||
gl_SYS_STAT_MODULE_INDICATOR([futimens])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
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], [
|
||||
gl_PREREQ_GETLOADAVG
|
||||
])
|
||||
@ -404,7 +407,8 @@ AC_DEFUN([gl_INIT],
|
||||
fi
|
||||
gl_STRING_MODULE_INDICATOR([memmem])
|
||||
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], [
|
||||
gl_PREREQ_MEMPCPY
|
||||
])
|
||||
@ -423,7 +427,8 @@ AC_DEFUN([gl_INIT],
|
||||
gl_STRING_MODULE_INDICATOR([memset_explicit])
|
||||
gl_MINMAX
|
||||
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], [
|
||||
gl_PREREQ_MKOSTEMP
|
||||
])
|
||||
@ -548,7 +553,8 @@ AC_DEFUN([gl_INIT],
|
||||
gl_STDLIB_H_REQUIRE_DEFAULTS
|
||||
AC_PROG_MKDIR_P
|
||||
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], [
|
||||
gl_PREREQ_STPCPY
|
||||
])
|
||||
@ -973,7 +979,7 @@ AC_DEFUN([gl_INIT],
|
||||
if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
|
||||
func_gl_gnulib_m4code_utimens
|
||||
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
|
||||
fi
|
||||
if test $REPLACE_GETOPT = 1; then
|
||||
|
@ -1,4 +1,4 @@
|
||||
# inttypes.m4 serial 36
|
||||
# inttypes.m4 serial 37
|
||||
dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
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_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
|
||||
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_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX])
|
||||
INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
|
||||
|
@ -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 Inc.
|
||||
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([gl_STRING_H_DEFAULTS])
|
||||
AC_CHECK_FUNCS([mempcpy])
|
||||
gl_CHECK_FUNCS_ANDROID([mempcpy], [[#include <string.h>]])
|
||||
if test $ac_cv_func_mempcpy = no; then
|
||||
HAVE_MEMPCPY=0
|
||||
case "$gl_cv_onwards_func_mempcpy" in
|
||||
future*) REPLACE_MEMPCPY=1 ;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# mkostemp.m4 serial 2
|
||||
# mkostemp.m4 serial 4
|
||||
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
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().
|
||||
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
|
||||
HAVE_MKOSTEMP=0
|
||||
case "$gl_cv_onwards_func_mkostemp" in
|
||||
future*) REPLACE_MKOSTEMP=1 ;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# nproc.m4 serial 5
|
||||
# nproc.m4 serial 6
|
||||
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@ -25,8 +25,8 @@ AC_DEFUN([gl_PREREQ_NPROC],
|
||||
#endif
|
||||
])
|
||||
|
||||
AC_CHECK_FUNCS([sched_getaffinity sched_getaffinity_np \
|
||||
pstat_getdynamic sysmp sysctl])
|
||||
AC_CHECK_FUNCS([sched_getaffinity_np pstat_getdynamic sysmp sysctl])
|
||||
gl_CHECK_FUNCS_ANDROID([sched_getaffinity], [[#include <sched.h>]])
|
||||
|
||||
dnl Test whether sched_getaffinity has the expected declaration.
|
||||
dnl glibc 2.3.[0-2]:
|
||||
|
@ -1,4 +1,4 @@
|
||||
# pipe2.m4 serial 2
|
||||
# pipe2.m4 serial 4
|
||||
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
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().
|
||||
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
|
||||
HAVE_PIPE2=0
|
||||
case "$gl_cv_onwards_func_pipe2" in
|
||||
future*) REPLACE_PIPE2=1 ;;
|
||||
esac
|
||||
else
|
||||
REPLACE_PIPE2=1
|
||||
fi
|
||||
])
|
||||
|
@ -1,4 +1,4 @@
|
||||
# serial 6
|
||||
# serial 8
|
||||
# See if we need to provide readlinkat replacement.
|
||||
|
||||
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_USE_SYSTEM_EXTENSIONS])
|
||||
AC_CHECK_FUNCS_ONCE([readlinkat])
|
||||
gl_CHECK_FUNCS_ANDROID([readlinkat], [[#include <unistd.h>]])
|
||||
AC_REQUIRE([gl_FUNC_READLINK])
|
||||
if test $ac_cv_func_readlinkat = no; then
|
||||
HAVE_READLINKAT=0
|
||||
case "$gl_cv_onwards_func_readlinkat" in
|
||||
future*) REPLACE_READLINKAT=1 ;;
|
||||
esac
|
||||
else
|
||||
AC_CACHE_CHECK([whether readlinkat signature is correct],
|
||||
[gl_cv_decl_readlinkat_works],
|
||||
|
176
m4/stdalign.m4
176
m4/stdalign.m4
@ -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 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.
|
||||
|
||||
AC_DEFUN([gl_STDALIGN_H],
|
||||
AC_DEFUN([gl_ALIGNASOF],
|
||||
[
|
||||
AC_CACHE_CHECK([for alignas and alignof],
|
||||
[gl_cv_header_working_stdalign_h],
|
||||
@ -58,77 +60,141 @@ AC_DEFUN([gl_STDALIGN_H],
|
||||
test "$gl_cv_header_working_stdalign_h" != no && break
|
||||
done])
|
||||
|
||||
GL_GENERATE_STDALIGN_H=false
|
||||
AS_CASE([$gl_cv_header_working_stdalign_h],
|
||||
[no],
|
||||
[GL_GENERATE_STDALIGN_H=true],
|
||||
[yes*keyword*],
|
||||
[AC_DEFINE([HAVE_C_ALIGNASOF], [1],
|
||||
[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 collisions with other definitions.
|
||||
AH_VERBATIM([zzalignas],
|
||||
[#if !defined HAVE_C_ALIGNASOF && __cplusplus < 201103 && !defined alignof
|
||||
# if HAVE_STDALIGN_H
|
||||
# include <stdalign.h>
|
||||
# else
|
||||
/* Substitute. Keep consistent with gnulib/lib/stdalign.in.h. */
|
||||
# ifndef _GL_STDALIGN_H
|
||||
# define _GL_STDALIGN_H
|
||||
# undef _Alignas
|
||||
# undef _Alignof
|
||||
# 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
|
||||
# endif
|
||||
|
||||
/* ISO C23 alignas and alignof for platforms that lack it.
|
||||
|
||||
References:
|
||||
ISO C23 (latest free draft
|
||||
<http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.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. */
|
||||
|
||||
/* 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
|
||||
# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
|
||||
# define _GL_STDALIGN_NEEDS_STDDEF 1
|
||||
# endif
|
||||
# endif
|
||||
# if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))
|
||||
# define alignof _Alignof
|
||||
# endif
|
||||
# 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
|
||||
# define __alignof_is_defined 1
|
||||
# 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 \
|
||||
|| (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
|
||||
# if ((defined _Alignas \
|
||||
&& !(defined __cplusplus \
|
||||
&& (201103 <= __cplusplus || defined _MSC_VER))) \
|
||||
|| (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
|
||||
# define alignas _Alignas
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if _GL_STDALIGN_NEEDS_STDDEF
|
||||
# include <stddef.h>
|
||||
# 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])
|
||||
])
|
||||
|
@ -1,4 +1,4 @@
|
||||
# stddef_h.m4 serial 12
|
||||
# stddef_h.m4 serial 13
|
||||
dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@ -22,7 +22,14 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
|
||||
[gl_cv_type_max_align_t],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[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);
|
||||
#if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__
|
||||
int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1];
|
||||
|
@ -1,4 +1,4 @@
|
||||
# stdlib_h.m4 serial 66
|
||||
# stdlib_h.m4 serial 71
|
||||
dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@ -23,7 +23,7 @@ AC_DEFUN_ONCE([gl_STDLIB_H],
|
||||
# include <random.h>
|
||||
#endif
|
||||
]], [_Exit aligned_alloc atoll canonicalize_file_name free
|
||||
getloadavg getsubopt grantpt
|
||||
getloadavg getprogname getsubopt grantpt
|
||||
initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps
|
||||
posix_memalign posix_openpt ptsname ptsname_r qsort_r
|
||||
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_FREE_POSIX])
|
||||
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_GRANTPT])
|
||||
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_GCVT=1; AC_SUBST([HAVE_DECL_GCVT])
|
||||
HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
|
||||
HAVE_GETPROGNAME=1; AC_SUBST([HAVE_GETPROGNAME])
|
||||
HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT])
|
||||
HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT])
|
||||
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_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT])
|
||||
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_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_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
|
||||
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_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_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_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_R=0; AC_SUBST([REPLACE_PTSNAME_R])
|
||||
REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])
|
||||
|
@ -1,4 +1,4 @@
|
||||
# stpcpy.m4 serial 9
|
||||
# stpcpy.m4 serial 11
|
||||
dnl Copyright (C) 2002, 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
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([gl_STRING_H_DEFAULTS])
|
||||
AC_CHECK_FUNCS([stpcpy])
|
||||
gl_CHECK_FUNCS_ANDROID([stpcpy], [[#include <string.h>]])
|
||||
if test $ac_cv_func_stpcpy = no; then
|
||||
HAVE_STPCPY=0
|
||||
case "$gl_cv_onwards_func_stpcpy" in
|
||||
future*) REPLACE_STPCPY=1 ;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 35
|
||||
# serial 37
|
||||
|
||||
# Written by Paul Eggert.
|
||||
|
||||
@ -131,6 +131,8 @@ AC_DEFUN([gl_STRING_H_DEFAULTS],
|
||||
REPLACE_FFSLL=0; AC_SUBST([REPLACE_FFSLL])
|
||||
REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR])
|
||||
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_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL])
|
||||
REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP])
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
# 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
|
||||
# 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_STRFTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_STRFTIME])
|
||||
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])
|
||||
|
||||
dnl Hack so that the time module doesn't depend on the sys_time module.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# timegm.m4 serial 13
|
||||
# timegm.m4 serial 15
|
||||
dnl Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@ -9,7 +9,7 @@ AC_DEFUN([gl_FUNC_TIMEGM],
|
||||
AC_REQUIRE([gl_TIME_H_DEFAULTS])
|
||||
AC_REQUIRE([gl_FUNC_MKTIME_WORKS])
|
||||
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 "$gl_cv_func_working_mktime" != yes; then
|
||||
# Assume that timegm is buggy if mktime is.
|
||||
@ -17,6 +17,9 @@ AC_DEFUN([gl_FUNC_TIMEGM],
|
||||
fi
|
||||
else
|
||||
HAVE_TIMEGM=0
|
||||
case "$gl_cv_onwards_func_timegm" in
|
||||
future*) REPLACE_TIMEGM=1 ;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# unistd_h.m4 serial 90
|
||||
# unistd_h.m4 serial 94
|
||||
dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
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_DUP=0; AC_SUBST([REPLACE_DUP])
|
||||
REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2])
|
||||
REPLACE_DUP3=0; AC_SUBST([REPLACE_DUP3])
|
||||
REPLACE_EXECL=0; AC_SUBST([REPLACE_EXECL])
|
||||
REPLACE_EXECLE=0; AC_SUBST([REPLACE_EXECLE])
|
||||
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_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT])
|
||||
REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT])
|
||||
REPLACE_FDATASYNC=0; AC_SUBST([REPLACE_FDATASYNC])
|
||||
REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE])
|
||||
REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD])
|
||||
REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
|
||||
REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE])
|
||||
REPLACE_GETENTROPY=0; AC_SUBST([REPLACE_GETENTROPY])
|
||||
REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R])
|
||||
REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS])
|
||||
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_LINKAT=0; AC_SUBST([REPLACE_LINKAT])
|
||||
REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK])
|
||||
REPLACE_PIPE2=0; AC_SUBST([REPLACE_PIPE2])
|
||||
REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD])
|
||||
REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE])
|
||||
REPLACE_READ=0; AC_SUBST([REPLACE_READ])
|
||||
REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK])
|
||||
REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT])
|
||||
REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR])
|
||||
REPLACE_SETHOSTNAME=0; AC_SUBST([REPLACE_SETHOSTNAME])
|
||||
REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP])
|
||||
REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK])
|
||||
REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT])
|
||||
|
@ -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 with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl serial 12
|
||||
dnl serial 15
|
||||
|
||||
AC_DEFUN([gl_UTIMENS],
|
||||
[
|
||||
@ -11,9 +11,11 @@ AC_DEFUN([gl_UTIMENS],
|
||||
AC_REQUIRE([gl_FUNC_UTIMES])
|
||||
AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
|
||||
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([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
|
||||
dnl FreeBSD 8.0-rc2 mishandles futimesat(fd,NULL,time). It is not
|
||||
|
@ -1,4 +1,4 @@
|
||||
# serial 9
|
||||
# serial 11
|
||||
# See if we need to provide utimensat replacement.
|
||||
|
||||
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_USE_SYSTEM_EXTENSIONS])
|
||||
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
|
||||
HAVE_UTIMENSAT=0
|
||||
case "$gl_cv_onwards_func_utimensat" in
|
||||
future*) REPLACE_UTIMENSAT=1 ;;
|
||||
esac
|
||||
else
|
||||
AC_CACHE_CHECK([whether utimensat works],
|
||||
[gl_cv_func_utimensat_works],
|
||||
|
Loading…
Reference in New Issue
Block a user