Solo introduces a method for musl-linked static Linux binaries to dynamically load shared objects that are linked against glibc. This capability is particularly relevant for applications requiring access to GPU drivers, which are typically provided by the host system as glibc-linked shared libraries. Previously, fully static musl binaries could not normally use dlopen() to load these drivers.
The tool provides a dlfcn-style source API, backed by its own ELF loader, which supports x86-64 and aarch64 architectures. It also includes a glibc ABI bridge implemented on top of musl. This architecture allows a single static executable to utilize existing graphics drivers installed on the machine without requiring containers, AppImages, or a second libc within the process.
A proof-of-concept demonstrates a fully static executable loading an unmodified host Vulkan driver, running a compute shader, and writing the result to a PNG image. This has been tested on AMD (radv, radeonsi), Intel, and NVIDIA GPUs under Linux, as well as on Apple M1 under Asahi Linux. Continuous integration (CI) processes validate Solo by loading shared libraries from the 1,000 most-installed Debian packages, totaling over 2,100 host objects, on both x86-64 and aarch64 architectures with every commit.
Users can obtain a prebuilt binary to test the Vulkan demo, which discovers distro-installed Vulkan ICDs and produces a 512x512 RGBA image. The tool also allows forcing a particular driver. Verification steps are provided to confirm that the executable itself remains dynamically unlinked, showing no INTERP section or dynamic section when inspected with readelf.
✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →
One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.
One email a day. Unsubscribe in one click, any time.
Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.
▶ Play today's briefNew every morning, and the back catalogue is archived by date.
Solo is a new tool that allows fully static musl-linked Linux binaries to load glibc-linked shared objects, specifically GPU drivers, at runtime. This development addresses a long-standing challenge for static binaries needing hardware acceleration, offering a deployment method without containers or a second libc in the process.