blob: d26fae57ea8d23cfbdf67ed5fa5156a79f57af6c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
module LinkerUnload (init) where
import GHC
import DynFlags
import GHC.Runtime.Linker as Linker
import System.Environment
import MonadUtils ( MonadIO(..) )
foreign export ccall loadPackages :: IO ()
loadPackages :: IO ()
loadPackages = do
[libdir] <- getArgs
runGhc (Just libdir) $ do
dflags <- getSessionDynFlags
let dflags' = dflags { hscTarget = HscNothing
, ghcLink = LinkInMemory }
pkgs <- setSessionDynFlags dflags'
hsc_env <- getSession
liftIO $ Linker.linkPackages hsc_env pkgs
|