Add a generic scalb implementation

System Internals / glibc - Tulio Magno Quites Machado Filho [linux.ibm.com] - 14 February 2020 14:24 EST

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.

c624d23260 Add a generic scalb implementation
math/Makefile | 7 ++--
math/{e_scalb.c => e_scalb_template.c} | 33 +++++++++--------
math/e_scalbf.c | 54 ----------------------------
math/e_scalbl.c | 54 ----------------------------
math/w_scalb_compat.c | 6 ++--
math/w_scalb_template.c | 57 ++++++++++++++++++++++++++++++
math/w_scalbf_compat.c | 4 +--
math/w_scalbl_compat.c | 4 +--
sysdeps/ieee754/float128/w_scalbf128.c | 1 +
sysdeps/ieee754/ldbl-opt/w_scalb_compat.c | 4 ++-
sysdeps/ieee754/ldbl-opt/w_scalbl_compat.c | 2 ++
sysdeps/m68k/m680x0/fpu/e_scalbf.c | 2 +-
sysdeps/m68k/m680x0/fpu/e_scalbl.c | 2 +-
13 files changed, 91 insertions(+), 139 deletions(-)

Upstream: sourceware.org


  • Share