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

Add a generic scalb implementation

This is a preparatory patch to enable building a _Float128
variant to ease reuse when building a _Float128 variant to
alias this long double only symbol.

Notably, stubs are added where missing to the native _Float128
sysdep dir to prevent building these newly templated variants
created inside the build directories.

Also noteworthy are the changes around LIBM_SVID_COMPAT.  These
changes are not intuitive.  The templated version is only
enabled when !LIBM_SVID_COMPAT, and the compat version is
predicated entirely on LIBM_SVID_COMPAT.  Thus, exactly one is
stubbed out entirely when building.  The nldbl scalb compat
files are updated to account for this.

Likewise, fixup the reuse of m68k's e_scalb{f,l}.c to include
it's override of e_scalb.c.  Otherwise, the search path finds
the templated copy in the build directory.  This could be
futher simplified by providing an overridden template, but I
lack the hardware to verify.
This commit is contained in:
Tulio Magno Quites Machado Filho
2018-05-29 17:52:24 -03:00
committed by Paul E. Murphy
parent ad180676b8
commit c624d23260
13 changed files with 91 additions and 139 deletions

View File

@ -41,18 +41,15 @@ sysv_scalb (double x, double fn)
return z;
}
#endif
/* Wrapper scalb */
double
__scalb (double x, double fn)
{
#if LIBM_SVID_COMPAT
if (__glibc_unlikely (_LIB_VERSION == _SVID_))
return sysv_scalb (x, fn);
else
#endif
{
double z = __ieee754_scalb (x, fn);
@ -79,7 +76,8 @@ __scalb (double x, double fn)
}
}
weak_alias (__scalb, scalb)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__scalb, __scalbl)
weak_alias (__scalb, scalbl)
# endif
#endif