From 9e6162f9d0102d1f5738bf78258b24ea5a647ea4 Mon Sep 17 00:00:00 2001 From: sof Date: Fri, 27 Jun 2003 18:28:33 +0000 Subject: [PATCH] [project @ 2003-06-27 18:28:31 by sof] 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 | 8 ++++---- ghc/compiler/main/Main.hs | 17 +++++++++-------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/ghc/compiler/main/DriverPipeline.hs b/ghc/compiler/main/DriverPipeline.hs index e0aa062..f6f65a0 100644 --- a/ghc/compiler/main/DriverPipeline.hs +++ b/ghc/compiler/main/DriverPipeline.hs @@ -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 diff --git a/ghc/compiler/main/Main.hs b/ghc/compiler/main/Main.hs index 20a551e..1fed643 100644 --- a/ghc/compiler/main/Main.hs +++ b/ghc/compiler/main/Main.hs @@ -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") -- 1.7.10.4