diff options
Diffstat (limited to 'autoconf')
-rw-r--r-- | autoconf/ast_gcc_attribute.m4 | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/autoconf/ast_gcc_attribute.m4 b/autoconf/ast_gcc_attribute.m4 index 167bb4e79..c4488454d 100644 --- a/autoconf/ast_gcc_attribute.m4 +++ b/autoconf/ast_gcc_attribute.m4 @@ -1,17 +1,31 @@ # Helper function to check for gcc attributes. -# AST_GCC_ATTRIBUTE([attribute name]) +# AST_GCC_ATTRIBUTE([attribute name], [attribute syntax]) AC_DEFUN([AST_GCC_ATTRIBUTE], [ AC_MSG_CHECKING(for compiler 'attribute $1' support) saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" + +if test "x$2" = "x" +then AC_COMPILE_IFELSE( AC_LANG_PROGRAM([void __attribute__(($1)) *test(void *muffin, ...) {}], []), AC_MSG_RESULT(yes) AC_DEFINE_UNQUOTED([HAVE_ATTRIBUTE_$1], 1, [Define to 1 if your GCC C compiler supports the '$1' attribute.]), - AC_MSG_RESULT(no)) -] + AC_MSG_RESULT(no) +) +else +AC_COMPILE_IFELSE( + AC_LANG_PROGRAM([void __attribute__(($2)) *test(void *muffin, ...) {}], + []), + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED([HAVE_ATTRIBUTE_$1], 1, [Define to 1 if your GCC C compiler supports the '$1' attribute.]), + AC_MSG_RESULT(no) +) +fi + CFLAGS="$saved_CFLAGS" +] ) |