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

/* Define for the Alpha architecture. */
#undef ALPHA

/* Define for the ARM architecture. */
#undef ARM

/* Define for the AVR32 architecture. */
#undef AVR32

/* Define for the Blackfin architecture. */
#undef BFIN

/* Define for the CRISv10 architecture. */
#undef CRISV10

/* Define for the CRISv32 architecture. */
#undef CRISV32

/* Define for the FreeBSD operating system. */
#undef FREEBSD

/* 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 <asm/cachectl.h> header file. */
#undef HAVE_ASM_CACHECTL_H

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

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

/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
   don't. */
#undef HAVE_DECL_SYS_ERRLIST

/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you
   don't. */
#undef HAVE_DECL_SYS_SIGLIST

/* Define to 1 if you have the declaration of `_sys_siglist', and to 0 if you
   don't. */
#undef HAVE_DECL__SYS_SIGLIST

/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
   */
#undef HAVE_DIRENT_H

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

/* Define to 1 if you have the `getdents' function. */
#undef HAVE_GETDENTS

/* Define to 1 if you have the `if_indextoname' function. */
#undef HAVE_IF_INDEXTONAME

/* Define to 1 if you have the `inet_ntop' function. */
#undef HAVE_INET_NTOP

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

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

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

/* Define to 1 if you have the `nsl' library (-lnsl). */
#undef HAVE_LIBNSL

/* Define to 1 if you have the <linux/capability.h> header file. */
#undef HAVE_LINUX_CAPABILITY_H

/* Define to 1 if you have the <linux/icmp.h> header file. */
#undef HAVE_LINUX_ICMP_H

/* Define to 1 if you have the <linux/if_packet.h> header file. */
#undef HAVE_LINUX_IF_PACKET_H

/* Define to 1 if you have the <linux/in6.h> header file. */
#undef HAVE_LINUX_IN6_H

/* Define to 1 if you have the <linux/netlink.h> header file. */
#undef HAVE_LINUX_NETLINK_H

/* Define to 1 if you have the <linux/ptrace.h> header file. */
#undef HAVE_LINUX_PTRACE_H

/* Define to 1 if you have the <linux/utsname.h> header file. */
#undef HAVE_LINUX_UTSNAME_H

/* Define if long long is little-endian. */
#undef HAVE_LITTLE_ENDIAN_LONG_LONG

/* Define to 1 if the system has the type `long long'. */
#undef HAVE_LONG_LONG

/* Define if off_t is a long long. */
#undef HAVE_LONG_LONG_OFF_T

/* Define if rlim_t is a long long. */
#undef HAVE_LONG_LONG_RLIM_T

/* Define to 1 if you have the `mctl' function. */
#undef HAVE_MCTL

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

/* Define if you have a SVR4 MP type procfs. I.E. /dev/xxx/ctl,
   /dev/xxx/status. Also implies that you have the pr_lwp member in prstatus.
   */
#undef HAVE_MP_PROCFS

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

/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#undef HAVE_NDIR_H

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

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

/* Define if you have SVR4 and the poll system call works on /proc files. */
#undef HAVE_POLLABLE_PROCFS

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

/* Define to 1 if you have the `prctl' function. */
#undef HAVE_PRCTL

/* Define to 1 if you have the `pread' function. */
#undef HAVE_PREAD

/* Define if the prstatus structure in sys/procfs.h has a pr_syscall member.
   */
#undef HAVE_PR_SYSCALL

/* Define to 1 if you have the `sendmsg' function. */
#undef HAVE_SENDMSG

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

/* Define to 1 if the system has the type `siginfo_t'. */
#undef HAVE_SIGINFO_T

/* Define to 1 if the system has the type `sig_atomic_t'. */
#undef HAVE_SIG_ATOMIC_T

/* Define if stat64 is available in asm/stat.h. */
#undef HAVE_STAT64

/* Define if statfs64 is available in sys/vfs.h. */
#undef HAVE_STATFS64

/* Define to 1 if stdbool.h conforms to C99. */
#undef HAVE_STDBOOL_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 `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 to 1 if you have the <stropts.h> header file. */
#undef HAVE_STROPTS_H

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

/* Define to 1 if `dqb_curblocks' is a member of `struct dqblk'. */
#undef HAVE_STRUCT_DQBLK_DQB_CURBLOCKS

/* Define to 1 if the system has the type `struct ia64_fpreg'. */
#undef HAVE_STRUCT_IA64_FPREG

/* Define to 1 if `msg_control' is a member of `struct msghdr'. */
#undef HAVE_STRUCT_MSGHDR_MSG_CONTROL

/* Define to 1 if the system has the type `struct opthdr'. */
#undef HAVE_STRUCT_OPTHDR

/* Define to 1 if the system has the type `struct pt_all_user_regs'. */
#undef HAVE_STRUCT_PT_ALL_USER_REGS

/* Define to 1 if the system has the type `struct sigcontext'. */
#undef HAVE_STRUCT_SIGCONTEXT

