/* config.in.  Generated from configure.ac by autoheader.  */

/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
#undef BYTEORDER

/* Define as the number of bits in a byte, if \`limits.h' doesn't. */
#undef CHAR_BIT

/* Define 0/1 to force the choice for exception handling model. */
#undef CONFIG_SJLJ_EXCEPTIONS

/* Define to enable the use of a default assembler. */
#undef DEFAULT_ASSEMBLER

/* Define to enable the use of a default linker. */
#undef DEFAULT_LINKER

/* Define if you want to use __cxa_atexit, rather than atexit, to register C++
   destructors for local statics and global objects. This is essential for
   fully standards-compliant handling of destructors, but requires
   __cxa_atexit in libc. */
#undef DEFAULT_USE_CXA_ATEXIT

/* Define if you want assertions enabled. This is a cheap check. */
#undef ENABLE_ASSERT_CHECKING

/* Define if you want more run-time sanity checks. This one gets a grab bag of
   miscellaneous but relatively cheap checks. */
#undef ENABLE_CHECKING

/* Define if you want fold checked that it never destructs its argument. This
   is quite expensive. */
#undef ENABLE_FOLD_CHECKING

/* Define if you want the garbage collector to operate in maximally paranoid
   mode, validating the entire heap and collecting garbage at every
   opportunity. This is extremely expensive. */
#undef ENABLE_GC_ALWAYS_COLLECT

/* Define if you want the garbage collector to do object poisoning and other
   memory allocation checks. This is quite expensive. */
#undef ENABLE_GC_CHECKING

/* Define to 1 if translation of program messages to the user's native
   language is requested. */
#undef ENABLE_NLS

/* Define if you want all operations on RTL (the basic data structure of the
   optimizer and back end) to be checked for dynamic type safety at runtime.
   This is quite expensive. */
#undef ENABLE_RTL_CHECKING

/* Define if you want RTL flag accesses to be checked against the RTL codes
   that are supported for each access macro. This is relatively cheap. */
#undef ENABLE_RTL_FLAG_CHECKING

/* Define if you want all operations on trees (the basic data structure of the
   front ends) to be checked for dynamic type safety at runtime. This is
   moderately expensive. The tree browser debugging routines will also be
   enabled by this option. */
#undef ENABLE_TREE_CHECKING

/* Define if you want to run subprograms and generated programs through
   valgrind (a memory checker). This is extremely expensive. */
#undef ENABLE_VALGRIND_CHECKING

/* Define to 1 if installation paths should be looked up in Windows32
   Registry. Ignored on non windows32 hosts. */
#undef ENABLE_WIN32_REGISTRY

/* Define to the name of a file containing a list of extra machine modes for
   this architecture. */
#undef EXTRA_MODES_FILE

/* Define to enable detailed memory allocation stats gathering. */
#undef GATHER_STATISTICS

/* Define to the type of elements in the array set by `getgroups'. Usually
   this is either `int' or `gid_t'. */
#undef GETGROUPS_T

/* Define to 1 if you have the `alphasort' function. */
#undef HAVE_ALPHASORT

/* Define if your assembler supports dwarf2 .file/.loc directives, and
   preserves file table indices exactly as given. */
#undef HAVE_AS_DWARF2_DEBUG_LINE

/* Define if your assembler supports explicit relocations. */
#undef HAVE_AS_EXPLICIT_RELOCS

/* Define if your assembler supports the --gdwarf2 option. */
#undef HAVE_AS_GDWARF2_DEBUG_FLAG

/* Define true if the assembler supports '.long foo@GOTOFF'. */
#undef HAVE_AS_GOTOFF_IN_DATA

/* Define if your assembler supports the --gstabs option. */
#undef HAVE_AS_GSTABS_DEBUG_FLAG

/* Define if your assembler supports the Sun syntax for cmov. */
#undef HAVE_AS_IX86_CMOV_SUN_SYNTAX

/* Define if your assembler supports the lituse_jsrdirect relocation. */
#undef HAVE_AS_JSRDIRECT_RELOCS

/* Define if your assembler supports .sleb128 and .uleb128. */
#undef HAVE_AS_LEB128

/* Define if your assembler supports ltoffx and ldxmov relocations. */
#undef HAVE_AS_LTOFFX_LDXMOV_RELOCS

/* Define if your assembler supports mfcr field. */
#undef HAVE_AS_MFCRF

