Do not filter the rts from linked libraries in linkDynLib as Windows does not allow...
[ghc-hetmet.git] / compiler / main / DriverPipeline.hs
index 5355d8f..716e06b 100644 (file)
@@ -665,7 +665,7 @@ runPhase (Cpp sf) _stop hsc_env _basename _suff input_fn get_output_fn maybe_loc
   = do let dflags0 = hsc_dflags hsc_env
        src_opts <- liftIO $ getOptionsFromFile dflags0 input_fn
        (dflags, unhandled_flags, warns)
-           <- liftIO $ parseDynamicFlags dflags0 src_opts
+           <- liftIO $ parseDynamicNoPackageFlags dflags0 src_opts
        liftIO $ handleFlagWarnings dflags warns  -- XXX: may exit the program
        liftIO $ checkProcessArgsResult unhandled_flags -- XXX: may throw program error
 
@@ -1188,8 +1188,8 @@ runPhase_MoveBinary dflags input_fn dep_packages
          Wrapped wrapmode ->
              do
                let (o_base, o_ext) = splitExtension input_fn
-               let wrapped_executable | o_ext == "exe" = (o_base ++ "_real") <.> o_ext
-                                      | otherwise = input_fn ++ "_real"
+               let wrapped_executable | o_ext == "exe" = (o_base ++ ".dyn") <.> o_ext
+                                      | otherwise = input_fn ++ ".dyn"
                behaviour <- wrapper_behaviour dflags wrapmode dep_packages
 
                 -- THINKME isn't this possible to do a bit nicer?
@@ -1494,8 +1494,14 @@ linkDynLib dflags o_files dep_packages = do
     -- because the RTS lib comes in several flavours and we want to be
     -- able to pick the flavour when a binary is linked.
     pkgs <- getPreloadPackagesAnd dflags dep_packages
-    let pkgs_no_rts = filter ((/= rtsPackageId) . packageConfigId) pkgs
 
+    -- On Windows we need to link the RTS import lib as Windows does
+    -- not allow undefined symbols.
+#if defined(mingw32_HOST_OS)
+    let pkgs_no_rts = filter ((/= rtsPackageId) . packageConfigId) pkgs
+#else
+    let pkgs_no_rts = pkgs
+#endif
     let pkg_lib_paths = collectLibraryPaths pkgs_no_rts
     let pkg_lib_path_opts = map ("-L"++) pkg_lib_paths