X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FDriverPipeline.hs;h=9bcc30aa991c6974bde0b37c6e0a34d15947285a;hb=d4d383b880ac76d803cdd37fb031ab0c50eb9170;hp=13c91c2b9c5b253ef4bff159f71bad258ec2e21c;hpb=3745ba90ed699fe0e21423a545972e45380e8ed2;p=ghc-hetmet.git 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)