Skip to content

pv-runtime: Use host versions of the libdrm family, if newer

Simon McVittie requested to merge wip/mesamr21658 into main

In current Mesa versions, typically these are pulled in via explicit linking that generates a DT_NEEDED ELF header, either in individual DRI drivers in very old Mesa, in the Gallium "megadriver" in intermediate Mesa versions like the one in Debian 12, or in libgallium-${VERSION}.so in newer Mesa.

However, Mesa merge request https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21658 suggests demoting the dependency on libdrm_amdgpu.so.1 from DT_NEEDED to dlopen(). Changing that dependency from declarative to imperative breaks our ability to follow it, resulting in the container's older libdrm_amdgpu.so.1 being used.

In principle there's nothing to stop the same thing from happening for any of the libraries in the libdrm family, so look for all of them. For future-proofing, I've included all available drivers even if they are not available on x86 (but excluding exynos and omap, which seem to be only for 32-bit ARM hardware, which is probably no longer interesting).

/cc @refi64 @bnieuwenhuizen

Merge request reports