[PATCH v3 1/9] Add configure check to test if gcc supports attribute ifunc.
Stefan Liebler
stli@linux.vnet.ibm.com
Fri Oct 7 09:19:00 GMT 2016
Hi,
as all patches are acked I've pushed the series.
I also opened the bug "Bug 77894 - Enable GNU indirect function support
by default as it will be used in glibc."
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77894) against gcc and
sent a note to the distribution maintainers listed in
https://sourceware.org/glibc/wiki/MAINTAINERS#Distribution_Maintainers.
Thanks.
Stefan
On 08/24/2016 04:04 PM, Stefan Liebler wrote:
> 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.
> > ---
> INSTALL | 8 ++++++++
> If glibc is configured with --enable-multi-arch and gcc does not support
> attribute ifunc, a configure warning is dumped!
>
> This NEWS entry will be added:
> * For multi-arch support it is recommended to use a GCC with gnu-indirect-function
> support as it is used to generate ifunc'ed symbols with correct
> debug-information. 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
> gcc source file 'gcc/config.gcc'.
>
> 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.
More information about the Libc-alpha
mailing list