Loading package integer-gmp ... <command line>: can't load .so/.DLL for: libgmp.so (libgmp.so: cannot open shared object file: No such file or directory)

Gergely Risko gergely at risko.hu
Sun May 11 22:41:00 UTC 2014


On Sun, 11 May 2014 21:42:45 +0200, Mateusz Kowalczyk <fuuzetsu at fuuzetsu.co.uk> writes:

> Are there any downsides to doing this except slightly bigger binary size?

There are license issues if you want to distribute the resulting stuff.
Have to ask your lawyers about lgpl + gmp + shipping binary only stuff.
On the technical side, there are no other downsides.

> Sorry, you're correct, I did not pass interactive. Find attached the
> strace with --interactive.
>
> [...]
>
> Actually, I'm doing this already:
> https://github.com/Fuuzetsu/nix-project-defaults/blob/master/ghc/default.nix

At the end of your strace, I see this:
Loading package integer-gmp ... [pid 10676] open("/home/shana/programming/ghc/libraries/haskeline/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/terminfo/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/compiler/stage2/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/transformers/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/template-haskell/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/hpc/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/hoopl/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/bin-package-db/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/binary/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/Cabal/Cabal/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/process/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/pretty/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/directory/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/unix/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/time/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/old-locale/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/filepath/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/containers/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/bytestring/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/deepseq/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/array/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/base/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/integer-gmp/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/libraries/ghc-prim/dist-install/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/rts/dist/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/run/opengl-driver/lib/tls/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/run/opengl-driver/lib/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/run/opengl-driver-32/lib/tls/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/run/opengl-driver-32/lib/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/home/shana/programming/ghc/rts/dist/build/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/nix/store/4v0a2fncxsk2f57jixq7i59k6hdl34fx-glibc-2.19/lib/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/nix/store/n5hl6lpm87mxf4qd8f2zq423al1gwdj9-gcc-4.8.2/lib/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/nix/store/4v0a2fncxsk2f57jixq7i59k6hdl34fx-glibc-2.19/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid 10676] open("/nix/store/4v0a2fncxsk2f57jixq7i59k6hdl34fx-glibc-2.19/lib/libgmp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
<command line>: can't load .so/.DLL for: libgmp.so (libgmp.so: cannot open shared object file: No such file or directory)

So you can see that it tries to read libgmp from a lot of places, but
not from the one you specified in build.mk, so this seems to be a build
system bug.

The last commit in GHC that I tried and succeeded to compile 2 weeks ago
with a very similar setup as yours was this:
12332f1add3eb9615a62abb36898819b2e67e865

Can you please try that so we can rule on whether there was a change
very recently that broke this.

> I am even running 'patchPhase && configurePhase && buildPhase' which
> should technically be exactly what nix does with the package in nixpkgs.
> By the way, the official nix package for HEAD isn't quite HEAD but
> instead a snapshot of somewhere near HEAD and in fact I'm the person
> that opened an issue and a PR to get that updated. The fact that it
> builds that but doesn't build when I'm in the source tree makes me
> wonder what's different.

I see.  I'm flying out in 10 hours for vacation, so won't have time to
reproduce your issue and look into this more deeply.  If you figure out
what's happening, please send me a summary.

Maybe you should move this thread to the gmane.linux.distributions.nixos
mailing list from here, because I guess Peter Simons and co can help you
more with this, than GHC devs.

If I find the bandwidth during travels, I will try to keep an eye on this.

Gergely



More information about the ghc-devs mailing list