From: Ian Lynagh Date: Sun, 23 Sep 2007 18:16:20 +0000 (+0000) Subject: Notice when C modules have changed when deciding whether or not to link X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=b17eae42ad936fd88ddcc356ba876e8a0910d46b;hp=b9f6e4bbf09f7bc003fc1ea3cc5800609b2f99d0 Notice when C modules have changed when deciding whether or not to link Based on a patch from Lemmih --- diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs index c0595f9..22ce8c4 100644 --- a/compiler/main/DriverPipeline.hs +++ b/compiler/main/DriverPipeline.hs @@ -304,10 +304,13 @@ link LinkBinary dflags batch_attempt_linking hpt -- modification times on all of the objects, then omit linking -- (unless the -no-recomp flag was given). e_exe_time <- IO.try $ getModificationTime exe_file - let linking_needed + extra_ld_inputs <- readIORef v_Ld_inputs + extra_times <- mapM (IO.try . getModificationTime) extra_ld_inputs + let other_times = map linkableTime linkables + ++ [ t' | Right t' <- extra_times ] + linking_needed | Left _ <- e_exe_time = True - | Right t <- e_exe_time = - any (t <) (map linkableTime linkables) + | Right t <- e_exe_time = any (t <) other_times if not (dopt Opt_ForceRecomp dflags) && not linking_needed then do debugTraceMsg dflags 2 (text exe_file <+> ptext SLIT("is up to date, linking not required."))