giac: fix #include <giac/giac.h> in musl

As reported in #45708, including <giac/giac.h> fails in musl because the
HAVE_TGAMMAF macro from autotools is not available at this time.

Here we include a patch adapted from
618a5de334
which is the solution upstream will include in next release of giac.

We need to fix this now so we can build sagemath in musl!
This commit is contained in:
Gonzalo Tornaría 2023-08-23 09:46:02 -03:00 committed by Leah Neukirchen
parent e158c3ba6e
commit e9cf7d8588
2 changed files with 45 additions and 1 deletions

View File

@ -0,0 +1,40 @@
Adapted from
https://github.com/geogebra/giac/commit/618a5de3349f8def5bdb909fea42fb447b6aad4a
--- a/src/usual.cc
+++ b/src/usual.cc
@@ -81,6 +81,16 @@ using namespace std;
#define sprintf256 sprintf
#endif
+#if defined HAVE_TGAMMAF || defined __APPLE__ || defined EMCC || defined EMCC2 || defined NO_BSD
+inline float fgamma(float f1){ return tgammaf(f1); }
+#else
+#if defined(__MINGW_H) || defined(VISUALC) || defined(FXCG)// FIXME gamma, not used
+inline float fgamma(float f1){ return f1; }
+#else
+inline float fgamma(float f1){ return gammaf(f1); } // or tgammaf(f1) on some versions of emscripten
+#endif
+#endif
+
#ifndef NO_NAMESPACE_GIAC
namespace giac {
#endif // ndef NO_NAMESPACE_GIAC
--- a/src/first.h
+++ b/src/first.h
@@ -578,15 +578,6 @@ inline float ffloor(float f1){
#endif
}
inline float finv(float f1){ return 1/f1; }
-#if defined HAVE_TGAMMAF || defined __APPLE__ || defined EMCC || defined EMCC2 || defined NO_BSD
-inline float fgamma(float f1){ return tgammaf(f1); }
-#else
-#if defined(__MINGW_H) || defined(VISUALC) || defined(FXCG)// FIXME gamma, not used
-inline float fgamma(float f1){ return f1; }
-#else
-inline float fgamma(float f1){ return gammaf(f1); } // or tgammaf(f1) on some versions of emscripten
-#endif
-#endif
#ifdef FXCG
inline float atan2f(float f1,float f2,int rad){ if (rad) return std::atan2(f1,f2); else return std::atan2(f1,f2)*180/3.14159265358979323846;}
#else

View File

@ -1,7 +1,7 @@
# Template file for 'giac'
pkgname=giac
version=1.9.0.57
revision=1
revision=2
build_style=gnu-configure
configure_args="--disable-micropy --disable-quickjs"
hostmakedepends="automake gettext-devel libtool"
@ -56,6 +56,10 @@ pre_configure() {
post_install() {
# remove duplicates
rm -r ${DESTDIR}/usr/share/doc
echo "giac: check that '#include <giac/giac.h>' works (see #45708)"
echo '#include <giac/giac.h>' |
${CC} -c -isystem "${DESTDIR}/usr/include" -xc++ - -o /dev/null
}
libgiac_package() {