-- language opts
opt_DictsStrict,
- opt_MaxContextReductionDepth,
opt_IrrefutableTuples,
opt_Parallel,
opt_RuntimeTypes,
import Util
import Maybes ( firstJust )
import Panic ( GhcException(..), ghcError )
-import Constants ( mAX_CONTEXT_REDUCTION_DEPTH )
import EXCEPTION ( throwDyn )
import DATA_IOREF
import UNSAFE_IO ( unsafePerformIO )
import Monad ( when )
import Char ( isDigit )
-import List ( sort, intersperse )
+import Data.List ( sort, intersperse, nub )
-----------------------------------------------------------------------------
-- Static flags
-- language opts
opt_DictsStrict = lookUp FSLIT("-fdicts-strict")
opt_IrrefutableTuples = lookUp FSLIT("-firrefutable-tuples")
-opt_MaxContextReductionDepth = lookup_def_int "-fcontext-stack" mAX_CONTEXT_REDUCTION_DEPTH
opt_Parallel = lookUp FSLIT("-fparallel")
opt_Flatten = lookUp FSLIT("-fflatten")
"fPIC"
]
|| any (flip prefixMatch f) [
- "fcontext-stack",
"fliberate-case-threshold",
"fmax-worker-args",
"fhistory-size",
findBuildTag :: IO [String] -- new options
findBuildTag = do
way_names <- readIORef v_Ways
- let ws = sort way_names
+ let ws = sort (nub way_names)
if not (allowed_combination ws)
then throwDyn (CmdLineError $
"combination not supported: " ++
#if defined(freebsd_TARGET_OS)
"-optc-pthread"
, "-optl-pthread"
+#elif defined(solaris2_TARGET_OS)
+ "-optl-lrt"
#endif
] ),