SoLo-projektet har publicerats, vilket möjliggör för helt statiska Linux-program, byggda med musl, att ladda glibc-bibliotek som Ă€r installerade i systemet via dlopen(), i första hand GPU-drivrutiner. Normalt Ă€r statisk byggnation inkompatibel med Vulkan- och OpenGL-drivrutiner, som distributionerna tillhandahĂ„ller som delade bibliotek byggda med glibc. SoLo tar bort denna begrĂ€nsning med hjĂ€lp av en inladdare inbĂ€ddad i exekverbara filer och en mellanliggande modul som översĂ€tter glibc-anrop till musl-körningstiden för processen â sjĂ€lva glibc laddas inte in i processen, den andra libc finns inte i processen. Koden Ă€r skriven i C++ och distribueras under MIT-licensen.
I lagret ingĂ„r ett tydligt exempel: en statisk exekverbar fil som varken har en interpreter eller en dynamisk sektion, hittar drivrutinen som Ă€r installerad i systemet pĂ„ det vanliga sĂ€ttet för Vulkan, laddar den med dess beroenden, kör en berĂ€kningsshader och sparar resultatet i PNG. Inom ramen för kontinuerlig integration testas exemplet pĂ„ Alpine, Fedora och Ubuntu med Lavapipe-paket frĂ„n dessa distributions officiella repository. Metoden anvĂ€nds redan i praktiken â den anvĂ€nds för att skapa release-builds av terminalemulatorn Shitty.
KĂ€lla: opennet.ru