/* Define if your assembler supports the -no-mul-bug-abort option. */
#undef HAVE_AS_NO_MUL_BUG_ABORT_OPTION

/* Define if your assembler supports offsetable %lo(). */
#undef HAVE_AS_OFFSETABLE_LO10

/* Define if your assembler supports .register. */
#undef HAVE_AS_REGISTER_PSEUDO_OP

/* Define if your assembler supports -relax option. */
#undef HAVE_AS_RELAX_OPTION

/* Define if your assembler and linker support unaligned PC relative relocs.
   */
#undef HAVE_AS_SPARC_UA_PCREL

/* Define if your assembler and linker support unaligned PC relative relocs
   against hidden symbols. */
#undef HAVE_AS_SPARC_UA_PCREL_HIDDEN

/* Define if your assembler supports thread-local storage. */
#undef HAVE_AS_TLS

/* Define to 1 if you have the `atoll' function. */
#undef HAVE_ATOLL

/* Define to 1 if you have the `atoq' function. */
#undef HAVE_ATOQ

/* Define to 1 if you have the `clearerr_unlocked' function. */
#undef HAVE_CLEARERR_UNLOCKED

/* Define to 1 if you have the `clock' function. */
#undef HAVE_CLOCK

/* Define if <time.h> defines clock_t. */
#undef HAVE_CLOCK_T

/* Define to 1 if we found a declaration for 'abort', otherwise define to 0.
   */
#undef HAVE_DECL_ABORT

/* Define to 1 if we found a declaration for 'atof', otherwise define to 0. */
#undef HAVE_DECL_ATOF

/* Define to 1 if we found a declaration for 'atol', otherwise define to 0. */
#undef HAVE_DECL_ATOL

/* Define to 1 if we found a declaration for 'basename', otherwise define to
   0. */
#undef HAVE_DECL_BASENAME

/* Define to 1 if we found a declaration for 'calloc', otherwise define to 0.
   */
#undef HAVE_DECL_CALLOC

/* Define to 1 if we found a declaration for 'clearerr_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_CLEARERR_UNLOCKED

/* Define to 1 if we found a declaration for 'clock', otherwise define to 0.
   */
#undef HAVE_DECL_CLOCK

/* Define to 1 if we found a declaration for 'errno', otherwise define to 0.
   */
#undef HAVE_DECL_ERRNO

/* Define to 1 if we found a declaration for 'feof_unlocked', otherwise define
   to 0. */
#undef HAVE_DECL_FEOF_UNLOCKED

/* Define to 1 if we found a declaration for 'ferror_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_FERROR_UNLOCKED

/* Define to 1 if we found a declaration for 'fflush_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_FFLUSH_UNLOCKED

/* Define to 1 if we found a declaration for 'fgetc_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_FGETC_UNLOCKED

/* Define to 1 if we found a declaration for 'fgets_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_FGETS_UNLOCKED

/* Define to 1 if we found a declaration for 'fileno_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_FILENO_UNLOCKED

/* Define to 1 if we found a declaration for 'fprintf_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_FPRINTF_UNLOCKED

/* Define to 1 if we found a declaration for 'fputc_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_FPUTC_UNLOCKED

/* Define to 1 if we found a declaration for 'fputs_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_FPUTS_UNLOCKED

/* Define to 1 if we found a declaration for 'fread_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_FREAD_UNLOCKED

/* Define to 1 if we found a declaration for 'free', otherwise define to 0. */
#undef HAVE_DECL_FREE

/* Define to 1 if we found a declaration for 'fwrite_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_FWRITE_UNLOCKED

/* Define to 1 if we found a declaration for 'getchar_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_GETCHAR_UNLOCKED

/* Define to 1 if we found a declaration for 'getcwd', otherwise define to 0.
   */
#undef HAVE_DECL_GETCWD

/* Define to 1 if we found a declaration for 'getc_unlocked', otherwise define
   to 0. */
#undef HAVE_DECL_GETC_UNLOCKED

/* Define to 1 if we found a declaration for 'getenv', otherwise define to 0.
   */
#undef HAVE_DECL_GETENV

/* Define to 1 if we found a declaration for 'getopt', otherwise define to 0.
   */
#undef HAVE_DECL_GETOPT

/* Define to 1 if we found a declaration for 'getpagesize', otherwise define
   to 0. */
#undef HAVE_DECL_GETPAGESIZE

