protonscr

[Linux] Dota 2 no longer works on RHEL/CentOS 7.

steamclosed runtime
ValveSoftware/steam-for-linux#6037 · opened 2019-01-19 by leonmaxx · updated 2019-01-19 · 8 comments · github
Lleonmaxx 2019-01-19 github

Your system information

Please describe your issue in as much detail as possible:

After last update of Dota 2 it doesn't launch but exits with error:

FATAL: /home/maxx/.local/share/Steam/steamapps/common/dota 2 beta/game/bin/linuxsteamrt64/libengine2.so not loaded
        dlerror(): /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/maxx/.local/share/Steam/steamapps/common/dota 2 beta/game/bin/linuxsteamrt64/libengine2.so)

Full log

Please re-compile libengine2.so using older libstdc++ or link it statically using linker (g++ / ld) option -static-libstdc++.

Steps for reproducing this issue:

  1. Install Steam on CentOS/RHEL 7.6.
  2. Install Dota 2.
  3. Try to launch.
Lleonmaxx 2019-01-19 github

List of supported ABIs of libstdc++ on CentOS 7.6:

$ strings /usr/lib64/libstdc++.so.6.0.19 | grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1
Kkisak-valve maintainer 2019-01-19 github
Lleonmaxx 2019-01-19 github

Hello, thanks for fast reply!

On CentOS realpath is installed with coreutils package:

$ which realpath
/usr/bin/realpath

Next I removed pinned_libs_* and started steam, nothing changed. After this I tried to make symbolic links myself but found that there is no libstdc++.so* in steam-runtime sub-directory:

$ pwd
/home/maxx/.steam/steam/ubuntu12_32/steam-runtime

$ find -type f -name "libstdc++*"                                                                                                                             
./amd64/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.1+srt1_amd64                                                                                                                 
./amd64/installed/libstdc++6_5.4.0-7.really.6+steamrt1.1+srt1_amd64.md5                                                                                                                   
./amd64/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.1+srt1_amd64.md5                                                                                                             
./amd64/installed/libstdc++6_5.4.0-7.really.6+steamrt1.1+srt1_amd64                                                                                                                       
./amd64/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++_pic.map                                                                                                                                
./amd64/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++_pic.a                                                                                                                                  
./amd64/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py                                                                                                       
./i386/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.1+srt1_i386.md5                                                                                                               
./i386/installed/libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.1+srt1_i386                                                                                                                   
./i386/installed/libstdc++6_5.4.0-7.really.6+steamrt1.1+srt1_i386                                                                                                                         
./i386/installed/libstdc++6_5.4.0-7.really.6+steamrt1.1+srt1_i386.md5                                                                                                                     
./i386/usr/lib/gcc/i686-linux-gnu/4.6/libstdc++_pic.map                                                                                                                                   
./i386/usr/lib/gcc/i686-linux-gnu/4.6/libstdc++_pic.a                                                                                                                                     
./i386/usr/share/gdb/auto-load/usr/lib/i386-linux-gnu/libstdc++.so.6.0.21-gdb.py
Lleonmaxx 2019-01-19 github

Does Proton version settings affects steam-runtime version? I have selected 3.16-6 Beta version now.

Kkisak-valve maintainer 2019-01-19 github

Steam client version decides what is in the steam runtime. Proton is not involved.

libstdc++.so.6 used by Dota 2 should be a symlink at <steam runtime dir>/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6

Kkisak-valve maintainer 2019-01-19 github

What steam distro package are you using?

Lleonmaxx 2019-01-19 github

Never mind.
Packagers of steam RPM package, patched /usr/bin/steam script to remove libstdc++.so* libraries in steam-runtime to workaround some old bug.

I reverted that patch, copied libstc++.so* files from steam-runtime.tar.xz archive to steam-runtime/amd64/usr/lib/x86_64-linux-gnu directory, and started steam. Now there is proper links to libstdc++ from steam-runtime in pinned_libs_64 directory and Dota 2 works.

Thanks for Your help!

Kkisak-valve maintainer 2019-01-19 github

Glad to hear you got it working. Your issue should reported to your distro packager for Steam.

Closing as this isn't a Valve issue.

Nothing extracted yet.