weakref attribute detection broken with gcc 4.6 and higher

GCC 4.7 Manual:
http://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Function-Attributes.html

weakref ("target")

A weak reference is an alias that does not by itself require a definition
to be given for the target symbol.

ASTERISK-22559 #close
Reported by: Ibercom

Change-Id: I36a136cae947b65187a697533416f9ff9a0b8cdf
This commit is contained in:
ibercom
2015-06-09 20:41:54 +02:00
parent bbeb753e5e
commit f897f36721
3 changed files with 16 additions and 16 deletions

View File

@@ -20,7 +20,7 @@ AC_COMPILE_IFELSE(
) )
else else
AC_COMPILE_IFELSE( AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([$3 void __attribute__(($2)) *test(void *muffin, ...) {return (void *) 0;}], [AC_LANG_PROGRAM([$3 void __attribute__(($2)) *test(void *muffin, ...) ;],
[])], [])],
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes)
m4_ifval([$4],$4=1) m4_ifval([$4],$4=1)

22
configure vendored
View File

@@ -16720,7 +16720,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -16788,7 +16788,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -16856,7 +16856,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -16924,7 +16924,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -16992,7 +16992,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -17060,7 +17060,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -17128,7 +17128,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -17196,7 +17196,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -17264,7 +17264,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -17332,7 +17332,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -17400,7 +17400,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {

View File

@@ -3227,7 +3227,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -3299,7 +3299,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;} void __attribute__(()) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -3371,7 +3371,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
static void __attribute__((weakref("foo"))) *test(void *muffin, ...) {return (void *) 0;} static void __attribute__((weakref("foo"))) *test(void *muffin, ...) ;
int int
main () main ()
{ {
@@ -3445,7 +3445,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
static void __attribute__((weakref("foo"))) *test(void *muffin, ...) {return (void *) 0;} static void __attribute__((weakref("foo"))) *test(void *muffin, ...) ;
int int
main () main ()
{ {