O projeto SoLo está desenvolvendo um carregador de bibliotecas so para programas Linux totalmente estáticos.

Foi publicado o projeto SoLo, que permite que programas Linux totalmente estáticos, compilados com musl, carreguem bibliotecas glibc instaladas no sistema via dlopen(), principalmente drivers de GPU. Normalmente, a compilação estática é incompatível com drivers Vulkan e OpenGL, que as distribuições fornecem na forma de bibliotecas compartilhadas, compiladas com glibc. SoLo remove essa limitação por meio de um carregador ELF embutido no executável e de uma camada que traduz chamadas de glibc para o tempo de execução musl do processo — a própria glibc não é carregada no processo, e não há uma segunda libc no processo. O código é escrito em C++ e distribuído sob a licença MIT.

O repositório inclui um exemplo visual: um arquivo executável estático, que não possui interpretador ou seção dinâmica, encontra o driver instalado no sistema da maneira padrão para Vulkan, carrega-o junto com as dependências, executa um shader computacional e salva o resultado em PNG. No contexto de integração contínua, o exemplo é testado no Alpine, Fedora e Ubuntu com pacotes Lavapipe dos repositórios padrão dessas distribuições. A abordagem já está sendo utilizada na prática — ela é aplicada para formar as versões de lançamento do emulador de terminal Shitty.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster