Modern releases of glibc are very large for a traditional embedded
system. If your application requires only one or two user programs,
you can statically link them to avoid requiring the entire dynamic
library. Another option is to hand-strip the dynamic library to a
Some modifications are required to the official glibc-2.1.x releases
to make them work in the embedded PowerPC
environment, such as cache
line size modifications. See
After applying these modifications, glibc-2.1.x can be configured for
export CFLAGS="-msoft-float -O2 -DNDEBUG=1"
configure --host=powerpc-linux --prefix=/path/to/local/powerpc-linux \
--with-headers=/path/to/linux-2.2.13/include --enable-add-ons=linuxthreads \
--with-gnu-as --with-gnu-ld --disable-sanity-checks --without-fp
There is a magic script named which removes unused functions from
the shared C library in the Debian Boot Floppies package, at
This is an attempt to produce a small glibc-compatible C runtime library subset
suitable for embedded systems.
To cut down some of the bloat in glibc, apply the patches at http://external-lists.varesearch.com/archives/sglibc/1999-September/000007.html
uC-Libc is a C library for embedded systems developed originally for
uClinux and now being ported to other architectures including PowerPC
It has a different set of design goals from GNU libc, but for many embedded
systems it is a sensible choice.
The diet libc is a libc that is optimized for small size. It can be used
to create small statically linked binaries for Linux on alpha, arm, mips,
sparc, ppc and x86.
Newlib is a free C library intended for use on embedded systems, with less
restrictive licensing than the GPL
. However, it currently lacks
the libgloss layer necessary to use it as the C library under Linux.
Older Linux libc's are often quite small, but generally not supported by anyone