summaryrefslogtreecommitdiff
path: root/compiler/GHC/Driver/Session.hs
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2021-04-14 08:50:26 +0100
committerMatthew Pickering <matthewtpickering@gmail.com>2021-04-15 10:24:10 +0100
commitd8bf3d445cbfff223b6dd917f21a638fd4e2385a (patch)
treec8a85c348e766de5e9823fac26dcfe0490d4fce6 /compiler/GHC/Driver/Session.hs
parent79e5c8674d6bc46312efb31101889001951769d7 (diff)
downloadhaskell-wip/dynamic-too-recomp-c.tar.gz
driver: Consider dyn_o files when checking recompilation in -cwip/dynamic-too-recomp-c
When -dynamic-too is enabled, there are two result files, .o and .dyn_o, therefore we should check both to decide whether to set SourceModified or not. The whole recompilation logic is very messy, a more thorough refactor would be beneficial in this area but this is the minimal patch to fix this more high priority problem. Fixes #17968 and hopefully #17534
Diffstat (limited to 'compiler/GHC/Driver/Session.hs')
-rw-r--r--compiler/GHC/Driver/Session.hs5
1 files changed, 2 insertions, 3 deletions
diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs
index 969d63a54b..9b6ee1b626 100644
--- a/compiler/GHC/Driver/Session.hs
+++ b/compiler/GHC/Driver/Session.hs
@@ -985,9 +985,8 @@ positionIndependent dflags = gopt Opt_PIC dflags || gopt Opt_PIE dflags
-- Core optimisation, then the backend (from Core to object code) is executed
-- twice.
--
--- The implementation is currently rather hacky: recompilation avoidance is
--- broken (#17968), we don't clearly separate non-dynamic and dynamic loaded
--- interfaces (#9176), etc.
+-- The implementation is currently rather hacky, for example, we don't clearly separate non-dynamic
+-- and dynamic loaded interfaces (#9176).
--
-- To make matters worse, we automatically enable -dynamic-too when some modules
-- need Template-Haskell and GHC is dynamically linked (cf