Open
Description
Your environment
- Host machine
- Debian 12
- Emacs 28.2 (installed via nix package manager)
- eglot
- VM
- Debian 12
- stack 2.13.1
- Haskell project with GHC 9.4.8
- HLS 2.5.0.0 installed via ghcup
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.