Опубліковано проект SoLo, що дозволяє повністю статичним Linux-програмам, зібраним з musl, завантажувати через dlopen() встановлені в системі glibc-бібліотеки, насамперед GPU-драйвери. Зазвичай статична збірка несумісна з драйверами Vulkan і OpenGL, які дистрибутиви поставляють у вигляді бібліотек, що розділяються, зібраних з glibc. SoLo знімає це обмеження за допомогою вбудованого в виконуваний файл завантажувача ELF і прошарку, що транслює виклики glibc в musl-рантайм процесу - сам glibc в процес не завантажується, другого libc в процесі не з'являється. Код написаний на C++ та поширюється під ліцензією MIT.
У репозиторій входить наочний приклад: статичний файл, в якому немає ні інтерпретатора, ні динамічної секції, штатним для Vulkan способом знаходить встановлений в системі драйвер, завантажує його разом із залежностями, виконує обчислювальний шейдер і зберігає результат в PNG. У рамках безперервної інтеграції приклад перевіряється на Alpine, Fedora та Ubuntu з пакетами Lavapipe із штатних репозиторіїв цих дистрибутивів. Підхід вже використовується на практиці - ним формуються релізні складання емулятора терміналу Shitty.
Джерело: opennet.ru
