Glibc version error with Surviving Mars (464920)
Your system information
- Steam Runtime Version: steam-runtime_0.20210721.1
- Distribution (e.g. Ubuntu 18.04): Slackware64 14.2
- Link to your full system information (Help -> System Information) in a Gist: steaminfo
- Have you checked for system updates?: Yes
- What compatibility tool are you using?: Steam Linux Runtime
- If you are using Steam Linux Runtime for native Linux games: What versions are listed in
SteamLinuxRuntime/VERSIONS.txt?
#Name Version Runtime Runtime_Version Comment
depot 0.20210630.32 # Overall version number
LD_LIBRARY_PATH - scout - # see ~/.steam/root/ubuntu12_32/steam-runtime/version.txt
scripts v0.20210623.0-0-ga389036 # Entry point scripts, etc.
- If you are using Steam Linux Runtime, or Proton 5.13 or newer: What versions are listed in
SteamLinuxRuntime_soldier/VERSIONS.txt?
#Name Version Runtime Runtime_Version Comment
depot 0.20210723.18 # Overall version number
pressure-vessel 0.20210722.0
scripts v0.20210722.0-0-gb142f90 # Entry point scripts, etc.
soldier 0.20210719.0 soldier 0.20210719.0 # soldier_platform_0.20210719.0/
Please describe your issue in as much detail as possible:
The game fails to even start trying to run it both directly and with the Steam Linux Runtime compatibility tool. The error I see in the terminal is the following:
/lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /path/to/steam/library/steam/steamapps/common/Surviving Mars/MarsSteam
My system indeed runs on glibc-2.23 and it seems like the Steam Linux Runtime runs on glibc-2.28 (verified by running LC_ALL=C /mnt/storage/Steam/steamapps/common/SteamLinuxRuntime_soldier/_v2-entry-point --deploy=soldier --suite=soldier --verb=run -- /lib/x86_64-linux-gnu/libc.so.6), both of which are not compliant with what the game actually requires and was probably compiled/linked against.
I think this is a similar issue to #224, where the game binaries are linked against a glibc version > 2.15.
Here is the relevant log extracted with STEAM_LINUX_RUNTIME_LOG=1: slr-app464920-t20210807T142400.log.
FYI: the store page system requirements for the game report "Ubuntu 14.04 or newer" both as minimal and recommended distribution version, but that's unrealistic with the actual glibc version requirements.
Steps for reproducing this issue:
- Use the Ubuntu version recommended or a distribution with a glibc version < 2.29
- Try launching the game both directly and by choosing the "Steam Linux Runtime" compatibility tool
- Game crashes on start
If the game requires a newer glibc than the one in the Steam Runtime, that's a game issue. The Steam Runtime cannot force game developers to compile their games in the recommended environment. The game developer should either compile their game against an older glibc, or change their stated system requirements to be consistent with whatever environment they're targeting (at a guess, maybe Ubuntu 20.04).
The recommended environment for building native Linux games for distribution via Steam is Steam Runtime 1 'scout', based on Ubuntu 12.04 from 2012 (glibc 2.15). When you run a game without using the "Steam Linux Runtime" compatibility tool, it uses the glibc from your host system (in your case Slackware 14.2, glibc 2.23 - which is quite old, approximately 2016, so I would recommend checking whether a newer Slackware release is available, because I suspect it will be increasingly difficult for Slackware to provide security updates to a version that old).
The "Steam Linux Runtime" compatibility tool uses a container with a combination of Steam Runtime 1 'scout' and Steam Runtime 2 'soldier' (based on Debian 10 from 2019, glibc 2.28), and is meant to give results that are similar to running on a Debian 10 system without "Steam Linux Runtime". That's sufficient for most games, even if the game has been compiled in a newer environment than the one Valve recommends - but not sufficient for this particular game.
Hello Simon,
thanks for confirming my findings. I guess I'll wait for the upcoming Slackware 15.0 version before trying again with this title. :+1:
Slackware 15 was released in 2022, and appears to have glibc 2.33. Did you get a chance to retry this game?
Sorry, completely forgot about this.
I just reinstalled it on Slackware64-15.0 and it now starts up correctly directly and, unexpectedly, also via the Steam Linux Runtime 1.0 (scout) compatibility tool.
I did not perform an in-game test yet.
By looking at the glibc symbol versions in the game executable via ldd -v -d MarsSteam, I could not find any more direct references to GLIBC_2.29 like before. The game also seems to have been updated quite recently (steamdb), so maybe they recompiled it on a system with an older glibc.
Closing per the last couple comments.