tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: numpy failure on netbsd-9, rintl
It looks like this is more ok than I thought. I don't find anything
different from 10 to current. Looking at 9 to current and pruning diff
noise, there are a number of additional aliases in 10.
It seems that there are two strategies for this. Can we pick one
and document it? It seems like the choices are:
1) ldbl_dummy approach
In ldbl_dummy.c, define a weak_alias from fool to _fool
In namespace.h, define fool to _fool, but only for some
It's not clear how these interact, as namespace.h is included first.
2) per-function alias approach
e.g See s_modf.c,
#ifndef __HAVE_LONG_DOUBLE
__strong_alias(_modfl, modf)
__weak_alias(modfl, modf)
#endif
Index: src/ldbl_dummy.c
===================================================================
RCS file: /cvsroot/src/lib/libm/src/ldbl_dummy.c,v
retrieving revision 1.2
retrieving revision 1.2.26.1
diff -u -p -r1.2 -r1.2.26.1
--- src/ldbl_dummy.c 13 Nov 2014 21:43:27 -0000 1.2
+++ src/ldbl_dummy.c 11 Aug 2023 14:44:19 -0000 1.2.26.1
@@ -43,8 +43,11 @@ __weak_alias(atan2l, _atan2l)
__weak_alias(hypotl, _hypotl)
__weak_alias(logl, _logl)
__weak_alias(log10l, _log10l)
+__weak_alias(log2l, _log2l)
+__weak_alias(log1pl, _log1pl)
__weak_alias(expl, _expl)
__weak_alias(exp2l, _exp2l)
+__weak_alias(expm1l, _expm1l)
__weak_alias(powl, _powl)
__weak_alias(cosl, _cosl)
__weak_alias(sinl, _sinl)
@@ -60,6 +63,8 @@ __weak_alias(asinhl, _asinhl)
__weak_alias(atanhl, _atanhl)
__weak_alias(erfl, _erfl)
__weak_alias(erfcl, _erfcl)
+__weak_alias(lgammal, _lgammal)
+__weak_alias(tgammal, _tgammal)
long double
atan2l(long double y, long double x)
@@ -86,6 +91,18 @@ log10l(long double x)
}
long double
+log2l(long double x)
+{
+ return log2(x);
+}
+
+long double
+log1pl(long double x)
+{
+ return log1p(x);
+}
+
+long double
expl(long double x)
{
return exp(x);
@@ -98,6 +115,12 @@ exp2l(long double x)
}
long double
+expm1l(long double x)
+{
+ return expm1(x);
+}
+
+long double
powl(long double x, long double y)
{
return pow(x, y);
@@ -187,3 +210,27 @@ erfcl(long double x)
{
return erfc(x);
}
+
+long double
+lgammal(long double x)
+{
+ return lgamma(x);
+}
+
+long double
+tgammal(long double x)
+{
+ return tgamma(x);
+}
+
+long double
+remainderl(long double x, long double y)
+{
+ return remainder(x, y);
+}
+
+long double
+remquol(long double x, long double y, int *quo)
+{
+ return remquo(x, y, quo);
+}
Index: src/namespace.h
===================================================================
RCS file: /cvsroot/src/lib/libm/src/namespace.h,v
retrieving revision 1.14
retrieving revision 1.16.2.1
diff -u -p -r1.14 -r1.16.2.1
--- src/namespace.h 22 Mar 2017 23:11:09 -0000 1.14
+++ src/namespace.h 11 Aug 2023 14:44:19 -0000 1.16.2.1
@@ -10,6 +10,7 @@
#define exp _exp
#define expf _expf
#define expl _expl
+#define expm1l _expm1l
#define log _log
#define logf _logf
#define logl _logl
@@ -22,6 +23,9 @@
#define finite _finite
#define finitef _finitef
#endif /* notyet */
+#define sincos _sincos
+#define sincosf _sincosf
+#define sincosl _sincosl
#define sinh _sinh
#define sinhf _sinhf
#define sinhl _sinhl
@@ -70,15 +74,17 @@
#define tanhl _tanhl
#define atanhl _atanhl
#define log10l _log10l
+#define log1pl _log1pl
+#define log2l _log2l
-#define erfl _erfl
-#define erfcl _erfcl
+#define erfl _erfl
+#define erfcl _erfcl
+
+#define lgammal _lgammal
+#define tgammal _tgammal
#define feclearexcept _feclearexcept
-#define fedisableexcept _fedisableexcept
-#define feenableexcept _feenableexcept
#define fegetenv _fegetenv
-#define fegetexcept _fegetexcept
#define fegetexceptflag _fegetexceptflag
#define fegetround _fegetround
#define feholdexcept _feholdexcept
@@ -88,3 +94,7 @@
#define fesetround _fesetround
#define fetestexcept _fetestexcept
#define feupdateenv _feupdateenv
+
+#define fedisableexcept _fedisableexcept
+#define feenableexcept _feenableexcept
+#define fegetexcept _fegetexcept
Home |
Main Index |
Thread Index |
Old Index