El proyecto SoLo desarrolla un cargador de bibliotecas so del sistema para programas de Linux completamente estáticos.

Se ha publicado el proyecto SoLo, que permite a programas de Linux completamente estáticos, compilados con musl, cargar bibliotecas glibc instaladas en el sistema a través de dlopen(), principalmente controladores de GPU. Normalmente, la compilación estática es incompatible con los controladores de Vulkan y OpenGL, que las distribuciones proporcionan en forma de bibliotecas compartidas compiladas con glibc. SoLo elimina esta restricción mediante un cargador ELF integrado en el ejecutable y una capa que traduce las llamadas de glibc al tiempo de ejecución de musl del proceso: glibc en sí no se carga en el proceso, no aparece una segunda libc en el proceso. El código está escrito en C++ y se distribuye bajo la licencia MIT.

El repositorio incluye un ejemplo práctico: un archivo ejecutable estático, que no contiene ni intérprete ni sección dinámica, que encuentra el controlador instalado en el sistema de manera estándar para Vulkan, lo carga junto con sus dependencias, ejecuta un shader computacional y guarda el resultado en PNG. Como parte de la integración continua, el ejemplo se verifica en Alpine, Fedora y Ubuntu con los paquetes Lavapipe de los repositorios oficiales de estas distribuciones. Este enfoque ya se utiliza en la práctica: se generan compilaciones de lanzamiento para el emulador de terminal Shitty.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster