Make openlibm less dependent on the host, but still add knobs to build against it
@@ -32,7 +32,7 @@
#ifdef _WIN32
#define __fenv_static
#endif
-#include "fenv.h"
+#include <openlibm_fenv.h>
#ifdef __GNUC_GNU_INLINE__
#error "This file must be compiled with C99 'inline' semantics"
@@ -29,8 +29,10 @@
#ifndef _FENV_H_
#define _FENV_H_
-#include "include/cdefs-compat.h"
-#include "include/types-compat.h"
+#include "cdefs-compat.h"
+#include "types-compat.h"
+
+#include "math_private.h"
#ifndef __fenv_static
#define __fenv_static static
@@ -27,7 +27,7 @@
*/
#include <i387/bsd_npx.h>
@@ -1,9 +0,0 @@
-#ifdef __arm__
-#include "../arm/fenv.h"
-#else
-#ifdef __LP64
-#include "../amd64/fenv.h"
-#include "../i387/fenv.h"
-#endif
@@ -24,7 +24,7 @@
* acoshl(NaN) is NaN without signal.
-#include <math.h>
+#include <openlibm.h>
#include "math_private.h"
@@ -28,7 +28,7 @@
*
@@ -46,7 +46,7 @@
* only coshl(0)=1 is exact for finite x.
@@ -73,7 +73,7 @@
/* Exponential function */
#include <float.h>
@@ -16,7 +16,7 @@
* Method: shift and subtract
@@ -42,7 +42,7 @@
* than 1 ulps (units in the last place)
@@ -69,7 +69,7 @@
@@ -59,7 +59,7 @@
@@ -58,7 +58,7 @@
@@ -60,7 +60,7 @@
@@ -23,8 +23,8 @@
-#include "openlibm.h"
#include "fpmath.h"
@@ -44,7 +44,7 @@
* only sinhl(0)=0 is exact for finite x.
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -18,7 +18,8 @@
* ld128 version of k_tan.c. See ../src/k_tan.c for most comments.
/*
@@ -21,7 +21,7 @@
* := signl(x)*log1pl(|x| + x^2/(1 + sqrtl(1+x^2)))
@@ -19,7 +19,7 @@
* Inexact flag raised if x not equal to ceil(x).
@@ -91,7 +91,7 @@
* erfc/erf(NaN) is NaN
@@ -28,10 +28,10 @@
//__FBSDID("$FreeBSD: src/lib/msun/ld128/s_exp2l.c,v 1.3 2008/02/13 10:44:44 bde Exp $");
#include <stdint.h>
#define TBLBITS 7
@@ -54,7 +54,7 @@
#include <errno.h>
* Inexact flag raised if x not equal to floor(x).
* IEEE -1, 8 100000 1.9e-34 4.3e-35
@@ -20,7 +20,7 @@
* No exception.
@@ -26,7 +26,7 @@
* $FreeBSD: src/lib/msun/ld128/s_nanl.c,v 1.3 2008/03/02 20:16:55 das Exp $
@@ -17,7 +17,7 @@
* Special cases:
@@ -17,8 +17,8 @@
@@ -10,7 +10,7 @@
* ====================================================
@@ -14,7 +14,7 @@
#include <machine/ieee.h>
@@ -50,7 +50,8 @@
* only tanhl(0)=0 is exact for finite argument.
-#include "math.h"
static const long double one = 1.0, two = 2.0, tiny = 1.0e-4900L;
@@ -31,7 +31,8 @@
static const long double one = 1.0, half=0.5, huge = 1.0e4900L;
@@ -23,10 +23,9 @@
#define BIAS (LDBL_MAX_EXP - 1)
* ld80 version of k_tan.c. See ../src/k_tan.c for most comments.
@@ -32,8 +32,8 @@
#include "amd64/bsd_ieeefp.h"
@@ -26,9 +26,8 @@
* $FreeBSD: src/lib/msun/ld80/s_nanl.c,v 1.2 2007/12/18 23:46:31 das Exp $
DLLEXPORT long double
//#include <machine/ieee.h>
@@ -39,8 +39,8 @@
static const double
@@ -16,7 +16,8 @@
#include "cdefs-compat.h"
//__FBSDID("$FreeBSD: src/lib/msun/src/e_acosf.c,v 1.11 2008/08/03 17:39:54 das Exp $");
static const float
@@ -29,7 +29,8 @@
* acosh(NaN) is NaN without signal.
//__FBSDID("$FreeBSD: src/lib/msun/src/e_acoshf.c,v 1.8 2008/02/22 02:30:34 das Exp $");
@@ -21,9 +21,9 @@
#include "invtrig.h"
static const long double
@@ -45,8 +45,8 @@
//__FBSDID("$FreeBSD: src/lib/msun/src/e_asinf.c,v 1.13 2008/08/08 00:21:27 das Exp $");
@@ -43,8 +43,8 @@
static volatile double
//__FBSDID("$FreeBSD: src/lib/msun/src/e_atan2f.c,v 1.12 2008/08/03 17:39:54 das Exp $");
static volatile float
@@ -22,9 +22,9 @@
static volatile long double
@@ -33,7 +33,8 @@
static const double one = 1.0, huge = 1e300;
//__FBSDID("$FreeBSD: src/lib/msun/src/e_atanhf.c,v 1.7 2008/02/22 02:30:34 das Exp $");
static const float one = 1.0, huge = 1e30;
@@ -35,7 +35,8 @@
* only cosh(0)=1 is exact for finite x.
static const double one = 1.0, half=0.5, huge = 1.0e300;
//__FBSDID("$FreeBSD: src/lib/msun/src/e_coshf.c,v 1.9 2011/10/21 06:28:47 das Exp $");
static const float one = 1.0, half=0.5, huge = 1.0e30;
@@ -77,8 +77,8 @@
//__FBSDID("$FreeBSD: src/lib/msun/src/e_expf.c,v 1.16 2011/10/21 06:26:38 das Exp $");
@@ -20,7 +20,8 @@
static const double one = 1.0, Zero[] = {0.0, -0.0,};
@@ -22,7 +22,8 @@
static const float one = 1.0, Zero[] = {0.0, -0.0,};
@@ -14,10 +14,11 @@
//__FBSDID("$FreeBSD: src/lib/msun/src/e_fmodl.c,v 1.2 2008/07/31 20:09:47 das Exp $");
@@ -21,7 +21,8 @@
* Method: call __ieee754_gamma_r
extern int signgam;
* Method: See __ieee754_lgamma_r
DLLEXPORT double
* Method: call __ieee754_gammaf_r
@@ -23,7 +23,8 @@
* Method: See __ieee754_lgammaf_r
DLLEXPORT float
@@ -47,8 +47,8 @@
//__FBSDID("$FreeBSD: src/lib/msun/src/e_hypotf.c,v 1.14 2011/10/15 07:00:28 das Exp $");
@@ -16,9 +16,9 @@
/* long double version of hypot(). See e_hypot.c for most comments. */
#define GET_LDBL_MAN(h, l, v) do { \
@@ -61,7 +61,8 @@
* 3. Special cases: y0(0)=-inf, y0(x<0)=NaN, y0(inf)=0.
static double pzero(double), qzero(double);
//__FBSDID("$FreeBSD: src/lib/msun/src/e_j0f.c,v 1.8 2008/02/22 02:30:35 das Exp $");
static float pzerof(float), qzerof(float);
* by method mentioned above.
static double pone(double), qone(double);
//__FBSDID("$FreeBSD: src/lib/msun/src/e_j1f.c,v 1.8 2008/02/22 02:30:35 das Exp $");
static float ponef(float), qonef(float);
@@ -40,7 +40,8 @@
//__FBSDID("$FreeBSD: src/lib/msun/src/e_jnf.c,v 1.11 2010/11/13 10:54:10 uqs Exp $");
* Method: call __ieee754_lgamma_r
@@ -83,7 +83,8 @@
* Method: call __ieee754_lgammaf_r
//__FBSDID("$FreeBSD: src/lib/msun/src/e_lgammaf_r.c,v 1.12 2011/10/15 07:00:28 das Exp $");
@@ -1,5 +1,7 @@
@@ -65,7 +65,8 @@
* to produce the hexadecimal values shown.
* in not-quite-routine extra precision.
#include "k_log.h"
* Float version of e_log10.c. See the latter for most comments.
#include "k_logf.h"
@@ -24,7 +24,8 @@
* Float version of e_log2.c. See the latter for most comments.
//__FBSDID("$FreeBSD: src/lib/msun/src/e_logf.c,v 1.11 2008/03/29 16:37:59 das Exp $");
@@ -57,7 +57,8 @@
//__FBSDID("$FreeBSD: src/lib/msun/src/e_powf.c,v 1.16 2011/10/21 06:26:07 das Exp $");
@@ -25,8 +25,8 @@
@@ -24,8 +24,8 @@
static const double zero = 0.0;
//__FBSDID("$FreeBSD: src/lib/msun/src/e_remainderf.c,v 1.8 2008/02/12 17:11:36 bde Exp $");
static const float zero = 0.0;
* should use scalbn() instead.
#ifdef _SCALB_INT
//__FBSDID("$FreeBSD: src/lib/msun/src/e_scalbf.c,v 1.13 2008/02/22 02:30:35 das Exp $");
@@ -32,7 +32,8 @@
* only sinh(0)=0 is exact for finite x.
static const double one = 1.0, shuge = 1.0e307;
//__FBSDID("$FreeBSD: src/lib/msun/src/e_sinhf.c,v 1.10 2011/10/21 06:28:47 das Exp $");
static const float one = 1.0, shuge = 1.0e37;
@@ -85,8 +85,8 @@
static const double one = 1.0, tiny=1.0e-300;
@@ -13,7 +13,8 @@
static const float one = 1.0, tiny=1.0e-30;
@@ -27,11 +27,11 @@
//__FBSDID("$FreeBSD: src/lib/msun/src/e_sqrtl.c,v 1.1 2008/03/02 01:47:58 das Exp $");
-#include <fenv.h>
/* Return (x + ulp) for normal positive x. Assumes no overflow. */
@@ -53,7 +53,8 @@
* any extra precision in w.
@@ -19,7 +19,8 @@
//__FBSDID("$FreeBSD: src/lib/msun/src/k_cosf.c,v 1.18 2009/06/03 08:16:34 ed Exp $");
/* |cos(x) - c(x)| < 2**-34.1 (~[-5.37e-11, 5.295e-11]). */