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

/* Define for the AArch64 architecture. */
#undef AARCH64

/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD

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

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

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

/* SA_RESTORER defined in <asm/signal.h> */
#undef ASM_SA_RESTORER

/* SIGRTMIN defined in <asm/signal.h> */
#undef ASM_SIGRTMIN

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

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

/* Current copyright year. */
#undef COPYRIGHT_YEAR

/* Define to 1 if you want OABI support on ARM EABI. */
#undef ENABLE_ARM_OABI

/* Define to enable stack tracing support */
#undef ENABLE_STACKTRACE

/* Define to 1 if you have the `accept4' function. */
#undef HAVE_ACCEPT4

/* 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/guarded_storage.h> header file. */
#undef HAVE_ASM_GUARDED_STORAGE_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 `be64toh' function. */
#undef HAVE_BE64TOH

/* Define to 1 if you have BLKGETSIZE64. */
#undef HAVE_BLKGETSIZE64

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* 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 `TCA_STAB_DATA', and to 0 if you
   don't. */
#undef HAVE_DECL_TCA_STAB_DATA

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Define to 1 if the system provides dladdr */
#undef HAVE_DLADDR

/* Define to 1 if you have the <elfutils/libdwfl.h> header file. */
#undef HAVE_ELFUTILS_LIBDWFL_H

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

/* Define to 1 if you have the `fallocate' function. */
#undef HAVE_FALLOCATE

/* Define to 1 if you have the `fanotify_mark' function. */
#undef HAVE_FANOTIFY_MARK

/* Define to 1 if you have the `fopen64' function. */
#undef HAVE_FOPEN64

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

/* Define to 1 if you have the `fputs_unlocked' function. */
#undef HAVE_FPUTS_UNLOCKED

/* Define to 1 if you have the `fstatat' function. */
#undef HAVE_FSTATAT

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

/* Define to 1 if you have the `futimens' function. */
#undef HAVE_FUTIMENS

/* Define to 1 if you have the <gnu_stubs> header file. */
#undef HAVE_GNU_STUBS

/* Define to 1 if you have the <gnu/stubs-32.h> header file. */
#undef HAVE_GNU_STUBS_32_H

/* Define to 1 if you have the <gnu/stubs-x32.h> header file. */
#undef HAVE_GNU_STUBS_X32_H

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

/* Define to 1 if you have the `iconv_open' function. */
#undef HAVE_ICONV_OPEN

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

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

/* Define to 1 if you have the <libiberty/demangle.h> header file. */
#undef HAVE_LIBIBERTY_DEMANGLE_H

/* Define to 1 if you have the <libunwind-ptrace.h> header file. */
#undef HAVE_LIBUNWIND_PTRACE_H

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

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

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

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

/* Define to 1 if you have the <linux/dm-ioctl.h> header file. */
#undef HAVE_LINUX_DM_IOCTL_H

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Define to 1 if you have the <linux/netfilter_arp/arp_tables.h> header file.
   */
#undef HAVE_LINUX_NETFILTER_ARP_ARP_TABLES_H

/* Define to 1 if you have the <linux/netfilter_bridge/ebtables.h> header
   file. */
#undef HAVE_LINUX_NETFILTER_BRIDGE_EBTABLES_H

/* Define to 1 if you have the <linux/netfilter/ipset/ip_set.h> header file.
   */
#undef HAVE_LINUX_NETFILTER_IPSET_IP_SET_H

/* Define to 1 if you have the <linux/netfilter_ipv4/ip_tables.h> header file.
   */
#undef HAVE_LINUX_NETFILTER_IPV4_IP_TABLES_H

/* Define to 1 if you have the <linux/netfilter_ipv6/ip6_tables.h> header
   file. */
#undef HAVE_LINUX_NETFILTER_IPV6_IP6_TABLES_H

/* Define to 1 if you have the <linux/netfilter/nfnetlink_acct.h> header file.
   */
#undef HAVE_LINUX_NETFILTER_NFNETLINK_ACCT_H

/* Define to 1 if you have the <linux/netfilter/nfnetlink_conntrack.h> header
   file. */
