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

/* 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 1 if using `alloca.c'. */
#undef C_ALLOCA

/* Define this if you want runtime debugging enabled. */
#undef DEBUG

/* Define if system properties shouldn't be read from
   getenv("GCJ_PROPERTIES"). */
#undef DISABLE_GETENV_PROPERTIES

/* Define if java.net native functions should be stubbed out. */
#undef DISABLE_JAVA_NET

/* Define if we should ignore arguments to main(). */
#undef DISABLE_MAIN_ARGS

/* Define if you're running eCos. */
#undef ECOS

/* Define if you are using JVMPI. */
#undef ENABLE_JVMPI

/* Short GCJ version ID */
#undef GCJVERSION

/* Define if gethostbyaddr_r returns 'int'. */
#undef GETHOSTBYADDR_R_RETURNS_INT

/* Define if gethostbyname_r returns 'int'. */
#undef GETHOSTBYNAME_R_RETURNS_INT

/* Define to 1 if you have the `access' function. */
#undef HAVE_ACCESS

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

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

/* Define to 1 if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H

/* Define if Boehm GC in use. */
#undef HAVE_BOEHM_GC

/* Define if you have u_int32_t */
#undef HAVE_BSD_INT32_DEFINED

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

/* Define to 1 if you have the `chmod' function. */
#undef HAVE_CHMOD

/* Define if you have clock_gettime() */
#undef HAVE_CLOCK_GETTIME

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

/* Define if you have dladdr() */
#undef HAVE_DLADDR

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

/* Define if dlopen is available */
#undef HAVE_DLOPEN

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

/* Define to 1 if you have the `execvp' function. */
#undef HAVE_EXECVP

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

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

/* Define to 1 if you have the `fstat' function. */
#undef HAVE_FSTAT

/* Define to 1 if you have the `fsync' function. */
#undef HAVE_FSYNC

/* Define to 1 if you have the `ftime' function. */
#undef HAVE_FTIME

/* Define to 1 if you have the `ftruncate' function. */
#undef HAVE_FTRUNCATE

/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD

/* Define if you have the 'gethostbyaddr_r' function. */
#undef HAVE_GETHOSTBYADDR_R

/* Define if you have the 'gethostbyname_r' function. */
#undef HAVE_GETHOSTBYNAME_R

/* Define if you have the 'gethostname' function. */
#undef HAVE_GETHOSTNAME

/* Define if gethostname is declared in <unistd.h>. */
#undef HAVE_GETHOSTNAME_DECL

/* Define to 1 if you have the `getifaddrs' function. */
#undef HAVE_GETIFADDRS

/* Define if _Unwind_GetIPInfo is available. */
#undef HAVE_GETIPINFO

/* Define to 1 if you have the `getpwuid_r' function. */
#undef HAVE_GETPWUID_R

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

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

/* Define to 1 if you have the `gmtime_r' function. */
#undef HAVE_GMTIME_R

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

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

/* Define if inet6 structures are defined in netinet/in.h. */
#undef HAVE_INET6

/* Define to 1 if you have the `inet_addr' function. */
#undef HAVE_INET_ADDR

/* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON

/* Define to 1 if you have the `inet_ntoa' function. */
#undef HAVE_INET_NTOA

/* Define to 1 if you have the `inet_pton' function. */
#undef HAVE_INET_PTON

/* Define if you have int32_t and uint32_t. */
#undef HAVE_INT32_DEFINED

/* Define if <inttypes.h> is available */
#undef HAVE_INTTYPES_H

/* Define to 1 if 'in_addr_t' is defined in sys/types.h or netinet/in.h. */
#undef HAVE_IN_ADDR_T

/* Define to 1 if you have the `ioctl' function. */
#undef HAVE_IOCTL

/* 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 <locale.h> header file. */
#undef HAVE_LOCALE_H

/* Define is you have 'localtime' in <time.h> */
#undef HAVE_LOCALTIME

/* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R

/* Define to 1 if you have the `lstat' function. */
#undef HAVE_LSTAT

/* Define to 1 if you have the `memcpy' function. */
#undef HAVE_MEMCPY

/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE

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

/* Define to 1 if you have the `mkdir' function. */
#undef HAVE_MKDIR

/* Define is you have 'mktime' in <time.h> */
#undef HAVE_MKTIME

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

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

/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H

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

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

/* Define to 1 if you have the `open' function. */
#undef HAVE_OPEN

/* Define to 1 if you have the `opendir' function. */
#undef HAVE_OPENDIR

/* Define to 1 if you have the `pipe' function. */
#undef HAVE_PIPE

/* Define if you have /proc/self/exe */
#undef HAVE_PROC_SELF_EXE

/* Define if using POSIX threads that have the mutexattr functions. */
#undef HAVE_PTHREAD_MUTEXATTR_INIT

/* Define to 1 if you have the `pthread_mutexattr_setkind_np' function. */
#undef HAVE_PTHREAD_MUTEXATTR_SETKIND_NP

