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-03 02:06:46 +02:00
parent 99c54fe42d
commit f98c458c92
3 changed files with 17 additions and 17 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)

24
configure vendored
View File

@@ -15510,7 +15510,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 ()
{ {
@@ -15578,7 +15578,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 ()
{ {
@@ -15646,7 +15646,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 ()
{ {
@@ -15714,7 +15714,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 ()
{ {
@@ -15782,7 +15782,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 ()
{ {
@@ -15850,7 +15850,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 ()
{ {
@@ -15918,7 +15918,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 ()
{ {
@@ -15986,7 +15986,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 ()
{ {
@@ -16065,7 +16065,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 ()
{ {
@@ -16137,7 +16137,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 ()
{ {
@@ -16209,7 +16209,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 ()
{ {
@@ -16283,7 +16283,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 ()
{ {

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 ()
{ {