linkPackages,
) where
-#include "../includes/ghcconfig.h"
#include "HsVersions.h"
import ObjLink ( loadDLL, loadObj, unloadObj, resolveObjs, initObjLinker )
-- 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}
-- 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)
= 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")
-- ----------------------------------------------------------------------------