From Wikipedia, the free encyclopedia
Jump to: navigation, search
Developer(s) Erik Andersen
Initial release February 13, 2000; 14 years ago (2000-02-13)
Stable release (May 15, 2012; 2 years ago (2012-05-15)) [±][1]
Written in C
Operating system Embedded Linux
Platform Embedded Linux
License GNU Lesser General Public License[2]
Website www.uclibc.org

In computing, uClibc is a small C standard library intended for Linux kernel-based operating systems for embedded systems and mobile devices. uClibc was created to support μClinux, a version of Linux not requiring a memory management unit and thus suited for microcontrollers (uCs; the "u" is a romanization of μ for "micro").[3]

The project lead is Erik Andersen. The other main contributor is Manuel Novoa III. Licensed under the GNU Lesser General Public License, uClibc is free and open-source software.


uClibc is a wrapper around the system calls of the Linux kernel and/or μClinux.

uClibc is much smaller than the glibc, the C library normally used with Linux distributions. While glibc is intended to fully support all relevant C standards across a wide range of hardware and kernel platforms, uClibc is specifically focused on embedded Linux. Features can be enabled or disabled according to space requirements.

uClibc runs on standard and MMU-less Linux systems. It supports i386, x86-64, ARM (big/little endian), AVR32, Blackfin, h8300, m68k, MIPS (big/little endian), PowerPC, SuperH (big/little endian), SPARC, and v850 processors.


Buildroot is a set of Makefiles and patches that simplifies and automates the process of building a complete Linux system for an embedded system, by using cross-compilation.[4][5]

In order to achieve this, Buildroot is able to build a required cross-compilation toolchain, create a root filesystem, compile a Linux kernel image, and generate a boot loader for the targeted embedded system. Also, Buildroot can be used for any independent combination of these available options. For example, an already existing cross-compilation toolchain can be used, while Buildroot is used only for the creation of a root file system.[5]

Buildroot is useful mainly while working with small or embedded systems, using various CPU architectures – including x86, ARM, MIPS, and PowerPC. Numerous processors, architectures and their variants are supported; it also comes with default configurations for several off-the-shelf available embedded boards, for example Cubieboard.[6] Besides that, numerous third-party projects are having their build systems based on Buildroot, for example OpenWrt.[7]


Development on uClibc started around 1999.[8] uClibc was mostly written from scratch,[9] but has incorporated code from glibc and other projects.[10]

See also[edit]


  1. ^ "µClibc News". µClibc. 2012-02-01. Retrieved 2012-03-24. 
  2. ^ uClibc FAQ: Licensing
  3. ^ uClibc naming Accessed on February 10, 2008.
  4. ^ "Buildroot: Making embedded Linux easy". buildroot.org. Retrieved 2013-10-18. 
  5. ^ a b "The Buildroot user manual" (PDF). buildroot.org. Retrieved 2013-10-18. 
  6. ^ "Buildroot ChangeLog". git.buildroot.net. Retrieved 2013-10-21. 
  7. ^ "OpenWrt Buildroot – About". openwrt.org. Retrieved 2013-10-21. 
  8. ^ http://www.uclibc.org/copyright.txt
  9. ^ "History". uClibc FAQ. Retrieved 2007-06-19. 
  10. ^ "uClibc Changelog". Archived from the original on 2007-06-09. Retrieved 2007-06-19. "pthreads support (derived from glibc 2.1.3's linuxthreads library) [...] Merged in the random number support (rand, srand, etc) from glibc." 

Further reading[edit]

  • Karim Yaghmour, Jon Masters, Gilad Ben-Yossef, Philippe Gerum (2008). Building Embedded Linux Systems (2 ed.). O'Reilly Media. pp. 115–127. ISBN 0-596-52968-6. 
  • von Hagen, William L. (2006). The Definitive Guide to GCC, Second Edition. Berkeley, CA: APress. pp. 290–297. ISBN 1-59059-585-8. 

External links[edit]