Add Main.dyn_o deployed into the RTS library dir to linking (see DLLNOTES for rational)
[ghc-hetmet.git] / compiler / main / DriverPipeline.hs
index ef2c239..e14d9b7 100644 (file)
@@ -58,7 +58,6 @@ import Data.List      ( isSuffixOf )
 import Data.Maybe
 import System.Exit
 import System.Environment
-import System.FilePath
 
 -- ---------------------------------------------------------------------------
 -- Pre-process
@@ -1215,7 +1214,12 @@ linkBinary dflags o_files dep_packages = do
         framework_opts = concat [ ["-framework", fw] | fw <- reverse frameworks ]
         -- reverse because they're added in reverse order from the cmd line
 #endif
-
+#ifdef mingw32_TARGET_OS
+    let dynMain = if not opt_Static then
+                     (head (libraryDirs (getPackageDetails (pkgState dflags) rtsPackageId))) ++ "/Main.dyn_o"
+                 else
+                     ""
+#endif
        -- probably _stub.o files
     extra_ld_inputs <- readIORef v_Ld_inputs
 
@@ -1257,6 +1261,9 @@ linkBinary dflags o_files dep_packages = do
                      ++ map SysTools.Option (
                         md_c_flags
                      ++ o_files
+#ifdef mingw32_TARGET_OS
+                     ++ [dynMain]
+#endif
                      ++ extra_ld_inputs
                      ++ lib_path_opts
                      ++ extra_ld_opts