#undef HAVE_LINUX_NETFILTER_NFNETLINK_CONNTRACK_H

/* Define to 1 if you have the <linux/netfilter/nfnetlink_cthelper.h> header
   file. */
#undef HAVE_LINUX_NETFILTER_NFNETLINK_CTHELPER_H

/* Define to 1 if you have the <linux/netfilter/nfnetlink_cttimeout.h> header
   file. */
#undef HAVE_LINUX_NETFILTER_NFNETLINK_CTTIMEOUT_H

/* Define to 1 if you have the <linux/netfilter/nfnetlink.h> header file. */
#undef HAVE_LINUX_NETFILTER_NFNETLINK_H

/* Define to 1 if you have the <linux/netfilter/nfnetlink_log.h> header file.
   */
#undef HAVE_LINUX_NETFILTER_NFNETLINK_LOG_H

/* Define to 1 if you have the <linux/netfilter/nfnetlink_queue.h> header
   file. */
#undef HAVE_LINUX_NETFILTER_NFNETLINK_QUEUE_H

/* Define to 1 if you have the <linux/netfilter/nf_tables_compat.h> header
   file. */
#undef HAVE_LINUX_NETFILTER_NF_TABLES_COMPAT_H

/* Define to 1 if you have the <linux/netfilter/nf_tables.h> header file. */
#undef HAVE_LINUX_NETFILTER_NF_TABLES_H

/* Define to 1 if you have the <linux/netfilter/xt_osf.h> header file. */
#undef HAVE_LINUX_NETFILTER_XT_OSF_H

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

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

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

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

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

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

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

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

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

/* Define to 1 if you have mpers_name mpers support */
#undef HAVE_M32_MPERS

/* Define to 1 if m32 has the type 'struct stat'. */
#undef HAVE_M32_STRUCT_STAT

/* Define to 1 if m32 has the type 'struct stat64'. */
#undef HAVE_M32_STRUCT_STAT64

/* Define to 1 if 'st_mtime_nsec' is a member of m32 'struct stat64'. */
#undef HAVE_M32_STRUCT_STAT64_ST_MTIME_NSEC

/* Define to 1 if 'st_mtime_nsec' is a member of m32 'struct stat'. */
#undef HAVE_M32_STRUCT_STAT_ST_MTIME_NSEC

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

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

/* Define to 1 if you have mpers_name mpers support */
#undef HAVE_MX32_MPERS

/* Define to 1 if mx32 has the type 'struct stat'. */
#undef HAVE_MX32_STRUCT_STAT

/* Define to 1 if mx32 has the type 'struct stat64'. */
#undef HAVE_MX32_STRUCT_STAT64

/* Define to 1 if 'st_mtime_nsec' is a member of mx32 'struct stat64'. */
#undef HAVE_MX32_STRUCT_STAT64_ST_MTIME_NSEC

/* Define to 1 if 'st_mtime_nsec' is a member of mx32 'struct stat'. */
#undef HAVE_MX32_STRUCT_STAT_ST_MTIME_NSEC

/* Define to 1 if you have the <netinet/sctp.h> header file. */
#undef HAVE_NETINET_SCTP_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 to 1 if you have the <netipx/ipx.h> header file. */
#undef HAVE_NETIPX_IPX_H

/* Define to 1 if you have the `open64' function. */
#undef HAVE_OPEN64

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

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

/* Define to 1 if you have the `preadv' function. */
#undef HAVE_PREADV

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

/* Define to 1 if the system provides program_invocation_name variable */
#undef HAVE_PROGRAM_INVOCATION_NAME

/* Define to 1 if you have the `pwritev' function. */
#undef HAVE_PWRITEV

/* Define to 1 if you have the `readahead' function. */
#undef HAVE_READAHEAD

/* Define to 1 if you have the <scsi/sg.h> header file. */
#undef HAVE_SCSI_SG_H

/* Define to 1 if `si_overrun' is a member of `siginfo_t'. */
#undef HAVE_SIGINFO_T_SI_OVERRUN

