diff options
Diffstat (limited to 'testsuite/tests/rts/linker/LinkerUnload.hs')
-rw-r--r-- | testsuite/tests/rts/linker/LinkerUnload.hs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/testsuite/tests/rts/linker/LinkerUnload.hs b/testsuite/tests/rts/linker/LinkerUnload.hs new file mode 100644 index 0000000000..9d6b243256 --- /dev/null +++ b/testsuite/tests/rts/linker/LinkerUnload.hs @@ -0,0 +1,20 @@ +module LinkerUnload (init) where + +import GHC +import DynFlags +import 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 |