sparc: remove fdim sparc specific implementations

System Internals / glibc - Aurelien Jarno [aurel32.net] - 5 August 2016 15:35 UTC

The fdim and fdimf functions on sparc do not fully follow the standard and do not set errno to ERANGE when the result overflows. Since glibc 2.24 this causes the two following tests to fail:

Failure: fdim (max_value, -max_value): errno set to 0, expected 34 (ERANGE) Failure: fdim_upward (max_value, -max_value): errno set to 0, expected 34 (ERANGE)

It happens that using GCC with the generic C code generates very similar code to the sparc specific implementations. Therefore this patches remove them. Note it might still worth adding a vis3 specific version of fdim on sparc32/sparcv9, this is done in a following patch to ease backporting.

Changelog:
- sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile [$(subdir) = math && $(have-as-vis3) = yes] (libm-sysdep_routines): Remove s_fdimf-vis3, s_fdim-vis3.
- sysdeps/sparc/sparc32/fpu/s_fdim.S: Delete file.
- sysdeps/sparc/sparc32/fpu/s_fdimf.S: Likewise.
- sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S: Likewise.
- sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S: Likewise.
- sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S: Likewise.
- sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S: Likewise.
- sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S: Likewise.
- sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S: Likewise.
- sysdeps/sparc/sparc64/fpu/s_fdim.S: Likewise.
- sysdeps/sparc/sparc64/fpu/s_fdimf.S: Likewise.

8a9f4eb sparc: remove fdim sparc specific implementations
ChangeLog | 16 ++++++++
sysdeps/sparc/sparc32/fpu/s_fdim.S | 42 --------------------
sysdeps/sparc/sparc32/fpu/s_fdimf.S | 35 ----------------
.../sparc/sparc32/sparcv9/fpu/multiarch/Makefile | 4 +-
.../sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S | 34 ----------------
.../sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S | 19 ---------
.../sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S | 32 ---------------
.../sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S | 12 ------
sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S | 40 -------------------
sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S | 35 ----------------
sysdeps/sparc/sparc64/fpu/s_fdim.S | 32 ---------------
sysdeps/sparc/sparc64/fpu/s_fdimf.S | 31 ---------------
12 files changed, 18 insertions(+), 314 deletions(-)

Upstream: sourceware.org


  • Share