aboutsummaryrefslogtreecommitdiff
path: root/gcc/configure.ac
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2010-09-09 14:12:57 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2010-09-09 14:12:57 +0000
commitba885ec559ca39e0dc23641dbbe67cc0072378f3 (patch)
treeda6907a1c5c815841942c5773bfc6c02f7b889e8 /gcc/configure.ac
parente3cdb7cf9a0d934b9cdc24d40d730141e5752f60 (diff)
downloadgcc-ba885ec559ca39e0dc23641dbbe67cc0072378f3.zip
gcc-ba885ec559ca39e0dc23641dbbe67cc0072378f3.tar.gz
gcc-ba885ec559ca39e0dc23641dbbe67cc0072378f3.tar.bz2
configure.ac (gnu_indirect_function): New test.
* configure.ac (gnu_indirect_function): New test. * configure: Rebuilt. * config.in (HAVE_GAS_INDIRECT_FUNCTION): New. * defaults.h (IFUNC_ASM_TYPE): Provide default. * doc/extend.texi (Function Attributes): Document ifunc. * varasm.c (do_assemble_alias): Deal with ifuncs too. c-family/ * c-common.c (handle_alias_ifunc_attribute): New, broken out of ... (handle_alias_attribute): ... here. (handle_ifunc_attribute): New. testsuite/ * lib/target-supports-dg.exp (dg-require-ifunc): New. * lib/target-supports.exp (check_ifunc_available): New. * gcc.dg/attr-ifunc-1.c: New. * gcc.dg/attr-ifunc-2.c: New. * gcc.dg/attr-ifunc-3.c: New. * gcc.dg/attr-ifunc-4.c: New. * gcc.dg/attr-ifunc-5.c: New. * testsuite/g++.dg/ext/attr-ifunc-1.C * testsuite/g++.dg/ext/attr-ifunc-2.C * testsuite/g++.dg/ext/attr-ifunc-3.C * testsuite/g++.dg/ext/attr-ifunc-4.C From-SVN: r164110
Diffstat (limited to 'gcc/configure.ac')
-rw-r--r--gcc/configure.ac13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 75cded6..e39ab87 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -2158,6 +2158,19 @@ EOF
;;
esac])
+# gnu_indirect_function type is an extension proposed at
+# http://groups.google/com/group/generic-abi/files. It allows dynamic runtime
+# selection of function implementation
+gcc_GAS_CHECK_FEATURE(gnu_indirect_function, gcc_cv_as_indirect_function,
+ [elf,2,20,1],,
+[ .type Foo, @gnu_indirect_function
+Foo:])
+GCC_TARGET_TEMPLATE([HAVE_GAS_INDIRECT_FUNCTION])
+if test $gcc_cv_as_indirect_function = yes ; then
+ AC_DEFINE(HAVE_GAS_INDIRECT_FUNCTION, 1,
+ [Define if your assembler supports indirect function type.])
+fi
+
changequote(,)dnl
if test $in_tree_ld != yes ; then
ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`