Musl libc is a more preferable option if security and speed are important to you, compared to glibc, but is this currently the case? Do most applications still not work on musl? And how effective is gcompat?
Musl libc is a more preferable option if security and speed are important to you, compared to glibc, but is this currently the case? Do most applications still not work on musl? And how effective is gcompat?
musl is very cool and has very specific use cases. workstations are not one of them. you won’t be able to install drivers for gpus for example.
As somebody with a dozen workstations running MUSL, I disagree. But you are going to want to use a performant allocator.
The issue with C libraries is that you will have problems using pre-compiled binaries that are dynamically linked against a different C library.
If I gave you a binary dynamically linked against MUSL, it would not work with Glibc either. It is not some kind of MUSL deficiency.
The issue of course is that most pre-built proprietary software was built against Glibc. The proprietary NVIDIA drivers are a good example. But all the in-tree GPU drivers are fine.
There is gcompat which pretends to be Glibc and forwards calls to MUSL from software that is trying to call Glibc. That may be enough to make things work sometimes.
So there are two answers to “what works with MUSL?”.
The first answer is that, if the software is linked with MUSL when it is built, almost everything works. A musl based distro could have a huge package library.
The second answer is that, if you are trying to run software that was dynamically linked against a different C library when it was compiled, then basically nothing works. This is no different than missing any other dependency. Gcompat is a hack that makes programs use MUSL when they try to call Glibc, and that will work some of the time.
As an aside, MUSL allows you to statically compile programs which means they include the C library in their binary. This allows these programs to run regardless of what C library is available on the local system. For this reason, MUSL is often used to create static binaries even on systems that use Glibc. Pacman on Arch is a good example.
The GPU driver issue would really only be a problem for Nvidia stuff.