aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'config.h.in')
-rw-r--r--config.h.in942
1 files changed, 186 insertions, 756 deletions
diff --git a/config.h.in b/config.h.in
index 8f5dc91..69632ac 100644
--- a/config.h.in
+++ b/config.h.in
@@ -81,11 +81,7 @@
#undef FUNC_MKDIR_DOT_BUG
/* Define to 1 if realpath() can malloc memory, always gives an absolute path,
- and handles a trailing slash correctly. */
-#undef FUNC_REALPATH_NEARLY_WORKS
-
-/* Define to 1 if realpath() can malloc memory, always gives an absolute path,
- and handles leading slashes and a trailing slash correctly. */
+ and handles trailing slash correctly. */
#undef FUNC_REALPATH_WORKS
/* Define to 1 if futimesat mishandles a NULL file name. */
@@ -99,6 +95,9 @@
*/
#undef GETGROUPS_ZERO_BUG
+/* Define if gettimeofday clobbers the localtime buffer. */
+#undef GETTIMEOFDAY_CLOBBERS_LOCALTIME
+
/* Define this to 'void' or 'struct timezone' to match the system's
declaration of the second argument to gettimeofday. */
#undef GETTIMEOFDAY_TIMEZONE
@@ -136,10 +135,6 @@
#undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU
/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
- whether the gnulib module reallocarray shall be considered present. */
-#undef GNULIB_REALLOCARRAY
-
-/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
whether the gnulib module scanf shall be considered present. */
#undef GNULIB_SCANF
@@ -151,12 +146,6 @@
whether the gnulib module strerror shall be considered present. */
#undef GNULIB_STRERROR
-/* Define to 1 when the gnulib module calloc-gnu should be tested. */
-#undef GNULIB_TEST_CALLOC_GNU
-
-/* Define to 1 when the gnulib module calloc-posix should be tested. */
-#undef GNULIB_TEST_CALLOC_POSIX
-
/* Define to 1 when the gnulib module canonicalize_file_name should be tested.
*/
#undef GNULIB_TEST_CANONICALIZE_FILE_NAME
@@ -197,36 +186,12 @@
/* Define to 1 when the gnulib module fdopendir should be tested. */
#undef GNULIB_TEST_FDOPENDIR
-/* Define to 1 when the gnulib module fgetc should be tested. */
-#undef GNULIB_TEST_FGETC
-
-/* Define to 1 when the gnulib module fgets should be tested. */
-#undef GNULIB_TEST_FGETS
-
-/* Define to 1 when the gnulib module fprintf should be tested. */
-#undef GNULIB_TEST_FPRINTF
-
-/* Define to 1 when the gnulib module fputc should be tested. */
-#undef GNULIB_TEST_FPUTC
-
-/* Define to 1 when the gnulib module fputs should be tested. */
-#undef GNULIB_TEST_FPUTS
-
-/* Define to 1 when the gnulib module fread should be tested. */
-#undef GNULIB_TEST_FREAD
-
-/* Define to 1 when the gnulib module free-posix should be tested. */
-#undef GNULIB_TEST_FREE_POSIX
-
/* Define to 1 when the gnulib module frexp should be tested. */
#undef GNULIB_TEST_FREXP
/* Define to 1 when the gnulib module frexpl should be tested. */
#undef GNULIB_TEST_FREXPL
-/* Define to 1 when the gnulib module fscanf should be tested. */
-#undef GNULIB_TEST_FSCANF
-
/* Define to 1 when the gnulib module fstat should be tested. */
#undef GNULIB_TEST_FSTAT
@@ -236,15 +201,6 @@
/* Define to 1 when the gnulib module futimens should be tested. */
#undef GNULIB_TEST_FUTIMENS
-/* Define to 1 when the gnulib module fwrite should be tested. */
-#undef GNULIB_TEST_FWRITE
-
-/* Define to 1 when the gnulib module getc should be tested. */
-#undef GNULIB_TEST_GETC
-
-/* Define to 1 when the gnulib module getchar should be tested. */
-#undef GNULIB_TEST_GETCHAR
-
/* Define to 1 when the gnulib module getcwd should be tested. */
#undef GNULIB_TEST_GETCWD
@@ -260,9 +216,6 @@
/* Define to 1 when the gnulib module getline should be tested. */
#undef GNULIB_TEST_GETLINE
-/* Define to 1 when the gnulib module getopt-posix should be tested. */
-#undef GNULIB_TEST_GETOPT_POSIX
-
/* Define to 1 when the gnulib module gettimeofday should be tested. */
#undef GNULIB_TEST_GETTIMEOFDAY
@@ -272,9 +225,6 @@
/* Define to 1 when the gnulib module lstat should be tested. */
#undef GNULIB_TEST_LSTAT
-/* Define to 1 when the gnulib module malloc-gnu should be tested. */
-#undef GNULIB_TEST_MALLOC_GNU
-
/* Define to 1 when the gnulib module malloc-posix should be tested. */
#undef GNULIB_TEST_MALLOC_POSIX
@@ -287,9 +237,6 @@
/* Define to 1 when the gnulib module memrchr should be tested. */
#undef GNULIB_TEST_MEMRCHR
-/* Define to 1 when the gnulib module mkdir should be tested. */
-#undef GNULIB_TEST_MKDIR
-
/* Define to 1 when the gnulib module mkdirat should be tested. */
#undef GNULIB_TEST_MKDIRAT
@@ -302,36 +249,12 @@
/* Define to 1 when the gnulib module opendir should be tested. */
#undef GNULIB_TEST_OPENDIR
-/* Define to 1 when the gnulib module pipe should be tested. */
-#undef GNULIB_TEST_PIPE
-
-/* Define to 1 when the gnulib module printf should be tested. */
-#undef GNULIB_TEST_PRINTF
-
-/* Define to 1 when the gnulib module putc should be tested. */
-#undef GNULIB_TEST_PUTC
-
-/* Define to 1 when the gnulib module putchar should be tested. */
-#undef GNULIB_TEST_PUTCHAR
-
-/* Define to 1 when the gnulib module puts should be tested. */
-#undef GNULIB_TEST_PUTS
-
-/* Define to 1 when the gnulib module rawmemchr should be tested. */
-#undef GNULIB_TEST_RAWMEMCHR
-
/* Define to 1 when the gnulib module readlink should be tested. */
#undef GNULIB_TEST_READLINK
/* Define to 1 when the gnulib module readlinkat should be tested. */
#undef GNULIB_TEST_READLINKAT
-/* Define to 1 when the gnulib module reallocarray should be tested. */
-#undef GNULIB_TEST_REALLOCARRAY
-
-/* Define to 1 when the gnulib module realloc-gnu should be tested. */
-#undef GNULIB_TEST_REALLOC_GNU
-
/* Define to 1 when the gnulib module realloc-posix should be tested. */
#undef GNULIB_TEST_REALLOC_POSIX
@@ -347,9 +270,6 @@
/* Define to 1 when the gnulib module rmdir should be tested. */
#undef GNULIB_TEST_RMDIR
-/* Define to 1 when the gnulib module scanf should be tested. */
-#undef GNULIB_TEST_SCANF
-
/* Define to 1 when the gnulib module signbit should be tested. */
#undef GNULIB_TEST_SIGNBIT
@@ -389,20 +309,6 @@
/* Define to 1 when the gnulib module vasprintf should be tested. */
#undef GNULIB_TEST_VASPRINTF
-/* Define to 1 when the gnulib module vfprintf should be tested. */
-#undef GNULIB_TEST_VFPRINTF
-
-/* Define to 1 when the gnulib module vprintf should be tested. */
-#undef GNULIB_TEST_VPRINTF
-
-/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
- whether the gnulib module xalloc shall be considered present. */
-#undef GNULIB_XALLOC
-
-/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
- whether the gnulib module xalloc-die shall be considered present. */
-#undef GNULIB_XALLOC_DIE
-
/* Define to 1 if you have the `access' function. */
#undef HAVE_ACCESS
@@ -425,9 +331,6 @@
/* Define to 1 if you have the `canonicalize_file_name' function. */
#undef HAVE_CANONICALIZE_FILE_NAME
-/* Define to 1 if you have the `clock_getres' function. */
-#undef HAVE_CLOCK_GETRES
-
/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
@@ -452,9 +355,6 @@
/* Define to 1 if you have the <crtdefs.h> header file. */
#undef HAVE_CRTDEFS_H
-/* Define to 1 if C supports variable-length arrays. */
-#undef HAVE_C_VARARRAYS
-
/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't.
*/
#undef HAVE_DECL_ALARM
@@ -475,34 +375,14 @@
*/
#undef HAVE_DECL_DIRFD
-/* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't.
- */
-#undef HAVE_DECL_ECVT
-
-/* Define to 1 if you have the declaration of `execvpe', and to 0 if you
- don't. */
-#undef HAVE_DECL_EXECVPE
-
/* Define to 1 if you have the declaration of `fchdir', and to 0 if you don't.
*/
#undef HAVE_DECL_FCHDIR
-/* Define to 1 if you have the declaration of `fcloseall', and to 0 if you
- don't. */
-#undef HAVE_DECL_FCLOSEALL
-
-/* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't.
- */
-#undef HAVE_DECL_FCVT
-
/* Define to 1 if you have the declaration of `fdopendir', and to 0 if you
don't. */
#undef HAVE_DECL_FDOPENDIR
-/* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't.
- */
-#undef HAVE_DECL_GCVT
-
/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
don't. */
#undef HAVE_DECL_GETC_UNLOCKED
@@ -543,10 +423,6 @@
don't. */
#undef HAVE_DECL_STRNCASECMP
-/* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't.
- */
-#undef HAVE_DECL_WCSDUP
-
/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you
don't. */
#undef HAVE_DECL__SNPRINTF
@@ -564,6 +440,9 @@
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
+/* Define to 1 if you have the 'dup2' function. */
+#undef HAVE_DUP2
+
/* Define to 1 if you have the `eaccess' function. */
#undef HAVE_EACCESS
@@ -591,9 +470,6 @@
/* Define to 1 if you have the `fmemopen' function. */
#undef HAVE_FMEMOPEN
-/* Define if the 'free' function is guaranteed to preserve errno. */
-#undef HAVE_FREE_POSIX
-
/* Define if the frexpl function is available in libc. */
#undef HAVE_FREXPL_IN_LIBC
@@ -691,7 +567,7 @@
/* Define to 1 if you have the `lutimes' function. */
#undef HAVE_LUTIMES
-/* Define if malloc, realloc, and calloc set errno on allocation failure. */
+/* Define if the 'malloc' function is POSIX compliant. */
#undef HAVE_MALLOC_POSIX
/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including
@@ -710,15 +586,6 @@
/* Define to 1 if you have the `memrchr' function. */
#undef HAVE_MEMRCHR
-/* Define to 1 if you have the <minix/config.h> header file. */
-#undef HAVE_MINIX_CONFIG_H
-
-/* Define to 1 if <limits.h> defines the MIN and MAX macros. */
-#undef HAVE_MINMAX_IN_LIMITS_H
-
-/* Define to 1 if <sys/param.h> defines the MIN and MAX macros. */
-#undef HAVE_MINMAX_IN_SYS_PARAM_H
-
/* Define to 1 if you have the `mkdirat' function. */
#undef HAVE_MKDIRAT
@@ -729,9 +596,6 @@
concept. */
#undef HAVE_MSVC_INVALID_PARAMETER_HANDLER
-/* Define to 1 if utimensat works, except for the trailing slash handling. */
-#undef HAVE_NEARLY_WORKING_UTIMENSAT
-
/* Define to 1 if you have the `nl_langinfo' function. */
#undef HAVE_NL_LANGINFO
@@ -750,17 +614,14 @@
/* Define to 1 if you have the `pipe' function. */
#undef HAVE_PIPE
-/* Define to 1 if you have the `rawmemchr' function. */
-#undef HAVE_RAWMEMCHR
-
/* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK
/* Define to 1 if you have the `readlinkat' function. */
#undef HAVE_READLINKAT
-/* Define to 1 if you have the `reallocarray' function. */
-#undef HAVE_REALLOCARRAY
+/* Define if the 'realloc' function is POSIX compliant. */
+#undef HAVE_REALLOC_POSIX
/* Define to 1 if you have the `realpath' function. */
#undef HAVE_REALPATH
@@ -777,9 +638,6 @@
/* Define to 1 if you have the `scandirat' function. */
#undef HAVE_SCANDIRAT
-/* Define to 1 if you have the <sdkddkver.h> header file. */
-#undef HAVE_SDKDDKVER_H
-
/* Define this if Linux/Solaris sendfile() is supported */
#undef HAVE_SENDFILE4_SUPPORT
@@ -809,10 +667,6 @@
buffer had been large enough. */
#undef HAVE_SNPRINTF_RETVAL_C99
-/* Define if the string produced by the snprintf function is always NUL
- terminated. */
-#undef HAVE_SNPRINTF_TRUNCATION_C99
-
/* Define if you have ssl */
#undef HAVE_SSL
@@ -838,6 +692,9 @@
/* Define to 1 if you have the `strcasestr' function. */
#undef HAVE_STRCASESTR
+/* Define to 1 if you have the `strdup' function. */
+#undef HAVE_STRDUP
+
/* Define if you have `strerror_r'. */
#undef HAVE_STRERROR_R
@@ -907,9 +764,6 @@
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
-/* Define to 1 if you have the `timespec_get' function. */
-#undef HAVE_TIMESPEC_GET
-
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
@@ -980,127 +834,6 @@
/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */
#undef HAVE__SET_INVALID_PARAMETER_HANDLER
-/* Define to 1 if the compiler supports __builtin_expect,
- and to 2 if <builtins.h> does. */
-#undef HAVE___BUILTIN_EXPECT
-#ifndef HAVE___BUILTIN_EXPECT
-# define __builtin_expect(e, c) (e)
-#elif HAVE___BUILTIN_EXPECT == 2
-# include <builtins.h>
-#endif
-
-
-/* Define to 1 if ctype.h defines __header_inline. */
-#undef HAVE___HEADER_INLINE
-
-/* Please see the Gnulib manual for how to use these macros.
-
- Suppress extern inline with HP-UX cc, as it appears to be broken; see
- <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
-
- Suppress extern inline with Sun C in standards-conformance mode, as it
- mishandles inline functions that call each other. E.g., for 'inline void f
- (void) { } inline void g (void) { f (); }', c99 incorrectly complains
- 'reference to static identifier "f" in extern inline function'.
- This bug was observed with Oracle Developer Studio 12.6
- (Sun C 5.15 SunOS_sparc 2017/05/30).
-
- Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
- on configurations that mistakenly use 'static inline' to implement
- functions or macros in standard C headers like <ctype.h>. For example,
- if isdigit is mistakenly implemented via a static inline function,
- a program containing an extern inline function that calls isdigit
- may not work since the C standard prohibits extern inline functions
- from calling static functions (ISO C 99 section 6.7.4.(3).
- This bug is known to occur on:
-
- OS X 10.8 and earlier; see:
- https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
-
- DragonFly; see
- http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log
-
- FreeBSD; see:
- https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
-
- OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
- for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
- Assume DragonFly and FreeBSD will be similar.
-
- GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
- inline semantics, unless -fgnu89-inline is used. It defines a macro
- __GNUC_STDC_INLINE__ to indicate this situation or a macro
- __GNUC_GNU_INLINE__ to indicate the opposite situation.
- GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
- semantics but warns, unless -fgnu89-inline is used:
- warning: C99 inline functions are not supported; using GNU89
- warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
- It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
- */
-#if (((defined __APPLE__ && defined __MACH__) \
- || defined __DragonFly__ || defined __FreeBSD__) \
- && (defined HAVE___HEADER_INLINE \
- ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
- && ! defined __clang__) \
- : ((! defined _DONT_USE_CTYPE_INLINE_ \
- && (defined __GNUC__ || defined __cplusplus)) \
- || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
- && defined __GNUC__ && ! defined __cplusplus))))
-# define _GL_EXTERN_INLINE_STDHEADER_BUG
-#endif
-#if ((__GNUC__ \
- ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
- : (199901L <= __STDC_VERSION__ \
- && !defined __HP_cc \
- && !defined __PGI \
- && !(defined __SUNPRO_C && __STDC__))) \
- && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
-# define _GL_INLINE inline
-# define _GL_EXTERN_INLINE extern inline
-# define _GL_EXTERN_INLINE_IN_USE
-#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
- && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
-# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
- /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */
-# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
-# else
-# define _GL_INLINE extern inline
-# endif
-# define _GL_EXTERN_INLINE extern
-# define _GL_EXTERN_INLINE_IN_USE
-#else
-# define _GL_INLINE _GL_UNUSED static
-# define _GL_EXTERN_INLINE _GL_UNUSED static
-#endif
-
-/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
- suppress bogus "no previous prototype for 'FOO'"
- and "no previous declaration for 'FOO'" diagnostics,
- when FOO is an inline function in the header; see
- <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
- <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */
-#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
-# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
-# define _GL_INLINE_HEADER_CONST_PRAGMA
-# else
-# define _GL_INLINE_HEADER_CONST_PRAGMA \
- _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
-# endif
-# define _GL_INLINE_HEADER_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
- _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
- _GL_INLINE_HEADER_CONST_PRAGMA
-# define _GL_INLINE_HEADER_END \
- _Pragma ("GCC diagnostic pop")
-#else
-# define _GL_INLINE_HEADER_BEGIN
-# define _GL_INLINE_HEADER_END
-#endif
-
-/* Define to 1 if the compiler supports the keyword '__inline'. */
-#undef HAVE___INLINE
-
/* Define as the bit index in the word where to find bit 0 of the exponent of
'long double'. */
#undef LDBL_EXPBIT0_BIT
@@ -1206,6 +939,9 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
+/* Define if <inttypes.h> exists and defines unusable PRI* macros. */
+#undef PRI_MACROS_BROKEN
+
/* Define to the type that is the result of default argument promotions of
type mode_t. */
#undef PROMOTED_MODE_T
@@ -1217,10 +953,6 @@
/* Define to 1 if readlink fails to recognize a trailing slash. */
#undef READLINK_TRAILING_SLASH_BUG
-/* Define to 1 if readlink sets errno instead of truncating a too-long link.
- */
-#undef READLINK_TRUNCATE_BUG
-
/* Define if rename does not work when the destination file exists, as on
Cygwin 1.5 or Windows. */
#undef RENAME_DEST_EXISTS_BUG
@@ -1247,10 +979,6 @@
slash */
#undef REPLACE_FUNC_STAT_FILE
-/* Define to 1 if utime needs help when passed a file name with a trailing
- slash */
-#undef REPLACE_FUNC_UTIME_FILE
-
/* Define to 1 if open() should work around the inability to open a directory.
*/
#undef REPLACE_OPEN_DIRECTORY
@@ -1312,44 +1040,19 @@
#ifndef _DARWIN_C_SOURCE
# undef _DARWIN_C_SOURCE
#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
-/* Enable X/Open compliant socket functions that do not require linking
- with -lxnet on HP-UX 11.11. */
-#ifndef _HPUX_ALT_XOPEN_SOCKET_API
-# undef _HPUX_ALT_XOPEN_SOCKET_API
-#endif
-/* Identify the host operating system as Minix.
- This macro does not affect the system headers' behavior.
- A future release of Autoconf may stop defining this macro. */
-#ifndef _MINIX
-# undef _MINIX
-#endif
-/* Enable general extensions on NetBSD.
- Enable NetBSD compatibility extensions on Minix. */
+/* Enable NetBSD extensions on NetBSD. */
#ifndef _NETBSD_SOURCE
# undef _NETBSD_SOURCE
#endif
-/* Enable OpenBSD compatibility extensions on NetBSD.
- Oddly enough, this does nothing on OpenBSD. */
+/* Enable OpenBSD extensions on NetBSD. */
#ifndef _OPENBSD_SOURCE
# undef _OPENBSD_SOURCE
#endif
-/* Define to 1 if needed for POSIX-compatible behavior. */
-#ifndef _POSIX_SOURCE
-# undef _POSIX_SOURCE
-#endif
-/* Define to 2 if needed for POSIX-compatible behavior. */
-#ifndef _POSIX_1_SOURCE
-# undef _POSIX_1_SOURCE
-#endif
-/* Enable POSIX-compatible threading on Solaris. */
+/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
@@ -1385,11 +1088,21 @@
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
-/* Enable X/Open extensions. Define to 500 only if necessary
- to make mbstate_t available. */
+/* Enable X/Open extensions if necessary. HP-UX 11.11 defines
+ mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
+ whether compiling with -Ae or -D_HPUX_SOURCE=1. */
#ifndef _XOPEN_SOURCE
# undef _XOPEN_SOURCE
#endif
+/* Enable X/Open compliant socket functions that do not require linking
+ with -lxnet on HP-UX 11.11. */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# undef _HPUX_ALT_XOPEN_SOCKET_API
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
/* Version number of package */
@@ -1418,43 +1131,23 @@
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
-/* True if the compiler says it groks GNU C version MAJOR.MINOR. */
-#if defined __GNUC__ && defined __GNUC_MINOR__
-# define _GL_GNUC_PREREQ(major, minor) \
- ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__))
-#else
-# define _GL_GNUC_PREREQ(major, minor) 0
-#endif
-
-
-/* Define to enable the declarations of ISO C 11 types and functions. */
-#undef _ISOC11_SOURCE
-
/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */
+#undef _NETBSD_SOURCE
+
/* The _Noreturn keyword of C11. */
#ifndef _Noreturn
-# if (defined __cplusplus \
- && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
- || (defined _MSC_VER && 1900 <= _MSC_VER)) \
- && 0)
- /* [[noreturn]] is not practically usable, because with it the syntax
- extern _Noreturn void func (...);
- would not be valid; such a declaration would only be valid with 'extern'
- and '_Noreturn' swapped, or without the 'extern' keyword. However, some
- AIX system header files and several gnulib header files use precisely
- this syntax with 'extern'. */
+# if 201103 <= (defined __cplusplus ? __cplusplus : 0)
# define _Noreturn [[noreturn]]
-# elif ((!defined __cplusplus || defined __clang__) \
- && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
- || (!defined __STRICT_ANSI__ \
- && (_GL_GNUC_PREREQ (4, 7) \
- || (defined __apple_build_version__ \
- ? 6000000 <= __apple_build_version__ \
- : 3 < __clang_major__ + (5 <= __clang_minor__))))))
+# elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
+ || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
/* _Noreturn works as-is. */
-# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C
+# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
# define _Noreturn __attribute__ ((__noreturn__))
# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
# define _Noreturn __declspec (noreturn)
@@ -1464,8 +1157,12 @@
#endif
-/* Number of bits in a timestamp, on hosts where this is settable. */
-#undef _TIME_BITS
+/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for 'stat' and other things to work. */
+#undef _POSIX_SOURCE
/* For standard stat data types on VMS. */
#undef _USE_STD_STAT
@@ -1474,410 +1171,116 @@
used. */
#undef __GETOPT_PREFIX
-/* For 64-bit time_t on 32-bit mingw. */
-#undef __MINGW_USE_VC2005_COMPAT
-
/* Define to 1 if the system <stdint.h> predates C++11. */
#undef __STDC_CONSTANT_MACROS
/* Define to 1 if the system <stdint.h> predates C++11. */
#undef __STDC_LIMIT_MACROS
-/* Define to 1 if C does not support variable-length arrays, and if the
- compiler does not already define this. */
-#undef __STDC_NO_VLA__
-
-/* The _GL_ASYNC_SAFE marker should be attached to functions that are
- signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
- invoked from such signal handlers. Such functions have some restrictions:
- * All functions that it calls should be marked _GL_ASYNC_SAFE as well,
- or should be listed as async-signal-safe in POSIX
- <https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04>
- section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in
- particular, are NOT async-signal-safe.
- * All memory locations (variables and struct fields) that these functions
- access must be marked 'volatile'. This holds for both read and write
- accesses. Otherwise the compiler might optimize away stores to and
- reads from such locations that occur in the program, depending on its
- data flow analysis. For example, when the program contains a loop
- that is intended to inspect a variable set from within a signal handler
- while (!signal_occurred)
- ;
- the compiler is allowed to transform this into an endless loop if the
- variable 'signal_occurred' is not declared 'volatile'.
- Additionally, recall that:
- * A signal handler should not modify errno (except if it is a handler
- for a fatal signal and ends by raising the same signal again, thus
- provoking the termination of the process). If it invokes a function
- that may clobber errno, it needs to save and restore the value of
- errno. */
-#define _GL_ASYNC_SAFE
-
-
-/* Attributes. */
-#if (defined __has_attribute \
- && (!defined __clang_minor__ \
- || 3 < __clang_major__ + (5 <= __clang_minor__)))
-# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__)
-#else
-# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr
-# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3)
-# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2)
-# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3)
-# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3)
-# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95)
-# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1)
-# define _GL_ATTR_diagnose_if 0
-# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3)
-# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1)
-# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0)
-# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7)
-# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6)
-# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0)
-# ifdef _ICC
-# define _GL_ATTR_may_alias 0
-# else
-# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3)
-# endif
-# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1)
-# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3)
-# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0)
-# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3)
-# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7)
-# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96)
-# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9)
-# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0)
-# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7)
-# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
-#endif
-
-#ifdef __has_c_attribute
-# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__)
-#else
-# define _GL_HAS_C_ATTRIBUTE(attr) 0
-#endif
-
-
-/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function
- is the size of the returned memory block.
- _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied
- by the Nth argument of the function is the size of the returned memory block.
- */
-/* Applies to: function, pointer to function, function types. */
-#if _GL_HAS_ATTRIBUTE (alloc_size)
-# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
-#else
-# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
-#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
-#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
-#endif
-
-/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */
-/* Applies to: functions. */
-/* 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__))
-# else
-# define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
-# endif
-#else
-# define _GL_ATTRIBUTE_COLD
-#endif
-
-/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate
- calls to the function with the same arguments.
- This attribute is safe for a function that neither depends on nor affects
- observable state, and always returns exactly once - e.g., does not loop
- forever, and does not call longjmp.
- (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */
-/* Applies to: functions. */
-#if _GL_HAS_ATTRIBUTE (const)
-# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
-#else
-# define _GL_ATTRIBUTE_CONST
-#endif
-
-/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
- that can be freed by passing them as the Ith argument to the
- function F.
- _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)
-#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
- yet. */
-#ifndef _GL_ATTRIBUTE_DEALLOC_FREE
-# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1)
-#endif
-
-/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated.
- The compiler may warn if the entity is used. */
-/* Applies to:
- - function, variable,
- - struct, union, struct/union member,
- - enumeration, enumeration item,
- - typedef,
- in C++ also: namespace, class, template specialization. */
-#if _GL_HAS_C_ATTRIBUTE (deprecated)
-# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
-#elif _GL_HAS_ATTRIBUTE (deprecated)
-# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
-#else
-# define _GL_ATTRIBUTE_DEPRECATED
-#endif
-
-/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and
- the function call is not optimized away.
- _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)
-#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
-#endif
-
-/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if
- the control flow falls through to the immediately following 'case' or
- 'default' label. The compiler should not warn in this case. */
-/* Applies to: Empty statement (;), inside a 'switch' statement. */
-/* Always expands to something. */
-#if _GL_HAS_C_ATTRIBUTE (fallthrough)
-# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
-#elif _GL_HAS_ATTRIBUTE (fallthrough)
-# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
-#else
-# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
-#endif
-
-/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK))
- declares that the STRING-INDEXth function argument is a format string of
- style ARCHETYPE, which is one of:
- printf, gnu_printf
- scanf, gnu_scanf,
- strftime, gnu_strftime,
- strfmon,
- or the same thing prefixed and suffixed with '__'.
- 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)
-#endif
-
-/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other
- compilation unit, it executes code from that unit only by return or by
- 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
-#endif
+/* Please see the Gnulib manual for how to use these macros.
-/* _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
-#endif
+ Suppress extern inline with HP-UX cc, as it appears to be broken; see
+ <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
-/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the
- same storage as pointers to other types. Thus this declaration disables
- 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
-#endif
+ Suppress extern inline with Sun C in standards-conformance mode, as it
+ mishandles inline functions that call each other. E.g., for 'inline void f
+ (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+ 'reference to static identifier "f" in extern inline function'.
+ This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
-/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if
- the entity is not used. The compiler should not warn if the entity is not
- used. */
-/* Applies to:
- - function, variable,
- - struct, union, struct/union member,
- - enumeration, enumeration item,
- - typedef,
- in C++ also: class. */
-/* In C++ and C2x, this is spelled [[__maybe_unused__]].
- GCC's syntax is __attribute__ ((__unused__)).
- clang supports both syntaxes. */
-#if _GL_HAS_C_ATTRIBUTE (maybe_unused)
-# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
-#else
-# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED
-#endif
-/* Alternative spelling of this macro, for convenience. */
-#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED
-/* Earlier spellings of this macro. */
-#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED
-
-/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not
- 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. */
-#if _GL_HAS_C_ATTRIBUTE (nodiscard)
-# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
-#elif _GL_HAS_ATTRIBUTE (warn_unused_result)
-# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
-#else
-# define _GL_ATTRIBUTE_NODISCARD
-#endif
+ Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+ on configurations that mistakenly use 'static inline' to implement
+ functions or macros in standard C headers like <ctype.h>. For example,
+ if isdigit is mistakenly implemented via a static inline function,
+ a program containing an extern inline function that calls isdigit
+ may not work since the C standard prohibits extern inline functions
+ from calling static functions (ISO C 99 section 6.7.4.(3).
+ This bug is known to occur on:
-/* _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
-#endif
+ OS X 10.8 and earlier; see:
+ https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
-/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,...
- must not be NULL.
- _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)
-#endif
+ DragonFly; see
+ http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
-/* _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
-#endif
+ FreeBSD; see:
+ https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
-/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */
+ OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+ for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
+ Assume DragonFly and FreeBSD will be similar.
-/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions.
+ GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+ inline semantics, unless -fgnu89-inline is used. It defines a macro
+ __GNUC_STDC_INLINE__ to indicate this situation or a macro
+ __GNUC_GNU_INLINE__ to indicate the opposite situation.
+ GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
+ semantics but warns, unless -fgnu89-inline is used:
+ warning: C99 inline functions are not supported; using GNU89
+ warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
+ It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
*/
-/* Applies to: functions. */
-#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
-# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
-#else
-# define _GL_ATTRIBUTE_NOTHROW
-#endif
-
-/* _GL_ATTRIBUTE_PACKED declares:
- For struct members: The member has the smallest possible alignment.
- For struct, union, class: All members have the smallest possible alignment,
- 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
-#endif
-
-/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate
- calls to the function with the same arguments if observable state is not
- changed between calls.
- This attribute is safe for a function that does not affect
- observable state, and always returns exactly once.
- (This attribute is looser than _GL_ATTRIBUTE_CONST.) */
-/* Applies to: functions. */
-#if _GL_HAS_ATTRIBUTE (pure)
-# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
-#else
-# define _GL_ATTRIBUTE_PURE
-#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
-#endif
-
-/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a
- trailing NULL argument.
- _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)
+#if (((defined __APPLE__ && defined __MACH__) \
+ || defined __DragonFly__ || defined __FreeBSD__) \
+ && (defined __header_inline \
+ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+ && ! defined __clang__) \
+ : ((! defined _DONT_USE_CTYPE_INLINE_ \
+ && (defined __GNUC__ || defined __cplusplus)) \
+ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+ && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
#endif
-
-/* A helper macro. Don't use it directly. */
-#if _GL_HAS_ATTRIBUTE (unused)
-# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+#if ((__GNUC__ \
+ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+ : (199901L <= __STDC_VERSION__ \
+ && !defined __HP_cc \
+ && !defined __PGI \
+ && !(defined __SUNPRO_C && __STDC__))) \
+ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
+ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */
+# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+# else
+# define _GL_INLINE extern inline
+# endif
+# define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
#else
-# define _GL_ATTRIBUTE_UNUSED
+# define _GL_INLINE static _GL_UNUSED
+# define _GL_EXTERN_INLINE static _GL_UNUSED
#endif
-
-/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the
- immediately preceding label is not used. The compiler should not warn
- if the label is not used. */
-/* 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
+/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
+ suppress bogus "no previous prototype for 'FOO'"
+ and "no previous declaration for 'FOO'" diagnostics,
+ when FOO is an inline function in the header; see
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */
+#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+# define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+# define _GL_INLINE_HEADER_CONST_PRAGMA \
+ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+# define _GL_INLINE_HEADER_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+ _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+ _Pragma ("GCC diagnostic pop")
#else
-# define _GL_UNUSED_LABEL
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
#endif
-
/* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t
@@ -1894,22 +1297,6 @@
# define __GNUC_STDC_INLINE__ 1
#endif
-/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where
- n1 and n2 are expressions without side effects, that evaluate to real
- numbers (excluding NaN).
- It returns
- 1 if n1 > n2
- 0 if n1 == n2
- -1 if n1 < n2
- The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional
- jump with nearly all GCC versions up to GCC 10.
- This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many
- GCC versions up to GCC 9.
- The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9
- avoids conditional jumps in all GCC versions >= 3.4. */
-#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2)))
-
-
/* Define to `int' if <sys/types.h> does not define. */
#undef mode_t
@@ -1925,15 +1312,14 @@
/* Define to the equivalent of the C99 'restrict' keyword, or to
nothing if this is not supported. Do not define if restrict is
- supported only directly. */
+ supported directly. */
#undef restrict
-/* Work around a bug in older versions of Sun C++, which did not
- #define __restrict__ or support _Restrict or __restrict__
- even though the corresponding Sun C compiler ended up with
- "#define restrict _Restrict" or "#define restrict __restrict__"
- in the previous line. This workaround can be removed once
- we assume Oracle Developer Studio 12.5 (2016) or later. */
-#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__
+/* Work around a bug in Sun C++: it does not support _Restrict or
+ __restrict__, even though the corresponding Sun C compiler ends up with
+ "#define restrict _Restrict" or "#define restrict __restrict__" in the
+ previous line. Perhaps some future version of Sun C++ will work with
+ restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
+#if defined __SUNPRO_CC && !defined __RESTRICT
# define _Restrict
# define __restrict__
#endif
@@ -1946,3 +1332,47 @@
/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
+
+/* Define as a marker that can be attached to declarations that might not
+ be used. This helps to reduce warnings, such as from
+ GCC -Wunused-parameter. */
+#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+# define _GL_UNUSED __attribute__ ((__unused__))
+#else
+# define _GL_UNUSED
+#endif
+/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
+ is a misnomer outside of parameter lists. */
+#define _UNUSED_PARAMETER_ _GL_UNUSED
+
+/* gcc supports the "unused" attribute on possibly unused labels, and
+ g++ has since version 4.5. Note to support C++ as well as C,
+ _GL_UNUSED_LABEL should be used with a trailing ; */
+#if !defined __cplusplus || __GNUC__ > 4 \
+ || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# define _GL_UNUSED_LABEL _GL_UNUSED
+#else
+# define _GL_UNUSED_LABEL
+#endif
+
+/* The __pure__ attribute was added in gcc 2.96. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
+
+/* The __malloc__ attribute was added in gcc 3. */
+#if 3 <= __GNUC__
+# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+#else
+# define _GL_ATTRIBUTE_MALLOC /* empty */
+#endif
+