summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/main/DynFlags.hs12
-rw-r--r--ghc/Main.hs2
2 files changed, 10 insertions, 4 deletions
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index 121c85f685..47756c5ea1 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -66,6 +66,7 @@ module DynFlags (
-- ** Manipulating DynFlags
defaultDynFlags, -- Settings -> DynFlags
+ defaultWays,
initDynFlags, -- DynFlags -> IO DynFlags
defaultFatalMessager,
defaultLogAction,
@@ -1183,9 +1184,9 @@ defaultDynFlags mySettings =
packageFlags = [],
pkgDatabase = Nothing,
pkgState = panic "no package state yet: call GHC.setSessionDynFlags",
- ways = [],
- buildTag = mkBuildTag [],
- rtsBuildTag = mkBuildTag [],
+ ways = defaultWays mySettings,
+ buildTag = mkBuildTag (defaultWays mySettings),
+ rtsBuildTag = mkBuildTag (defaultWays mySettings),
splitInfo = Nothing,
settings = mySettings,
-- ghc -M values
@@ -1240,6 +1241,11 @@ defaultDynFlags mySettings =
interactivePrint = Nothing
}
+defaultWays :: Settings -> [Way]
+defaultWays settings = if pc_dYNAMIC_BY_DEFAULT (sPlatformConstants settings)
+ then [WayDyn]
+ else []
+
--------------------------------------------------------------------------
type FatalMessager = String -> IO ()
diff --git a/ghc/Main.hs b/ghc/Main.hs
index 37b7f31e31..f05ddab7f6 100644
--- a/ghc/Main.hs
+++ b/ghc/Main.hs
@@ -292,7 +292,7 @@ checkOptions mode dflags srcs objs = do
hPutStrLn stderr ("Warning: -debug, -threaded and -ticky are ignored by GHCi")
-- -prof and --interactive are not a good combination
- when (notNull (filter (not . wayRTSOnly) (ways dflags))
+ when ((filter (not . wayRTSOnly) (ways dflags) /= defaultWays (settings dflags))
&& isInterpretiveMode mode) $
do ghcError (UsageError
"--interactive can't be used with -prof or -unreg.")