Skip to content

Instantly share code, notes, and snippets.

@rlefevre
Last active March 19, 2019 07:52
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rlefevre/e833f6fbd485f46a1352bce9b239932e to your computer and use it in GitHub Desktop.
Save rlefevre/e833f6fbd485f46a1352bce9b239932e to your computer and use it in GitHub Desktop.
Elm 0.19 alpha Linux x64 binaries portability tests results

Elm 0.19 alpha Linux x64 binaries portability tests results

Summary

Distribution Linux kernel Statically linked binary Official binary (alpha) Official binary error
Alpine 3.7 4.15.0 πŸ‹ βœ”οΈ ❌ 5. ELF interpreter not found
Arch Linux 4.17 βœ”οΈ ❌ 1. libtinfo.so.5 not found
Centos 6.6 4.15.0 πŸ‹ βœ”οΈ ❌ 3. libgmp.so.10 not found
Centos 7.5 4.15.0 πŸ‹ βœ”οΈ ❗ 2. No libtinfo version information available
Debian 4 etch 2.6.18 βœ”οΈ ❌ 1. libtinfo.so.6 not found
Debian 5 lenny 2.6.26 βœ”οΈ ❌ 1. libtinfo.so.6 not found
Debian 6 squeeze 2.6.32 βœ”οΈ ❌ 1. libtinfo.so.6 not found
Debian 7 wheezy 3.2.0 βœ”οΈ ❌ 4. libffi.so.5 not found
Debian 9 stretch 4.15.0 πŸ‹ βœ”οΈ βœ”οΈ
Fedora 26 4.15.0 πŸ‹ βœ”οΈ ❌ 1. libtinfo.so.5 not found
Fedora 28 4.15.0 πŸ‹ βœ”οΈ ❌ 1. libtinfo.so.5 not found
Gentoo 4.15.0 πŸ‹ βœ”οΈ ❌ 1. libtinfo.so.5 not found
OpenSuse leap 15.0 4.15.0 πŸ‹ βœ”οΈ βœ”οΈ
Slackware 14.2 4.15.0 πŸ‹ βœ”οΈ ❌ 1. libtinfo.so.5 not found
Ubuntu 14.04 4.15.0 πŸ‹ βœ”οΈ ❗ 2. No libtinfo version information available
Ubuntu 16.04 4.10 βœ”οΈ βœ”οΈ
Ubuntu 18.04 4.15.0 βœ”οΈ βœ”οΈ
Ubuntu 18.10 (dev) 4.15.0 πŸ‹ βœ”οΈ ❌ 1. libtinfo.so.5 not found
Legend
βœ”οΈ no error
❗ some error displayed on start but the binary works correctly
❌ some error displayed and the compiler does not work *
πŸ‹ tested in a docker container (ie: with host kernel)

* some work-arounds like adding some symbolic links manually or installing some compat libs can sometimes allow to run the compiler

Errors

1. libtinfo not found

error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

This occurs when the libtinfo.so.5 shared library is not found. This has mainly two causes:

  • libtinfo is actually part of ncurses sources and can be compiled inside or outside libncurses. On distributions where libtinfo is built inside libncurses, it won't be found and this is why creating a symbolic link to libncurses.so.5 usually fixes the issue.
  • Some distributions have another version of libtinfo, usually libtinfo.so.6.

2. No libtinfo version information available

/lib64/libtinfo.so.5: no version information available (required by ./elm)

This non-fatal error occurs when the distribution provides a libtinfo.so.5 shared library without symbol versionning while elm has been dynamically linked with a libtinfo.so.5 library that included symbol versionning. The elm binary is still executed, but as symbols versions are not checked, some runtime errors might eventually happen (in practice elm seems to work correctly).

(More precisely, this means that the library doesn't have the VERDEF ELF section while the binary has some version definitions in the VERNEED ELF section for this library that were set during linking).

3. libgmp not found

./error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory

If libgmp is already installed, this occurs when the distribution provides a different version.

4. libffi not found

error while loading shared libraries: libffi.so.6: cannot open shared object file: No such file or directory

If libffi is already installed, this occurs when the distribution provides a different version.

5. ELF interpreter not found

./elm: not found

This occurs when the ELF interpreter /lib64/ld-linux-x86-64.so.2 is not found. This typically happens on non-glibc distributions (because ld-linux-* is the glibc dynamic loader).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment