[project @ 2003-06-27 18:28:31 by sof]
authorsof <unknown>
Fri, 27 Jun 2003 18:28:33 +0000 (18:28 +0000)
committersof <unknown>
Fri, 27 Jun 2003 18:28:33 +0000 (18:28 +0000)
Do as for one-shot linking and implicitly supply packages 'base' and
'haskell98' when piecing together a DLL.

Merge to STABLE.

ghc/compiler/main/DriverPipeline.hs
ghc/compiler/main/Main.hs

index e0aa062..f6f65a0 100644 (file)
@@ -1048,8 +1048,8 @@ staticLink o_files dep_packages = do
 -----------------------------------------------------------------------------
 -- Making a DLL (only for Win32)
 
-doMkDLL :: [String] -> IO ()
-doMkDLL o_files = do
+doMkDLL :: [String] -> [PackageName] -> IO ()
+doMkDLL o_files dep_packages = do
     verb       <- getVerbFlag
     static     <- readIORef v_Static
     no_hs_main <- readIORef v_NoHsMain
@@ -1057,13 +1057,13 @@ doMkDLL o_files = do
     o_file <- readIORef v_Output_file
     let output_fn = case o_file of { Just s -> s; Nothing -> "HSdll.dll"; }
 
-    pkg_lib_paths <- getPackageLibraryPath []
+    pkg_lib_paths <- getPackageLibraryPath dep_packages
     let pkg_lib_path_opts = map ("-L"++) pkg_lib_paths
 
     lib_paths <- readIORef v_Library_paths
     let lib_path_opts = map ("-L"++) lib_paths
 
-    pkg_link_opts <- getPackageLinkOpts []
+    pkg_link_opts <- getPackageLinkOpts dep_packages
 
        -- probably _stub.o files
     extra_ld_inputs <- readIORef v_Ld_inputs
index 20a551e..1fed643 100644 (file)
@@ -1,7 +1,7 @@
 {-# OPTIONS -fno-warn-incomplete-patterns -optc-DNON_POSIX_SOURCE #-}
 
 -----------------------------------------------------------------------------
--- $Id: Main.hs,v 1.127 2003/06/23 10:35:17 simonpj Exp $
+-- $Id: Main.hs,v 1.128 2003/06/27 18:28:33 sof Exp $
 --
 -- GHC Driver program
 --
@@ -233,6 +233,12 @@ main =
        ---------------- Final sanity checking -----------
    checkOptions mode srcs objs
 
+    -- We always link in the base package in
+    -- one-shot linking.  Any other packages
+    -- required must be given using -package
+    -- options on the command-line.
+   let def_hs_pkgs = [basePackage, haskell98Package]
+
        ---------------- Do the business -----------
    case mode of
        DoMake         -> doMake srcs
@@ -242,16 +248,11 @@ main =
                               endMkDependHS }
        StopBefore p   -> do { compileFiles mode srcs; return () }
        DoMkDLL        -> do { o_files <- compileFiles mode srcs; 
-                              doMkDLL o_files }
+                              doMkDLL o_files def_hs_pkgs }
        DoLink         -> do { o_files <- compileFiles mode srcs; 
                               omit_linking <- readIORef v_NoLink;
                               when (not omit_linking)
-                                   (staticLink o_files 
-                                       [basePackage, haskell98Package]) }
-                       -- We always link in the base package in
-                       -- one-shot linking.  Any other packages
-                       -- required must be given using -package
-                       -- options on the command-line.
+                                   (staticLink o_files def_hs_pkgs) }
 
 #ifndef GHCI
        DoInteractive -> throwDyn (CmdLineError "not built for interactive use")