aardappel / lobster

The Lobster Programming Language

Home Page:http://strlen.com/lobster

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

release binaries does not run on some recent ubuntu version

franko opened this issue · comments

I wanted to report that the release binaries in the release v2023.6 doesn't work on a 20.04 ubuntu system due to recent GLIBC and STDC++ symbol version requirements:

./bin/lobster: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./bin/lobster)
./bin/lobster: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by ./bin/lobster)
./bin/lobster: /lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by ./bin/lobster)
./bin/lobster: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./bin/lobster)
./bin/lobster: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./bin/lobster)
./bin/lobster: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./bin/lobster)

I advice to build the release file in an older debian-based system like ubuntu 18.04 and link libstdc++ and libgcc statically. In this way the provided binaries should work on a largest variety of linux systems requiring a GLIBC version which is not too recent.

They are built using 22.04. This aspect of Linux is fundamentally broken. Big fan of static linking but that too on Linux doesn't work in all circumstances.

We use the latest github runners (which we need otherwise the compilers are too old).

If you're on Linux and you're not up to date on your OS you have to build yourself it seems?

I was able to compile by myself, only had to do a very minor modification because from_chars to parse floating point numbers was not supported by the GCC version I used.

Otherwise I don't think Linux is fundamentally wrong. You are compiling toward a very recent version of glibc and libstdc++ and they are enforcing the version at run time. I gave a suggestion about how to do for the binaries.