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

/* Define to 1 if you're using Bionic */
#undef BIONIC_LIBC

/* DARWIN_VERS value for Mac OS X 10.10 */
#undef DARWIN_10_10

/* DARWIN_VERS value for Mac OS X 10.11 */
#undef DARWIN_10_11

/* DARWIN_VERS value for macOS 10.12 */
#undef DARWIN_10_12

/* DARWIN_VERS value for Mac OS X 10.5 */
#undef DARWIN_10_5

/* DARWIN_VERS value for Mac OS X 10.6 */
#undef DARWIN_10_6

/* DARWIN_VERS value for Mac OS X 10.7 */
#undef DARWIN_10_7

/* DARWIN_VERS value for Mac OS X 10.8 */
#undef DARWIN_10_8

/* DARWIN_VERS value for Mac OS X 10.9 */
#undef DARWIN_10_9

/* Define to 1 if you're using Darwin */
#undef DARWIN_LIBC

/* Darwin / Mac OS X version */
#undef DARWIN_VERS

/* Disable intercept pthread_spin_lock() on MIPS32 and MIPS64. */
#undef DISABLE_PTHREAD_SPINLOCK_INTERCEPT

/* configured to run as an inner Valgrind */
#undef ENABLE_INNER

/* path to GDB */
#undef GDB_PATH

/* Define to 1 if index() and strlen() have been optimized heavily (x86 glibc
   >= 2.12) */
#undef GLIBC_MANDATORY_INDEX_AND_STRLEN_REDIRECT

/* Define to 1 if strlen() has been optimized heavily (amd64 glibc >= 2.10) */
#undef GLIBC_MANDATORY_STRLEN_REDIRECT

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

/* Define to 1 if as supports fxsave64/fxrstor64. */
#undef HAVE_AS_AMD64_FXSAVE64

/* Define to 1 if as supports floating point phased out category. */
#undef HAVE_AS_PPC_FPPO

/* Define to 1 if as supports mtocrf/mfocrf. */
#undef HAVE_AS_PPC_MFTOCRF

/* Define to 1 if gcc supports __sync_bool_compare_and_swap() and
   __sync_add_and_fetch() for the primary target */
#undef HAVE_BUILTIN_ATOMIC

/* Define to 1 if g++ supports __sync_bool_compare_and_swap() and
   __sync_add_and_fetch() */
#undef HAVE_BUILTIN_ATOMIC_CXX

/* Define to 1 if compiler provides __builtin_clz(). */
#undef HAVE_BUILTIN_CLZ

/* Define to 1 if compiler provides __builtin_ctz(). */
#undef HAVE_BUILTIN_CTZ

/* Define to 1 if compiler provides __builtin_popcount(). */
#undef HAVE_BUILTIN_POPCOUT

/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME

/* Define to 1 if you have the `CLOCK_MONOTONIC' constant. */
#undef HAVE_CLOCK_MONOTONIC

/* Define to 1 if you have a dlinfo that can do RTLD_DI_TLS_MODID. */
#undef HAVE_DLINFO_RTLD_DI_TLS_MODID

/* Define to 1 if the system has the type `Elf32_Chdr'. */
#undef HAVE_ELF32_CHDR

/* Define to 1 if the system has the type `Elf64_Chdr'. */
#undef HAVE_ELF64_CHDR

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

/* Define to 1 if you have the `epoll_create' function. */
#undef HAVE_EPOLL_CREATE

/* Define to 1 if you have the `epoll_pwait' function. */
#undef HAVE_EPOLL_PWAIT

/* Define to 1 if you have the `eventfd' function. */
#undef HAVE_EVENTFD

/* Define to 1 if you have the `eventfd_read' function. */
#undef HAVE_EVENTFD_READ

/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE

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

/* Define to 1 if you have the `klogctl' function. */
#undef HAVE_KLOGCTL

/* Define to 1 if you have the `pthread' library (-lpthread). */
#undef HAVE_LIBPTHREAD

/* Define to 1 if you have the `rt' library (-lrt). */
#undef HAVE_LIBRT

/* Define to 1 if you have the `scf' library (-lscf). */
#undef HAVE_LIBSCF

/* Define to 1 if you have the `mallinfo' function. */
#undef HAVE_MALLINFO

/* Define to 1 if you have the `memchr' function. */
#undef HAVE_MEMCHR

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

/* Define to 1 if you have the `memset' function. */
#undef HAVE_MEMSET

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

/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP

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

/* Define to 1 if you have the `mremap' function. */
#undef HAVE_MREMAP

/* Define to 1 if you have the `ppoll' function. */
#undef HAVE_PPOLL

/* Define to 1 if you have the `process_vm_readv' function. */
#undef HAVE_PROCESS_VM_READV

