Discrepancy? uClibc seems very large

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Sat Sep 26 08:42:40 UTC 2009

A minimal uClibc config compiles to about 80 kilobytes.
Make sure to configure buildroot to use -Os (plus other size-saving
options). Turn off everything that you do not need, both in busybox and
uClibc -- typical start .config should be
  make allnoconfig
for both.

On Sep 25, 2009 8:35 PM, "Ersin Akinci" <ersin.akinci at gmail.com> wrote:

Hi all,

I'm developing a custom floppy-based distro for my ancient P5 laptop,
and so naturally I've delved into the world of uClibc, buildroot, and
busybox.  As I've been compiling, I've noticed something that seems
strange to me.  When I compile busybox and link it statically using
the buildroot toolchain (using uClibc), the executable never tops 400K
w/ my config, which is fairly minimal (all base tools + some archival
+ ash + some network tools, nothing else).  I also think I remember
reading somewhere in the menuconfig descriptions that busybox only
comes in around 4 MB even with all the options selected.  Yet whenever
I compile uClibc seperately (also using the buildroot toolchain w/
uClibc) it always comes to somewhere between 3.5-4.5 MB with a rather
slim config.

Is it just me or does that seem a bit much when compared with the
busybox executable?  I know that busybox isn't statically linking
every function provided by uClibc, but it still seems off.  The uClibc
menuconfig, for example, has a section called "Big and Tall", but even
there the options seem miniscule in comparison with the total compiled
size of the library (e.g., 53 kb regexp support vs. the final
library's size, ~3.5 MB).  Could someone enlighten me?  I'm sure I'm
missing something.

Also, if this behavior is normal, can someone suggest a bare minimum
required config for uClibc to have my fairly minimal busybox run
properly?  Is it possible to get a minimal uClibc so small that the
size of the library + the size of the dynamically linked busybox = the
size of a statically linked busybox, or does uClibc's config mechanism
not provide enough fine-grained control for this?

uClibc mailing list
uClibc at uclibc.org

More information about the uClibc mailing list