[project @ 2005-01-28 12:55:17 by simonmar]
[ghc-hetmet.git] / ghc / compiler / ghci / Linker.lhs
index 5b59b9d..ab4cafe 100644 (file)
@@ -20,7 +20,6 @@ module Linker ( HValue, showLinkerState,
                linkPackages,
        ) where
 
-#include "../includes/ghcconfig.h"
 #include "HsVersions.h"
 
 import ObjLink         ( loadDLL, loadObj, unloadObj, resolveObjs, initObjLinker )
@@ -122,9 +121,8 @@ emptyPLS dflags = PersistentLinkerState {
   -- The linker's symbol table is populated with RTS symbols using an
   -- explicit list.  See rts/Linker.c for details.
   where init_pkgs
-         | Just rts_id <- rtsPackageId (pkgState dflags) = [rts_id]
+         | ExtPackage rts_id <- rtsPackageId (pkgState dflags) = [rts_id]
          | otherwise = []
-
 \end{code}
 
 \begin{code}
@@ -386,7 +384,7 @@ getLinkDeps dflags hpt pit mods
        -- Get the things needed for the specified module
        -- This is rather similar to the code in RnNames.importsFromImportDecl
     get_deps mod
-       | ExternalPackage p <- mi_package iface
+       | ExtPackage p <- mi_package iface
        = ([], p : dep_pkgs deps)
        | otherwise
        = (mod : [m | (m,_) <- dep_mods deps], dep_pkgs deps)
@@ -822,9 +820,14 @@ locateOneObj dirs lib
   = do { mb_obj_path <- findFile mk_obj_path dirs 
        ; case mb_obj_path of
            Just obj_path -> return (Object obj_path)
-           Nothing       -> return (DLL lib) }         -- We assume
+           Nothing       -> 
+                do { mb_lib_path <- findFile mk_dyn_lib_path dirs
+                   ; case mb_lib_path of
+                       Just lib_path -> return (DLL (lib ++ "_dyn"))
+                       Nothing       -> return (DLL lib) }}            -- We assume
    where
      mk_obj_path dir = dir ++ '/':lib ++ ".o"
+     mk_dyn_lib_path dir = dir ++ '/':mkSOName (lib ++ "_dyn")
 
 
 -- ----------------------------------------------------------------------------