Skip to content
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

Steam and some games ship their own versions of libstdc++ #3773

Open
nickguletskii opened this issue Mar 29, 2015 · 1 comment
Open

Steam and some games ship their own versions of libstdc++ #3773

nickguletskii opened this issue Mar 29, 2015 · 1 comment

Comments

@nickguletskii
Copy link

Related:

#3273
#3393
#3394
#2904

There is absolutely no reason to ship copies of libstdc++ with Steam or any of the games available on Steam unless the distribution's libstdc++ is older than the one required by Steam. This only causes problems on newer distros where libraries are linked against newer libstdc++ versions.

For example, if you try to launch Steam in Ubuntu 15.04 running in the latest VirtualBox with guest additions installed, you will get something like this:

libGL error: failed to get magic
libGL error: failed to load driver: vboxvideo
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast

With LIBGL_DEBUG=verbose:

 DISPLAY=:0 LIBGL_DEBUG=verbose steam
 Running Steam on ubuntu 15.04 64-bit
 STEAM_RUNTIME is enabled automatically
 Installing breakpad exception handler for appid(steam)/version(1427176184)
 libGL error: failed to get magic
 libGL error: failed to load driver: vboxvideo
 libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/tls/swrast_dri.so
 libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/swrast_dri.so
 libGL: dlopen /usr/lib/i386-linux-gnu/dri/swrast_dri.so failed     (/home/test/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/i386-linux-gnu/dri/swrast_dri.so))

Suggested fix:

Only use the bundled libstdc++ when the distro comes with an older version of libstdc++.

@sylware
Copy link

sylware commented Apr 20, 2015

The client and games should statically link their libstdc++ (and their libgcc).
Each is one command line option for gcc from gcc version 4.7.
Query the game devs to do so through the steam community.
This is the result of c++ ABI hell and c++ standardization body fenzy.
More issues are to come if third-party software rely on distro c++ runtime (which is compiler dependant!!)

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

No branches or pull requests

3 participants