From: Simon Marlow Date: Wed, 6 Apr 2011 09:31:58 +0000 (+0100) Subject: Fix -split-objs: there was a bad interaction with the recent changes X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=d4d383b880ac76d803cdd37fb031ab0c50eb9170 Fix -split-objs: there was a bad interaction with the recent changes to the way stub files were handled. --- diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs index 13c91c2..9bcc30a 100644 --- a/compiler/main/DriverPipeline.hs +++ b/compiler/main/DriverPipeline.hs @@ -1178,7 +1178,9 @@ runPhase As input_fn dflags runPhase SplitAs _input_fn dflags = do - next_phase <- maybeMergeStub + -- we'll handle the stub_o file in this phase, so don't MergeStub, + -- just jump straight to StopLn afterwards. + let next_phase = StopLn output_fn <- phaseOutputFilename next_phase let base_o = dropExtension output_fn @@ -1226,8 +1228,15 @@ runPhase SplitAs _input_fn dflags io $ mapM_ assemble_file [1..n] + -- If there's a stub_o file, then we make it the n+1th split object. + PipeState{maybe_stub_o} <- getPipeState + n' <- case maybe_stub_o of + Nothing -> return n + Just stub_o -> do io $ copyFile stub_o (split_obj (n+1)) + return (n+1) + -- join them into a single .o file - io $ joinObjectFiles dflags (map split_obj [1..n]) output_fn + io $ joinObjectFiles dflags (map split_obj [1..n']) output_fn return (next_phase, output_fn)