#if !defined IS_IN_build && !defined __ASSEMBLER__ && !defined _ISOMAC \
    && !defined __OPTIMIZE__
# error "glibc cannot be compiled without optimization"
#endif

/* Another evil option when it comes to compiling the C library is
   --ffast-math since it alters the ABI.  */
#if defined __FAST_MATH__ && !defined TEST_FAST_MATH
# error "glibc must not be compiled with -ffast-math"
#endif

/* Define if building with SELinux support.  Set by --with-selinux.  */
#undef	HAVE_SELINUX

/* Defined if building with SELinux support & audit libs are detected. */
#undef	HAVE_LIBAUDIT

/* Defined if building with SELinux support & libcap libs are detected.  */
#undef  HAVE_LIBCAP

/* Define to the assembler line separator character for multiple
   assembler instructions per line.  Default is `;'  */
#undef ASM_LINE_SEP

/* Define if __attribute__((section("foo"))) puts quotes around foo.  */
#undef  HAVE_SECTION_QUOTES

/* Define if the assembler supports the `.set' directive.  */
#undef	HAVE_ASM_SET_DIRECTIVE

/* On powerpc64, use overlapping .opd entries.  */
#undef  USE_PPC64_OVERLAPPING_OPD

/* Define if _Unwind_Find_FDE should be exported from glibc.  */
#undef  EXPORT_UNWIND_FIND_FDE

/* Define if static NSS modules are wanted.  */
#undef	DO_STATIC_NSS

/* Define if the compiler supports __builtin_memset.  */
#undef	HAVE_BUILTIN_MEMSET

/* Define if compiler accepts -ftree-loop-distribute-patterns.  */
#undef  HAVE_CC_INHIBIT_LOOP_TO_LIBCALL

/* Define if the regparm attribute shall be used for local functions
   (gcc on ix86 only).  */
#undef	USE_REGPARMS

/* Defined on SPARC if GCC emits GOTDATA relocations.  */
#undef  HAVE_GCC_GOTDATA

/* Define on SPARC if AS supports VIS3 instructions.  */
#undef  HAVE_AS_VIS3_SUPPORT

/* Define if the linker supports the -z combreloc option.  */
#undef	HAVE_Z_COMBRELOC

/* Define if _rtld_local structure should be forced into .sdata section.  */
#undef	HAVE_SDATA_SECTION

/* Define if compiler supports AVX512.  */
#undef  HAVE_AVX512_SUPPORT

/* Define if assembler supports AVX512.  */
#undef  HAVE_AVX512_ASM_SUPPORT

/* Define if assembler supports vector instructions on S390.  */
#undef  HAVE_S390_VX_ASM_SUPPORT

/* Define if assembler supports Intel MPX.  */
#undef  HAVE_MPX_SUPPORT

/* Define if the compiler\'s exception support is based on libunwind.  */
#undef	HAVE_CC_WITH_LIBUNWIND

/* Define if the access to static and hidden variables is position independent
   and does not need relocations.  */
#undef	PI_STATIC_AND_HIDDEN

/* Define this to disable the 'hidden_proto' et al macros in
   include/libc-symbols.h that avoid PLT slots in the shared objects.  */
#undef	NO_HIDDEN

/* AArch64 big endian ABI */
#undef HAVE_AARCH64_BE


/* Defined to some form of __attribute__ ((...)) if the compiler supports
   a different, more efficient calling convention.  */
#if defined USE_REGPARMS && !defined PROF
# define internal_function __attribute__ ((regparm (3), stdcall))
#endif

/* Linux specific: minimum supported kernel version.  */
#undef	__LINUX_KERNEL_VERSION

/* Override abi-tags ABI version if necessary.  */
#undef  __ABI_TAG_VERSION

/* bash 2.0 introduced the _XXX_GNU_nonoption_argv_flags_ variable to help
   getopt determine whether a parameter is a flag or not.  This features
   was disabled later since it caused trouble.  We are by default therefore
   disabling the support as well.  */
#undef USE_NONOPTION_FLAGS

/* Mach/Hurd specific: define if mig supports the `retcode' keyword.  */
#undef	HAVE_MIG_RETCODE

