diff options
Diffstat (limited to 'config.h.in')
-rw-r--r-- | config.h.in | 430 |
1 files changed, 186 insertions, 244 deletions
diff --git a/config.h.in b/config.h.in index 43513c8d..95253425 100644 --- a/config.h.in +++ b/config.h.in @@ -1,5 +1,11 @@ /* config.h.in. Generated from configure.ac by autoheader. */ +#if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__ +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wtrailing-whitespace" +#endif + + /* Witness that <config.h> has been included. */ #define _GL_CONFIG_H_INCLUDED 1 @@ -48,22 +54,9 @@ /* Define as the word index where to find the sign of 'double'. */ #undef DBL_SIGNBIT_WORD -/* the name of the file descriptor member of DIR */ -#undef DIR_FD_MEMBER_NAME - -#ifdef DIR_FD_MEMBER_NAME -# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME) -#else -# define DIR_TO_FD(Dir_p) -1 -#endif - - /* Define to 1 if // is a file system root distinct from /. */ #undef DOUBLE_SLASH_IS_DISTINCT_ROOT -/* Define if struct dirent has a member d_ino that actually works. */ -#undef D_INO_IN_DIRENT - /* Define to 1 if the package shall run at any location in the file system. */ #undef ENABLE_RELOCATABLE @@ -111,14 +104,6 @@ #undef GNULIB_CONNECT /* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fdopendir shall be considered present. */ -#undef GNULIB_FDOPENDIR - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fd-safer-flag shall be considered present. */ -#undef GNULIB_FD_SAFER_FLAG - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF @@ -127,14 +112,6 @@ #undef GNULIB_FSTAT /* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fstatat shall be considered present. */ -#undef GNULIB_FSTATAT - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module getcwd shall be considered present. */ -#undef GNULIB_GETCWD - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module ioctl shall be considered present. */ #undef GNULIB_IOCTL @@ -147,6 +124,14 @@ #undef GNULIB_LISTEN /* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module localeconv shall be considered present. */ +#undef GNULIB_LOCALECONV + +/* Define to the directory where to find the localizations of the translation + domain 'gnulib', as a C string. */ +#undef GNULIB_LOCALEDIR + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module lock shall be considered present. */ #undef GNULIB_LOCK @@ -158,10 +143,6 @@ whether the gnulib module msvc-nothrow shall be considered present. */ #undef GNULIB_MSVC_NOTHROW -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module openat shall be considered present. */ -#undef GNULIB_OPENAT - /* Define to 1 if printf and friends should be labeled with attribute "__gnu_printf__" instead of "__printf__" */ #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU @@ -264,45 +245,27 @@ /* Define to 1 when the gnulib module calloc-posix should be tested. */ #undef GNULIB_TEST_CALLOC_POSIX -/* Define to 1 when the gnulib module chdir should be tested. */ -#undef GNULIB_TEST_CHDIR - /* Define to 1 when the gnulib module cloexec should be tested. */ #undef GNULIB_TEST_CLOEXEC /* Define to 1 when the gnulib module close should be tested. */ #undef GNULIB_TEST_CLOSE -/* Define to 1 when the gnulib module closedir should be tested. */ -#undef GNULIB_TEST_CLOSEDIR - /* Define to 1 when the gnulib module connect should be tested. */ #undef GNULIB_TEST_CONNECT -/* Define to 1 when the gnulib module dirfd should be tested. */ -#undef GNULIB_TEST_DIRFD - -/* Define to 1 when the gnulib module dup should be tested. */ -#undef GNULIB_TEST_DUP - /* Define to 1 when the gnulib module dup2 should be tested. */ #undef GNULIB_TEST_DUP2 /* Define to 1 when the gnulib module environ should be tested. */ #undef GNULIB_TEST_ENVIRON -/* Define to 1 when the gnulib module fchdir should be tested. */ -#undef GNULIB_TEST_FCHDIR - /* Define to 1 when the gnulib module fcntl should be tested. */ #undef GNULIB_TEST_FCNTL /* Define to 1 when the gnulib module fdopen should be tested. */ #undef GNULIB_TEST_FDOPEN -/* 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 @@ -336,9 +299,6 @@ /* Define to 1 when the gnulib module fstat should be tested. */ #undef GNULIB_TEST_FSTAT -/* Define to 1 when the gnulib module fstatat should be tested. */ -#undef GNULIB_TEST_FSTATAT - /* Define to 1 when the gnulib module ftruncate should be tested. */ #undef GNULIB_TEST_FTRUNCATE @@ -357,6 +317,10 @@ /* Define to 1 when the gnulib module getdtablesize should be tested. */ #undef GNULIB_TEST_GETDTABLESIZE +/* Define to 1 when the gnulib module getlocalename_l-unsafe should be tested. + */ +#undef GNULIB_TEST_GETLOCALENAME_L_UNSAFE + /* Define to 1 when the gnulib module getprogname should be tested. */ #undef GNULIB_TEST_GETPROGNAME @@ -381,6 +345,12 @@ /* Define to 1 when the gnulib module listen should be tested. */ #undef GNULIB_TEST_LISTEN +/* Define to 1 when the gnulib module localeconv should be tested. */ +#undef GNULIB_TEST_LOCALECONV + +/* Define to 1 when the gnulib module localename-environ should be tested. */ +#undef GNULIB_TEST_LOCALENAME_ENVIRON + /* Define to 1 when the gnulib module localename-unsafe should be tested. */ #undef GNULIB_TEST_LOCALENAME_UNSAFE @@ -414,11 +384,8 @@ /* Define to 1 when the gnulib module memchr should be tested. */ #undef GNULIB_TEST_MEMCHR -/* Define to 1 when the gnulib module mempcpy should be tested. */ -#undef GNULIB_TEST_MEMPCPY - -/* Define to 1 when the gnulib module memrchr should be tested. */ -#undef GNULIB_TEST_MEMRCHR +/* Define to 1 when the gnulib module mkfifo should be tested. */ +#undef GNULIB_TEST_MKFIFO /* Define to 1 when the gnulib module nanosleep should be tested. */ #undef GNULIB_TEST_NANOSLEEP @@ -426,12 +393,6 @@ /* Define to 1 when the gnulib module open should be tested. */ #undef GNULIB_TEST_OPEN -/* Define to 1 when the gnulib module openat should be tested. */ -#undef GNULIB_TEST_OPENAT - -/* Define to 1 when the gnulib module opendir should be tested. */ -#undef GNULIB_TEST_OPENDIR - /* Define to 1 when the gnulib module perror should be tested. */ #undef GNULIB_TEST_PERROR @@ -487,21 +448,12 @@ /* Define to 1 when the gnulib module random_r should be tested. */ #undef GNULIB_TEST_RANDOM_R -/* Define to 1 when the gnulib module readdir should be tested. */ -#undef GNULIB_TEST_READDIR - /* 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 -/* Define to 1 when the gnulib module rewinddir should be tested. */ -#undef GNULIB_TEST_REWINDDIR - /* Define to 1 when the gnulib module scanf should be tested. */ #undef GNULIB_TEST_SCANF @@ -541,21 +493,27 @@ /* Define to 1 when the gnulib module stpcpy should be tested. */ #undef GNULIB_TEST_STPCPY -/* Define to 1 when the gnulib module strdup should be tested. */ -#undef GNULIB_TEST_STRDUP - /* Define to 1 when the gnulib module strerror should be tested. */ #undef GNULIB_TEST_STRERROR /* Define to 1 when the gnulib module strerror_r should be tested. */ #undef GNULIB_TEST_STRERROR_R +/* Define to 1 when the gnulib module stringeq should be tested. */ +#undef GNULIB_TEST_STRINGEQ + /* Define to 1 when the gnulib module strncat should be tested. */ #undef GNULIB_TEST_STRNCAT /* Define to 1 when the gnulib module strstr should be tested. */ #undef GNULIB_TEST_STRSTR +/* Define to 1 when the gnulib module str_endswith should be tested. */ +#undef GNULIB_TEST_STR_ENDSWITH + +/* Define to 1 when the gnulib module str_startswith should be tested. */ +#undef GNULIB_TEST_STR_STARTSWITH + /* Define to 1 when the gnulib module symlink should be tested. */ #undef GNULIB_TEST_SYMLINK @@ -751,9 +709,6 @@ the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE -/* Define to 1 if you have the 'closedir' function. */ -#undef HAVE_CLOSEDIR - /* Define if the copysignf function is declared in <math.h> and available in libc. */ #undef HAVE_COPYSIGNF_IN_LIBC @@ -797,10 +752,6 @@ don't. */ #undef HAVE_DECL_COPYSIGNL -/* Define to 1 if you have the declaration of 'dirfd', and to 0 if you don't. - */ -#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 @@ -809,10 +760,6 @@ 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 @@ -821,18 +768,10 @@ */ #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 'getcwd', and to 0 if you don't. - */ -#undef HAVE_DECL_GETCWD - /* Define to 1 if you have the declaration of 'getdtablesize', and to 0 if you don't. */ #undef HAVE_DECL_GETDTABLESIZE @@ -861,9 +800,9 @@ don't. */ #undef HAVE_DECL_MBSINIT -/* Define to 1 if you have the declaration of 'memrchr', and to 0 if you - don't. */ -#undef HAVE_DECL_MEMRCHR +/* Define to 1 if you have the declaration of 'memeq', and to 0 if you don't. + */ +#undef HAVE_DECL_MEMEQ /* Define to 1 if you have the declaration of 'program_invocation_name', and to 0 if you don't. */ @@ -889,9 +828,9 @@ */ #undef HAVE_DECL_SLEEP -/* Define to 1 if you have the declaration of 'strdup', and to 0 if you don't. +/* Define to 1 if you have the declaration of 'streq', and to 0 if you don't. */ -#undef HAVE_DECL_STRDUP +#undef HAVE_DECL_STREQ /* Define to 1 if you have the declaration of 'strerror_r', and to 0 if you don't. */ @@ -913,10 +852,6 @@ */ #undef HAVE_DECL_WCSDUP -/* Define to 1 if you have the declaration of 'wctob', and to 0 if you don't. - */ -#undef HAVE_DECL_WCTOB - /* Define to 1 if you have the declaration of 'wcwidth', and to 0 if you don't. */ #undef HAVE_DECL_WCWIDTH @@ -933,12 +868,6 @@ */ #undef HAVE_DECL___ARGV -/* Define to 1 if you have the <dirent.h> header file. */ -#undef HAVE_DIRENT_H - -/* Define to 1 if you have the 'dirfd' function. */ -#undef HAVE_DIRFD - /* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H @@ -958,15 +887,9 @@ OpenBSD. */ #undef HAVE_FAKE_LOCALES -/* Define to 1 if you have the 'fchdir' function. */ -#undef HAVE_FCHDIR - /* Define to 1 if you have the 'fcntl' function. */ #undef HAVE_FCNTL -/* Define to 1 if you have the 'fdopendir' function. */ -#undef HAVE_FDOPENDIR - /* Define to 1 if you have the <features.h> header file. */ #undef HAVE_FEATURES_H @@ -982,16 +905,9 @@ /* Define if the frexp function is available in libc. */ #undef HAVE_FREXP_IN_LIBC -/* Define to 1 if you have the 'fstatat' function. */ -#undef HAVE_FSTATAT - /* Define to 1 if you have the `ftruncate' function. */ #undef HAVE_FTRUNCATE -/* Define to 1 if getcwd works, but with shorter paths than is generally - tested with the replacement. */ -#undef HAVE_GETCWD_SHORTER - /* Define to 1 if you have the 'getdtablesize' function. */ #undef HAVE_GETDTABLESIZE @@ -1089,12 +1005,15 @@ /* Define to 1 if you have the 'lstat' function. */ #undef HAVE_LSTAT +/* Define to 1 if malloc (0) returns nonnull. */ +#undef HAVE_MALLOC_0_NONNULL + /* Define if malloc, realloc, and calloc set errno on allocation failure. */ #undef HAVE_MALLOC_POSIX -/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including - config.h and <sys/mman.h>. */ -#undef HAVE_MAP_ANONYMOUS +/* Define to 1 if malloc-like functions do not allocate objects larger than + PTRDIFF_MAX bytes. */ +#undef HAVE_MALLOC_PTRDIFF /* Define to 1 if you have the <math.h> header file. */ #undef HAVE_MATH_H @@ -1111,16 +1030,6 @@ /* Define to 1 if you have the `mbtowc' function. */ #undef HAVE_MBTOWC -/* Define to 1 if you have the `mempcpy' function. */ -#undef HAVE_MEMPCPY - -/* Define to 1 if you have the 'memrchr' function. */ -#undef HAVE_MEMRCHR - -/* Define to 1 if getcwd minimally works, that is, its result can be trusted - when it succeeds. */ -#undef HAVE_MINIMALLY_WORKING_GETCWD - /* Define to 1 if you have the <minix/config.h> header file. */ #undef HAVE_MINIX_CONFIG_H @@ -1130,6 +1039,9 @@ /* 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 a 'mkfifo' function. */ +#undef HAVE_MKFIFO + /* Define to 1 if you have the 'mprotect' function. */ #undef HAVE_MPROTECT @@ -1153,16 +1065,6 @@ /* Define to 1 if you have the `nl_langinfo' function. */ #undef HAVE_NL_LANGINFO -/* Define to 1 if you have the 'openat' function. */ -#undef HAVE_OPENAT - -/* Define to 1 if you have the 'opendir' function. */ -#undef HAVE_OPENDIR - -/* Define to 1 if getcwd works, except it sometimes fails when it shouldn't, - setting errno to ERANGE, ENAMETOOLONG, or ENOENT. */ -#undef HAVE_PARTLY_WORKING_GETCWD - /* Define to 1 if you have the 'pipe' function. */ #undef HAVE_PIPE @@ -1206,14 +1108,11 @@ /* Define to 1 if you have the 'random_r' function. */ #undef HAVE_RANDOM_R -/* Define to 1 if you have the 'readdir' function. */ -#undef HAVE_READDIR - /* Define to 1 if you have the `reallocarray' function. */ #undef HAVE_REALLOCARRAY -/* Define to 1 if you have the 'rewinddir' function. */ -#undef HAVE_REWINDDIR +/* Define to 1 if realloc (..., 0) returns nonnull. */ +#undef HAVE_REALLOC_0_NONNULL /* Define to 1 if 'long double' and 'double' have the same representation. */ #undef HAVE_SAME_LONG_DOUBLE_AS_DOUBLE @@ -1312,6 +1211,12 @@ /* Define to 1 if you have the 'strnlen' function. */ #undef HAVE_STRNLEN +/* Define to 1 if 'decimal_point' is a member of 'struct lconv'. */ +#undef HAVE_STRUCT_LCONV_DECIMAL_POINT + +/* Define to 1 if 'int_p_cs_precedes' is a member of 'struct lconv'. */ +#undef HAVE_STRUCT_LCONV_INT_P_CS_PRECEDES + /* Define to 1 if the system has the type 'struct random_data'. */ #undef HAVE_STRUCT_RANDOM_DATA @@ -1449,6 +1354,9 @@ symbols. */ #undef HAVE_WEAK_SYMBOLS +/* Define to 1 if <locale.h> defines the _locale_t type. */ +#undef HAVE_WINDOWS_LOCALE_T + /* Define to 1 if you have the <winsock2.h> header file. */ #undef HAVE_WINSOCK2_H @@ -1458,17 +1366,16 @@ /* Define if the c32rtomb function basically works. */ #undef HAVE_WORKING_C32RTOMB -/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX - 7.1. */ -#undef HAVE_WORKING_FSTATAT_ZERO_FLAG - /* Define if the mbrtoc32 function basically works. */ #undef HAVE_WORKING_MBRTOC32 -/* Define to 1 if O_NOATIME works. */ +/* Define to 1 if O_DIRECTORY works, 0 otherwise. */ +#undef HAVE_WORKING_O_DIRECTORY + +/* Define to 1 if O_NOATIME works, 0 otherwise. */ #undef HAVE_WORKING_O_NOATIME -/* Define to 1 if O_NOFOLLOW works. */ +/* Define to 1 if O_NOFOLLOW works, 0 otherwise. */ #undef HAVE_WORKING_O_NOFOLLOW /* Define if the uselocale function exists and may safely be called. */ @@ -1494,7 +1401,7 @@ #elif HAVE___BUILTIN_EXPECT == 2 # include <builtins.h> #endif - + /* Define to 1 if you have the `__fseterr' function. */ #undef HAVE___FSETERR @@ -1519,9 +1426,11 @@ 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: + may not work since C99 through C23 prohibit extern inline functions + from calling static functions (ISO C 23 section 6.7.5.(2)). + Although a future C standard will likely relax this restriction + <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3622.txt>, + respect it for now. 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 @@ -1588,8 +1497,8 @@ 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>. */ + <https://gcc.gnu.org/PR54113> and + <https://gcc.gnu.org/PR63877>. */ #if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA @@ -1649,9 +1558,6 @@ /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR -/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ -#undef MALLOC_0_IS_NONNULL - /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ #undef MAP_ANONYMOUS @@ -1678,9 +1584,6 @@ /* Define if the mbrtowc function has the NULL pwc argument bug. */ #undef MBRTOWC_NULL_ARG1_BUG -/* Define if the mbrtowc function has the NULL string argument bug. */ -#undef MBRTOWC_NULL_ARG2_BUG - /* Define if the mbrtowc function does not return 0 for a NUL character. */ #undef MBRTOWC_NUL_RETVAL_BUG @@ -1709,6 +1612,9 @@ 6.2.1. */ #undef MIPS_NAN2008_LONG_DOUBLE +/* Define to 1 if mkfifo does not reject trailing slash */ +#undef MKFIFO_TRAILING_SLASH_BUG + /* Define to 1 on musl libc. */ #undef MUSL_LIBC @@ -1748,6 +1654,10 @@ */ #undef NEED_PRINTF_FLAG_GROUPING +/* Define if the vasnprintf implementation needs special code for the ' flag, + for integer directives only. */ +#undef NEED_PRINTF_FLAG_GROUPING_INT + /* Define if the vasnprintf implementation needs special code for the '-' flag. */ #undef NEED_PRINTF_FLAG_LEFTADJUST @@ -1772,6 +1682,9 @@ large precisions without arbitrary bounds. */ #undef NEED_PRINTF_UNBOUNDED_PRECISION +/* Define to 1 if realloc should abort upon undefined behaviour. */ +#undef NEED_SANITIZED_REALLOC + /* Define to 1 to enable general improvements of setlocale. */ #undef NEED_SETLOCALE_IMPROVED @@ -1832,24 +1745,14 @@ /* Define to 1 if pthread_sigmask may return 0 and have no effect. */ #undef PTHREAD_SIGMASK_INEFFECTIVE -/* Define to 1 if pthread_sigmask() unblocks signals incorrectly. */ -#undef PTHREAD_SIGMASK_UNBLOCK_BUG - /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'ptrdiff_t'. */ #undef PTRDIFF_T_SUFFIX -/* Define to 1 if gnulib's fchdir() replacement is used. */ -#undef REPLACE_FCHDIR - /* Define to 1 if stat needs help when passed a file name with a trailing slash */ #undef REPLACE_FUNC_STAT_FILE -/* Define to 1 if open() should work around the inability to open a directory. - */ -#undef REPLACE_OPEN_DIRECTORY - /* Define to 1 if strerror(0) does not return a message implying success. */ #undef REPLACE_STRERROR_0 @@ -2090,33 +1993,25 @@ /* Define so that AIX headers are more compatible with GNU/Linux. */ #undef _LINUX_SOURCE_COMPAT -/* The _Noreturn keyword of C11. */ +/* The _Noreturn keyword of C11. + Do not use [[noreturn]], because with it the syntax + extern _Noreturn void func (...); + would not be valid; such a declaration would be valid only 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'. So even though C23 deprecates _Noreturn, + it is currently more portable to prefer it to [[noreturn]]. + + Also, do not try to work around LLVM bug 59792 (clang 15 or earlier). + This rare bug can be worked around by compiling with 'clang -D_Noreturn=', + though the workaround may generate many false-alarm warnings. */ #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'. */ -# 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__ \ - && (_GL_GNUC_PREREQ (4, 7) \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) +# if ((!defined __cplusplus || defined __clang__) \ + && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0))) /* _Noreturn works as-is. */ # elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C + /* Prefer __attribute__ ((__noreturn__)) to plain _Noreturn even if the + latter works, as 'gcc -std=gnu99 -Wpedantic' warns about _Noreturn. */ # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) @@ -2126,10 +2021,6 @@ #endif -/* Define to 1 in order to get the POSIX compatible declarations of socket - functions. */ -#undef _POSIX_PII_SOCKET - /* Number of bits in time_t, on hosts where this is settable. */ #undef _TIME_BITS @@ -2190,6 +2081,9 @@ # define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) # else # define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr +/* The following lines list the first GCC version that supports the attribute. + Although the lines are not used in GCC 5 and later (as GCC 5 introduced + __has_attribute support), list GCC versions 5+ anyway for completeness. */ # 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) @@ -2210,14 +2104,15 @@ # endif # define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) # define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) +# define _GL_ATTR_nonnull_if_nonzero _GL_GNUC_PREREQ (15, 1) # 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_reproducible 0 /* not yet supported, as of GCC 14 */ +# define _GL_ATTR_reproducible _GL_GNUC_PREREQ (15, 1) # define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) # define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) -# define _GL_ATTR_unsequenced 0 /* not yet supported, as of GCC 14 */ +# define _GL_ATTR_unsequenced _GL_GNUC_PREREQ (15, 1) # define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) # endif @@ -2245,7 +2140,7 @@ ====================================================================== This gives a syntax error - in C mode with gcc - <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108796>, and + <https://gcc.gnu.org/PR108796>, and - in C++ mode with clang++ version < 16, and - in C++ mode, inside extern "C" {}, still in newer clang++ versions <https://github.com/llvm/llvm-project/issues/101990>. @@ -2527,7 +2422,7 @@ yet. */ #ifndef _GL_ATTRIBUTE_DEALLOC_FREE # if defined __cplusplus && defined __GNUC__ && !defined __clang__ -/* Work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231> */ +/* Work around GCC bug <https://gcc.gnu.org/PR108231> */ # define _GL_ATTRIBUTE_DEALLOC_FREE \ _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) # else @@ -2753,6 +2648,17 @@ # endif #endif +/* _GL_ATTRIBUTE_NONNULL_IF_NONZERO (NP, NI) declares that the argument NP + (a pointer) must not be NULL if the argument NI (an integer) is != 0. */ +/* Applies to: functions. */ +#ifndef _GL_ATTRIBUTE_NONNULL_IF_NONZERO +# if _GL_HAS_ATTRIBUTE (nonnull_if_nonzero) +# define _GL_ATTRIBUTE_NONNULL_IF_NONZERO(np, ni) __attribute__ ((__nonnull_if_nonzero__ (np, ni))) +# else +# define _GL_ATTRIBUTE_NONNULL_IF_NONZERO(np, ni) +# 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 @@ -2839,7 +2745,9 @@ than _GL_ATTRIBUTE_PURE because the function need not return exactly once and can affect state addressed by its arguments.) See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and - <https://stackoverflow.com/questions/76847905/>. */ + <https://stackoverflow.com/questions/76847905/>. + ATTENTION! Efforts are underway to change the meaning of this attribute. + See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */ /* Applies to: functions, pointer to functions, function types. */ #ifndef _GL_ATTRIBUTE_REPRODUCIBLE /* This may be revisited when gcc and clang support [[reproducible]] or possibly @@ -2890,7 +2798,9 @@ _GL_ATTRIBUTE_CONST because the function need not return exactly once and can depend on state addressed by its arguments.) See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and - <https://stackoverflow.com/questions/76847905/>. */ + <https://stackoverflow.com/questions/76847905/>. + ATTENTION! Efforts are underway to change the meaning of this attribute. + See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */ /* Applies to: functions, pointer to functions, function types. */ #ifndef _GL_ATTRIBUTE_UNSEQUENCED /* This may be revisited when gcc and clang support [[unsequenced]] or possibly @@ -2937,7 +2847,7 @@ # if __clang_major__ >= 15 # define _GL_ATTRIBUTE_CAPABILITY_TYPE(concept) \ __attribute__ ((__capability__ (concept))) -#else +# else # define _GL_ATTRIBUTE_CAPABILITY_TYPE(concept) # endif #endif @@ -3005,8 +2915,8 @@ -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. + This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional jump 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))) @@ -3053,20 +2963,20 @@ #undef uid_t - /* This definition is a duplicate of the one in unitypes.h. - It is here so that we can cope with an older version of unitypes.h - that does not contain this definition and that is pre-installed among - the public header files. */ - # if defined __restrict \ - || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ - || __clang_major__ >= 3 - # define _UC_RESTRICT __restrict - # elif 199901L <= __STDC_VERSION__ || defined restrict - # define _UC_RESTRICT restrict - # else - # define _UC_RESTRICT - # endif - +/* This definition is a duplicate of the one in unitypes.h. + It is here so that we can cope with an older version of unitypes.h + that does not contain this definition and that is pre-installed among + the public header files. */ +# if defined __restrict \ + || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ + || __clang_major__ >= 3 +# define _UC_RESTRICT __restrict +# elif 199901L <= __STDC_VERSION__ || defined restrict +# define _UC_RESTRICT restrict +# else +# define _UC_RESTRICT +# endif + /* Define to an unsigned 32-bit type if <sys/types.h> lacks this type. */ #undef useconds_t @@ -3082,10 +2992,10 @@ References: ISO C23 (latest free draft - <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf>) + <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf>) sections 6.5.3.4, 6.7.5, 7.15. C++11 (latest free draft - <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>) + <https://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 @@ -3103,12 +3013,14 @@ 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. */ + <https://gcc.gnu.org/PR52023>. + clang versions < 8.0.0 have the same bug. + IBM XL C V16.1.0 cc (non-clang) has the same bug. */ # if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ && !defined __clang__) \ - || (defined __clang__ && __clang_major__ < 8)) + || (defined __clang__ && __clang_major__ < 8) \ + || defined __xlC__) # undef/**/_Alignof # ifdef __cplusplus # if (201103 <= __cplusplus || defined _MSC_VER) @@ -3179,7 +3091,8 @@ # if ((defined _Alignas \ && !(defined __cplusplus \ && (201103 <= __cplusplus || defined _MSC_VER))) \ - || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) + || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__ \ + && !defined __xlC__)) # define alignas _Alignas # endif # endif @@ -3189,7 +3102,13 @@ # endif #endif -#ifndef HAVE_C_BOOL +#if !(defined __cplusplus \ + ? 1 \ + : (defined __clang__ \ + ? __STDC_VERSION__ >= 202000L && __clang_major__ >= 15 \ + : (defined __GNUC__ \ + ? __STDC_VERSION__ >= 202000L && __GNUC__ >= 13 \ + : defined HAVE_C_BOOL))) # if !defined __cplusplus && !defined __bool_true_false_are_defined # if HAVE_STDBOOL_H # include <stdbool.h> @@ -3206,19 +3125,42 @@ # endif #endif -#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \ +#if (!(defined __clang__ \ + ? (defined __cplusplus \ + ? __cplusplus >= 201703L \ + : __STDC_VERSION__ >= 202000L && __clang_major__ >= 16 \ + && !defined __sun) \ + : (defined __GNUC__ \ + ? (defined __cplusplus \ + ? __cplusplus >= 201103L && __GNUG__ >= 6 \ + : __STDC_VERSION__ >= 202000L && __GNUC__ >= 13 \ + && !defined __sun) \ + : defined HAVE_C_STATIC_ASSERT)) \ + && !defined assert \ && (!defined __cplusplus \ || (__cpp_static_assert < 201411 \ && __GNUG__ < 6 && __clang_major__ < 6))) #include <assert.h> #undef/**/assert - #ifdef __sgi - #undef/**/__ASSERT_H__ - #endif /* Solaris 11.4 <assert.h> defines static_assert as a macro with 2 arguments. - We need it also to be invocable with a single argument. */ - #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus + We need it also to be invocable with a single argument. + Haiku 2022 <assert.h> does not define static_assert at all. */ + #if (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus #undef/**/static_assert #define static_assert _Static_assert #endif #endif + +#if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__ +# pragma GCC diagnostic pop +#endif + + + +/* The text domainname for Gnulib messages. Ordinarily this is "gnulib", + but packages that do their own translations of Gnulib can use something + different by defining GNULIB_TEXT_DOMAIN in their config.h file. */ +#ifndef GNULIB_TEXT_DOMAIN +# define GNULIB_TEXT_DOMAIN/**/"gnulib" +#endif + |