/* Define to 1 if `si_syscall' is a member of `siginfo_t'. */
#undef HAVE_SIGINFO_T_SI_SYSCALL

/* Define to 1 if `si_timerid' is a member of `siginfo_t'. */
#undef HAVE_SIGINFO_T_SI_TIMERID

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

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

/* Define to 1 if the system provides static_assert */
#undef HAVE_STATIC_ASSERT

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

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

/* 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 the system has the type `struct blk_user_trace_setup'. */
#undef HAVE_STRUCT_BLK_USER_TRACE_SETUP

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

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

/* Define to 1 if `id' is a member of `struct bpf_map_info'. */
#undef HAVE_STRUCT_BPF_MAP_INFO_ID

/* Define to 1 if `ifindex' is a member of `struct bpf_map_info'. */
#undef HAVE_STRUCT_BPF_MAP_INFO_IFINDEX

/* Define to 1 if `key_size' is a member of `struct bpf_map_info'. */
#undef HAVE_STRUCT_BPF_MAP_INFO_KEY_SIZE

/* Define to 1 if `map_flags' is a member of `struct bpf_map_info'. */
#undef HAVE_STRUCT_BPF_MAP_INFO_MAP_FLAGS

/* Define to 1 if `max_entries' is a member of `struct bpf_map_info'. */
#undef HAVE_STRUCT_BPF_MAP_INFO_MAX_ENTRIES

/* Define to 1 if `name' is a member of `struct bpf_map_info'. */
#undef HAVE_STRUCT_BPF_MAP_INFO_NAME

/* Define to 1 if `type' is a member of `struct bpf_map_info'. */
#undef HAVE_STRUCT_BPF_MAP_INFO_TYPE

/* Define to 1 if `value_size' is a member of `struct bpf_map_info'. */
#undef HAVE_STRUCT_BPF_MAP_INFO_VALUE_SIZE

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

/* Define to 1 if `created_by_uid' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_CREATED_BY_UID

/* Define to 1 if `id' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_ID

/* Define to 1 if `ifindex' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_IFINDEX

/* Define to 1 if `jited_prog_insns' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_INSNS

/* Define to 1 if `jited_prog_len' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_LEN

/* Define to 1 if `load_time' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_LOAD_TIME

/* Define to 1 if `map_ids' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_MAP_IDS

/* Define to 1 if `name' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_NAME

/* Define to 1 if `nr_map_ids' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_NR_MAP_IDS

/* Define to 1 if `tag' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_TAG

/* Define to 1 if `type' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_TYPE

/* Define to 1 if `xlated_prog_insns' is a member of `struct bpf_prog_info'.
   */
#undef HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_INSNS

/* Define to 1 if `xlated_prog_len' is a member of `struct bpf_prog_info'. */
#undef HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_LEN

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

/* Define to 1 if `flags' is a member of `struct br_mdb_entry'. */
#undef HAVE_STRUCT_BR_MDB_ENTRY_FLAGS

/* Define to 1 if `vid' is a member of `struct br_mdb_entry'. */
#undef HAVE_STRUCT_BR_MDB_ENTRY_VID

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

/* Define to 1 if `start' is a member of `struct
   btrfs_ioctl_defrag_range_args'. */
#undef HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START

/* Define to 1 if `compat_flags' is a member of `struct
   btrfs_ioctl_feature_flags'. */
#undef HAVE_STRUCT_BTRFS_IOCTL_FEATURE_FLAGS_COMPAT_FLAGS

/* Define to 1 if `nodesize' is a member of `struct btrfs_ioctl_fs_info_args'.
   */
#undef HAVE_STRUCT_BTRFS_IOCTL_FS_INFO_ARGS_NODESIZE

/* Define to 1 if `flags' is a member of `struct
   btrfs_ioctl_logical_ino_args'. */
#undef HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS_FLAGS

/* Define to 1 if `buf_size' is a member of `struct
   btrfs_ioctl_search_args_v2'. */
