Skip to content

GHC fails with "Dynamic linker not initialised" when -j is on and trying to load nonexistent .so file

For ghc 8.0.2 (on Linux, in nixpkgs 0c041520c3 for exact reproducibility), when TH is used in a ghc --make -j1 invocation, and thus ghc does the whole

cc -fno-stack-protector -DTABLES_NEXT_TO_CODE '-std=c++14' -Wno-deprecated-declarations --print-file-name liblibglog.so
Loading object (dynamic) glog ... done

business, and the .so file in question does not exist, then usually GHC prints

    <command line>: user specified .o/.so/.DLL could not be loaded (libglog.so: cannot open shared object file: No such file or directory)

However, I found that when parallel compilation is enabled, (e.g. ghc -j4), I can get this instead:

[ 23 of 130] Compiling Mymodule  ( Mymodule.hs, dist/build/Mymodule.o )

<no location info>: error:
    ghc: panic! (the 'impossible' happened)
  (GHC version 8.0.2 for x86_64-unknown-linux):
  Dynamic linker not initialised

Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
Trac metadata
Trac field Value
Version 8.0.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related #9868 (closed), #10355 (closed), #13137 (closed)
Blocking
CC Phyx-, angerman, nh2
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information