È stato pubblicato il progetto SoLo, che consente ai programmi Linux completamente statici, compilati con musl, di caricare tramite dlopen() le librerie glibc installate nel sistema, in particolare i driver GPU. Di solito, la compilazione statica non è compatibile con i driver Vulkan e OpenGL, che le distribuzioni forniscono come librerie condivise, compilate con glibc. SoLo rimuove questa limitazione grazie a un caricatore ELF integrato nel file eseguibile e a un livello di intermediazione che traduce le chiamate a glibc nel runtime musl del processo: glibc stesso non viene caricato nel processo e non appare un secondo libc nel processo. Il codice è scritto in C++ e distribuito con licenza MIT.
Nel repository è presente un esempio visivo: un file eseguibile statico, che non contiene né un interprete né una sezione dinamica, trova il driver installato nel sistema nel modo standard per Vulkan, lo carica insieme alle dipendenze, esegue lo shader di calcolo e salva il risultato in PNG. Nel contesto dell'integrazione continua, l'esempio viene testato su Alpine, Fedora e Ubuntu con i pacchetti Lavapipe dai repository ufficiali di queste distribuzioni. Questo approccio è già utilizzato nella pratica, formando le build di rilascio dell'emulatore di terminale Shitty.
Fonte: opennet.ru