/* Define to 1 if you have the `process_vm_writev' function. */
#undef HAVE_PROCESS_VM_WRITEV

/* Define to 1 if you have the `pthread_barrier_init' function. */
#undef HAVE_PTHREAD_BARRIER_INIT

/* Define to 1 if you have the `pthread_condattr_setclock' function. */
#undef HAVE_PTHREAD_CONDATTR_SETCLOCK

/* Define to 1 if you have the `pthread_create@glibc2.0' function. */
#undef HAVE_PTHREAD_CREATE_GLIBC_2_0

/* Define to 1 if you have the `PTHREAD_MUTEX_ADAPTIVE_NP' constant. */
#undef HAVE_PTHREAD_MUTEX_ADAPTIVE_NP

/* Define to 1 if you have the `PTHREAD_MUTEX_ERRORCHECK_NP' constant. */
#undef HAVE_PTHREAD_MUTEX_ERRORCHECK_NP

/* Define to 1 if you have the `PTHREAD_MUTEX_RECURSIVE_NP' constant. */
#undef HAVE_PTHREAD_MUTEX_RECURSIVE_NP

/* Define to 1 if you have the `pthread_mutex_timedlock' function. */
#undef HAVE_PTHREAD_MUTEX_TIMEDLOCK

/* Define to 1 if pthread_mutex_t has a member __data.__kind. */
#undef HAVE_PTHREAD_MUTEX_T__DATA__KIND

/* Define to 1 if pthread_mutex_t has a member called __m_kind. */
#undef HAVE_PTHREAD_MUTEX_T__M_KIND

/* Define to 1 if you have the `PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP'
   constant. */
#undef HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP

/* Define to 1 if you have the `pthread_rwlock_t' type. */
#undef HAVE_PTHREAD_RWLOCK_T

/* Define to 1 if you have the `pthread_rwlock_timedrdlock' function. */
#undef HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK

/* Define to 1 if you have the `pthread_rwlock_timedwrlock' function. */
#undef HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK

/* Define to 1 if you have the `pthread_setname_np' function. */
#undef HAVE_PTHREAD_SETNAME_NP

/* Define to 1 if you have the `pthread_spin_lock' function. */
#undef HAVE_PTHREAD_SPIN_LOCK

/* Define to 1 if you have the `pthread_yield' function. */
#undef HAVE_PTHREAD_YIELD

/* Define to 1 if you have the `PTRACE_GETREGS' ptrace request. */
#undef HAVE_PTRACE_GETREGS

/* Define to 1 if you have the `readlinkat' function. */
#undef HAVE_READLINKAT

/* Define to 1 if you have the `semtimedop' function. */
#undef HAVE_SEMTIMEDOP

/* Define to 1 if libstd++ supports annotating shared pointers */
#undef HAVE_SHARED_POINTER_ANNOTATION

/* Define to 1 if you have the `signalfd' function. */
#undef HAVE_SIGNALFD

/* Define to 1 if you have the `sigwaitinfo' function. */
#undef HAVE_SIGWAITINFO

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

/* Define to 1 if you have the `strdup' function. */
#undef HAVE_STRDUP

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

/* Define to 1 if you have the `strrchr' function. */
#undef HAVE_STRRCHR

/* Define to 1 if you have the `strstr' function. */
#undef HAVE_STRSTR

/* Define to 1 if you have the `syscall' function. */
#undef HAVE_SYSCALL

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

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

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

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

/* Define to 1 if you have the <sys/lgrp_user_impl.h> header file. */
#undef HAVE_SYS_LGRP_USER_IMPL_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/poll.h> header file. */
#undef HAVE_SYS_POLL_H

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

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

/* Define to 1 if you have the <sys/signal.h> header file. */
#undef HAVE_SYS_SIGNAL_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/syscall.h> header file. */
#undef HAVE_SYS_SYSCALL_H

/* Define to 1 if you have the <sys/sysnvl.h> header file. */
#undef HAVE_SYS_SYSNVL_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 <sys/user.h> defines struct user_regs_struct */
#undef HAVE_SYS_USER_REGS

/* can use __thread to define thread-local variables */
#undef HAVE_TLS

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

/* Define to 1 if you have a usable <linux/futex.h> header file. */
#undef HAVE_USABLE_LINUX_FUTEX_H

/* Define to 1 if you have the `utimensat' function. */
#undef HAVE_UTIMENSAT

/* Define to 1 if you're using Musl libc */
#undef MUSL_LIBC

/* 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 home page for this package. */
#undef PACKAGE_URL

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

/* Define to 1 if you have the `A_GETSTAT' and `A_SETSTAT' constants. */
#undef SOLARIS_AUDITON_STAT

