math/opensolaris-libm: Second *BSD release

Interestingly, this update comes 11 years to the days after the original
source was released.  This resolves the OpenLibm testsuite failures for
the double variant of Bessel functions (seen always on Clang and on GCC
when fno-builtin switch set) and the gamma/lgamma failures for 0.5 and 3.0
arguments.  The associated implementions were replaced with the 1993
SunPro versions found in all BSD-based math libraries.

The failures were of the off-by-1-bit type explained by floating point
rounding.  Now all float and double tests found in OpenLibm's testsuite
pass.
This commit is contained in:
John Marino 2017-01-31 20:02:42 +00:00
parent 091605d3a7
commit 587f5554bf
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=432948
2 changed files with 5 additions and 13 deletions

View File

@ -17,22 +17,14 @@ PORTSCOUT= ignore:1
USE_GITHUB= yes
GH_ACCOUNT= jrmarino
GH_TAGNAME= 2017.01.24
GH_TAGNAME= 2017.01.31
BUILD_WRKSRC= ${WRKSRC}/usr/src/libm/wos64
INSTALL_WRKSRC= ${WRKSRC}/usr/src/libm/wos64
MAKEFILE= Makefile.bsd
MAKE_ENV= ARCH=${ARCH} USE_ASSEMBLY_VERSIONS=yes
# On FreeBSD 11+, libm will build on base clang. Using OpenLibm testsuite,
# all float tests pass on both clang and gcc. On the "double" tests, all
# tests pass when built by gcc save 4 gamma tests off by 1e-16, also seen
# on Illumos. However, on Clang and gcc with -fno-builtin set, 27 other
# tests fail with results off by values ranging from e-17 to e-14. All of
# these extremely slightly inaccurate results seem to be caused by the j0
# Bessel function implementation. Fix that and likely all 27 tests
# involving j0, j1, jn, y0, y1, yn pass.
# On FreeBSD 11+, libm will build on base clang.
# On FreeBSD 10, the base clang (v3.4) cannot even build libm without emitting
# Internal Compiler Errors, so GCC is required and does not appear as an
# option. Similarly, the GCC option does not appear on DragonFly as the

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1485190474
SHA256 (jrmarino-opensolaris-libm-v2006.01.31-2017.01.24_GH0.tar.gz) = c063cbc7db749b7c87455964dfa6ead7808108f9c991cede192f2ee108fced80
SIZE (jrmarino-opensolaris-libm-v2006.01.31-2017.01.24_GH0.tar.gz) = 985294
TIMESTAMP = 1485870843
SHA256 (jrmarino-opensolaris-libm-v2006.01.31-2017.01.31_GH0.tar.gz) = 42ef6a57674237dd9822c76bf799ff51d58a69a9c726bd6801be37f916a6afa1
SIZE (jrmarino-opensolaris-libm-v2006.01.31-2017.01.31_GH0.tar.gz) = 985592