diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-06-10 12:07:15 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-06-10 12:07:15 +0000 |
commit | f8ba1b5654d876c8db4c9a020e6fa976d434f988 (patch) | |
tree | f5e34ce57471cbb1c54ec4cd0492b665f94151bb /NEWS | |
parent | 2c3520d98d9773d9e092196c3c36150244eed1dd (diff) | |
download | glibc-f8ba1b5654d876c8db4c9a020e6fa976d434f988.tar.gz glibc-f8ba1b5654d876c8db4c9a020e6fa976d434f988.tar.xz glibc-f8ba1b5654d876c8db4c9a020e6fa976d434f988.zip |
Fix log2 (1) in round-downward mode (bug 17042).
As with other issues of this kind, bug 17042 is log2 (1) wrongly returning -0 instead of +0 in round-downward mode because of implementations effectively in terms of log1p (x - 1). This patch fixes the issue in the same way used for log and log10. Tested x86_64 and x86 and ulps updated accordingly. Also tested for mips64 to confirm a fix was needed for ldbl-128 and to validate that fix (also applied to ldbl-128ibm since that version of log2l is essentially the same as the ldbl-128 one). [BZ #17042] * sysdeps/i386/fpu/e_log2.S (__ieee754_log2): Take absolete value when x - 1 is zero. * sysdeps/i386/fpu/e_log2f.S (__ieee754_log2f): Likewise. * sysdeps/i386/fpu/e_log2l.S (__ieee754_log2l): Likewise. * sysdeps/ieee754/ldbl-128/e_log2l.c (__ieee754_log2l): Return 0.0L for an argument of 1.0L. * sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l): Likewise. * sysdeps/x86_64/fpu/e_log2l.S (__ieee754_log2l): Take absolute value when x - 1 is zero. * math/libm-test.inc (log2_test): Use ALL_RM_TEST. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/NEWS b/NEWS index 622cdbf21d..ca3ef633b0 100644 --- a/NEWS +++ b/NEWS @@ -19,7 +19,7 @@ Version 2.20 16791, 16796, 16799, 16800, 16815, 16823, 16824, 16831, 16838, 16849, 16854, 16876, 16877, 16878, 16882, 16885, 16888, 16890, 16912, 16915, 16916, 16917, 16922, 16927, 16928, 16932, 16943, 16958, 16965, 16966, - 16967, 16977, 16978, 16984, 16990, 17009. + 16967, 16977, 16978, 16984, 16990, 17009, 17042. * The minimum Linux kernel version that this version of the GNU C Library can be used with is 2.6.32. |