mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +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.1@200989 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.]), | ||||
|   | ||||
							
								
								
									
										99
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										99
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @@ -17470,6 +17470,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 | ||||
| @@ -17478,7 +17485,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 () | ||||
| { | ||||
| @@ -17529,7 +17536,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 () | ||||
| { | ||||
| @@ -17584,6 +17591,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 | ||||
| @@ -17592,7 +17606,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 () | ||||
| { | ||||
| @@ -17643,7 +17657,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 () | ||||
| { | ||||
| @@ -17698,6 +17712,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 | ||||
| @@ -17706,7 +17727,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 () | ||||
| { | ||||
| @@ -17757,7 +17778,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 () | ||||
| { | ||||
| @@ -17812,6 +17833,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 | ||||
| @@ -17820,7 +17848,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 () | ||||
| { | ||||
| @@ -17871,7 +17899,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 () | ||||
| { | ||||
| @@ -17926,6 +17954,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 | ||||
| @@ -17934,7 +17969,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 () | ||||
| { | ||||
| @@ -17985,7 +18020,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 () | ||||
| { | ||||
| @@ -18040,6 +18075,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 | ||||
| @@ -18048,7 +18090,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 () | ||||
| { | ||||
| @@ -18099,7 +18141,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 () | ||||
| { | ||||
| @@ -18154,6 +18196,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 | ||||
| @@ -18162,7 +18211,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 () | ||||
| { | ||||
| @@ -18213,7 +18262,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 () | ||||
| { | ||||
| @@ -18268,6 +18317,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 | ||||
| @@ -18276,7 +18332,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 () | ||||
| { | ||||
| @@ -18327,7 +18383,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 () | ||||
| { | ||||
| @@ -18382,6 +18438,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 | ||||
| @@ -18390,7 +18453,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 () | ||||
| { | ||||
| @@ -18441,7 +18504,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 () | ||||
| { | ||||
|   | ||||
| @@ -488,7 +488,7 @@ AST_GCC_ATTRIBUTE(always_inline) | ||||
| AST_GCC_ATTRIBUTE(deprecated) | ||||
| AST_GCC_ATTRIBUTE(sentinel) | ||||
| AST_GCC_ATTRIBUTE(warn_unused_result) | ||||
| AST_GCC_ATTRIBUTE(weak) | ||||
| AST_GCC_ATTRIBUTE(weak, , "") | ||||
|  | ||||
| AC_MSG_CHECKING(for -ffunction-sections support) | ||||
| saved_CFLAGS="${CFLAGS}" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user