/* Define to 1 if you have the new `execve' syscall which accepts flags. */
#undef SOLARIS_EXECVE_SYSCALL_TAKES_FLAGS

/* Define to 1 if fpregset_t defines struct _fpchip_state */
#undef SOLARIS_FPCHIP_STATE_TAKES_UNDERSCORE

/* Define to 1 if you have the new `frealpathat' syscall. */
#undef SOLARIS_FREALPATHAT_SYSCALL

/* Define to 1 if you have the new `gethrt' fasttrap. */
#undef SOLARIS_GETHRT_FASTTRAP

/* Define to 1 if you have the new `getrandom' syscall. */
#undef SOLARIS_GETRANDOM_SYSCALL

/* Define to 1 if you have the new `get_zone_offset' fasttrap. */
#undef SOLARIS_GETZONEOFFSET_FASTTRAP

/* Default platform for Valgrind launcher. */
#undef SOLARIS_LAUNCHER_DEFAULT_PLATFORM

/* Define to 1 if you have the new `lwp_name' syscall. */
#undef SOLARIS_LWP_NAME_SYSCALL

/* Define to 1 if you have the new `lwp_sigqueue' syscall. */
#undef SOLARIS_LWP_SIGQUEUE_SYSCALL

/* Define to 1 if you have the new `lwp_sigqueue' syscall which accepts pid.
   */
#undef SOLARIS_LWP_SIGQUEUE_SYSCALL_TAKES_PID

/* Define to 1 if you have the `MODNVL_CTRLMAP' through `MODDEVINFO_CACHE_TS'
   constants. */
#undef SOLARIS_MODCTL_MODNVL

/* Define to 1 if you have the new `accept' syscall. */
#undef SOLARIS_NEW_ACCEPT_SYSCALL

/* Define to 1 if you have the new `pipe' syscall. */
#undef SOLARIS_NEW_PIPE_SYSCALL

/* Define to 1 if nscd attaches to /system/volatile/name_service_door. */
#undef SOLARIS_NSCD_DOOR_SYSTEM_VOLATILE

/* Define to 1 if you have the old Solaris syscalls. */
#undef SOLARIS_OLD_SYSCALLS

/* Define to 1 if you have /proc/self/cmdline. */
#undef SOLARIS_PROC_CMDLINE

/* Define to 1 if you have the `prxregset_t' type. */
#undef SOLARIS_PRXREGSET_T

/* Define to 1 if you have the `PSET_GET_NAME' constants. */
#undef SOLARIS_PSET_GET_NAME

/* Define to 1 if PT_SUNWDTRACE program header provides just an initial thread
   pointer for libc. */
#undef SOLARIS_PT_SUNDWTRACE_THRP

/* Version number of the repository door cache protocol. */
#undef SOLARIS_REPCACHE_PROTOCOL_VERSION

/* Define to 1 if you have the new `sysstat' segment reservation. */
#undef SOLARIS_RESERVE_SYSSTAT_ADDR

/* Define to 1 if you have the new `sysstat_zone' segment reservation. */
#undef SOLARIS_RESERVE_SYSSTAT_ZONE_ADDR

/* Define to 1 if you have the schedctl page executable. */
#undef SOLARIS_SCHEDCTL_PAGE_EXEC

/* Define to 1 if you have the `IPC_XSTAT64', `SHMADV', `SHM_ADV_GET',
   `SHM_ADV_SET' and `SHMGET_OSM' constants. */
#undef SOLARIS_SHM_NEW

/* Define to 1 if you have the `spawn' syscall. */
#undef SOLARIS_SPAWN_SYSCALL

/* Define to 1 if you have the `system_stats' syscall. */
#undef SOLARIS_SYSTEM_STATS_SYSCALL

/* Define to 1 if you have the `TNDB_GET_TNIP' constant. */
#undef SOLARIS_TNDB_GET_TNIP

/* Define to 1 if you have the `TSOL_GETCLEARANCE' and `TSOL_SETCLEARANCE'
   constants. */
#undef SOLARIS_TSOL_CLEARANCE

/* Define to 1 if you have the `utimensat' syscall. */
#undef SOLARIS_UTIMENSAT_SYSCALL

/* Define to 1 if you have the `utimesys' syscall. */
#undef SOLARIS_UTIMESYS_SYSCALL

/* Define to 1 if you have the new `uuidsys' syscall. */
#undef SOLARIS_UUIDSYS_SYSCALL

/* Define to 1 if you have the `ZONE_LIST_DEFUNCT' and `ZONE_GETATTR_DEFUNC'
   constants. */
#undef SOLARIS_ZONE_DEFUNCT

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

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

/* Version number of package */
#undef VERSION

/* Temporary files directory */
#undef VG_TMPDIR

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

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

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

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