/* Define to 1 if we found a declaration for 'getrlimit', otherwise define to
   0. */
#undef HAVE_DECL_GETRLIMIT

/* Define to 1 if we found a declaration for 'getrusage', otherwise define to
   0. */
#undef HAVE_DECL_GETRUSAGE

/* Define to 1 if we found a declaration for 'getwd', otherwise define to 0.
   */
#undef HAVE_DECL_GETWD

/* Define to 1 if we found a declaration for 'ldgetname', otherwise define to
   0. */
#undef HAVE_DECL_LDGETNAME

/* Define to 1 if we found a declaration for 'malloc', otherwise define to 0.
   */
#undef HAVE_DECL_MALLOC

/* Define to 1 if we found a declaration for 'putchar_unlocked', otherwise
   define to 0. */
#undef HAVE_DECL_PUTCHAR_UNLOCKED

/* Define to 1 if we found a declaration for 'putc_unlocked', otherwise define
   to 0. */
#undef HAVE_DECL_PUTC_UNLOCKED

/* Define to 1 if we found a declaration for 'realloc', otherwise define to 0.
   */
#undef HAVE_DECL_REALLOC

/* Define to 1 if we found a declaration for 'sbrk', otherwise define to 0. */
#undef HAVE_DECL_SBRK

/* Define to 1 if we found a declaration for 'setrlimit', otherwise define to
   0. */
#undef HAVE_DECL_SETRLIMIT

/* Define to 1 if we found a declaration for 'snprintf', otherwise define to
   0. */
#undef HAVE_DECL_SNPRINTF

/* Define to 1 if we found a declaration for 'strsignal', otherwise define to
   0. */
#undef HAVE_DECL_STRSIGNAL

/* Define to 1 if we found a declaration for 'strstr', otherwise define to 0.
   */
#undef HAVE_DECL_STRSTR

/* Define to 1 if we found a declaration for 'times', otherwise define to 0.
   */
#undef HAVE_DECL_TIMES

/* Define to 1 if we found a declaration for 'vasprintf', otherwise define to
   0. */
#undef HAVE_DECL_VASPRINTF

/* Define to 1 if you have the <direct.h> header file. */
#undef HAVE_DIRECT_H

/* Define to 1 if you have the `dup2' function. */
#undef HAVE_DUP2

/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H

/* Define to 1 if you have the `feof_unlocked' function. */
#undef HAVE_FEOF_UNLOCKED

/* Define to 1 if you have the `ferror_unlocked' function. */
#undef HAVE_FERROR_UNLOCKED

/* Define to 1 if you have the `fflush_unlocked' function. */
#undef HAVE_FFLUSH_UNLOCKED

/* Define to 1 if you have the `fgetc_unlocked' function. */
#undef HAVE_FGETC_UNLOCKED

/* Define to 1 if you have the `fgets_unlocked' function. */
#undef HAVE_FGETS_UNLOCKED

/* Define to 1 if you have the `fileno_unlocked' function. */
#undef HAVE_FILENO_UNLOCKED

/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK

/* Define to 1 if you have the `fprintf_unlocked' function. */
#undef HAVE_FPRINTF_UNLOCKED

/* Define to 1 if you have the `fputc_unlocked' function. */
#undef HAVE_FPUTC_UNLOCKED

/* Define to 1 if you have the `fputs_unlocked' function. */
#undef HAVE_FPUTS_UNLOCKED

/* Define to 1 if you have the `fread_unlocked' function. */
#undef HAVE_FREAD_UNLOCKED

/* Define to 1 if you have the `fwrite_unlocked' function. */
#undef HAVE_FWRITE_UNLOCKED

/* Define if your assembler supports .balign and .p2align. */
#undef HAVE_GAS_BALIGN_AND_P2ALIGN

/* Define 0/1 if your assembler supports COMDAT group. */
#undef HAVE_GAS_COMDAT_GROUP

/* Define if your assembler uses the new HImode fild and fist notation. */
#undef HAVE_GAS_FILDS_FISTS

/* Define if your assembler and linker support .hidden. */
#undef HAVE_GAS_HIDDEN

/* Define if your assembler supports specifying the maximum number of bytes to
   skip when using the GAS .p2align command. */
#undef HAVE_GAS_MAX_SKIP_P2ALIGN

/* Define if your assembler supports .nsubspa comdat option. */
#undef HAVE_GAS_NSUBSPA_COMDAT

