Skip to content

runtime: Create symlinks for various distros' ld.so.cache equivalents

Simon McVittie requested to merge wip/clearlinux into master

Clear Linux uses the same cross-architecture ld.so.cache as most distributions (Debian, Fedora, etc.), but puts it in /var/cache/ldconfig to meet their goal of /etc being empty. Create a symlink so that when their glibc tries to load that filename inside the runtime, what it gets is the runtime's /etc/ld.so.cache.

Exherbo uses a ld.so.cache per architecture, which we added to a table of known per-architecture ld.so.cache filenames in commit c10e8831. Create symlinks for those too, similar to the Clear Linux case; this has not yet been verified to work, but it can't hurt.

It's looking as though NixOS might be adding a Nix-specific filename for the ld.so cache (currently they don't have one at all). When that happens, we can add it to the same array as the Clear Linux filename.

Other distributions that turn out to need this can be treated like Clear Linux if they share one cache between all architectures, or like Exherbo if they have a separate cache per architecture.

Partially addresses https://github.com/ValveSoftware/steam-runtime/issues/345, which also needs https://gitlab.collabora.com/vivek/libcapsule/-/merge_requests/43.

Also partially addresses https://github.com/ValveSoftware/steam-runtime/issues/230.

Merge request reports