mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-20 08:40:16 +00:00
Merged revisions 200985 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r200985 | kpfleming | 2009-06-16 11:32:36 -0500 (Tue, 16 Jun 2009) | 7 lines Fix problems with new compiler attribute checking in configure script. The last changes to ast_gcc_attribute.m4 caused some problems checking for various attributes, because the scope of the symbol the attribute is applied to can be important; this patch allows the scope to be specified for the check. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.2@200990 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# Helper function to check for gcc attributes.
|
||||
# AST_GCC_ATTRIBUTE([attribute name], [attribute syntax])
|
||||
# AST_GCC_ATTRIBUTE([attribute name], [attribute syntax], [attribute scope])
|
||||
|
||||
AC_DEFUN([AST_GCC_ATTRIBUTE],
|
||||
[
|
||||
@@ -7,10 +7,17 @@ AC_MSG_CHECKING(for compiler 'attribute $1' support)
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x$3" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope="$3"
|
||||
fi
|
||||
|
||||
if test "x$2" = "x"
|
||||
then
|
||||
AC_COMPILE_IFELSE(
|
||||
AC_LANG_PROGRAM([static void __attribute__(($1)) *test(void *muffin, ...) {return (void *) 0;}],
|
||||
AC_LANG_PROGRAM([$attribute_scope void __attribute__(($1)) *test(void *muffin, ...) {return (void *) 0;}],
|
||||
[]),
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE_UNQUOTED([HAVE_ATTRIBUTE_$1], 1, [Define to 1 if your GCC C compiler supports the '$1' attribute.]),
|
||||
@@ -18,7 +25,7 @@ AC_COMPILE_IFELSE(
|
||||
)
|
||||
else
|
||||
AC_COMPILE_IFELSE(
|
||||
AC_LANG_PROGRAM([static void __attribute__(($2)) *test(void *muffin, ...) {return (void *) 0;}],
|
||||
AC_LANG_PROGRAM([$attribute_scope void __attribute__(($2)) *test(void *muffin, ...) {return (void *) 0;}],
|
||||
[]),
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE_UNQUOTED([HAVE_ATTRIBUTE_$1], 1, [Define to 1 if your GCC C compiler supports the '$1' attribute.]),
|
||||
|
||||
121
configure
vendored
121
configure
vendored
@@ -17940,6 +17940,13 @@ $as_echo_n "checking for compiler 'attribute pure' support... " >&6; }
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""
|
||||
fi
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -17948,7 +17955,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((pure)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((pure)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -17999,7 +18006,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18054,6 +18061,13 @@ $as_echo_n "checking for compiler 'attribute malloc' support... " >&6; }
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""
|
||||
fi
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -18062,7 +18076,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((malloc)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((malloc)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18113,7 +18127,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18168,6 +18182,13 @@ $as_echo_n "checking for compiler 'attribute const' support... " >&6; }
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""
|
||||
fi
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -18176,7 +18197,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((const)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((const)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18227,7 +18248,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18282,6 +18303,13 @@ $as_echo_n "checking for compiler 'attribute unused' support... " >&6; }
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""
|
||||
fi
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -18290,7 +18318,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((unused)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((unused)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18341,7 +18369,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18396,6 +18424,13 @@ $as_echo_n "checking for compiler 'attribute always_inline' support... " >&6; }
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""
|
||||
fi
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -18404,7 +18439,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((always_inline)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((always_inline)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18455,7 +18490,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18510,6 +18545,13 @@ $as_echo_n "checking for compiler 'attribute deprecated' support... " >&6; }
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""
|
||||
fi
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -18518,7 +18560,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((deprecated)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((deprecated)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18569,7 +18611,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18624,6 +18666,13 @@ $as_echo_n "checking for compiler 'attribute sentinel' support... " >&6; }
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""
|
||||
fi
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -18632,7 +18681,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((sentinel)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((sentinel)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18683,7 +18732,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18738,6 +18787,13 @@ $as_echo_n "checking for compiler 'attribute warn_unused_result' support... " >&
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""
|
||||
fi
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -18746,7 +18802,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((warn_unused_result)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((warn_unused_result)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18797,7 +18853,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18852,6 +18908,13 @@ $as_echo_n "checking for compiler 'attribute weak' support... " >&6; }
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""
|
||||
fi
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -18860,7 +18923,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((weak)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((weak)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18911,7 +18974,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -18966,6 +19029,13 @@ $as_echo_n "checking for compiler 'attribute weak_import' support... " >&6; }
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x""" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""""
|
||||
fi
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -18974,7 +19044,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((weak_import)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((weak_import)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -19025,7 +19095,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -19080,6 +19150,13 @@ $as_echo_n "checking for compiler 'attribute alias' support... " >&6; }
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
|
||||
|
||||
if test "x" = "x"
|
||||
then
|
||||
attribute_scope="static"
|
||||
else
|
||||
attribute_scope=""
|
||||
fi
|
||||
|
||||
if test "xalias("foo")" = "x"
|
||||
then
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
@@ -19088,7 +19165,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((alias)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((alias)) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -19139,7 +19216,7 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
static void __attribute__((alias("foo"))) *test(void *muffin, ...) {return (void *) 0;}
|
||||
$attribute_scope void __attribute__((alias("foo"))) *test(void *muffin, ...) {return (void *) 0;}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
@@ -513,7 +513,7 @@ AST_GCC_ATTRIBUTE(deprecated)
|
||||
AST_GCC_ATTRIBUTE(sentinel)
|
||||
AST_GCC_ATTRIBUTE(warn_unused_result)
|
||||
AST_GCC_ATTRIBUTE(weak)
|
||||
AST_GCC_ATTRIBUTE(weak_import)
|
||||
AST_GCC_ATTRIBUTE(weak_import, , "")
|
||||
AST_GCC_ATTRIBUTE(alias, [alias("foo")])
|
||||
|
||||
AC_MSG_CHECKING(for -ffunction-sections support)
|
||||
|
||||
Reference in New Issue
Block a user