diff --git a/gold/ChangeLog b/gold/ChangeLog index e7676ca2c7..d25fb59b2f 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2011-03-02 Simon Baldwin + + * configure.ac: Add check for gnu_indirect_function support in + the toolchain building binutils. + * configure: Rebuild. + 2010-02-18 Rafael Ávila de Espíndola * symtab.cc (Symbol::should_add_dynsym_entry) Return false for diff --git a/gold/configure b/gold/configure index c759b77575..1a0d47d03a 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 2c50d9741c..60243d0709 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 @@ -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")