Comparison of C/Posix standard library implementations for Linux
etalabs.net
etalabs.net
But then one needs to understand the background of how and why dietlibc came to be: its original author used to work for a German company developing digital TV set-top boxes and receivers, based on Linux and technologies like DirectFB, so obviously supporting their requirements and optimizing for size aggressively, even if some functionality is non-conformant, has always been a priority.
Full disclosure: I contributed a few patches to dietlibc.
On a desktop, the most common one is eglibc. uClibc is the implementation you will find on µClinux, a common version of Linux for embedded systems.
Note: historically, eglibc is a variant of glibc for embedded systems (Embedded GNU libc) but finally replaced it
http://www.eglibc.org/archives/patches/msg01321.html
The development process in glibc was fixed, rather like the egcs split all over again.
http://stackoverflow.com/search?tab=votes&q=user%3a379897%20...
Why have I not heard of it until now?
But it is very good. We use big parts of it in emscripten for example, and it works great - nice new and compact code, permissive MIT license, friendly upstream.
Why aren't more distros looking at the possibility?
- Symbol versioning: If you have a newer glibc installed when you build your packages, they'll refuse to run on older glibc, even if they don't need any of the new version's features. This makes it hard to make packages that support multiple versions of a distribution (e.g. a stable release with an older glibc and an unstable release with a newer one).
- Awkwardness of upgrading: For example Debian usually wants you to restart X and any daemons that use nss when glibc is updated. There are also atomicity issues during upgrade where there's a race window during which execing programs can fail.
On the other hand, distros are invested in a huge set of packages as well as support for third-party (often non-free) software, all of which are presently linked with glibc. I think musl is a lot more interesting right now to new and upcoming distros that are looking for a fresh start with less baggage than as a migration path for the big distros with major user/customer bases, at least in the short term. In the long term, who knows what will happen... :-)
Wikipedia says[2] that Arch uses eglibc, but their source is the eglibc website home page and I find no such claim on the entire site. I can't find anything about eglibc on the Arch mailing list, either.
Have I missed something?
[0]: https://www.archlinux.org/packages/core/x86_64/glibc/
> I have now set up the EGLIBC 2.19 branch. This is the last EGLIBC release branch; unless you are relying on changes in EGLIBC relative to glibc that have not been merged to glibc, you are advised to use glibc 2.19 branch instead of EGLIBC 2.19 branch. If you are relying on such changes, listed below, you should plan to contribute such features to glibc so you can cease using EGLIBC
http://www.eglibc.org/archives/patches/msg01327.html
Although versions are unspecified, for all intents and purposes testing eglibc was either identical to or better than testing glibc.
Perhaps if you feel the need you could use the author's benchsuite at http://www.etalabs.net/libc-bench.html to test GNU libc and share the results with everyone.