[PING][PATCH v3 1/9] Add configure check to test if gcc supports attribute ifunc.

Stefan Liebler stli@linux.vnet.ibm.com
Mon Sep 5 07:13:00 GMT 2016


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.
>
> 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.

Hi,

PING.

Here is the current status of the patchset:
-"[PATCH v3 1/9] Add configure check to test if gcc supports attribute 
ifunc.":
ok from Florian.

-"[PATCH v3 2/9] Use gcc attribute ifunc in libc_ifunc macro instead of 
inline assembly due to false debuginfo.":
partial ok from Paul. Paul, are the redirection of the f/l variants of 
__finite and others ok as they are needed (see my previous answer)?
PING: ifunc-macros in libc-symbols.h

-"[PATCH v3 3/9] s390: Refactor ifunc resolvers due to false debuginfo.":
PING.

-"[PATCH v3 4/9] i386, x86: Use libc_ifunc macro for time, gettimeofday.":
PING. Andreas, are the names for the redirection defines okay?

-"[PATCH v3 5/9] ppc: Use libc_ifunc macro for time, gettimeofday.":
ok from Paul.

-"[PATCH v3 6/9] Use libc_ifunc macro for clock_* symbols in librt.":
ok from Florian.

-"[PATCH v3 7/9] Use libc_ifunc macro for system in libpthread.":
ok from Florian.

-"[PATCH v3 8/9] Use libc_ifunc macro for vfork in libpthread.":
ok from Florian.

-"[PATCH v3 9/9] Use libc_ifunc macro for siglongjmp, longjmp in 
libpthread.":
PING.

Bye.
Stefan



More information about the Libc-alpha mailing list