/* Define to 1 if you have the `pthread_mutexattr_settype' function. */
#undef HAVE_PTHREAD_MUTEXATTR_SETTYPE

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

/* Define to 1 if you have the `readdir_r' function. */
#undef HAVE_READDIR_R

/* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK

/* Define to 1 if you have the `rename' function. */
#undef HAVE_RENAME

/* Define to 1 if you have the `rmdir' function. */
#undef HAVE_RMDIR

/* Define to 1 if you have the `sched_yield' function. */
#undef HAVE_SCHED_YIELD

/* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT

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

/* Define to 1 if you have the `sigaction' function. */
#undef HAVE_SIGACTION

/* Define to 1 if you have the `sleep' function. */
#undef HAVE_SLEEP

/* Define it socklen_t typedef is in sys/socket.h. */
#undef HAVE_SOCKLEN_T

/* Define to 1 if you have the `stat' function. */
#undef HAVE_STAT

/* 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 `strerror' function. */
#undef HAVE_STRERROR

/* 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 if struct hostent_data is defined in netdb.h */
#undef HAVE_STRUCT_HOSTENT_DATA

/* Define if struct ipv6_mreq is defined in netinet/in.h. */
#undef HAVE_STRUCT_IPV6_MREQ

/* Define if struct ip_mreq is defined in netinet/in.h. */
#undef HAVE_STRUCT_IP_MREQ

/* Define to 1 if `tm_zone' is member of `struct tm'. */
#undef HAVE_STRUCT_TM_TM_ZONE

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

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

/* Define to 1 if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_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/rw_lock.h> header file. */
#undef HAVE_SYS_RW_LOCK_H

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

/* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_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/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 `time' function. */
#undef HAVE_TIME

/* Define if global 'timezone' exists. */
#undef HAVE_TIMEZONE

/* Define to 1 if the target supports thread-local storage. */
#undef HAVE_TLS

/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
   `HAVE_STRUCT_TM_TM_ZONE' instead. */
#undef HAVE_TM_ZONE

/* Define to 1 if you don't have `tm_zone' but do have the external array
   `tzname'. */
#undef HAVE_TZNAME

/* Define to 1 if you have the `uname' function. */
#undef HAVE_UNAME

/* Define if your platform has the global _timezone variable. */
#undef HAVE_UNDERSCORE_TIMEZONE

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

/* Define to 1 if you have the `unlink' function. */
#undef HAVE_UNLINK

/* Define to 1 if you have the `usleep' function. */
#undef HAVE_USLEEP

/* Define if usleep is declared in <unistd.h>. */
#undef HAVE_USLEEP_DECL

/* Define to 1 if you have the `utime' function. */
#undef HAVE_UTIME

/* Define to 1 if you have the file `AC_File'. */
#undef HAVE__PROC_SELF_EXE

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

/* Define if you want a bytecode interpreter. */
#undef INTERPRETER

/* API compatibility version string */
#undef JV_API_VERSION

/* Define if hash synchronization is in use */
#undef JV_HASH_SYNCHRONIZATION

/* Define if <inttypes.h> is available */
#undef JV_HAVE_INTTYPES_H

/* Indicate that linker is not able to 8-byte align static data */
#undef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS

/* Compatibility version string */
#undef JV_VERSION

/* Define if we want to use debug calls into the garbage collector. */
#undef LIBGCJ_GC_DEBUG

/* Define if using POSIX threads on Linux. */
#undef LINUX_THREADS

/* Define to the name of the environment variable that determines the dynamic
   library search path. */
#undef LTDL_SHLIBPATH_VAR

/* Define if MinGW libgcj uses the Windows UNICODE OS API. */
#undef MINGW_LIBGCJ_UNICODE

/* Define if getuid() and friends are missing. */
#undef NO_GETUID

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

/* Name of package */
#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 if pthread_mutex_t has m_count member. */
#undef PTHREAD_MUTEX_HAVE_M_COUNT

/* Define if pthread_mutex_t has __m_count member. */
#undef PTHREAD_MUTEX_HAVE___M_COUNT

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

/* Define if the compiler is configured for setjmp/longjmp exceptions. */
#undef SJLJ_EXCEPTIONS

/* Define if if the synchronization code should try to avoid pthread_self
   calls by caching thread IDs in a hashtable. */
#undef SLOW_PTHREAD_SELF

/* 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 to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

/* Define if struct tm has tm_gmtoff field. */
#undef STRUCT_TM_HAS_GMTOFF

/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME

/* Define if we're to use libffi. */
#undef USE_LIBFFI

/* Define if libltdl is in use. */
#undef USE_LTDL

/* Version number of package */
#undef VERSION

/* Define to 1 if your processor stores words with the most significant byte
   first (like Motorola and SPARC, unlike Intel and VAX). */
#undef WORDS_BIGENDIAN

/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING

/* Required define if using POSIX threads */
#undef _POSIX_PTHREAD_SEMANTICS

/* Required define if using POSIX threads */
#undef _REENTRANT

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