aboutsummaryrefslogtreecommitdiff
path: root/gcc/config.gcc
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2010-09-29 14:58:52 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2010-09-29 14:58:52 +0000
commitf6c5fbfdd5f83a1943ffb20c5ec49b78601b1dd5 (patch)
tree29a61336a4b0fe515e260e6960da160e7f939916 /gcc/config.gcc
parentf0036cca42f0e15b89736429ffd17d174fa14f13 (diff)
downloadgcc-f6c5fbfdd5f83a1943ffb20c5ec49b78601b1dd5.zip
gcc-f6c5fbfdd5f83a1943ffb20c5ec49b78601b1dd5.tar.gz
gcc-f6c5fbfdd5f83a1943ffb20c5ec49b78601b1dd5.tar.bz2
configure.ac: Add --enable-indirect-function option.
* configure.ac: Add --enable-indirect-function option. * config.gcc: Add default_gnu_indirect_function. * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ... (HAVE_GNU_INDIRECT_FUNCTION): ... this. * varasm.c (do_assemble_alias): Adjust for macto name change. * configure: Rebuilt. * doc/install.texi: Document --enable-indirect-function. testsuite/ * lib/target-supports-dg.exp (dg-require-ifunc): Remove extraneous alias checking. * lib/target-supports.exp (check_ifunc_available): Likewise. From-SVN: r164725
Diffstat (limited to 'gcc/config.gcc')
-rw-r--r--gcc/config.gcc15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc
index c504249..6558a99 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -45,6 +45,16 @@
# default value of $default_use_cxa_atexit is set to
# "no" except for targets which are known to be OK.
#
+# default_gnu_indirect_function
+# The default value for the $enable_gnu_indirect_function
+# variable. enable_gnu_indirect_function relies
+# upon the presence of a non-standard gnu ifunc support
+# in the assembler, linker and dynamic linker.
+# Since not all libraries provide the dynamic linking
+# support, the default value of
+# $default_gnu_indirect_function is set to
+# "no" except for targets which are known to be OK.
+#
# gas_flag Either yes or no depending on whether GNU as was
# requested.
#
@@ -205,6 +215,7 @@ thread_file=
gas="$gas_flag"
gnu_ld="$gnu_ld_flag"
default_use_cxa_atexit=no
+default_gnu_indirect_function=no
target_gtfiles=
need_64bit_hwint=
need_64bit_isa=
@@ -1192,6 +1203,8 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h"
case ${target} in
i[34567]86-*-linux*)
+ # Assume modern glibc
+ default_gnu_indirect_function=yes
if test x$enable_targets = xall; then
tm_file="${tm_file} i386/x86-64.h i386/linux64.h"
tm_defines="${tm_defines} TARGET_BI_ARCH=1"
@@ -1227,6 +1240,8 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h \
i386/x86-64.h i386/linux64.h"
case ${target} in
+ x86_64-*-linux*)
+ default_gnu_indirect_function=glibc-2011 ;;
x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;;
x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;;
esac