pacemaker 2.1.5-a3f44794f94
Scalable High-Availability cluster resource manager
config.h
Go to the documentation of this file.
1/* include/config.h. Generated from config.h.in by configure. */
2/* include/config.h.in. Generated from configure.ac by autoheader. */
3
4/* Define if building universal (internal helper macro) */
5/* #undef AC_APPLE_UNIVERSAL_BUILD */
6
7/* Build version */
8#define BUILD_VERSION "a3f44794f94"
9
10/* Where to keep blackbox dumps */
11#define CRM_BLACKBOX_DIR "/var/lib/pacemaker/blackbox"
12
13/* Location for Pacemaker bundle logs */
14#define CRM_BUNDLE_DIR "/var/log/pacemaker/bundles"
15
16/* Where to keep configuration files */
17#define CRM_CONFIG_DIR "/var/lib/pacemaker/cib"
18
19/* Directory Pacemaker daemons should change to (without systemd, core files
20 will go here) */
21#define CRM_CORE_DIR "/var/lib/pacemaker/cores"
22
23/* Location for Pacemaker daemons */
24#define CRM_DAEMON_DIR "/usr/lib/pacemaker"
25
26/* Group to run Pacemaker daemons as */
27#define CRM_DAEMON_GROUP "haclient"
28
29/* User to run Pacemaker daemons as */
30#define CRM_DAEMON_USER "hacluster"
31
32/* Set of enabled features */
33#define CRM_FEATURES "agent-manpages ascii-docs books cibsecrets corosync-ge-2 generated-manpages lha monotonic nagios ncurses remote systemd"
34
35/* Location for Pacemaker log file */
36#define CRM_LOG_DIR "/var/log/pacemaker"
37
38/* Location to store directory produced by Pacemaker daemons */
39#define CRM_PACEMAKER_DIR "/var/lib/pacemaker"
40
41/* Where resource agents should keep state files */
42#define CRM_RSCTMP_DIR "/run/resource-agents"
43
44/* Location for the Pacemaker Relax-NG Schema */
45#define CRM_SCHEMA_DIRECTORY "/usr/share/pacemaker"
46
47/* Where to keep state files and sockets */
48#define CRM_STATE_DIR "/run/crm"
49
50/* Define to 1 if translation of program messages to the user's native
51 language is requested. */
52/* #undef ENABLE_NLS */
53
54/* Define to 1 if you have the `alphasort' function. */
55#define HAVE_ALPHASORT 1
56
57/* Define to 1 if you have the `argz_add' function. */
58#define HAVE_ARGZ_ADD 1
59
60/* Define to 1 if you have the `argz_append' function. */
61#define HAVE_ARGZ_APPEND 1
62
63/* Define to 1 if you have the `argz_count' function. */
64#define HAVE_ARGZ_COUNT 1
65
66/* Define to 1 if you have the `argz_create_sep' function. */
67#define HAVE_ARGZ_CREATE_SEP 1
68
69/* Define to 1 if you have the <argz.h> header file. */
70#define HAVE_ARGZ_H 1
71
72/* Define to 1 if you have the `argz_insert' function. */
73#define HAVE_ARGZ_INSERT 1
74
75/* Define to 1 if you have the `argz_next' function. */
76#define HAVE_ARGZ_NEXT 1
77
78/* Define to 1 if you have the `argz_stringify' function. */
79#define HAVE_ARGZ_STRINGIFY 1
80
81/* Define to 1 if you have the <arpa/inet.h> header file. */
82#define HAVE_ARPA_INET_H 1
83
84/* Define to 1 if you have the <byteswap.h> header file. */
85#define HAVE_BYTESWAP_H 1
86
87/* Define to 1 if you have the <bzlib.h> header file. */
88#define HAVE_BZLIB_H 1
89
90/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
91 CoreFoundation framework. */
92/* #undef HAVE_CFLOCALECOPYCURRENT */
93
94/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
95 the CoreFoundation framework. */
96/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
97
98/* Define to 1 if you have the `closedir' function. */
99#define HAVE_CLOSEDIR 1
100
101/* Define to 1 if you have the `corosync_cfg_trackstart' function. */
102#define HAVE_COROSYNC_CFG_TRACKSTART 1
103
104/* Define to 1 if you have the <ctype.h> header file. */
105#define HAVE_CTYPE_H 1
106
107/* Define to 1 if you have the <curses/curses.h> header file. */
108/* #undef HAVE_CURSES_CURSES_H */
109
110/* Define to 1 if you have the <curses.h> header file. */
111#define HAVE_CURSES_H 1
112
113/* Support dbus */
114#define HAVE_DBUS 1
115
116/* Define to 1 if the system has the type `DBusBasicValue'. */
117#define HAVE_DBUSBASICVALUE 1
118
119/* Define if the GNU dcgettext() function is already present or preinstalled.
120 */
121/* #undef HAVE_DCGETTEXT */
122
123/* Define to 1 if you have the declaration of `assert_float_equal', and to 0
124 if you don't. */
125#define HAVE_DECL_ASSERT_FLOAT_EQUAL 1
126
127/* Define to 1 if you have the declaration of `CLOCK_MONOTONIC', and to 0 if
128 you don't. */
129#define HAVE_DECL_CLOCK_MONOTONIC 1
130
131/* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if
132 you don't. */
133/* #undef HAVE_DECL_CYGWIN_CONV_PATH */
134
135/* Define to 1 if you have the <dirent.h> header file. */
136#define HAVE_DIRENT_H 1
137
138/* Define if you have the GNU dld library. */
139/* #undef HAVE_DLD */
140
141/* Define to 1 if you have the <dld.h> header file. */
142/* #undef HAVE_DLD_H */
143
144/* Define to 1 if you have the `dlerror' function. */
145#define HAVE_DLERROR 1
146
147/* Define to 1 if you have the <dlfcn.h> header file. */
148#define HAVE_DLFCN_H 1
149
150/* Define to 1 if you have the <dl.h> header file. */
151/* #undef HAVE_DL_H */
152
153/* Define if you have the _dyld_func_lookup function. */
154/* #undef HAVE_DYLD */
155
156/* Define to 1 if you have the <errno.h> header file. */
157#define HAVE_ERRNO_H 1
158
159/* Define to 1 if the system has the type `error_t'. */
160#define HAVE_ERROR_T 1
161
162/* gcc can complain about nonliterals in format */
163#define HAVE_FORMAT_NONLITERAL
164
165/* Define to 1 if you have the <getopt.h> header file. */
166#define HAVE_GETOPT_H 1
167
168/* Define if Unix socket auth method is getpeereid(s, &uid, &gid) */
169/* #undef HAVE_GETPEEREID */
170
171/* Define if Unix socket auth method is getpeercred(s, &ucred) */
172/* #undef HAVE_GETPEERUCRED */
173
174/* Define if the GNU gettext() function is already present or preinstalled. */
175/* #undef HAVE_GETTEXT */
176
177/* Define to 1 if you have the <glib.h> header file. */
178#define HAVE_GLIB_H 1
179
180/* Define to 1 if you have the <gnutls/gnutls.h> header file. */
181#define HAVE_GNUTLS_GNUTLS_H 1
182
183/* Define to 1 if you have the <grp.h> header file. */
184#define HAVE_GRP_H 1
185
186/* Define if you have the iconv() function and it works. */
187/* #undef HAVE_ICONV */
188
189/* Define to 1 if curses library has incompatible printw() */
190/* #undef HAVE_INCOMPATIBLE_PRINTW */
191
192/* Define to 1 if you have the <inttypes.h> header file. */
193#define HAVE_INTTYPES_H 1
194
195/* Define to 1 if you have the `asan' library (-lasan). */
196/* #undef HAVE_LIBASAN */
197
198/* Define to 1 if you have the `bz2' library (-lbz2). */
199#define HAVE_LIBBZ2 1
200
201/* Define to 1 if you have the `c' library (-lc). */
202#define HAVE_LIBC 1
203
204/* have curses library */
205/* #undef HAVE_LIBCURSES */
206
207/* Define to 1 if you have the `dl' library (-ldl). */
208#define HAVE_LIBDL 1
209
210/* Define if libdlloader will be built on this platform */
211#define HAVE_LIBDLLOADER 1
212
213/* Define to 1 if you have the `gnugetopt' library (-lgnugetopt). */
214/* #undef HAVE_LIBGNUGETOPT */
215
216/* Define to 1 if you have the `gnutls' library (-lgnutls). */
217#define HAVE_LIBGNUTLS 1
218
219/* have ncurses library */
220#define HAVE_LIBNCURSES 1
221
222/* Define to 1 if you have the `pam' library (-lpam). */
223#define HAVE_LIBPAM 1
224
225/* Define to 1 if you have the `pils' library (-lpils). */
226#define HAVE_LIBPILS 1
227
228/* Define to 1 if you have the `plumb' library (-lplumb). */
229#define HAVE_LIBPLUMB 1
230
231/* Define to 1 if you have the `rt' library (-lrt). */
232#define HAVE_LIBRT 1
233
234/* Define to 1 if you have the `socket' library (-lsocket). */
235/* #undef HAVE_LIBSOCKET */
236
237/* Define to 1 if you have the `tsan' library (-ltsan). */
238/* #undef HAVE_LIBTSAN */
239
240/* Define to 1 if you have the `ubsan' library (-lubsan). */
241/* #undef HAVE_LIBUBSAN */
242
243/* Define to 1 if you have the <libxml/xpath.h> header file. */
244#define HAVE_LIBXML_XPATH_H 1
245
246/* Define to 1 if you have the `xslt' library (-lxslt). */
247#define HAVE_LIBXSLT 1
248
249/* Define to 1 if you have the <libxslt/xslt.h> header file. */
250#define HAVE_LIBXSLT_XSLT_H 1
251
252/* Define to 1 if you have the <limits.h> header file. */
253#define HAVE_LIMITS_H 1
254
255/* Define to 1 if procfs is supported */
256#define HAVE_LINUX_PROCFS 1
257
258/* Define to 1 if you have the <linux/swab.h> header file. */
259#define HAVE_LINUX_SWAB_H 1
260
261/* Define this if a modern libltdl is already installed */
262#define HAVE_LTDL 1
263
264/* Define to 1 if you have the <mach-o/dyld.h> header file. */
265/* #undef HAVE_MACH_O_DYLD_H */
266
267/* Define to 1 if you have the `nanosleep' function. */
268#define HAVE_NANOSLEEP 1
269
270/* Define to 1 if you have the <ncurses.h> header file. */
271#define HAVE_NCURSES_H 1
272
273/* Define to 1 if you have the <ncurses/ncurses.h> header file. */
274/* #undef HAVE_NCURSES_NCURSES_H */
275
276/* Define to 1 if you have the <netdb.h> header file. */
277#define HAVE_NETDB_H 1
278
279/* Define to 1 if you have the <netinet/in.h> header file. */
280#define HAVE_NETINET_IN_H 1
281
282/* Define to 1 if you have the <netinet/ip.h> header file. */
283#define HAVE_NETINET_IP_H 1
284
285/* Define to 1 if you have the `NoSuchFunctionName' function. */
286/* #undef HAVE_NOSUCHFUNCTIONNAME */
287
288/* Define to 1 if you have the `opendir' function. */
289#define HAVE_OPENDIR 1
290
291/* Define to 1 if libcrypto is used for MD5. */
292/* #undef HAVE_OPENSSL_MD5 */
293
294/* Define to 1 if you have the <openssl/md5.h> header file. */
295/* #undef HAVE_OPENSSL_MD5_H */
296
297/* Define to 1 if you have the <pam/pam_appl.h> header file. */
298/* #undef HAVE_PAM_PAM_APPL_H */
299
300/* Define if libtool can extract symbol lists from object files. */
301#define HAVE_PRELOADED_SYMBOLS 1
302
303/* Define to 1 if processes can change their name */
304#define HAVE_PROGNAME 1
305
306/* Define to 1 if you have the <pwd.h> header file. */
307#define HAVE_PWD_H 1
308
309/* Define to 1 if you have the `qb_ipcc_auth_get' function. */
310#define HAVE_QB_IPCC_AUTH_GET 1
311
312/* Define to 1 if you have the `qb_ipcc_connect_async' function. */
313#define HAVE_QB_IPCC_CONNECT_ASYNC 1
314
315/* Define to 1 if you have the `readdir' function. */
316#define HAVE_READDIR 1
317
318/* Define to 1 if you have the `scandir' function. */
319#define HAVE_SCANDIR 1
320
321/* Define to 1 if you have the `sched_setscheduler' function. */
322#define HAVE_SCHED_SETSCHEDULER 1
323
324/* Define to 1 if you have the <security/pam_appl.h> header file. */
325#define HAVE_SECURITY_PAM_APPL_H 1
326
327/* Define if you have the shl_load function. */
328/* #undef HAVE_SHL_LOAD */
329
330/* Define to 1 if sighandler_t is available */
331/* #undef HAVE_SIGHANDLER_T */
332
333/* Define to 1 if you have the <signal.h> header file. */
334#define HAVE_SIGNAL_H 1
335
336/* Define if Unix socket auth method is getsockopt(s, SO_PEERCRED,
337 &sockpeercred, ...) */
338/* #undef HAVE_SOCKPEERCRED */
339
340/* Define to 1 if sscanf %m modifier is available */
341#define HAVE_SSCANF_M 1
342
343/* Define to 1 if you have the <stddef.h> header file. */
344#define HAVE_STDDEF_H 1
345
346/* Define to 1 if you have the <stdint.h> header file. */
347#define HAVE_STDINT_H 1
348
349/* Define to 1 if you have the <stdio.h> header file. */
350#define HAVE_STDIO_H 1
351
352/* Define to 1 if you have the <stdlib.h> header file. */
353#define HAVE_STDLIB_H 1
354
355/* Define to 1 if you have the <stonith/stonith.h> header file. */
356#define HAVE_STONITH_STONITH_H 1
357
358/* Define to 1 if you have the `strchrnul' function. */
359#define HAVE_STRCHRNUL 1
360
361/* Define to 1 if you have the `strerror' function. */
362#define HAVE_STRERROR 1
363
364/* Define to 1 if you have the <strings.h> header file. */
365#define HAVE_STRINGS_H 1
366
367/* Define to 1 if you have the <string.h> header file. */
368#define HAVE_STRING_H 1
369
370/* Define to 1 if you have the `strlcat' function. */
371/* #undef HAVE_STRLCAT */
372
373/* Define to 1 if you have the `strlcpy' function. */
374/* #undef HAVE_STRLCPY */
375
376/* Define to 1 if you have the `strndup' function. */
377#define HAVE_STRNDUP 1
378
379/* Define to 1 if you have the `strnlen' function. */
380#define HAVE_STRNLEN 1
381
382/* Define this if struct dirent has d_type */
383#define HAVE_STRUCT_DIRENT_D_TYPE 1
384
385/* Define to 1 if `tm_gmtoff' is a member of `struct tm'. */
386#define HAVE_STRUCT_TM_TM_GMTOFF 1
387
388/* Define to 1 if you have the <sys/dl.h> header file. */
389/* #undef HAVE_SYS_DL_H */
390
391/* Define to 1 if you have the <sys/ioctl.h> header file. */
392#define HAVE_SYS_IOCTL_H 1
393
394/* Define to 1 if you have the <sys/param.h> header file. */
395#define HAVE_SYS_PARAM_H 1
396
397/* Define to 1 if you have the <sys/reboot.h> header file. */
398#define HAVE_SYS_REBOOT_H 1
399
400/* Define to 1 if you have the <sys/resource.h> header file. */
401#define HAVE_SYS_RESOURCE_H 1
402
403/* Define to 1 if you have the <sys/signalfd.h> header file. */
404#define HAVE_SYS_SIGNALFD_H 1
405
406/* Define to 1 if you have the <sys/socket.h> header file. */
407#define HAVE_SYS_SOCKET_H 1
408
409/* Define to 1 if you have the <sys/stat.h> header file. */
410#define HAVE_SYS_STAT_H 1
411
412/* Define to 1 if you have the <sys/time.h> header file. */
413#define HAVE_SYS_TIME_H 1
414
415/* Define to 1 if you have the <sys/types.h> header file. */
416#define HAVE_SYS_TYPES_H 1
417
418/* Define to 1 if you have the <sys/utsname.h> header file. */
419#define HAVE_SYS_UTSNAME_H 1
420
421/* Define to 1 if you have the <sys/wait.h> header file. */
422#define HAVE_SYS_WAIT_H 1
423
424/* Define to 1 if you have the <time.h> header file. */
425#define HAVE_TIME_H 1
426
427/* Define if Unix socket auth method is getsockopt(s, SO_PEERCRED, &ucred,
428 ...) */
429#define HAVE_UCRED 1
430
431/* Define to 1 if you have the <unistd.h> header file. */
432#define HAVE_UNISTD_H 1
433
434/* Define to 1 if you have the `usleep' function. */
435#define HAVE_USLEEP 1
436
437/* Define to 1 if you have the `uuid_unparse' function. */
438#define HAVE_UUID_UNPARSE 1
439
440/* Define to 1 if you have the <uuid/uuid.h> header file. */
441#define HAVE_UUID_UUID_H 1
442
443/* This value is set to 1 to indicate that the system argz facility works */
444#define HAVE_WORKING_ARGZ 1
445
446/* Whether enum qb_log_conf supports QB_LOG_CONF_ELLIPSIS */
447#define HAVE_qb_log_conf_QB_LOG_CONF_ELLIPSIS 1
448
449/* Whether enum qb_log_conf supports QB_LOG_CONF_MAX_LINE_LEN */
450#define HAVE_qb_log_conf_QB_LOG_CONF_MAX_LINE_LEN 1
451
452/* Location for CIB secrets */
453#define LRM_CIBSECRETS_DIR "/var/lib/pacemaker/lrm/secrets"
454
455/* Define if the OS needs help to load dependent libraries for dlopen(). */
456/* #undef LTDL_DLOPEN_DEPLIBS */
457
458/* Define to the system default library search path. */
459#define LT_DLSEARCH_PATH "/lib:/usr/lib:/usr/lib/x86_64-linux-gnu/libfakeroot:/usr/local/lib:/usr/local/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu"
460
461/* The archive extension */
462#define LT_LIBEXT "a"
463
464/* The archive prefix */
465#define LT_LIBPREFIX "lib"
466
467/* Define to the extension used for runtime loadable modules, say, ".so". */
468#define LT_MODULE_EXT ".so"
469
470/* Define to the name of the environment variable that determines the run-time
471 module search path. */
472#define LT_MODULE_PATH_VAR "LD_LIBRARY_PATH"
473
474/* Define to the sub-directory where libtool stores uninstalled libraries. */
475#define LT_OBJDIR ".libs/"
476
477/* Define to the shared library suffix, say, ".dylib". */
478/* #undef LT_SHARED_EXT */
479
480/* Define to the shared archive member specification, say "(shr.o)". */
481/* #undef LT_SHARED_LIB_MEMBER */
482
483/* Directory for nagios plugins metadata */
484#define NAGIOS_METADATA_DIR "/usr/share/nagios/plugins-metadata"
485
486/* Directory for nagios plugins */
487#define NAGIOS_PLUGIN_DIR "/usr/lib/nagios/plugins"
488
489/* Define if dlsym() requires a leading underscore in symbol names. */
490/* #undef NEED_USCORE */
491
492/* OCF directories to search for resource agents */
493#define OCF_RA_PATH "/usr/lib/ocf/resource.d"
494
495/* OCF root directory for resource agents and libraries */
496#define OCF_ROOT_DIR "/usr/lib/ocf"
497
498/* Where to keep configuration files like authkey */
499#define PACEMAKER_CONFIG_DIR "/etc/pacemaker"
500
501/* Version number of this Pacemaker build */
502#define PACEMAKER_VERSION "2.1.5"
503
504/* Name of package */
505#define PACKAGE "pacemaker"
506
507/* Define to the address where bug reports for this package should be sent. */
508#define PACKAGE_BUGREPORT "users@clusterlabs.org"
509
510/* Define to the full name of this package. */
511#define PACKAGE_NAME "pacemaker"
512
513/* Define to the full name and version of this package. */
514#define PACKAGE_STRING "pacemaker 2.1.5"
515
516/* Define to the one symbol short name of this package. */
517#define PACKAGE_TARNAME "pacemaker"
518
519/* Define to the home page for this package. */
520#define PACKAGE_URL "https://ClusterLabs.org/pacemaker/"
521
522/* Define to the version of this package. */
523#define PACKAGE_VERSION "2.1.5"
524
525/* GnuTLS cipher priorities */
526#define PCMK_GNUTLS_PRIORITIES "NORMAL"
527
528/* Location for modifiable per-process data */
529#define PCMK_RUN_DIR "/run"
530
531/* Keep certain output compatible with 2.0 release series */
532/* #undef PCMK__COMPAT_2_0 */
533
534/* Default value for concurrent-fencing cluster option */
535#define PCMK__CONCURRENT_FENCING_DEFAULT "false"
536
537/* Location for executable fence agents */
538#define PCMK__FENCE_BINDIR "/usr/sbin"
539
540/* Base directory for message catalogs */
541#define PCMK__LOCALE_DIR "/usr/share/locale"
542
543/* Location for LSB init scripts */
544#define PCMK__LSB_INIT_DIR "/etc/init.d"
545
546/* Default value for resource-stickiness resource meta-attribute */
547#define PCMK__RESOURCE_STICKINESS_DEFAULT 0
548
549/* Default value for SBD_SYNC_RESOURCE_STARTUP environment variable */
550#define PCMK__SBD_SYNC_DEFAULT false
551
552/* Where to keep scheduler outputs */
553#define PE_STATE_DIR "/var/lib/pacemaker/pengine"
554
555/* Location for system binaries */
556#define SBIN_DIR "/usr/sbin"
557
558/* The size of `char', as computed by sizeof. */
559#define SIZEOF_CHAR 1
560
561/* The size of `int', as computed by sizeof. */
562#define SIZEOF_INT 4
563
564/* The size of `long', as computed by sizeof. */
565#define SIZEOF_LONG 8
566
567/* The size of `long long', as computed by sizeof. */
568#define SIZEOF_LONG_LONG 8
569
570/* The size of `short', as computed by sizeof. */
571#define SIZEOF_SHORT 2
572
573/* Define to 1 if all of the C90 standard headers exist (not just the ones
574 required in a freestanding environment). This macro is provided for
575 backward compatibility; new code need not use it. */
576#define STDC_HEADERS 1
577
578/* Support CIB secrets */
579#define SUPPORT_CIBSECRETS 1
580
581/* Support the Corosync messaging and membership layer */
582#define SUPPORT_COROSYNC 1
583
584/* Support nagios plugins */
585#define SUPPORT_NAGIOS 1
586
587/* Support profiling */
588#define SUPPORT_PROFILING 0
589
590/* Support systemd resources */
591#define SUPPORT_SYSTEMD 1
592
593/* Support Upstart resources */
594#define SUPPORT_UPSTART 0
595
596/* Valgrind command */
597#define VALGRIND_BIN "/usr/bin/valgrind"
598
599/* Version number of package */
600#define VERSION "2.1.5"
601
602/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
603 significant byte first (like Motorola and SPARC, unlike Intel). */
604#if defined AC_APPLE_UNIVERSAL_BUILD
605# if defined __BIG_ENDIAN__
606# define WORDS_BIGENDIAN 1
607# endif
608#else
609# ifndef WORDS_BIGENDIAN
610/* # undef WORDS_BIGENDIAN */
611# endif
612#endif
613
614/* True if the compiler says it groks GNU C version MAJOR.MINOR. */
615#if defined __GNUC__ && defined __GNUC_MINOR__
616# define _GL_GNUC_PREREQ(major, minor) \
617 ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__))
618#else
619# define _GL_GNUC_PREREQ(major, minor) 0
620#endif
621
622
623/* The _Noreturn keyword of C11. */
624#ifndef _Noreturn
625# if (defined __cplusplus \
626 && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
627 || (defined _MSC_VER && 1900 <= _MSC_VER)) \
628 && 0)
629 /* [[noreturn]] is not practically usable, because with it the syntax
630 extern _Noreturn void func (...);
631 would not be valid; such a declaration would only be valid with 'extern'
632 and '_Noreturn' swapped, or without the 'extern' keyword. However, some
633 AIX system header files and several gnulib header files use precisely
634 this syntax with 'extern'. */
635# define _Noreturn [[noreturn]]
636# elif ((!defined __cplusplus || defined __clang__) \
637 && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
638 || _GL_GNUC_PREREQ (4, 7) \
639 || (defined __apple_build_version__ \
640 ? 6000000 <= __apple_build_version__ \
641 : 3 < __clang_major__ + (5 <= __clang_minor__))))
642 /* _Noreturn works as-is. */
643# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C
644# define _Noreturn __attribute__ ((__noreturn__))
645# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
646# define _Noreturn __declspec (noreturn)
647# else
648# define _Noreturn
649# endif
650#endif
651
652
653/* Define so that glibc/gnulib argp.h does not typedef error_t. */
654/* #undef __error_t_defined */
655
656/* The _GL_ASYNC_SAFE marker should be attached to functions that are
657 signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
658 invoked from such signal handlers. Such functions have some restrictions:
659 * All functions that it calls should be marked _GL_ASYNC_SAFE as well,
660 or should be listed as async-signal-safe in POSIX
661 <https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04>
662 section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in
663 particular, are NOT async-signal-safe.
664 * All memory locations (variables and struct fields) that these functions
665 access must be marked 'volatile'. This holds for both read and write
666 accesses. Otherwise the compiler might optimize away stores to and
667 reads from such locations that occur in the program, depending on its
668 data flow analysis. For example, when the program contains a loop
669 that is intended to inspect a variable set from within a signal handler
670 while (!signal_occurred)
671 ;
672 the compiler is allowed to transform this into an endless loop if the
673 variable 'signal_occurred' is not declared 'volatile'.
674 Additionally, recall that:
675 * A signal handler should not modify errno (except if it is a handler
676 for a fatal signal and ends by raising the same signal again, thus
677 provoking the termination of the process). If it invokes a function
678 that may clobber errno, it needs to save and restore the value of
679 errno. */
680#define _GL_ASYNC_SAFE
681
682
683/* Attributes. */
684#ifdef __has_attribute
685# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__)
686#else
687# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr
688# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3)
689# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2)
690# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3)
691# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3)
692# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95)
693# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1)
694# define _GL_ATTR_diagnose_if 0
695# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3)
696# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1)
697# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0)
698# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7)
699# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6)
700# ifdef _ICC
701# define _GL_ATTR_may_alias 0
702# else
703# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3)
704# endif
705# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0)
706# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1)
707# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3)
708# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0)
709# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3)
710# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7)
711# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96)
712# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9)
713# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0)
714# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7)
715# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
716#endif
717
718
719#if _GL_HAS_ATTRIBUTE (alloc_size)
720# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
721#else
722# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
723#endif
724
725#if _GL_HAS_ATTRIBUTE (always_inline)
726# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
727#else
728# define _GL_ATTRIBUTE_ALWAYS_INLINE
729#endif
730
731#if _GL_HAS_ATTRIBUTE (artificial)
732# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
733#else
734# define _GL_ATTRIBUTE_ARTIFICIAL
735#endif
736
737/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at
738 <https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>.
739 Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */
740#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
741# ifndef __SUNPRO_C
742# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
743# else
744# define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
745# endif
746#else
747# define _GL_ATTRIBUTE_COLD
748#endif
749
750#if _GL_HAS_ATTRIBUTE (const)
751# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
752#else
753# define _GL_ATTRIBUTE_CONST
754#endif
755
756#if 201710L < __STDC_VERSION__
757# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
758#elif _GL_HAS_ATTRIBUTE (deprecated)
759# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
760#else
761# define _GL_ATTRIBUTE_DEPRECATED
762#endif
763
764#if _GL_HAS_ATTRIBUTE (error)
765# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
766# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
767#elif _GL_HAS_ATTRIBUTE (diagnose_if)
768# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
769# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
770#else
771# define _GL_ATTRIBUTE_ERROR(msg)
772# define _GL_ATTRIBUTE_WARNING(msg)
773#endif
774
775#if _GL_HAS_ATTRIBUTE (externally_visible)
776# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
777#else
778# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
779#endif
780
781/* FALLTHROUGH is special, because it always expands to something. */
782#if 201710L < __STDC_VERSION__
783# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
784#elif _GL_HAS_ATTRIBUTE (fallthrough)
785# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
786#else
787# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
788#endif
789
790#if _GL_HAS_ATTRIBUTE (format)
791# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
792#else
793# define _GL_ATTRIBUTE_FORMAT(spec)
794#endif
795
796#if _GL_HAS_ATTRIBUTE (leaf)
797# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
798#else
799# define _GL_ATTRIBUTE_LEAF
800#endif
801
802/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */
803#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
804# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
805#else
806# define _GL_ATTRIBUTE_MAY_ALIAS
807#endif
808
809#if 201710L < __STDC_VERSION__
810# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
811#elif _GL_HAS_ATTRIBUTE (unused)
812# define _GL_ATTRIBUTE_MAYBE_UNUSED __attribute__ ((__unused__))
813#else
814# define _GL_ATTRIBUTE_MAYBE_UNUSED
815#endif
816/* Earlier spellings of this macro. */
817#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED
818#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED
819
820#if _GL_HAS_ATTRIBUTE (malloc)
821# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
822#else
823# define _GL_ATTRIBUTE_MALLOC
824#endif
825
826#if 201710L < __STDC_VERSION__
827# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
828#elif _GL_HAS_ATTRIBUTE (warn_unused_result)
829# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
830#else
831# define _GL_ATTRIBUTE_NODISCARD
832#endif
833
834#if _GL_HAS_ATTRIBUTE (noinline)
835# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
836#else
837# define _GL_ATTRIBUTE_NOINLINE
838#endif
839
840#if _GL_HAS_ATTRIBUTE (nonnull)
841# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
842#else
843# define _GL_ATTRIBUTE_NONNULL(args)
844#endif
845
846#if _GL_HAS_ATTRIBUTE (nonstring)
847# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
848#else
849# define _GL_ATTRIBUTE_NONSTRING
850#endif
851
852/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */
853
854#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
855# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
856#else
857# define _GL_ATTRIBUTE_NOTHROW
858#endif
859
860#if _GL_HAS_ATTRIBUTE (packed)
861# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
862#else
863# define _GL_ATTRIBUTE_PACKED
864#endif
865
866#if _GL_HAS_ATTRIBUTE (pure)
867# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
868#else
869# define _GL_ATTRIBUTE_PURE
870#endif
871
872#if _GL_HAS_ATTRIBUTE (returns_nonnull)
873# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
874#else
875# define _GL_ATTRIBUTE_RETURNS_NONNULL
876#endif
877
878#if _GL_HAS_ATTRIBUTE (sentinel)
879# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
880#else
881# define _GL_ATTRIBUTE_SENTINEL(pos)
882#endif
883
884
885/* To support C++ as well as C, use _GL_UNUSED_LABEL with trailing ';'. */
886#if !defined __cplusplus || _GL_GNUC_PREREQ (4, 5)
887# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_MAYBE_UNUSED
888#else
889# define _GL_UNUSED_LABEL
890#endif
891
892
893/* Define to a type to use for 'error_t' if it is not otherwise available. */
894/* #undef error_t */
895
896/* Please see the Gnulib manual for how to use these macros.
897
898 Suppress extern inline with HP-UX cc, as it appears to be broken; see
899 <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
900
901 Suppress extern inline with Sun C in standards-conformance mode, as it
902 mishandles inline functions that call each other. E.g., for 'inline void f
903 (void) { } inline void g (void) { f (); }', c99 incorrectly complains
904 'reference to static identifier "f" in extern inline function'.
905 This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
906
907 Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
908 on configurations that mistakenly use 'static inline' to implement
909 functions or macros in standard C headers like <ctype.h>. For example,
910 if isdigit is mistakenly implemented via a static inline function,
911 a program containing an extern inline function that calls isdigit
912 may not work since the C standard prohibits extern inline functions
913 from calling static functions (ISO C 99 section 6.7.4.(3).
914 This bug is known to occur on:
915
916 OS X 10.8 and earlier; see:
917 https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
918
919 DragonFly; see
920 http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log
921
922 FreeBSD; see:
923 https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
924
925 OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
926 for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
927 Assume DragonFly and FreeBSD will be similar.
928
929 GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
930 inline semantics, unless -fgnu89-inline is used. It defines a macro
931 __GNUC_STDC_INLINE__ to indicate this situation or a macro
932 __GNUC_GNU_INLINE__ to indicate the opposite situation.
933 GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
934 semantics but warns, unless -fgnu89-inline is used:
935 warning: C99 inline functions are not supported; using GNU89
936 warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
937 It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
938 */
939#if (((defined __APPLE__ && defined __MACH__) \
940 || defined __DragonFly__ || defined __FreeBSD__) \
941 && (defined __header_inline \
942 ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
943 && ! defined __clang__) \
944 : ((! defined _DONT_USE_CTYPE_INLINE_ \
945 && (defined __GNUC__ || defined __cplusplus)) \
946 || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
947 && defined __GNUC__ && ! defined __cplusplus))))
948# define _GL_EXTERN_INLINE_STDHEADER_BUG
949#endif
950#if ((__GNUC__ \
951 ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
952 : (199901L <= __STDC_VERSION__ \
953 && !defined __HP_cc \
954 && !defined __PGI \
955 && !(defined __SUNPRO_C && __STDC__))) \
956 && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
957# define _GL_INLINE inline
958# define _GL_EXTERN_INLINE extern inline
959# define _GL_EXTERN_INLINE_IN_USE
960#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
961 && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
962# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
963 /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */
964# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
965# else
966# define _GL_INLINE extern inline
967# endif
968# define _GL_EXTERN_INLINE extern
969# define _GL_EXTERN_INLINE_IN_USE
970#else
971# define _GL_INLINE static _GL_UNUSED
972# define _GL_EXTERN_INLINE static _GL_UNUSED
973#endif
974
975/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
976 suppress bogus "no previous prototype for 'FOO'"
977 and "no previous declaration for 'FOO'" diagnostics,
978 when FOO is an inline function in the header; see
979 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
980 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */
981#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
982# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
983# define _GL_INLINE_HEADER_CONST_PRAGMA
984# else
985# define _GL_INLINE_HEADER_CONST_PRAGMA \
986 _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
987# endif
988# define _GL_INLINE_HEADER_BEGIN \
989 _Pragma ("GCC diagnostic push") \
990 _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
991 _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
992 _GL_INLINE_HEADER_CONST_PRAGMA
993# define _GL_INLINE_HEADER_END \
994 _Pragma ("GCC diagnostic pop")
995#else
996# define _GL_INLINE_HEADER_BEGIN
997# define _GL_INLINE_HEADER_END
998#endif
999
1000/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
1001 the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
1002 earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
1003 __APPLE__ && __MACH__ test for Mac OS X.
1004 __APPLE_CC__ tests for the Apple compiler and its version.
1005 __STDC_VERSION__ tests for the C99 mode. */
1006#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
1007# define __GNUC_STDC_INLINE__ 1
1008#endif
1009
1010/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where
1011 n1 and n2 are expressions without side effects, that evaluate to real
1012 numbers (excluding NaN).
1013 It returns
1014 1 if n1 > n2
1015 0 if n1 == n2
1016 -1 if n1 < n2
1017 The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional
1018 jump with nearly all GCC versions up to GCC 10.
1019 This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many
1020 GCC versions up to GCC 9.
1021 The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9
1022 avoids conditional jumps in all GCC versions >= 3.4. */
1023#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2)))
1024
1025
1026/* Define to the equivalent of the C99 'restrict' keyword, or to
1027 nothing if this is not supported. Do not define if restrict is
1028 supported directly. */
1029#define restrict __restrict
1030/* Work around a bug in older versions of Sun C++, which did not
1031 #define __restrict__ or support _Restrict or __restrict__
1032 even though the corresponding Sun C compiler ended up with
1033 "#define restrict _Restrict" or "#define restrict __restrict__"
1034 in the previous line. This workaround can be removed once
1035 we assume Oracle Developer Studio 12.5 (2016) or later. */
1036#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__
1037# define _Restrict
1038# define __restrict__
1039#endif
1040
1041/* Define to `unsigned int' if <sys/types.h> does not define. */
1042/* #undef size_t */