ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.17k stars 173 forks source link

Tomb Raider CXXABI_1.3.8 and GLIBC_3.4.21 not found #4579

Open joshuacox opened 7 years ago

joshuacox commented 7 years ago

Your system information

Describe what you expected should happen and what did happen. Please link any large code pastes as a Github Gist

Steps for reproducing this issue:

  1. install steamOS and install tombraider
  2. start tomb raider with this added to command line 2>/tmp/errlog
  3. after it fails to start, cat /tmp/errlog:
/home/steam/.local/share/Steam/steamapps/common/Tomb Raider/bin/TombRaider: /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ../lib/i686/libtcmalloc_minimal.so)
/home/steam/.local/share/Steam/steamapps/common/Tomb Raider/bin/TombRaider: /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ../lib/i686/libtcmalloc_minimal.so)
origintopleft commented 7 years ago

Disable the Steam runtime (STEAM_RUNTIME=0) and try again. That error is caused because you're on a higher version of GCC than the Steam runtime has been built for.

(I don't think the Steam runtime has ever been updated since the client's initial launch for Ubuntu 12.04, I don't understand why package maintainers haven't started throwing out the runtime and switched to native libraries by now)

joshuacox commented 7 years ago

My Current startup line looks thusly:

STEAM_RUNTIME=0 %COMMAND% > /tmp/steamlog 2>/tmp/errlog

but stilll I get only this:

# cat /tmp/errlog 
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/steam/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
/home/steam/.local/share/Steam/steamapps/common/Tomb Raider/bin/TombRaider: /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ../lib/i686/libtcmalloc_minimal.so)
/home/steam/.local/share/Steam/steamapps/common/Tomb Raider/bin/TombRaider: /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ../lib/i686/libtcmalloc_minimal.so)
Tele42 commented 7 years ago

For what it's worth, the steam runtime can not be disabled on a per-game basis as seen in the last comment, instead, you should be able to LD_PRELOAD the system variant of offending libraries.