summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/main/GHC.hs6
-rw-r--r--compiler/main/SysTools.hs16
2 files changed, 11 insertions, 11 deletions
diff --git a/compiler/main/GHC.hs b/compiler/main/GHC.hs
index 2b25646d8d..0e20e21fdb 100644
--- a/compiler/main/GHC.hs
+++ b/compiler/main/GHC.hs
@@ -326,6 +326,7 @@ import HscTypes
import CmdLineParser
import DynFlags hiding (WarnReason(..))
import SysTools
+import SysTools.BaseDir
import Annotations
import Module
import Panic
@@ -494,8 +495,9 @@ withCleanupSession ghc = ghc `gfinally` cleanup
initGhcMonad :: GhcMonad m => Maybe FilePath -> m ()
initGhcMonad mb_top_dir
= do { env <- liftIO $
- do { mySettings <- initSysTools mb_top_dir
- ; myLlvmConfig <- initLlvmConfig mb_top_dir
+ do { top_dir <- findTopDir mb_top_dir
+ ; mySettings <- initSysTools top_dir
+ ; myLlvmConfig <- initLlvmConfig top_dir
; dflags <- initDynFlags (defaultDynFlags mySettings myLlvmConfig)
; checkBrokenTablesNextToCode dflags
; setUnsafeGlobalDynFlags dflags
diff --git a/compiler/main/SysTools.hs b/compiler/main/SysTools.hs
index c3d154f0e6..ff36c04ecf 100644
--- a/compiler/main/SysTools.hs
+++ b/compiler/main/SysTools.hs
@@ -110,17 +110,16 @@ stuff.
************************************************************************
-}
-initLlvmConfig :: Maybe String
- -> IO LlvmConfig
-initLlvmConfig mbMinusB
+initLlvmConfig :: String
+ -> IO LlvmConfig
+initLlvmConfig top_dir
= do
targets <- readAndParse "llvm-targets" mkLlvmTarget
passes <- readAndParse "llvm-passes" id
return (targets, passes)
where
readAndParse name builder =
- do top_dir <- findTopDir mbMinusB
- let llvmConfigFile = top_dir </> name
+ do let llvmConfigFile = top_dir </> name
llvmConfigStr <- readFile llvmConfigFile
case maybeReadFuzzy llvmConfigStr of
Just s -> return (fmap builder <$> s)
@@ -130,14 +129,13 @@ initLlvmConfig mbMinusB
mkLlvmTarget (dl, cpu, attrs) = LlvmTarget dl cpu (words attrs)
-initSysTools :: Maybe String -- Maybe TopDir path (without the '-B' prefix)
+initSysTools :: String -- TopDir path
-> IO Settings -- Set all the mutable variables above, holding
-- (a) the system programs
-- (b) the package-config file
-- (c) the GHC usage message
-initSysTools mbMinusB
- = do top_dir <- findTopDir mbMinusB
- -- see Note [topdir: How GHC finds its files]
+initSysTools top_dir
+ = do -- see Note [topdir: How GHC finds its files]
-- NB: top_dir is assumed to be in standard Unix
-- format, '/' separated
mtool_dir <- findToolDir top_dir