#undef HAVE_STRUCT_BTRFS_IOCTL_SEARCH_ARGS_V2_BUF_SIZE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Define to 1 if `resolution' is a member of `struct input_absinfo'. */
#undef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION

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

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

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

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

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

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

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

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

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

/* Define to 1 if `ndts_table_fulls' is a member of `struct ndt_stats'. */
#undef HAVE_STRUCT_NDT_STATS_NDTS_TABLE_FULLS

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

/* Define to 1 if `aux_watermark' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_AUX_WATERMARK

/* Define to 1 if `bp_type' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_BP_TYPE

/* Define to 1 if `branch_sample_type' is a member of `struct
   perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_BRANCH_SAMPLE_TYPE

/* Define to 1 if `comm_exec' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_COMM_EXEC

/* Define to 1 if `config1' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_CONFIG1

/* Define to 1 if `config2' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_CONFIG2

/* Define to 1 if `context_switch' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_CONTEXT_SWITCH

/* Define to 1 if `exclude_callchain_kernel' is a member of `struct
   perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_CALLCHAIN_KERNEL

/* Define to 1 if `exclude_callchain_user' is a member of `struct
   perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_CALLCHAIN_USER

/* Define to 1 if `exclude_guest' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_GUEST

/* Define to 1 if `exclude_host' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_HOST

/* Define to 1 if `mmap2' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_MMAP2

/* Define to 1 if `mmap_data' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_MMAP_DATA

/* Define to 1 if `namespaces' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_NAMESPACES

/* Define to 1 if `precise_ip' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_PRECISE_IP

/* Define to 1 if `sample_id_all' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_ID_ALL

/* Define to 1 if `sample_max_stack' is a member of `struct perf_event_attr'.
   */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_MAX_STACK

/* Define to 1 if `sample_regs_intr' is a member of `struct perf_event_attr'.
   */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_REGS_INTR

/* Define to 1 if `sample_regs_user' is a member of `struct perf_event_attr'.
   */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_REGS_USER

/* Define to 1 if `sample_stack_user' is a member of `struct perf_event_attr'.
   */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_STACK_USER

/* Define to 1 if `use_clockid' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_USE_CLOCKID

/* Define to 1 if `write_backward' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_WRITE_BACKWARD

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

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

/* 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 rta_mfc_stats'. */
#undef HAVE_STRUCT_RTA_MFC_STATS

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

/* Define to 1 if `rx_nohandler' is a member of `struct rtnl_link_stats64'. */
#undef HAVE_STRUCT_RTNL_LINK_STATS64_RX_NOHANDLER

/* Define to 1 if `rx_nohandler' is a member of `struct rtnl_link_stats'. */
#undef HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER

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

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

/* Define to 1 if `l2_bdaddr_type' is a member of `struct sockaddr_l2'. */
#undef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE

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

/* Define to 1 if `st_mtime_nsec' is a member of `struct stat64'. */
#undef HAVE_STRUCT_STAT64_ST_MTIME_NSEC

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

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

/* Define to 1 if `f_flags' is a member of `struct statfs64'. */
#undef HAVE_STRUCT_STATFS64_F_FLAGS

/* Define to 1 if `f_frsize' is a member of `struct statfs64'. */
#undef HAVE_STRUCT_STATFS64_F_FRSIZE

/* Define to 1 if `f_fsid.val' is a member of `struct statfs64'. */
#undef HAVE_STRUCT_STATFS64_F_FSID_VAL

/* Define to 1 if `f_fsid.__val' is a member of `struct statfs64'. */
#undef HAVE_STRUCT_STATFS64_F_FSID___VAL

/* Define to 1 if `f_flags' is a member of `struct statfs'. */
#undef HAVE_STRUCT_STATFS_F_FLAGS

/* Define to 1 if `f_frsize' is a member of `struct statfs'. */
#undef HAVE_STRUCT_STATFS_F_FRSIZE

/* Define to 1 if `f_fsid.val' is a member of `struct statfs'. */
#undef HAVE_STRUCT_STATFS_F_FSID_VAL

/* Define to 1 if `f_fsid.__val' is a member of `struct statfs'. */
#undef HAVE_STRUCT_STATFS_F_FSID___VAL

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

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

