Het SoLo-project is gepubliceerd, waarmee volledig statische Linux-programma's, gebouwd met musl, via dlopen() systeemglibc-bibliotheken kunnen laden, met name GPU-stuurprogramma's. Gewoonlijk is statische bouw niet compatibel met Vulkan- en OpenGL-stuurprogramma's, die distributies als gedeelde bibliotheken aanbieden, gebouwd met glibc. SoLo verwijdert deze beperking met behulp van een ingebouwde ELF-loader in het uitvoerbare bestand en een laag die glibc-aanroepen omzet naar de musl-runtime van het proces — glibc wordt niet in het proces geladen en er verschijnt geen tweede libc in het proces. De code is geschreven in C++ en verspreid onder de MIT-licentie.
In de repository zit een duidelijk voorbeeld: een statief uitvoerbaar bestand zonder interpreter of dynamische sectie, dat op de gebruikelijke Vulkan-manier het geïnstalleerde stuurprogramma in het systeem vindt, het samen met afhankelijkheden laadt, een rekenkundige shader uitvoert en het resultaat opslaat in PNG. In het kader van continue integratie wordt het voorbeeld getest op Alpine, Fedora en Ubuntu met Lavapipe-pakketten uit de standaardrepositories van deze distributies. Deze aanpak wordt al in de praktijk gebruikt — het vormt de release-builds van de terminalemulator Shitty.
Bron: opennet.ru
