diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac index f84b92db0..e239e8a1a 100644 --- a/configure.ac +++ b/configure.ac @@ -898,9 +898,37 @@ AST_GCC_ATTRIBUTE(always_inline) AST_GCC_ATTRIBUTE(deprecated) AST_GCC_ATTRIBUTE(sentinel) AST_GCC_ATTRIBUTE(warn_unused_result) -AST_GCC_ATTRIBUTE(weak_import, [], [], PBX_WEAKREF) -AST_GCC_ATTRIBUTE(weak, [], [], PBX_WEAKREF) -AST_GCC_ATTRIBUTE(weakref, [weakref("foo")], static, PBX_WEAKREF) + +# Support weak symbols on a platform specific basis. The Mac OS X +# (Darwin) support must be isolated from the other platforms because +# it has caused other platforms to fail. +# +case "${OSARCH}" in + darwin*) + # Allow weak symbol support on Darwin platforms only because there + # is active community support for it. + # However, Darwin seems to break weak symbols for each new version. + # + AST_GCC_ATTRIBUTE(weak_import, [], [], PBX_WEAKREF) + + # Several other platforms including Linux have GCC versions that + # define the weak attribute. However, this attribute is only + # setup for use in the code by Darwin. + AST_GCC_ATTRIBUTE(weak, [], [], PBX_WEAKREF) + ;; + linux-gnu) + # Primarily support weak symbols on Linux platforms. + # + AST_GCC_ATTRIBUTE(weakref, [weakref("foo")], static, PBX_WEAKREF) + ;; + *) + # Allow weak symbols on other platforms. However, any problems + # with this feature on other platforms must be fixed by the + # community. + # + AST_GCC_ATTRIBUTE(weakref, [weakref("foo")], static, PBX_WEAKREF) + ;; +esac AC_MSG_CHECKING(for -ffunction-sections support) saved_CFLAGS="${CFLAGS}" |