/* Define to 1 if `tai' is a member of `struct timex'. */
#undef HAVE_STRUCT_TIMEX_TAI

/* Define to 1 if `max_beb_per1024' is a member of `struct ubi_attach_req'. */
#undef HAVE_STRUCT_UBI_ATTACH_REQ_MAX_BEB_PER1024

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

/* Define to 1 if `lm' is a member of `struct user_desc'. */
#undef HAVE_STRUCT_USER_DESC_LM

/* Define to 1 if `domainname' is a member of `struct utsname'. */
#undef HAVE_STRUCT_UTSNAME_DOMAINNAME

/* Define to 1 if `buffersize' is a member of `struct v4l2_sdr_format'. */
#undef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE

/* Define to 1 if `global_alpha' is a member of `struct v4l2_window'. */
#undef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA

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

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

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

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

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

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

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

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

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

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

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

/* Define to 1 if you have the <sys/shm.h> header file. */
#undef HAVE_SYS_SHM_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/stat.h> header file. */
#undef HAVE_SYS_STAT_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/xattr.h> header file. */
#undef HAVE_SYS_XATTR_H

/* Define to 1 if typeof works with your compiler. */
#undef HAVE_TYPEOF

/* Define to 1 if `attach_bpf_fd' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_ATTACH_BPF_FD

/* Define to 1 if `attach_flags' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_ATTACH_FLAGS

/* Define to 1 if `attach_type' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_ATTACH_TYPE

/* Define to 1 if `bpf_fd' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_BPF_FD

/* Define to 1 if `dummy' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_DUMMY

/* Define to 1 if `expected_attach_type' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_EXPECTED_ATTACH_TYPE

/* Define to 1 if `file_flags' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_FILE_FLAGS

/* Define to 1 if `flags' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_FLAGS

/* Define to 1 if `info.bpf_fd' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_INFO_BPF_FD

/* Define to 1 if `info.info' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_INFO_INFO

/* Define to 1 if `info.info_len' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_INFO_INFO_LEN

/* Define to 1 if `inner_map_fd' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_INNER_MAP_FD

/* Define to 1 if `insns' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_INSNS

/* Define to 1 if `insn_cnt' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_INSN_CNT

/* Define to 1 if `kern_version' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_KERN_VERSION

/* Define to 1 if `key' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_KEY

/* Define to 1 if `key_size' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_KEY_SIZE

/* Define to 1 if `license' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_LICENSE

/* Define to 1 if `log_buf' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_LOG_BUF

/* Define to 1 if `log_level' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_LOG_LEVEL

/* Define to 1 if `log_size' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_LOG_SIZE

/* Define to 1 if `map_fd' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_MAP_FD

/* Define to 1 if `map_flags' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_MAP_FLAGS

/* Define to 1 if `map_id' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_MAP_ID

/* Define to 1 if `map_ifindex' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_MAP_IFINDEX

/* Define to 1 if `map_name' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_MAP_NAME

/* Define to 1 if `map_type' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_MAP_TYPE

/* Define to 1 if `max_entries' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_MAX_ENTRIES

/* Define to 1 if `next_id' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_NEXT_ID

/* Define to 1 if `next_key' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_NEXT_KEY

/* Define to 1 if `numa_node' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_NUMA_NODE

/* Define to 1 if `open_flags' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_OPEN_FLAGS

/* Define to 1 if `pathname' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_PATHNAME

/* Define to 1 if `prog_flags' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_PROG_FLAGS

/* Define to 1 if `prog_id' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_PROG_ID

/* Define to 1 if `prog_ifindex' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_PROG_IFINDEX

/* Define to 1 if `prog_name' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_PROG_NAME

/* Define to 1 if `prog_type' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_PROG_TYPE

/* Define to 1 if `query.attach_flags' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_QUERY_ATTACH_FLAGS

/* Define to 1 if `query.attach_type' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_QUERY_ATTACH_TYPE

/* Define to 1 if `query.prog_cnt' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_QUERY_PROG_CNT

/* Define to 1 if `query.prog_ids' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_QUERY_PROG_IDS

/* Define to 1 if `query.query_flags' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_QUERY_QUERY_FLAGS

/* Define to 1 if `query.target_fd' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_QUERY_TARGET_FD

/* Define to 1 if `raw_tracepoint.name' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_NAME

/* Define to 1 if `raw_tracepoint.prog_fd' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_PROG_FD

/* Define to 1 if `start_id' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_START_ID

/* Define to 1 if `target_fd' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_TARGET_FD

/* Define to 1 if `test.data_in' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_TEST_DATA_IN

/* Define to 1 if `test.data_out' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_TEST_DATA_OUT

/* Define to 1 if `test.data_size_in' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_TEST_DATA_SIZE_IN

/* Define to 1 if `test.data_size_out' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_TEST_DATA_SIZE_OUT

/* Define to 1 if `test.duration' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_TEST_DURATION

/* Define to 1 if `test.prog_fd' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_TEST_PROG_FD

/* Define to 1 if `test.repeat' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_TEST_REPEAT

/* Define to 1 if `test.retval' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_TEST_RETVAL

/* Define to 1 if `value' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_VALUE

/* Define to 1 if `value_size' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_VALUE_SIZE

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

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

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

/* Define to 1 if the system provides _Static_assert */
#undef HAVE__STATIC_ASSERT