/* Mach specific: define if the `host_page_size' RPC is available.  */
#undef	HAVE_HOST_PAGE_SIZE

/* Mach/i386 specific: define if the `i386_io_perm_*' RPCs are available.  */
#undef	HAVE_I386_IO_PERM_MODIFY

/* Mach/i386 specific: define if the `i386_set_gdt' RPC is available.  */
#undef	HAVE_I386_SET_GDT

/* Defined of libidn is available.  */
#undef HAVE_LIBIDN

/* Define if inlined system calls are available.  */
#undef HAVE_INLINED_SYSCALLS

/* Define if your compiler defaults to -msecure-plt mode on ppc.  */
#undef HAVE_PPC_SECURE_PLT

/* Define if __stack_chk_guard canary should be randomized at program startup.  */
#undef ENABLE_STACKGUARD_RANDOMIZE

/* Define if lock elision should be enabled by default.  */
#undef ENABLE_LOCK_ELISION

/* Package description.  */
#undef PKGVERSION

/* Bug reporting address.  */
#undef REPORT_BUGS_TO

/* Define if multi-arch DSOs should be generated.  */
#undef USE_MULTIARCH

/* Define if `.ctors' and `.dtors' sections shouldn't be used.  */
#undef	NO_CTORS_DTORS_SECTIONS

/* Define if obsolete RPC code should be made available for user-level code
   to link against.  */
#undef LINK_OBSOLETE_RPC

/* Define if Systemtap <sys/sdt.h> probes should be defined.  */
#undef USE_STAP_PROBE

/* Define if library functions should try to contact the nscd daemon.  */
#undef USE_NSCD

/* Define if the dynamic linker should consult an ld.so.cache file.  */
#undef USE_LDCONFIG

/* Define to 1 if STT_GNU_IFUNC support actually works.  */
#define HAVE_IFUNC 0

/* Define if linux/fanotify.h is available.  */
#undef HAVE_LINUX_FANOTIFY_H

/* Define if the linker defines __ehdr_start.  */
#undef HAVE_EHDR_START

/*
 */

#ifndef	_LIBC

/* These symbols might be defined by some sysdeps configures.
   They are used only in miscellaneous generator programs, not
   in compiling libc itself.   */

/* sysdeps/generic/configure.ac */
#undef	HAVE_PSIGNAL

/* sysdeps/unix/configure.ac */
#undef	HAVE_STRERROR

/* sysdeps/unix/common/configure.ac */
#undef	HAVE_SYS_SIGLIST
#undef	HAVE__SYS_SIGLIST
#undef	HAVE__CTYPE_
#undef	HAVE___CTYPE_
#undef	HAVE___CTYPE
#undef	HAVE__CTYPE__
#undef	HAVE__CTYPE
#undef	HAVE__LOCP

#endif

/*
 */

#ifdef	_LIBC

/* The zic and zdump programs need these definitions.  */

#define	HAVE_STRERROR	1

/* The locale code needs these definitions.  */

#define HAVE_REGEX 1

/* The ARM hard-float ABI is being used.  */
#undef HAVE_ARM_PCS_VFP

/* The ARM movw/movt instructions using PC-relative relocs work right.  */
#define ARM_PCREL_MOVW_OK 0

/* The pt_chown binary is being built and used by grantpt.  */
#define HAVE_PT_CHOWN 0

/* Define if the compiler supports __builtin_trap without
   any external dependencies such as making a function call.  */
#define HAVE_BUILTIN_TRAP 0

/* ports/sysdeps/mips/configure.in  */
/* Define if using the IEEE 754-2008 NaN encoding on the MIPS target.  */
#undef HAVE_MIPS_NAN2008

/* The PowerPC64 ELFv2 ABI is being used.  */
#undef HAVE_ELFV2_ABI

/* PowerPC32 uses fcfid for integer to floating point conversions.  */
#define HAVE_PPC_FCFID 0

/* PowerPC32 uses fctidz for floating point to long long conversions.  */
#define HAVE_PPC_FCTIDZ 0

#endif
