Merge changes
[ghc-hetmet.git] / compiler / main / StaticFlags.hs
index b49323b..9e1d8ad 100644 (file)
@@ -55,7 +55,6 @@ module StaticFlags (
        -- misc opts
        opt_IgnoreDotGhci,
        opt_ErrorSpans,
-       opt_EmitCExternDecls,
        opt_GranMacros,
        opt_HiVersion,
        opt_HistorySize,
@@ -69,7 +68,6 @@ module StaticFlags (
 
 #include "HsVersions.h"
 
-import Util            ( consIORef )
 import CmdLineParser
 import Config          ( cProjectVersionInt, cProjectPatchLevel,
                          cGhcUnregisterised )
@@ -263,7 +261,6 @@ opt_RulesOff                        = lookUp  FSLIT("-frules-off")
 opt_LiberateCaseThreshold      = lookup_def_int "-fliberate-case-threshold" (10::Int)
 opt_MaxWorkerArgs              = lookup_def_int "-fmax-worker-args" (10::Int)
 
-opt_EmitCExternDecls           = lookUp  FSLIT("-femit-extern-decls")
 opt_GranMacros                 = lookUp  FSLIT("-fgransim")
 opt_HiVersion                  = read (cProjectVersionInt ++ cProjectPatchLevel) :: Int
 opt_HistorySize                        = lookup_def_int "-fhistory-size" 20
@@ -306,15 +303,10 @@ isStaticFlag f =
        "fauto-sccs-on-individual-cafs",
        "fscc-profiling",
        "fticky-ticky",
-       "fall-strict",
        "fdicts-strict",
        "firrefutable-tuples",
        "fparallel",
        "fflatten",
-       "fsemi-tagging",
-       "flet-no-escape",
-       "femit-extern-decls",
-       "fglobalise-toplev-names",
        "fgransim",
        "fno-hi-version-check",
        "dno-black-holing",
@@ -327,7 +319,6 @@ isStaticFlag f =
        "static",
        "funregisterised",
        "fext-core",
-       "frule-check",
        "frules-off",
        "fcpr-off",
        "ferror-spans",
@@ -445,7 +436,6 @@ allowed_combination way = and [ x `allowedWith` y
        _ `allowedWith` WayDebug                = True
        WayDebug `allowedWith` _                = True
 
-       WayThreaded `allowedWith` WayProf       = True
        WayProf `allowedWith` WayUnreg          = True
        WayProf `allowedWith` WayNDP            = True
        _ `allowedWith` _                       = False
@@ -488,8 +478,13 @@ way_details :: [ (WayName, Way) ]
 way_details =
   [ (WayThreaded, Way "thr" True "Threaded" [
 #if defined(freebsd_TARGET_OS)
-         "-optc-pthread"
-        , "-optl-pthread"
+--       "-optc-pthread"
+--      , "-optl-pthread"
+       -- FreeBSD's default threading library is the KSE-based M:N libpthread,
+       -- which GHC has some problems with.  It's currently not clear whether
+       -- the problems are our fault or theirs, but it seems that using the
+       -- alternative 1:1 threading library libthr works around it:
+         "-optl-lthr"
 #elif defined(solaris2_TARGET_OS)
           "-optl-lrt"
 #endif