This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


PING.


On 09/05/2016 09:12 AM, Stefan Liebler wrote:
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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]