Page MenuHomeSolus

steam: /usr/lib32/haswell/libc.so.6 causing proton games to fail to start when native runtime is enabled.
Closed, ResolvedPublic

Description

When the steam native runtime is enabled, proton games are failing to start, with:
wine[131491] general protection fault ip:f7985273 sp:ffc430c0 error:0 in libc.so.6[f7914000+1a9000]

The workarounds are to use the steam runtime or remove/mask /usr/lib32/haswell/libc.so.6 (reinstall glibc-32bit to get the file back, it will fallback to /usr/lib32/libc.so.6 instead)

Launching proton games (such as Among Us) directly from wine still works fine leading me to believe the problem is with proton or the containerization that proton uses.

Related Objects

Event Timeline

joebonrichie triaged this task as High priority.Apr 27 2022, 11:08 AM
joebonrichie created this task.
joebonrichie moved this task from Backlog to System and Configuration Fixes on the Software board.
Jacek added a subscriber: Jacek.Apr 27 2022, 9:33 PM
528491 added a subscriber: 528491.Apr 28 2022, 6:38 PM
Jacek added a comment.EditedApr 30 2022, 11:36 PM

If I understand it correctly (which might not be likely), what needs to be changes is this part of the code.
When it does 32bit the line lsi_table.handles.libc = dlopen("libc.so.6", RTLD_LAZY); should be changed to lsi_table.handles.libc = dlopen("/usr/lib32/libc.so.6", RTLD_LAZY);.
Edit: Here is my patch, will test is as soon as possible: https://github.com/JacekJagosz/linux-steam-integration/commit/b39d46b2ee283b07d2b61ac99b382cd4216e96cd
Edit 2: Patch didn't work, even caused a problem. Found a game that didn't start (Apex Legends) deleted /usr/lib32/haswell/libc.so.6 and it now would start with LSI from the repos but not my patched one. Really weird... Sorry, I am out of ideas how to fix it.

If noone has another idea how to fix it, could /usr/lib32/haswell/libc.so.6 get removed from the package for now? This would unbreak all Steam games for all LSI users, and very little programs use the 32 bit library anyways, Steam is definitely the biggest one.