real_dlsym: Load libdl.so.2 by its correct ABI-based name

The symbolic link libdl.so -> libdl.so.2 exists on developer systems as part of the implementation of cc -ldl, but is not guaranteed to exist on end-user systems. Even if the user has a C compiler and has built libstrangle from source, that doesn't mean they necessarily have development files available now - they might have copied libstrangle onto another machine, or into a container.

This resolves a crash seen for OpenGL programs in Steam's pressure-vessel tool, which implements the "Steam Linux Runtime" container environment.


This partially resolves https://github.com/ValveSoftware/steam-runtime/issues/443. I'm still seeing a crash for Vulkan games like Artifact, but at least I can now run OpenGL games like Floating Point with libstrangle enabled.

Merge request reports

Loading