Improve portability to NetBSD and Alpha.
authorBen Pfaff <blp@gnu.org>
Mon, 26 Feb 2007 04:52:23 +0000 (04:52 +0000)
committerBen Pfaff <blp@gnu.org>
Mon, 26 Feb 2007 04:52:23 +0000 (04:52 +0000)
ChangeLog
acinclude.m4
configure.ac
src/ui/terminal/ChangeLog
src/ui/terminal/main.c

index 2247ab48f86db461552514d1886b04bd07cd2ea4..57f6461d31d2d5fdd9803790843f06a17c905c9c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2007-02-25  Ben Pfaff  <blp@gnu.org>
+
+       Thanks to Jason Stover for verifying that this patch helps under
+       NetBSD.
+
+       * acinclude.m4: Rename PSPP_ENABLE_WARNING to PSPP_ENABLE_OPTION,
+       because it's useful for more than warnings.
+
+       * configure.ac: Add PSPP_ENABLE_OPTION(-mieee) to improve IEEE
+       floating-point conformance on Alpha and SH architectures.  Also,
+       check for fpsetmask function (available on BSDs).
+
 Mon Feb 19 10:52:21 2007  Ben Pfaff  <blp@gnu.org>
 
        * Smake (GNULIB_MODULES): Add dirname module, remove canonicalize
index e15ab76742376dd3ef36acd6373b0c4067c3de63..5f358087509badc11851f87b11d204e2853631cc 100644 (file)
@@ -63,10 +63,10 @@ AC_DEFUN([PSPP_OFF_T],
   `--disable-largefile' or `CFLAGS=-ansi'.])])
 ])
 
-dnl Check whether a warning flag is accepted.
+dnl Check whether a C compiler option is accepted.
 dnl If so, add it to CFLAGS.
-dnl Example: PSPP_ENABLE_WARNING(-Wdeclaration-after-statement)
-AC_DEFUN([PSPP_ENABLE_WARNING],
+dnl Example: PSPP_ENABLE_OPTION(-Wdeclaration-after-statement)
+AC_DEFUN([PSPP_ENABLE_OPTION],
 [
   m4_define([pspp_cv_name], [pspp_cv_[]m4_translit([$1], [-], [_])])dnl
   AC_CACHE_CHECK([whether $CC accepts $1], [pspp_cv_name], 
index 16a2e47126f1150e9fcb12a2fa0fda322df41362..fec518d4f70da80657395c5883cd9381944a0dfb 100644 (file)
@@ -14,7 +14,8 @@ AM_PROG_CC_C_O
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 
-PSPP_ENABLE_WARNING(-Wdeclaration-after-statement)
+PSPP_ENABLE_OPTION(-Wdeclaration-after-statement)
+PSPP_ENABLE_OPTION(-mieee)
 
 AM_CONDITIONAL(cc_is_gcc, test x"$GCC" = x"yes" )
 
@@ -80,7 +81,7 @@ AC_DEFINE(FPREP_IEEE754, 1,
 AC_C_BIGENDIAN
 
 AC_FUNC_VPRINTF
-AC_CHECK_FUNCS([__setfpucw execl fork isinf isnan finite getpid feholdexcept popen round trunc])
+AC_CHECK_FUNCS([__setfpucw execl fork isinf isnan finite getpid feholdexcept fpsetmask popen round trunc])
 
 AC_PROG_LN_S
 
index a02521dae91256dd09d026d385c8f1403ec9af68..ad09bff30b906c94170260daefa2d77238cfa9f0 100644 (file)
@@ -1,3 +1,12 @@
+2007-02-25  Ben Pfaff  <blp@gnu.org>
+
+       Thanks to Jason Stover for verifying that this patch helps under
+       NetBSD.
+
+       * main.c [HAVE_IEEE_FP]: Include <ieeefp.h>.
+       (fpu_init) [HAVE_IEEE_FP]: Use setfpmask to mask floating-point
+       exceptions.
+
 Sun Feb 18 13:28:26 2007  Ben Pfaff  <blp@gnu.org>
 
        * msg-ui.c: Don't include exit.h, because gnulib fixes up stdlib.h
index 2f7d1fbea7baada5b5aafd6d50ff09139518e78f..e2cd180d9d03a58506228333c0ed729d1af82876 100644 (file)
 #include <fenv.h>
 #endif
 
+#if HAVE_IEEEFP_H
+#include <ieeefp.h>
+#endif
+
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
 
@@ -158,6 +162,8 @@ fpu_init (void)
   feholdexcept (&foo);
 #elif HAVE___SETFPUCW && defined(_FPU_IEEE)
   __setfpucw (_FPU_IEEE);
+#elif HAVE_FPSETMASK
+  fpsetmask (0);
 #endif
 }