/* Define if your assembler and linker support 32-bit section relative relocs
   via '.secrel32 label'. */
#undef HAVE_GAS_PE_SECREL32_RELOC

/* Define 0/1 if your assembler supports marking sections with SHF_MERGE flag.
   */
#undef HAVE_GAS_SHF_MERGE

/* Define if your assembler supports .subsection and .subsection -1 starts
   emitting at the beginning of your section. */
#undef HAVE_GAS_SUBSECTION_ORDERING

/* Define if your assembler supports .weak. */
#undef HAVE_GAS_WEAK

/* Define to 1 if you have the `getchar_unlocked' function. */
#undef HAVE_GETCHAR_UNLOCKED

/* Define to 1 if you have the `getc_unlocked' function. */
#undef HAVE_GETC_UNLOCKED

/* Define to 1 if you have the `getrlimit' function. */
#undef HAVE_GETRLIMIT

/* Define to 1 if you have the `getrusage' function. */
#undef HAVE_GETRUSAGE

/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY

/* Define if you have the iconv() function. */
#undef HAVE_ICONV

/* Define to 1 if you have the <iconv.h> header file. */
#undef HAVE_ICONV_H

/* Define .init_array/.fini_array sections are available and working. */
#undef HAVE_INITFINI_ARRAY

/* Define if you have a working <inttypes.h> header file. */
#undef HAVE_INTTYPES_H

/* Define to 1 if you have the `kill' function. */
#undef HAVE_KILL

/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
#undef HAVE_LANGINFO_CODESET

/* Define to 1 if you have the <langinfo.h> header file. */
#undef HAVE_LANGINFO_H

/* Define if your <locale.h> file defines LC_MESSAGES. */
#undef HAVE_LC_MESSAGES

/* Define to 1 if you have the <ldfcn.h> header file. */
#undef HAVE_LDFCN_H

/* Define if your linker supports --as-needed and --no-as-needed options. */
#undef HAVE_LD_AS_NEEDED

/* Define if your linker supports --demangle option. */
#undef HAVE_LD_DEMANGLE

/* Define if your linker supports --eh-frame-hdr option. */
#undef HAVE_LD_EH_FRAME_HDR

/* Define if your PowerPC64 linker only needs function descriptor syms. */
#undef HAVE_LD_NO_DOT_SYMS

/* Define if your linker supports -pie option. */
#undef HAVE_LD_PIE

/* Define if your linker links a mix of read-only and read-write sections into
   a read-write section. */
#undef HAVE_LD_RO_RW_SECTION_MIXING

/* Define if your linker supports -Bstatic/-Bdynamic option. */
#undef HAVE_LD_STATIC_DYNAMIC

/* Define to 1 if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H

/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H

/* Define if your compiler supports the \`long long' type. */
#undef HAVE_LONG_LONG

/* Define to 1 if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H

/* Define to 1 if you have the `mbstowcs' function. */
#undef HAVE_MBSTOWCS

/* Define if valgrind's memcheck.h header is installed. */
#undef HAVE_MEMCHECK_H

/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H

/* Define to 1 if you have the `mincore' function. */
#undef HAVE_MINCORE

/* Define to 1 if you have the `mmap' function. */
#undef HAVE_MMAP

/* Define if mmap with MAP_ANON(YMOUS) works. */
#undef HAVE_MMAP_ANON

/* Define if mmap of /dev/zero works. */
#undef HAVE_MMAP_DEV_ZERO

/* Define if read-only mmap of a plain file works. */
#undef HAVE_MMAP_FILE

/* Define to 1 if you have the `nl_langinfo' function. */
#undef HAVE_NL_LANGINFO

/* Define if printf supports "%p". */
#undef HAVE_PRINTF_PTR

/* Define to 1 if you have the `putchar_unlocked' function. */
#undef HAVE_PUTCHAR_UNLOCKED

/* Define to 1 if you have the `putc_unlocked' function. */
#undef HAVE_PUTC_UNLOCKED

/* Define to 1 if you have the `scandir' function. */
#undef HAVE_SCANDIR

/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE

/* Define to 1 if you have the `setrlimit' function. */
#undef HAVE_SETRLIMIT

/* Define to 1 if you have the <stddef.h> header file. */
#undef HAVE_STDDEF_H

/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H

/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H

/* Define to 1 if you have the `strsignal' function. */
#undef HAVE_STRSIGNAL

