1/* config.in. Generated from configure.ac by autoheader. */ 2 3/* Define if building universal (internal helper macro) */ 4#undef AC_APPLE_UNIVERSAL_BUILD 5 6/* Define to the number of bits in type 'ptrdiff_t'. */ 7#undef BITSIZEOF_PTRDIFF_T 8 9/* Define to the number of bits in type 'sig_atomic_t'. */ 10#undef BITSIZEOF_SIG_ATOMIC_T 11 12/* Define to the number of bits in type 'size_t'. */ 13#undef BITSIZEOF_SIZE_T 14 15/* Define to the number of bits in type 'wchar_t'. */ 16#undef BITSIZEOF_WCHAR_T 17 18/* Define to the number of bits in type 'wint_t'. */ 19#undef BITSIZEOF_WINT_T 20 21/* Define to 1 if using 'alloca.c'. */ 22#undef C_ALLOCA 23 24/* Define as the bit index in the word where to find bit 0 of the exponent of 25 'double'. */ 26#undef DBL_EXPBIT0_BIT 27 28/* Define as the word index where to find the exponent of 'double'. */ 29#undef DBL_EXPBIT0_WORD 30 31/* Define to 1 if translation of program messages to the user's native 32 language is requested. */ 33#undef ENABLE_NLS 34 35/* Define to a C preprocessor expression that evaluates to 1 or 0, depending 36 whether the gnulib module fscanf shall be considered present. */ 37#undef GNULIB_FSCANF 38 39/* Define to 1 if printf and friends should be labeled with attribute 40 "__gnu_printf__" instead of "__printf__" */ 41#undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 42 43/* Define to a C preprocessor expression that evaluates to 1 or 0, depending 44 whether the gnulib module scanf shall be considered present. */ 45#undef GNULIB_SCANF 46 47/* Define to 1 when the gnulib module getdelim should be tested. */ 48#undef GNULIB_TEST_GETDELIM 49 50/* Define to 1 when the gnulib module getline should be tested. */ 51#undef GNULIB_TEST_GETLINE 52 53/* Define to 1 when the gnulib module memchr should be tested. */ 54#undef GNULIB_TEST_MEMCHR 55 56/* Define to 1 when the gnulib module rawmemchr should be tested. */ 57#undef GNULIB_TEST_RAWMEMCHR 58 59/* Define to 1 when the gnulib module strchrnul should be tested. */ 60#undef GNULIB_TEST_STRCHRNUL 61 62/* Define to 1 when the gnulib module strndup should be tested. */ 63#undef GNULIB_TEST_STRNDUP 64 65/* Define to 1 when the gnulib module strnlen should be tested. */ 66#undef GNULIB_TEST_STRNLEN 67 68/* Define to 1 when the gnulib module vasprintf should be tested. */ 69#undef GNULIB_TEST_VASPRINTF 70 71/* Define to 1 if you have 'alloca' after including <alloca.h>, a header that 72 may be supplied by this distribution. */ 73#undef HAVE_ALLOCA 74 75/* Define to 1 if <alloca.h> works. */ 76#undef HAVE_ALLOCA_H 77 78/* Define to 1 if you have the <bp-sym.h> header file. */ 79#undef HAVE_BP_SYM_H 80 81/* Define to 1 if you have the Mac OS X function 82 CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ 83#undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES 84 85/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in 86 the CoreFoundation framework. */ 87#undef HAVE_CFPREFERENCESCOPYAPPVALUE 88 89/* Define to 1 if you have the <crtdefs.h> header file. */ 90#undef HAVE_CRTDEFS_H 91 92/* Define if the GNU dcgettext() function is already present or preinstalled. 93 */ 94#undef HAVE_DCGETTEXT 95 96/* Define to 1 if you have the declaration of `fcloseall', and to 0 if you 97 don't. */ 98#undef HAVE_DECL_FCLOSEALL 99 100/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you 101 don't. */ 102#undef HAVE_DECL_GETC_UNLOCKED 103 104/* Define to 1 if you have the declaration of `getdelim', and to 0 if you 105 don't. */ 106#undef HAVE_DECL_GETDELIM 107 108/* Define to 1 if you have the declaration of `getline', and to 0 if you 109 don't. */ 110#undef HAVE_DECL_GETLINE 111 112/* Define to 1 if you have the declaration of `strndup', and to 0 if you 113 don't. */ 114#undef HAVE_DECL_STRNDUP 115 116/* Define to 1 if you have the declaration of `strnlen', and to 0 if you 117 don't. */ 118#undef HAVE_DECL_STRNLEN 119 120/* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't. 121 */ 122#undef HAVE_DECL_WCSDUP 123 124/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you 125 don't. */ 126#undef HAVE_DECL__SNPRINTF 127 128/* Define to 1 if you have the <dlfcn.h> header file. */ 129#undef HAVE_DLFCN_H 130 131/* Define to 1 if you have the <features.h> header file. */ 132#undef HAVE_FEATURES_H 133 134/* Define to 1 if you have the `flockfile' function. */ 135#undef HAVE_FLOCKFILE 136 137/* Define to 1 if you have the `funlockfile' function. */ 138#undef HAVE_FUNLOCKFILE 139 140/* Define to 1 if you have the `getdelim' function. */ 141#undef HAVE_GETDELIM 142 143/* Define if the GNU gettext() function is already present or preinstalled. */ 144#undef HAVE_GETTEXT 145 146/* Define if you have the iconv() function and it works. */ 147#undef HAVE_ICONV 148 149/* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */ 150#undef HAVE_INTMAX_T 151 152/* Define to 1 if you have the <inttypes.h> header file. */ 153#undef HAVE_INTTYPES_H 154 155/* Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, and 156 declares uintmax_t. */ 157#undef HAVE_INTTYPES_H_WITH_UINTMAX 158 159/* Define to 1 if you have the <limits.h> header file. */ 160#undef HAVE_LIMITS_H 161 162/* Define to 1 if the system has the type 'long long int'. */ 163#undef HAVE_LONG_LONG_INT 164 165/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including 166 config.h and <sys/mman.h>. */ 167#undef HAVE_MAP_ANONYMOUS 168 169/* Define to 1 if you have the `mbrtowc' function. */ 170#undef HAVE_MBRTOWC 171 172/* Define to 1 if you have the <minix/config.h> header file. */ 173#undef HAVE_MINIX_CONFIG_H 174 175/* Define to 1 if you have the `mprotect' function. */ 176#undef HAVE_MPROTECT 177 178/* Define to 1 if you have the `rawmemchr' function. */ 179#undef HAVE_RAWMEMCHR 180 181/* Define to 1 if 'sig_atomic_t' is a signed integer type. */ 182#undef HAVE_SIGNED_SIG_ATOMIC_T 183 184/* Define to 1 if 'wchar_t' is a signed integer type. */ 185#undef HAVE_SIGNED_WCHAR_T 186 187/* Define to 1 if 'wint_t' is a signed integer type. */ 188#undef HAVE_SIGNED_WINT_T 189 190/* Define to 1 if you have the `snprintf' function. */ 191#undef HAVE_SNPRINTF 192 193/* Define if the return value of the snprintf function is the number of of 194 bytes (excluding the terminating NUL) that would have been produced if the 195 buffer had been large enough. */ 196#undef HAVE_SNPRINTF_RETVAL_C99 197 198/* Define if the string produced by the snprintf function is always NUL 199 terminated. */ 200#undef HAVE_SNPRINTF_TRUNCATION_C99 201 202/* Define to 1 if you have the <stdint.h> header file. */ 203#undef HAVE_STDINT_H 204 205/* Define if <stdint.h> exists, doesn't clash with <sys/types.h>, and declares 206 uintmax_t. */ 207#undef HAVE_STDINT_H_WITH_UINTMAX 208 209/* Define to 1 if you have the <stdio.h> header file. */ 210#undef HAVE_STDIO_H 211 212/* Define to 1 if you have the <stdlib.h> header file. */ 213#undef HAVE_STDLIB_H 214 215/* Define to 1 if you have the `strchrnul' function. */ 216#undef HAVE_STRCHRNUL 217 218/* Define to 1 if you have the <strings.h> header file. */ 219#undef HAVE_STRINGS_H 220 221/* Define to 1 if you have the <string.h> header file. */ 222#undef HAVE_STRING_H 223 224/* Define to 1 if you have the `strndup' function. */ 225#undef HAVE_STRNDUP 226 227/* Define to 1 if you have the `strnlen' function. */ 228#undef HAVE_STRNLEN 229 230/* Define to 1 if you have the <sys/bitypes.h> header file. */ 231#undef HAVE_SYS_BITYPES_H 232 233/* Define to 1 if you have the <sys/inttypes.h> header file. */ 234#undef HAVE_SYS_INTTYPES_H 235 236/* Define to 1 if you have the <sys/mman.h> header file. */ 237#undef HAVE_SYS_MMAN_H 238 239/* Define to 1 if you have the <sys/stat.h> header file. */ 240#undef HAVE_SYS_STAT_H 241 242/* Define to 1 if you have the <sys/types.h> header file. */ 243#undef HAVE_SYS_TYPES_H 244 245/* Define to 1 if you have the <unistd.h> header file. */ 246#undef HAVE_UNISTD_H 247 248/* Define to 1 if the system has the type 'unsigned long long int'. */ 249#undef HAVE_UNSIGNED_LONG_LONG_INT 250 251/* Define to 1 if you have the `vasnprintf' function. */ 252#undef HAVE_VASNPRINTF 253 254/* Define to 1 if you have the `vasprintf' function. */ 255#undef HAVE_VASPRINTF 256 257/* Define to 1 if you have the <wchar.h> header file. */ 258#undef HAVE_WCHAR_H 259 260/* Define if you have the 'wchar_t' type. */ 261#undef HAVE_WCHAR_T 262 263/* Define to 1 if you have the `wcrtomb' function. */ 264#undef HAVE_WCRTOMB 265 266/* Define to 1 if you have the `wcslen' function. */ 267#undef HAVE_WCSLEN 268 269/* Define to 1 if you have the `wcsnlen' function. */ 270#undef HAVE_WCSNLEN 271 272/* Define if you have the 'wint_t' type. */ 273#undef HAVE_WINT_T 274 275/* Define as const if the declaration of iconv() needs const. */ 276#undef ICONV_CONST 277 278/* Define to the sub-directory where libtool stores uninstalled libraries. */ 279#undef LT_OBJDIR 280 281/* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ 282#undef MAP_ANONYMOUS 283 284/* Use GNU style printf and scanf. */ 285#ifndef __USE_MINGW_ANSI_STDIO 286# undef __USE_MINGW_ANSI_STDIO 287#endif 288 289 290/* Name of package */ 291#undef PACKAGE 292 293/* Define to the address where bug reports for this package should be sent. */ 294#undef PACKAGE_BUGREPORT 295 296/* Define to the full name of this package. */ 297#undef PACKAGE_NAME 298 299/* Define to the full name and version of this package. */ 300#undef PACKAGE_STRING 301 302/* Define to the one symbol short name of this package. */ 303#undef PACKAGE_TARNAME 304 305/* Define to the home page for this package. */ 306#undef PACKAGE_URL 307 308/* Define to the version of this package. */ 309#undef PACKAGE_VERSION 310 311/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 312 'ptrdiff_t'. */ 313#undef PTRDIFF_T_SUFFIX 314 315/* Define if vasnprintf exists but is overridden by gnulib. */ 316#undef REPLACE_VASNPRINTF 317 318/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 319 'sig_atomic_t'. */ 320#undef SIG_ATOMIC_T_SUFFIX 321 322/* Define as the maximum value of type 'size_t', if the system doesn't define 323 it. */ 324#ifndef SIZE_MAX 325# undef SIZE_MAX 326#endif 327 328/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 329 'size_t'. */ 330#undef SIZE_T_SUFFIX 331 332/* If using the C implementation of alloca, define if you know the 333 direction of stack growth for your system; otherwise it will be 334 automatically deduced at runtime. 335 STACK_DIRECTION > 0 => grows toward higher addresses 336 STACK_DIRECTION < 0 => grows toward lower addresses 337 STACK_DIRECTION = 0 => direction of growth unknown */ 338#undef STACK_DIRECTION 339 340/* Define to 1 if all of the C90 standard headers exist (not just the ones 341 required in a freestanding environment). This macro is provided for 342 backward compatibility; new code need not use it. */ 343#undef STDC_HEADERS 344 345/* Enable extensions on AIX 3, Interix. */ 346#ifndef _ALL_SOURCE 347# undef _ALL_SOURCE 348#endif 349/* Enable general extensions on macOS. */ 350#ifndef _DARWIN_C_SOURCE 351# undef _DARWIN_C_SOURCE 352#endif 353/* Enable general extensions on Solaris. */ 354#ifndef __EXTENSIONS__ 355# undef __EXTENSIONS__ 356#endif 357/* Enable GNU extensions on systems that have them. */ 358#ifndef _GNU_SOURCE 359# undef _GNU_SOURCE 360#endif 361/* Enable X/Open compliant socket functions that do not require linking 362 with -lxnet on HP-UX 11.11. */ 363#ifndef _HPUX_ALT_XOPEN_SOCKET_API 364# undef _HPUX_ALT_XOPEN_SOCKET_API 365#endif 366/* Identify the host operating system as Minix. 367 This macro does not affect the system headers' behavior. 368 A future release of Autoconf may stop defining this macro. */ 369#ifndef _MINIX 370# undef _MINIX 371#endif 372/* Enable general extensions on NetBSD. 373 Enable NetBSD compatibility extensions on Minix. */ 374#ifndef _NETBSD_SOURCE 375# undef _NETBSD_SOURCE 376#endif 377/* Enable OpenBSD compatibility extensions on NetBSD. 378 Oddly enough, this does nothing on OpenBSD. */ 379#ifndef _OPENBSD_SOURCE 380# undef _OPENBSD_SOURCE 381#endif 382/* Define to 1 if needed for POSIX-compatible behavior. */ 383#ifndef _POSIX_SOURCE 384# undef _POSIX_SOURCE 385#endif 386/* Define to 2 if needed for POSIX-compatible behavior. */ 387#ifndef _POSIX_1_SOURCE 388# undef _POSIX_1_SOURCE 389#endif 390/* Enable POSIX-compatible threading on Solaris. */ 391#ifndef _POSIX_PTHREAD_SEMANTICS 392# undef _POSIX_PTHREAD_SEMANTICS 393#endif 394/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ 395#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 396# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 397#endif 398/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ 399#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ 400# undef __STDC_WANT_IEC_60559_BFP_EXT__ 401#endif 402/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ 403#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ 404# undef __STDC_WANT_IEC_60559_DFP_EXT__ 405#endif 406/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ 407#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ 408# undef __STDC_WANT_IEC_60559_FUNCS_EXT__ 409#endif 410/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ 411#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ 412# undef __STDC_WANT_IEC_60559_TYPES_EXT__ 413#endif 414/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ 415#ifndef __STDC_WANT_LIB_EXT2__ 416# undef __STDC_WANT_LIB_EXT2__ 417#endif 418/* Enable extensions specified by ISO/IEC 24747:2009. */ 419#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ 420# undef __STDC_WANT_MATH_SPEC_FUNCS__ 421#endif 422/* Enable extensions on HP NonStop. */ 423#ifndef _TANDEM_SOURCE 424# undef _TANDEM_SOURCE 425#endif 426/* Enable X/Open extensions. Define to 500 only if necessary 427 to make mbstate_t available. */ 428#ifndef _XOPEN_SOURCE 429# undef _XOPEN_SOURCE 430#endif 431 432 433/* Version number of package */ 434#undef VERSION 435 436/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 437 'wchar_t'. */ 438#undef WCHAR_T_SUFFIX 439 440/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 441 'wint_t'. */ 442#undef WINT_T_SUFFIX 443 444/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most 445 significant byte first (like Motorola and SPARC, unlike Intel). */ 446#if defined AC_APPLE_UNIVERSAL_BUILD 447# if defined __BIG_ENDIAN__ 448# define WORDS_BIGENDIAN 1 449# endif 450#else 451# ifndef WORDS_BIGENDIAN 452# undef WORDS_BIGENDIAN 453# endif 454#endif 455 456/* True if the compiler says it groks GNU C version MAJOR.MINOR. */ 457#if defined __GNUC__ && defined __GNUC_MINOR__ 458# define _GL_GNUC_PREREQ(major, minor) \ 459 ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) 460#else 461# define _GL_GNUC_PREREQ(major, minor) 0 462#endif 463 464 465/* Define to enable the declarations of ISO C 11 types and functions. */ 466#undef _ISOC11_SOURCE 467 468/* The _Noreturn keyword of C11. */ 469#ifndef _Noreturn 470# if (defined __cplusplus \ 471 && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ 472 || (defined _MSC_VER && 1900 <= _MSC_VER)) \ 473 && 0) 474 /* [[noreturn]] is not practically usable, because with it the syntax 475 extern _Noreturn void func (...); 476 would not be valid; such a declaration would only be valid with 'extern' 477 and '_Noreturn' swapped, or without the 'extern' keyword. However, some 478 AIX system header files and several gnulib header files use precisely 479 this syntax with 'extern'. */ 480# define _Noreturn [[noreturn]] 481# elif ((!defined __cplusplus || defined __clang__) \ 482 && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ 483 || (!defined __STRICT_ANSI__ \ 484 && (_GL_GNUC_PREREQ (4, 7) \ 485 || (defined __apple_build_version__ \ 486 ? 6000000 <= __apple_build_version__ \ 487 : 3 < __clang_major__ + (5 <= __clang_minor__)))))) 488 /* _Noreturn works as-is. */ 489# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C 490# define _Noreturn __attribute__ ((__noreturn__)) 491# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) 492# define _Noreturn __declspec (noreturn) 493# else 494# define _Noreturn 495# endif 496#endif 497 498 499/* For standard stat data types on VMS. */ 500#undef _USE_STD_STAT 501 502/* Define to 1 if the system <stdint.h> predates C++11. */ 503#undef __STDC_CONSTANT_MACROS 504 505/* Define to 1 if the system <stdint.h> predates C++11. */ 506#undef __STDC_LIMIT_MACROS 507 508/* The _GL_ASYNC_SAFE marker should be attached to functions that are 509 signal handlers (for signals other than SIGABRT, SIGPIPE) or can be 510 invoked from such signal handlers. Such functions have some restrictions: 511 * All functions that it calls should be marked _GL_ASYNC_SAFE as well, 512 or should be listed as async-signal-safe in POSIX 513 <https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04> 514 section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in 515 particular, are NOT async-signal-safe. 516 * All memory locations (variables and struct fields) that these functions 517 access must be marked 'volatile'. This holds for both read and write 518 accesses. Otherwise the compiler might optimize away stores to and 519 reads from such locations that occur in the program, depending on its 520 data flow analysis. For example, when the program contains a loop 521 that is intended to inspect a variable set from within a signal handler 522 while (!signal_occurred) 523 ; 524 the compiler is allowed to transform this into an endless loop if the 525 variable 'signal_occurred' is not declared 'volatile'. 526 Additionally, recall that: 527 * A signal handler should not modify errno (except if it is a handler 528 for a fatal signal and ends by raising the same signal again, thus 529 provoking the termination of the process). If it invokes a function 530 that may clobber errno, it needs to save and restore the value of 531 errno. */ 532#define _GL_ASYNC_SAFE 533 534 535/* Attributes. */ 536#if (defined __has_attribute \ 537 && (!defined __clang_minor__ \ 538 || 3 < __clang_major__ + (5 <= __clang_minor__))) 539# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) 540#else 541# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr 542# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) 543# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) 544# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) 545# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) 546# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) 547# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) 548# define _GL_ATTR_diagnose_if 0 549# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) 550# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) 551# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) 552# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) 553# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) 554# ifdef _ICC 555# define _GL_ATTR_may_alias 0 556# else 557# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) 558# endif 559# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) 560# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) 561# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) 562# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) 563# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) 564# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) 565# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) 566# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) 567# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) 568# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) 569# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) 570#endif 571 572 573#if _GL_HAS_ATTRIBUTE (alloc_size) 574# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) 575#else 576# define _GL_ATTRIBUTE_ALLOC_SIZE(args) 577#endif 578 579#if _GL_HAS_ATTRIBUTE (always_inline) 580# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) 581#else 582# define _GL_ATTRIBUTE_ALWAYS_INLINE 583#endif 584 585#if _GL_HAS_ATTRIBUTE (artificial) 586# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) 587#else 588# define _GL_ATTRIBUTE_ARTIFICIAL 589#endif 590 591/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at 592 <https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>. 593 Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ 594#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ 595# ifndef __SUNPRO_C 596# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) 597# else 598# define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) 599# endif 600#else 601# define _GL_ATTRIBUTE_COLD 602#endif 603 604#if _GL_HAS_ATTRIBUTE (const) 605# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) 606#else 607# define _GL_ATTRIBUTE_CONST 608#endif 609 610#if 201710L < __STDC_VERSION__ 611# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] 612#elif _GL_HAS_ATTRIBUTE (deprecated) 613# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) 614#else 615# define _GL_ATTRIBUTE_DEPRECATED 616#endif 617 618#if _GL_HAS_ATTRIBUTE (error) 619# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) 620# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) 621#elif _GL_HAS_ATTRIBUTE (diagnose_if) 622# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) 623# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) 624#else 625# define _GL_ATTRIBUTE_ERROR(msg) 626# define _GL_ATTRIBUTE_WARNING(msg) 627#endif 628 629#if _GL_HAS_ATTRIBUTE (externally_visible) 630# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) 631#else 632# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE 633#endif 634 635/* FALLTHROUGH is special, because it always expands to something. */ 636#if 201710L < __STDC_VERSION__ 637# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] 638#elif _GL_HAS_ATTRIBUTE (fallthrough) 639# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) 640#else 641# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) 642#endif 643 644#if _GL_HAS_ATTRIBUTE (format) 645# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) 646#else 647# define _GL_ATTRIBUTE_FORMAT(spec) 648#endif 649 650#if _GL_HAS_ATTRIBUTE (leaf) 651# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) 652#else 653# define _GL_ATTRIBUTE_LEAF 654#endif 655 656/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ 657#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C 658# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) 659#else 660# define _GL_ATTRIBUTE_MAY_ALIAS 661#endif 662 663#if 201710L < __STDC_VERSION__ 664# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] 665#elif _GL_HAS_ATTRIBUTE (unused) 666# define _GL_ATTRIBUTE_MAYBE_UNUSED __attribute__ ((__unused__)) 667#else 668# define _GL_ATTRIBUTE_MAYBE_UNUSED 669#endif 670/* Earlier spellings of this macro. */ 671#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED 672#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED 673 674#if _GL_HAS_ATTRIBUTE (malloc) 675# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) 676#else 677# define _GL_ATTRIBUTE_MALLOC 678#endif 679 680#if 201710L < __STDC_VERSION__ 681# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] 682#elif _GL_HAS_ATTRIBUTE (warn_unused_result) 683# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) 684#else 685# define _GL_ATTRIBUTE_NODISCARD 686#endif 687 688#if _GL_HAS_ATTRIBUTE (noinline) 689# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) 690#else 691# define _GL_ATTRIBUTE_NOINLINE 692#endif 693 694#if _GL_HAS_ATTRIBUTE (nonnull) 695# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) 696#else 697# define _GL_ATTRIBUTE_NONNULL(args) 698#endif 699 700#if _GL_HAS_ATTRIBUTE (nonstring) 701# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) 702#else 703# define _GL_ATTRIBUTE_NONSTRING 704#endif 705 706/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ 707 708#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus 709# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) 710#else 711# define _GL_ATTRIBUTE_NOTHROW 712#endif 713 714#if _GL_HAS_ATTRIBUTE (packed) 715# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) 716#else 717# define _GL_ATTRIBUTE_PACKED 718#endif 719 720#if _GL_HAS_ATTRIBUTE (pure) 721# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) 722#else 723# define _GL_ATTRIBUTE_PURE 724#endif 725 726#if _GL_HAS_ATTRIBUTE (returns_nonnull) 727# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) 728#else 729# define _GL_ATTRIBUTE_RETURNS_NONNULL 730#endif 731 732#if _GL_HAS_ATTRIBUTE (sentinel) 733# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) 734#else 735# define _GL_ATTRIBUTE_SENTINEL(pos) 736#endif 737 738 739/* To support C++ as well as C, use _GL_UNUSED_LABEL with trailing ';'. */ 740#if !defined __cplusplus || _GL_GNUC_PREREQ (4, 5) 741# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_MAYBE_UNUSED 742#else 743# define _GL_UNUSED_LABEL 744#endif 745 746 747/* Please see the Gnulib manual for how to use these macros. 748 749 Suppress extern inline with HP-UX cc, as it appears to be broken; see 750 <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>. 751 752 Suppress extern inline with Sun C in standards-conformance mode, as it 753 mishandles inline functions that call each other. E.g., for 'inline void f 754 (void) { } inline void g (void) { f (); }', c99 incorrectly complains 755 'reference to static identifier "f" in extern inline function'. 756 This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. 757 758 Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) 759 on configurations that mistakenly use 'static inline' to implement 760 functions or macros in standard C headers like <ctype.h>. For example, 761 if isdigit is mistakenly implemented via a static inline function, 762 a program containing an extern inline function that calls isdigit 763 may not work since the C standard prohibits extern inline functions 764 from calling static functions (ISO C 99 section 6.7.4.(3). 765 This bug is known to occur on: 766 767 OS X 10.8 and earlier; see: 768 https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html 769 770 DragonFly; see 771 http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log 772 773 FreeBSD; see: 774 https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html 775 776 OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and 777 for clang but remains for g++; see <https://trac.macports.org/ticket/41033>. 778 Assume DragonFly and FreeBSD will be similar. 779 780 GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 781 inline semantics, unless -fgnu89-inline is used. It defines a macro 782 __GNUC_STDC_INLINE__ to indicate this situation or a macro 783 __GNUC_GNU_INLINE__ to indicate the opposite situation. 784 GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline 785 semantics but warns, unless -fgnu89-inline is used: 786 warning: C99 inline functions are not supported; using GNU89 787 warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute 788 It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. 789 */ 790#if (((defined __APPLE__ && defined __MACH__) \ 791 || defined __DragonFly__ || defined __FreeBSD__) \ 792 && (defined __header_inline \ 793 ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ 794 && ! defined __clang__) \ 795 : ((! defined _DONT_USE_CTYPE_INLINE_ \ 796 && (defined __GNUC__ || defined __cplusplus)) \ 797 || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ 798 && defined __GNUC__ && ! defined __cplusplus)))) 799# define _GL_EXTERN_INLINE_STDHEADER_BUG 800#endif 801#if ((__GNUC__ \ 802 ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ 803 : (199901L <= __STDC_VERSION__ \ 804 && !defined __HP_cc \ 805 && !defined __PGI \ 806 && !(defined __SUNPRO_C && __STDC__))) \ 807 && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) 808# define _GL_INLINE inline 809# define _GL_EXTERN_INLINE extern inline 810# define _GL_EXTERN_INLINE_IN_USE 811#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ 812 && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) 813# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ 814 /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ 815# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) 816# else 817# define _GL_INLINE extern inline 818# endif 819# define _GL_EXTERN_INLINE extern 820# define _GL_EXTERN_INLINE_IN_USE 821#else 822# define _GL_INLINE static _GL_UNUSED 823# define _GL_EXTERN_INLINE static _GL_UNUSED 824#endif 825 826/* In GCC 4.6 (inclusive) to 5.1 (exclusive), 827 suppress bogus "no previous prototype for 'FOO'" 828 and "no previous declaration for 'FOO'" diagnostics, 829 when FOO is an inline function in the header; see 830 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and 831 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */ 832#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ 833# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ 834# define _GL_INLINE_HEADER_CONST_PRAGMA 835# else 836# define _GL_INLINE_HEADER_CONST_PRAGMA \ 837 _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") 838# endif 839# define _GL_INLINE_HEADER_BEGIN \ 840 _Pragma ("GCC diagnostic push") \ 841 _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ 842 _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ 843 _GL_INLINE_HEADER_CONST_PRAGMA 844# define _GL_INLINE_HEADER_END \ 845 _Pragma ("GCC diagnostic pop") 846#else 847# define _GL_INLINE_HEADER_BEGIN 848# define _GL_INLINE_HEADER_END 849#endif 850 851/* Define to long or long long if <stdint.h> and <inttypes.h> don't define. */ 852#undef intmax_t 853 854/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports 855 the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of 856 earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. 857 __APPLE__ && __MACH__ test for Mac OS X. 858 __APPLE_CC__ tests for the Apple compiler and its version. 859 __STDC_VERSION__ tests for the C99 mode. */ 860#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ 861# define __GNUC_STDC_INLINE__ 1 862#endif 863 864/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where 865 n1 and n2 are expressions without side effects, that evaluate to real 866 numbers (excluding NaN). 867 It returns 868 1 if n1 > n2 869 0 if n1 == n2 870 -1 if n1 < n2 871 The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional 872 jump with nearly all GCC versions up to GCC 10. 873 This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many 874 GCC versions up to GCC 9. 875 The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 876 avoids conditional jumps in all GCC versions >= 3.4. */ 877#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) 878 879 880/* Define to `int' if <sys/types.h> does not define. */ 881#undef mode_t 882 883/* Define as a signed integer type capable of holding a process identifier. */ 884#undef pid_t 885 886/* Define as the type of the result of subtracting two pointers, if the system 887 doesn't define it. */ 888#undef ptrdiff_t 889 890/* Define to the equivalent of the C99 'restrict' keyword, or to 891 nothing if this is not supported. Do not define if restrict is 892 supported only directly. */ 893#undef restrict 894/* Work around a bug in older versions of Sun C++, which did not 895 #define __restrict__ or support _Restrict or __restrict__ 896 even though the corresponding Sun C compiler ended up with 897 "#define restrict _Restrict" or "#define restrict __restrict__" 898 in the previous line. This workaround can be removed once 899 we assume Oracle Developer Studio 12.5 (2016) or later. */ 900#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ 901# define _Restrict 902# define __restrict__ 903#endif 904 905/* Define to `unsigned int' if <sys/types.h> does not define. */ 906#undef size_t 907 908/* Define as a signed type of the same size as size_t. */ 909#undef ssize_t 910