OpenWrt switches to musl by default, replacing uClibc
comments.gmane.org
comments.gmane.org
Regardless - I'm glad I'm not the only one who is concerned about binary sizes.
There's some specific things that are supposed to be modular library-wise.
x.c:(.text+0x85): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linkingMaybe it's not particularly aimed at embedded stuff, but it sure does fit well. I've used it in 3 embedded projects recently, with great results.
The only issue I've run into when trying to use musl is there are a lot of softwares out there that expect glibc, and refuse to run without (even though it probably would work). The Oracle JDK/JRE for ARM is an example, you must compile the OpenJDK from scratch to get it to use musl.
Otherwise, it's a fantastic libc. It's fast to compile, it's tiny in size, and is feature-complete enough for most of my purposes.
it's also handy to make statically linked systems/executables; sometime for very small applications, you mostly need the kernel, a small busybox and ONE executable; you can make really small 'distros' like that, especially when linked with LTO.
Personally, I prefer a tiny, very compact ROM style filesystem; if I need a package, I just rebuild it with it, and reboot.
I'm the author of minifs: https://github.com/buserror/minifs that is made to do just that.
However, we're reaching the point where the kernel is so full of crud that it is in itself the bloatware, and far worse than the userland :-(