From 587f5554bf306ac9a99ecb79e29599e4e3cca62d Mon Sep 17 00:00:00 2001 From: John Marino Date: Tue, 31 Jan 2017 20:02:42 +0000 Subject: [PATCH] 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. --- math/opensolaris-libm/Makefile | 12 ++---------- math/opensolaris-libm/distinfo | 6 +++--- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/math/opensolaris-libm/Makefile b/math/opensolaris-libm/Makefile index 1aa0e65352fa..3699f48c819f 100644 --- a/math/opensolaris-libm/Makefile +++ b/math/opensolaris-libm/Makefile @@ -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 diff --git a/math/opensolaris-libm/distinfo b/math/opensolaris-libm/distinfo index a08d5e826a3c..ae95ab547b76 100644 --- a/math/opensolaris-libm/distinfo +++ b/math/opensolaris-libm/distinfo @@ -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