/* Define to 1 if `sc_hi2' is a member of `struct sigcontext'. */
#undef HAVE_STRUCT_SIGCONTEXT_SC_HI2

/* Define to 1 if the system has the type `struct sigcontext_struct'. */
#undef HAVE_STRUCT_SIGCONTEXT_STRUCT

/* Define to 1 if `sin6_scope_id' is a member of `struct sockaddr_in6'. */
#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID

/* Define to 1 if `st_aclcnt' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_ACLCNT

/* Define to 1 if `st_blksize' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLKSIZE

/* Define to 1 if `st_blocks' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLOCKS

/* Define to 1 if `st_flags' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_FLAGS

/* Define to 1 if `st_fstype' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_FSTYPE

/* Define to 1 if `st_gen' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_GEN

/* Define to 1 if `st_level' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_LEVEL

/* Define to 1 if `st_rdev' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_RDEV

/* Define to 1 if `ACCEPTOR_id' is a member of `struct T_conn_res'. */
#undef HAVE_STRUCT_T_CONN_RES_ACCEPTOR_ID

/* Define to 1 if `QUEUE_ptr' is a member of `struct T_conn_res'. */
#undef HAVE_STRUCT_T_CONN_RES_QUEUE_PTR

/* Define to 1 if the system has the type `struct t_opthdr'. */
#undef HAVE_STRUCT_T_OPTHDR

/* Define to 1 if the system has the type `struct user_desc'. */
#undef HAVE_STRUCT_USER_DESC

/* Define to 1 if the system has the type `struct __old_kernel_stat'. */
#undef HAVE_STRUCT___OLD_KERNEL_STAT

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

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

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

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

/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
   */
#undef HAVE_SYS_DIR_H

/* Define to 1 if you have the <sys/door.h> header file. */
#undef HAVE_SYS_DOOR_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/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/ndir.h> header file, and it defines `DIR'.
   */
#undef HAVE_SYS_NDIR_H

/* Define to 1 if you have the <sys/nscsys.h> header file. */
#undef HAVE_SYS_NSCSYS_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/ptrace.h> header file. */
#undef HAVE_SYS_PTRACE_H

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

/* Define to 1 if you have the `sys_siglist' function. */
#undef HAVE_SYS_SIGLIST

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

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

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

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

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

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

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

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

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

/* Define to 1 if the system has the type `_Bool'. */
#undef HAVE__BOOL

/* Define to 1 if you have the `_sys_siglist' function. */
#undef HAVE__SYS_SIGLIST

/* Define for the HPPA architecture. */
#undef HPPA

/* Define for the i386 architecture. */
#undef I386

/* Define for the IA64 architecture. */
#undef IA64

/* Define for the Linux operating system. */
#undef LINUX

/* Define for the m68k architecture. */
#undef M68K

/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
   */
#undef MAJOR_IN_MKDEV

/* Define to 1 if `major', `minor', and `makedev' are declared in
   <sysmacros.h>. */
#undef MAJOR_IN_SYSMACROS

/* Define for the MIPS architecture. */
#undef MIPS

/* 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 for the PowerPC architecture. */
#undef POWERPC

/* Define as the return type of signal handlers (`int' or `void'). */
#undef RETSIGTYPE

/* Define for the S390 architecture. */
#undef S390

/* Define for the S390x architecture. */
#undef S390X

/* Define for the SH architecture. */
#undef SH

/* Define for the SH64 architecture. */
#undef SH64

/* Define for the SPARC architecture. */
#undef SPARC

/* Define for the SPARC64 architecture. */
#undef SPARC64

/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
#undef STAT_MACROS_BROKEN

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

/* Define for the SunOS 4.x operating system. */
#undef SUNOS4

/* Define if you are have a SPARC with SUNOS4 and your want a version of
   strace that will work on sun4, sun4c and sun4m kernel architectures. Only
   useful if you have a symbolic link from machine to /usr/include/sun4 in the
   compilation directory. */
#undef SUNOS4_KERNEL_ARCH_KLUDGE

/* Define for the System V release 4 operating system or a derivative like
   Solaris 2.x or Irix 5.x. */
#undef SVR4

/* Define for the Tile architecture */
#undef TILE

/* Define for UnixWare systems. */
#undef UNIXWARE

/* Enable extensions on AIX 3, Interix.  */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable GNU extensions on systems that have them.  */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* Enable threading extensions on Solaris.  */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop.  */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable general extensions on Solaris.  */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif


/* Version number of package */
#undef VERSION

/* Define for the AMD x86-64 architecture. */
#undef X86_64

/* Define to 1 if on MINIX. */
#undef _MINIX

/* Define to 2 if the system does not provide POSIX.1 features except with
   this defined. */
#undef _POSIX_1_SOURCE

/* Define to 1 if you need to in order for `stat' and other things to work. */
#undef _POSIX_SOURCE

/* Define to empty if `const' does not conform to ANSI C. */
#undef const

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

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

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