summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2003-04-04 04:55:14 +0000
committermarcus <marcus@FreeBSD.org>2003-04-04 04:55:14 +0000
commitb642429d876c2647c4b7e57f236f9478e04c506d (patch)
treebf3c3b113eb31ede81c2c08d3fd55dd8bd66352b
parentb16097f6fbab192e5ba337888427c7bd0ffcf5da (diff)
downloadFreeBSD-ports-b642429d876c2647c4b7e57f236f9478e04c506d.zip
FreeBSD-ports-b642429d876c2647c4b7e57f236f9478e04c506d.tar.gz
Work around what I believe to be a broken implementation of isfinite()
in -CURRENT that was causing a numerical overflow in apps such as GnuCash. PR: 50089
-rw-r--r--lang/guile/Makefile2
-rw-r--r--lang/guile/files/patch-libguile_numbers.c22
2 files changed, 23 insertions, 1 deletions
diff --git a/lang/guile/Makefile b/lang/guile/Makefile
index 2b6b555..7642a83 100644
--- a/lang/guile/Makefile
+++ b/lang/guile/Makefile
@@ -7,7 +7,7 @@
PORTNAME= guile
PORTVERSION= 1.4.1
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GNU}
MASTER_SITE_SUBDIR= guile
diff --git a/lang/guile/files/patch-libguile_numbers.c b/lang/guile/files/patch-libguile_numbers.c
new file mode 100644
index 0000000..2ba3504
--- /dev/null
+++ b/lang/guile/files/patch-libguile_numbers.c
@@ -0,0 +1,22 @@
+--- libguile/numbers.c.orig Thu Apr 3 23:52:25 2003
++++ libguile/numbers.c Thu Apr 3 23:52:41 2003
+@@ -89,8 +89,8 @@
+ /* Return true if X is not infinite and is not a NaN
+ Dirk:FIXME:: Since IS_INF is broken, this test does not work if x == 0
+ */
+-#ifndef isfinite
+-#define isfinite(x) (!IS_INF (x) && (x) == (x))
++#ifndef xxx_isfinite
++#define xxx_isfinite(x) (!IS_INF (x) && (x) == (x))
+ #endif
+
+
+@@ -4071,7 +4071,7 @@
+ if (SCM_FIXABLE (lu)) {
+ return SCM_MAKINUM (lu);
+ #ifdef SCM_BIGDIG
+- } else if (isfinite (u)) {
++ } else if (xxx_isfinite (u)) {
+ return scm_dbl2big (u);
+ #endif
+ } else {
OpenPOWER on IntegriCloud