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

/* Define if using alloca.c.  */
#undef C_ALLOCA

/* Define to empty if the keyword does not work.  */
#undef const

/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
   This function is required for alloca.c support on those systems.  */
#undef CRAY_STACKSEG_END

/* 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 `int' if <sys/types.h> doesn't define.  */
#undef gid_t

/* Define if you have alloca, as a function or macro.  */
#undef HAVE_ALLOCA

/* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
#undef HAVE_ALLOCA_H

/* Define if you have the ANSI # stringizing operator in cpp. */
#undef HAVE_STRINGIZE

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

/* Define if you have <vfork.h>.  */
#undef HAVE_VFORK_H

/* Define as __inline if that's what the C compiler calls it.  */
#undef inline

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

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

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

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

/* If using the C implementation of alloca, define if you know the
   direction of stack growth for your system; otherwise it will be
   automatically deduced at run-time.
 STACK_DIRECTION > 0 => grows toward higher addresses
 STACK_DIRECTION < 0 => grows toward lower addresses
 STACK_DIRECTION = 0 => direction of growth unknown
 */
#undef STACK_DIRECTION

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

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

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

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

/* 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 .balign and .p2align.  */
#undef HAVE_GAS_BALIGN_AND_P2ALIGN

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

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

/* Define if cpp should also search $prefix/include.  */
#undef PREFIX_INCLUDE_DIR

/* Define if you have the __argz_count function.  */
#undef HAVE___ARGZ_COUNT

/* Define if you have the __argz_next function.  */
#undef HAVE___ARGZ_NEXT

/* Define if you have the __argz_stringify function.  */
#undef HAVE___ARGZ_STRINGIFY

/* Define if you have the alphasort function.  */
#undef HAVE_ALPHASORT

/* Define if you have the atoll function.  */
#undef HAVE_ATOLL

/* Define if you have the atoq function.  */
#undef HAVE_ATOQ

/* Define if you have the clock function.  */
#undef HAVE_CLOCK

/* Define if you have the dcgettext function.  */
#undef HAVE_DCGETTEXT

/* Define if you have the dup2 function.  */
#undef HAVE_DUP2

/* Define if you have the feof_unlocked function.  */
#undef HAVE_FEOF_UNLOCKED

/* Define if you have the fgets_unlocked function.  */
#undef HAVE_FGETS_UNLOCKED

/* Define if you have the fprintf_unlocked function.  */
#undef HAVE_FPRINTF_UNLOCKED

/* Define if you have the fputc_unlocked function.  */
#undef HAVE_FPUTC_UNLOCKED

/* Define if you have the fputs_unlocked function.  */
#undef HAVE_FPUTS_UNLOCKED

/* Define if you have the fwrite_unlocked function.  */
#undef HAVE_FWRITE_UNLOCKED

/* Define if you have the getcwd function.  */
#undef HAVE_GETCWD

/* Define if you have the getegid function.  */
#undef HAVE_GETEGID

/* Define if you have the geteuid function.  */
#undef HAVE_GETEUID

/* Define if you have the getgid function.  */
#undef HAVE_GETGID

/* Define if you have the getrlimit function.  */
#undef HAVE_GETRLIMIT

/* Define if you have the getrusage function.  */
#undef HAVE_GETRUSAGE

/* Define if you have the gettimeofday function.  */
#undef HAVE_GETTIMEOFDAY

/* Define if you have the getuid function.  */
#undef HAVE_GETUID

/* Define if you have the kill function.  */
#undef HAVE_KILL

/* Define if you have the lstat function.  */
#undef HAVE_LSTAT

/* Define if you have the mempcpy function.  */
#undef HAVE_MEMPCPY

/* Define if you have the mmap function.  */
#undef HAVE_MMAP

/* Define if you have the munmap function.  */
#undef HAVE_MUNMAP

/* Define if you have the nl_langinfo function.  */
#undef HAVE_NL_LANGINFO

/* Define if you have the putc_unlocked function.  */
#undef HAVE_PUTC_UNLOCKED

/* Define if you have the putenv function.  */
#undef HAVE_PUTENV

/* Define if you have the scandir function.  */
#undef HAVE_SCANDIR

/* Define if you have the setenv function.  */
#undef HAVE_SETENV

/* Define if you have the setlocale function.  */
#undef HAVE_SETLOCALE

/* Define if you have the setrlimit function.  */
#undef HAVE_SETRLIMIT

/* Define if you have the stpcpy function.  */
#undef HAVE_STPCPY

/* Define if you have the strcasecmp function.  */
#undef HAVE_STRCASECMP