/* Define if <sys/times.h> defines struct tms. */
#undef HAVE_STRUCT_TMS

/* Define to 1 if you have the `sysconf' function. */
#undef HAVE_SYSCONF

/* Define to 1 if you have the <sys/file.h> header file. */
#undef HAVE_SYS_FILE_H

/* Define to 1 if you have the <sys/mman.h> header file. */
#undef HAVE_SYS_MMAN_H

/* Define to 1 if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H

/* Define to 1 if you have the <sys/resource.h> header file. */
#undef HAVE_SYS_RESOURCE_H

/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H

/* Define to 1 if you have the <sys/times.h> header file. */
#undef HAVE_SYS_TIMES_H

/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H

/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H

/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H

/* Define to 1 if you have the `times' function. */
#undef HAVE_TIMES

/* Define to 1 if you have the <time.h> header file. */
#undef HAVE_TIME_H

/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

/* Define if valgrind's valgrind/memcheck.h header is installed. */
#undef HAVE_VALGRIND_MEMCHECK_H

/* Define to 1 if you have the `vfork' function. */
#undef HAVE_VFORK

/* Define to 1 if you have the <vfork.h> header file. */
#undef HAVE_VFORK_H

/* Define to 1 if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H

/* Define to 1 if you have the `wcswidth' function. */
#undef HAVE_WCSWIDTH

/* Define to 1 if `fork' works. */
#undef HAVE_WORKING_FORK

/* Define this macro if mbstowcs does not crash when its first argument is
   NULL. */
#undef HAVE_WORKING_MBSTOWCS

/* Define to 1 if `vfork' works. */
#undef HAVE_WORKING_VFORK

/* Define if your compiler supports the \`__int64' type. */
#undef HAVE___INT64

/* Define if the host machine stores words of multi-word integers in
   big-endian order. */
#undef HOST_WORDS_BIG_ENDIAN

/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST

/* Define if host mkdir takes a single argument. */
#undef MKDIR_TAKES_ONE_ARG

/* Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h). */
#undef NEED_64BIT_HOST_WIDE_INT

/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#undef NO_MINUS_C_MINUS_O

/* The name of this program for internationalization purposes. */
#undef PACKAGE

/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

/* Define to the full name of this package. */
#undef PACKAGE_NAME

/* Define to the full name and version of this package. */
#undef PACKAGE_STRING

/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME

/* Define to the version of this package. */
#undef PACKAGE_VERSION

/* Define to PREFIX/include if cpp should also search that directory. */
#undef PREFIX_INCLUDE_DIR

/* The size of a `int', as computed by sizeof. */
#undef SIZEOF_INT

/* The size of a `long', as computed by sizeof. */
#undef SIZEOF_LONG

/* The size of a `long long', as computed by sizeof. */
#undef SIZEOF_LONG_LONG

/* The size of a `short', as computed by sizeof. */
#undef SIZEOF_SHORT

/* The size of a `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P

/* The size of a `__int64', as computed by sizeof. */
#undef SIZEOF___INT64

/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

/* Define if you can safely include both <string.h> and <strings.h>. */
#undef STRING_WITH_STRINGS

/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME

/* Define if your assembler mis-optimizes .eh_frame data. */
#undef USE_AS_TRADITIONAL_FORMAT

/* Define to 1 if the 'long long' (or '__int64') is wider than 'long' but
   still efficiently supported by the host hardware. */
#undef USE_LONG_LONG_FOR_WIDEST_FAST_INT

/* Define if location_t is fileline integer cookie. */
#undef USE_MAPPED_LOCATION

/* Define to be the last portion of registry key on windows hosts. */
#undef WIN32_REGISTRY_KEY

/* whether byteorder is bigendian */
#undef WORDS_BIGENDIAN

/* Always define this when using the GNU C Library */
#undef _GNU_SOURCE

/* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t

/* Define to `__inline__' or `__inline' if that's what the C compiler
   calls it, or to nothing if 'inline' is not supported under any name.  */
#ifndef __cplusplus
#undef inline
#endif

/* Define to `int' if <sys/types.h> does not define. */
#undef pid_t

/* Define to \`long' if <sys/resource.h> doesn't define. */
#undef rlim_t

/* Define to `int' if <sys/types.h> does not define. */
#undef ssize_t

/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t

/* Define as `fork' if `vfork' does not work. */
#undef vfork
