steam-runtime icon indicating copy to clipboard operation
steam-runtime copied to clipboard

Glibc version error with Surviving Mars (464920)

Open 414n opened this issue 4 years ago • 2 comments

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:

  1. Use the Ubuntu version recommended or a distribution with a glibc version < 2.29
  2. Try launching the game both directly and by choosing the "Steam Linux Runtime" compatibility tool
  3. Game crashes on start

414n avatar Aug 07 '21 12:08 414n

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.

smcv avatar Aug 08 '21 09:08 smcv

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:

414n avatar Aug 08 '21 12:08 414n

Slackware 15 was released in 2022, and appears to have glibc 2.33. Did you get a chance to retry this game?

smcv avatar Dec 12 '23 17:12 smcv

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.

414n avatar Dec 12 '23 22:12 414n

Closing per the last couple comments.

kisak-valve avatar Jan 13 '24 02:01 kisak-valve