/* config.h.  Generated by configure.  */
/* 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 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'. */
#define GETGROUPS_T gid_t

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

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

/* 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. */
#define HAVE_DECL_SYS_ERRLIST 1

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

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

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

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

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

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

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

/* 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/icmp.h> header file. */
#define HAVE_LINUX_ICMP_H 1

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

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

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

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

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

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

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

/* 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. */
#define HAVE_MEMORY_H 1

/* 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. */
//ANDROID
//#define HAVE_MQUEUE_H 1

/* 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. */
#define HAVE_NETINET_TCP_H 1

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

/* 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. */
#define HAVE_POLL_H 1

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

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

/* 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. */
#define HAVE_SENDMSG 1

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

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

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

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

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

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

/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1

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

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

/* Define to 1 if you have the <stropts.h> header file. */
//ANDROID
//#define HAVE_STROPTS_H 1

/* Define to 1 if you have the `strsignal' function. */
//ANDROID
#include <sys/cdefs.h>
#ifdef __BIONIC__
#define HAVE_STRSIGNAL 1
#endif

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

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

/* 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 `sin6_scope_id' is member of `struct sockaddr_in6'. */
#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1

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

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

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

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

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

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

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

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

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

/* Define to 1 if `QUEUE_ptr' is 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'. */
#define HAVE_STRUCT_USER_DESC 1

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

/* 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. */
#define HAVE_SYS_EPOLL_H 1

/* 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. */
#define HAVE_SYS_IOCTL_H 1

/* 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. */
#define HAVE_SYS_POLL_H 1

/* Define to 1 if you have the <sys/ptrace.h> header file. */
#define HAVE_SYS_PTRACE_H 1

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

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

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

/* 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. */
#define HAVE_SYS_TYPES_H 1

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

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

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

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

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

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

/* Define for the i386 architecture. */
#define I386 1

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

/* Define for the Linux operating system. */
#define LINUX 1

/* 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 */
#define PACKAGE "strace"

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

/* Define to the full name of this package. */
#define PACKAGE_NAME "strace"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "strace 4.5.12"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "strace"

/* Define to the version of this package. */
#define PACKAGE_VERSION "4.5.12"

/* Define for the PowerPC architecture. */
/* #undef POWERPC */

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

/* 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. */
#define STDC_HEADERS 1

/* 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 UnixWare systems. */
/* #undef UNIXWARE */

/* Version number of package */
#define VERSION "4.5.12"

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

/* Enable GNU extensions on systems that have them.  */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif

/* 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 */