/* Define if you have the strchr function.  */
#undef HAVE_STRCHR

/* Define if you have the strdup function.  */
#undef HAVE_STRDUP

/* Define if you have the strsignal function.  */
#undef HAVE_STRSIGNAL

/* Define if you have the strtoul function.  */
#undef HAVE_STRTOUL

/* Define if you have the sysconf function.  */
#undef HAVE_SYSCONF

/* Define if you have the times function.  */
#undef HAVE_TIMES

/* Define if you have the tsearch function.  */
#undef HAVE_TSEARCH

/* Define if you have the <argz.h> header file.  */
#undef HAVE_ARGZ_H

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

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

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

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

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

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

/* Define if you have the <nl_types.h> header file.  */
#undef HAVE_NL_TYPES_H

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Define if your compiler understands volatile. */
#undef HAVE_VOLATILE

/* Define if your compiler supports the `long double' type. */
#undef HAVE_LONG_DOUBLE

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

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

/* Define if the `_Bool' type is built-in. */
#undef HAVE__BOOL

/* The number of bytes in type short */
#undef SIZEOF_SHORT

/* The number of bytes in type int */
#undef SIZEOF_INT

/* The number of bytes in type long */
#undef SIZEOF_LONG

/* The number of bytes in type long long */
#undef SIZEOF_LONG_LONG

/* The number of bytes in type __int64 */
#undef SIZEOF___INT64

/* Define if the host execution character set is EBCDIC. */
#undef HOST_EBCDIC

/* 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 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. */
#undef ENABLE_TREE_CHECKING

/* 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 the garbage collector to do object poisoning and
   other memory allocation checks.  This is quite expensive. */
#undef ENABLE_GC_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 to run subprograms and generated programs
   through valgrind (a memory checker).  This is extremely expensive. */
#undef ENABLE_VALGRIND_CHECKING

/* 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 the C and C++ compilers to support multibyte
   character sets for source code. */
#undef MULTIBYTE_CHARS

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

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

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

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

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

/* Define to the floating point format of the host machine, if not IEEE. */
#undef HOST_FLOAT_FORMAT

/* Define to 1 if the host machine stores floating point numbers in
   memory with the word containing the sign bit at the lowest address,
   or to 0 if it does it the other way around.

   This macro should not be defined if the ordering is the same as for
   multi-word integers. */
#undef HOST_FLOAT_WORDS_BIG_ENDIAN

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

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

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

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

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

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

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

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_GETENV

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_ATOL

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_SBRK

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_ABORT

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_ATOF

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_GETCWD

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_GETWD

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_STRSIGNAL

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_PUTC_UNLOCKED

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_FPUTS_UNLOCKED

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_FWRITE_UNLOCKED

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_FPRINTF_UNLOCKED

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_STRSTR

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_ERRNO

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_VASPRINTF

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_MALLOC

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_REALLOC

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_CALLOC

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_FREE

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_BASENAME

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_GETOPT

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_CLOCK

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_GETRLIMIT

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_SETRLIMIT

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_GETRUSAGE

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

/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_TIMES

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

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

/* Define if <sys/types.h> provides uchar. */
#undef HAVE_UCHAR

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

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

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

/* Define if gcc should use -lunwind. */
#undef USE_LIBUNWIND_EXCEPTIONS

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

/* Define if the target architecture needs extra machine modes to represent
   the results of comparisons. */
#undef EXTRA_CC_MODES

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

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

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

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

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

/* Define if you have the <libintl.h> header file. */
#undef HAVE_LIBINTL_H

/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT

/* Define to use the libintl included with this package instead of any
   version in the system libraries. */
#undef USE_INCLUDED_LIBINTL

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

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

/* 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 if your assembler supports .hidden. */
#undef HAVE_GAS_HIDDEN

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

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

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

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

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

/* 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 offsetable %lo(). */
#undef HAVE_AS_OFFSETABLE_LO10

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

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

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

/* 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 the --gdwarf2 option. */
#undef HAVE_AS_GDWARF2_DEBUG_FLAG

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

/* 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 --eh-frame-hdr option. */
#undef HAVE_LD_EH_FRAME_HDR

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

/* Define if your MIPS libgloss linker scripts consistently include STARTUP directives. */
#undef HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES


/* Bison unconditionally undefines `const' if neither `__STDC__' nor
   __cplusplus are defined.  That's a problem since we use `const' in
   the GCC headers, and the resulting bison code is therefore type
   unsafe.  Thus, we must match the bison behavior here.  */

#ifndef __STDC__
#ifndef __cplusplus
#undef const
#define const
#endif
#endif
