Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
steam+primus does not find symbol
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Multimedia
View previous topic :: View next topic  
Author Message
Holysword
l33t
l33t


Joined: 19 Nov 2006
Posts: 919
Location: Greece

PostPosted: Sat Sep 09, 2017 9:22 am    Post subject: steam+primus does not find symbol Reply with quote

Whenever I try to start a Steam game via primusrun %command% I get the following error in the console:

Code:
/bin/bash: relocation error: /usr/lib64/primus/libGL.so.1: symbol _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference


I did upgrade my system recently (which I deeply regret). My currently selected GCC profile is x86_64-pc-linux-gnu-6.3.0, and I have already ran `revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc` to no effect. I have rebuild primus also, also to no effect.

primsrun glxspheres works fine, as well as primusrun glxspheres64

Does anyone have any clue of which package I should rebuild to get primus working again? Or there is something wrong with the paths?

Thanks in advance!
_________________
"Nolite arbitrari quia venerim mittere pacem in terram non veni pacem mittere sed gladium" (Yeshua Ha Mashiach)
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 11071

PostPosted: Sat Sep 09, 2017 5:39 pm    Post subject: Reply with quote

The missing symbol is the post-update name. I suspect that the program is somehow finding a pre-upgrade libstdc++. Steam is notorious for bundling libraries they should not, so this would explain why your basic GLX test works correctly, but your Steam game fails. What is the output of (cd /path/to/steam/files && find . -name libstdc++\* -ls)? I used a cd to anonymize the path. Otherwise you could have given the path instead of ..

In some cases, users have reported success by denying Steam access to the bundled copy and forcing it to use the system copy instead. Keep a backup of the file if you try this, since it is a context-dependent solution and we currently do not know if that will help.
Back to top
View user's profile Send private message
Holysword
l33t
l33t


Joined: 19 Nov 2006
Posts: 919
Location: Greece

PostPosted: Mon Sep 11, 2017 4:22 pm    Post subject: Reply with quote

Hu wrote:
The missing symbol is the post-update name. I suspect that the program is somehow finding a pre-upgrade libstdc++. Steam is notorious for bundling libraries they should not, so this would explain why your basic GLX test works correctly, but your Steam game fails. What is the output of (cd /path/to/steam/files && find . -name libstdc++\* -ls)? I used a cd to anonymize the path. Otherwise you could have given the path instead of ..

In some cases, users have reported success by denying Steam access to the bundled copy and forcing it to use the system copy instead. Keep a backup of the file if you try this, since it is a context-dependent solution and we currently do not know if that will help.


Indeed you're right; there are a bunch of versions of libstdc++ in $HOME/.local/share/Steam. I didn't think that they would be favoured, however, 'cause of the STEAM_RUNTIME_PREFER_HOST_LIBRARIES=1 environment variable. Steam's libraries seem to be compiled with gcc-4.6, so anything with gcc-5 or later will cause troubles.

Which is troublesome in itself. It does have libGLES, libGLEW and libGLU, but it is trying to use libGL from the system. Mixing system and Steam's libs do not sound like a good idea in any case.

Is there any beautiful mechanism in Gentoo which will allow me to keep one version of libGL compiled specially with gcc-4.6 to be used by Steam, or is that asking too much? :cry:
_________________
"Nolite arbitrari quia venerim mittere pacem in terram non veni pacem mittere sed gladium" (Yeshua Ha Mashiach)
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 11071

PostPosted: Mon Sep 11, 2017 11:48 pm    Post subject: Reply with quote

I am not aware of one. Perhaps you could get the Steam developers (not the Gentoo maintainers for Steam, but Valve's employees) to fix their workflow. They should have updated to gcc-5 by now. They also shouldn't be bundling so many libraries, but convincing them of their error there is unlikely.
Back to top
View user's profile Send private message
Holysword
l33t
l33t


Joined: 19 Nov 2006
Posts: 919
Location: Greece

PostPosted: Tue Sep 12, 2017 5:34 pm    Post subject: Reply with quote

Hu wrote:
I am not aware of one. Perhaps you could get the Steam developers (not the Gentoo maintainers for Steam, but Valve's employees) to fix their workflow. They should have updated to gcc-5 by now. They also shouldn't be bundling so many libraries, but convincing them of their error there is unlikely.


I cannot argue with them in that aspect. The games will come precompiled, there is no way around that. What would happen if the game compiled with gcc4 is dynamically linked to my system library compiled with gcc6? Some games ship their own versions of some of libraries in Steam Runtime.
_________________
"Nolite arbitrari quia venerim mittere pacem in terram non veni pacem mittere sed gladium" (Yeshua Ha Mashiach)
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 11071

PostPosted: Wed Sep 13, 2017 12:59 am    Post subject: Reply with quote

Mixing gcc4 with gcc6 should be fine if they stick to supported interfaces. There will be problems, like the ones you saw here, if they rely on symbols which changed ABI. The only solution is for someone to rebuild the code with the new ABI. We can't do that for them since they refuse to release the source, so the problem falls to them. In most cases, a straight rebuild is all that is required. No code changes, so this should be very easy for them to do.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Multimedia All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum