svn commit: r432389 - in head/math: . opensolaris-libm
John Marino
marino at FreeBSD.org
Tue Jan 24 21:01:26 UTC 2017
Author: marino
Date: Tue Jan 24 21:01:25 2017
New Revision: 432389
URL: https://svnweb.freebsd.org/changeset/ports/432389
Log:
Add new port math/opensolaris-libm
In 2006, Sun Microsystems released math and vector math libraries as
part of their effort to open-source Solaris:
libmvec - vector math library
This library contains function to evaluate common mathematical functions
for several arguments at once. The argument values are specified by one
or more vectors (arrays) of data, and the corresponding result values
are stored in another vector.
libm - C99 math library
Functions in this library provide common elementary mathematical
functions and floating point environment routines defined by System V,
ANSI C, POSIX, and so on. Additional functions in this library provide
extended support for handling floating point exceptions.
The original source has been modified to build on FreeBSD and DragonFly
using GCC or clang and the GNU assembler. All fixes introduced by Nexenta
and Illumos projects have also been incorporated. Missing x86_64 variants
of lrint and lround have added. The floating-point exception logging
including address->symbol tranlation has also been implemented.
Added:
head/math/opensolaris-libm/
head/math/opensolaris-libm/Makefile (contents, props changed)
head/math/opensolaris-libm/distinfo (contents, props changed)
head/math/opensolaris-libm/pkg-descr (contents, props changed)
head/math/opensolaris-libm/pkg-plist (contents, props changed)
Modified:
head/math/Makefile
Modified: head/math/Makefile
==============================================================================
--- head/math/Makefile Tue Jan 24 20:51:10 2017 (r432388)
+++ head/math/Makefile Tue Jan 24 21:01:25 2017 (r432389)
@@ -401,6 +401,7 @@
SUBDIR += openblas
SUBDIR += openfst
SUBDIR += openlibm
+ SUBDIR += opensolaris-libm
SUBDIR += orpie
SUBDIR += p5-AI-DecisionTree
SUBDIR += p5-AI-Genetic
Added: head/math/opensolaris-libm/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/opensolaris-libm/Makefile Tue Jan 24 21:01:25 2017 (r432389)
@@ -0,0 +1,64 @@
+# Created by: John Marino <marino at FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= opensolaris-libm
+PORTVERSION= 2006.01.31
+DISTVERSIONPREFIX= v
+CATEGORIES= math
+
+MAINTAINER= marino at FreeBSD.org
+COMMENT= C99 Math and vector libraries from OpenSolaris snv_33
+
+LICENSE= CDDL
+LICENSE_FILE= ${WRKSRC}/usr/src/OPENSOLARIS.LICENSE
+
+ONLY_FOR_ARCHS= amd64 # i386 and sparc possible with much work
+
+USE_GITHUB= yes
+GH_ACCOUNT= jrmarino
+GH_TAGNAME= 2017.01.24
+
+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 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
+# base compiler is already GCC. Programs compiled with GCC that link to
+# these libraries require that the libraries are compiled with GCC for
+# proper functioning.
+
+OPTIONS_DEFINE= GCC
+OPTIONS_EXCLUDE_FreeBSD_10= GCC
+OPTIONS_EXCLUDE_DragonFly= GCC
+
+GCC_USE= GCC=yes
+
+.include <bsd.port.options.mk>
+
+.if ${OPSYS} == FreeBSD
+. if ${OSREL:R} < 11
+USE_GCC= yes
+. endif
+
+RUN_DEPENDS= ${LOCALBASE}/bin/addr2line:devel/binutils
+
+post-patch:
+ # The addr2line program in FreeBSD is inadequate, so pull in
+ # binutils on FreeBSD
+ @${REINPLACE_CMD} -e 's|/usr/bin|/usr/local/bin|' \
+ ${WRKSRC}/usr/src/libm/src/m9x/__traceback.c
+.endif
+
+.include <bsd.port.mk>
Added: head/math/opensolaris-libm/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/opensolaris-libm/distinfo Tue Jan 24 21:01:25 2017 (r432389)
@@ -0,0 +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
Added: head/math/opensolaris-libm/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/opensolaris-libm/pkg-descr Tue Jan 24 21:01:25 2017 (r432389)
@@ -0,0 +1,22 @@
+In 2006, Sun Microsystems released math and vector math libraries as
+part of their effort to open-source Solaris:
+
+libmvec - vector math library
+ This library contains function to evaluate common mathematical functions
+ for several arguments at once. The argument values are specified by one
+ or more vectors (arrays) of data, and the corresponding result values
+ are stored in another vector.
+
+libm - C99 math library
+ Functions in this library provide common elementary mathematical
+ functions and floating point environment routines defined by System V,
+ ANSI C, POSIX, and so on. Additional functions in this library provide
+ extended support for handling floating point exceptions.
+
+The original source has been modified to build on FreeBSD and DragonFly
+using GCC or clang and the GNU assembler. All fixes introduced by Nexenta
+and Illumos projects have also been incorporated. Missing x86_64 variants
+of lrint and lround have added. The floating-point exception logging
+including address->symbol tranlation has also been implemented.
+
+WWW: https://docs.oracle.com/cd/E19422-01/819-3693/ncg_lib.html
Added: head/math/opensolaris-libm/pkg-plist
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/opensolaris-libm/pkg-plist Tue Jan 24 21:01:25 2017 (r432389)
@@ -0,0 +1,15 @@
+include/opensolaris-libm/complex.h
+include/opensolaris-libm/fenv.h
+include/opensolaris-libm/floatingpoint.h
+include/opensolaris-libm/iso/math_c99.h
+include/opensolaris-libm/iso/math_iso.h
+include/opensolaris-libm/math.h
+include/opensolaris-libm/sys/feature_tests.h
+include/opensolaris-libm/sys/ieeefp.h
+include/opensolaris-libm/tgmath.h
+lib/opensolaris/libm.a
+lib/opensolaris/libm.so
+lib/opensolaris/libm.so.2
+lib/opensolaris/libmvec.a
+lib/opensolaris/libmvec.so
+lib/opensolaris/libmvec.so.1
More information about the svn-ports-all
mailing list