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
Hello @leonmaxx, please give https://github.com/ValveSoftware/Dota-2/issues/1532#issuecomment-446599112 a read.
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
Does Proton version settings affects steam-runtime version? I have selected 3.16-6 Beta version now.
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
What steam distro package are you using?
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!
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.
Your system information
Steam->Help->System Information) in a gist: https://gist.github.com/leonmaxx/88e3e7c5502055dbc2cefcdbd65a4468Please describe your issue in as much detail as possible:
After last update of Dota 2 it doesn't launch but exits with error:
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: