projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix -split-objs: there was a bad interaction with the recent changes
[ghc-hetmet.git]
/
compiler
/
main
/
DriverPipeline.hs
diff --git
a/compiler/main/DriverPipeline.hs
b/compiler/main/DriverPipeline.hs
index
13c91c2
..
9bcc30a
100644
(file)
--- 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
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
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]
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
-- 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)
return (next_phase, output_fn)