diff options
author | Peter Trommler <ptrommler@acm.org> | 2020-02-16 18:48:25 +0100 |
---|---|---|
committer | Peter Trommler <ptrommler@acm.org> | 2020-03-25 13:55:17 +0100 |
commit | 883f59332c53f23a77bdbda69fa54d37a5ab708d (patch) | |
tree | 6af255a63c83471de303a6b0799997ca0a9e13dd /compiler | |
parent | 2643ba465cd2a133b6f495f34fc59cd1a6d23525 (diff) | |
download | haskell-wip/T11531.tar.gz |
Do not panic on linker errorswip/T11531
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/GHC/Runtime/Linker.hs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/GHC/Runtime/Linker.hs b/compiler/GHC/Runtime/Linker.hs index 331b460c06..c8b4b63a78 100644 --- a/compiler/GHC/Runtime/Linker.hs +++ b/compiler/GHC/Runtime/Linker.hs @@ -187,7 +187,7 @@ getHValue hsc_env name = do m <- lookupClosure hsc_env (unpackFS sym_to_find) case m of Just hvref -> mkFinalizedHValue hsc_env hvref - Nothing -> linkFail "GHC.ByteCode.Linker.lookupCE" + Nothing -> linkFail "GHC.Runtime.Linker.getHValue" (unpackFS sym_to_find) linkDependencies :: HscEnv -> PersistentLinkerState @@ -472,7 +472,7 @@ preloadLib hsc_env lib_paths framework_paths pls lib_spec = do Nothing -> maybePutStrLn dflags "done" Just mm -> preloadFailed mm framework_paths lib_spec return pls - else panic "preloadLib Framework" + else throwGhcExceptionIO (ProgramError "preloadLib Framework") where dflags = hsc_dflags hsc_env @@ -964,7 +964,9 @@ dynLoadObjs hsc_env pls@PersistentLinkerState{..} objs = do m <- loadDLL hsc_env soFile case m of Nothing -> return $! pls { temp_sos = (libPath, libName) : temp_sos } - Just err -> panic ("Loading temp shared object failed: " ++ err) + Just err -> linkFail msg err + where + msg = "GHC.Runtime.Linker.dynLoadObjs: Loading temp shared object failed" rmDupLinkables :: [Linkable] -- Already loaded -> [Linkable] -- New linkables |