haskell / haskell-language-server

Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.
Apache License 2.0
2.71k stars 368 forks source link

error while loading shared libraries: libHSinteger-gmp-1.1-ghc9.4.8.so: cannot open shared object file: No such file or directory #3905

Open thkoch2001 opened 10 months ago

thkoch2001 commented 10 months ago

Your environment

What's wrong?

I'm working in Emacs running on the host over SSH (via emacs tramp-mode), editing files on the VM. When I try to start eglot, the Eglot buffer shows:

[stderr] 2023-12-16T14:14:07.984860Z | Debug | executing command: stack exec ghc -- --print-libdir
[internal] Sat Dec 16 16:14:08 2023:
(:message "Connection state changed" :change "exited abnormally with code 127\n")

----------b---y---e---b---y---e----------
[stderr] /usr/bin/haskell-language-server-9.4.8: error while loading shared libraries: libHSinteger-gmp-1.1-ghc9.4.8.so: cannot open shared object file: No such file or directory

However when I execute HLS from the cli in the VM it runs normally and just waits for JSON input.

This might be a problem in Tramp, but I'd very much appreciate any hints, what HLS is doing when it fails and where to find the code in HLS that fails.

When I lookup ldd ldd haskell-language-server-9.4.8 it says: "not a dynamic executable". So there must be some code somewhere in HLS that tries to dynamically load shared libraries and for some reason does not get the path right when called by Tramp.

thkoch2001 commented 10 months ago

I now built HLS from git with resolver: lts-21.23 and stack install and eglot just worked.

michaelpj commented 10 months ago

Is there some template haskell code in the project? We need to build and load the TH dependencies in order to evaluate splices, so maybe that's where it's coming from?