-
-
Notifications
You must be signed in to change notification settings - Fork 371
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HLS wrapper is dynamically linked in 1.6.0 release #2650
Comments
NixOS-specific notesThis is causing errors in NixOS environment, where basically dynamic linking is not supported:
HLS binary itself, as opposed to wrapper, works well in NixOS. Also, it is worth noting for NixOS users who try to manually link |
Yeap, same problem on |
The same problem when running in docker container of Debian 10.11:
vscode ➜ ~/…/User/globalStorage/haskell.haskell $ cat /etc/debian_version
10.11
vscode ➜ ~/…/User/globalStorage/haskell.haskell $ ldd haskell-language-server-wrapper-1.6.0.0-linux
linux-vdso.so.1 (0x00007ffe069f1000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f36201ac000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f361ff8e000)
libtinfo.so.5 => not found
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f361ff84000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f361ff7f000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f361ff7a000)
libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f361fef5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f361fd34000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f361fbb1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f36201d4000) Seems like Debian 10 have more recent version of vscode ➜ ~/…/User/globalStorage/haskell.haskell $ sudo apt list --installed | grep libtinfo
libtinfo-dev/oldstable,now 6.1+20181013-2+deb10u2 amd64 [installed]
libtinfo6/oldstable,now 6.1+20181013-2+deb10u2 amd64 [installed,automatic] Manually installing package vscode ➜ ~/…/User/globalStorage/haskell.haskell $ sudo apt install libtinfo5
vscode ➜ ~/…/User/globalStorage/haskell.haskell $ ldd haskell-language-server-wrapper-1.6.0.0-linux
linux-vdso.so.1 (0x00007fff3e5e4000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f441bc74000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f441ba56000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f441ba2a000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f441ba20000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f441ba1b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f441ba16000)
libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f441b991000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f441b7d0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f441b64d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f441bc9c000) The last version of ncurses 5.11 was released in 2011, so I think it considered as outdated. 6.0 is available since 2015. |
@sonowz @mystilleef @nartamonov sad to see the wrapper (and only the wrapper 🤔) is causing problems to you At a first quick look i've checked the size of the first wrapper is 27 mb and in 1.5.1/1.5.0 was only 8 mb, so a clear signal they were not built the same way. I am revising all the config files to trace where could be the difference |
and the we can see lot of linker warningslike:
And no linker warnings So same os ubuntu-18.04, |
@jneira I've checked the wrapper by your link. It also has the dynamic dependency on vscode ➜ ~/tmp $ wget https://github.com/haskell/haskell-language-server/releases/download/1.6.0.0/haskell-language-server-wrapper-Linux.gz
haskell-language-server-wrapper-Linux.gz 100%[======================================================================================================>] 27.12M 2.97MB/s in 9.2s
2022-01-29 13:52:53 (2.95 MB/s) - ‘haskell-language-server-wrapper-Linux.gz’ saved [28432491/28432491]
vscode ➜ ~/tmp $ gzip -d haskell-language-server-wrapper-Linux.gz
vscode ➜ ~/tmp $ chmod +x haskell-language-server-wrapper-Linux
vscode ➜ ~/tmp $ ldd haskell-language-server-wrapper-Linux
linux-vdso.so.1 (0x00007ffcdc8f3000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4203740000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4203522000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f42034f6000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f42034ec000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f42034e7000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f42034e2000)
libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f420345d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f420329c000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4203119000)
/lib64/ld-linux-x86-64.so.2 #(0x00007f4203768000) |
|
We had some errors with libtinfo.so.5 building the wrapper which will be relevant: https://github.com/haskell/haskell-language-server/runs/4979082407?check_suite_focus=true but it was fixed in a second attempt (already linked) |
@pepeiborra has found the culprit: #2615 (comment) |
Version 5 is still widely used and available in all major distros, including debian.
|
I've tried #2647 and it produced this hls-wrapper: https://github.com/jneira/haskell-language-server/suites/5108226219/artifacts/153040660, which is statically linked as expected |
The 1.6.1.0 release has started: https://github.com/haskell/haskell-language-server/releases/tag/1.6.1.0 |
I ve just released 1.6.1.0 with a statically linked wrapper |
And 1.6.1.0 is also in ghcup after merging haskell/ghcup-metadata#20 Thanks all reporters for the quick feedback and sorry for the inconveniences |
How to reproduce
Expected behavior
Description
In 1.6.0, HLS wrapper is a dynamically linked binary, while 1.5.1 wrapper being statically linked binary. Is this intended?
The text was updated successfully, but these errors were encountered: