Unimplement BORKED_FENV.
authorMatt Birkholz <matt@birkholz.chandler.az.us>
Sun, 19 Jun 2011 18:18:26 +0000 (11:18 -0700)
committerMatt Birkholz <matt@birkholz.chandler.az.us>
Sun, 19 Jun 2011 18:18:26 +0000 (11:18 -0700)
src/microcode/achost.ac
src/microcode/cmpintmd/i386.c
src/microcode/cmpintmd/i386.h
src/microcode/cmpintmd/x86-fenv.h
src/microcode/configure.ac
src/microcode/floenv.h

index 1bdc2a1f30571574a21a3dcb7b0993b7dcb2e779..e4fc6b51726430e2917aee39f00229f252d72b0d 100644 (file)
@@ -115,17 +115,6 @@ linux-gnu)
     M4_FLAGS="${M4_FLAGS} -P __linux__,1"
     DO_GCC_TESTS=yes
     GNU_LD=yes
-    # In Ubuntu 11.04 on i386 eglibc-2.13's fesetenv(FE_DFL_ENV) does
-    # not mask all FPEs.  Its feclear/disableexcept() functions are
-    # not effective either.  A callout to pango_layout_get_pixel_
-    # extents can use these and still SIGFPE Underflow.  However the
-    # emulation in cmpintmd/x86-fenv.c IS effective.  Defining
-    # BORKED_FENV causes libc's fenv.h to be ignored and x86-fenv.c to
-    # be included.  Not all linux-gnu/i386 hosts need this, but the
-    # emulation should work on all of them.
-    if test "x${mit_scheme_native_code}" = "xi386"; then
-       BORKED_FENV=yes
-    fi
     ;;
 freebsd*)
     M4_FLAGS="${M4_FLAGS} -P SUPPRESS_LEADING_UNDERSCORE,1"
index 152e93e639a8807fd31638be6662e8d8341daf55..0d66de11b758a503901e17defc8b3c37a483df8b 100644 (file)
@@ -391,7 +391,7 @@ i386_reset_hook (void)
 #endif /* _MACH_UNIX */
 }
 
-#if !defined(HAVE_FENV_H) || defined(BORKED_FENV)
+#ifndef HAVE_FENV_H
 extern int i387_presence;
 extern int sse_presence;
 #  define x87_p i387_presence
index db76f50abe41f6e7a5daaa55bdfba79e87af5f30..f07d5c2408f9b81a3351249355c5edc4c895b519 100644 (file)
@@ -335,7 +335,7 @@ extern void i386_reset_hook (void);
 
 extern int ia32_cpuid_needed;
 
-#if !defined(HAVE_FENV_H) || defined(BORKED_FENV)
+#ifndef HAVE_FENV_H
 #  define CMPINTMD_EMULATES_FENV
 #  include "cmpintmd/x86-fenv.h"
 #endif
index a65f40ee79457b1f2898046aa356b63d57f474fc..dc5ddcd2e667460bc8158615e8da4f5e767ce6a8 100644 (file)
@@ -26,23 +26,6 @@ USA.
 
 /* C99 <fenv.h> emulation for x86 (shared between i386 and amd64) */
 
-#ifdef BORKED_FENV
-# undef HAVE_FEGETROUND
-# undef HAVE_FESETROUND
-# undef HAVE_FECLEAREXCEPT
-# undef HAVE_FEGETEXCEPTFLAG
-# undef HAVE_FERAISEEXCEPT
-# undef HAVE_FESETEXCEPTFLAG
-# undef HAVE_FETESTEXCEPT
-# undef HAVE_FEDISABLEEXCEPT
-# undef HAVE_FEENABLEEXCEPT
-# undef HAVE_FEGETEXCEPT
-# undef HAVE_FEGETENV
-# undef HAVE_FESETENV
-# undef HAVE_FEHOLDEXCEPT
-# undef HAVE_FEUPDATEENV
-#endif
-
 #define HAVE_FENV_T
 #define HAVE_FEXCEPT_T
 
index 0a9b688450498bd9a644098ace5a5d6b2ea53eb7..642cf04a08db2628e56b5d1124d014c41bd5d025 100644 (file)
@@ -369,13 +369,8 @@ define([SCM_INC_FENV],
     ])
 
 if test "x$ac_cv_header_fenv_h" = "xyes"; then
-  if test "x$BORKED_FENV" = "xyes"; then
-    AC_DEFINE([BORKED_FENV], [1],
-       [Define to 1 if your fenv implementation is broken.])
-  else
-    AC_CHECK_TYPES([fenv_t], [], [], [SCM_INC_FENV])
-    AC_CHECK_TYPES([fexcept_t], [], [], [SCM_INC_FENV])
-  fi
+  AC_CHECK_TYPES([fenv_t], [], [], [SCM_INC_FENV])
+  AC_CHECK_TYPES([fexcept_t], [], [], [SCM_INC_FENV])
 fi
 
 AC_CHECK_SIZEOF([time_t])
index 0ff82ae40cf6b2d88664ca4783dc006576cd67dd..6ab58ac79c998039ce084d8293481df67fb2a58b 100644 (file)
@@ -32,7 +32,7 @@ USA.
 
 #include "cmpintmd.h"
 
-#if (defined (HAVE_FENV_H) && !defined (BORKED_FENV))
+#if (defined (HAVE_FENV_H))
 #  include <fenv.h>
 #  ifdef HAVE_FENV_T
 #    define scheme_fenv_t fenv_t