summaryrefslogtreecommitdiff
path: root/src/floatfns.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-09-06 13:47:45 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2011-09-06 13:47:45 -0700
commitc8199d0f9eb45a99de074ec10b893f737f738cd8 (patch)
treece31864f7f951b86b84a9f8cd2ae8c33c4883341 /src/floatfns.c
parent369e19fc45a4c2d4bf84da0d8e3f27050624a38c (diff)
downloademacs-c8199d0f9eb45a99de074ec10b893f737f738cd8.tar.gz
isnan: Fix porting problem to Solaris 10 with bundled gcc.
Without this fix, the command to link temacs failed due to an undefined symbol __builtin_isnan. This is because /usr/include/iso/math_c99.h #defines isnan(x) to __builtin_isnan(x), but the bundled gcc, which identifies itself as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have a __builtin_isnan. * configure.in (isnan): Remove now-unnecessary check. * src/floatfns.c (isnan): #undef, and then #define to a clone of what's in data.c. (Fisnan): Always define, since it's always available now. (syms_of_floatfns): Always define isnan at the Lisp level.
Diffstat (limited to 'src/floatfns.c')
-rw-r--r--src/floatfns.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/floatfns.c b/src/floatfns.c
index 89aa052e8b1..81cf6bdb61f 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -282,7 +282,9 @@ DEFUN ("tan", Ftan, Stan, 1, 1, 0,
return make_float (d);
}
-#if defined HAVE_ISNAN && defined HAVE_COPYSIGN
+#undef isnan
+#define isnan(x) ((x) != (x))
+
DEFUN ("isnan", Fisnan, Sisnan, 1, 1, 0,
doc: /* Return non nil iff argument X is a NaN. */)
(Lisp_Object x)
@@ -291,6 +293,7 @@ DEFUN ("isnan", Fisnan, Sisnan, 1, 1, 0,
return isnan (XFLOAT_DATA (x)) ? Qt : Qnil;
}
+#ifdef HAVE_COPYSIGN
DEFUN ("copysign", Fcopysign, Scopysign, 1, 2, 0,
doc: /* Copy sign of X2 to value of X1, and return the result.
Cause an error if X1 or X2 is not a float. */)
@@ -1030,8 +1033,8 @@ syms_of_floatfns (void)
defsubr (&Scos);
defsubr (&Ssin);
defsubr (&Stan);
-#if defined HAVE_ISNAN && defined HAVE_COPYSIGN
defsubr (&Sisnan);
+#ifdef HAVE_COPYSIGN
defsubr (&Scopysign);
defsubr (&Sfrexp);
defsubr (&Sldexp);