What Alternative C Libraries Exist for Embedded Development

The most popular C compiler in use today on any Linux or UNIX-like platform is gcc, the Free Software Foundation’s GNU C compiler, which is part of GCC, the GNU Compiler Collection. Traditionally, applications compiled with gcc use the GNU C library, known as glibc, to provide the underlying functions that they require. Glibc provides an extremely rich and powerful set of underlying C functions, but with that richness comes a parallel increase in size.

To address this problem, several alternative C libraries are commonly used in embedded development projects, described below. TimeSys currently provides pre-built glibc and uClibc toolchains.

uClibc

http://uclibc.org/ – uClibc is a micro (hence the Greek “mu” symbol) C standard library that is optimized for size. Nearly all applications supported by glibc also work with uClibc, so porting applications from glibc to uClibc typically involves just recompiling the source code. uClibc also supports shared libraries and threading.

Diet libc

http://www.fefe.de/dietlibc/ – Diet libc is another alternate library optimized for reduced size. It can be used to create small statically linked binaries for a number of platforms. However, note that diet libc only supports a static-linking strip utility

newlib

http://sourceware.org/newlib/ – The newlib C library is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products.