summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.vnet.ibm.com>2016-10-07 09:56:46 +0200
committerStefan Liebler <stli@linux.vnet.ibm.com>2016-10-07 10:02:59 +0200
commit022dfdce000374b60aadfb0a5ed9a5c4c1dbd29b (patch)
tree65102672775985613583740ef7e98625043d0298 /INSTALL
parent1e7c8fcca5ace329f81785bcdfc139a4c93e9de5 (diff)
Add configure check to test if gcc supports attribute ifunc.
This patch adds a configure check to test if gcc supports attribute ifunc. The support can either be enabled in <gcc-src>/gcc/config.gcc for one architecture in general by setting default_gnu_indirect_function variable to yes or by configuring gcc with --enable-gnu-indirect-function. The next patch rewrites libc_ifunc macro to use gcc attribute ifunc instead of inline assembly to generate the IFUNC symbols due to false debuginfo. If gcc does not support attribute ifunc, the old approach for generating ifunc'ed symbols is used. Then the debug-information is false. Thus it is recommended to use a gcc with indirect function support (See notes in INSTALL). After this patch-series these inline assemblies for ifunc-handling are not scattered in multiple files but are used only indirect via ifunc-macros and can simply removed in libc-symbols.h in future. If glibc is configured with --enable-multi-arch and gcc does not support attribute ifunc, a configure warning is dumped! ChangeLog: * config.h.in (HAVE_GCC_IFUNC): New undef. * configure.ac: Add check if gcc supports attribute ifunc feature. * configure: Regenerated. * manual/install.texi: Add recommendation for gcc with indirect-function support. * INSTALL: Regenerated.
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL9
1 files changed, 9 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
index 51f26bf962..b5acedcc96 100644
--- a/INSTALL
+++ b/INSTALL
@@ -359,6 +359,15 @@ build the GNU C Library:
better code. As of release time, GCC 5.3 is the newest compiler
verified to work to build the GNU C Library.
+ For multi-arch support it is recommended to use a GCC which has
+ been built with support for GNU indirect functions. This ensures
+ that correct debugging information is generated for functions
+ selected by IFUNC resolvers. This support can either be enabled by
+ configuring GCC with '--enable-gnu-indirect-function', or by
+ enabling it by default by setting 'default_gnu_indirect_function'
+ variable for a particular architecture in the GCC source file
+ 'gcc/config.gcc'.
+
You can use whatever compiler you like to compile programs that use
the GNU C Library.