[commit: ghc] master: Dynamically link all loaded packages in new object (0fcc454)
git at git.haskell.org
git at git.haskell.org
Sat Mar 7 17:15:31 UTC 2015
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/0fcc454329c4e3e0dc4474412bff599d0e9bdfcd/ghc
>---------------------------------------------------------------
commit 0fcc454329c4e3e0dc4474412bff599d0e9bdfcd
Author: Peter Trommler <ptrommler at acm.org>
Date: Sat Mar 7 11:13:37 2015 -0600
Dynamically link all loaded packages in new object
Summary:
As a result of fixing #8935 we needed to open shared libraries
with RTLD_LOCAL and so symbols from packages loaded earlier
cannot be found anymore. We need to include in the link all
packages loaded so far.
This fixes #10058
Test Plan: validate
Reviewers: hvr, simonmar, austin
Reviewed By: austin
Subscribers: rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D676
GHC Trac Issues: #10058
>---------------------------------------------------------------
0fcc454329c4e3e0dc4474412bff599d0e9bdfcd
compiler/ghci/Linker.hs | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/compiler/ghci/Linker.hs b/compiler/ghci/Linker.hs
index 0e36cd9..a2e694e 100644
--- a/compiler/ghci/Linker.hs
+++ b/compiler/ghci/Linker.hs
@@ -846,7 +846,10 @@ dynLoadObjs dflags pls objs = do
buildTag = mkBuildTag [WayDyn],
outputFile = Just soFile
}
- linkDynLib dflags2 objs []
+ -- link all "loaded packages" so symbols in those can be resolved
+ -- Note: We are loading packages with local scope, so to see the
+ -- symbols in this link we must link all loaded packages again.
+ linkDynLib dflags2 objs (pkgs_loaded pls)
consIORef (filesToNotIntermediateClean dflags) soFile
m <- loadDLL soFile
case m of
More information about the ghc-commits
mailing list