OLD | NEW |
(Empty) | |
| 1 |
| 2 dnl Check if the target supports weak. |
| 3 AC_DEFUN([GCC_CHECK_ATTRIBUTE_WEAK], [ |
| 4 AC_CACHE_CHECK([whether the target supports weak], |
| 5 ac_cv_have_attribute_weak, [ |
| 6 weakref_m4_saved_CFLAGS="$CFLAGS" |
| 7 CFLAGS="$CFLAGS -Werror" |
| 8 AC_TRY_COMPILE([void __attribute__((weak)) foo(void) { }], |
| 9 [], ac_cv_have_attribute_weak=yes, |
| 10 ac_cv_have_attribute_weak=no) |
| 11 CFLAGS="$weakref_m4_saved_CFLAGS"]) |
| 12 if test x"$ac_cv_have_attribute_weak" = xyes; then |
| 13 AC_DEFINE(HAVE_ATTRIBUTE_WEAK, 1, |
| 14 [Define to 1 if the target supports __attribute__((weak)).]) |
| 15 fi]) |
| 16 |
| 17 dnl Check whether weak refs work like the ELF ones. |
| 18 dnl This means that the weak reference works without having to satify |
| 19 dnl linkage for the item. |
| 20 dnl There are targets (at least Darwin) where we have fully functional |
| 21 dnl weakrefs at runtime, but must supply the referenced item at link time. |
| 22 AC_DEFUN([GCC_CHECK_ELF_STYLE_WEAKREF], [ |
| 23 AC_CACHE_CHECK([whether weak refs work like ELF], |
| 24 ac_cv_have_elf_style_weakref, [ |
| 25 weakref_m4_saved_CFLAGS="$CFLAGS" |
| 26 case "${host}" in |
| 27 *-apple-darwin*) CFLAGS="$CFLAGS -Wl,-undefined,dynamic_lookup" ;; |
| 28 *) ;; |
| 29 esac |
| 30 AC_RUN_IFELSE([AC_LANG_SOURCE([[ |
| 31 extern void fNotToBeFound(void) __attribute__((weak)); |
| 32 int main () |
| 33 { |
| 34 if (fNotToBeFound) |
| 35 return 1; |
| 36 else |
| 37 return 0; |
| 38 } |
| 39 ]])], ac_cv_have_elf_style_weakref=yes, ac_cv_have_elf_style_weakref=no, [ |
| 40 case "${host}" in |
| 41 *-apple-darwin[[89]]*) ac_cv_have_elf_style_weakref=no ;; |
| 42 *) ac_cv_have_elf_style_weakref=yes;; |
| 43 esac])CFLAGS="$weakref_m4_saved_CFLAGS"]) |
| 44 if test x"$ac_cv_have_elf_style_weakref" = xyes; then |
| 45 AC_DEFINE(HAVE_ELF_STYLE_WEAKREF, 1, [Define to 1 if target has a weakref that
works like the ELF one.]) |
| 46 fi]) |
| 47 |
OLD | NEW |