Commit 43102375 authored by Ian Lynagh's avatar Ian Lynagh
Browse files

Remove the v_Split_info global variable and use a field of dflags instead

parent 7eb7ed72
...@@ -52,7 +52,7 @@ import MonadUtils ...@@ -52,7 +52,7 @@ import MonadUtils
import Data.Either import Data.Either
import Exception import Exception
import Data.IORef ( readIORef, writeIORef, IORef ) import Data.IORef ( readIORef )
import GHC.Exts ( Int(..) ) import GHC.Exts ( Int(..) )
import System.Directory import System.Directory
import System.FilePath import System.FilePath
...@@ -1068,13 +1068,13 @@ runPhase SplitMangle _stop hsc_env _basename _suff input_fn _get_output_fn maybe ...@@ -1068,13 +1068,13 @@ runPhase SplitMangle _stop hsc_env _basename _suff input_fn _get_output_fn maybe
-- Save the number of split files for future references -- Save the number of split files for future references
s <- readFile n_files_fn s <- readFile n_files_fn
let n_files = read s :: Int let n_files = read s :: Int
writeIORef v_Split_info (split_s_prefix, n_files) dflags' = dflags { splitInfo = Just (split_s_prefix, n_files) }
-- Remember to delete all these files -- Remember to delete all these files
addFilesToClean [ split_s_prefix ++ "__" ++ show n ++ ".s" addFilesToClean [ split_s_prefix ++ "__" ++ show n ++ ".s"
| n <- [1..n_files]] | n <- [1..n_files]]
return (SplitAs, dflags, maybe_loc, "**splitmangle**") return (SplitAs, dflags', maybe_loc, "**splitmangle**")
-- we don't use the filename -- we don't use the filename
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
...@@ -1132,7 +1132,9 @@ runPhase SplitAs _stop hsc_env _basename _suff _input_fn get_output_fn maybe_loc ...@@ -1132,7 +1132,9 @@ runPhase SplitAs _stop hsc_env _basename _suff _input_fn get_output_fn maybe_loc
let as_opts = getOpts dflags opt_a let as_opts = getOpts dflags opt_a
(split_s_prefix, n) <- readIORef v_Split_info let (split_s_prefix, n) = case splitInfo dflags of
Nothing -> panic "No split info"
Just x -> x
let split_s n = split_s_prefix ++ "__" ++ show n <.> "s" let split_s n = split_s_prefix ++ "__" ++ show n <.> "s"
split_obj n = split_odir </> split_obj n = split_odir </>
...@@ -1726,5 +1728,3 @@ hscMaybeAdjustTarget dflags stop _ current_hsc_lang ...@@ -1726,5 +1728,3 @@ hscMaybeAdjustTarget dflags stop _ current_hsc_lang
-- otherwise, stick to the plan -- otherwise, stick to the plan
| otherwise = current_hsc_lang | otherwise = current_hsc_lang
GLOBAL_VAR(v_Split_info, ("",0), (String,Int))
-- The split prefix and number of files
...@@ -347,6 +347,9 @@ data DynFlags = DynFlags { ...@@ -347,6 +347,9 @@ data DynFlags = DynFlags {
buildTag :: String, -- ^ The global \"way\" (e.g. \"p\" for prof) buildTag :: String, -- ^ The global \"way\" (e.g. \"p\" for prof)
rtsBuildTag :: String, -- ^ The RTS \"way\" rtsBuildTag :: String, -- ^ The RTS \"way\"
-- For object splitting
splitInfo :: Maybe (String,Int),
-- paths etc. -- paths etc.
objectDir :: Maybe String, objectDir :: Maybe String,
hiDir :: Maybe String, hiDir :: Maybe String,
...@@ -600,6 +603,7 @@ defaultDynFlags = ...@@ -600,6 +603,7 @@ defaultDynFlags =
wayNames = panic "defaultDynFlags: No wayNames", wayNames = panic "defaultDynFlags: No wayNames",
buildTag = panic "defaultDynFlags: No buildTag", buildTag = panic "defaultDynFlags: No buildTag",
rtsBuildTag = panic "defaultDynFlags: No rtsBuildTag", rtsBuildTag = panic "defaultDynFlags: No rtsBuildTag",
splitInfo = Nothing,
-- initSysTools fills all these in -- initSysTools fills all these in
ghcUsagePath = panic "defaultDynFlags: No ghciUsagePath", ghcUsagePath = panic "defaultDynFlags: No ghciUsagePath",
ghciUsagePath = panic "defaultDynFlags: No ghciUsagePath", ghciUsagePath = panic "defaultDynFlags: No ghciUsagePath",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment