aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/ChangeLog6
-rwxr-xr-xgold/configure1
-rw-r--r--gold/configure.ac3
3 files changed, 9 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index e7676ca..d25fb59 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,9 @@
+2011-03-02 Simon Baldwin <simonb@google.com>
+
+ * configure.ac: Add check for gnu_indirect_function support in
+ the toolchain building binutils.
+ * configure: Rebuild.
+
2010-02-18 Rafael Ávila de Espíndola <respindola@mozilla.com>
* symtab.cc (Symbol::should_add_dynsym_entry) Return false for
diff --git a/gold/configure b/gold/configure
index c759b77..1a0d47d 100755
--- a/gold/configure
+++ b/gold/configure
@@ -6384,6 +6384,7 @@ error
#elif __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 11)
error
#endif
+__asm__(".type foo, %gnu_indirect_function");
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
diff --git a/gold/configure.ac b/gold/configure.ac
index 2c50d97..60243d0 100644
--- a/gold/configure.ac
+++ b/gold/configure.ac
@@ -369,7 +369,7 @@ fi
AC_SUBST(RANDOM_SEED_CFLAGS)
dnl On GNU/Linux ifunc is supported by the dynamic linker in glibc
-dnl 2.11 or later.
+dnl 2.11 or later, and by binutils 2.20.1 or later.
AC_CACHE_CHECK([for glibc >= 2.11], [gold_cv_lib_glibc2_11],
[AC_COMPILE_IFELSE([
#include <features.h>
@@ -378,6 +378,7 @@ error
#elif __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 11)
error
#endif
+__asm__(".type foo, %gnu_indirect_function");
], [gold_cv_lib_glibc2_11=yes], [gold_cv_lib_glibc2_11=no])])
AM_CONDITIONAL(IFUNC, test "$gold_cv_lib_glibc2_11" = "yes")