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

/* Define it if GAS requires that absolute indirect calls/jumps are not
   prefixed with an asterisk */
#undef ABSOLUTE_WITHOUT_ASTERISK

/* Define it to \"addr32\" or \"addr32;\" to make GAS happy */
#undef ADDR32

/* Define it to one of __bss_start, edata and _edata */
#undef BSS_START_SYMBOL

/* Define it to \"data32\" or \"data32;\" to make GAS happy */
#undef DATA32

/* Define it to either end or _end */
#undef END_SYMBOL

/* Define if C symbols get an underscore after compilation */
#undef HAVE_ASM_USCORE

/* Define to 1 if you have the `asprintf' function. */
#undef HAVE_ASPRINTF

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

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

/* Define to 1 if you have the `memalign' function. */
#undef HAVE_MEMALIGN

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

/* Define to 1 if you have the <ncurses/curses.h> header file. */
#undef HAVE_NCURSES_CURSES_H

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

/* Define to 1 if you have the `posix_memalign' function. */
#undef HAVE_POSIX_MEMALIGN

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

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

/* Define to 1 if you have the `__ashldi3' function. */
#undef HAVE___ASHLDI3

/* Define to 1 if you have the `__ashrdi3' function. */
#undef HAVE___ASHRDI3

/* Define to 1 if you have the `__bswapdi2' function. */
#undef HAVE___BSWAPDI2

/* Define to 1 if you have the `__bswapsi2' function. */
#undef HAVE___BSWAPSI2

/* Define to 1 if you have the `__lshrdi3' function. */
#undef HAVE___LSHRDI3

/* Define to 1 if you have the `__trampoline_setup' function. */
#undef HAVE___TRAMPOLINE_SETUP

/* Define to 1 if you have the `__ucmpdi2' function. */
#undef HAVE___UCMPDI2

/* Define to 1 if you enable memory manager debugging. */
#undef MM_DEBUG

/* Define to 1 if GCC generates calls to __enable_execute_stack() */
#undef NEED_ENABLE_EXECUTE_STACK

/* Catch gcc bug */
#undef NESTED_FUNC_ATTR

/* 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 version of this package. */
#undef PACKAGE_VERSION

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

/* The size of `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P

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

/* Define to 1 if your processor stores words with the most significant byte
   first (like Motorola and SPARC, unlike Intel and VAX). */
#undef WORDS_BIGENDIAN

/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS

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

/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES

#if defined(__i386__) && !defined(GRUB_UTIL)
#define NESTED_FUNC_ATTR __attribute__ ((__regparm__ (1)))
#else
#define NESTED_FUNC_ATTR
#endif
