only pass -fno-unit-at-a-time to gcc if it is supported
authorSimon Marlow <simonmar@microsoft.com>
Wed, 3 May 2006 09:36:14 +0000 (09:36 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Wed, 3 May 2006 09:36:14 +0000 (09:36 +0000)
aclocal.m4
compiler/main/DynFlags.hs
configure.ac

index b5622df..ebe182d 100644 (file)
@@ -1079,13 +1079,24 @@ AC_SUBST([GhcHasReadline], [`echo $fp_cv_ghc_has_readline | sed 'y/yesno/YESNO/'
 AC_DEFUN([FP_GCC_NEEDS_NO_OMIT_LFPTR],
 [AC_REQUIRE([FP_HAVE_GCC])
 AC_CACHE_CHECK([whether gcc needs -mno-omit-leaf-frame-pointer], [fp_cv_gcc_needs_no_omit_lfptr],
-[FP_COMPARE_VERSIONS([$gcc_version_str], [-ge], [3.2],
+[FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.2],
   [fp_cv_gcc_needs_no_omit_lfptr=yes],
   [fp_cv_gcc_needs_no_omit_lfptr=no])])
 if test "$fp_cv_gcc_needs_no_omit_lfptr" = "yes"; then
    AC_DEFINE([HAVE_GCC_MNO_OMIT_LFPTR], [1], [Define to 1 if gcc supports -mno-omit-leaf-frame-pointer.])
 fi])# FP_GCC_NEEDS_NO_OMIT_LFPTR
 
+# FP_GCC_HAS_NO_UNIT_AT_A_TIME
+# --------------------------
+AC_DEFUN([FP_GCC_HAS_NO_UNIT_AT_A_TIME],
+[AC_REQUIRE([FP_HAVE_GCC])
+AC_CACHE_CHECK([whether gcc has -fno-unit-at-a-time], [fp_cv_gcc_has_no_unit_at_a_time],
+[FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.4],
+  [fp_cv_gcc_has_no_unit_at_a_time=yes],
+  [fp_cv_gcc_has_no_unit_at_a_time=no])])
+if test "$fp_cv_gcc_has_no_unit_at_a_time" = "yes"; then
+   AC_DEFINE([HAVE_GCC_HAS_NO_UNIT_AT_A_TIME], [1], [Define to 1 if gcc supports -fno-unit-at-a-time.])
+fi])
 
 # FP_SETUP_PROJECT_VERSION
 # ---------------------
index aa2a400..0769812 100644 (file)
@@ -1267,11 +1267,13 @@ machdepCCOpts dflags
                        -- and get in the way of -split-objs.  Another option
                        -- would be to throw them away in the mangler, but this
                        -- is easier.
+#ifdef HAVE_GCC_HAS_NO_UNIT_AT_A_TIME
                 "-fno-unit-at-a-time",
                        -- unit-at-a-time doesn't do us any good, and screws
                        -- up -split-objs by moving the split markers around.
                        -- It's only turned on with -O2, but put it here just
                        -- in case someone uses -optc-O2.
+#endif
                 "-fno-builtin"
                        -- calling builtins like strlen() using the FFI can
                        -- cause gcc to run out of regs, so use the external
index a35ad81..29ed29f 100644 (file)
@@ -844,6 +844,7 @@ dnl
 FP_HAVE_GCC
 FP_MINGW_GCC
 FP_GCC_NEEDS_NO_OMIT_LFPTR
+FP_GCC_HAS_NO_UNIT_AT_A_TIME
 
 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
 AC_PROG_CPP