Uclibc is an open source C library released under the GPL with the lead coding done by Erik Anderson and is designed to be a drop-in replacement for the GNU C library.
At current a very exciting project, it includes such features as:
-
Multi-threaded execution
-
MMU emulation for MMU-less archs
-
Significantly reduced library size
-
Near compatibility with glibc
Of all of these features perhaps the most useful is in-built emulation to allow operation without a
memory management unit. This should permit rapid and easy deployment of code designed to run on memory managed hardware to architectures which lack any
MMU facilities.<.p>
With near complete compatibility with glibc, most applications should dynamically link* against uclibc with no problems and with little more work than a few changes to the makefile. This easily allows the building of complete embedded systems using the standard GNU toolset. Where applications fail to compile there is of course always the possibility of a static linking against glibc in order to allow uclibc to be the main C library of a small embedded system.
Uclibc is also a successful example of a sustainable open source project, where source code is released and consultancy is offered as a way for the author to claim recompense for his talent and time.
Rumours have it (as of Oct 2004) that a C++ version is being worked on, again focusing on reducing size without compromising on features provided by the library
* Static linking is also of course perfectly possible