/* Define to 1 if the system provides __builtin_popcount function */
#undef HAVE___BUILTIN_POPCOUNT

/* Define to 1 if the system has the type `__kernel_long_t'. */
#undef HAVE___KERNEL_LONG_T

/* Define to 1 if the system has the type `__kernel_ulong_t'. */
#undef HAVE___KERNEL_ULONG_T

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

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

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

/* Define for _ABIN32. */
#undef LINUX_MIPSN32

/* Define for _ABI64. */
#undef LINUX_MIPSN64

/* Define for _ABIO32. */
#undef LINUX_MIPSO32

/* The size of `kernel_long_t', as computed by sizeof. */
#undef M32_SIZEOF_KERNEL_LONG_T

/* The size of `long', as computed by sizeof. */
#undef M32_SIZEOF_LONG

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

/* Date */
#undef MANPAGE_DATE

/* Define for the Meta architecture. */
#undef METAG

/* Define for the MicroBlaze architecture. */
#undef MICROBLAZE

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

/* The size of `kernel_long_t', as computed by sizeof. */
#undef MX32_SIZEOF_KERNEL_LONG_T

/* The size of `long', as computed by sizeof. */
#undef MX32_SIZEOF_LONG

/* Define for the Nios-II architecture. */
#undef NIOS2

/* Define for the OpenRISC 1000 architecture. */
#undef OR1K

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

/* Define for the RISC-V architecture */
#undef RISCV

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

/* The size of `kernel_long_t', as computed by sizeof. */
#undef SIZEOF_KERNEL_LONG_T

/* The size of `long', as computed by sizeof. */
#undef SIZEOF_LONG

/* The size of `long long', as computed by sizeof. */
#undef SIZEOF_LONG_LONG

/* The size of `off_t', as computed by sizeof. */
#undef SIZEOF_OFF_T

/* The size of `struct i64_i32', as computed by sizeof. */
#undef SIZEOF_STRUCT_I64_I32

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

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

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

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

/* Do symbols demangling in stack trace */
#undef USE_DEMANGLE

/* Whether to use libdw for stack tracing */
#undef USE_LIBDW

/* Whether to use libunwind for stack tracing */
#undef USE_LIBUNWIND

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


/* The unwinder to use for stack tracing support */
#undef USE_UNWINDER

/* Version number of package */
#undef VERSION

/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
   significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#  define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
#  undef WORDS_BIGENDIAN
# endif
#endif

/* Define for the 32bit AMD x86-64 architecture. */
#undef X32

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

/* Define for the Xtensa architecture */
#undef XTENSA

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

/* Define to __typeof__ if your compiler spells it that way. */
#undef typeof

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