mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-23 13:09:58 +08:00
glibc fails to build with GCC mainline for SPARC because of the use of manually-created IFUNCs, which fail the tests of compatibility of function alias types. This patch changes sparc-ifunc.h to use the generic __ifunc in defining sparc_libm_ifunc. The generic __ifunc can use the GCC ifunc attribute when available, so ensuring type-correctness as well as better debug info than when setting symbol types in asm statements. Note that for this to fix the build with GCC mainline the GCC patch <https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01779.html>, or building GCC with --enable-gnu-indirect-function, is also needed. Tested (compilation only) with build-many-glibcs.py (sparc64-linux-gnu and sparcv9-linux-gnu, with GCC 8 with the above patch, and also with GCC 7). * sysdeps/sparc/sparc-ifunc.h [!__ASSEMBLER__] (sparc_libm_ifunc): Define using __ifunc. |
||
---|---|---|
.. | ||
bits | ||
fpu | ||
nptl | ||
sparc32 | ||
sparc64 | ||
sys | ||
abort-instr.h | ||
backtrace.c | ||
configure | ||
configure.ac | ||
crti.S | ||
crtn.S | ||
dl-dtprocnum.h | ||
dl-procinfo.c | ||
dl-procinfo.h | ||
dl-sysdep.h | ||
dl-tls.h | ||
gccframe.h | ||
ldsodefs.h | ||
machine-gmon.h | ||
Makefile | ||
mempcpy.S | ||
memusage.h | ||
preconfigure | ||
sparc-ifunc.h | ||
sparc-mcount.S | ||
stackinfo.h | ||
Subdirs | ||
sysdep.h |