1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-01 10:06:57 +03:00

Add libm_alias_finite for _finite symbols

This patch adds a new macro, libm_alias_finite, to define all _finite
symbol.  It sets all _finite symbol as compat symbol based on its first
version (obtained from the definition at built generated first-versions.h).

The <fn>f128_finite symbols were introduced in GLIBC 2.26 and so need
special treatment in code that is shared between long double and float128.
It is done by adding a list, similar to internal symbol redifinition,
on sysdeps/ieee754/float128/float128_private.h.

Alpha also needs some tricky changes to ensure we still emit 2 compat
symbols for sqrt(f).

Passes buildmanyglibc.

Co-authored-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
This commit is contained in:
Wilco Dijkstra
2019-07-16 12:17:22 -03:00
committed by Adhemerval Zanella
parent cf4dfd4617
commit 220622dde5
263 changed files with 605 additions and 351 deletions

View File

@ -75,8 +75,8 @@
#endif
#ifndef declare_mgen_finite_alias_x
#define declare_mgen_finite_alias_x(from, to) \
strong_alias (from, to ## _finite)
#define declare_mgen_finite_alias_x(from, to) \
libm_alias_finite (from, to)
#endif
#ifndef declare_mgen_finite_alias_s
@ -117,6 +117,7 @@
/* Needed to evaluate M_MANT_DIG below. */
#include <float.h>
#include <libm-alias-finite.h>
/* Use a special epsilon value for IBM long double
to avoid spurious overflows/underflows. */