1 dnl modified AC_C_INLINE from autoconf/c.m4 by TWISTI
3 AN_IDENTIFIER([attribute], [AC_C_ATTRIBUTE])
4 AC_DEFUN([AC_C_ATTRIBUTE],
5 [AC_CACHE_CHECK([for __attribute__], ac_cv_c_attribute,
7 AC_COMPILE_IFELSE([AC_LANG_SOURCE(
8 [void foo(void) __attribute__ ((__noreturn__));]
10 [ac_cv_c_attribute=yes],
11 [ac_cv_c_attribute=no]
14 AH_VERBATIM([attribute],
15 [/* Define to `__attribute__' to nothing if it's not supported. */
19 case $ac_cv_c_attribute in
22 cat >>confdefs.h <<_ACEOF
24 #define __attribute__(x) /* nothing */
32 #check how to do asm(".skip 16")
34 AN_IDENTIFIER([skip16], [AC_ASM_SKIP16])
35 AC_DEFUN([AC_ASM_SKIP16],
36 [AC_MSG_CHECKING([if and how we can waste code space])
37 if test -z "$skipcode"; then
40 CFLAGS="$CFLAGS $ENGINE_FLAGS"
41 for i in ".skip 16" ".block 16" ".org .+16" ".=.+16" ".space 16"
44 [int foo(int,int,int);
49 int foo(int x, int y, int z)
51 static void *labels[]={&&label1, &&label2};
53 y++; /* workaround for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12108 */
55 __asm__("$i"); /* or ".space 16" or somesuch */
59 if (y) goto *labels[z]; /* workaround for gcc PR12108 */
60 return labels[1]-labels[0];
68 AC_MSG_RESULT($skipcode)
69 if test "$skipcode" = no
71 if test -z $no_dynamic_default; then
73 AC_MSG_WARN(Disabling default dynamic native code generation)
75 AC_DEFINE_UNQUOTED(SKIP16,((void)0),statement for skipping 16 bytes)
77 AC_DEFINE_UNQUOTED(SKIP16,__asm__("$skipcode"),statement for skipping 16 bytes)