Add a flag to disable linking with the haskell98 package
[ghc-hetmet.git] / compiler / main / DriverPipeline.hs
index 318dac5..8543707 100644 (file)
@@ -53,7 +53,7 @@ import GHC.Exts               ( Int(..) )
 import System.Directory
 import System.FilePath
 import System.IO
-import SYSTEM_IO_ERROR as IO
+import System.IO.Error as IO
 import Control.Monad
 import Data.List       ( isSuffixOf )
 import Data.Maybe
@@ -130,7 +130,7 @@ compile hsc_env0 summary mod_index nmods mb_old_iface maybe_old_linkable
                                extCoreName = basename ++ ".hcr" }
    let hsc_env' = hsc_env { hsc_dflags = dflags' }
 
-   -- -no-recomp should also work with --make
+   -- -fforce-recomp should also work with --make
    let force_recomp = dopt Opt_ForceRecomp dflags
        source_unchanged = isJust maybe_old_linkable && not force_recomp
        object_filename = ml_obj_file location
@@ -295,7 +295,7 @@ link LinkBinary dflags batch_attempt_linking hpt
 
         -- if the modification time on the executable is later than the
         -- modification times on all of the objects, then omit linking
-        -- (unless the -no-recomp flag was given).
+        -- (unless the -fforce-recomp flag was given).
         e_exe_time <- IO.try $ getModificationTime exe_file
         extra_ld_inputs <- readIORef v_Ld_inputs
         extra_times <- mapM (IO.try . getModificationTime) extra_ld_inputs
@@ -389,7 +389,9 @@ doLink dflags stop_phase o_files
   where
    -- Always link in the haskell98 package for static linking.  Other
    -- packages have to be specified via the -package flag.
-    link_pkgs = [haskell98PackageId]
+    link_pkgs
+     | dopt Opt_LinkHaskell98 dflags = [haskell98PackageId]
+     | otherwise                     = []
 
 
 -- ---------------------------------------------------------------------------
@@ -1214,17 +1216,6 @@ mk_pvm_wrapper_script pvm_executable pvm_executable_base sysMan = unlines $
  ]
 
 -----------------------------------------------------------------------------
--- Complain about non-dynamic flags in OPTIONS pragmas
-
-checkProcessArgsResult :: [String] -> FilePath -> IO ()
-checkProcessArgsResult flags filename
-  = do when (notNull flags) (throwDyn (ProgramError (
-         showSDoc (hang (text filename <> char ':')
-                     4 (text "unknown flags in  {-# OPTIONS #-} pragma:" <+>
-                         hsep (map text flags)))
-       )))
-
------------------------------------------------------------------------------
 -- Look for the /* GHC_PACKAGES ... */ comment at the top of a .hc file
 
 getHCFilePackages :: FilePath -> IO [PackageId]